@wavemaker/app-ng-runtime 12.0.0-next.45001 → 12.0.0-next.45005
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.
- app-ng-runtime/build-task/.npmignore +2 -0
- app-ng-runtime/build-task/bundles/index.umd.js +341 -344
- app-ng-runtime/build-task/esm2022/advanced/carousel/carousel-template/carousel-template.build.mjs +5 -3
- app-ng-runtime/build-task/esm2022/advanced/carousel/carousel.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/basic/default/label/label.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/basic/progress/progress-bar/progress-bar.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/containers/accordion/accordion.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/containers/repeat-template.build.mjs +5 -3
- app-ng-runtime/build-task/esm2022/containers/tabs/tabs.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/data/form/form.build.mjs +5 -2
- app-ng-runtime/build-task/esm2022/data/list/list.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/data/media-list/media-list.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/data/table/table-column/table-column.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/data/table/table.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/dialogs/partial-dialog/partial-dialog.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/navigation/menu/menu.build.mjs +8 -3
- app-ng-runtime/build-task/esm2022/navigation/popover/popover.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/page/page-content/page-content.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/page/page.build.mjs +3 -2
- app-ng-runtime/build-task/esm2022/public_api.mjs +1 -2
- app-ng-runtime/build-task/esm2022/utils/utils.mjs +1 -1
- app-ng-runtime/build-task/fesm2022/index.mjs +340 -341
- app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/build-task/public_api.d.ts +0 -1
- app-ng-runtime/components/advanced/carousel/.npmignore +2 -0
- app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +29 -18
- app-ng-runtime/components/advanced/carousel/carousel-template/carousel-template.directive.d.ts +3 -3
- app-ng-runtime/components/advanced/carousel/carousel.directive.d.ts +2 -2
- app-ng-runtime/components/advanced/carousel/esm2022/carousel-template/carousel-template.directive.mjs +15 -9
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +3 -2
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.directive.mjs +12 -7
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.module.mjs +2 -2
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +28 -16
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/custom/.npmignore +2 -0
- app-ng-runtime/components/advanced/custom/bundles/index.umd.js +31 -94
- app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +2 -0
- app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget.props.d.ts +1 -0
- app-ng-runtime/components/advanced/custom/custom-widget.module.d.ts +4 -5
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +21 -13
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget.props.mjs +5 -2
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +5 -5
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget.module.mjs +2 -9
- app-ng-runtime/components/advanced/custom/esm2022/public_api.mjs +1 -2
- app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +31 -93
- app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/custom/public_api.d.ts +0 -1
- app-ng-runtime/components/advanced/login/.npmignore +2 -0
- app-ng-runtime/components/advanced/login/bundles/index.umd.js +19 -13
- app-ng-runtime/components/advanced/login/esm2022/login.component.mjs +17 -10
- app-ng-runtime/components/advanced/login/esm2022/login.module.mjs +2 -2
- app-ng-runtime/components/advanced/login/fesm2022/index.mjs +18 -11
- app-ng-runtime/components/advanced/login/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/login/login.component.d.ts +2 -2
- app-ng-runtime/components/advanced/marquee/.npmignore +2 -0
- app-ng-runtime/components/advanced/marquee/bundles/index.umd.js +11 -6
- app-ng-runtime/components/advanced/marquee/esm2022/marquee.directive.mjs +12 -7
- app-ng-runtime/components/advanced/marquee/esm2022/marquee.module.mjs +2 -2
- app-ng-runtime/components/advanced/marquee/fesm2022/index.mjs +13 -8
- app-ng-runtime/components/advanced/marquee/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/marquee/marquee.directive.d.ts +2 -2
- app-ng-runtime/components/base/.npmignore +2 -0
- app-ng-runtime/components/base/bundles/index.umd.js +400 -312
- app-ng-runtime/components/base/directives/show-in-device.directive.d.ts +3 -6
- app-ng-runtime/components/base/esm2022/components.module.mjs +2 -2
- app-ng-runtime/components/base/esm2022/directives/show-in-device.directive.mjs +13 -15
- app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +35 -34
- app-ng-runtime/components/base/esm2022/pipes/image.pipe.mjs +2 -2
- app-ng-runtime/components/base/esm2022/pipes/sanitize.pipe.mjs +3 -3
- app-ng-runtime/components/base/esm2022/pipes/trust-as.pipe.mjs +3 -3
- app-ng-runtime/components/base/esm2022/pipes/wm-pipe.mjs +3 -2
- app-ng-runtime/components/base/esm2022/public_api.mjs +2 -1
- app-ng-runtime/components/base/esm2022/utils/data-utils.mjs +30 -29
- app-ng-runtime/components/base/esm2022/utils/form-utils.mjs +48 -42
- app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +8 -7
- app-ng-runtime/components/base/esm2022/utils/widget-utils.mjs +28 -27
- app-ng-runtime/components/base/esm2022/widgets/common/base/base-container.component.mjs +8 -7
- app-ng-runtime/components/base/esm2022/widgets/common/base/base-field-validations.mjs +23 -22
- app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +63 -42
- app-ng-runtime/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +4 -4
- app-ng-runtime/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +52 -18
- app-ng-runtime/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +6 -5
- app-ng-runtime/components/base/esm2022/widgets/common/base/stylable.component.mjs +3 -3
- app-ng-runtime/components/base/esm2022/widgets/common/base/text-content.directive.mjs +3 -3
- app-ng-runtime/components/base/esm2022/widgets/common/container/container.directive.mjs +12 -7
- app-ng-runtime/components/base/esm2022/widgets/common/dialog/dialog.service.mjs +5 -4
- app-ng-runtime/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +12 -7
- app-ng-runtime/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +14 -7
- app-ng-runtime/components/base/esm2022/widgets/common/message/message.component.mjs +16 -10
- app-ng-runtime/components/base/esm2022/widgets/common/partial/partial.directive.mjs +14 -8
- app-ng-runtime/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +9 -8
- app-ng-runtime/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/common/redraw/redrawable.directive.mjs +4 -4
- app-ng-runtime/components/base/esm2022/widgets/common/repeat-template/repeat-template.directive.mjs +15 -9
- app-ng-runtime/components/base/esm2022/widgets/common/smooth-scroll/smooth-scroll.directive.mjs +11 -10
- app-ng-runtime/components/base/esm2022/widgets/framework/deviceview.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/framework/property-change-handler.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/framework/styler.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/framework/widget-props.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +4 -3
- app-ng-runtime/components/base/esm2022/widgets/framework/widget-registry.mjs +1 -1
- app-ng-runtime/components/base/fesm2022/index.mjs +405 -315
- app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
- app-ng-runtime/components/base/public_api.d.ts +1 -0
- app-ng-runtime/components/base/utils/data-utils.d.ts +1 -0
- app-ng-runtime/components/base/utils/widget-utils.d.ts +2 -2
- app-ng-runtime/components/base/widgets/common/base/base-container.component.d.ts +1 -1
- app-ng-runtime/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
- app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +22 -4
- app-ng-runtime/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +1 -1
- app-ng-runtime/components/base/widgets/common/base/partial-container.directive.d.ts +1 -1
- app-ng-runtime/components/base/widgets/common/container/container.directive.d.ts +2 -2
- app-ng-runtime/components/base/widgets/common/item-template/item-template.directive.d.ts +2 -2
- app-ng-runtime/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +2 -2
- app-ng-runtime/components/base/widgets/common/message/message.component.d.ts +2 -2
- app-ng-runtime/components/base/widgets/common/partial/partial.directive.d.ts +2 -2
- app-ng-runtime/components/base/widgets/common/repeat-template/repeat-template.directive.d.ts +3 -3
- app-ng-runtime/components/basic/default/.npmignore +2 -0
- app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +2 -2
- app-ng-runtime/components/basic/default/audio/audio.component.d.ts +2 -2
- app-ng-runtime/components/basic/default/bundles/index.umd.js +158 -115
- app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +31 -27
- app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +13 -7
- app-ng-runtime/components/basic/default/esm2022/basic.module.mjs +2 -2
- app-ng-runtime/components/basic/default/esm2022/html/html.directive.mjs +13 -8
- app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +19 -14
- app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +15 -9
- app-ng-runtime/components/basic/default/esm2022/label/label.directive.mjs +15 -9
- app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +12 -7
- app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +1 -1
- app-ng-runtime/components/basic/default/esm2022/spinner/spinner.component.mjs +34 -30
- app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +21 -17
- app-ng-runtime/components/basic/default/fesm2022/index.mjs +157 -113
- app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/default/html/html.directive.d.ts +2 -2
- app-ng-runtime/components/basic/default/icon/icon.component.d.ts +2 -2
- app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +2 -2
- app-ng-runtime/components/basic/default/label/label.directive.d.ts +2 -2
- app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -2
- app-ng-runtime/components/basic/default/spinner/spinner.component.d.ts +2 -2
- app-ng-runtime/components/basic/default/video/video.component.d.ts +2 -2
- app-ng-runtime/components/basic/progress/.npmignore +2 -0
- app-ng-runtime/components/basic/progress/bundles/index.umd.js +40 -28
- app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +22 -15
- app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +17 -10
- app-ng-runtime/components/basic/progress/esm2022/progress.module.mjs +2 -2
- app-ng-runtime/components/basic/progress/esm2022/utils.mjs +3 -3
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs +39 -26
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +2 -2
- app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +2 -2
- app-ng-runtime/components/basic/rich-text-editor/.npmignore +2 -0
- app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +19 -13
- app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +17 -10
- app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.module.mjs +2 -2
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +18 -11
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/rich-text-editor/rich-text-editor.component.d.ts +2 -2
- app-ng-runtime/components/basic/search/.npmignore +2 -0
- app-ng-runtime/components/basic/search/bundles/index.umd.js +186 -175
- app-ng-runtime/components/basic/search/esm2022/data-provider/data-provider.mjs +1 -1
- app-ng-runtime/components/basic/search/esm2022/data-provider/local-data-provider.mjs +26 -23
- app-ng-runtime/components/basic/search/esm2022/data-provider/remote-data-provider.mjs +12 -11
- app-ng-runtime/components/basic/search/esm2022/scrollable.directive.mjs +3 -3
- app-ng-runtime/components/basic/search/esm2022/search.component.mjs +148 -138
- app-ng-runtime/components/basic/search/esm2022/search.module.mjs +2 -2
- app-ng-runtime/components/basic/search/fesm2022/index.mjs +186 -174
- app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/search/search.component.d.ts +2 -2
- app-ng-runtime/components/basic/tree/.npmignore +2 -0
- app-ng-runtime/components/basic/tree/bundles/index.umd.js +23 -17
- app-ng-runtime/components/basic/tree/esm2022/tree.component.mjs +21 -14
- app-ng-runtime/components/basic/tree/esm2022/tree.module.mjs +2 -2
- app-ng-runtime/components/basic/tree/fesm2022/index.mjs +22 -15
- app-ng-runtime/components/basic/tree/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/tree/tree.component.d.ts +2 -2
- app-ng-runtime/components/chart/.npmignore +2 -0
- app-ng-runtime/components/chart/bundles/index.umd.js +97 -84
- app-ng-runtime/components/chart/chart.component.d.ts +3 -3
- app-ng-runtime/components/chart/chart.utils.d.ts +3 -3
- app-ng-runtime/components/chart/esm2022/chart.component.mjs +82 -68
- app-ng-runtime/components/chart/esm2022/chart.module.mjs +2 -2
- app-ng-runtime/components/chart/esm2022/chart.utils.mjs +14 -13
- app-ng-runtime/components/chart/fesm2022/index.mjs +95 -81
- app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/accordion/.npmignore +2 -0
- app-ng-runtime/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +2 -2
- app-ng-runtime/components/containers/accordion/accordion.directive.d.ts +2 -2
- app-ng-runtime/components/containers/accordion/bundles/index.umd.js +51 -40
- app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +23 -17
- app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.props.mjs +4 -4
- app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +25 -19
- app-ng-runtime/components/containers/accordion/esm2022/accordion.module.mjs +2 -2
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +50 -38
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/layout-grid/.npmignore +2 -0
- app-ng-runtime/components/containers/layout-grid/bundles/index.umd.js +32 -17
- app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid-column/layout-grid-column.directive.mjs +13 -8
- app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid-row/layout-grid-row.directive.mjs +12 -7
- app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid.directive.mjs +12 -7
- app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid.module.mjs +2 -2
- app-ng-runtime/components/containers/layout-grid/fesm2022/index.mjs +34 -19
- app-ng-runtime/components/containers/layout-grid/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/layout-grid/layout-grid-column/layout-grid-column.directive.d.ts +2 -2
- app-ng-runtime/components/containers/layout-grid/layout-grid-row/layout-grid-row.directive.d.ts +2 -2
- app-ng-runtime/components/containers/layout-grid/layout-grid.directive.d.ts +2 -2
- app-ng-runtime/components/containers/linear-layout/.npmignore +2 -0
- app-ng-runtime/components/containers/linear-layout/bundles/index.umd.js +21 -11
- app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout-item/linear-layout-item.directive.mjs +12 -7
- app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout.directive.mjs +12 -7
- app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout.module.mjs +2 -2
- app-ng-runtime/components/containers/linear-layout/fesm2022/index.mjs +23 -13
- app-ng-runtime/components/containers/linear-layout/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/linear-layout/linear-layout-item/linear-layout-item.directive.d.ts +2 -2
- app-ng-runtime/components/containers/linear-layout/linear-layout.directive.d.ts +2 -2
- app-ng-runtime/components/containers/panel/.npmignore +2 -0
- app-ng-runtime/components/containers/panel/bundles/index.umd.js +85 -85
- app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +83 -82
- app-ng-runtime/components/containers/panel/esm2022/panel.module.mjs +2 -2
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs +84 -83
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/panel.component.d.ts +3 -3
- app-ng-runtime/components/containers/tabs/.npmignore +2 -0
- app-ng-runtime/components/containers/tabs/bundles/index.umd.js +74 -63
- app-ng-runtime/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +14 -8
- app-ng-runtime/components/containers/tabs/esm2022/tab-pane/tab-pane.props.mjs +4 -4
- app-ng-runtime/components/containers/tabs/esm2022/tabs.animator.mjs +1 -1
- app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +57 -51
- app-ng-runtime/components/containers/tabs/esm2022/tabs.module.mjs +2 -2
- app-ng-runtime/components/containers/tabs/esm2022/tabs.props.mjs +1 -1
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +73 -61
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/tabs/tab-pane/tab-pane.component.d.ts +2 -2
- app-ng-runtime/components/containers/tabs/tabs.component.d.ts +2 -2
- app-ng-runtime/components/containers/tile/.npmignore +2 -0
- app-ng-runtime/components/containers/tile/bundles/index.umd.js +11 -6
- app-ng-runtime/components/containers/tile/esm2022/tile.directive.mjs +12 -7
- app-ng-runtime/components/containers/tile/esm2022/tile.module.mjs +2 -2
- app-ng-runtime/components/containers/tile/fesm2022/index.mjs +13 -8
- app-ng-runtime/components/containers/tile/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/tile/tile.directive.d.ts +2 -2
- app-ng-runtime/components/containers/wizard/.npmignore +2 -0
- app-ng-runtime/components/containers/wizard/bundles/index.umd.js +102 -98
- app-ng-runtime/components/containers/wizard/esm2022/wizard-step/wizard-step.directive.mjs +13 -8
- app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +92 -93
- app-ng-runtime/components/containers/wizard/esm2022/wizard.module.mjs +2 -2
- app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +104 -100
- app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/wizard/wizard-step/wizard-step.directive.d.ts +2 -2
- app-ng-runtime/components/containers/wizard/wizard.component.d.ts +2 -2
- app-ng-runtime/components/data/card/.npmignore +2 -0
- app-ng-runtime/components/data/card/bundles/index.umd.js +70 -50
- app-ng-runtime/components/data/card/card-actions/card-actions.directive.d.ts +2 -2
- app-ng-runtime/components/data/card/card-content/card-content.component.d.ts +2 -2
- app-ng-runtime/components/data/card/card-footer/card-footer.directive.d.ts +2 -2
- app-ng-runtime/components/data/card/card.component.d.ts +2 -2
- app-ng-runtime/components/data/card/esm2022/card-actions/card-actions.directive.mjs +12 -7
- app-ng-runtime/components/data/card/esm2022/card-content/card-content.component.mjs +15 -9
- app-ng-runtime/components/data/card/esm2022/card-footer/card-footer.directive.mjs +12 -7
- app-ng-runtime/components/data/card/esm2022/card.component.mjs +38 -34
- app-ng-runtime/components/data/card/esm2022/card.module.mjs +2 -2
- app-ng-runtime/components/data/card/fesm2022/index.mjs +72 -52
- app-ng-runtime/components/data/card/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/.npmignore +2 -0
- app-ng-runtime/components/data/form/bundles/index.umd.js +197 -184
- app-ng-runtime/components/data/form/esm2022/form-action/form-action.directive.mjs +15 -9
- app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +21 -15
- app-ng-runtime/components/data/form/esm2022/form-field/form-field.props.mjs +1 -1
- app-ng-runtime/components/data/form/esm2022/form-widget.directive.mjs +4 -4
- app-ng-runtime/components/data/form/esm2022/form.component.mjs +138 -134
- app-ng-runtime/components/data/form/esm2022/form.module.mjs +2 -2
- app-ng-runtime/components/data/form/esm2022/form.props.mjs +1 -1
- app-ng-runtime/components/data/form/esm2022/live-actions/dependson.directive.mjs +4 -4
- app-ng-runtime/components/data/form/esm2022/live-actions/live-actions.directive.mjs +4 -4
- app-ng-runtime/components/data/form/esm2022/live-filter/live-filter.directive.mjs +7 -6
- app-ng-runtime/components/data/form/esm2022/live-form/live-form.directive.mjs +14 -13
- app-ng-runtime/components/data/form/fesm2022/index.mjs +201 -187
- app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/form-action/form-action.directive.d.ts +2 -2
- app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +2 -2
- app-ng-runtime/components/data/form/form.component.d.ts +4 -4
- app-ng-runtime/components/data/form/live-form/live-form.directive.d.ts +1 -1
- app-ng-runtime/components/data/list/.npmignore +2 -0
- app-ng-runtime/components/data/list/bundles/index.umd.js +829 -818
- app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +9 -4
- app-ng-runtime/components/data/list/esm2022/list.animator.mjs +5 -3
- app-ng-runtime/components/data/list/esm2022/list.component.mjs +817 -810
- app-ng-runtime/components/data/list/esm2022/list.module.mjs +2 -2
- app-ng-runtime/components/data/list/fesm2022/index.mjs +828 -816
- app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/list/list-item.directive.d.ts +4 -0
- app-ng-runtime/components/data/list/list.component.d.ts +55 -54
- app-ng-runtime/components/data/live-table/.npmignore +2 -0
- app-ng-runtime/components/data/live-table/bundles/index.umd.js +13 -7
- app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +14 -8
- app-ng-runtime/components/data/live-table/esm2022/live-table.module.mjs +2 -2
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs +15 -9
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/live-table/live-table.component.d.ts +2 -2
- app-ng-runtime/components/data/pagination/.npmignore +2 -0
- app-ng-runtime/components/data/pagination/bundles/index.umd.js +113 -110
- app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +111 -107
- app-ng-runtime/components/data/pagination/esm2022/pagination.module.mjs +2 -2
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs +112 -108
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/pagination/pagination.component.d.ts +2 -2
- app-ng-runtime/components/data/table/.npmignore +2 -0
- app-ng-runtime/components/data/table/bundles/index.umd.js +314 -269
- app-ng-runtime/components/data/table/esm2022/table-action/table-action.directive.mjs +15 -9
- app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +40 -25
- app-ng-runtime/components/data/table/esm2022/table-column/table-column.props.mjs +2 -2
- app-ng-runtime/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +13 -8
- app-ng-runtime/components/data/table/esm2022/table-cud.directive.mjs +10 -9
- app-ng-runtime/components/data/table/esm2022/table-filter.directive.mjs +56 -58
- app-ng-runtime/components/data/table/esm2022/table-row/table-row.directive.mjs +13 -8
- app-ng-runtime/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +14 -8
- app-ng-runtime/components/data/table/esm2022/table.component.mjs +165 -150
- app-ng-runtime/components/data/table/esm2022/table.module.mjs +2 -2
- app-ng-runtime/components/data/table/esm2022/table.props.mjs +2 -2
- app-ng-runtime/components/data/table/fesm2022/index.mjs +313 -267
- app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/table-action/table-action.directive.d.ts +2 -2
- app-ng-runtime/components/data/table/table-column/table-column.directive.d.ts +8 -8
- app-ng-runtime/components/data/table/table-column-group/table-column-group.directive.d.ts +2 -2
- app-ng-runtime/components/data/table/table-row/table-row.directive.d.ts +2 -2
- app-ng-runtime/components/data/table/table-row-action/table-row-action.directive.d.ts +2 -2
- app-ng-runtime/components/data/table/table.component.d.ts +4 -4
- app-ng-runtime/components/dialogs/alert-dialog/.npmignore +2 -0
- app-ng-runtime/components/dialogs/alert-dialog/alert-dialog.component.d.ts +2 -2
- app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +15 -9
- app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +16 -10
- app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +17 -11
- app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/confirm-dialog/.npmignore +2 -0
- app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +17 -11
- app-ng-runtime/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +2 -2
- app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +18 -12
- app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +19 -13
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/default/.npmignore +2 -0
- app-ng-runtime/components/dialogs/default/base-dialog.d.ts +2 -2
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +75 -71
- app-ng-runtime/components/dialogs/default/dialog-footer/dialog-footer.directive.d.ts +2 -2
- app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +14 -9
- app-ng-runtime/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +4 -4
- app-ng-runtime/components/dialogs/default/esm2022/dialog-footer/dialog-footer.directive.mjs +12 -7
- app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +49 -55
- app-ng-runtime/components/dialogs/default/esm2022/dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +76 -72
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/design-dialog/.npmignore +2 -0
- app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +20 -14
- app-ng-runtime/components/dialogs/design-dialog/dialog.component.d.ts +2 -2
- app-ng-runtime/components/dialogs/design-dialog/esm2022/design-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +21 -15
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +22 -16
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/iframe-dialog/.npmignore +2 -0
- app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +20 -14
- app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +21 -15
- app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +22 -16
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +2 -2
- app-ng-runtime/components/dialogs/login-dialog/.npmignore +2 -0
- app-ng-runtime/components/dialogs/login-dialog/bundles/index.umd.js +4 -4
- app-ng-runtime/components/dialogs/login-dialog/esm2022/login-dialog.directive.mjs +4 -4
- app-ng-runtime/components/dialogs/login-dialog/esm2022/login-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/login-dialog/fesm2022/index.mjs +4 -4
- app-ng-runtime/components/dialogs/login-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/partial-dialog/.npmignore +2 -0
- app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +16 -10
- app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +17 -11
- app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +18 -12
- app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/partial-dialog/partial-dialog.component.d.ts +2 -2
- app-ng-runtime/components/input/calendar/.npmignore +2 -0
- app-ng-runtime/components/input/calendar/bundles/index.umd.js +46 -38
- app-ng-runtime/components/input/calendar/calendar.component.d.ts +2 -2
- app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +44 -35
- app-ng-runtime/components/input/calendar/esm2022/calendar.module.mjs +2 -2
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs +45 -36
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/chips/.npmignore +2 -0
- app-ng-runtime/components/input/chips/bundles/index.umd.js +69 -61
- app-ng-runtime/components/input/chips/chips.component.d.ts +3 -3
- app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +67 -58
- app-ng-runtime/components/input/chips/esm2022/chips.module.mjs +2 -2
- app-ng-runtime/components/input/chips/fesm2022/index.mjs +67 -58
- app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/color-picker/.npmignore +2 -0
- app-ng-runtime/components/input/color-picker/bundles/index.umd.js +25 -12
- app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +2 -2
- app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +26 -13
- app-ng-runtime/components/input/color-picker/esm2022/color-picker.module.mjs +2 -2
- app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +26 -13
- app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/currency/.npmignore +2 -0
- app-ng-runtime/components/input/currency/bundles/index.umd.js +18 -11
- app-ng-runtime/components/input/currency/currency.component.d.ts +2 -2
- app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +19 -12
- app-ng-runtime/components/input/currency/esm2022/currency.module.mjs +2 -2
- app-ng-runtime/components/input/currency/fesm2022/index.mjs +19 -12
- app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/.npmignore +2 -0
- app-ng-runtime/components/input/default/base-form.component.d.ts +3 -3
- app-ng-runtime/components/input/default/bundles/index.umd.js +583 -450
- app-ng-runtime/components/input/default/button/button.component.d.ts +2 -2
- app-ng-runtime/components/input/default/button-group/button-group.directive.d.ts +2 -2
- app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +3 -2
- app-ng-runtime/components/input/default/checkboxset/checkboxset.component.d.ts +2 -2
- app-ng-runtime/components/input/default/composite/composite.directive.d.ts +2 -2
- app-ng-runtime/components/input/default/dataset-aware-form.component.d.ts +4 -4
- app-ng-runtime/components/input/default/esm2022/base-form-custom.component.mjs +3 -3
- app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +17 -11
- app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +32 -28
- app-ng-runtime/components/input/default/esm2022/button-group/button-group.directive.mjs +12 -7
- app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +5 -4
- app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +27 -17
- app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +107 -103
- app-ng-runtime/components/input/default/esm2022/composite/composite.directive.mjs +12 -7
- app-ng-runtime/components/input/default/esm2022/dataset-aware-form.component.mjs +32 -26
- app-ng-runtime/components/input/default/esm2022/input.module.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +17 -10
- app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +105 -102
- app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +43 -32
- app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +38 -31
- app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +18 -11
- app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +23 -12
- app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +23 -12
- app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +20 -11
- app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +35 -24
- app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +21 -12
- app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +20 -11
- app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +21 -12
- app-ng-runtime/components/input/default/fesm2022/index.mjs +586 -451
- app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/number/number.component.d.ts +2 -2
- app-ng-runtime/components/input/default/radioset/radioset.component.d.ts +2 -2
- app-ng-runtime/components/input/default/select/select.component.d.ts +2 -2
- app-ng-runtime/components/input/default/switch/switch.component.d.ts +2 -2
- app-ng-runtime/components/input/default/text/base/base-input.d.ts +3 -2
- app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +2 -2
- app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +2 -2
- app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +2 -2
- app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +1 -1
- app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +2 -2
- app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +2 -2
- app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +2 -2
- app-ng-runtime/components/input/epoch/.npmignore +2 -0
- app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +2 -2
- app-ng-runtime/components/input/epoch/bundles/index.umd.js +200 -163
- app-ng-runtime/components/input/epoch/date/date.component.d.ts +2 -2
- app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +2 -2
- app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +44 -36
- app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +29 -21
- app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -2
- app-ng-runtime/components/input/epoch/esm2022/date/imaskUtil.mjs +1 -1
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +42 -41
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +49 -37
- app-ng-runtime/components/input/epoch/esm2022/epoch.module.mjs +2 -2
- app-ng-runtime/components/input/epoch/esm2022/picker/picker.component.mjs +7 -5
- app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +35 -24
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs +197 -159
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/epoch/time/time.component.d.ts +2 -2
- app-ng-runtime/components/input/file-upload/.npmignore +2 -0
- app-ng-runtime/components/input/file-upload/bundles/index.umd.js +133 -135
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +131 -132
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.module.mjs +2 -2
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +132 -133
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +2 -2
- app-ng-runtime/components/input/rating/.npmignore +2 -0
- app-ng-runtime/components/input/rating/bundles/index.umd.js +60 -51
- app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +58 -48
- app-ng-runtime/components/input/rating/esm2022/rating.module.mjs +2 -2
- app-ng-runtime/components/input/rating/fesm2022/index.mjs +58 -48
- app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/rating/rating.component.d.ts +2 -2
- app-ng-runtime/components/input/slider/.npmignore +2 -0
- app-ng-runtime/components/input/slider/bundles/index.umd.js +23 -13
- app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +24 -14
- app-ng-runtime/components/input/slider/esm2022/slider.module.mjs +2 -2
- app-ng-runtime/components/input/slider/fesm2022/index.mjs +24 -14
- app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/slider/slider.component.d.ts +2 -2
- app-ng-runtime/components/navigation/breadcrumb/.npmignore +2 -0
- app-ng-runtime/components/navigation/breadcrumb/breadcrumb.component.d.ts +2 -2
- app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +33 -28
- app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +34 -29
- app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.module.mjs +2 -2
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +35 -30
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/.npmignore +2 -0
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js +160 -145
- app-ng-runtime/components/navigation/menu/esm2022/menu-adapator.component.mjs +13 -7
- app-ng-runtime/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +5 -4
- app-ng-runtime/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +27 -26
- app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +44 -40
- app-ng-runtime/components/navigation/menu/esm2022/menu.module.mjs +4 -3
- app-ng-runtime/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +14 -8
- app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +63 -63
- app-ng-runtime/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +3 -3
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +160 -144
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/menu-adapator.component.d.ts +1 -1
- app-ng-runtime/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +12 -1
- app-ng-runtime/components/navigation/menu/menu.component.d.ts +2 -2
- app-ng-runtime/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +3 -3
- app-ng-runtime/components/navigation/menu/nav/nav.component.d.ts +3 -4
- app-ng-runtime/components/navigation/navbar/.npmignore +2 -0
- app-ng-runtime/components/navigation/navbar/bundles/index.umd.js +29 -22
- app-ng-runtime/components/navigation/navbar/esm2022/navbar.component.mjs +30 -23
- app-ng-runtime/components/navigation/navbar/esm2022/navbar.module.mjs +2 -2
- app-ng-runtime/components/navigation/navbar/fesm2022/index.mjs +31 -24
- app-ng-runtime/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/navbar/navbar.component.d.ts +2 -2
- app-ng-runtime/components/navigation/popover/.npmignore +2 -0
- app-ng-runtime/components/navigation/popover/bundles/index.umd.js +18 -11
- app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +19 -12
- app-ng-runtime/components/navigation/popover/esm2022/popover.module.mjs +2 -2
- app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +20 -13
- app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/popover/popover.component.d.ts +2 -2
- app-ng-runtime/components/page/default/.npmignore +2 -0
- app-ng-runtime/components/page/default/bundles/index.umd.js +63 -31
- app-ng-runtime/components/page/default/content/content.component.d.ts +2 -2
- app-ng-runtime/components/page/default/esm2022/content/content.component.mjs +13 -7
- app-ng-runtime/components/page/default/esm2022/layout.directive.mjs +12 -7
- app-ng-runtime/components/page/default/esm2022/page-content/page-content.component.mjs +13 -7
- app-ng-runtime/components/page/default/esm2022/page.directive.mjs +12 -7
- app-ng-runtime/components/page/default/esm2022/page.module.mjs +2 -2
- app-ng-runtime/components/page/default/esm2022/router-outlet.directive.mjs +12 -7
- app-ng-runtime/components/page/default/esm2022/spa-page.directive.mjs +12 -7
- app-ng-runtime/components/page/default/fesm2022/index.mjs +65 -33
- app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/default/layout.directive.d.ts +2 -2
- app-ng-runtime/components/page/default/page-content/page-content.component.d.ts +2 -2
- app-ng-runtime/components/page/default/page.directive.d.ts +2 -2
- app-ng-runtime/components/page/default/router-outlet.directive.d.ts +2 -2
- app-ng-runtime/components/page/default/spa-page.directive.d.ts +2 -2
- app-ng-runtime/components/page/footer/.npmignore +2 -0
- app-ng-runtime/components/page/footer/bundles/index.umd.js +11 -6
- app-ng-runtime/components/page/footer/esm2022/footer.directive.mjs +12 -7
- app-ng-runtime/components/page/footer/esm2022/footer.module.mjs +2 -2
- app-ng-runtime/components/page/footer/fesm2022/index.mjs +13 -8
- app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/footer/footer.directive.d.ts +2 -2
- app-ng-runtime/components/page/header/.npmignore +2 -0
- app-ng-runtime/components/page/header/bundles/index.umd.js +12 -6
- app-ng-runtime/components/page/header/esm2022/header.component.mjs +13 -7
- app-ng-runtime/components/page/header/esm2022/header.module.mjs +2 -2
- app-ng-runtime/components/page/header/fesm2022/index.mjs +14 -8
- app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/header/header.component.d.ts +2 -2
- app-ng-runtime/components/page/left-panel/.npmignore +2 -0
- app-ng-runtime/components/page/left-panel/bundles/index.umd.js +12 -7
- app-ng-runtime/components/page/left-panel/esm2022/left-panel.animator.mjs +1 -1
- app-ng-runtime/components/page/left-panel/esm2022/left-panel.directive.mjs +13 -8
- app-ng-runtime/components/page/left-panel/esm2022/left-panel.module.mjs +2 -2
- app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +14 -9
- app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/left-panel/left-panel.directive.d.ts +2 -2
- app-ng-runtime/components/page/right-panel/.npmignore +2 -0
- app-ng-runtime/components/page/right-panel/bundles/index.umd.js +11 -6
- app-ng-runtime/components/page/right-panel/esm2022/right-panel.directive.mjs +12 -7
- app-ng-runtime/components/page/right-panel/esm2022/right-panel.module.mjs +2 -2
- app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +13 -8
- app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/right-panel/right-panel.directive.d.ts +2 -2
- app-ng-runtime/components/page/top-nav/.npmignore +2 -0
- app-ng-runtime/components/page/top-nav/bundles/index.umd.js +11 -6
- app-ng-runtime/components/page/top-nav/esm2022/top-nav.directive.mjs +12 -7
- app-ng-runtime/components/page/top-nav/esm2022/top-nav.module.mjs +2 -2
- app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +13 -8
- app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/top-nav/top-nav.directive.d.ts +2 -2
- app-ng-runtime/components/prefab/.npmignore +2 -0
- app-ng-runtime/components/prefab/bundles/index.umd.js +28 -18
- app-ng-runtime/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +14 -8
- app-ng-runtime/components/prefab/esm2022/prefab.directive.mjs +15 -9
- app-ng-runtime/components/prefab/esm2022/prefab.module.mjs +2 -2
- app-ng-runtime/components/prefab/fesm2022/index.mjs +26 -15
- app-ng-runtime/components/prefab/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/prefab/prefab-container/prefab-container.directive.d.ts +2 -2
- app-ng-runtime/components/prefab/prefab.directive.d.ts +2 -2
- app-ng-runtime/core/.npmignore +2 -0
- app-ng-runtime/core/bundles/index.umd.js +158 -146
- app-ng-runtime/core/esm2022/core.module.mjs +2 -2
- app-ng-runtime/core/esm2022/public_api.mjs +3 -2
- app-ng-runtime/core/esm2022/services/constant.service.mjs +2 -2
- app-ng-runtime/core/esm2022/services/custom-icons-loader.service.mjs +26 -0
- app-ng-runtime/core/esm2022/services/field-type.service.mjs +5 -4
- app-ng-runtime/core/esm2022/services/field-widget.service.mjs +5 -4
- app-ng-runtime/core/esm2022/services/pagination.service.mjs +8 -7
- app-ng-runtime/core/esm2022/services/script-loader.service.mjs +3 -3
- app-ng-runtime/core/esm2022/services/state-persistence.service.mjs +18 -17
- app-ng-runtime/core/esm2022/services/user-custom-pipe-manager.service.mjs +2 -2
- app-ng-runtime/core/esm2022/services/utils.service.mjs +5 -4
- app-ng-runtime/core/esm2022/services/viewport.service.mjs +5 -4
- app-ng-runtime/core/esm2022/utils/build-utils.mjs +5 -4
- app-ng-runtime/core/esm2022/utils/dom.mjs +1 -1
- app-ng-runtime/core/esm2022/utils/event-notifier.mjs +1 -1
- app-ng-runtime/core/esm2022/utils/expression-parser.mjs +6 -5
- app-ng-runtime/core/esm2022/utils/id-generator.mjs +1 -1
- app-ng-runtime/core/esm2022/utils/lru-cache.mjs +3 -2
- app-ng-runtime/core/esm2022/utils/utils.mjs +79 -82
- app-ng-runtime/core/esm2022/utils/watcher.mjs +9 -7
- app-ng-runtime/core/esm2022/utils/wm-project-properties.mjs +1 -1
- app-ng-runtime/core/fesm2022/index.mjs +158 -142
- app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/public_api.d.ts +2 -1
- app-ng-runtime/core/services/custom-icons-loader.service.d.ts +7 -0
- app-ng-runtime/core/services/pagination.service.d.ts +1 -1
- app-ng-runtime/core/utils/utils.d.ts +5 -9
- app-ng-runtime/http/.npmignore +2 -0
- app-ng-runtime/http/bundles/index.umd.js +10 -10
- app-ng-runtime/http/esm2022/http-service.module.mjs +2 -2
- app-ng-runtime/http/esm2022/http.service.mjs +7 -6
- app-ng-runtime/http/esm2022/wm-http-request.mjs +1 -1
- app-ng-runtime/http/esm2022/wm-http-response.mjs +1 -1
- app-ng-runtime/http/fesm2022/index.mjs +7 -6
- app-ng-runtime/http/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/locales/angular/global/af-na.js +4 -4
- app-ng-runtime/locales/angular/global/af.js +4 -4
- app-ng-runtime/locales/angular/global/agq.js +4 -4
- app-ng-runtime/locales/angular/global/ak.js +4 -4
- app-ng-runtime/locales/angular/global/am.js +4 -4
- app-ng-runtime/locales/angular/global/ar-ae.js +4 -4
- app-ng-runtime/locales/angular/global/ar-bh.js +4 -4
- app-ng-runtime/locales/angular/global/ar-dj.js +4 -4
- app-ng-runtime/locales/angular/global/ar-dz.js +4 -4
- app-ng-runtime/locales/angular/global/ar-eg.js +4 -4
- app-ng-runtime/locales/angular/global/ar-eh.js +4 -4
- app-ng-runtime/locales/angular/global/ar-er.js +4 -4
- app-ng-runtime/locales/angular/global/ar-il.js +4 -4
- app-ng-runtime/locales/angular/global/ar-iq.js +4 -4
- app-ng-runtime/locales/angular/global/ar-jo.js +4 -4
- app-ng-runtime/locales/angular/global/ar-km.js +4 -4
- app-ng-runtime/locales/angular/global/ar-kw.js +4 -4
- app-ng-runtime/locales/angular/global/ar-lb.js +4 -4
- app-ng-runtime/locales/angular/global/ar-ly.js +4 -4
- app-ng-runtime/locales/angular/global/ar-ma.js +4 -4
- app-ng-runtime/locales/angular/global/ar-mr.js +4 -4
- app-ng-runtime/locales/angular/global/ar-om.js +4 -4
- app-ng-runtime/locales/angular/global/ar-ps.js +4 -4
- app-ng-runtime/locales/angular/global/ar-qa.js +4 -4
- app-ng-runtime/locales/angular/global/ar-sa.js +4 -4
- app-ng-runtime/locales/angular/global/ar-sd.js +4 -4
- app-ng-runtime/locales/angular/global/ar-so.js +4 -4
- app-ng-runtime/locales/angular/global/ar-ss.js +4 -4
- app-ng-runtime/locales/angular/global/ar-sy.js +4 -4
- app-ng-runtime/locales/angular/global/ar-td.js +4 -4
- app-ng-runtime/locales/angular/global/ar-tn.js +4 -4
- app-ng-runtime/locales/angular/global/ar-ye.js +4 -4
- app-ng-runtime/locales/angular/global/ar.js +4 -4
- app-ng-runtime/locales/angular/global/as.js +4 -4
- app-ng-runtime/locales/angular/global/asa.js +4 -4
- app-ng-runtime/locales/angular/global/ast.js +4 -4
- app-ng-runtime/locales/angular/global/az-cyrl.js +4 -4
- app-ng-runtime/locales/angular/global/az-latn.js +4 -4
- app-ng-runtime/locales/angular/global/az.js +4 -4
- app-ng-runtime/locales/angular/global/bas.js +4 -4
- app-ng-runtime/locales/angular/global/be-tarask.js +4 -4
- app-ng-runtime/locales/angular/global/be.js +4 -4
- app-ng-runtime/locales/angular/global/bem.js +4 -4
- app-ng-runtime/locales/angular/global/bez.js +4 -4
- app-ng-runtime/locales/angular/global/bg.js +4 -4
- app-ng-runtime/locales/angular/global/bm.js +4 -4
- app-ng-runtime/locales/angular/global/bn-in.js +4 -4
- app-ng-runtime/locales/angular/global/bn.js +4 -4
- app-ng-runtime/locales/angular/global/bo-in.js +4 -4
- app-ng-runtime/locales/angular/global/bo.js +4 -4
- app-ng-runtime/locales/angular/global/br.js +4 -4
- app-ng-runtime/locales/angular/global/brx.js +4 -4
- app-ng-runtime/locales/angular/global/bs-cyrl.js +4 -4
- app-ng-runtime/locales/angular/global/bs-latn.js +4 -4
- app-ng-runtime/locales/angular/global/bs.js +4 -4
- app-ng-runtime/locales/angular/global/ca-ad.js +4 -4
- app-ng-runtime/locales/angular/global/ca-es-valencia.js +4 -4
- app-ng-runtime/locales/angular/global/ca-fr.js +4 -4
- app-ng-runtime/locales/angular/global/ca-it.js +4 -4
- app-ng-runtime/locales/angular/global/ca.js +4 -4
- app-ng-runtime/locales/angular/global/ccp-in.js +4 -4
- app-ng-runtime/locales/angular/global/ccp.js +4 -4
- app-ng-runtime/locales/angular/global/ce.js +4 -4
- app-ng-runtime/locales/angular/global/ceb.js +4 -4
- app-ng-runtime/locales/angular/global/cgg.js +4 -4
- app-ng-runtime/locales/angular/global/chr.js +4 -4
- app-ng-runtime/locales/angular/global/ckb-ir.js +4 -4
- app-ng-runtime/locales/angular/global/ckb.js +4 -4
- app-ng-runtime/locales/angular/global/cs.js +4 -4
- app-ng-runtime/locales/angular/global/cy.js +4 -4
- app-ng-runtime/locales/angular/global/da-gl.js +4 -4
- app-ng-runtime/locales/angular/global/da.js +4 -4
- app-ng-runtime/locales/angular/global/dav.js +4 -4
- app-ng-runtime/locales/angular/global/de-at.js +4 -4
- app-ng-runtime/locales/angular/global/de-be.js +4 -4
- app-ng-runtime/locales/angular/global/de-ch.js +4 -4
- app-ng-runtime/locales/angular/global/de-it.js +4 -4
- app-ng-runtime/locales/angular/global/de-li.js +4 -4
- app-ng-runtime/locales/angular/global/de-lu.js +4 -4
- app-ng-runtime/locales/angular/global/de.js +4 -4
- app-ng-runtime/locales/angular/global/dje.js +4 -4
- app-ng-runtime/locales/angular/global/doi.js +4 -4
- app-ng-runtime/locales/angular/global/dsb.js +4 -4
- app-ng-runtime/locales/angular/global/dua.js +4 -4
- app-ng-runtime/locales/angular/global/dyo.js +4 -4
- app-ng-runtime/locales/angular/global/dz.js +4 -4
- app-ng-runtime/locales/angular/global/ebu.js +4 -4
- app-ng-runtime/locales/angular/global/ee-tg.js +4 -4
- app-ng-runtime/locales/angular/global/ee.js +4 -4
- app-ng-runtime/locales/angular/global/el-cy.js +4 -4
- app-ng-runtime/locales/angular/global/el.js +4 -4
- app-ng-runtime/locales/angular/global/en-001.js +4 -4
- app-ng-runtime/locales/angular/global/en-150.js +4 -4
- app-ng-runtime/locales/angular/global/en-ae.js +4 -4
- app-ng-runtime/locales/angular/global/en-ag.js +4 -4
- app-ng-runtime/locales/angular/global/en-ai.js +4 -4
- app-ng-runtime/locales/angular/global/en-as.js +4 -4
- app-ng-runtime/locales/angular/global/en-at.js +4 -4
- app-ng-runtime/locales/angular/global/en-au.js +4 -4
- app-ng-runtime/locales/angular/global/en-bb.js +4 -4
- app-ng-runtime/locales/angular/global/en-be.js +4 -4
- app-ng-runtime/locales/angular/global/en-bi.js +4 -4
- app-ng-runtime/locales/angular/global/en-bm.js +4 -4
- app-ng-runtime/locales/angular/global/en-bs.js +4 -4
- app-ng-runtime/locales/angular/global/en-bw.js +4 -4
- app-ng-runtime/locales/angular/global/en-bz.js +4 -4
- app-ng-runtime/locales/angular/global/en-ca.js +4 -4
- app-ng-runtime/locales/angular/global/en-cc.js +4 -4
- app-ng-runtime/locales/angular/global/en-ch.js +4 -4
- app-ng-runtime/locales/angular/global/en-ck.js +4 -4
- app-ng-runtime/locales/angular/global/en-cm.js +4 -4
- app-ng-runtime/locales/angular/global/en-cx.js +4 -4
- app-ng-runtime/locales/angular/global/en-cy.js +4 -4
- app-ng-runtime/locales/angular/global/en-de.js +4 -4
- app-ng-runtime/locales/angular/global/en-dg.js +4 -4
- app-ng-runtime/locales/angular/global/en-dk.js +4 -4
- app-ng-runtime/locales/angular/global/en-dm.js +4 -4
- app-ng-runtime/locales/angular/global/en-er.js +4 -4
- app-ng-runtime/locales/angular/global/en-fi.js +4 -4
- app-ng-runtime/locales/angular/global/en-fj.js +4 -4
- app-ng-runtime/locales/angular/global/en-fk.js +4 -4
- app-ng-runtime/locales/angular/global/en-fm.js +4 -4
- app-ng-runtime/locales/angular/global/en-gb.js +4 -4
- app-ng-runtime/locales/angular/global/en-gd.js +4 -4
- app-ng-runtime/locales/angular/global/en-gg.js +4 -4
- app-ng-runtime/locales/angular/global/en-gh.js +4 -4
- app-ng-runtime/locales/angular/global/en-gi.js +4 -4
- app-ng-runtime/locales/angular/global/en-gm.js +4 -4
- app-ng-runtime/locales/angular/global/en-gu.js +4 -4
- app-ng-runtime/locales/angular/global/en-gy.js +4 -4
- app-ng-runtime/locales/angular/global/en-hk.js +4 -4
- app-ng-runtime/locales/angular/global/en-ie.js +4 -4
- app-ng-runtime/locales/angular/global/en-il.js +4 -4
- app-ng-runtime/locales/angular/global/en-im.js +4 -4
- app-ng-runtime/locales/angular/global/en-in.js +4 -4
- app-ng-runtime/locales/angular/global/en-io.js +4 -4
- app-ng-runtime/locales/angular/global/en-je.js +4 -4
- app-ng-runtime/locales/angular/global/en-jm.js +4 -4
- app-ng-runtime/locales/angular/global/en-ke.js +4 -4
- app-ng-runtime/locales/angular/global/en-ki.js +4 -4
- app-ng-runtime/locales/angular/global/en-kn.js +4 -4
- app-ng-runtime/locales/angular/global/en-ky.js +4 -4
- app-ng-runtime/locales/angular/global/en-lc.js +4 -4
- app-ng-runtime/locales/angular/global/en-lr.js +4 -4
- app-ng-runtime/locales/angular/global/en-ls.js +4 -4
- app-ng-runtime/locales/angular/global/en-mg.js +4 -4
- app-ng-runtime/locales/angular/global/en-mh.js +4 -4
- app-ng-runtime/locales/angular/global/en-mo.js +4 -4
- app-ng-runtime/locales/angular/global/en-mp.js +4 -4
- app-ng-runtime/locales/angular/global/en-ms.js +4 -4
- app-ng-runtime/locales/angular/global/en-mt.js +4 -4
- app-ng-runtime/locales/angular/global/en-mu.js +4 -4
- app-ng-runtime/locales/angular/global/en-mv.js +4 -4
- app-ng-runtime/locales/angular/global/en-mw.js +4 -4
- app-ng-runtime/locales/angular/global/en-my.js +4 -4
- app-ng-runtime/locales/angular/global/en-na.js +4 -4
- app-ng-runtime/locales/angular/global/en-nf.js +4 -4
- app-ng-runtime/locales/angular/global/en-ng.js +4 -4
- app-ng-runtime/locales/angular/global/en-nl.js +4 -4
- app-ng-runtime/locales/angular/global/en-nr.js +4 -4
- app-ng-runtime/locales/angular/global/en-nu.js +4 -4
- app-ng-runtime/locales/angular/global/en-nz.js +4 -4
- app-ng-runtime/locales/angular/global/en-pg.js +4 -4
- app-ng-runtime/locales/angular/global/en-ph.js +4 -4
- app-ng-runtime/locales/angular/global/en-pk.js +4 -4
- app-ng-runtime/locales/angular/global/en-pn.js +4 -4
- app-ng-runtime/locales/angular/global/en-pr.js +4 -4
- app-ng-runtime/locales/angular/global/en-pw.js +4 -4
- app-ng-runtime/locales/angular/global/en-rw.js +4 -4
- app-ng-runtime/locales/angular/global/en-sb.js +4 -4
- app-ng-runtime/locales/angular/global/en-sc.js +4 -4
- app-ng-runtime/locales/angular/global/en-sd.js +4 -4
- app-ng-runtime/locales/angular/global/en-se.js +4 -4
- app-ng-runtime/locales/angular/global/en-sg.js +4 -4
- app-ng-runtime/locales/angular/global/en-sh.js +4 -4
- app-ng-runtime/locales/angular/global/en-si.js +4 -4
- app-ng-runtime/locales/angular/global/en-sl.js +4 -4
- app-ng-runtime/locales/angular/global/en-ss.js +4 -4
- app-ng-runtime/locales/angular/global/en-sx.js +4 -4
- app-ng-runtime/locales/angular/global/en-sz.js +4 -4
- app-ng-runtime/locales/angular/global/en-tc.js +4 -4
- app-ng-runtime/locales/angular/global/en-tk.js +4 -4
- app-ng-runtime/locales/angular/global/en-to.js +4 -4
- app-ng-runtime/locales/angular/global/en-tt.js +4 -4
- app-ng-runtime/locales/angular/global/en-tv.js +4 -4
- app-ng-runtime/locales/angular/global/en-tz.js +4 -4
- app-ng-runtime/locales/angular/global/en-ug.js +4 -4
- app-ng-runtime/locales/angular/global/en-um.js +4 -4
- app-ng-runtime/locales/angular/global/en-vc.js +4 -4
- app-ng-runtime/locales/angular/global/en-vg.js +4 -4
- app-ng-runtime/locales/angular/global/en-vi.js +4 -4
- app-ng-runtime/locales/angular/global/en-vu.js +4 -4
- app-ng-runtime/locales/angular/global/en-ws.js +4 -4
- app-ng-runtime/locales/angular/global/en-za.js +4 -4
- app-ng-runtime/locales/angular/global/en-zm.js +4 -4
- app-ng-runtime/locales/angular/global/en-zw.js +4 -4
- app-ng-runtime/locales/angular/global/en.js +4 -4
- app-ng-runtime/locales/angular/global/eo.js +4 -4
- app-ng-runtime/locales/angular/global/es-419.js +4 -4
- app-ng-runtime/locales/angular/global/es-ar.js +4 -4
- app-ng-runtime/locales/angular/global/es-bo.js +4 -4
- app-ng-runtime/locales/angular/global/es-br.js +4 -4
- app-ng-runtime/locales/angular/global/es-bz.js +4 -4
- app-ng-runtime/locales/angular/global/es-cl.js +4 -4
- app-ng-runtime/locales/angular/global/es-co.js +4 -4
- app-ng-runtime/locales/angular/global/es-cr.js +4 -4
- app-ng-runtime/locales/angular/global/es-cu.js +4 -4
- app-ng-runtime/locales/angular/global/es-do.js +4 -4
- app-ng-runtime/locales/angular/global/es-ea.js +4 -4
- app-ng-runtime/locales/angular/global/es-ec.js +4 -4
- app-ng-runtime/locales/angular/global/es-gq.js +4 -4
- app-ng-runtime/locales/angular/global/es-gt.js +4 -4
- app-ng-runtime/locales/angular/global/es-hn.js +4 -4
- app-ng-runtime/locales/angular/global/es-ic.js +4 -4
- app-ng-runtime/locales/angular/global/es-mx.js +4 -4
- app-ng-runtime/locales/angular/global/es-ni.js +4 -4
- app-ng-runtime/locales/angular/global/es-pa.js +4 -4
- app-ng-runtime/locales/angular/global/es-pe.js +4 -4
- app-ng-runtime/locales/angular/global/es-ph.js +4 -4
- app-ng-runtime/locales/angular/global/es-pr.js +4 -4
- app-ng-runtime/locales/angular/global/es-py.js +4 -4
- app-ng-runtime/locales/angular/global/es-sv.js +4 -4
- app-ng-runtime/locales/angular/global/es-us.js +4 -4
- app-ng-runtime/locales/angular/global/es-uy.js +4 -4
- app-ng-runtime/locales/angular/global/es-ve.js +4 -4
- app-ng-runtime/locales/angular/global/es.js +4 -4
- app-ng-runtime/locales/angular/global/et.js +4 -4
- app-ng-runtime/locales/angular/global/eu.js +4 -4
- app-ng-runtime/locales/angular/global/ewo.js +4 -4
- app-ng-runtime/locales/angular/global/fa-af.js +4 -4
- app-ng-runtime/locales/angular/global/fa.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-bf.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-cm.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-gh.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-gm.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-gw.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-lr.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-mr.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-ne.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-ng.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-sl.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-sn.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm.js +4 -4
- app-ng-runtime/locales/angular/global/ff-cm.js +58 -44
- app-ng-runtime/locales/angular/global/ff-gn.js +58 -44
- app-ng-runtime/locales/angular/global/ff-latn-bf.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-cm.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-gh.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-gm.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-gn.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-gw.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-lr.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-mr.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-ne.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-ng.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-sl.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn.js +4 -4
- app-ng-runtime/locales/angular/global/ff-mr.js +58 -44
- app-ng-runtime/locales/angular/global/ff.js +4 -4
- app-ng-runtime/locales/angular/global/fi.js +4 -4
- app-ng-runtime/locales/angular/global/fil.js +4 -4
- app-ng-runtime/locales/angular/global/fo-dk.js +4 -4
- app-ng-runtime/locales/angular/global/fo.js +4 -4
- app-ng-runtime/locales/angular/global/fr-be.js +4 -4
- app-ng-runtime/locales/angular/global/fr-bf.js +4 -4
- app-ng-runtime/locales/angular/global/fr-bi.js +4 -4
- app-ng-runtime/locales/angular/global/fr-bj.js +4 -4
- app-ng-runtime/locales/angular/global/fr-bl.js +4 -4
- app-ng-runtime/locales/angular/global/fr-ca.js +4 -4
- app-ng-runtime/locales/angular/global/fr-cd.js +4 -4
- app-ng-runtime/locales/angular/global/fr-cf.js +4 -4
- app-ng-runtime/locales/angular/global/fr-cg.js +4 -4
- app-ng-runtime/locales/angular/global/fr-ch.js +4 -4
- app-ng-runtime/locales/angular/global/fr-ci.js +4 -4
- app-ng-runtime/locales/angular/global/fr-cm.js +4 -4
- app-ng-runtime/locales/angular/global/fr-dj.js +4 -4
- app-ng-runtime/locales/angular/global/fr-dz.js +4 -4
- app-ng-runtime/locales/angular/global/fr-ga.js +4 -4
- app-ng-runtime/locales/angular/global/fr-gf.js +4 -4
- app-ng-runtime/locales/angular/global/fr-gn.js +4 -4
- app-ng-runtime/locales/angular/global/fr-gp.js +4 -4
- app-ng-runtime/locales/angular/global/fr-gq.js +4 -4
- app-ng-runtime/locales/angular/global/fr-ht.js +4 -4
- app-ng-runtime/locales/angular/global/fr-km.js +4 -4
- app-ng-runtime/locales/angular/global/fr-lu.js +4 -4
- app-ng-runtime/locales/angular/global/fr-ma.js +4 -4
- app-ng-runtime/locales/angular/global/fr-mc.js +4 -4
- app-ng-runtime/locales/angular/global/fr-mf.js +4 -4
- app-ng-runtime/locales/angular/global/fr-mg.js +4 -4
- app-ng-runtime/locales/angular/global/fr-ml.js +4 -4
- app-ng-runtime/locales/angular/global/fr-mq.js +4 -4
- app-ng-runtime/locales/angular/global/fr-mr.js +4 -4
- app-ng-runtime/locales/angular/global/fr-mu.js +4 -4
- app-ng-runtime/locales/angular/global/fr-nc.js +4 -4
- app-ng-runtime/locales/angular/global/fr-ne.js +4 -4
- app-ng-runtime/locales/angular/global/fr-pf.js +4 -4
- app-ng-runtime/locales/angular/global/fr-pm.js +4 -4
- app-ng-runtime/locales/angular/global/fr-re.js +4 -4
- app-ng-runtime/locales/angular/global/fr-rw.js +4 -4
- app-ng-runtime/locales/angular/global/fr-sc.js +4 -4
- app-ng-runtime/locales/angular/global/fr-sn.js +4 -4
- app-ng-runtime/locales/angular/global/fr-sy.js +4 -4
- app-ng-runtime/locales/angular/global/fr-td.js +4 -4
- app-ng-runtime/locales/angular/global/fr-tg.js +4 -4
- app-ng-runtime/locales/angular/global/fr-tn.js +4 -4
- app-ng-runtime/locales/angular/global/fr-vu.js +4 -4
- app-ng-runtime/locales/angular/global/fr-wf.js +4 -4
- app-ng-runtime/locales/angular/global/fr-yt.js +4 -4
- app-ng-runtime/locales/angular/global/fr.js +4 -4
- app-ng-runtime/locales/angular/global/fur.js +4 -4
- app-ng-runtime/locales/angular/global/fy.js +4 -4
- app-ng-runtime/locales/angular/global/ga-gb.js +4 -4
- app-ng-runtime/locales/angular/global/ga.js +4 -4
- app-ng-runtime/locales/angular/global/gd.js +4 -4
- app-ng-runtime/locales/angular/global/gl.js +4 -4
- app-ng-runtime/locales/angular/global/gsw-fr.js +4 -4
- app-ng-runtime/locales/angular/global/gsw-li.js +4 -4
- app-ng-runtime/locales/angular/global/gsw.js +4 -4
- app-ng-runtime/locales/angular/global/gu.js +4 -4
- app-ng-runtime/locales/angular/global/guz.js +4 -4
- app-ng-runtime/locales/angular/global/gv.js +4 -4
- app-ng-runtime/locales/angular/global/ha-gh.js +4 -4
- app-ng-runtime/locales/angular/global/ha-ne.js +4 -4
- app-ng-runtime/locales/angular/global/ha.js +4 -4
- app-ng-runtime/locales/angular/global/haw.js +4 -4
- app-ng-runtime/locales/angular/global/he.js +4 -4
- app-ng-runtime/locales/angular/global/hi-latn.js +4 -4
- app-ng-runtime/locales/angular/global/hi.js +4 -4
- app-ng-runtime/locales/angular/global/hr-ba.js +4 -4
- app-ng-runtime/locales/angular/global/hr.js +4 -4
- app-ng-runtime/locales/angular/global/hsb.js +4 -4
- app-ng-runtime/locales/angular/global/hu.js +4 -4
- app-ng-runtime/locales/angular/global/hy.js +4 -4
- app-ng-runtime/locales/angular/global/ia.js +4 -4
- app-ng-runtime/locales/angular/global/id.js +4 -4
- app-ng-runtime/locales/angular/global/ig.js +4 -4
- app-ng-runtime/locales/angular/global/ii.js +4 -4
- app-ng-runtime/locales/angular/global/is.js +4 -4
- app-ng-runtime/locales/angular/global/it-ch.js +4 -4
- app-ng-runtime/locales/angular/global/it-sm.js +4 -4
- app-ng-runtime/locales/angular/global/it-va.js +4 -4
- app-ng-runtime/locales/angular/global/it.js +4 -4
- app-ng-runtime/locales/angular/global/ja.js +4 -4
- app-ng-runtime/locales/angular/global/jgo.js +4 -4
- app-ng-runtime/locales/angular/global/jmc.js +4 -4
- app-ng-runtime/locales/angular/global/jv.js +4 -4
- app-ng-runtime/locales/angular/global/ka.js +4 -4
- app-ng-runtime/locales/angular/global/kab.js +4 -4
- app-ng-runtime/locales/angular/global/kam.js +4 -4
- app-ng-runtime/locales/angular/global/kde.js +4 -4
- app-ng-runtime/locales/angular/global/kea.js +4 -4
- app-ng-runtime/locales/angular/global/kgp.js +4 -4
- app-ng-runtime/locales/angular/global/khq.js +4 -4
- app-ng-runtime/locales/angular/global/ki.js +4 -4
- app-ng-runtime/locales/angular/global/kk.js +4 -4
- app-ng-runtime/locales/angular/global/kkj.js +4 -4
- app-ng-runtime/locales/angular/global/kl.js +4 -4
- app-ng-runtime/locales/angular/global/kln.js +4 -4
- app-ng-runtime/locales/angular/global/km.js +4 -4
- app-ng-runtime/locales/angular/global/kn.js +4 -4
- app-ng-runtime/locales/angular/global/ko-kp.js +4 -4
- app-ng-runtime/locales/angular/global/ko.js +4 -4
- app-ng-runtime/locales/angular/global/kok.js +4 -4
- app-ng-runtime/locales/angular/global/ks-arab.js +4 -4
- app-ng-runtime/locales/angular/global/ks-deva.js +4 -4
- app-ng-runtime/locales/angular/global/ks.js +4 -4
- app-ng-runtime/locales/angular/global/ksb.js +4 -4
- app-ng-runtime/locales/angular/global/ksf.js +4 -4
- app-ng-runtime/locales/angular/global/ksh.js +4 -4
- app-ng-runtime/locales/angular/global/ku.js +4 -4
- app-ng-runtime/locales/angular/global/kw.js +4 -4
- app-ng-runtime/locales/angular/global/ky.js +4 -4
- app-ng-runtime/locales/angular/global/lag.js +4 -4
- app-ng-runtime/locales/angular/global/lb.js +4 -4
- app-ng-runtime/locales/angular/global/lg.js +4 -4
- app-ng-runtime/locales/angular/global/lkt.js +4 -4
- app-ng-runtime/locales/angular/global/ln-ao.js +4 -4
- app-ng-runtime/locales/angular/global/ln-cf.js +4 -4
- app-ng-runtime/locales/angular/global/ln-cg.js +4 -4
- app-ng-runtime/locales/angular/global/ln.js +4 -4
- app-ng-runtime/locales/angular/global/lo.js +4 -4
- app-ng-runtime/locales/angular/global/lrc-iq.js +4 -4
- app-ng-runtime/locales/angular/global/lrc.js +4 -4
- app-ng-runtime/locales/angular/global/lt.js +4 -4
- app-ng-runtime/locales/angular/global/lu.js +4 -4
- app-ng-runtime/locales/angular/global/luo.js +4 -4
- app-ng-runtime/locales/angular/global/luy.js +4 -4
- app-ng-runtime/locales/angular/global/lv.js +4 -4
- app-ng-runtime/locales/angular/global/mai.js +4 -4
- app-ng-runtime/locales/angular/global/mas-tz.js +4 -4
- app-ng-runtime/locales/angular/global/mas.js +4 -4
- app-ng-runtime/locales/angular/global/mer.js +4 -4
- app-ng-runtime/locales/angular/global/mfe.js +4 -4
- app-ng-runtime/locales/angular/global/mg.js +4 -4
- app-ng-runtime/locales/angular/global/mgh.js +4 -4
- app-ng-runtime/locales/angular/global/mgo.js +4 -4
- app-ng-runtime/locales/angular/global/mi.js +4 -4
- app-ng-runtime/locales/angular/global/mk.js +4 -4
- app-ng-runtime/locales/angular/global/ml.js +4 -4
- app-ng-runtime/locales/angular/global/mn.js +4 -4
- app-ng-runtime/locales/angular/global/mni-beng.js +4 -4
- app-ng-runtime/locales/angular/global/mni.js +4 -4
- app-ng-runtime/locales/angular/global/mr.js +4 -4
- app-ng-runtime/locales/angular/global/ms-bn.js +4 -4
- app-ng-runtime/locales/angular/global/ms-id.js +4 -4
- app-ng-runtime/locales/angular/global/ms-sg.js +4 -4
- app-ng-runtime/locales/angular/global/ms.js +4 -4
- app-ng-runtime/locales/angular/global/mt.js +4 -4
- app-ng-runtime/locales/angular/global/mua.js +4 -4
- app-ng-runtime/locales/angular/global/my.js +4 -4
- app-ng-runtime/locales/angular/global/mzn.js +4 -4
- app-ng-runtime/locales/angular/global/naq.js +4 -4
- app-ng-runtime/locales/angular/global/nb-sj.js +4 -4
- app-ng-runtime/locales/angular/global/nb.js +4 -4
- app-ng-runtime/locales/angular/global/nd.js +4 -4
- app-ng-runtime/locales/angular/global/nds-nl.js +4 -4
- app-ng-runtime/locales/angular/global/nds.js +4 -4
- app-ng-runtime/locales/angular/global/ne-in.js +4 -4
- app-ng-runtime/locales/angular/global/ne.js +4 -4
- app-ng-runtime/locales/angular/global/nl-aw.js +4 -4
- app-ng-runtime/locales/angular/global/nl-be.js +4 -4
- app-ng-runtime/locales/angular/global/nl-bq.js +4 -4
- app-ng-runtime/locales/angular/global/nl-cw.js +4 -4
- app-ng-runtime/locales/angular/global/nl-sr.js +4 -4
- app-ng-runtime/locales/angular/global/nl-sx.js +4 -4
- app-ng-runtime/locales/angular/global/nl.js +4 -4
- app-ng-runtime/locales/angular/global/nmg.js +4 -4
- app-ng-runtime/locales/angular/global/nn.js +4 -4
- app-ng-runtime/locales/angular/global/nnh.js +4 -4
- app-ng-runtime/locales/angular/global/no.js +4 -4
- app-ng-runtime/locales/angular/global/nus.js +4 -4
- app-ng-runtime/locales/angular/global/nyn.js +4 -4
- app-ng-runtime/locales/angular/global/om-ke.js +4 -4
- app-ng-runtime/locales/angular/global/om.js +4 -4
- app-ng-runtime/locales/angular/global/or.js +4 -4
- app-ng-runtime/locales/angular/global/os-ru.js +4 -4
- app-ng-runtime/locales/angular/global/os.js +4 -4
- app-ng-runtime/locales/angular/global/pa-arab.js +4 -4
- app-ng-runtime/locales/angular/global/pa-guru.js +4 -4
- app-ng-runtime/locales/angular/global/pa.js +4 -4
- app-ng-runtime/locales/angular/global/pcm.js +4 -4
- app-ng-runtime/locales/angular/global/pl.js +4 -4
- app-ng-runtime/locales/angular/global/ps-pk.js +4 -4
- app-ng-runtime/locales/angular/global/ps.js +4 -4
- app-ng-runtime/locales/angular/global/pt-ao.js +4 -4
- app-ng-runtime/locales/angular/global/pt-ch.js +4 -4
- app-ng-runtime/locales/angular/global/pt-cv.js +4 -4
- app-ng-runtime/locales/angular/global/pt-gq.js +4 -4
- app-ng-runtime/locales/angular/global/pt-gw.js +4 -4
- app-ng-runtime/locales/angular/global/pt-lu.js +4 -4
- app-ng-runtime/locales/angular/global/pt-mo.js +4 -4
- app-ng-runtime/locales/angular/global/pt-mz.js +4 -4
- app-ng-runtime/locales/angular/global/pt-pt.js +4 -4
- app-ng-runtime/locales/angular/global/pt-st.js +4 -4
- app-ng-runtime/locales/angular/global/pt-tl.js +4 -4
- app-ng-runtime/locales/angular/global/pt.js +4 -4
- app-ng-runtime/locales/angular/global/qu-bo.js +4 -4
- app-ng-runtime/locales/angular/global/qu-ec.js +4 -4
- app-ng-runtime/locales/angular/global/qu.js +4 -4
- app-ng-runtime/locales/angular/global/rm.js +4 -4
- app-ng-runtime/locales/angular/global/rn.js +4 -4
- app-ng-runtime/locales/angular/global/ro-md.js +4 -4
- app-ng-runtime/locales/angular/global/ro.js +4 -4
- app-ng-runtime/locales/angular/global/rof.js +4 -4
- app-ng-runtime/locales/angular/global/ru-by.js +4 -4
- app-ng-runtime/locales/angular/global/ru-kg.js +4 -4
- app-ng-runtime/locales/angular/global/ru-kz.js +4 -4
- app-ng-runtime/locales/angular/global/ru-md.js +4 -4
- app-ng-runtime/locales/angular/global/ru-ua.js +4 -4
- app-ng-runtime/locales/angular/global/ru.js +4 -4
- app-ng-runtime/locales/angular/global/rw.js +4 -4
- app-ng-runtime/locales/angular/global/rwk.js +4 -4
- app-ng-runtime/locales/angular/global/sa.js +4 -4
- app-ng-runtime/locales/angular/global/sah.js +4 -4
- app-ng-runtime/locales/angular/global/saq.js +4 -4
- app-ng-runtime/locales/angular/global/sat-olck.js +4 -4
- app-ng-runtime/locales/angular/global/sat.js +4 -4
- app-ng-runtime/locales/angular/global/sbp.js +4 -4
- app-ng-runtime/locales/angular/global/sc.js +4 -4
- app-ng-runtime/locales/angular/global/sd-arab.js +4 -4
- app-ng-runtime/locales/angular/global/sd-deva.js +4 -4
- app-ng-runtime/locales/angular/global/sd.js +4 -4
- app-ng-runtime/locales/angular/global/se-fi.js +4 -4
- app-ng-runtime/locales/angular/global/se-se.js +4 -4
- app-ng-runtime/locales/angular/global/se.js +4 -4
- app-ng-runtime/locales/angular/global/seh.js +4 -4
- app-ng-runtime/locales/angular/global/ses.js +4 -4
- app-ng-runtime/locales/angular/global/sg.js +4 -4
- app-ng-runtime/locales/angular/global/shi-latn.js +4 -4
- app-ng-runtime/locales/angular/global/shi-tfng.js +4 -4
- app-ng-runtime/locales/angular/global/shi.js +4 -4
- app-ng-runtime/locales/angular/global/si.js +4 -4
- app-ng-runtime/locales/angular/global/sk.js +4 -4
- app-ng-runtime/locales/angular/global/sl.js +4 -4
- app-ng-runtime/locales/angular/global/smn.js +4 -4
- app-ng-runtime/locales/angular/global/sn.js +4 -4
- app-ng-runtime/locales/angular/global/so-dj.js +4 -4
- app-ng-runtime/locales/angular/global/so-et.js +4 -4
- app-ng-runtime/locales/angular/global/so-ke.js +4 -4
- app-ng-runtime/locales/angular/global/so.js +4 -4
- app-ng-runtime/locales/angular/global/sq-mk.js +4 -4
- app-ng-runtime/locales/angular/global/sq-xk.js +4 -4
- app-ng-runtime/locales/angular/global/sq.js +4 -4
- app-ng-runtime/locales/angular/global/sr-cyrl-ba.js +4 -4
- app-ng-runtime/locales/angular/global/sr-cyrl-me.js +4 -4
- app-ng-runtime/locales/angular/global/sr-cyrl-xk.js +4 -4
- app-ng-runtime/locales/angular/global/sr-cyrl.js +4 -4
- app-ng-runtime/locales/angular/global/sr-latn-ba.js +4 -4
- app-ng-runtime/locales/angular/global/sr-latn-me.js +4 -4
- app-ng-runtime/locales/angular/global/sr-latn-xk.js +4 -4
- app-ng-runtime/locales/angular/global/sr-latn.js +4 -4
- app-ng-runtime/locales/angular/global/sr.js +4 -4
- app-ng-runtime/locales/angular/global/su-latn.js +4 -4
- app-ng-runtime/locales/angular/global/su.js +4 -4
- app-ng-runtime/locales/angular/global/sv-ax.js +4 -4
- app-ng-runtime/locales/angular/global/sv-fi.js +4 -4
- app-ng-runtime/locales/angular/global/sv.js +4 -4
- app-ng-runtime/locales/angular/global/sw-cd.js +4 -4
- app-ng-runtime/locales/angular/global/sw-ke.js +4 -4
- app-ng-runtime/locales/angular/global/sw-ug.js +4 -4
- app-ng-runtime/locales/angular/global/sw.js +4 -4
- app-ng-runtime/locales/angular/global/ta-lk.js +4 -4
- app-ng-runtime/locales/angular/global/ta-my.js +4 -4
- app-ng-runtime/locales/angular/global/ta-sg.js +4 -4
- app-ng-runtime/locales/angular/global/ta.js +4 -4
- app-ng-runtime/locales/angular/global/te.js +4 -4
- app-ng-runtime/locales/angular/global/teo-ke.js +4 -4
- app-ng-runtime/locales/angular/global/teo.js +4 -4
- app-ng-runtime/locales/angular/global/tg.js +4 -4
- app-ng-runtime/locales/angular/global/th.js +4 -4
- app-ng-runtime/locales/angular/global/ti-er.js +4 -4
- app-ng-runtime/locales/angular/global/ti.js +4 -4
- app-ng-runtime/locales/angular/global/tk.js +4 -4
- app-ng-runtime/locales/angular/global/to.js +4 -4
- app-ng-runtime/locales/angular/global/tr-cy.js +4 -4
- app-ng-runtime/locales/angular/global/tr.js +4 -4
- app-ng-runtime/locales/angular/global/tt.js +4 -4
- app-ng-runtime/locales/angular/global/twq.js +4 -4
- app-ng-runtime/locales/angular/global/tzm.js +4 -4
- app-ng-runtime/locales/angular/global/ug.js +4 -4
- app-ng-runtime/locales/angular/global/uk.js +4 -4
- app-ng-runtime/locales/angular/global/und.js +4 -4
- app-ng-runtime/locales/angular/global/ur-in.js +4 -4
- app-ng-runtime/locales/angular/global/ur.js +4 -4
- app-ng-runtime/locales/angular/global/uz-arab.js +4 -4
- app-ng-runtime/locales/angular/global/uz-cyrl.js +4 -4
- app-ng-runtime/locales/angular/global/uz-latn.js +4 -4
- app-ng-runtime/locales/angular/global/uz.js +4 -4
- app-ng-runtime/locales/angular/global/vai-latn.js +4 -4
- app-ng-runtime/locales/angular/global/vai-vaii.js +4 -4
- app-ng-runtime/locales/angular/global/vai.js +4 -4
- app-ng-runtime/locales/angular/global/vi.js +4 -4
- app-ng-runtime/locales/angular/global/vun.js +4 -4
- app-ng-runtime/locales/angular/global/wae.js +4 -4
- app-ng-runtime/locales/angular/global/wo.js +4 -4
- app-ng-runtime/locales/angular/global/xh.js +4 -4
- app-ng-runtime/locales/angular/global/xog.js +4 -4
- app-ng-runtime/locales/angular/global/yav.js +4 -4
- app-ng-runtime/locales/angular/global/yi.js +4 -4
- app-ng-runtime/locales/angular/global/yo-bj.js +4 -4
- app-ng-runtime/locales/angular/global/yo.js +4 -4
- app-ng-runtime/locales/angular/global/yrl-co.js +4 -4
- app-ng-runtime/locales/angular/global/yrl-ve.js +4 -4
- app-ng-runtime/locales/angular/global/yrl.js +4 -4
- app-ng-runtime/locales/angular/global/yue-hans.js +4 -4
- app-ng-runtime/locales/angular/global/yue-hant.js +4 -4
- app-ng-runtime/locales/angular/global/yue.js +4 -4
- app-ng-runtime/locales/angular/global/zgh.js +4 -4
- app-ng-runtime/locales/angular/global/zh-hans-hk.js +4 -4
- app-ng-runtime/locales/angular/global/zh-hans-mo.js +4 -4
- app-ng-runtime/locales/angular/global/zh-hans-sg.js +4 -4
- app-ng-runtime/locales/angular/global/zh-hans.js +4 -4
- app-ng-runtime/locales/angular/global/zh-hant-hk.js +4 -4
- app-ng-runtime/locales/angular/global/zh-hant-mo.js +4 -4
- app-ng-runtime/locales/angular/global/zh-hant.js +4 -4
- app-ng-runtime/locales/angular/global/zh.js +4 -4
- app-ng-runtime/locales/angular/global/zu.js +4 -4
- app-ng-runtime/mobile/components/basic/default/.npmignore +2 -0
- app-ng-runtime/mobile/components/basic/default/bundles/index.umd.js +148 -143
- app-ng-runtime/mobile/components/basic/default/esm2022/anchor/anchor.directive.mjs +8 -7
- app-ng-runtime/mobile/components/basic/default/esm2022/app-update/app-update.component.mjs +7 -6
- app-ng-runtime/mobile/components/basic/default/esm2022/basic.module.mjs +2 -2
- app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +47 -43
- app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-selector.service.mjs +7 -5
- app-ng-runtime/mobile/components/basic/default/esm2022/image-cache/image-cache.directive.mjs +6 -5
- app-ng-runtime/mobile/components/basic/default/esm2022/network-info-toaster/network-info-toaster.component.mjs +49 -47
- app-ng-runtime/mobile/components/basic/default/esm2022/process-manager/process-management.service.mjs +2 -2
- app-ng-runtime/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +31 -32
- app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs +146 -140
- app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/basic/default/network-info-toaster/network-info-toaster.component.d.ts +2 -2
- app-ng-runtime/mobile/components/basic/search/.npmignore +2 -0
- app-ng-runtime/mobile/components/basic/search/bundles/index.umd.js +3 -3
- app-ng-runtime/mobile/components/basic/search/esm2022/search.directive.mjs +3 -3
- app-ng-runtime/mobile/components/basic/search/esm2022/search.module.mjs +2 -2
- app-ng-runtime/mobile/components/basic/search/fesm2022/index.mjs +3 -3
- app-ng-runtime/mobile/components/basic/search/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/containers/segmented-control/.npmignore +2 -0
- app-ng-runtime/mobile/components/containers/segmented-control/bundles/index.umd.js +42 -30
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +14 -8
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +28 -21
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segmented-control.module.mjs +2 -2
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs +41 -28
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/containers/segmented-control/segment-content/segment-content.component.d.ts +2 -2
- app-ng-runtime/mobile/components/containers/segmented-control/segmented-control.component.d.ts +2 -2
- app-ng-runtime/mobile/components/data/media-list/.npmignore +2 -0
- app-ng-runtime/mobile/components/data/media-list/bundles/index.umd.js +53 -48
- app-ng-runtime/mobile/components/data/media-list/esm2022/media-list-item/media-list-item.directive.mjs +2 -2
- app-ng-runtime/mobile/components/data/media-list/esm2022/media-list.component.mjs +48 -42
- app-ng-runtime/mobile/components/data/media-list/esm2022/media-list.module.mjs +2 -2
- app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs +50 -44
- app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/data/media-list/media-list.component.d.ts +2 -2
- app-ng-runtime/mobile/components/device/barcode-scanner/.npmignore +2 -0
- app-ng-runtime/mobile/components/device/barcode-scanner/barcode-scanner.component.d.ts +2 -2
- app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +14 -8
- app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.component.mjs +15 -9
- app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.module.mjs +2 -2
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +16 -10
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/device/camera/.npmignore +2 -0
- app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +15 -9
- app-ng-runtime/mobile/components/device/camera/camera.component.d.ts +2 -2
- app-ng-runtime/mobile/components/device/camera/esm2022/camera.component.mjs +16 -10
- app-ng-runtime/mobile/components/device/camera/esm2022/camera.module.mjs +2 -2
- app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +17 -11
- app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/input/file-upload/.npmignore +2 -0
- app-ng-runtime/mobile/components/input/file-upload/bundles/index.umd.js +3 -3
- app-ng-runtime/mobile/components/input/file-upload/esm2022/file-upload.directive.mjs +3 -3
- app-ng-runtime/mobile/components/input/file-upload/esm2022/file-upload.module.mjs +2 -2
- app-ng-runtime/mobile/components/input/file-upload/fesm2022/index.mjs +3 -3
- app-ng-runtime/mobile/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/default/.npmignore +2 -0
- app-ng-runtime/mobile/components/page/default/bundles/index.umd.js +11 -10
- app-ng-runtime/mobile/components/page/default/esm2022/page-content-loader/page-content-loader.component.mjs +4 -3
- app-ng-runtime/mobile/components/page/default/esm2022/page.directive.mjs +5 -4
- app-ng-runtime/mobile/components/page/default/esm2022/page.module.mjs +2 -2
- app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs +8 -6
- app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/left-panel/.npmignore +2 -0
- app-ng-runtime/mobile/components/page/left-panel/bundles/index.umd.js +3 -3
- app-ng-runtime/mobile/components/page/left-panel/esm2022/left-panel.directive.mjs +3 -3
- app-ng-runtime/mobile/components/page/left-panel/esm2022/left-panel.module.mjs +2 -2
- app-ng-runtime/mobile/components/page/left-panel/fesm2022/index.mjs +3 -3
- app-ng-runtime/mobile/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/mobile-navbar/.npmignore +2 -0
- app-ng-runtime/mobile/components/page/mobile-navbar/bundles/index.umd.js +40 -35
- app-ng-runtime/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.component.mjs +41 -36
- app-ng-runtime/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.module.mjs +2 -2
- app-ng-runtime/mobile/components/page/mobile-navbar/fesm2022/index.mjs +41 -36
- app-ng-runtime/mobile/components/page/mobile-navbar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/mobile-navbar/mobile-navbar.component.d.ts +2 -2
- app-ng-runtime/mobile/components/page/tab-bar/.npmignore +2 -0
- app-ng-runtime/mobile/components/page/tab-bar/bundles/index.umd.js +52 -46
- app-ng-runtime/mobile/components/page/tab-bar/esm2022/tab-bar.module.mjs +2 -2
- app-ng-runtime/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +50 -43
- app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs +51 -44
- app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/tab-bar/tabbar.component.d.ts +2 -2
- app-ng-runtime/mobile/core/.npmignore +2 -0
- app-ng-runtime/mobile/core/bundles/index.umd.js +43 -43
- app-ng-runtime/mobile/core/esm2022/core.module.mjs +3 -3
- app-ng-runtime/mobile/core/esm2022/native.xhr.mjs +1 -1
- app-ng-runtime/mobile/core/esm2022/services/device-file-cache.service.mjs +3 -3
- app-ng-runtime/mobile/core/esm2022/services/device-file-download.service.mjs +7 -6
- app-ng-runtime/mobile/core/esm2022/services/device-file-opener.service.mjs +5 -4
- app-ng-runtime/mobile/core/esm2022/services/device-file-upload.service.mjs +6 -5
- app-ng-runtime/mobile/core/esm2022/services/device-file.service.mjs +8 -7
- app-ng-runtime/mobile/core/esm2022/services/device.service.mjs +5 -4
- app-ng-runtime/mobile/core/esm2022/services/ext-app-message.service.mjs +7 -6
- app-ng-runtime/mobile/core/esm2022/services/network.service.mjs +11 -10
- app-ng-runtime/mobile/core/fesm2022/index.mjs +40 -39
- app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/core/services/ext-app-message.service.d.ts +1 -1
- app-ng-runtime/mobile/core/services/network.service.d.ts +7 -1
- app-ng-runtime/mobile/offline/.npmignore +2 -0
- app-ng-runtime/mobile/offline/bundles/index.umd.js +176 -159
- app-ng-runtime/mobile/offline/esm2022/models/local-db-store.mjs +23 -21
- app-ng-runtime/mobile/offline/esm2022/offline.module.mjs +3 -3
- app-ng-runtime/mobile/offline/esm2022/services/change-log.service.mjs +9 -8
- app-ng-runtime/mobile/offline/esm2022/services/local-db-data-pull.service.mjs +39 -37
- app-ng-runtime/mobile/offline/esm2022/services/local-db-management.service.mjs +56 -47
- app-ng-runtime/mobile/offline/esm2022/services/local-db.service.mjs +7 -6
- app-ng-runtime/mobile/offline/esm2022/services/local-key-value.service.mjs +2 -2
- app-ng-runtime/mobile/offline/esm2022/services/push.service.mjs +3 -3
- app-ng-runtime/mobile/offline/esm2022/services/workers/error-blocker.mjs +4 -3
- app-ng-runtime/mobile/offline/esm2022/services/workers/file-handler.mjs +18 -13
- app-ng-runtime/mobile/offline/esm2022/services/workers/id-resolver.mjs +3 -3
- app-ng-runtime/mobile/offline/esm2022/services/workers/multi-part-param-transformer.mjs +9 -5
- app-ng-runtime/mobile/offline/esm2022/utils/file-upload.utils.mjs +1 -1
- app-ng-runtime/mobile/offline/esm2022/utils/live-variable.utils.mjs +12 -11
- app-ng-runtime/mobile/offline/esm2022/utils/query-executor.utils.mjs +5 -4
- app-ng-runtime/mobile/offline/esm2022/utils/security.utils.mjs +3 -2
- app-ng-runtime/mobile/offline/esm2022/utils/utils.mjs +1 -1
- app-ng-runtime/mobile/offline/fesm2022/index.mjs +171 -153
- app-ng-runtime/mobile/offline/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/placeholder/runtime/.npmignore +2 -0
- app-ng-runtime/mobile/placeholder/runtime/bundles/index.umd.js +3 -2
- app-ng-runtime/mobile/placeholder/runtime/esm2022/components/app-ext.component.mjs +3 -2
- app-ng-runtime/mobile/placeholder/runtime/esm2022/mobile-runtime.module.mjs +2 -2
- app-ng-runtime/mobile/placeholder/runtime/fesm2022/index.mjs +3 -2
- app-ng-runtime/mobile/placeholder/runtime/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/placeholder/runtime-dynamic/.npmignore +2 -0
- app-ng-runtime/mobile/placeholder/runtime-dynamic/bundles/index.umd.js +1 -1
- app-ng-runtime/mobile/placeholder/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +2 -2
- app-ng-runtime/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs +1 -1
- app-ng-runtime/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/runtime/.npmignore +2 -0
- app-ng-runtime/mobile/runtime/bundles/index.umd.js +21 -17
- app-ng-runtime/mobile/runtime/esm2022/components/app-ext.component.mjs +4 -3
- app-ng-runtime/mobile/runtime/esm2022/mobile-runtime.module.mjs +5 -4
- app-ng-runtime/mobile/runtime/esm2022/services/cookie.service.mjs +7 -3
- app-ng-runtime/mobile/runtime/esm2022/services/http-interceptor.service.mjs +6 -5
- app-ng-runtime/mobile/runtime/esm2022/services/webprocess.service.mjs +3 -3
- app-ng-runtime/mobile/runtime/fesm2022/index.mjs +18 -13
- app-ng-runtime/mobile/runtime/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/runtime-dynamic/.npmignore +2 -0
- app-ng-runtime/mobile/runtime-dynamic/bundles/index.umd.js +5 -5
- app-ng-runtime/mobile/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +2 -2
- app-ng-runtime/mobile/runtime-dynamic/esm2022/services/live-sync.service.mjs +5 -5
- app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs +5 -5
- app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/variables/.npmignore +2 -0
- app-ng-runtime/mobile/variables/bundles/index.umd.js +28 -21
- app-ng-runtime/mobile/variables/esm2022/services/camera-service.mjs +5 -5
- app-ng-runtime/mobile/variables/esm2022/services/contacts-service.mjs +1 -1
- app-ng-runtime/mobile/variables/esm2022/services/datasync-service.mjs +10 -9
- app-ng-runtime/mobile/variables/esm2022/services/device-service/device-service.mjs +1 -1
- app-ng-runtime/mobile/variables/esm2022/services/device-service/location-service.mjs +1 -1
- app-ng-runtime/mobile/variables/esm2022/services/file-service.mjs +11 -3
- app-ng-runtime/mobile/variables/esm2022/services/scan-service.mjs +1 -1
- app-ng-runtime/mobile/variables/esm2022/variables.module.mjs +3 -3
- app-ng-runtime/mobile/variables/fesm2022/index.mjs +24 -16
- app-ng-runtime/mobile/variables/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/oAuth/.npmignore +2 -0
- app-ng-runtime/oAuth/bundles/index.umd.js +15 -15
- app-ng-runtime/oAuth/esm2022/oAuth.module.mjs +2 -2
- app-ng-runtime/oAuth/esm2022/oAuth.service.mjs +6 -5
- app-ng-runtime/oAuth/esm2022/oAuth.utils.mjs +8 -7
- app-ng-runtime/oAuth/fesm2022/index.mjs +12 -11
- app-ng-runtime/oAuth/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/package.json +1 -1
- app-ng-runtime/runtime/base/.npmignore +2 -0
- app-ng-runtime/runtime/base/bundles/index.umd.js +263 -247
- app-ng-runtime/runtime/base/components/app-component/app.component.d.ts +3 -1
- app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +1 -1
- app-ng-runtime/runtime/base/directives/accessroles.directive.d.ts +4 -3
- app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +34 -30
- app-ng-runtime/runtime/base/esm2022/components/app-spinner.component.mjs +9 -8
- app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +5 -5
- app-ng-runtime/runtime/base/esm2022/components/base-layout.component.mjs +5 -4
- app-ng-runtime/runtime/base/esm2022/components/base-page.component.mjs +16 -15
- app-ng-runtime/runtime/base/esm2022/components/base-partial.component.mjs +15 -14
- app-ng-runtime/runtime/base/esm2022/components/base-prefab.component.mjs +17 -16
- app-ng-runtime/runtime/base/esm2022/components/base-spa-page.component.mjs +16 -15
- app-ng-runtime/runtime/base/esm2022/components/custom-toaster.component.mjs +17 -15
- app-ng-runtime/runtime/base/esm2022/components/empty-component/empty-page.component.mjs +4 -3
- app-ng-runtime/runtime/base/esm2022/components/prefab-preview.component.mjs +4 -3
- app-ng-runtime/runtime/base/esm2022/directives/accessroles.directive.mjs +24 -16
- app-ng-runtime/runtime/base/esm2022/directives/prefab.directive.mjs +4 -4
- app-ng-runtime/runtime/base/esm2022/guards/auth.guard.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/guards/page-not-found.guard.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/guards/role.guard.mjs +5 -4
- app-ng-runtime/runtime/base/esm2022/overrides/wm_dom_renderer.mjs +4 -4
- app-ng-runtime/runtime/base/esm2022/overrides/wm_shared_styles_host.mjs +5 -5
- app-ng-runtime/runtime/base/esm2022/resolves/app-extension.resolve.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/resolves/app-js.resolve.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/resolves/app-variables.resolve.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/resolves/i18n.resolve.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/resolves/metadata.resolve.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/resolves/security-config.resolve.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/runtime-base.module.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/services/app-defaults.service.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/services/app.manager.service.mjs +19 -16
- app-ng-runtime/runtime/base/esm2022/services/app.service.mjs +9 -8
- app-ng-runtime/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +5 -4
- app-ng-runtime/runtime/base/esm2022/services/http-interceptor.services.mjs +6 -5
- app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +15 -13
- app-ng-runtime/runtime/base/esm2022/services/navigation.service.mjs +10 -9
- app-ng-runtime/runtime/base/esm2022/services/pipe-provider.service.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/services/pipe.service.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/services/prefab-manager.service.mjs +5 -4
- app-ng-runtime/runtime/base/esm2022/services/spinner.service.mjs +9 -8
- app-ng-runtime/runtime/base/esm2022/services/toaster.service.mjs +8 -7
- app-ng-runtime/runtime/base/esm2022/util/fragment-monitor.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +7 -8
- app-ng-runtime/runtime/base/fesm2022/index.mjs +273 -256
- app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/runtime/base/overrides/wm_dom_renderer.d.ts +2 -2
- app-ng-runtime/runtime/base/services/i18n.service.d.ts +1 -1
- app-ng-runtime/runtime/dynamic/.npmignore +2 -0
- app-ng-runtime/runtime/dynamic/bundles/index.umd.js +22 -21
- app-ng-runtime/runtime/dynamic/esm2022/app/app.module.mjs +1 -1
- app-ng-runtime/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +4 -3
- app-ng-runtime/runtime/dynamic/esm2022/app/services/app-extension.service.mjs +3 -3
- app-ng-runtime/runtime/dynamic/esm2022/app/services/app-js-provider.service.mjs +3 -3
- app-ng-runtime/runtime/dynamic/esm2022/app/services/app-resource-manager.service.mjs +3 -3
- app-ng-runtime/runtime/dynamic/esm2022/app/services/app-variables-provider.service.mjs +3 -3
- app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +6 -5
- app-ng-runtime/runtime/dynamic/esm2022/app/services/prefab-config-provider.service.mjs +3 -3
- app-ng-runtime/runtime/dynamic/esm2022/main.mjs +3 -2
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +21 -19
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/scripts/datatable/datatable.js +2 -2
- app-ng-runtime/scripts/jquery-ui/ui/widgets/droppable.js +7 -7
- app-ng-runtime/scripts/jquery-ui/ui/widgets/resizable.js +13 -10
- app-ng-runtime/scripts/jquery-ui/ui/widgets/sortable.js +7 -7
- app-ng-runtime/security/.npmignore +2 -0
- app-ng-runtime/security/bundles/index.umd.js +17 -17
- app-ng-runtime/security/esm2022/security.module.mjs +2 -2
- app-ng-runtime/security/esm2022/security.service.mjs +14 -13
- app-ng-runtime/security/fesm2022/index.mjs +14 -13
- app-ng-runtime/security/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/security/security.service.d.ts +1 -1
- app-ng-runtime/swipey/.npmignore +2 -0
- app-ng-runtime/swipey/esm2022/swipe.animation.mjs +1 -1
- app-ng-runtime/swipey/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/transpiler/.npmignore +2 -0
- app-ng-runtime/transpiler/bundles/index.umd.js +10 -9
- app-ng-runtime/transpiler/esm2022/build.mjs +8 -6
- app-ng-runtime/transpiler/fesm2022/index.mjs +7 -5
- app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/variables/.npmignore +2 -0
- app-ng-runtime/variables/bundles/index.umd.js +160 -150
- app-ng-runtime/variables/esm2022/factory/variable.factory.mjs +1 -1
- app-ng-runtime/variables/esm2022/manager/action/login-action.manager.mjs +15 -14
- app-ng-runtime/variables/esm2022/manager/action/logout-action.manager.mjs +1 -1
- app-ng-runtime/variables/esm2022/manager/action/notification-action.manager.mjs +9 -8
- app-ng-runtime/variables/esm2022/manager/variable/base-variable.manager.mjs +3 -2
- app-ng-runtime/variables/esm2022/manager/variable/device-variable-manager.mjs +1 -1
- app-ng-runtime/variables/esm2022/manager/variable/device-variable-service.mjs +1 -1
- app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +11 -10
- app-ng-runtime/variables/esm2022/model/action/notification-action.mjs +1 -1
- app-ng-runtime/variables/esm2022/service/metadata-service/metadata.service.mjs +3 -3
- app-ng-runtime/variables/esm2022/service/variables.service.mjs +9 -8
- app-ng-runtime/variables/esm2022/util/action/navigation-action.utils.mjs +4 -4
- app-ng-runtime/variables/esm2022/util/variable/pagination.utils.mjs +30 -23
- app-ng-runtime/variables/esm2022/util/variable/service-variable.utils.mjs +29 -28
- app-ng-runtime/variables/esm2022/util/variable/variables.utils.mjs +75 -70
- app-ng-runtime/variables/esm2022/variables.module.mjs +2 -2
- app-ng-runtime/variables/fesm2022/index.mjs +174 -163
- app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/variables/util/variable/service-variable.utils.d.ts +1 -1
- app-ng-runtime/build-task/advanced/custom-widget-prop/custom-widget-prop.build.d.ts +0 -2
- app-ng-runtime/build-task/esm2022/advanced/custom-widget-prop/custom-widget-prop.build.mjs +0 -10
- app-ng-runtime/components/advanced/custom/custom-widget-container-prop/custom-widget-container-prop.directive.d.ts +0 -20
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container-prop/custom-widget-container-prop.directive.mjs +0 -70
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isNumberType, FormWidgetType, DataType, isMobileApp, isAndroid } from '@wm/core';
|
|
2
|
+
import { forEach, get, includes, split } from "lodash-es";
|
|
2
3
|
const VIEW_MODE_OPTIONS = {
|
|
3
4
|
DEFAULT: 'default',
|
|
4
5
|
LABEL: 'label'
|
|
@@ -11,8 +12,8 @@ export const EDIT_MODE = {
|
|
|
11
12
|
};
|
|
12
13
|
// Method to set the header config of the data table
|
|
13
14
|
export const setHeaderConfig = (headerConfig, config, field, index) => {
|
|
14
|
-
|
|
15
|
-
if (
|
|
15
|
+
forEach(headerConfig, cols => {
|
|
16
|
+
if (get(cols, 'isGroup')) {
|
|
16
17
|
if (cols.field === field) {
|
|
17
18
|
cols.columns[index] = config;
|
|
18
19
|
}
|
|
@@ -68,8 +69,8 @@ export const getFieldLayoutConfig = (captionWidth, captionPosition, os) => {
|
|
|
68
69
|
}
|
|
69
70
|
else if (captionWidth) {
|
|
70
71
|
// handling itemsperrow containing string of classes
|
|
71
|
-
|
|
72
|
-
const keys =
|
|
72
|
+
forEach(split(captionWidth, ' '), function (cls) {
|
|
73
|
+
const keys = split(cls, '-'), tier = keys[0];
|
|
73
74
|
let _captionWidth, widgetWidth;
|
|
74
75
|
_captionWidth = parseInt(keys[1], 10);
|
|
75
76
|
widgetWidth = 12 - _captionWidth;
|
|
@@ -84,7 +85,7 @@ export const getFieldLayoutConfig = (captionWidth, captionPosition, os) => {
|
|
|
84
85
|
};
|
|
85
86
|
};
|
|
86
87
|
export const getDefaultViewModeWidget = widget => {
|
|
87
|
-
if (
|
|
88
|
+
if (includes(['checkbox', 'toggle', 'rating'], widget)) {
|
|
88
89
|
return VIEW_MODE_OPTIONS.DEFAULT;
|
|
89
90
|
}
|
|
90
91
|
return VIEW_MODE_OPTIONS.LABEL;
|
|
@@ -154,7 +155,7 @@ export const getDataTableFilterWidget = type => {
|
|
|
154
155
|
if (type === DataType.BOOLEAN) {
|
|
155
156
|
widget = FormWidgetType.SELECT;
|
|
156
157
|
}
|
|
157
|
-
if (
|
|
158
|
+
if (includes([FormWidgetType.TEXT, FormWidgetType.NUMBER, FormWidgetType.SELECT, FormWidgetType.AUTOCOMPLETE,
|
|
158
159
|
FormWidgetType.DATE, FormWidgetType.TIME, FormWidgetType.DATETIME], widget)) {
|
|
159
160
|
return widget;
|
|
160
161
|
}
|
|
@@ -207,4 +208,4 @@ export const getDefaultValue = (value, type, widget) => {
|
|
|
207
208
|
}
|
|
208
209
|
return value;
|
|
209
210
|
};
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvYmFzZS9zcmMvdXRpbHMvbGl2ZS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUkxRixNQUFPLGlCQUFpQixHQUFHO0lBQ3ZCLE9BQU8sRUFBRyxTQUFTO0lBQ25CLEtBQUssRUFBRyxPQUFPO0NBQ2xCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDckIsVUFBVSxFQUFHLFdBQVc7SUFDeEIsTUFBTSxFQUFHLFFBQVE7SUFDakIsSUFBSSxFQUFHLE1BQU07SUFDYixNQUFNLEVBQUcsUUFBUTtDQUNwQixDQUFDO0FBRUYsb0RBQW9EO0FBQ3BELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQWMsRUFBUSxFQUFFO0lBQ2pGLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQzNCLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDeEIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRTtnQkFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUM7YUFDaEM7aUJBQU07Z0JBQ0gsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzthQUN2RDtTQUNKO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLFlBQWlCLEVB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Q0FBQztJQUNySCxRQUFRLEVBQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQztJQUNySCxRQUFRLEVBQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQztJQUNySCxNQUFNLEVBQVMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUM7SUFDL0gsTUFBTSxFQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUM7SUFDckgsUUFBUSxFQUFPLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDO0lBQ3RNLFdBQVcsRUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUcsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDO0lBQzFKLE1BQU0sRUFBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUcsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFB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Q0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUM7QUFDbEgsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQ25ELElBQUksTUFBTSxFQUFFO1FBQ1IsSUFBSSxNQUFNLEtBQUssY0FBYyxDQUFDLE1BQU0sSUFBSSxNQUFNLEtBQUssY0FBYyxDQUFDLE1BQU0sSUFBSSxNQUFNLEtBQUssY0FBYyxDQUFDLFFBQVEsRUFBRTtZQUM1RyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEQ7UUFDRCxJQUFJLE1BQU0sS0FBSyxjQUFjLENBQUMsUUFBUSxJQUFJLE1BQU0sS0FBSyxjQUFjLENBQUMsTUFBTSxFQUFFO1lBQ3hFLE9BQU8saUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbkM7UUFDRCxPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUNELElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3BCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN0RDtJQUNELElBQUksSUFBSSxLQUFLLFFBQVEsQ0FBQyxPQUFPLEVBQUU7UUFDM0IsT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNuQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTnVtYmVyVHlwZSwgRm9ybVdpZGdldFR5cGUsIERhdGFUeXBlLCBpc01vYmlsZUFwcCwgaXNBbmRyb2lkIH0gZnJvbSAnQHdtL2NvcmUnO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5cbmNvbnN0ICBWSUVXX01PREVfT1BUSU9OUyA9IHtcbiAgICBERUZBVUxUIDogJ2RlZmF1bHQnLFxuICAgIExBQkVMIDogJ2xhYmVsJ1xufTtcblxuZXhwb3J0IGNvbnN0IEVESVRfTU9ERSA9IHtcbiAgICBRVUlDS19FRElUIDogJ3F1aWNrZWRpdCcsXG4gICAgSU5MSU5FIDogJ2lubGluZScsXG4gICAgRk9STSA6ICdmb3JtJyxcbiAgICBESUFMT0cgOiAnZGlhbG9nJ1xufTtcblxuLy8gTWV0aG9kIHRvIHNldCB0aGUgaGVhZGVyIGNvbmZpZyBvZiB0aGUgZGF0YSB0YWJsZVxuZXhwb3J0IGNvbnN0IHNldEhlYWRlckNvbmZpZyA9IChoZWFkZXJDb25maWcsIGNvbmZpZywgZmllbGQsIGluZGV4PzogbnVtYmVyKTogdm9pZCA9PiB7XG4gICAgXy5mb3JFYWNoKGhlYWRlckNvbmZpZywgY29scyA9PiB7XG4gICAgICAgIGlmIChfLmdldChjb2xzLCAnaXNHcm91cCcpKSB7XG4gICAgICAgICAgICBpZiAoY29scy5maWVsZCA9PT0gZmllbGQpIHtcbiAgICAgICAgICAgICAgICBjb2xzLmNvbHVtbnNbaW5kZXhdID0gY29uZmlnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZXRIZWFkZXJDb25maWcoY29scy5jb2x1bW5zLCBjb25maWcsIGZpZWxkLCBpbmRleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRIZWFkZXJDb25maWdGb3JUYWJsZSA9IChoZWFkZXJDb25maWc6IGFueSwgY29uZmlnOiBhbnksIGZpZWxkTmFtZTogc3RyaW5nLCBpbmRleD86IG51bWJlcik6IHZvaWQgPT4ge1xuICAgIGlmIChmaWVsZE5hbWUpIHtcbiAgICAgICAgc2V0SGVhZGVyQ29uZmlnKGhlYWRlckNvbmZpZywgY29uZmlnLCBmaWVsZE5hbWUsIGluZGV4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBoZWFkZXJDb25maWdbaW5kZXhdID0gY29uZmlnO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSb3dPcGVyYXRpb25zQ29sdW1uID0gKCk6IGFueSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgJ2ZpZWxkJyAgICAgICAgIDogJ3Jvd09wZXJhdGlvbnMnLFxuICAgICAgICAndHlwZScgICAgICAgICAgOiAnY3VzdG9tJyxcbiAgICAgICAgJ2Rpc3BsYXlOYW1lJyAgIDogJ0FjdGlvbnMnLFxuICAgICAgICAnd2lkdGgnICAgICAgICAgOiAnMTIwcHgnLFxuICAgICAgICAncmVhZG9ubHknICAgICAgOiB0cnVlLFxuICAgICAgICAnc29ydGFibGUnICAgICAgOiBmYWxzZSxcbiAgICAgICAgJ3NlYXJjaGFibGUnICAgIDogZmFsc2UsXG4gICAgICAgICdyZXNpemFibGUnICAgICA6IGZhbHNlLFxuICAgICAgICAnc2VsZWN0YWJsZScgICAgOiBmYWxzZSxcbiAgICAgICAgJ3Nob3cnICAgICAgICAgIDogdHJ1ZSxcbiAgICAgICAgJ29wZXJhdGlvbnMnICAgIDogW10sXG4gICAgICAgICdvcENvbmZpZycgICAgICA6IHt9LFxuICAgICAgICAncGNEaXNwbGF5JyAgICAgOiB0cnVlLFxuICAgICAgICAnbW9iaWxlRGlzcGxheScgOiB0cnVlLFxuICAgICAgICAndGFibGV0RGlzcGxheScgOiB0cnVlLFxuICAgICAgICAnaW5jbHVkZScgICAgICAgOiB0cnVlLFxuICAgICAgICAnaXNSb3dPcGVyYXRpb24nOiB0cnVlXG4gICAgfTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBjYXB0aW9uIGFuZCB3aWRnZXQgYm9vdHN0cmFwIGNsYXNzZXMgZm9yIHRoZSBmaWVsZFxuICovXG5leHBvcnQgY29uc3QgZ2V0RmllbGRMYXlvdXRDb25maWcgPSAoY2FwdGlvbldpZHRoLCBjYXB0aW9uUG9zaXRpb24sIG9zKTogYW55ID0+IHtcbiAgICBsZXQgY2FwdGlvbkNscyA9ICcnLFxuICAgICAgICB3aWRnZXRDbHMgPSAnJztcblxuICAgIGNhcHRpb25Qb3NpdGlvbiA9IGNhcHRpb25Qb3NpdGlvbiB8fCAndG9wJztcblxuICAgIGlmIChjYXB0aW9uUG9zaXRpb24gPT09ICd0b3AnIHx8IGNhcHRpb25Qb3NpdGlvbiA9PT0gJ2Zsb2F0aW5nJykge1xuICAgICAgICBpZiAoKG9zICYmIG9zID09PSAnYW5kcm9pZCcpIHx8ICFpc01vYmlsZUFwcCgpIHx8IGlzQW5kcm9pZCgpKSB7IC8vIElzIGFuZHJvaWQgb3Igbm90IGEgbW9iaWxlIGFwcGxpY2F0aW9uXG4gICAgICAgICAgICBjYXB0aW9uQ2xzID0gd2lkZ2V0Q2xzID0gJ2NvbC14cy0xMic7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNNb2JpbGVBcHAoKSkgeyAvLyBJcyBhIG1vYmlsZSBhcHBsaWNhdGlvbiBhbmQgbm90IGFuZHJvaWRcbiAgICAgICAgICAgIGNhcHRpb25DbHMgPSAnY29sLXhzLTQnO1xuICAgICAgICAgICAgd2lkZ2V0Q2xzID0gJ2NvbC14cy04JztcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY2FwdGlvbldpZHRoKSB7XG4gICAgICAgIC8vIGhhbmRsaW5nIGl0ZW1zcGVycm93IGNvbnRhaW5pbmcgc3RyaW5nIG9mIGNsYXNzZXNcbiAgICAgICAgXy5mb3JFYWNoKF8uc3BsaXQoY2FwdGlvbldpZHRoLCAnICcpLCBmdW5jdGlvbiAoY2xzKSB7XG4gICAgICAgICAgICBjb25zdCBrZXlzID0gXy5zcGxpdChjbHMsICctJyksXG4gICAgICAgICAgICAgICAgdGllciA9IGtleXNbMF07XG4gICAgICAgICAgICBsZXQgX2NhcHRpb25XaWR0aCxcbiAgICAgICAgICAgICAgICB3aWRnZXRXaWR0aDtcbiAgICAgICAgICAgIF9jYXB0aW9uV2lkdGggPSBwYXJzZUludChrZXlzWzFdLCAxMCk7XG4gICAgICAgICAgICB3aWRnZXRXaWR0aCAgPSAxMiAtIF9jYXB0aW9uV2lkdGg7XG4gICAgICAgICAgICB3aWRnZXRXaWR0aCAgPSB3aWRnZXRXaWR0aCA8PSAwID8gMTIgOiB3aWRnZXRXaWR0aDtcbiAgICAgICAgICAgIGNhcHRpb25DbHMgKz0gJyAnICsgJ2NvbC0nICsgdGllciArICctJyArIF9jYXB0aW9uV2lkdGg7XG4gICAgICAgICAgICB3aWRnZXRDbHMgICs9ICcgJyArICdjb2wtJyArIHRpZXIgKyAnLScgKyB3aWRnZXRXaWR0aDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgICdjYXB0aW9uQ2xzJyA6IGNhcHRpb25DbHMsXG4gICAgICAgICd3aWRnZXRDbHMnICA6IHdpZGdldENsc1xuICAgIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFZpZXdNb2RlV2lkZ2V0ID0gd2lkZ2V0ID0+IHtcbiAgICBpZiAoXy5pbmNsdWRlcyhbJ2NoZWNrYm94JywgJ3RvZ2dsZScsICdyYXRpbmcnXSwgd2lkZ2V0KSkge1xuICAgICAgICByZXR1cm4gVklFV19NT0RFX09QVElPTlMuREVGQVVMVDtcbiAgICB9XG4gICAgcmV0dXJuIFZJRVdfTU9ERV9PUFRJT05TLkxBQkVMO1xufTtcblxuY29uc3QgcGFyc2VCb29sZWFuVmFsdWUgPSB2YWx1ZSA9PiB7XG4gICAgaWYgKHZhbHVlID09PSAndHJ1ZScpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PT0gJ2ZhbHNlJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICgvXlxcZCskLy50ZXN0KHZhbHVlKSkgeyAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBzdHJpbmcgb2YgbnVtYmVyIHR5cGUgbGlrZSAnMTIzJ1xuICAgICAgICByZXR1cm4gK3ZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VWYWx1ZUJ5VHlwZSA9ICh2YWx1ZSwgdHlwZSwgd2lkZ2V0LCB0cmFpbGluZ3plcm8/KSA9PiB7XG4gICAgaWYgKHdpZGdldCkge1xuICAgICAgICBpZiAod2lkZ2V0ID09PSBGb3JtV2lkZ2V0VHlwZS5OVU1CRVIgfHwgd2lkZ2V0ID09PSBGb3JtV2lkZ2V0VHlwZS5TTElERVIgfHwgd2lkZ2V0ID09PSBGb3JtV2lkZ2V0VHlwZS5DVVJSRU5DWSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzTmFOKE51bWJlcih2YWx1ZSkpID8gbnVsbCA6IHRyYWlsaW5nemVybyA/IHZhbHVlIDogTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2lkZ2V0ID09PSBGb3JtV2lkZ2V0VHlwZS5DSEVDS0JPWCB8fCB3aWRnZXQgPT09IEZvcm1XaWRnZXRUeXBlLlRPR0dMRSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlQm9vbGVhblZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIGlmIChpc051bWJlclR5cGUodHlwZSkpIHtcbiAgICAgICAgcmV0dXJuIGlzTmFOKE51bWJlcih2YWx1ZSkpID8gbnVsbCA6IE51bWJlcih2YWx1ZSk7XG4gICAgfVxuICAgIGlmICh0eXBlID09PSBEYXRhVHlwZS5CT09MRUFOKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUJvb2xlYW5WYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbn07XG5cbmNvbnN0IGZpZWxkVHlwZVdpZGdldFR5cGVNYXAgPSB7XG4gICAgJ2ludGVnZXInICAgIDogWydudW1iZXInLCAndGV4dCcsICdzZWxlY3QnLCAnY2hlY2tib3hzZXQnLCAncmFkaW9zZXQnLCAncmF0aW5nJywgJ3NsaWRlcicsICdjdXJyZW5jeScsICdhdXRvY29tcGxldGUnLCAnY2hpcHMnXSxcbiAgICAnYmlnX2ludGVnZXInOiBbJ251bWJlcicsICd0ZXh0JywgJ3NlbGVjdCcsICdjaGVja2JveHNldCcsICdyYWRpb3NldCcsICdyYXRpbmcnLCAnc2xpZGVyJywgJ2N1cnJlbmN5JywgJ2F1dG9jb21wbGV0ZScsICdjaGlwcyddLFxuICAgICdzaG9ydCcgICAgICA6IFsnbnVtYmVyJywgJ3RleHQnLCAnc2VsZWN0JywgJ2NoZWNrYm94c2V0JywgJ3JhZGlvc2V0JywgJ3NsaWRlcicsICdjdXJyZW5jeScsICdhdXRvY29tcGxldGUnLCAnY2hpcHMnXSxcbiAgICAnZmxvYXQnICAgICAgOiBbJ251bWJlcicsICd0ZXh0JywgJ3NlbGVjdCcsICdjaGVja2JveHNldCcsICdyYWRpb3NldCcsICdzbGlkZXInLCAnY3VycmVuY3knLCAnYXV0b2NvbXBsZXRlJywgJ2NoaXBzJ10sXG4gICAgJ2JpZ19kZWNpbWFsJzogWydudW1iZXInLCAndGV4dCcsICdzZWxlY3QnLCAnY2hlY2tib3hzZXQnLCAncmFkaW9zZXQnLCAnc2xpZGVyJywgJ2N1cnJlbmN5JywgJ2F1dG9jb21wbGV0ZScsICdjaGlwcyddLFxuICAgICdudW1iZXInICAgICA6IFsnbnVtYmVyJywgJ3RleHQnLCAnc2VsZWN0JywgJ2NoZWNrYm94c2V0JywgJ3JhZGlvc2V0JywgJ3NsaWRlcicsICdjdXJyZW5jeScsICdhdXRvY29tcGxldGUnLCAnY2hpcHMnXSxcbiAgICAnZG91YmxlJyAgICAgOiBbJ251bWJlcicsICd0ZXh0JywgJ3NlbGVjdCcsICdjaGVja2JveHNldCcsICdyYWRpb3NldCcsICdzbGlkZXInLCAnY3VycmVuY3knLCAnYXV0b2NvbXBsZXRlJywgJ2NoaXBzJ10sXG4gICAgJ2xvbmcnICAgICAgIDogWydudW1iZXInLCAndGV4dCcsICdzZWxlY3QnLCAnY2hlY2tib3hzZXQnLCAncmFkaW9zZXQnLCAncmF0aW5nJywgJ3NsaWRlcicsICdjdXJyZW5jeScsICdhdXRvY29tcGxldGUnLCAnY2hpcHMnXSxcbiAgICAnYnl0ZScgICAgICAgOiBbJ251bWJlcicsICd0ZXh0JywgJ3NlbGVjdCcsICdjaGVja2JveHNldCcsICdyYWRpb3NldCcsICdzbGlkZXInLCAnY3VycmVuY3knLCAnYXV0b2NvbXBsZXRlJywgJ2NoaXBzJ10sXG4gICAgJ3N0cmluZycgICAgIDogWyd0ZXh0JywgJ251bWJlcicsICAndGV4dGFyZWEnLCAncGFzc3dvcmQnLCAncmljaHRleHQnLCAnc2VsZWN0JywgJ2NoZWNrYm94c2V0JywgJ3JhZGlvc2V0JywgJ2RhdGUnLCAndGltZScsICd0aW1lc3RhbXAnLCAnc3dpdGNoJywgJ2N1cnJlbmN5JywgJ2F1dG9jb21wbGV0ZScsICdjaGlwcycsICdjb2xvcnBpY2tlciddLFxuICAgICdjaGFyYWN0ZXInICA6IFsndGV4dCcsICdudW1iZXInLCAgJ3RleHRhcmVhJywgJ3Bhc3N3b3JkJywgJ3JpY2h0ZXh0JywgJ3NlbGVjdCcsICdjaGVja2JveHNldCcsICdyYWRpb3NldCcsICdzd2l0Y2gnLCAnY3VycmVuY3knLCAnYXV0b2NvbXBsZXRlJywgJ2NoaXBzJ10sXG4gICAgJ3RleHQnICAgICAgIDogWyd0ZXh0JywgJ251bWJlcicsICAndGV4dGFyZWEnLCAncGFzc3dvcmQnLCAncmljaHRleHQnLCAnc2VsZWN0JywgJ2NoZWNrYm94c2V0JywgJ3JhZGlvc2V0JywgJ2RhdGUnLCAndGltZScsICd0aW1lc3RhbXAnLCAnc3dpdGNoJywgJ2N1cnJlbmN5JywgJ2F1dG9jb21wbGV0ZScsICdjaGlwcycsICdjb2xvcnBpY2tlciddLFxuICAgICdkYXRlJyAgICAgICA6IFsnZGF0ZScsICd0ZXh0JywgJ251bWJlcicsICdzZWxlY3QnLCAnY2hlY2tib3hzZXQnLCAncmFkaW9zZXQnLCAnYXV0b2NvbXBsZXRlJywgJ2NoaXBzJ10sXG4gICAgJ3RpbWUnICAgICAgIDogWyd0aW1lJywgJ3RleHQnLCAnbnVtYmVyJywgJ3NlbGVjdCcsICdjaGVja2JveHNldCcsICdyYWRpb3NldCcsICdhdXRvY29tcGxldGUnLCAnY2hpcHMnXSxcbiAgICAndGltZXN0YW1wJyAgOiBbJ3RpbWVzdGFtcCcsICd0ZXh0JywgJ251bWJlcicsICdzZWxlY3QnLCAnY2hlY2tib3hzZXQnLCAncmFkaW9zZXQnLCAnYXV0b2NvbXBsZXRlJywgJ2NoaXBzJ10sXG4gICAgJ2RhdGV0aW1lJyAgIDogWydkYXRldGltZScsICd0ZXh0JywgJ3NlbGVjdCcsICdjaGVja2JveHNldCcsICdyYWRpb3NldCcsICdhdXRvY29tcGxldGUnLCAnY2hpcHMnXSxcbiAgICAnYm9vbGVhbicgICAgOiBbJ2NoZWNrYm94JywgJ3JhZGlvc2V0JywgJ3RvZ2dsZScsICdzZWxlY3QnXSxcbiAgICAnbGlzdCcgICAgICAgOiBbJ3NlbGVjdCcsICdyYWRpb3NldCcsICdjaGVja2JveHNldCcsICdzd2l0Y2gnLCAnYXV0b2NvbXBsZXRlJywgJ2NoaXBzJ10sXG4gICAgJ2Nsb2InICAgICAgIDogWyd0ZXh0JywgJ3RleHRhcmVhJywgJ3JpY2h0ZXh0J10sXG4gICAgJ2Jsb2InICAgICAgIDogWyd1cGxvYWQnXSxcbiAgICAnZmlsZScgICAgICAgOiBbJ3VwbG9hZCddLFxuICAgICdjdXN0b20nICAgICA6IFsndGV4dCcsICdudW1iZXInLCAgJ3RleHRhcmVhJywgJ3Bhc3N3b3JkJywgJ2NoZWNrYm94JywgJ3RvZ2dsZScsICdzbGlkZXInLCAncmljaHRleHQnLCAnY3VycmVuY3knLCAnc3dpdGNoJyxcbiAgICAgICAgJ3NlbGVjdCcsICdjaGVja2JveHNldCcsICdyYWRpb3NldCcsICdkYXRlJywgJ3RpbWUnLCAndGltZXN0YW1wJywgJ3JhdGluZycsICdkYXRldGltZScsICdhdXRvY29tcGxldGUnLCAnY2hpcHMnLCAnY29sb3JwaWNrZXInXVxufTtcblxuLy8gR2V0IHdpZGdldHMgYXBwbGljYWJsZSB0byB0aGUgZ2l2ZW4gdHlwZVxuZXhwb3J0IGNvbnN0IGdldEZpZWxkVHlwZVdpZGdldFR5cGVzTWFwID0gKCkgPT4ge1xuICAgIHJldHVybiBmaWVsZFR5cGVXaWRnZXRUeXBlTWFwO1xufTtcblxuLy8gR2V0IGZpbHRlciB3aWRnZXQgYXBwbGljYWJsZSB0byB0aGUgZ2l2ZW4gdHlwZVxuZXhwb3J0IGNvbnN0IGdldERhdGFUYWJsZUZpbHRlcldpZGdldCA9IHR5cGUgPT4ge1xuICAgIGxldCB3aWRnZXQgPSBmaWVsZFR5cGVXaWRnZXRUeXBlTWFwW3R5cGVdICYmIGZpZWxkVHlwZVdpZGdldFR5cGVNYXBbdHlwZV1bMF07XG4gICAgaWYgKHR5cGUgPT09IERhdGFUeXBlLkJPT0xFQU4pIHtcbiAgICAgICAgd2lkZ2V0ID0gRm9ybVdpZGdldFR5cGUuU0VMRUNUO1xuICAgIH1cbiAgICBpZiAoXy5pbmNsdWRlcyhbRm9ybVdpZGdldFR5cGUuVEVYVCwgRm9ybVdpZGdldFR5cGUuTlVNQkVSLCBGb3JtV2lkZ2V0VHlwZS5TRUxFQ1QsIEZvcm1XaWRnZXRUeXBlLkFVVE9DT01QTEVURSxcbiAgICAgICAgICAgIEZvcm1XaWRnZXRUeXBlLkRBVEUsIEZvcm1XaWRnZXRUeXBlLlRJTUUsIEZvcm1XaWRnZXRUeXBlLkRBVEVUSU1FXSwgd2lkZ2V0KSkge1xuICAgICAgICByZXR1cm4gd2lkZ2V0O1xuICAgIH1cbiAgICByZXR1cm4gRm9ybVdpZGdldFR5cGUuVEVYVDtcbn07XG5cbi8qKlxuICogQG5nZG9jIGZ1bmN0aW9uXG4gKiBAbmFtZSB3bS53aWRnZXRzLmxpdmUuZ2V0RWRpdE1vZGVXaWRnZXRcbiAqIEBtZXRob2RPZiB3bS53aWRnZXRzLmxpdmUuTGl2ZVdpZGdldFV0aWxzXG4gKiBAZnVuY3Rpb25cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgZGVmYXVsdCB3aWRnZXQgZm9yIGdyaWRcbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gY29sRGVmIGZpZWxkIGRlZmluaXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEVkaXRNb2RlV2lkZ2V0ID0gY29sRGVmID0+IHtcbiAgICBpZiAoY29sRGVmWydyZWxhdGVkLWVudGl0eS1uYW1lJ10gJiYgY29sRGVmWydwcmltYXJ5LWtleSddKSB7XG4gICAgICAgIHJldHVybiBGb3JtV2lkZ2V0VHlwZS5TRUxFQ1Q7XG4gICAgfVxuICAgIHJldHVybiAoZmllbGRUeXBlV2lkZ2V0VHlwZU1hcFtjb2xEZWYudHlwZV0gJiYgZmllbGRUeXBlV2lkZ2V0VHlwZU1hcFtjb2xEZWYudHlwZV1bMF0pIHx8IEZvcm1XaWRnZXRUeXBlLlRFWFQ7XG59O1xuXG4vKipcbiAqIEBuZ2RvYyBmdW5jdGlvblxuICogQG5hbWUgd20ud2lkZ2V0cy5saXZlLkxpdmVXaWRnZXRVdGlscyNnZXREZWZhdWx0VmFsdWVcbiAqIEBtZXRob2RPZiB3bS53aWRnZXRzLmxpdmUuTGl2ZVdpZGdldFV0aWxzXG4gKiBAZnVuY3Rpb25cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIHJldHVybiB0aGUgZm9ybWF0dGVkIGRlZmF1bHQgdmFsdWVcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgdmFsdWUgdG8gYmUgZm9ybWF0dGVkXG4gKiBAcGFyYW0ge3N0cmluZ30gdHlwZSBjb2x1bW4gdHlwZSBvZiB0aGUgdmFsdWVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRWYWx1ZSA9ICh2YWx1ZSwgdHlwZSwgd2lkZ2V0KSA9PiB7XG4gICAgaWYgKHdpZGdldCkge1xuICAgICAgICBpZiAod2lkZ2V0ID09PSBGb3JtV2lkZ2V0VHlwZS5OVU1CRVIgfHwgd2lkZ2V0ID09PSBGb3JtV2lkZ2V0VHlwZS5TTElERVIgfHwgd2lkZ2V0ID09PSBGb3JtV2lkZ2V0VHlwZS5DVVJSRU5DWSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzTmFOKE51bWJlcih2YWx1ZSkpID8gbnVsbCA6IE51bWJlcih2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdpZGdldCA9PT0gRm9ybVdpZGdldFR5cGUuQ0hFQ0tCT1ggfHwgd2lkZ2V0ID09PSBGb3JtV2lkZ2V0VHlwZS5UT0dHTEUpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUJvb2xlYW5WYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoaXNOdW1iZXJUeXBlKHR5cGUpKSB7XG4gICAgICAgIHJldHVybiBpc05hTihOdW1iZXIodmFsdWUpKSA/IG51bGwgOiBOdW1iZXIodmFsdWUpO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gRGF0YVR5cGUuQk9PTEVBTikge1xuICAgICAgICByZXR1cm4gcGFyc2VCb29sZWFuVmFsdWUodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59O1xuIl19
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvYmFzZS9zcmMvdXRpbHMvbGl2ZS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxRixPQUFPLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRXhELE1BQU8saUJBQWlCLEdBQUc7SUFDdkIsT0FBTyxFQUFHLFNBQVM7SUFDbkIsS0FBSyxFQUFHLE9BQU87Q0FDbEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUNyQixVQUFVLEVBQUcsV0FBVztJQUN4QixNQUFNLEVBQUcsUUFBUTtJQUNqQixJQUFJLEVBQUcsTUFBTTtJQUNiLE1BQU0sRUFBRyxRQUFRO0NBQ3BCLENBQUM7QUFFRixvREFBb0Q7QUFDcEQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBYyxFQUFRLEVBQUU7SUFDakYsT0FBTyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsRUFBRTtRQUN6QixJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDO1lBQ2pDLENBQUM7aUJBQU0sQ0FBQztnQkFDSixlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3hELENBQUM7UUFDTCxDQUFD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LEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQztJQUNySCxhQUFhLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQztJQUNySCxRQUFRLEVBQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQztJQUNySCxRQUFRLEVBQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQztJQUNySCxNQUFNLEVBQVMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUM7SUFDL0gsTUFBTSxFQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUM7SUFDckgsUUFBUSxFQUFPLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDO0lBQ3RNLFdBQVcsRUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUcsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVB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SyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUNELElBQUksSUFBSSxLQUFLLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixPQUFPLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc051bWJlclR5cGUsIEZvcm1XaWRnZXRUeXBlLCBEYXRhVHlwZSwgaXNNb2JpbGVBcHAsIGlzQW5kcm9pZCB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7Zm9yRWFjaCwgZ2V0LCBpbmNsdWRlcywgc3BsaXR9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuY29uc3QgIFZJRVdfTU9ERV9PUFRJT05TID0ge1xuICAgIERFRkFVTFQgOiAnZGVmYXVsdCcsXG4gICAgTEFCRUwgOiAnbGFiZWwnXG59O1xuXG5leHBvcnQgY29uc3QgRURJVF9NT0RFID0ge1xuICAgIFFVSUNLX0VESVQgOiAncXVpY2tlZGl0JyxcbiAgICBJTkxJTkUgOiAnaW5saW5lJyxcbiAgICBGT1JNIDogJ2Zvcm0nLFxuICAgIERJQUxPRyA6ICdkaWFsb2cnXG59O1xuXG4vLyBNZXRob2QgdG8gc2V0IHRoZSBoZWFkZXIgY29uZmlnIG9mIHRoZSBkYXRhIHRhYmxlXG5leHBvcnQgY29uc3Qgc2V0SGVhZGVyQ29uZmlnID0gKGhlYWRlckNvbmZpZywgY29uZmlnLCBmaWVsZCwgaW5kZXg/OiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICBmb3JFYWNoKGhlYWRlckNvbmZpZywgY29scyA9PiB7XG4gICAgICAgIGlmIChnZXQoY29scywgJ2lzR3JvdXAnKSkge1xuICAgICAgICAgICAgaWYgKGNvbHMuZmllbGQgPT09IGZpZWxkKSB7XG4gICAgICAgICAgICAgICAgY29scy5jb2x1bW5zW2luZGV4XSA9IGNvbmZpZztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0SGVhZGVyQ29uZmlnKGNvbHMuY29sdW1ucywgY29uZmlnLCBmaWVsZCwgaW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0SGVhZGVyQ29uZmlnRm9yVGFibGUgPSAoaGVhZGVyQ29uZmlnOiBhbnksIGNvbmZpZzogYW55LCBmaWVsZE5hbWU6IHN0cmluZywgaW5kZXg/OiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICBpZiAoZmllbGROYW1lKSB7XG4gICAgICAgIHNldEhlYWRlckNvbmZpZyhoZWFkZXJDb25maWcsIGNvbmZpZywgZmllbGROYW1lLCBpbmRleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaGVhZGVyQ29uZmlnW2luZGV4XSA9IGNvbmZpZztcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Um93T3BlcmF0aW9uc0NvbHVtbiA9ICgpOiBhbnkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgICdmaWVsZCcgICAgICAgICA6ICdyb3dPcGVyYXRpb25zJyxcbiAgICAgICAgJ3R5cGUnICAgICAgICAgIDogJ2N1c3RvbScsXG4gICAgICAgICdkaXNwbGF5TmFtZScgICA6ICdBY3Rpb25zJyxcbiAgICAgICAgJ3dpZHRoJyAgICAgICAgIDogJzEyMHB4JyxcbiAgICAgICAgJ3JlYWRvbmx5JyAgICAgIDogdHJ1ZSxcbiAgICAgICAgJ3NvcnRhYmxlJyAgICAgIDogZmFsc2UsXG4gICAgICAgICdzZWFyY2hhYmxlJyAgICA6IGZhbHNlLFxuICAgICAgICAncmVzaXphYmxlJyAgICAgOiBmYWxzZSxcbiAgICAgICAgJ3NlbGVjdGFibGUnICAgIDogZmFsc2UsXG4gICAgICAgICdzaG93JyAgICAgICAgICA6IHRydWUsXG4gICAgICAgICdvcGVyYXRpb25zJyAgICA6IFtdLFxuICAgICAgICAnb3BDb25maWcnICAgICAgOiB7fSxcbiAgICAgICAgJ3BjRGlzcGxheScgICAgIDogdHJ1ZSxcbiAgICAgICAgJ21vYmlsZURpc3BsYXknIDogdHJ1ZSxcbiAgICAgICAgJ3RhYmxldERpc3BsYXknIDogdHJ1ZSxcbiAgICAgICAgJ2luY2x1ZGUnICAgICAgIDogdHJ1ZSxcbiAgICAgICAgJ2lzUm93T3BlcmF0aW9uJzogdHJ1ZVxuICAgIH07XG59O1xuXG4vKipcbiAqIFJldHVybnMgY2FwdGlvbiBhbmQgd2lkZ2V0IGJvb3RzdHJhcCBjbGFzc2VzIGZvciB0aGUgZmllbGRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEZpZWxkTGF5b3V0Q29uZmlnID0gKGNhcHRpb25XaWR0aCwgY2FwdGlvblBvc2l0aW9uLCBvcyk6IGFueSA9PiB7XG4gICAgbGV0IGNhcHRpb25DbHMgPSAnJyxcbiAgICAgICAgd2lkZ2V0Q2xzID0gJyc7XG5cbiAgICBjYXB0aW9uUG9zaXRpb24gPSBjYXB0aW9uUG9zaXRpb24gfHwgJ3RvcCc7XG5cbiAgICBpZiAoY2FwdGlvblBvc2l0aW9uID09PSAndG9wJyB8fCBjYXB0aW9uUG9zaXRpb24gPT09ICdmbG9hdGluZycpIHtcbiAgICAgICAgaWYgKChvcyAmJiBvcyA9PT0gJ2FuZHJvaWQnKSB8fCAhaXNNb2JpbGVBcHAoKSB8fCBpc0FuZHJvaWQoKSkgeyAvLyBJcyBhbmRyb2lkIG9yIG5vdCBhIG1vYmlsZSBhcHBsaWNhdGlvblxuICAgICAgICAgICAgY2FwdGlvbkNscyA9IHdpZGdldENscyA9ICdjb2wteHMtMTInO1xuICAgICAgICB9IGVsc2UgaWYgKGlzTW9iaWxlQXBwKCkpIHsgLy8gSXMgYSBtb2JpbGUgYXBwbGljYXRpb24gYW5kIG5vdCBhbmRyb2lkXG4gICAgICAgICAgICBjYXB0aW9uQ2xzID0gJ2NvbC14cy00JztcbiAgICAgICAgICAgIHdpZGdldENscyA9ICdjb2wteHMtOCc7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGNhcHRpb25XaWR0aCkge1xuICAgICAgICAvLyBoYW5kbGluZyBpdGVtc3BlcnJvdyBjb250YWluaW5nIHN0cmluZyBvZiBjbGFzc2VzXG4gICAgICAgIGZvckVhY2goc3BsaXQoY2FwdGlvbldpZHRoLCAnICcpLCBmdW5jdGlvbiAoY2xzKSB7XG4gICAgICAgICAgICBjb25zdCBrZXlzID0gc3BsaXQoY2xzLCAnLScpLFxuICAgICAgICAgICAgICAgIHRpZXIgPSBrZXlzWzBdO1xuICAgICAgICAgICAgbGV0IF9jYXB0aW9uV2lkdGgsXG4gICAgICAgICAgICAgICAgd2lkZ2V0V2lkdGg7XG4gICAgICAgICAgICBfY2FwdGlvbldpZHRoID0gcGFyc2VJbnQoa2V5c1sxXSwgMTApO1xuICAgICAgICAgICAgd2lkZ2V0V2lkdGggID0gMTIgLSBfY2FwdGlvbldpZHRoO1xuICAgICAgICAgICAgd2lkZ2V0V2lkdGggID0gd2lkZ2V0V2lkdGggPD0gMCA/IDEyIDogd2lkZ2V0V2lkdGg7XG4gICAgICAgICAgICBjYXB0aW9uQ2xzICs9ICcgJyArICdjb2wtJyArIHRpZXIgKyAnLScgKyBfY2FwdGlvbldpZHRoO1xuICAgICAgICAgICAgd2lkZ2V0Q2xzICArPSAnICcgKyAnY29sLScgKyB0aWVyICsgJy0nICsgd2lkZ2V0V2lkdGg7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICAnY2FwdGlvbkNscycgOiBjYXB0aW9uQ2xzLFxuICAgICAgICAnd2lkZ2V0Q2xzJyAgOiB3aWRnZXRDbHNcbiAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRWaWV3TW9kZVdpZGdldCA9IHdpZGdldCA9PiB7XG4gICAgaWYgKGluY2x1ZGVzKFsnY2hlY2tib3gnLCAndG9nZ2xlJywgJ3JhdGluZyddLCB3aWRnZXQpKSB7XG4gICAgICAgIHJldHVybiBWSUVXX01PREVfT1BUSU9OUy5ERUZBVUxUO1xuICAgIH1cbiAgICByZXR1cm4gVklFV19NT0RFX09QVElPTlMuTEFCRUw7XG59O1xuXG5jb25zdCBwYXJzZUJvb2xlYW5WYWx1ZSA9IHZhbHVlID0+IHtcbiAgICBpZiAodmFsdWUgPT09ICd0cnVlJykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHZhbHVlID09PSAnZmFsc2UnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKC9eXFxkKyQvLnRlc3QodmFsdWUpKSB7IC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIHN0cmluZyBvZiBudW1iZXIgdHlwZSBsaWtlICcxMjMnXG4gICAgICAgIHJldHVybiArdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZVZhbHVlQnlUeXBlID0gKHZhbHVlLCB0eXBlLCB3aWRnZXQsIHRyYWlsaW5nemVybz8pID0+IHtcbiAgICBpZiAod2lkZ2V0KSB7XG4gICAgICAgIGlmICh3aWRnZXQgPT09IEZvcm1XaWRnZXRUeXBlLk5VTUJFUiB8fCB3aWRnZXQgPT09IEZvcm1XaWRnZXRUeXBlLlNMSURFUiB8fCB3aWRnZXQgPT09IEZvcm1XaWRnZXRUeXBlLkNVUlJFTkNZKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNOYU4oTnVtYmVyKHZhbHVlKSkgPyBudWxsIDogdHJhaWxpbmd6ZXJvID8gdmFsdWUgOiBOdW1iZXIodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh3aWRnZXQgPT09IEZvcm1XaWRnZXRUeXBlLkNIRUNLQk9YIHx8IHdpZGdldCA9PT0gRm9ybVdpZGdldFR5cGUuVE9HR0xFKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VCb29sZWFuVmFsdWUodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKGlzTnVtYmVyVHlwZSh0eXBlKSkge1xuICAgICAgICByZXR1cm4gaXNOYU4oTnVtYmVyKHZhbHVlKSkgPyBudWxsIDogTnVtYmVyKHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09IERhdGFUeXBlLkJPT0xFQU4pIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlQm9vbGVhblZhbHVlKHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufTtcblxuY29uc3QgZmllbGRUeXBlV2lkZ2V0VHlwZU1hcCA9IHtcbiAgICAnaW50ZWdlcicgICAgOiBbJ251bWJlcicsICd0ZXh0JywgJ3NlbGVjdCcsICdjaGVja2JveHNldCcsICdyYWRpb3NldCcsICdyYXRpbmcnLCAnc2xpZGVyJywgJ2N1cnJlbmN5JywgJ2F1dG9jb21wbGV0ZScsICdjaGlwcyddLFxuICAgICdiaWdfaW50ZWdlcic6IFsnbnVtYmVyJywgJ3RleHQnLCAnc2VsZWN0JywgJ2NoZWNrYm94c2V0JywgJ3JhZGlvc2V0JywgJ3JhdGluZycsICdzbGlkZXInLCAnY3VycmVuY3knLCAnYXV0b2NvbXBsZXRlJywgJ2NoaXBzJ10sXG4gICAgJ3Nob3J0JyAgICAgIDogWydudW1iZXInLCAndGV4dCcsICdzZWxlY3QnLCAnY2hlY2tib3hzZXQnLCAncmFkaW9zZXQnLCAnc2xpZGVyJywgJ2N1cnJlbmN5JywgJ2F1dG9jb21wbGV0ZScsICdjaGlwcyddLFxuICAgICdmbG9hdCcgICAgICA6IFsnbnVtYmVyJywgJ3RleHQnLCAnc2VsZWN0JywgJ2NoZWNrYm94c2V0JywgJ3JhZGlvc2V0JywgJ3NsaWRlcicsICdjdXJyZW5jeScsICdhdXRvY29tcGxldGUnLCAnY2hpcHMnXSxcbiAgICAnYmlnX2RlY2ltYWwnOiBbJ251bWJlcicsICd0ZXh0JywgJ3NlbGVjdCcsICdjaGVja2JveHNldCcsICdyYWRpb3NldCcsICdzbGlkZXInLCAnY3VycmVuY3knLCAnYXV0b2NvbXBsZXRlJywgJ2NoaXBzJ10sXG4gICAgJ251bWJlcicgICAgIDogWydudW1iZXInLCAndGV4dCcsICdzZWxlY3QnLCAnY2hlY2tib3hzZXQnLCAncmFkaW9zZXQnLCAnc2xpZGVyJywgJ2N1cnJlbmN5JywgJ2F1dG9jb21wbGV0ZScsICdjaGlwcyddLFxuICAgICdkb3VibGUnICAgICA6IFsnbnVtYmVyJywgJ3RleHQnLCAnc2VsZWN0JywgJ2NoZWNrYm94c2V0JywgJ3JhZGlvc2V0JywgJ3NsaWRlcicsICdjdXJyZW5jeScsICdhdXRvY29tcGxldGUnLCAnY2hpcHMnXSxcbiAgICAnbG9uZycgICAgICAgOiBbJ251bWJlcicsICd0ZXh0JywgJ3NlbGVjdCcsICdjaGVja2JveHNldCcsICdyYWRpb3NldCcsICdyYXRpbmcnLCAnc2xpZGVyJywgJ2N1cnJlbmN5JywgJ2F1dG9jb21wbGV0ZScsICdjaGlwcyddLFxuICAgICdieXRlJyAgICAgICA6IFsnbnVtYmVyJywgJ3RleHQnLCAnc2VsZWN0JywgJ2NoZWNrYm94c2V0JywgJ3JhZGlvc2V0JywgJ3NsaWRlcicsICdjdXJyZW5jeScsICdhdXRvY29tcGxldGUnLCAnY2hpcHMnXSxcbiAgICAnc3RyaW5nJyAgICAgOiBbJ3RleHQnLCAnbnVtYmVyJywgICd0ZXh0YXJlYScsICdwYXNzd29yZCcsICdyaWNodGV4dCcsICdzZWxlY3QnLCAnY2hlY2tib3hzZXQnLCAncmFkaW9zZXQnLCAnZGF0ZScsICd0aW1lJywgJ3RpbWVzdGFtcCcsICdzd2l0Y2gnLCAnY3VycmVuY3knLCAnYXV0b2NvbXBsZXRlJywgJ2NoaXBzJywgJ2NvbG9ycGlja2VyJ10sXG4gICAgJ2NoYXJhY3RlcicgIDogWyd0ZXh0JywgJ251bWJlcicsICAndGV4dGFyZWEnLCAncGFzc3dvcmQnLCAncmljaHRleHQnLCAnc2VsZWN0JywgJ2NoZWNrYm94c2V0JywgJ3JhZGlvc2V0JywgJ3N3aXRjaCcsICdjdXJyZW5jeScsICdhdXRvY29tcGxldGUnLCAnY2hpcHMnXSxcbiAgICAndGV4dCcgICAgICAgOiBbJ3RleHQnLCAnbnVtYmVyJywgICd0ZXh0YXJlYScsICdwYXNzd29yZCcsICdyaWNodGV4dCcsICdzZWxlY3QnLCAnY2hlY2tib3hzZXQnLCAncmFkaW9zZXQnLCAnZGF0ZScsICd0aW1lJywgJ3RpbWVzdGFtcCcsICdzd2l0Y2gnLCAnY3VycmVuY3knLCAnYXV0b2NvbXBsZXRlJywgJ2NoaXBzJywgJ2NvbG9ycGlja2VyJ10sXG4gICAgJ2RhdGUnICAgICAgIDogWydkYXRlJywgJ3RleHQnLCAnbnVtYmVyJywgJ3NlbGVjdCcsICdjaGVja2JveHNldCcsICdyYWRpb3NldCcsICdhdXRvY29tcGxldGUnLCAnY2hpcHMnXSxcbiAgICAndGltZScgICAgICAgOiBbJ3RpbWUnLCAndGV4dCcsICdudW1iZXInLCAnc2VsZWN0JywgJ2NoZWNrYm94c2V0JywgJ3JhZGlvc2V0JywgJ2F1dG9jb21wbGV0ZScsICdjaGlwcyddLFxuICAgICd0aW1lc3RhbXAnICA6IFsndGltZXN0YW1wJywgJ3RleHQnLCAnbnVtYmVyJywgJ3NlbGVjdCcsICdjaGVja2JveHNldCcsICdyYWRpb3NldCcsICdhdXRvY29tcGxldGUnLCAnY2hpcHMnXSxcbiAgICAnZGF0ZXRpbWUnICAgOiBbJ2RhdGV0aW1lJywgJ3RleHQnLCAnc2VsZWN0JywgJ2NoZWNrYm94c2V0JywgJ3JhZGlvc2V0JywgJ2F1dG9jb21wbGV0ZScsICdjaGlwcyddLFxuICAgICdib29sZWFuJyAgICA6IFsnY2hlY2tib3gnLCAncmFkaW9zZXQnLCAndG9nZ2xlJywgJ3NlbGVjdCddLFxuICAgICdsaXN0JyAgICAgICA6IFsnc2VsZWN0JywgJ3JhZGlvc2V0JywgJ2NoZWNrYm94c2V0JywgJ3N3aXRjaCcsICdhdXRvY29tcGxldGUnLCAnY2hpcHMnXSxcbiAgICAnY2xvYicgICAgICAgOiBbJ3RleHQnLCAndGV4dGFyZWEnLCAncmljaHRleHQnXSxcbiAgICAnYmxvYicgICAgICAgOiBbJ3VwbG9hZCddLFxuICAgICdmaWxlJyAgICAgICA6IFsndXBsb2FkJ10sXG4gICAgJ2N1c3RvbScgICAgIDogWyd0ZXh0JywgJ251bWJlcicsICAndGV4dGFyZWEnLCAncGFzc3dvcmQnLCAnY2hlY2tib3gnLCAndG9nZ2xlJywgJ3NsaWRlcicsICdyaWNodGV4dCcsICdjdXJyZW5jeScsICdzd2l0Y2gnLFxuICAgICAgICAnc2VsZWN0JywgJ2NoZWNrYm94c2V0JywgJ3JhZGlvc2V0JywgJ2RhdGUnLCAndGltZScsICd0aW1lc3RhbXAnLCAncmF0aW5nJywgJ2RhdGV0aW1lJywgJ2F1dG9jb21wbGV0ZScsICdjaGlwcycsICdjb2xvcnBpY2tlciddXG59O1xuXG4vLyBHZXQgd2lkZ2V0cyBhcHBsaWNhYmxlIHRvIHRoZSBnaXZlbiB0eXBlXG5leHBvcnQgY29uc3QgZ2V0RmllbGRUeXBlV2lkZ2V0VHlwZXNNYXAgPSAoKSA9PiB7XG4gICAgcmV0dXJuIGZpZWxkVHlwZVdpZGdldFR5cGVNYXA7XG59O1xuXG4vLyBHZXQgZmlsdGVyIHdpZGdldCBhcHBsaWNhYmxlIHRvIHRoZSBnaXZlbiB0eXBlXG5leHBvcnQgY29uc3QgZ2V0RGF0YVRhYmxlRmlsdGVyV2lkZ2V0ID0gdHlwZSA9PiB7XG4gICAgbGV0IHdpZGdldCA9IGZpZWxkVHlwZVdpZGdldFR5cGVNYXBbdHlwZV0gJiYgZmllbGRUeXBlV2lkZ2V0VHlwZU1hcFt0eXBlXVswXTtcbiAgICBpZiAodHlwZSA9PT0gRGF0YVR5cGUuQk9PTEVBTikge1xuICAgICAgICB3aWRnZXQgPSBGb3JtV2lkZ2V0VHlwZS5TRUxFQ1Q7XG4gICAgfVxuICAgIGlmIChpbmNsdWRlcyhbRm9ybVdpZGdldFR5cGUuVEVYVCwgRm9ybVdpZGdldFR5cGUuTlVNQkVSLCBGb3JtV2lkZ2V0VHlwZS5TRUxFQ1QsIEZvcm1XaWRnZXRUeXBlLkFVVE9DT01QTEVURSxcbiAgICAgICAgICAgIEZvcm1XaWRnZXRUeXBlLkRBVEUsIEZvcm1XaWRnZXRUeXBlLlRJTUUsIEZvcm1XaWRnZXRUeXBlLkRBVEVUSU1FXSwgd2lkZ2V0KSkge1xuICAgICAgICByZXR1cm4gd2lkZ2V0O1xuICAgIH1cbiAgICByZXR1cm4gRm9ybVdpZGdldFR5cGUuVEVYVDtcbn07XG5cbi8qKlxuICogQG5nZG9jIGZ1bmN0aW9uXG4gKiBAbmFtZSB3bS53aWRnZXRzLmxpdmUuZ2V0RWRpdE1vZGVXaWRnZXRcbiAqIEBtZXRob2RPZiB3bS53aWRnZXRzLmxpdmUuTGl2ZVdpZGdldFV0aWxzXG4gKiBAZnVuY3Rpb25cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgZGVmYXVsdCB3aWRnZXQgZm9yIGdyaWRcbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gY29sRGVmIGZpZWxkIGRlZmluaXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEVkaXRNb2RlV2lkZ2V0ID0gY29sRGVmID0+IHtcbiAgICBpZiAoY29sRGVmWydyZWxhdGVkLWVudGl0eS1uYW1lJ10gJiYgY29sRGVmWydwcmltYXJ5LWtleSddKSB7XG4gICAgICAgIHJldHVybiBGb3JtV2lkZ2V0VHlwZS5TRUxFQ1Q7XG4gICAgfVxuICAgIHJldHVybiAoZmllbGRUeXBlV2lkZ2V0VHlwZU1hcFtjb2xEZWYudHlwZV0gJiYgZmllbGRUeXBlV2lkZ2V0VHlwZU1hcFtjb2xEZWYudHlwZV1bMF0pIHx8IEZvcm1XaWRnZXRUeXBlLlRFWFQ7XG59O1xuXG4vKipcbiAqIEBuZ2RvYyBmdW5jdGlvblxuICogQG5hbWUgd20ud2lkZ2V0cy5saXZlLkxpdmVXaWRnZXRVdGlscyNnZXREZWZhdWx0VmFsdWVcbiAqIEBtZXRob2RPZiB3bS53aWRnZXRzLmxpdmUuTGl2ZVdpZGdldFV0aWxzXG4gKiBAZnVuY3Rpb25cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIHJldHVybiB0aGUgZm9ybWF0dGVkIGRlZmF1bHQgdmFsdWVcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgdmFsdWUgdG8gYmUgZm9ybWF0dGVkXG4gKiBAcGFyYW0ge3N0cmluZ30gdHlwZSBjb2x1bW4gdHlwZSBvZiB0aGUgdmFsdWVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRWYWx1ZSA9ICh2YWx1ZSwgdHlwZSwgd2lkZ2V0KSA9PiB7XG4gICAgaWYgKHdpZGdldCkge1xuICAgICAgICBpZiAod2lkZ2V0ID09PSBGb3JtV2lkZ2V0VHlwZS5OVU1CRVIgfHwgd2lkZ2V0ID09PSBGb3JtV2lkZ2V0VHlwZS5TTElERVIgfHwgd2lkZ2V0ID09PSBGb3JtV2lkZ2V0VHlwZS5DVVJSRU5DWSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzTmFOKE51bWJlcih2YWx1ZSkpID8gbnVsbCA6IE51bWJlcih2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdpZGdldCA9PT0gRm9ybVdpZGdldFR5cGUuQ0hFQ0tCT1ggfHwgd2lkZ2V0ID09PSBGb3JtV2lkZ2V0VHlwZS5UT0dHTEUpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUJvb2xlYW5WYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoaXNOdW1iZXJUeXBlKHR5cGUpKSB7XG4gICAgICAgIHJldHVybiBpc05hTihOdW1iZXIodmFsdWUpKSA/IG51bGwgOiBOdW1iZXIodmFsdWUpO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gRGF0YVR5cGUuQk9PTEVBTikge1xuICAgICAgICByZXR1cm4gcGFyc2VCb29sZWFuVmFsdWUodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59O1xuIl19
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { forwardRef } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { $parseExpr, checkIsCustomPipeExpression, deHyphenate, encodeUrl, FormWidgetType, getClonedObject, initCaps, isValidWebURL, prettifyLabel, stringStartsWith } from '@wm/core';
|
|
3
3
|
import { DialogRef, WidgetRef } from '../widgets/framework/types';
|
|
4
|
-
import { createFocusTrap } from '@wavemaker/focus-trap
|
|
4
|
+
import { createFocusTrap } from '@wavemaker/focus-trap';
|
|
5
|
+
import { assignWith, forEach, get, includes, isArray, isNull, isObject, isString, join, split, union } from "lodash-es";
|
|
5
6
|
const DATASET_WIDGETS = new Set([FormWidgetType.SELECT, FormWidgetType.CHECKBOXSET, FormWidgetType.RADIOSET,
|
|
6
7
|
FormWidgetType.SWITCH, FormWidgetType.AUTOCOMPLETE, FormWidgetType.CHIPS, FormWidgetType.TYPEAHEAD, FormWidgetType.RATING]);
|
|
7
8
|
/**
|
|
@@ -69,7 +70,7 @@ export const getObjValueByKey = (obj, strKey) => {
|
|
|
69
70
|
/* convert indexes to properties, so as to work for even 'key1[0].child1'*/
|
|
70
71
|
strKey.replace(/\[(\w+)\]/g, '.$1').split('.').forEach(key => {
|
|
71
72
|
// If obj is null, then assign val to null.
|
|
72
|
-
val = (val && val[key]) || (
|
|
73
|
+
val = (val && val[key]) || (isNull(obj) ? obj : obj[key]);
|
|
73
74
|
});
|
|
74
75
|
return val;
|
|
75
76
|
}
|
|
@@ -104,7 +105,7 @@ export const getEvaluatedData = (dataObj, options, context) => {
|
|
|
104
105
|
// Handling field name with special charecters
|
|
105
106
|
// Ex: field = "f name"
|
|
106
107
|
if (!bindExpr && !expr) {
|
|
107
|
-
return
|
|
108
|
+
return get(dataObj, field);
|
|
108
109
|
}
|
|
109
110
|
return $parseExpr(expressionValue)(context, Object.assign({}, dataObj, { __1: dataObj }));
|
|
110
111
|
};
|
|
@@ -141,12 +142,12 @@ export const hasLinkToCurrentPage = (nodes, routeUrl) => {
|
|
|
141
142
|
export const getOrderByExpr = pageableObj => {
|
|
142
143
|
pageableObj = pageableObj || [];
|
|
143
144
|
const expressions = [], KEY_VAL_SEPARATOR = ' ', FIELD_SEPARATOR = ',';
|
|
144
|
-
|
|
145
|
+
forEach(pageableObj, obj => {
|
|
145
146
|
if (obj.direction) {
|
|
146
147
|
expressions.push(obj.property + KEY_VAL_SEPARATOR + obj.direction.toLowerCase());
|
|
147
148
|
}
|
|
148
149
|
});
|
|
149
|
-
return
|
|
150
|
+
return join(expressions, FIELD_SEPARATOR);
|
|
150
151
|
};
|
|
151
152
|
export const isDataSetWidget = widget => {
|
|
152
153
|
return DATASET_WIDGETS.has(widget);
|
|
@@ -236,13 +237,13 @@ export const getMatchModeTypesMap = (multiMode) => {
|
|
|
236
237
|
modes.string.push('in', 'notin');
|
|
237
238
|
modes.character.push('in', 'notin');
|
|
238
239
|
}
|
|
239
|
-
|
|
240
|
-
|
|
240
|
+
forEach(typesMap, (types, primType) => {
|
|
241
|
+
forEach(types, type => {
|
|
241
242
|
matchModeTypesMap[type] = modes[primType];
|
|
242
243
|
});
|
|
243
244
|
});
|
|
244
245
|
// this is used in filter criteria when the user types the column name manually and where we dont know the type of the column
|
|
245
|
-
matchModeTypesMap['default'] =
|
|
246
|
+
matchModeTypesMap['default'] = union(modes['number'], modes['string'], modes['character'], modes['date'], modes['date']);
|
|
246
247
|
return matchModeTypesMap;
|
|
247
248
|
};
|
|
248
249
|
export const getMatchModeMsgs = (appLocale) => {
|
|
@@ -274,14 +275,14 @@ export const getMatchModeMsgs = (appLocale) => {
|
|
|
274
275
|
// Returns array of classes that are evaluated true for given object or array
|
|
275
276
|
const getClassesArray = classVal => {
|
|
276
277
|
let classes = [];
|
|
277
|
-
if (
|
|
278
|
+
if (isArray(classVal)) {
|
|
278
279
|
classVal.forEach(v => {
|
|
279
280
|
classes = classes.concat(getClassesArray(v));
|
|
280
281
|
});
|
|
281
282
|
return classes;
|
|
282
283
|
}
|
|
283
|
-
if (
|
|
284
|
-
|
|
284
|
+
if (isObject(classVal)) {
|
|
285
|
+
forEach(classVal, (val, key) => {
|
|
285
286
|
if (val) {
|
|
286
287
|
classes = classes.concat(key.split(' '));
|
|
287
288
|
}
|
|
@@ -295,9 +296,9 @@ export const getConditionalClasses = (nv, ov) => {
|
|
|
295
296
|
// if the conditional class property has already toAdd and toRemove arrays then take that otherwise build those arrays
|
|
296
297
|
const classToAdd = nv.toAdd || nv;
|
|
297
298
|
const classToRemove = nv.toRemove || ov;
|
|
298
|
-
if (
|
|
299
|
-
toAdd =
|
|
300
|
-
toRemove = classToRemove ? (
|
|
299
|
+
if (isObject(nv)) {
|
|
300
|
+
toAdd = isArray(classToAdd) ? classToAdd : getClassesArray(classToAdd || []);
|
|
301
|
+
toRemove = classToRemove ? (isArray(classToRemove) ? classToRemove : getClassesArray(classToRemove)) : [];
|
|
301
302
|
}
|
|
302
303
|
else {
|
|
303
304
|
toAdd = classToAdd ? [classToAdd] : [];
|
|
@@ -312,9 +313,9 @@ const pushFieldDef = (dataObject, columnDefObj, namePrefix, options) => {
|
|
|
312
313
|
if (!options) {
|
|
313
314
|
options = {};
|
|
314
315
|
}
|
|
315
|
-
|
|
316
|
-
if (
|
|
317
|
-
relatedInfo =
|
|
316
|
+
forEach(dataObject, (value, title) => {
|
|
317
|
+
if (includes(title, '.')) {
|
|
318
|
+
relatedInfo = split(title, '.');
|
|
318
319
|
relatedTable = relatedInfo[0];
|
|
319
320
|
relatedField = relatedInfo[1];
|
|
320
321
|
isRelated = true;
|
|
@@ -323,7 +324,7 @@ const pushFieldDef = (dataObject, columnDefObj, namePrefix, options) => {
|
|
|
323
324
|
modifiedTitle = title;
|
|
324
325
|
}
|
|
325
326
|
else {
|
|
326
|
-
if (
|
|
327
|
+
if (isString(title)) {
|
|
327
328
|
modifiedTitle = prettifyLabel(title);
|
|
328
329
|
modifiedTitle = deHyphenate(modifiedTitle);
|
|
329
330
|
modifiedTitle = namePrefix ? initCaps(namePrefix) + ' ' + modifiedTitle : modifiedTitle;
|
|
@@ -335,7 +336,7 @@ const pushFieldDef = (dataObject, columnDefObj, namePrefix, options) => {
|
|
|
335
336
|
title = namePrefix ? namePrefix + '.' + title : title;
|
|
336
337
|
if (isRelated) {
|
|
337
338
|
// For related columns, shorten the title to last two words
|
|
338
|
-
fieldName =
|
|
339
|
+
fieldName = split(modifiedTitle, ' ');
|
|
339
340
|
fieldName = fieldName.length > 1 ? fieldName[fieldName.length - 2] + ' ' + fieldName[fieldName.length - 1] : fieldName[0];
|
|
340
341
|
}
|
|
341
342
|
else {
|
|
@@ -344,7 +345,7 @@ const pushFieldDef = (dataObject, columnDefObj, namePrefix, options) => {
|
|
|
344
345
|
const defObj = options.setBindingField ? { 'displayName': fieldName, 'field': title, 'relatedTable': relatedTable, 'relatedField': relatedField || modifiedTitle }
|
|
345
346
|
: { 'displayName': fieldName, 'relatedTable': relatedTable, 'relatedField': relatedField || modifiedTitle };
|
|
346
347
|
/*if field is a leaf node, push it in the columnDefs*/
|
|
347
|
-
if (!
|
|
348
|
+
if (!isObject(value) || (isArray(value) && !value[0])) {
|
|
348
349
|
/*if the column counter has reached upperBound return*/
|
|
349
350
|
if (options.upperBound && options.columnCount === options.upperBound) {
|
|
350
351
|
return;
|
|
@@ -360,7 +361,7 @@ const pushFieldDef = (dataObject, columnDefObj, namePrefix, options) => {
|
|
|
360
361
|
columnDefObj.objects.push(defObj);
|
|
361
362
|
}
|
|
362
363
|
/* if field is an array node, process its first child */
|
|
363
|
-
if (
|
|
364
|
+
if (isArray(value) && value[0]) {
|
|
364
365
|
pushFieldDef(value[0], columnDefObj, title + '[0]', options);
|
|
365
366
|
}
|
|
366
367
|
else {
|
|
@@ -371,17 +372,17 @@ const pushFieldDef = (dataObject, columnDefObj, namePrefix, options) => {
|
|
|
371
372
|
};
|
|
372
373
|
const getMetaDataFromData = (data) => {
|
|
373
374
|
let dataObject;
|
|
374
|
-
if (
|
|
375
|
-
if (
|
|
375
|
+
if (isArray(data)) {
|
|
376
|
+
if (isObject(data[0])) {
|
|
376
377
|
dataObject = getClonedObject(data[0]);
|
|
377
378
|
/*Loop over the object to find out any null values. If any null values are present in the first row, check and assign the values from other row.
|
|
378
379
|
* As column generation is dependent on data, for related fields if first row value is null, columns are not generated.
|
|
379
380
|
* To prevent this, check the data in other rows and generate the columns. New keys from others rows are also added*/
|
|
380
|
-
|
|
381
|
+
forEach(data, (row, index) => {
|
|
381
382
|
if ((index + 1) >= 10) { // Limit the data search to first 10 records
|
|
382
383
|
return false;
|
|
383
384
|
}
|
|
384
|
-
|
|
385
|
+
assignWith(dataObject, row, (objValue, srcValue) => {
|
|
385
386
|
return (objValue === null || objValue === undefined) ? srcValue : objValue;
|
|
386
387
|
});
|
|
387
388
|
});
|
|
@@ -476,4 +477,4 @@ export const getKeyboardFocusableElements = (element) => {
|
|
|
476
477
|
&& (!el.hasAttribute('tabindex') || (el.hasAttribute('tabindex') && !el.getAttribute("tabindex").startsWith('-'))));
|
|
477
478
|
});
|
|
478
479
|
};
|
|
479
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9iYXNlL3NyYy91dGlscy93aWRnZXQtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0TCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUt4RSxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsUUFBUTtJQUN2RyxjQUFjLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ2hJOzs7O0dBSUc7QUFDSCxNQUFNLGNBQWMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQ3BDLElBQUksT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixDQUFDO0lBRWpHLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRWpELEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM5QixFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2IsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFbkI7Ozs7O1dBS0c7UUFDSCxJQUFJLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxLQUFLLEdBQUcsRUFBRTtZQUM1QixVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ2Ysb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1lBQzdCLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFFcEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFFbEMsT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFbEIsSUFBSSxPQUFPLEtBQUssR0FBRyxFQUFFO29CQUNqQixTQUFTO2lCQUNaO2dCQUVELElBQUksQ0FBQyxvQkFBb0IsRUFBRTtvQkFDdkIsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQztvQkFDbEQsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO2lCQUMvQjtnQkFFRCxJQUFJLE9BQU8sS0FBSyxHQUFHLEVBQUU7b0JBQ2pCLFVBQVUsRUFBRSxDQUFDO2lCQUNoQjtxQkFBTSxJQUFJLE9BQU8sS0FBSyxHQUFHLEVBQUU7b0JBQ3hCLFVBQVUsRUFBRSxDQUFDO2lCQUNoQjtnQkFFRCxJQUFJLENBQUMsVUFBVSxFQUFFO29CQUNiLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ2xDLElBQUksV0FBVyxFQUFFO3dCQUNiLE9BQU8sSUFBSSxNQUFNLEdBQUcsTUFBTSxHQUFHLEdBQUcsQ0FBQztxQkFDcEM7eUJBQU07d0JBQ0gsT0FBTyxJQUFJLE1BQU0sQ0FBQztxQkFDckI7b0JBRUQsTUFBTTtpQkFDVDthQUNKO1lBQ0QsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNUO2FBQU07WUFDSCxPQUFPLElBQUksRUFBRSxDQUFDO1NBQ2pCO0tBQ0o7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBUSxFQUFFLE1BQWMsRUFBRSxFQUFFO0lBQ3pELDhCQUE4QjtJQUM5QixJQUFJLE1BQU0sRUFBRTtRQUNSLElBQUksR0FBRyxDQUFDO1FBQ1IsMkVBQTJFO1FBQzNFLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDekQsMkNBQTJDO1lBQzNDLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEUsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQztLQUNkO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFZLEVBQUUsT0FBWSxFQUFFLE9BQWEsRUFBRSxFQUFFO0lBQzFFLElBQUksZUFBZSxDQUFDO0lBQ3BCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQ3ZCLElBQUksR0FBRyxPQUFPLENBQUMsVUFBVSxFQUN6QixRQUFRLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUV0Qyw2QkFBNkI7SUFDN0IsSUFBSSxRQUFRLEVBQUU7UUFDVixxREFBcUQ7UUFDckQsZUFBZSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWhELGlGQUFpRjtRQUNqRixvSkFBb0o7UUFDcEosSUFBRywyQkFBMkIsQ0FBQyxlQUFlLENBQUMsRUFBQztZQUM1QyxlQUFlLEdBQUcsZUFBZSxHQUFDLE9BQU8sQ0FBQztTQUM3QztRQUNELHdGQUF3RjtRQUN4RixlQUFlLEdBQUcsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQ3JEO1NBQU07UUFDSCxlQUFlLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztLQUN6QztJQUVELDhDQUE4QztJQUM5Qyx1QkFBdUI7SUFDdkIsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRTtRQUNwQixPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ2hDO0lBRUQsT0FBTyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUYsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFO0lBQy9DLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDckIsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFDRCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkcsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlFLE1BQU0sVUFBVSxHQUFHLElBQUksTUFBTSxDQUFDLFVBQVUsR0FBRyxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDNUQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLENBQUMsQ0FBQztBQUVGOzs7O0VBSUU7QUFDRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEtBQXFCLEVBQUUsUUFBUSxFQUFFLEVBQUU7SUFDcEUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3JCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDdEMsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUN4RDtJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFBO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLEVBQUU7SUFDeEMsV0FBVyxHQUFHLFdBQVcsSUFBSSxFQUFFLENBQUM7SUFDaEMsTUFBTSxXQUFXLEdBQVMsRUFBRSxFQUN4QixpQkFBaUIsR0FBRyxHQUFHLEVBQ3ZCLGVBQWUsR0FBSyxHQUFHLENBQUM7SUFDNUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLEVBQUU7UUFDekIsSUFBSSxHQUFHLENBQUMsU0FBUyxFQUFFO1lBQ2YsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztTQUNwRjtJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUNoRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLEVBQUU7SUFDcEMsT0FBTyxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQztBQUVGLGlGQUFpRjtBQUNqRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxTQUFTLEVBQUUsWUFBYSxFQUFFLFVBQVcsRUFBRSxFQUFFO0lBQ2pFOzs7aUhBRzZHO0lBQzdHLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQzFCLE9BQU8sU0FBUyxDQUFDO0tBQ3BCO0lBRUQsdUZBQXVGO0lBQ3ZGLElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDWixTQUFTLEdBQUcsVUFBVSxJQUFJLCtDQUErQyxDQUFDO0tBQzdFO0lBRUQsU0FBUyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFNUQsa0RBQWtEO0lBQ2xELElBQUksZ0JBQWdCLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLEVBQUU7UUFDakQsT0FBTyxTQUFTLENBQUM7S0FDcEI7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDLENBQUM7QUFFRixzREFBc0Q7QUFDdEQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsRUFBRTtJQUMvQyxJQUFJLFNBQVMsS0FBSyxFQUFFLElBQUksU0FBUyxLQUFLLE1BQU0sRUFBRTtRQUMxQyxPQUFPLFNBQVMsQ0FBQztLQUNwQjtJQUNELE9BQU8sTUFBTSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDakQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLFNBQVMsQ0FBQyxTQUFjLEVBQUUsR0FBUSxFQUFFLEtBQWU7SUFDL0QsT0FBTztRQUNILE9BQU8sRUFBRSxHQUFHO1FBQ1osV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDeEMsS0FBSyxFQUFFLEtBQUs7S0FDZixDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxTQUFjO0lBQzdDLE9BQU8sU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFNBQWM7SUFDN0MsT0FBTyxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDM0IsUUFBUSxFQUFFLFVBQVU7SUFDcEIsS0FBSyxFQUFFLE9BQU87SUFDZCxPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsUUFBUTtJQUNoQixJQUFJLEVBQUUsTUFBTTtJQUNaLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLEtBQUssRUFBRSxPQUFPO0lBQ2QsTUFBTSxFQUFFLFFBQVE7Q0FDbkIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUNyQixTQUFTLEVBQUUsV0FBVztJQUN0QixPQUFPLEVBQUUsU0FBUztDQUNyQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzFCLFlBQVksRUFBRSxjQUFjO0lBQzVCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFFBQVEsRUFBRSxVQUFVO0NBQ3ZCLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRTlELE1BQU0sUUFBUSxHQUFHO0lBQ2IsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDdkcsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUMxQixTQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUM7SUFDeEIsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRyxXQUFXLEVBQUUsVUFBVSxDQUFDO0NBQ25ELENBQUM7QUFDRixNQUFNLEtBQUssR0FBRztJQUNWLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQztJQUNuSCxNQUFNLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDO0lBQ3pOLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQztJQUN0SSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7Q0FDcEgsQ0FBQztBQUNGLE1BQU0saUJBQWlCLEdBQUc7SUFDdEIsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUM7SUFDdkMsSUFBSSxFQUFFLEVBQUU7SUFDUixJQUFJLEVBQUUsRUFBRTtDQUNYLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFNBQVUsRUFBRSxFQUFFO0lBQy9DLElBQUksU0FBUyxFQUFFO1FBQ1gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM1QyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQixLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3ZDO0lBRUQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUU7UUFDcEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDcEIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDSCw2SEFBNkg7SUFDN0gsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDM0gsT0FBTyxpQkFBaUIsQ0FBQztBQUM3QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFO0lBQzFDLE9BQU87UUFDSCxLQUFLLEVBQWMsU0FBUyxDQUFDLGlCQUFpQjtRQUM5QyxlQUFlLEVBQUksU0FBUyxDQUFDLDRCQUE0QjtRQUN6RCxHQUFHLEVBQWdCLFNBQVMsQ0FBQyxlQUFlO1FBQzVDLGFBQWEsRUFBTSxTQUFTLENBQUMsMEJBQTBCO1FBQ3ZELFFBQVEsRUFBVyxTQUFTLENBQUMsY0FBYztRQUMzQyxrQkFBa0IsRUFBRSxTQUFTLENBQUMseUJBQXlCO1FBQ3ZELEtBQUssRUFBYyxTQUFTLENBQUMsaUJBQWlCO1FBQzlDLGVBQWUsRUFBSSxTQUFTLENBQUMsNEJBQTRCO1FBQ3pELFNBQVMsRUFBVSxTQUFTLENBQUMscUJBQXFCO1FBQ2xELG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxnQ0FBZ0M7UUFDL0QsUUFBUSxFQUFXLFNBQVMsQ0FBQyxlQUFlO1FBQzVDLGFBQWEsRUFBTSxTQUFTLENBQUMsNEJBQTRCO1FBQ3pELFdBQVcsRUFBUSxTQUFTLENBQUMsa0JBQWtCO1FBQy9DLGdCQUFnQixFQUFHLFNBQVMsQ0FBQywrQkFBK0I7UUFDNUQsSUFBSSxFQUFlLFNBQVMsQ0FBQyxhQUFhO1FBQzFDLFNBQVMsRUFBVSxTQUFTLENBQUMsaUJBQWlCO1FBQzlDLEtBQUssRUFBYyxTQUFTLENBQUMsY0FBYztRQUMzQyxVQUFVLEVBQVMsU0FBUyxDQUFDLGtCQUFrQjtRQUMvQyxXQUFXLEVBQVEsU0FBUyxDQUFDLHNCQUFzQjtRQUNuRCxFQUFFLEVBQWlCLFNBQVMsQ0FBQyxRQUFRO1FBQ3JDLEtBQUssRUFBYyxTQUFTLENBQUMsWUFBWTtRQUN6QyxPQUFPLEVBQVksU0FBUyxDQUFDLGFBQWE7S0FDN0MsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLDZFQUE2RTtBQUM3RSxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsRUFBRTtJQUMvQixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFFakIsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3JCLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDakIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQztLQUNsQjtJQUNELElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUN0QixDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM3QixJQUFJLEdBQUcsRUFBRTtnQkFDTCxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDNUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0tBQ2xCO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRyxFQUFFLEVBQUU7SUFDN0MsSUFBSSxLQUFLLENBQUM7SUFDVixJQUFJLFFBQVEsQ0FBQztJQUNiLHNIQUFzSDtJQUN0SCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUN4QyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDaEIsS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvRSxRQUFRLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUMvRztTQUFNO1FBQ0gsS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLFFBQVEsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUNuRDtJQUNELE9BQU8sRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLENBQUM7QUFDN0IsQ0FBQyxDQUFDO0FBRUYsd0NBQXdDO0FBQ3hDLE1BQU0sWUFBWSxHQUFHLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkUsMERBQTBEO0lBQzFELElBQUksYUFBYSxFQUNiLFlBQVksRUFDWixZQUFZLEVBQ1osV0FBVyxFQUNYLFNBQVMsRUFDVCxTQUFTLENBQUM7SUFDZCxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ1YsT0FBTyxHQUFHLEVBQUUsQ0FBQztLQUNoQjtJQUNELENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ25DLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDeEIsV0FBVyxHQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLFlBQVksR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsWUFBWSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QixTQUFTLEdBQU0sSUFBSSxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQ3ZCLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDekI7YUFBTTtZQUNILElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDbkIsYUFBYSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDM0MsYUFBYSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQzthQUMzRjtpQkFBTTtnQkFDSCxhQUFhLEdBQUcsS0FBSyxDQUFDO2FBQ3pCO1NBQ0o7UUFDRCxLQUFLLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3RELElBQUksU0FBUyxFQUFFO1lBQ1gsMkRBQTJEO1lBQzNELFNBQVMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN4QyxTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzdIO2FBQU07WUFDSCxTQUFTLEdBQUcsYUFBYSxDQUFDO1NBQzdCO1FBQ0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsWUFBWSxJQUFJLGFBQWEsRUFBQztZQUNoSyxDQUFDLENBQUMsRUFBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFlBQVksSUFBSSxhQUFhLEVBQUMsQ0FBQztRQUMxRyxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkQsdURBQXVEO1lBQ3ZELElBQUksT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLE9BQU8sQ0FBQyxVQUFVLEVBQUU7Z0JBQ2xFLE9BQU87YUFDVjtZQUNELFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLGdDQUFnQztZQUNoQyxPQUFPLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQztTQUM1QjthQUFNO1lBQ0gsbURBQW1EO1lBQ25ELCtDQUErQztZQUMvQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssT0FBTyxDQUFDLFVBQVUsRUFBRTtnQkFDNUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDckM7WUFFRCx3REFBd0Q7WUFDeEQsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDOUIsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsS0FBSyxHQUFHLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQzthQUNoRTtpQkFBTTtnQkFDSCxZQUFZLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDckQ7U0FDSjtJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFO0lBQ2pDLElBQUksVUFBVSxDQUFDO0lBQ2YsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2pCLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNyQixVQUFVLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RDOztpSUFFcUg7WUFDckgsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsNENBQTRDO29CQUNqRSxPQUFPLEtBQUssQ0FBQztpQkFDaEI7Z0JBQ0QsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFO29CQUNqRCxPQUFPLENBQUMsUUFBUSxLQUFLLElBQUksSUFBSSxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUMvRSxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNILFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEI7S0FDSjtTQUFNO1FBQ0gsVUFBVSxHQUFHLElBQUksQ0FBQztLQUNyQjtJQUNELE9BQU8sVUFBVSxDQUFDO0FBQ3RCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBSSxFQUFFLE9BQVEsRUFBRSxFQUFFO0lBQy9DLElBQUksVUFBVSxDQUFDO0lBQ2YsTUFBTSxTQUFTLEdBQUc7UUFDVixTQUFTLEVBQUcsRUFBRTtRQUNkLFdBQVcsRUFBRyxFQUFFO0tBQ25CLENBQUM7SUFDTiw4REFBOEQ7SUFDOUQsSUFBSSxDQUFDLElBQUksRUFBRTtRQUNQLElBQUksR0FBRyxFQUFFLENBQUM7S0FDYjtJQUNELElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDVixPQUFPLEdBQUcsRUFBRSxDQUFDO0tBQ2hCO0lBQ0QsT0FBTyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDL0IsT0FBTyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDeEIsVUFBVSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLGlEQUFpRDtJQUNqRCxZQUFZLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMxQyxPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUM7S0FDOUI7SUFDRCxRQUFRLE9BQU8sQ0FBQyxNQUFNLEVBQUU7UUFDcEIsS0FBSyxLQUFLO1lBQ04sT0FBTyxTQUFTLENBQUM7UUFDckIsS0FBSyxTQUFTO1lBQ1YsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDO1FBQzdCLEtBQUssV0FBVztZQUNaLE9BQU8sU0FBUyxDQUFDLFNBQVMsQ0FBQztLQUNsQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQUdGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRTtJQUMvQyxPQUFPLFNBQVMsQ0FBQztJQUVqQix5REFBeUQ7SUFDekQseUlBQXlJO0lBQ3pJLDRDQUE0QztJQUM1QyxxQ0FBcUM7SUFFckMsMENBQTBDO0lBQzFDLCtCQUErQjtJQUMvQixXQUFXO0lBQ1gscUJBQXFCO0lBQ3JCLElBQUk7QUFFUixDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsY0FBYyxFQUFFLEVBQUU7SUFDcEQsSUFBSSxDQUFDLGNBQWMsRUFBRTtRQUNqQixPQUFPO0tBQ1Y7SUFDRCxJQUFJLGNBQWMsQ0FBQztJQUNuQixNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLFdBQVcsRUFBRTtRQUM5QyxjQUFjLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzdCO0lBQ0QsT0FBTyxjQUFjLENBQUM7QUFDMUIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLHFCQUFzQixFQUFFLEVBQUU7SUFDakYsT0FBTyxlQUFlLENBQUMsU0FBUyxFQUFFO1FBQzlCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7UUFDdEQsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUMzRCxpQkFBaUIsRUFBRSxpQkFBaUI7UUFDcEMsY0FBYyxFQUFFLHFCQUFxQjtLQUN4QyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUE7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUU7SUFDakUsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLHlJQUF5SSxDQUFDLENBQUM7SUFDNUwsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM3QyxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDeEIsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO2VBQzNELENBQUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBlbmNvZGVVcmwsIGlzVmFsaWRXZWJVUkwsIHN0cmluZ1N0YXJ0c1dpdGgsIEZvcm1XaWRnZXRUeXBlLCAkcGFyc2VFeHByLCBnZXRDbG9uZWRPYmplY3QsIHByZXR0aWZ5TGFiZWwsIGluaXRDYXBzLCBkZUh5cGhlbmF0ZSwgY2hlY2tJc0N1c3RvbVBpcGVFeHByZXNzaW9uIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgRGlhbG9nUmVmLCBXaWRnZXRSZWYgfSBmcm9tICcuLi93aWRnZXRzL2ZyYW1ld29yay90eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVGb2N1c1RyYXAgfSBmcm9tICdAd2F2ZW1ha2VyL2ZvY3VzLXRyYXAvZGlzdC9mb2N1cy10cmFwJztcbmltcG9ydCB7IE5hdk5vZGUgfSBmcm9tIFwiLi4vd2lkZ2V0cy9jb21tb24vYmFzZS9kYXRhc2V0LWF3YXJlLW5hdi5jb21wb25lbnRcIjtcblxuZGVjbGFyZSBjb25zdCBfO1xuXG5jb25zdCBEQVRBU0VUX1dJREdFVFMgPSBuZXcgU2V0KFtGb3JtV2lkZ2V0VHlwZS5TRUxFQ1QsIEZvcm1XaWRnZXRUeXBlLkNIRUNLQk9YU0VULCBGb3JtV2lkZ2V0VHlwZS5SQURJT1NFVCxcbiAgICBGb3JtV2lkZ2V0VHlwZS5TV0lUQ0gsIEZvcm1XaWRnZXRUeXBlLkFVVE9DT01QTEVURSwgRm9ybVdpZGdldFR5cGUuQ0hJUFMsIEZvcm1XaWRnZXRUeXBlLlRZUEVBSEVBRCwgRm9ybVdpZGdldFR5cGUuUkFUSU5HXSk7XG4vKipcbiAqIFJldHVybnMgdGhlIHBhcnNlZCwgdXBkYXRlZCBib3VuZCBleHByZXNzaW9uXG4gKiBpZiB0aGUgZXhwcmVzc2lvbiBpcyAkW2RhdGFbJGldW2ZpcnN0TmFtZV1dICsgJy0tJyArICRbbGFzdE5hbWVdICsgJy0tJyArICRbJ0BJREAnXVxuICogcmV0dXJucyBfXzEuZmlyc3ROYW1lICsgJy0tJyArIGxhc3ROYW1lICsgJy0tJyArIF9fMVsnQElEQCddXG4gKi9cbmNvbnN0IGdldFVwZGF0ZWRFeHByID0gKGV4cHI6IHN0cmluZykgPT4ge1xuICAgIGxldCB1cGRhdGVkID0gJycsIGNoLCBuZXh0LCBpLCBqLCBtYXRjaENoLCBtYXRjaENvdW50LCBpc1F1b3RlZFN0ciwgc3ViU3RyLCBpc1F1b3RlZFN0ckV2YWx1YXRlZDtcblxuICAgIGV4cHIgPSBleHByLnJlcGxhY2UoL1xcJFxcW2RhdGFcXFtcXCRpXFxdL2csICckW19fMScpO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IGV4cHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY2ggPSBleHByW2ldO1xuICAgICAgICBuZXh0ID0gZXhwcltpICsgMV07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGlmIHRoZSBleHByZXNzaW9uIHN0YXJ0cyB3aXRoICRbLCBjaGVjayB0aGUgbmV4dChjaCkgY2hhcmFjdGVyLFxuICAgICAgICAgKiAgICBpZiBjaCBpcyBhIHF1b3RlKCcsIFwiKSBjaGFuZ2UgdGhlIGV4cHIgdG8gX19bXG4gICAgICAgICAqICAgIGlmIGNoIGlzIGEgd2hpdGVTcGFjZSwgcmVtb3ZlIGl0XG4gICAgICAgICAqICAgIGVsc2UgcmVtb3ZlICRbXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoY2ggPT09ICckJyAmJiBuZXh0ID09PSAnWycpIHtcbiAgICAgICAgICAgIG1hdGNoQ291bnQgPSAxO1xuICAgICAgICAgICAgaXNRdW90ZWRTdHJFdmFsdWF0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGlzUXVvdGVkU3RyID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGZvciAoaiA9IGkgKyAyOyBqIDwgZXhwci5sZW5ndGg7IGorKykge1xuXG4gICAgICAgICAgICAgICAgbWF0Y2hDaCA9IGV4cHJbal07XG5cbiAgICAgICAgICAgICAgICBpZiAobWF0Y2hDaCA9PT0gJyAnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghaXNRdW90ZWRTdHJFdmFsdWF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNRdW90ZWRTdHIgPSBleHByW2pdID09PSAnXCInIHx8IGV4cHJbal0gPT09ICdcXCcnO1xuICAgICAgICAgICAgICAgICAgICBpc1F1b3RlZFN0ckV2YWx1YXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoQ2ggPT09ICdbJykge1xuICAgICAgICAgICAgICAgICAgICBtYXRjaENvdW50Kys7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtYXRjaENoID09PSAnXScpIHtcbiAgICAgICAgICAgICAgICAgICAgbWF0Y2hDb3VudC0tO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghbWF0Y2hDb3VudCkge1xuICAgICAgICAgICAgICAgICAgICBzdWJTdHIgPSBleHByLnN1YnN0cmluZyhpICsgMiwgaik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1F1b3RlZFN0cikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZCArPSAnX18xWycgKyBzdWJTdHIgKyAnXSc7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkICs9IHN1YlN0cjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkgPSBqO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdXBkYXRlZCArPSBjaDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1cGRhdGVkO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSB2YWx1ZSBmb3IgdGhlIHByb3ZpZGVkIGtleSBpbiB0aGUgb2JqZWN0XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRPYmpWYWx1ZUJ5S2V5ID0gKG9iajogYW55LCBzdHJLZXk6IHN0cmluZykgPT4ge1xuICAgIC8qIGNoZWNrIGZvciB0aGUga2V5LXN0cmluZyAqL1xuICAgIGlmIChzdHJLZXkpIHtcbiAgICAgICAgbGV0IHZhbDtcbiAgICAgICAgLyogY29udmVydCBpbmRleGVzIHRvIHByb3BlcnRpZXMsIHNvIGFzIHRvIHdvcmsgZm9yIGV2ZW4gJ2tleTFbMF0uY2hpbGQxJyovXG4gICAgICAgIHN0cktleS5yZXBsYWNlKC9cXFsoXFx3KylcXF0vZywgJy4kMScpLnNwbGl0KCcuJykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgLy8gSWYgb2JqIGlzIG51bGwsIHRoZW4gYXNzaWduIHZhbCB0byBudWxsLlxuICAgICAgICAgICAgdmFsID0gKHZhbCAmJiB2YWxba2V5XSkgfHwgKF8uaXNOdWxsKG9iaikgPyBvYmogOiBvYmpba2V5XSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xufTtcblxuLyoqXG4gKiByZXR1cm5zIHRoZSBkaXNwbGF5IGZpZWxkIGRhdGEgZm9yIGFueSBkYXRhc2V0IHdpZGdldHNcbiAqIEJhc2VkIG9uIHRoZSBiaW5kIGRpc3BsYXkgZXhwcmVzc2lvbiBvciBkaXNwbGF5IGV4cHJlc3Npb24gb3IgZGlzcGxheSBuYW1lLFxuICogZGF0YSBpcyBleHRyYWN0ZWQgYW5kIGZvcm1hdHRlZCBmcm9tIHRoZSBwYXNzZWQgb3B0aW9uIG9iamVjdFxuICogSWYgdGhlcmUgaXMgZmllbGQgaXMgc3BlY2lmaWVkLCBmaWVsZCB2YWx1ZSBpcyBvYnRhaW5lZCBmcm9tIHRoZSBkYXRhT2JqLlxuICogSWYgZXhwcmVzc2lvbiBpcyBnaXZlbiwgZXZhbHVhdGVzIHRoZSBleHByZXNzaW9uIHZhbHVlLlxuICogZWxzZSBjaGVjayBmb3IgYmluZEV4cHJlc3Npb24sIGV4dHJhY3QgdGhlIHZhbHVlIGZyb20gdGhlIGRhdGFPYmpcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEV2YWx1YXRlZERhdGEgPSAoZGF0YU9iajogYW55LCBvcHRpb25zOiBhbnksIGNvbnRleHQ/OiBhbnkpID0+IHtcbiAgICBsZXQgZXhwcmVzc2lvblZhbHVlO1xuICAgIGNvbnN0IGZpZWxkID0gb3B0aW9ucy5maWVsZCxcbiAgICAgICAgZXhwciA9IG9wdGlvbnMuZXhwcmVzc2lvbixcbiAgICAgICAgYmluZEV4cHIgPSBvcHRpb25zLmJpbmRFeHByZXNzaW9uO1xuXG4gICAgLy8gaWYga2V5IGlzIGJvdW5kIGV4cHJlc3Npb25cbiAgICBpZiAoYmluZEV4cHIpIHtcbiAgICAgICAgLy8gcmVtb3ZlICdiaW5kOicgcHJlZml4IGZyb20gdGhlIGJvdW5kRXhwcmVzc2lvbk5hbWVcbiAgICAgICAgZXhwcmVzc2lvblZhbHVlID0gYmluZEV4cHIucmVwbGFjZSgnYmluZDonLCAnJyk7XG5cbiAgICAgICAgLy8gRm9yIGJpbmQgZXhwcmVzc2lvbiBwYXNzaW5nIHRoZSBsYXN0IGFyZ3VtZW50IHRoYXQgdGhlIG9iamVjdCBvZiBkYXRhc2V0IGl0ZW0uXG4gICAgICAgIC8vIE5vdGU6IEZvciBwYXJzZSBleHByZXNzaW9uIHdlIGFyZSBzZW5kaW5nIGRhdGFPYmogd2l0aCB0aGUgcHJvcGVyeSBuYW1lIFwiX18xXCIsIHdlIHVzZWQgdGhlIHNhbWUgcHJvcGVyeSB0byBzZW5kIHRoZSBsYXN0IGFyZ3VtZW50IGFzIGRhdGFzZXQgaXRlbVxuICAgICAgICBpZihjaGVja0lzQ3VzdG9tUGlwZUV4cHJlc3Npb24oZXhwcmVzc2lvblZhbHVlKSl7XG4gICAgICAgICAgICBleHByZXNzaW9uVmFsdWUgPSBleHByZXNzaW9uVmFsdWUrJzogX18xJztcbiAgICAgICAgfVxuICAgICAgICAvLyBwYXJzZSB0aGUgZXhwcmVzc2lvblZhbHVlIGZvciByZXBsYWNpbmcgYWxsIHRoZSBleHByZXNzaW9ucyB3aXRoIHZhbHVlcyBpbiB0aGUgb2JqZWN0XG4gICAgICAgIGV4cHJlc3Npb25WYWx1ZSA9IGdldFVwZGF0ZWRFeHByKGV4cHJlc3Npb25WYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZXhwcmVzc2lvblZhbHVlID0gZXhwciA/IGV4cHIgOiBmaWVsZDtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGluZyBmaWVsZCBuYW1lIHdpdGggc3BlY2lhbCBjaGFyZWN0ZXJzXG4gICAgLy8gRXg6IGZpZWxkID0gXCJmIG5hbWVcIlxuICAgIGlmICghYmluZEV4cHIgJiYgIWV4cHIpIHtcbiAgICAgICAgcmV0dXJuIF8uZ2V0KGRhdGFPYmosIGZpZWxkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gJHBhcnNlRXhwcihleHByZXNzaW9uVmFsdWUpKGNvbnRleHQsIE9iamVjdC5hc3NpZ24oe30sIGRhdGFPYmosIHtfXzE6IGRhdGFPYmp9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNBY3RpdmVOYXZJdGVtID0gKGxpbmssIHJvdXRlTmFtZSkgPT4ge1xuICAgIGlmICghbGluayB8fCAhcm91dGVOYW1lKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcm91dGVOYW1lID0gcm91dGVOYW1lLmluZGV4T2YoJz8nKSA9PT0gLTEgPyByb3V0ZU5hbWUgOiByb3V0ZU5hbWUuc3Vic3RyaW5nKDAsIHJvdXRlTmFtZS5pbmRleE9mKCc/JykpO1xuICAgIGxpbmsgPSBsaW5rLmluZGV4T2YoJz8nKSA9PT0gLTEgPyBsaW5rIDogbGluay5zdWJzdHJpbmcoMCwgbGluay5pbmRleE9mKCc/JykpO1xuICAgIGNvbnN0IHJvdXRlUmVnZXggPSBuZXcgUmVnRXhwKCdeKCNcXC98IyknICsgcm91dGVOYW1lICsgJyQnKTtcbiAgICByZXR1cm4gcm91dGVSZWdleC50ZXN0KGxpbmspO1xufTtcblxuLyoqXG4qIHJldHVybnMgdHJ1ZSBpZiB0aGUgbWVudSBoYXMgbGluayB0byB0aGUgY3VycmVudCBwYWdlLlxuKiBAcGFyYW0gbm9kZXNcbiogQHBhcmFtIHJvdXRlVXJsXG4qL1xuZXhwb3J0IGNvbnN0IGhhc0xpbmtUb0N1cnJlbnRQYWdlID0gKG5vZGVzOiBBcnJheTxOYXZOb2RlPiwgcm91dGVVcmwpID0+IHtcbiAgICByZXR1cm4gbm9kZXMuc29tZShub2RlID0+IHtcbiAgICAgICAgaWYgKGlzQWN0aXZlTmF2SXRlbShub2RlLmxpbmssIHJvdXRlVXJsKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHJldHVybiBoYXNMaW5rVG9DdXJyZW50UGFnZShub2RlLmNoaWxkcmVuLCByb3V0ZVVybCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvcmRlckJ5IEV4cHJlc3Npb24gYmFzZWQgb24gdGhlICdzb3J0ICdvcHRpb24gaW4gcGFnZWFibGUgb2JqZWN0XG4gKiByZXR1cm5lZCBieSBiYWNrZW5kXG4gKiBAcGFyYW0gcGFnZWFibGVPYmpcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRPcmRlckJ5RXhwciA9IHBhZ2VhYmxlT2JqID0+IHtcbiAgICBwYWdlYWJsZU9iaiA9IHBhZ2VhYmxlT2JqIHx8IFtdO1xuICAgIGNvbnN0IGV4cHJlc3Npb25zICAgICAgID0gW10sXG4gICAgICAgIEtFWV9WQUxfU0VQQVJBVE9SID0gJyAnLFxuICAgICAgICBGSUVMRF9TRVBBUkFUT1IgICA9ICcsJztcbiAgICBfLmZvckVhY2gocGFnZWFibGVPYmosIG9iaiA9PiB7XG4gICAgICAgIGlmIChvYmouZGlyZWN0aW9uKSB7XG4gICAgICAgICAgICBleHByZXNzaW9ucy5wdXNoKG9iai5wcm9wZXJ0eSArIEtFWV9WQUxfU0VQQVJBVE9SICsgb2JqLmRpcmVjdGlvbi50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIF8uam9pbihleHByZXNzaW9ucywgRklFTERfU0VQQVJBVE9SKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0RhdGFTZXRXaWRnZXQgPSB3aWRnZXQgPT4ge1xuICAgIHJldHVybiBEQVRBU0VUX1dJREdFVFMuaGFzKHdpZGdldCk7XG59O1xuXG4vKlRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgdXJsIHRvIHRoZSBpbWFnZSBhZnRlciBjaGVja2luZyB0aGUgdmFsaWRpdHkgb2YgdXJsKi9cbmV4cG9ydCBjb25zdCBnZXRJbWFnZVVybCA9ICh1cmxTdHJpbmcsIHNob3VsZEVuY29kZT8sIGRlZmF1bHRVcmw/KSA9PiB7XG4gICAgLypJbiBzdHVkaW8gbW9kZSBiZWZvcmUgc2V0dGluZyBwaWN0dXJlc291cmNlLCBjaGVjayBpZiB0aGUgc3R1ZGlvQ29udHJvbGxlciBpcyBsb2FkZWQgYW5kIG5ldyBwaWN0dXJlc291cmNlIGlzIGluICdzdHlsZXMvaW1hZ2VzLycgcGF0aCBvciBub3QuXG4gICAgICogV2hlbiBwYWdlIGlzIHJlZnJlc2hlZCwgbG9hZGVyLmdpZiB3aWxsIGJlIGxvYWRlZCBmaXJzdCBhbmQgaXQgd2lsbCBiZSBpbiAnc3R5bGUvaW1hZ2VzLycuXG4gICAgICogUHJlcGVuZCAnc2VydmljZXMvcHJvamVjdHMvJyArICRyb290U2NvcGUucHJvamVjdC5pZCArICcvd2ViL3Jlc291cmNlcy9pbWFnZXMvaW1hZ2VsaXN0cy8nICBpZiB0aGUgaW1hZ2UgdXJsIGlzIGp1c3QgaW1hZ2UgbmFtZSBpbiB0aGUgcHJvamVjdCByb290LFxuICAgICAqIGFuZCBpZiB0aGUgdXJsIHBvaW50aW5nIHRvIHJlc291cmNlcy9pbWFnZXMvIHRoZW4gJ3NlcnZpY2VzL3Byb2plY3RzLycgKyAkcm9vdFNjb3BlLnByb2plY3QuaWQgKyAnL3dlYi8nKi9cbiAgICBpZiAoaXNWYWxpZFdlYlVSTCh1cmxTdHJpbmcpKSB7XG4gICAgICAgIHJldHVybiB1cmxTdHJpbmc7XG4gICAgfVxuXG4gICAgLy8gSWYgbm8gdmFsdWUgaXMgcHJvdmlkZWQgZm9yIHBpY3R1cmVzb3VyY2UgYXNzaWduIHBpY3R1cmVwbGFjZWhvbGRlciBvciBkZWZhdWx0LWltYWdlXG4gICAgaWYgKCF1cmxTdHJpbmcpIHtcbiAgICAgICAgdXJsU3RyaW5nID0gZGVmYXVsdFVybCB8fCAncmVzb3VyY2VzL2ltYWdlcy9pbWFnZWxpc3RzL2RlZmF1bHQtaW1hZ2UucG5nJztcbiAgICB9XG5cbiAgICB1cmxTdHJpbmcgPSBzaG91bGRFbmNvZGUgPyBlbmNvZGVVcmwodXJsU3RyaW5nKSA6IHVybFN0cmluZztcblxuICAgIC8vIGlmIHRoZSByZXNvdXJjZSB0byBiZSBsb2FkZWQgaXMgaW5zaWRlIGEgcHJlZmFiXG4gICAgaWYgKHN0cmluZ1N0YXJ0c1dpdGgodXJsU3RyaW5nLCAnc2VydmljZXMvcHJlZmFicycpKSB7XG4gICAgICAgIHJldHVybiB1cmxTdHJpbmc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVybFN0cmluZztcbn07XG5cbi8qVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgdXJsIHRvIHRoZSBiYWNrZ3JvdW5kSW1hZ2UqL1xuZXhwb3J0IGNvbnN0IGdldEJhY2tHcm91bmRJbWFnZVVybCA9ICh1cmxTdHJpbmcpID0+IHtcbiAgICBpZiAodXJsU3RyaW5nID09PSAnJyB8fCB1cmxTdHJpbmcgPT09ICdub25lJykge1xuICAgICAgICByZXR1cm4gdXJsU3RyaW5nO1xuICAgIH1cbiAgICByZXR1cm4gJ3VybCgnICsgZ2V0SW1hZ2VVcmwodXJsU3RyaW5nKSArICcpJztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQXMocmVmZXJlbmNlOiBhbnksIGtleTogYW55LCBtdWx0aT86IGJvb2xlYW4pIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwcm92aWRlOiBrZXksXG4gICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IHJlZmVyZW5jZSksXG4gICAgICAgIG11bHRpOiBtdWx0aVxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQXNXaWRnZXRSZWYocmVmZXJlbmNlOiBhbnkpIHtcbiAgICByZXR1cm4gcHJvdmlkZUFzKHJlZmVyZW5jZSwgV2lkZ2V0UmVmKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBc0RpYWxvZ1JlZihyZWZlcmVuY2U6IGFueSkge1xuICAgIHJldHVybiBwcm92aWRlQXMocmVmZXJlbmNlLCBEaWFsb2dSZWYpO1xufVxuXG5leHBvcnQgY29uc3QgTkFWSUdBVElPTl9UWVBFID0ge1xuICAgIEFEVkFOQ0VEOiAnQWR2YW5jZWQnLFxuICAgIEJBU0lDOiAnQmFzaWMnLFxuICAgIENMQVNTSUM6ICdDbGFzc2ljJyxcbiAgICBJTkxJTkU6ICdJbmxpbmUnLFxuICAgIE5PTkU6ICdOb25lJyxcbiAgICBPTkRFTUFORDogJ09uLURlbWFuZCcsXG4gICAgUEFHRVI6ICdQYWdlcicsXG4gICAgU0NST0xMOiAnU2Nyb2xsJ1xufTtcblxuZXhwb3J0IGNvbnN0IElOUFVUTU9ERSA9IHtcbiAgICBGSU5BTkNJQUw6ICdmaW5hbmNpYWwnLFxuICAgIE5BVFVSQUw6ICduYXR1cmFsJ1xufTtcblxuZXhwb3J0IGNvbnN0IEFVVE9DTE9TRV9UWVBFID0ge1xuICAgIE9VVFNJREVDTElDSzogJ291dHNpZGVDbGljaycsXG4gICAgQUxXQVlTOiAnYWx3YXlzJyxcbiAgICBESVNBQkxFRDogJ2Rpc2FibGVkJ1xufVxuXG5leHBvcnQgY29uc3QgdW5zdXBwb3J0ZWRTdGF0ZVBlcnNpc3RlbmNlVHlwZXMgPSBbJ09uLURlbWFuZCcsICdTY3JvbGwnXTtcblxuZXhwb3J0IGNvbnN0IGdldFdhdGNoSWRlbnRpZmllciA9ICguLi5hcmdzKSA9PiBhcmdzLmpvaW4oJ18nKTtcblxuY29uc3QgdHlwZXNNYXAgPSB7XG4gICAgbnVtYmVyOiBbJ251bWJlcicsICdpbnRlZ2VyJywgJ2JpZ19pbnRlZ2VyJywgJ3Nob3J0JywgJ2Zsb2F0JywgJ2JpZ19kZWNpbWFsJywgJ2RvdWJsZScsICdsb25nJywgJ2J5dGUnXSxcbiAgICBzdHJpbmc6IFsnc3RyaW5nJywgJ3RleHQnXSxcbiAgICBjaGFyYWN0ZXI6IFsnY2hhcmFjdGVyJ10sXG4gICAgZGF0ZTogWydkYXRlJywgJ3RpbWUnLCAgJ3RpbWVzdGFtcCcsICdkYXRldGltZSddXG59O1xuY29uc3QgbW9kZXMgPSB7XG4gICAgbnVtYmVyOiBbJ2V4YWN0JywgJ25vdGVxdWFscycsICdsZXNzdGhhbicsICdsZXNzdGhhbmVxdWFsJywgJ2dyZWF0ZXJ0aGFuJywgJ2dyZWF0ZXJ0aGFuZXF1YWwnLCAnbnVsbCcsICdpc25vdG51bGwnXSxcbiAgICBzdHJpbmc6IFsnYW55d2hlcmVpZ25vcmVjYXNlJywgJ2FueXdoZXJlJywgJ3N0YXJ0aWdub3JlY2FzZScsICdzdGFydCcsICdlbmRpZ25vcmVjYXNlJywgJ2VuZCcsICdleGFjdGlnbm9yZWNhc2UnLCAnZXhhY3QnLCAnbm90ZXF1YWxzaWdub3JlY2FzZScsICdub3RlcXVhbHMnLCAnbnVsbCcsICdpc25vdG51bGwnLCAnZW1wdHknLCAnaXNub3RlbXB0eScsICdudWxsb3JlbXB0eSddLFxuICAgIGNoYXJhY3RlcjogWydleGFjdGlnbm9yZWNhc2UnLCAnZXhhY3QnLCAnbm90ZXF1YWxzaWdub3JlY2FzZScsICdub3RlcXVhbHMnLCAnbnVsbCcsICdpc25vdG51bGwnLCAnZW1wdHknLCAnaXNub3RlbXB0eScsICdudWxsb3JlbXB0eSddLFxuICAgIGRhdGU6IFsnZXhhY3QnLCAnbGVzc3RoYW4nLCAnbGVzc3RoYW5lcXVhbCcsICdncmVhdGVydGhhbicsICdncmVhdGVydGhhbmVxdWFsJywgJ251bGwnLCAnbm90ZXF1YWxzJywgJ2lzbm90bnVsbCddXG59O1xuY29uc3QgbWF0Y2hNb2RlVHlwZXNNYXAgPSB7XG4gICAgYm9vbGVhbjogWydleGFjdCcsICdudWxsJywgJ2lzbm90bnVsbCddLFxuICAgIGNsb2I6IFtdLFxuICAgIGJsb2I6IFtdXG59O1xuZXhwb3J0IGNvbnN0IGdldE1hdGNoTW9kZVR5cGVzTWFwID0gKG11bHRpTW9kZT8pID0+IHtcbiAgICBpZiAobXVsdGlNb2RlKSB7XG4gICAgICAgIG1vZGVzLm51bWJlci5wdXNoKCdpbicsICdub3RpbicsICdiZXR3ZWVuJyk7XG4gICAgICAgIG1vZGVzLmRhdGUucHVzaCgnYmV0d2VlbicpO1xuICAgICAgICBtb2Rlcy5zdHJpbmcucHVzaCgnaW4nLCAnbm90aW4nKTtcbiAgICAgICAgbW9kZXMuY2hhcmFjdGVyLnB1c2goJ2luJywgJ25vdGluJyk7XG4gICAgfVxuXG4gICAgXy5mb3JFYWNoKHR5cGVzTWFwLCAodHlwZXMsIHByaW1UeXBlKSA9PiB7XG4gICAgICAgIF8uZm9yRWFjaCh0eXBlcywgdHlwZSA9PiB7XG4gICAgICAgICAgICBtYXRjaE1vZGVUeXBlc01hcFt0eXBlXSA9IG1vZGVzW3ByaW1UeXBlXTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgLy8gdGhpcyBpcyB1c2VkIGluIGZpbHRlciBjcml0ZXJpYSB3aGVuIHRoZSB1c2VyIHR5cGVzIHRoZSBjb2x1bW4gbmFtZSBtYW51YWxseSBhbmQgd2hlcmUgd2UgZG9udCBrbm93IHRoZSB0eXBlIG9mIHRoZSBjb2x1bW5cbiAgICBtYXRjaE1vZGVUeXBlc01hcFsnZGVmYXVsdCddID0gXy51bmlvbihtb2Rlc1snbnVtYmVyJ10sIG1vZGVzWydzdHJpbmcnXSwgbW9kZXNbJ2NoYXJhY3RlciddLCBtb2Rlc1snZGF0ZSddLCBtb2Rlc1snZGF0ZSddKTtcbiAgICByZXR1cm4gbWF0Y2hNb2RlVHlwZXNNYXA7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWF0Y2hNb2RlTXNncyA9IChhcHBMb2NhbGUpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzdGFydCAgICAgICAgICAgIDogYXBwTG9jYWxlLkxBQkVMX1NUQVJUU19XSVRILFxuICAgICAgICBzdGFydGlnbm9yZWNhc2UgIDogYXBwTG9jYWxlLkxBQkVMX1NUQVJUU19XSVRIX0lHTk9SRUNBU0UsXG4gICAgICAgIGVuZCAgICAgICAgICAgICAgOiBhcHBMb2NhbGUuTEFCRUxfRU5EU19XSVRILFxuICAgICAgICBlbmRpZ25vcmVjYXNlICAgIDogYXBwTG9jYWxlLkxBQkVMX0VORFNfV0lUSF9JR05PUkVDQVNFLFxuICAgICAgICBhbnl3aGVyZSAgICAgICAgIDogYXBwTG9jYWxlLkxBQkVMX0NPTlRBSU5TLFxuICAgICAgICBhbnl3aGVyZWlnbm9yZWNhc2U6IGFwcExvY2FsZS5MQUJFTF9DT05UQUlOU19JR05PUkVDQVNFLFxuICAgICAgICBleGFjdCAgICAgICAgICAgIDogYXBwTG9jYWxlLkxBQkVMX0lTX0VRVUFMX1RPLFxuICAgICAgICBleGFjdGlnbm9yZWNhc2UgIDogYXBwTG9jYWxlLkxBQkVMX0lTX0VRVUFMX1RPX0lHTk9SRUNBU0UsXG4gICAgICAgIG5vdGVxdWFscyAgICAgICAgOiBhcHBMb2NhbGUuTEFCRUxfSVNfTk9UX0VRVUFMX1RPLFxuICAgICAgICBub3RlcXVhbHNpZ25vcmVjYXNlOiBhcHBMb2NhbGUuTEFCRUxfSVNfTk9UX0VRVUFMX1RPX0lHTk9SRUNBU0UsXG4gICAgICAgIGxlc3N0aGFuICAgICAgICAgOiBhcHBMb2NhbGUuTEFCRUxfTEVTU19USEFOLFxuICAgICAgICBsZXNzdGhhbmVxdWFsICAgIDogYXBwTG9jYWxlLkxBQkVMX0xFU1NfVEhBTl9PUl9FUVVBTFNfVE8sXG4gICAgICAgIGdyZWF0ZXJ0aGFuICAgICAgOiBhcHBMb2NhbGUuTEFCRUxfR1JFQVRFUl9USEFOLFxuICAgICAgICBncmVhdGVydGhhbmVxdWFsIDogYXBwTG9jYWxlLkxBQkVMX0dSRUFURVJfVEhBTl9PUl9FUVVBTFNfVE8sXG4gICAgICAgIG51bGwgICAgICAgICAgICAgOiBhcHBMb2NhbGUuTEFCRUxfSVNfTlVMTCxcbiAgICAgICAgaXNub3RudWxsICAgICAgICA6IGFwcExvY2FsZS5MQUJFTF9JU19OT1RfTlVMTCxcbiAgICAgICAgZW1wdHkgICAgICAgICAgICA6IGFwcExvY2FsZS5MQUJFTF9JU19FTVBUWSxcbiAgICAgICAgaXNub3RlbXB0eSAgICAgICA6IGFwcExvY2FsZS5MQUJFTF9JU19OT1RfRU1QVFksXG4gICAgICAgIG51bGxvcmVtcHR5ICAgICAgOiBhcHBMb2NhbGUuTEFCRUxfSVNfTlVMTF9PUl9FTVBUWSxcbiAgICAgICAgaW4gICAgICAgICAgICAgICA6IGFwcExvY2FsZS5MQUJFTF9JTixcbiAgICAgICAgbm90aW4gICAgICAgICAgICA6IGFwcExvY2FsZS5MQUJFTF9OT1RfSU4sXG4gICAgICAgIGJldHdlZW4gICAgICAgICAgOiBhcHBMb2NhbGUuTEFCRUxfQkVUV0VFTlxuICAgIH07XG59O1xuXG4vLyBSZXR1cm5zIGFycmF5IG9mIGNsYXNzZXMgdGhhdCBhcmUgZXZhbHVhdGVkIHRydWUgZm9yIGdpdmVuIG9iamVjdCBvciBhcnJheVxuY29uc3QgZ2V0Q2xhc3Nlc0FycmF5ID0gY2xhc3NWYWwgPT4ge1xuICAgIGxldCBjbGFzc2VzID0gW107XG5cbiAgICBpZiAoXy5pc0FycmF5KGNsYXNzVmFsKSkge1xuICAgICAgICBjbGFzc1ZhbC5mb3JFYWNoKHYgPT4ge1xuICAgICAgICAgICAgY2xhc3NlcyA9IGNsYXNzZXMuY29uY2F0KGdldENsYXNzZXNBcnJheSh2KSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gY2xhc3NlcztcbiAgICB9XG4gICAgaWYgKF8uaXNPYmplY3QoY2xhc3NWYWwpKSB7XG4gICAgICAgIF8uZm9yRWFjaChjbGFzc1ZhbCwgKHZhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgICAgICAgY2xhc3NlcyA9IGNsYXNzZXMuY29uY2F0KGtleS5zcGxpdCgnICcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjbGFzc2VzO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDb25kaXRpb25hbENsYXNzZXMgPSAobnYsIG92PykgPT4ge1xuICAgIGxldCB0b0FkZDtcbiAgICBsZXQgdG9SZW1vdmU7XG4gICAgLy8gaWYgdGhlIGNvbmRpdGlvbmFsIGNsYXNzIHByb3BlcnR5IGhhcyBhbHJlYWR5IHRvQWRkIGFuZCB0b1JlbW92ZSBhcnJheXMgdGhlbiB0YWtlIHRoYXQgb3RoZXJ3aXNlIGJ1aWxkIHRob3NlIGFycmF5c1xuICAgIGNvbnN0IGNsYXNzVG9BZGQgPSBudi50b0FkZCB8fCBudjtcbiAgICBjb25zdCBjbGFzc1RvUmVtb3ZlID0gbnYudG9SZW1vdmUgfHwgb3Y7XG4gICAgaWYgKF8uaXNPYmplY3QobnYpKSB7XG4gICAgICAgIHRvQWRkID0gXy5pc0FycmF5KGNsYXNzVG9BZGQpID8gY2xhc3NUb0FkZCA6IGdldENsYXNzZXNBcnJheShjbGFzc1RvQWRkIHx8IFtdKTtcbiAgICAgICAgdG9SZW1vdmUgPSBjbGFzc1RvUmVtb3ZlID8gKF8uaXNBcnJheShjbGFzc1RvUmVtb3ZlKSA/IGNsYXNzVG9SZW1vdmUgOiBnZXRDbGFzc2VzQXJyYXkoY2xhc3NUb1JlbW92ZSkpIDogW107XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdG9BZGQgPSBjbGFzc1RvQWRkID8gW2NsYXNzVG9BZGRdIDogW107XG4gICAgICAgIHRvUmVtb3ZlID0gY2xhc3NUb1JlbW92ZSA/IFtjbGFzc1RvUmVtb3ZlXSA6IFtdO1xuICAgIH1cbiAgICByZXR1cm4ge3RvQWRkLCB0b1JlbW92ZX07XG59O1xuXG4vKmhlbHBlciBmdW5jdGlvbiBmb3IgcHJlcGFyZUZpZWxkRGVmcyovXG5jb25zdCBwdXNoRmllbGREZWYgPSAoZGF0YU9iamVjdCwgY29sdW1uRGVmT2JqLCBuYW1lUHJlZml4LCBvcHRpb25zKSA9PiB7XG4gICAgLypsb29wIG92ZXIgdGhlIGZpZWxkcyBpbiB0aGUgZGF0YU9iamVjdCB0byBwcm9jZXNzIHRoZW0qL1xuICAgIGxldCBtb2RpZmllZFRpdGxlLFxuICAgICAgICByZWxhdGVkVGFibGUsXG4gICAgICAgIHJlbGF0ZWRGaWVsZCxcbiAgICAgICAgcmVsYXRlZEluZm8sXG4gICAgICAgIGZpZWxkTmFtZSxcbiAgICAgICAgaXNSZWxhdGVkO1xuICAgIGlmICghb3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0ge307XG4gICAgfVxuICAgIF8uZm9yRWFjaChkYXRhT2JqZWN0LCAodmFsdWUsIHRpdGxlKSA9PiB7XG4gICAgICAgIGlmIChfLmluY2x1ZGVzKHRpdGxlLCAnLicpKSB7XG4gICAgICAgICAgICByZWxhdGVkSW5mbyAgPSBfLnNwbGl0KHRpdGxlLCAnLicpO1xuICAgICAgICAgICAgcmVsYXRlZFRhYmxlID0gcmVsYXRlZEluZm9bMF07XG4gICAgICAgICAgICByZWxhdGVkRmllbGQgPSByZWxhdGVkSW5mb1sxXTtcbiAgICAgICAgICAgIGlzUmVsYXRlZCAgICA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMubm9Nb2RpZnlUaXRsZSkge1xuICAgICAgICAgICAgbW9kaWZpZWRUaXRsZSA9IHRpdGxlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKF8uaXNTdHJpbmcodGl0bGUpKSB7XG4gICAgICAgICAgICAgICAgbW9kaWZpZWRUaXRsZSA9IHByZXR0aWZ5TGFiZWwodGl0bGUpO1xuICAgICAgICAgICAgICAgIG1vZGlmaWVkVGl0bGUgPSBkZUh5cGhlbmF0ZShtb2RpZmllZFRpdGxlKTtcbiAgICAgICAgICAgICAgICBtb2RpZmllZFRpdGxlID0gbmFtZVByZWZpeCA/IGluaXRDYXBzKG5hbWVQcmVmaXgpICsgJyAnICsgbW9kaWZpZWRUaXRsZSA6IG1vZGlmaWVkVGl0bGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZGlmaWVkVGl0bGUgPSB0aXRsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aXRsZSA9IG5hbWVQcmVmaXggPyBuYW1lUHJlZml4ICsgJy4nICsgdGl0bGUgOiB0aXRsZTtcbiAgICAgICAgaWYgKGlzUmVsYXRlZCkge1xuICAgICAgICAgICAgLy8gRm9yIHJlbGF0ZWQgY29sdW1ucywgc2hvcnRlbiB0aGUgdGl0bGUgdG8gbGFzdCB0d28gd29yZHNcbiAgICAgICAgICAgIGZpZWxkTmFtZSA9IF8uc3BsaXQobW9kaWZpZWRUaXRsZSwgJyAnKTtcbiAgICAgICAgICAgIGZpZWxkTmFtZSA9IGZpZWxkTmFtZS5sZW5ndGggPiAxID8gZmllbGROYW1lW2ZpZWxkTmFtZS5sZW5ndGggLSAyXSArICcgJyArIGZpZWxkTmFtZVtmaWVsZE5hbWUubGVuZ3RoIC0gMV0gOiBmaWVsZE5hbWVbMF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWVsZE5hbWUgPSBtb2RpZmllZFRpdGxlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRlZk9iaiA9IG9wdGlvbnMuc2V0QmluZGluZ0ZpZWxkID8geydkaXNwbGF5TmFtZSc6IGZpZWxkTmFtZSwgJ2ZpZWxkJzogdGl0bGUsICdyZWxhdGVkVGFibGUnOiByZWxhdGVkVGFibGUsICdyZWxhdGVkRmllbGQnOiByZWxhdGVkRmllbGQgfHwgbW9kaWZpZWRUaXRsZX1cbiAgICAgICAgOiB7J2Rpc3BsYXlOYW1lJzogZmllbGROYW1lLCAncmVsYXRlZFRhYmxlJzogcmVsYXRlZFRhYmxlLCAncmVsYXRlZEZpZWxkJzogcmVsYXRlZEZpZWxkIHx8IG1vZGlmaWVkVGl0bGV9O1xuICAgICAgICAvKmlmIGZpZWxkIGlzIGEgbGVhZiBub2RlLCBwdXNoIGl0IGluIHRoZSBjb2x1bW5EZWZzKi9cbiAgICAgICAgaWYgKCFfLmlzT2JqZWN0KHZhbHVlKSB8fCAoXy5pc0FycmF5KHZhbHVlKSAmJiAhdmFsdWVbMF0pKSB7XG4gICAgICAgICAgICAvKmlmIHRoZSBjb2x1bW4gY291bnRlciBoYXMgcmVhY2hlZCB1cHBlckJvdW5kIHJldHVybiovXG4gICAgICAgICAgICBpZiAob3B0aW9ucy51cHBlckJvdW5kICYmIG9wdGlvbnMuY29sdW1uQ291bnQgPT09IG9wdGlvbnMudXBwZXJCb3VuZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbHVtbkRlZk9iai50ZXJtaW5hbHMucHVzaChkZWZPYmopO1xuICAgICAgICAgICAgLyppbmNyZW1lbnQgdGhlIGNvbHVtbiBjb3VudGVyKi9cbiAgICAgICAgICAgIG9wdGlvbnMuY29sdW1uQ291bnQgKz0gMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8qZWxzZSBmaWVsZCBpcyBhbiBvYmplY3QsIHByb2Nlc3MgaXQgcmVjdXJzaXZlbHkqL1xuICAgICAgICAgICAgLyogaWYgcGFyZW50IG5vZGUgdG8gYmUgaW5jbHVkZWQsIGluY2x1ZGUgaXQgKi9cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmNvbHVtbkNvdW50ICE9PSBvcHRpb25zLnVwcGVyQm91bmQpIHtcbiAgICAgICAgICAgICAgICBjb2x1bW5EZWZPYmoub2JqZWN0cy5wdXNoKGRlZk9iaik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIGlmIGZpZWxkIGlzIGFuIGFycmF5IG5vZGUsIHByb2Nlc3MgaXRzIGZpcnN0IGNoaWxkICovXG4gICAgICAgICAgICBpZiAoXy5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZVswXSkge1xuICAgICAgICAgICAgICAgIHB1c2hGaWVsZERlZih2YWx1ZVswXSwgY29sdW1uRGVmT2JqLCB0aXRsZSArICdbMF0nLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcHVzaEZpZWxkRGVmKHZhbHVlLCBjb2x1bW5EZWZPYmosIHRpdGxlLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufTtcblxuY29uc3QgZ2V0TWV0YURhdGFGcm9tRGF0YSA9IChkYXRhKSA9PiB7XG4gICAgbGV0IGRhdGFPYmplY3Q7XG4gICAgaWYgKF8uaXNBcnJheShkYXRhKSkge1xuICAgICAgICBpZiAoXy5pc09iamVjdChkYXRhWzBdKSkge1xuICAgICAgICAgICAgZGF0YU9iamVjdCA9IGdldENsb25lZE9iamVjdChkYXRhWzBdKTtcbiAgICAgICAgICAgIC8qTG9vcCBvdmVyIHRoZSBvYmplY3QgdG8gZmluZCBvdXQgYW55IG51bGwgdmFsdWVzLiBJZiBhbnkgbnVsbCB2YWx1ZXMgYXJlIHByZXNlbnQgaW4gdGhlIGZpcnN0IHJvdywgY2hlY2sgYW5kIGFzc2lnbiB0aGUgdmFsdWVzIGZyb20gb3RoZXIgcm93LlxuICAgICAgICAgICAgICogQXMgY29sdW1uIGdlbmVyYXRpb24gaXMgZGVwZW5kZW50IG9uIGRhdGEsIGZvciByZWxhdGVkIGZpZWxkcyBpZiBmaXJzdCByb3cgdmFsdWUgaXMgbnVsbCwgY29sdW1ucyBhcmUgbm90IGdlbmVyYXRlZC5cbiAgICAgICAgICAgICAqIFRvIHByZXZlbnQgdGhpcywgY2hlY2sgdGhlIGRhdGEgaW4gb3RoZXIgcm93cyBhbmQgZ2VuZXJhdGUgdGhlIGNvbHVtbnMuIE5ldyBrZXlzIGZyb20gb3RoZXJzIHJvd3MgYXJlIGFsc28gYWRkZWQqL1xuICAgICAgICAgICAgXy5mb3JFYWNoKGRhdGEsIChyb3csIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKChpbmRleCArIDEpID49IDEwKSB7IC8vIExpbWl0IHRoZSBkYXRhIHNlYXJjaCB0byBmaXJzdCAxMCByZWNvcmRzXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXy5hc3NpZ25XaXRoKGRhdGFPYmplY3QsIHJvdywgKG9ialZhbHVlLCBzcmNWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKG9ialZhbHVlID09PSBudWxsIHx8IG9ialZhbHVlID09PSB1bmRlZmluZWQpID8gc3JjVmFsdWUgOiBvYmpWYWx1ZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGF0YU9iamVjdCA9IGRhdGFbMF07XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhT2JqZWN0ID0gZGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGFPYmplY3Q7XG59O1xuXG5leHBvcnQgY29uc3QgcHJlcGFyZUZpZWxkRGVmcyA9IChkYXRhLCBvcHRpb25zPykgPT4ge1xuICAgIGxldCBkYXRhT2JqZWN0O1xuICAgIGNvbnN0IGNvbHVtbkRlZiA9IHtcbiAgICAgICAgICAgICdvYmplY3RzJyA6IFtdLFxuICAgICAgICAgICAgJ3Rlcm1pbmFscycgOiBbXVxuICAgICAgICB9O1xuICAgIC8qaWYgbm8gZGF0YSBwcm92aWRlZCwgaW5pdGlhbGl6ZSBkZWZhdWx0IGNvbHVtbiBkZWZpbml0aW9ucyovXG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICAgIGRhdGEgPSBbXTtcbiAgICB9XG4gICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICB9XG4gICAgb3B0aW9ucy5zZXRCaW5kaW5nRmllbGQgPSB0cnVlO1xuICAgIG9wdGlvbnMuY29sdW1uQ291bnQgPSAwO1xuICAgIGRhdGFPYmplY3QgPSBnZXRNZXRhRGF0YUZyb21EYXRhKGRhdGEpO1xuICAgIC8qZmlyc3Qgb2YgdGhlIG1hbnkgZGF0YSBvYmplY3RzIGZyb20gZ3JpZCBkYXRhKi9cbiAgICBwdXNoRmllbGREZWYoZGF0YU9iamVjdCwgY29sdW1uRGVmLCAnJywgb3B0aW9ucyk7XG4gICAgaWYgKCFvcHRpb25zIHx8IChvcHRpb25zICYmICFvcHRpb25zLmZpbHRlcikpIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbkRlZi50ZXJtaW5hbHM7XG4gICAgfVxuICAgIHN3aXRjaCAob3B0aW9ucy5maWx0ZXIpIHtcbiAgICAgICAgY2FzZSAnYWxsJzpcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW5EZWY7XG4gICAgICAgIGNhc2UgJ29iamVjdHMnOlxuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbkRlZi5vYmplY3RzO1xuICAgICAgICBjYXNlICd0ZXJtaW5hbHMnOlxuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbkRlZi50ZXJtaW5hbHM7XG4gICAgfVxuICAgIHJldHVybiBjb2x1bW5EZWY7XG59O1xuXG5cbi8qKlxuICogVG8gZ2V0IGNvbnRhaW5lciB0YXJnZXQgZWxlbWVudCB0byBhcHBlbmQgdGhlIGxpc3QgZm9yIHNlYXJjaCBhbmQgZGF0ZXBpY2tlciBwYW5lbCB3aGVuIGZpZWxkIHByZXNlbnQgaW4gZGlhbG9nXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDb250YWluZXJUYXJnZXRDbGFzcyA9IChlbGVtZW50KSA9PiB7XG4gICAgcmV0dXJuICcud20tYXBwJztcblxuICAgIC8vIEJlbG93IGNvZGUgaXMgbm90IHdvcmtpbmcgd2hlbiB3ZSBoYXZlIG5lc3RlZCBkaWFsb2dzLlxuICAgIC8vIE5lc3RlZCBkaWFsb2dzIGNhc2Ugd2Ugd2lsbCBoYXZlICBtdWx0aXBsZSAnLm1vZGFsLWNvbnRlbnQnIGNsYXNzZXMgb24gRE9NIGR1ZSB0byB0aGF0IGNvbnRhaW5lciBwb3NpdGlvbnMgaXMgbm90IHdvcmtpbmcgYXMgZXhwZWN0ZWQuXG4gICAgLy8gQmVsb3cgY29kZSB0byBmaXggdGhlIGlzc3VlID09PiBXTVMtMTg3NTFcbiAgICAvLyBBcyByZWdyZXNzaW9uIHdlIGdvdCA9PT4gV01TLTE5ODM1XG5cbiAgICAvLyBpZiAoZWxlbWVudC5jbG9zZXN0KCcubW9kYWwtZGlhbG9nJykpIHtcbiAgICAvLyAgICAgcmV0dXJuICcubW9kYWwtY29udGVudCc7XG4gICAgLy8gfSBlbHNlIHtcbiAgICAvLyAgICAgcmV0dXJuICdib2R5JztcbiAgICAvLyB9XG5cbn1cblxuLyoqXG4gKiBUbyBleHRyYWN0IHRoZSBWYXJpYWJsZSBOYW1lIGZyb20gYSBXaWRnZXQncyBiaW5kZGF0YXNvdXJjZSBhdHRyaWJ1dGVcbiAqL1xuZXhwb3J0IGNvbnN0IGV4dHJhY3REYXRhU291cmNlTmFtZSA9IChiaW5kRGF0YVNvdXJjZSkgPT4ge1xuICAgIGlmICghYmluZERhdGFTb3VyY2UpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgZGF0YVNvdXJjZU5hbWU7XG4gICAgY29uc3QgcGFydHMgPSBiaW5kRGF0YVNvdXJjZS5zcGxpdCgnLicpO1xuICAgIGlmIChwYXJ0cy5sZW5ndGggPiAxICYmIHBhcnRzWzBdID09PSAnVmFyaWFibGVzJykge1xuICAgICAgICBkYXRhU291cmNlTmFtZSA9IHBhcnRzWzFdO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YVNvdXJjZU5hbWU7XG59XG5cbmV4cG9ydCBjb25zdCBzZXRGb2N1c1RyYXAgPSAoY29udGFpbmVyLCBhbGxvd091dHNpZGVDbGljaywgc2V0UmV0dXJuRm9jdXNFbGVtZW50PykgPT4ge1xuICAgIHJldHVybiBjcmVhdGVGb2N1c1RyYXAoY29udGFpbmVyLCB7XG4gICAgICAgIG9uQWN0aXZhdGU6ICgpID0+IGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdpcy1hY3RpdmUnKSxcbiAgICAgICAgb25EZWFjdGl2YXRlOiAoKSA9PiBjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgnaXMtYWN0aXZlJyksXG4gICAgICAgIGFsbG93T3V0c2lkZUNsaWNrOiBhbGxvd091dHNpZGVDbGljayxcbiAgICAgICAgc2V0UmV0dXJuRm9jdXM6IHNldFJldHVybkZvY3VzRWxlbWVudCxcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBHZXRzIGtleWJvYXJkIGZvY3VzYWJsZSBlbGVtZW50cyB3aXRoaW4gYSBzcGVjaWZpZWQgZWxlbWVudFxuICogQHBhcmFtIGVsZW1lbnQge0hUTUxFbGVtZW50fVxuICogQHJldHVybnMge0FycmF5fVxuICovXG5leHBvcnQgY29uc3QgZ2V0S2V5Ym9hcmRGb2N1c2FibGVFbGVtZW50cyA9IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnROb2RlTGlzdCA9IGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYSwgYnV0dG9uLCBpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgZGV0YWlscywgaWZyYW1lLCBlbWJlZCwgb2JqZWN0LCBzdW1tYXJ5IGRpYWxvZywgYXVkaW9bY29udHJvbHNdLCB2aWRlb1tjb250cm9sc10sIFtjb250ZW50ZWRpdGFibGVdJyk7XG4gICAgY29uc3QgZWxlbWVudHMgPSBBcnJheS5mcm9tKGVsZW1lbnROb2RlTGlzdCk7XG4gICAgcmV0dXJuIGVsZW1lbnRzLmZpbHRlcihlbCA9PiB7XG4gICAgICAgIHJldHVybiAoIWVsLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSAmJiAhZWwuaGFzQXR0cmlidXRlKCdoaWRkZW4nKVxuICAgICAgICAgICAgJiYgKCFlbC5oYXNBdHRyaWJ1dGUoJ3RhYmluZGV4JykgfHwgKGVsLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSAmJiAhZWwuZ2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIikuc3RhcnRzV2l0aCgnLScpKSkpO1xuICAgIH0pO1xufVxuIl19
|
|
480
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9iYXNlL3NyYy91dGlscy93aWRnZXQtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQ0gsVUFBVSxFQUNWLDJCQUEyQixFQUMzQixXQUFXLEVBQ1gsU0FBUyxFQUNULGNBQWMsRUFDZCxlQUFlLEVBQ2YsUUFBUSxFQUNSLGFBQWEsRUFDYixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ25CLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXRELE9BQU8sRUFBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRXRILE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxRQUFRO0lBQ3ZHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDaEk7Ozs7R0FJRztBQUNILE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7SUFDcEMsSUFBSSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENB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QUFBO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLENBQUMsT0FBb0IsRUFBRSxFQUFFO0lBQ2pFLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyx5SUFBeUksQ0FBQyxDQUFDO0lBQzVMLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0MsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQ3hCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztlQUMzRCxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1SCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Zm9yd2FyZFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgJHBhcnNlRXhwcixcbiAgICBjaGVja0lzQ3VzdG9tUGlwZUV4cHJlc3Npb24sXG4gICAgZGVIeXBoZW5hdGUsXG4gICAgZW5jb2RlVXJsLFxuICAgIEZvcm1XaWRnZXRUeXBlLFxuICAgIGdldENsb25lZE9iamVjdCxcbiAgICBpbml0Q2FwcyxcbiAgICBpc1ZhbGlkV2ViVVJMLFxuICAgIHByZXR0aWZ5TGFiZWwsXG4gICAgc3RyaW5nU3RhcnRzV2l0aFxufSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQge0RpYWxvZ1JlZiwgV2lkZ2V0UmVmfSBmcm9tICcuLi93aWRnZXRzL2ZyYW1ld29yay90eXBlcyc7XG5pbXBvcnQge2NyZWF0ZUZvY3VzVHJhcH0gZnJvbSAnQHdhdmVtYWtlci9mb2N1cy10cmFwJztcbmltcG9ydCB7TmF2Tm9kZX0gZnJvbSBcIi4uL3dpZGdldHMvY29tbW9uL2Jhc2UvZGF0YXNldC1hd2FyZS1uYXYuY29tcG9uZW50XCI7XG5pbXBvcnQge2Fzc2lnbldpdGgsIGZvckVhY2gsIGdldCwgaW5jbHVkZXMsIGlzQXJyYXksIGlzTnVsbCwgaXNPYmplY3QsIGlzU3RyaW5nLCBqb2luLCBzcGxpdCwgdW5pb259IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuY29uc3QgREFUQVNFVF9XSURHRVRTID0gbmV3IFNldChbRm9ybVdpZGdldFR5cGUuU0VMRUNULCBGb3JtV2lkZ2V0VHlwZS5DSEVDS0JPWFNFVCwgRm9ybVdpZGdldFR5cGUuUkFESU9TRVQsXG4gICAgRm9ybVdpZGdldFR5cGUuU1dJVENILCBGb3JtV2lkZ2V0VHlwZS5BVVRPQ09NUExFVEUsIEZvcm1XaWRnZXRUeXBlLkNISVBTLCBGb3JtV2lkZ2V0VHlwZS5UWVBFQUhFQUQsIEZvcm1XaWRnZXRUeXBlLlJBVElOR10pO1xuLyoqXG4gKiBSZXR1cm5zIHRoZSBwYXJzZWQsIHVwZGF0ZWQgYm91bmQgZXhwcmVzc2lvblxuICogaWYgdGhlIGV4cHJlc3Npb24gaXMgJFtkYXRhWyRpXVtmaXJzdE5hbWVdXSArICctLScgKyAkW2xhc3ROYW1lXSArICctLScgKyAkWydASURAJ11cbiAqIHJldHVybnMgX18xLmZpcnN0TmFtZSArICctLScgKyBsYXN0TmFtZSArICctLScgKyBfXzFbJ0BJREAnXVxuICovXG5jb25zdCBnZXRVcGRhdGVkRXhwciA9IChleHByOiBzdHJpbmcpID0+IHtcbiAgICBsZXQgdXBkYXRlZCA9ICcnLCBjaCwgbmV4dCwgaSwgaiwgbWF0Y2hDaCwgbWF0Y2hDb3VudCwgaXNRdW90ZWRTdHIsIHN1YlN0ciwgaXNRdW90ZWRTdHJFdmFsdWF0ZWQ7XG5cbiAgICBleHByID0gZXhwci5yZXBsYWNlKC9cXCRcXFtkYXRhXFxbXFwkaVxcXS9nLCAnJFtfXzEnKTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBleHByLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNoID0gZXhwcltpXTtcbiAgICAgICAgbmV4dCA9IGV4cHJbaSArIDFdO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBpZiB0aGUgZXhwcmVzc2lvbiBzdGFydHMgd2l0aCAkWywgY2hlY2sgdGhlIG5leHQoY2gpIGNoYXJhY3RlcixcbiAgICAgICAgICogICAgaWYgY2ggaXMgYSBxdW90ZSgnLCBcIikgY2hhbmdlIHRoZSBleHByIHRvIF9fW1xuICAgICAgICAgKiAgICBpZiBjaCBpcyBhIHdoaXRlU3BhY2UsIHJlbW92ZSBpdFxuICAgICAgICAgKiAgICBlbHNlIHJlbW92ZSAkW1xuICAgICAgICAgKi9cbiAgICAgICAgaWYgKGNoID09PSAnJCcgJiYgbmV4dCA9PT0gJ1snKSB7XG4gICAgICAgICAgICBtYXRjaENvdW50ID0gMTtcbiAgICAgICAgICAgIGlzUXVvdGVkU3RyRXZhbHVhdGVkID0gZmFsc2U7XG4gICAgICAgICAgICBpc1F1b3RlZFN0ciA9IGZhbHNlO1xuXG4gICAgICAgICAgICBmb3IgKGogPSBpICsgMjsgaiA8IGV4cHIubGVuZ3RoOyBqKyspIHtcblxuICAgICAgICAgICAgICAgIG1hdGNoQ2ggPSBleHByW2pdO1xuXG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoQ2ggPT09ICcgJykge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIWlzUXVvdGVkU3RyRXZhbHVhdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzUXVvdGVkU3RyID0gZXhwcltqXSA9PT0gJ1wiJyB8fCBleHByW2pdID09PSAnXFwnJztcbiAgICAgICAgICAgICAgICAgICAgaXNRdW90ZWRTdHJFdmFsdWF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChtYXRjaENoID09PSAnWycpIHtcbiAgICAgICAgICAgICAgICAgICAgbWF0Y2hDb3VudCsrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobWF0Y2hDaCA9PT0gJ10nKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoQ291bnQtLTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIW1hdGNoQ291bnQpIHtcbiAgICAgICAgICAgICAgICAgICAgc3ViU3RyID0gZXhwci5zdWJzdHJpbmcoaSArIDIsIGopO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNRdW90ZWRTdHIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZWQgKz0gJ19fMVsnICsgc3ViU3RyICsgJ10nO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZCArPSBzdWJTdHI7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpID0gajtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVwZGF0ZWQgKz0gY2g7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdXBkYXRlZDtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgdmFsdWUgZm9yIHRoZSBwcm92aWRlZCBrZXkgaW4gdGhlIG9iamVjdFxuICovXG5leHBvcnQgY29uc3QgZ2V0T2JqVmFsdWVCeUtleSA9IChvYmo6IGFueSwgc3RyS2V5OiBzdHJpbmcpID0+IHtcbiAgICAvKiBjaGVjayBmb3IgdGhlIGtleS1zdHJpbmcgKi9cbiAgICBpZiAoc3RyS2V5KSB7XG4gICAgICAgIGxldCB2YWw7XG4gICAgICAgIC8qIGNvbnZlcnQgaW5kZXhlcyB0byBwcm9wZXJ0aWVzLCBzbyBhcyB0byB3b3JrIGZvciBldmVuICdrZXkxWzBdLmNoaWxkMScqL1xuICAgICAgICBzdHJLZXkucmVwbGFjZSgvXFxbKFxcdyspXFxdL2csICcuJDEnKS5zcGxpdCgnLicpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIC8vIElmIG9iaiBpcyBudWxsLCB0aGVuIGFzc2lnbiB2YWwgdG8gbnVsbC5cbiAgICAgICAgICAgIHZhbCA9ICh2YWwgJiYgdmFsW2tleV0pIHx8IChpc051bGwob2JqKSA/IG9iaiA6IG9ialtrZXldKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG59O1xuXG4vKipcbiAqIHJldHVybnMgdGhlIGRpc3BsYXkgZmllbGQgZGF0YSBmb3IgYW55IGRhdGFzZXQgd2lkZ2V0c1xuICogQmFzZWQgb24gdGhlIGJpbmQgZGlzcGxheSBleHByZXNzaW9uIG9yIGRpc3BsYXkgZXhwcmVzc2lvbiBvciBkaXNwbGF5IG5hbWUsXG4gKiBkYXRhIGlzIGV4dHJhY3RlZCBhbmQgZm9ybWF0dGVkIGZyb20gdGhlIHBhc3NlZCBvcHRpb24gb2JqZWN0XG4gKiBJZiB0aGVyZSBpcyBmaWVsZCBpcyBzcGVjaWZpZWQsIGZpZWxkIHZhbHVlIGlzIG9idGFpbmVkIGZyb20gdGhlIGRhdGFPYmouXG4gKiBJZiBleHByZXNzaW9uIGlzIGdpdmVuLCBldmFsdWF0ZXMgdGhlIGV4cHJlc3Npb24gdmFsdWUuXG4gKiBlbHNlIGNoZWNrIGZvciBiaW5kRXhwcmVzc2lvbiwgZXh0cmFjdCB0aGUgdmFsdWUgZnJvbSB0aGUgZGF0YU9ialxuICovXG5leHBvcnQgY29uc3QgZ2V0RXZhbHVhdGVkRGF0YSA9IChkYXRhT2JqOiBhbnksIG9wdGlvbnM6IGFueSwgY29udGV4dD86IGFueSkgPT4ge1xuICAgIGxldCBleHByZXNzaW9uVmFsdWU7XG4gICAgY29uc3QgZmllbGQgPSBvcHRpb25zLmZpZWxkLFxuICAgICAgICBleHByID0gb3B0aW9ucy5leHByZXNzaW9uLFxuICAgICAgICBiaW5kRXhwciA9IG9wdGlvbnMuYmluZEV4cHJlc3Npb247XG5cbiAgICAvLyBpZiBrZXkgaXMgYm91bmQgZXhwcmVzc2lvblxuICAgIGlmIChiaW5kRXhwcikge1xuICAgICAgICAvLyByZW1vdmUgJ2JpbmQ6JyBwcmVmaXggZnJvbSB0aGUgYm91bmRFeHByZXNzaW9uTmFtZVxuICAgICAgICBleHByZXNzaW9uVmFsdWUgPSBiaW5kRXhwci5yZXBsYWNlKCdiaW5kOicsICcnKTtcblxuICAgICAgICAvLyBGb3IgYmluZCBleHByZXNzaW9uIHBhc3NpbmcgdGhlIGxhc3QgYXJndW1lbnQgdGhhdCB0aGUgb2JqZWN0IG9mIGRhdGFzZXQgaXRlbS5cbiAgICAgICAgLy8gTm90ZTogRm9yIHBhcnNlIGV4cHJlc3Npb24gd2UgYXJlIHNlbmRpbmcgZGF0YU9iaiB3aXRoIHRoZSBwcm9wZXJ5IG5hbWUgXCJfXzFcIiwgd2UgdXNlZCB0aGUgc2FtZSBwcm9wZXJ5IHRvIHNlbmQgdGhlIGxhc3QgYXJndW1lbnQgYXMgZGF0YXNldCBpdGVtXG4gICAgICAgIGlmKGNoZWNrSXNDdXN0b21QaXBlRXhwcmVzc2lvbihleHByZXNzaW9uVmFsdWUpKXtcbiAgICAgICAgICAgIGV4cHJlc3Npb25WYWx1ZSA9IGV4cHJlc3Npb25WYWx1ZSsnOiBfXzEnO1xuICAgICAgICB9XG4gICAgICAgIC8vIHBhcnNlIHRoZSBleHByZXNzaW9uVmFsdWUgZm9yIHJlcGxhY2luZyBhbGwgdGhlIGV4cHJlc3Npb25zIHdpdGggdmFsdWVzIGluIHRoZSBvYmplY3RcbiAgICAgICAgZXhwcmVzc2lvblZhbHVlID0gZ2V0VXBkYXRlZEV4cHIoZXhwcmVzc2lvblZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBleHByZXNzaW9uVmFsdWUgPSBleHByID8gZXhwciA6IGZpZWxkO1xuICAgIH1cblxuICAgIC8vIEhhbmRsaW5nIGZpZWxkIG5hbWUgd2l0aCBzcGVjaWFsIGNoYXJlY3RlcnNcbiAgICAvLyBFeDogZmllbGQgPSBcImYgbmFtZVwiXG4gICAgaWYgKCFiaW5kRXhwciAmJiAhZXhwcikge1xuICAgICAgICByZXR1cm4gZ2V0KGRhdGFPYmosIGZpZWxkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gJHBhcnNlRXhwcihleHByZXNzaW9uVmFsdWUpKGNvbnRleHQsIE9iamVjdC5hc3NpZ24oe30sIGRhdGFPYmosIHtfXzE6IGRhdGFPYmp9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNBY3RpdmVOYXZJdGVtID0gKGxpbmssIHJvdXRlTmFtZSkgPT4ge1xuICAgIGlmICghbGluayB8fCAhcm91dGVOYW1lKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcm91dGVOYW1lID0gcm91dGVOYW1lLmluZGV4T2YoJz8nKSA9PT0gLTEgPyByb3V0ZU5hbWUgOiByb3V0ZU5hbWUuc3Vic3RyaW5nKDAsIHJvdXRlTmFtZS5pbmRleE9mKCc/JykpO1xuICAgIGxpbmsgPSBsaW5rLmluZGV4T2YoJz8nKSA9PT0gLTEgPyBsaW5rIDogbGluay5zdWJzdHJpbmcoMCwgbGluay5pbmRleE9mKCc/JykpO1xuICAgIGNvbnN0IHJvdXRlUmVnZXggPSBuZXcgUmVnRXhwKCdeKCNcXC98IyknICsgcm91dGVOYW1lICsgJyQnKTtcbiAgICByZXR1cm4gcm91dGVSZWdleC50ZXN0KGxpbmspO1xufTtcblxuLyoqXG4qIHJldHVybnMgdHJ1ZSBpZiB0aGUgbWVudSBoYXMgbGluayB0byB0aGUgY3VycmVudCBwYWdlLlxuKiBAcGFyYW0gbm9kZXNcbiogQHBhcmFtIHJvdXRlVXJsXG4qL1xuZXhwb3J0IGNvbnN0IGhhc0xpbmtUb0N1cnJlbnRQYWdlID0gKG5vZGVzOiBBcnJheTxOYXZOb2RlPiwgcm91dGVVcmwpID0+IHtcbiAgICByZXR1cm4gbm9kZXMuc29tZShub2RlID0+IHtcbiAgICAgICAgaWYgKGlzQWN0aXZlTmF2SXRlbShub2RlLmxpbmssIHJvdXRlVXJsKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHJldHVybiBoYXNMaW5rVG9DdXJyZW50UGFnZShub2RlLmNoaWxkcmVuLCByb3V0ZVVybCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvcmRlckJ5IEV4cHJlc3Npb24gYmFzZWQgb24gdGhlICdzb3J0ICdvcHRpb24gaW4gcGFnZWFibGUgb2JqZWN0XG4gKiByZXR1cm5lZCBieSBiYWNrZW5kXG4gKiBAcGFyYW0gcGFnZWFibGVPYmpcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRPcmRlckJ5RXhwciA9IHBhZ2VhYmxlT2JqID0+IHtcbiAgICBwYWdlYWJsZU9iaiA9IHBhZ2VhYmxlT2JqIHx8IFtdO1xuICAgIGNvbnN0IGV4cHJlc3Npb25zICAgICAgID0gW10sXG4gICAgICAgIEtFWV9WQUxfU0VQQVJBVE9SID0gJyAnLFxuICAgICAgICBGSUVMRF9TRVBBUkFUT1IgICA9ICcsJztcbiAgICBmb3JFYWNoKHBhZ2VhYmxlT2JqLCBvYmogPT4ge1xuICAgICAgICBpZiAob2JqLmRpcmVjdGlvbikge1xuICAgICAgICAgICAgZXhwcmVzc2lvbnMucHVzaChvYmoucHJvcGVydHkgKyBLRVlfVkFMX1NFUEFSQVRPUiArIG9iai5kaXJlY3Rpb24udG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBqb2luKGV4cHJlc3Npb25zLCBGSUVMRF9TRVBBUkFUT1IpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRGF0YVNldFdpZGdldCA9IHdpZGdldCA9PiB7XG4gICAgcmV0dXJuIERBVEFTRVRfV0lER0VUUy5oYXMod2lkZ2V0KTtcbn07XG5cbi8qVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSB1cmwgdG8gdGhlIGltYWdlIGFmdGVyIGNoZWNraW5nIHRoZSB2YWxpZGl0eSBvZiB1cmwqL1xuZXhwb3J0IGNvbnN0IGdldEltYWdlVXJsID0gKHVybFN0cmluZywgc2hvdWxkRW5jb2RlPywgZGVmYXVsdFVybD8pID0+IHtcbiAgICAvKkluIHN0dWRpbyBtb2RlIGJlZm9yZSBzZXR0aW5nIHBpY3R1cmVzb3VyY2UsIGNoZWNrIGlmIHRoZSBzdHVkaW9Db250cm9sbGVyIGlzIGxvYWRlZCBhbmQgbmV3IHBpY3R1cmVzb3VyY2UgaXMgaW4gJ3N0eWxlcy9pbWFnZXMvJyBwYXRoIG9yIG5vdC5cbiAgICAgKiBXaGVuIHBhZ2UgaXMgcmVmcmVzaGVkLCBsb2FkZXIuZ2lmIHdpbGwgYmUgbG9hZGVkIGZpcnN0IGFuZCBpdCB3aWxsIGJlIGluICdzdHlsZS9pbWFnZXMvJy5cbiAgICAgKiBQcmVwZW5kICdzZXJ2aWNlcy9wcm9qZWN0cy8nICsgJHJvb3RTY29wZS5wcm9qZWN0LmlkICsgJy93ZWIvcmVzb3VyY2VzL2ltYWdlcy9pbWFnZWxpc3RzLycgIGlmIHRoZSBpbWFnZSB1cmwgaXMganVzdCBpbWFnZSBuYW1lIGluIHRoZSBwcm9qZWN0IHJvb3QsXG4gICAgICogYW5kIGlmIHRoZSB1cmwgcG9pbnRpbmcgdG8gcmVzb3VyY2VzL2ltYWdlcy8gdGhlbiAnc2VydmljZXMvcHJvamVjdHMvJyArICRyb290U2NvcGUucHJvamVjdC5pZCArICcvd2ViLycqL1xuICAgIGlmIChpc1ZhbGlkV2ViVVJMKHVybFN0cmluZykpIHtcbiAgICAgICAgcmV0dXJuIHVybFN0cmluZztcbiAgICB9XG5cbiAgICAvLyBJZiBubyB2YWx1ZSBpcyBwcm92aWRlZCBmb3IgcGljdHVyZXNvdXJjZSBhc3NpZ24gcGljdHVyZXBsYWNlaG9sZGVyIG9yIGRlZmF1bHQtaW1hZ2VcbiAgICBpZiAoIXVybFN0cmluZykge1xuICAgICAgICB1cmxTdHJpbmcgPSBkZWZhdWx0VXJsIHx8ICdyZXNvdXJjZXMvaW1hZ2VzL2ltYWdlbGlzdHMvZGVmYXVsdC1pbWFnZS5wbmcnO1xuICAgIH1cblxuICAgIHVybFN0cmluZyA9IHNob3VsZEVuY29kZSA/IGVuY29kZVVybCh1cmxTdHJpbmcpIDogdXJsU3RyaW5nO1xuXG4gICAgLy8gaWYgdGhlIHJlc291cmNlIHRvIGJlIGxvYWRlZCBpcyBpbnNpZGUgYSBwcmVmYWJcbiAgICBpZiAoc3RyaW5nU3RhcnRzV2l0aCh1cmxTdHJpbmcsICdzZXJ2aWNlcy9wcmVmYWJzJykpIHtcbiAgICAgICAgcmV0dXJuIHVybFN0cmluZztcbiAgICB9XG5cbiAgICByZXR1cm4gdXJsU3RyaW5nO1xufTtcblxuLypUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSB1cmwgdG8gdGhlIGJhY2tncm91bmRJbWFnZSovXG5leHBvcnQgY29uc3QgZ2V0QmFja0dyb3VuZEltYWdlVXJsID0gKHVybFN0cmluZykgPT4ge1xuICAgIGlmICh1cmxTdHJpbmcgPT09ICcnIHx8IHVybFN0cmluZyA9PT0gJ25vbmUnKSB7XG4gICAgICAgIHJldHVybiB1cmxTdHJpbmc7XG4gICAgfVxuICAgIHJldHVybiAndXJsKCcgKyBnZXRJbWFnZVVybCh1cmxTdHJpbmcpICsgJyknO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBcyhyZWZlcmVuY2U6IGFueSwga2V5OiBhbnksIG11bHRpPzogYm9vbGVhbikge1xuICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGU6IGtleSxcbiAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gcmVmZXJlbmNlKSxcbiAgICAgICAgbXVsdGk6IG11bHRpXG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBc1dpZGdldFJlZihyZWZlcmVuY2U6IGFueSkge1xuICAgIHJldHVybiBwcm92aWRlQXMocmVmZXJlbmNlLCBXaWRnZXRSZWYpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFzRGlhbG9nUmVmKHJlZmVyZW5jZTogYW55KSB7XG4gICAgcmV0dXJuIHByb3ZpZGVBcyhyZWZlcmVuY2UsIERpYWxvZ1JlZik7XG59XG5cbmV4cG9ydCBjb25zdCBOQVZJR0FUSU9OX1RZUEUgPSB7XG4gICAgQURWQU5DRUQ6ICdBZHZhbmNlZCcsXG4gICAgQkFTSUM6ICdCYXNpYycsXG4gICAgQ0xBU1NJQzogJ0NsYXNzaWMnLFxuICAgIElOTElORTogJ0lubGluZScsXG4gICAgTk9ORTogJ05vbmUnLFxuICAgIE9OREVNQU5EOiAnT24tRGVtYW5kJyxcbiAgICBQQUdFUjogJ1BhZ2VyJyxcbiAgICBTQ1JPTEw6ICdTY3JvbGwnXG59O1xuXG5leHBvcnQgY29uc3QgSU5QVVRNT0RFID0ge1xuICAgIEZJTkFOQ0lBTDogJ2ZpbmFuY2lhbCcsXG4gICAgTkFUVVJBTDogJ25hdHVyYWwnXG59O1xuXG5leHBvcnQgY29uc3QgQVVUT0NMT1NFX1RZUEUgPSB7XG4gICAgT1VUU0lERUNMSUNLOiAnb3V0c2lkZUNsaWNrJyxcbiAgICBBTFdBWVM6ICdhbHdheXMnLFxuICAgIERJU0FCTEVEOiAnZGlzYWJsZWQnXG59XG5cbmV4cG9ydCBjb25zdCB1bnN1cHBvcnRlZFN0YXRlUGVyc2lzdGVuY2VUeXBlcyA9IFsnT24tRGVtYW5kJywgJ1Njcm9sbCddO1xuXG5leHBvcnQgY29uc3QgZ2V0V2F0Y2hJZGVudGlmaWVyID0gKC4uLmFyZ3MpID0+IGFyZ3Muam9pbignXycpO1xuXG5jb25zdCB0eXBlc01hcCA9IHtcbiAgICBudW1iZXI6IFsnbnVtYmVyJywgJ2ludGVnZXInLCAnYmlnX2ludGVnZXInLCAnc2hvcnQnLCAnZmxvYXQnLCAnYmlnX2RlY2ltYWwnLCAnZG91YmxlJywgJ2xvbmcnLCAnYnl0ZSddLFxuICAgIHN0cmluZzogWydzdHJpbmcnLCAndGV4dCddLFxuICAgIGNoYXJhY3RlcjogWydjaGFyYWN0ZXInXSxcbiAgICBkYXRlOiBbJ2RhdGUnLCAndGltZScsICAndGltZXN0YW1wJywgJ2RhdGV0aW1lJ11cbn07XG5jb25zdCBtb2RlcyA9IHtcbiAgICBudW1iZXI6IFsnZXhhY3QnLCAnbm90ZXF1YWxzJywgJ2xlc3N0aGFuJywgJ2xlc3N0aGFuZXF1YWwnLCAnZ3JlYXRlcnRoYW4nLCAnZ3JlYXRlcnRoYW5lcXVhbCcsICdudWxsJywgJ2lzbm90bnVsbCddLFxuICAgIHN0cmluZzogWydhbnl3aGVyZWlnbm9yZWNhc2UnLCAnYW55d2hlcmUnLCAnc3RhcnRpZ25vcmVjYXNlJywgJ3N0YXJ0JywgJ2VuZGlnbm9yZWNhc2UnLCAnZW5kJywgJ2V4YWN0aWdub3JlY2FzZScsICdleGFjdCcsICdub3RlcXVhbHNpZ25vcmVjYXNlJywgJ25vdGVxdWFscycsICdudWxsJywgJ2lzbm90bnVsbCcsICdlbXB0eScsICdpc25vdGVtcHR5JywgJ251bGxvcmVtcHR5J10sXG4gICAgY2hhcmFjdGVyOiBbJ2V4YWN0aWdub3JlY2FzZScsICdleGFjdCcsICdub3RlcXVhbHNpZ25vcmVjYXNlJywgJ25vdGVxdWFscycsICdudWxsJywgJ2lzbm90bnVsbCcsICdlbXB0eScsICdpc25vdGVtcHR5JywgJ251bGxvcmVtcHR5J10sXG4gICAgZGF0ZTogWydleGFjdCcsICdsZXNzdGhhbicsICdsZXNzdGhhbmVxdWFsJywgJ2dyZWF0ZXJ0aGFuJywgJ2dyZWF0ZXJ0aGFuZXF1YWwnLCAnbnVsbCcsICdub3RlcXVhbHMnLCAnaXNub3RudWxsJ11cbn07XG5jb25zdCBtYXRjaE1vZGVUeXBlc01hcCA9IHtcbiAgICBib29sZWFuOiBbJ2V4YWN0JywgJ251bGwnLCAnaXNub3RudWxsJ10sXG4gICAgY2xvYjogW10sXG4gICAgYmxvYjogW11cbn07XG5leHBvcnQgY29uc3QgZ2V0TWF0Y2hNb2RlVHlwZXNNYXAgPSAobXVsdGlNb2RlPykgPT4ge1xuICAgIGlmIChtdWx0aU1vZGUpIHtcbiAgICAgICAgbW9kZXMubnVtYmVyLnB1c2goJ2luJywgJ25vdGluJywgJ2JldHdlZW4nKTtcbiAgICAgICAgbW9kZXMuZGF0ZS5wdXNoKCdiZXR3ZWVuJyk7XG4gICAgICAgIG1vZGVzLnN0cmluZy5wdXNoKCdpbicsICdub3RpbicpO1xuICAgICAgICBtb2Rlcy5jaGFyYWN0ZXIucHVzaCgnaW4nLCAnbm90aW4nKTtcbiAgICB9XG5cbiAgICBmb3JFYWNoKHR5cGVzTWFwLCAodHlwZXMsIHByaW1UeXBlKSA9PiB7XG4gICAgICAgIGZvckVhY2godHlwZXMsIHR5cGUgPT4ge1xuICAgICAgICAgICAgbWF0Y2hNb2RlVHlwZXNNYXBbdHlwZV0gPSBtb2Rlc1twcmltVHlwZV07XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIC8vIHRoaXMgaXMgdXNlZCBpbiBmaWx0ZXIgY3JpdGVyaWEgd2hlbiB0aGUgdXNlciB0eXBlcyB0aGUgY29sdW1uIG5hbWUgbWFudWFsbHkgYW5kIHdoZXJlIHdlIGRvbnQga25vdyB0aGUgdHlwZSBvZiB0aGUgY29sdW1uXG4gICAgbWF0Y2hNb2RlVHlwZXNNYXBbJ2RlZmF1bHQnXSA9IHVuaW9uKG1vZGVzWydudW1iZXInXSwgbW9kZXNbJ3N0cmluZyddLCBtb2Rlc1snY2hhcmFjdGVyJ10sIG1vZGVzWydkYXRlJ10sIG1vZGVzWydkYXRlJ10pO1xuICAgIHJldHVybiBtYXRjaE1vZGVUeXBlc01hcDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNYXRjaE1vZGVNc2dzID0gKGFwcExvY2FsZSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0ICAgICAgICAgICAgOiBhcHBMb2NhbGUuTEFCRUxfU1RBUlRTX1dJVEgsXG4gICAgICAgIHN0YXJ0aWdub3JlY2FzZSAgOiBhcHBMb2NhbGUuTEFCRUxfU1RBUlRTX1dJVEhfSUdOT1JFQ0FTRSxcbiAgICAgICAgZW5kICAgICAgICAgICAgICA6IGFwcExvY2FsZS5MQUJFTF9FTkRTX1dJVEgsXG4gICAgICAgIGVuZGlnbm9yZWNhc2UgICAgOiBhcHBMb2NhbGUuTEFCRUxfRU5EU19XSVRIX0lHTk9SRUNBU0UsXG4gICAgICAgIGFueXdoZXJlICAgICAgICAgOiBhcHBMb2NhbGUuTEFCRUxfQ09OVEFJTlMsXG4gICAgICAgIGFueXdoZXJlaWdub3JlY2FzZTogYXBwTG9jYWxlLkxBQkVMX0NPTlRBSU5TX0lHTk9SRUNBU0UsXG4gICAgICAgIGV4YWN0ICAgICAgICAgICAgOiBhcHBMb2NhbGUuTEFCRUxfSVNfRVFVQUxfVE8sXG4gICAgICAgIGV4YWN0aWdub3JlY2FzZSAgOiBhcHBMb2NhbGUuTEFCRUxfSVNfRVFVQUxfVE9fSUdOT1JFQ0FTRSxcbiAgICAgICAgbm90ZXF1YWxzICAgICAgICA6IGFwcExvY2FsZS5MQUJFTF9JU19OT1RfRVFVQUxfVE8sXG4gICAgICAgIG5vdGVxdWFsc2lnbm9yZWNhc2U6IGFwcExvY2FsZS5MQUJFTF9JU19OT1RfRVFVQUxfVE9fSUdOT1JFQ0FTRSxcbiAgICAgICAgbGVzc3RoYW4gICAgICAgICA6IGFwcExvY2FsZS5MQUJFTF9MRVNTX1RIQU4sXG4gICAgICAgIGxlc3N0aGFuZXF1YWwgICAgOiBhcHBMb2NhbGUuTEFCRUxfTEVTU19USEFOX09SX0VRVUFMU19UTyxcbiAgICAgICAgZ3JlYXRlcnRoYW4gICAgICA6IGFwcExvY2FsZS5MQUJFTF9HUkVBVEVSX1RIQU4sXG4gICAgICAgIGdyZWF0ZXJ0aGFuZXF1YWwgOiBhcHBMb2NhbGUuTEFCRUxfR1JFQVRFUl9USEFOX09SX0VRVUFMU19UTyxcbiAgICAgICAgbnVsbCAgICAgICAgICAgICA6IGFwcExvY2FsZS5MQUJFTF9JU19OVUxMLFxuICAgICAgICBpc25vdG51bGwgICAgICAgIDogYXBwTG9jYWxlLkxBQkVMX0lTX05PVF9OVUxMLFxuICAgICAgICBlbXB0eSAgICAgICAgICAgIDogYXBwTG9jYWxlLkxBQkVMX0lTX0VNUFRZLFxuICAgICAgICBpc25vdGVtcHR5ICAgICAgIDogYXBwTG9jYWxlLkxBQkVMX0lTX05PVF9FTVBUWSxcbiAgICAgICAgbnVsbG9yZW1wdHkgICAgICA6IGFwcExvY2FsZS5MQUJFTF9JU19OVUxMX09SX0VNUFRZLFxuICAgICAgICBpbiAgICAgICAgICAgICAgIDogYXBwTG9jYWxlLkxBQkVMX0lOLFxuICAgICAgICBub3RpbiAgICAgICAgICAgIDogYXBwTG9jYWxlLkxBQkVMX05PVF9JTixcbiAgICAgICAgYmV0d2VlbiAgICAgICAgICA6IGFwcExvY2FsZS5MQUJFTF9CRVRXRUVOXG4gICAgfTtcbn07XG5cbi8vIFJldHVybnMgYXJyYXkgb2YgY2xhc3NlcyB0aGF0IGFyZSBldmFsdWF0ZWQgdHJ1ZSBmb3IgZ2l2ZW4gb2JqZWN0IG9yIGFycmF5XG5jb25zdCBnZXRDbGFzc2VzQXJyYXkgPSBjbGFzc1ZhbCA9PiB7XG4gICAgbGV0IGNsYXNzZXMgPSBbXTtcblxuICAgIGlmIChpc0FycmF5KGNsYXNzVmFsKSkge1xuICAgICAgICBjbGFzc1ZhbC5mb3JFYWNoKHYgPT4ge1xuICAgICAgICAgICAgY2xhc3NlcyA9IGNsYXNzZXMuY29uY2F0KGdldENsYXNzZXNBcnJheSh2KSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gY2xhc3NlcztcbiAgICB9XG4gICAgaWYgKGlzT2JqZWN0KGNsYXNzVmFsKSkge1xuICAgICAgICBmb3JFYWNoKGNsYXNzVmFsLCAodmFsLCBrZXkpID0+IHtcbiAgICAgICAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgICAgICAgICBjbGFzc2VzID0gY2xhc3Nlcy5jb25jYXQoa2V5LnNwbGl0KCcgJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNsYXNzZXM7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbmRpdGlvbmFsQ2xhc3NlcyA9IChudiwgb3Y/KSA9PiB7XG4gICAgbGV0IHRvQWRkO1xuICAgIGxldCB0b1JlbW92ZTtcbiAgICAvLyBpZiB0aGUgY29uZGl0aW9uYWwgY2xhc3MgcHJvcGVydHkgaGFzIGFscmVhZHkgdG9BZGQgYW5kIHRvUmVtb3ZlIGFycmF5cyB0aGVuIHRha2UgdGhhdCBvdGhlcndpc2UgYnVpbGQgdGhvc2UgYXJyYXlzXG4gICAgY29uc3QgY2xhc3NUb0FkZCA9IG52LnRvQWRkIHx8IG52O1xuICAgIGNvbnN0IGNsYXNzVG9SZW1vdmUgPSBudi50b1JlbW92ZSB8fCBvdjtcbiAgICBpZiAoaXNPYmplY3QobnYpKSB7XG4gICAgICAgIHRvQWRkID0gaXNBcnJheShjbGFzc1RvQWRkKSA/IGNsYXNzVG9BZGQgOiBnZXRDbGFzc2VzQXJyYXkoY2xhc3NUb0FkZCB8fCBbXSk7XG4gICAgICAgIHRvUmVtb3ZlID0gY2xhc3NUb1JlbW92ZSA/IChpc0FycmF5KGNsYXNzVG9SZW1vdmUpID8gY2xhc3NUb1JlbW92ZSA6IGdldENsYXNzZXNBcnJheShjbGFzc1RvUmVtb3ZlKSkgOiBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0b0FkZCA9IGNsYXNzVG9BZGQgPyBbY2xhc3NUb0FkZF0gOiBbXTtcbiAgICAgICAgdG9SZW1vdmUgPSBjbGFzc1RvUmVtb3ZlID8gW2NsYXNzVG9SZW1vdmVdIDogW107XG4gICAgfVxuICAgIHJldHVybiB7dG9BZGQsIHRvUmVtb3ZlfTtcbn07XG5cbi8qaGVscGVyIGZ1bmN0aW9uIGZvciBwcmVwYXJlRmllbGREZWZzKi9cbmNvbnN0IHB1c2hGaWVsZERlZiA9IChkYXRhT2JqZWN0LCBjb2x1bW5EZWZPYmosIG5hbWVQcmVmaXgsIG9wdGlvbnMpID0+IHtcbiAgICAvKmxvb3Agb3ZlciB0aGUgZmllbGRzIGluIHRoZSBkYXRhT2JqZWN0IHRvIHByb2Nlc3MgdGhlbSovXG4gICAgbGV0IG1vZGlmaWVkVGl0bGUsXG4gICAgICAgIHJlbGF0ZWRUYWJsZSxcbiAgICAgICAgcmVsYXRlZEZpZWxkLFxuICAgICAgICByZWxhdGVkSW5mbyxcbiAgICAgICAgZmllbGROYW1lLFxuICAgICAgICBpc1JlbGF0ZWQ7XG4gICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICB9XG4gICAgZm9yRWFjaChkYXRhT2JqZWN0LCAodmFsdWUsIHRpdGxlKSA9PiB7XG4gICAgICAgIGlmIChpbmNsdWRlcyh0aXRsZSwgJy4nKSkge1xuICAgICAgICAgICAgcmVsYXRlZEluZm8gPSBzcGxpdCh0aXRsZSwgJy4nKTtcbiAgICAgICAgICAgIHJlbGF0ZWRUYWJsZSA9IHJlbGF0ZWRJbmZvWzBdO1xuICAgICAgICAgICAgcmVsYXRlZEZpZWxkID0gcmVsYXRlZEluZm9bMV07XG4gICAgICAgICAgICBpc1JlbGF0ZWQgICAgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLm5vTW9kaWZ5VGl0bGUpIHtcbiAgICAgICAgICAgIG1vZGlmaWVkVGl0bGUgPSB0aXRsZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChpc1N0cmluZyh0aXRsZSkpIHtcbiAgICAgICAgICAgICAgICBtb2RpZmllZFRpdGxlID0gcHJldHRpZnlMYWJlbCh0aXRsZSk7XG4gICAgICAgICAgICAgICAgbW9kaWZpZWRUaXRsZSA9IGRlSHlwaGVuYXRlKG1vZGlmaWVkVGl0bGUpO1xuICAgICAgICAgICAgICAgIG1vZGlmaWVkVGl0bGUgPSBuYW1lUHJlZml4ID8gaW5pdENhcHMobmFtZVByZWZpeCkgKyAnICcgKyBtb2RpZmllZFRpdGxlIDogbW9kaWZpZWRUaXRsZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9kaWZpZWRUaXRsZSA9IHRpdGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRpdGxlID0gbmFtZVByZWZpeCA/IG5hbWVQcmVmaXggKyAnLicgKyB0aXRsZSA6IHRpdGxlO1xuICAgICAgICBpZiAoaXNSZWxhdGVkKSB7XG4gICAgICAgICAgICAvLyBGb3IgcmVsYXRlZCBjb2x1bW5zLCBzaG9ydGVuIHRoZSB0aXRsZSB0byBsYXN0IHR3byB3b3Jkc1xuICAgICAgICAgICAgZmllbGROYW1lID0gc3BsaXQobW9kaWZpZWRUaXRsZSwgJyAnKTtcbiAgICAgICAgICAgIGZpZWxkTmFtZSA9IGZpZWxkTmFtZS5sZW5ndGggPiAxID8gZmllbGROYW1lW2ZpZWxkTmFtZS5sZW5ndGggLSAyXSArICcgJyArIGZpZWxkTmFtZVtmaWVsZE5hbWUubGVuZ3RoIC0gMV0gOiBmaWVsZE5hbWVbMF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWVsZE5hbWUgPSBtb2RpZmllZFRpdGxlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRlZk9iaiA9IG9wdGlvbnMuc2V0QmluZGluZ0ZpZWxkID8geydkaXNwbGF5TmFtZSc6IGZpZWxkTmFtZSwgJ2ZpZWxkJzogdGl0bGUsICdyZWxhdGVkVGFibGUnOiByZWxhdGVkVGFibGUsICdyZWxhdGVkRmllbGQnOiByZWxhdGVkRmllbGQgfHwgbW9kaWZpZWRUaXRsZX1cbiAgICAgICAgOiB7J2Rpc3BsYXlOYW1lJzogZmllbGROYW1lLCAncmVsYXRlZFRhYmxlJzogcmVsYXRlZFRhYmxlLCAncmVsYXRlZEZpZWxkJzogcmVsYXRlZEZpZWxkIHx8IG1vZGlmaWVkVGl0bGV9O1xuICAgICAgICAvKmlmIGZpZWxkIGlzIGEgbGVhZiBub2RlLCBwdXNoIGl0IGluIHRoZSBjb2x1bW5EZWZzKi9cbiAgICAgICAgaWYgKCFpc09iamVjdCh2YWx1ZSkgfHwgKGlzQXJyYXkodmFsdWUpICYmICF2YWx1ZVswXSkpIHtcbiAgICAgICAgICAgIC8qaWYgdGhlIGNvbHVtbiBjb3VudGVyIGhhcyByZWFjaGVkIHVwcGVyQm91bmQgcmV0dXJuKi9cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnVwcGVyQm91bmQgJiYgb3B0aW9ucy5jb2x1bW5Db3VudCA9PT0gb3B0aW9ucy51cHBlckJvdW5kKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29sdW1uRGVmT2JqLnRlcm1pbmFscy5wdXNoKGRlZk9iaik7XG4gICAgICAgICAgICAvKmluY3JlbWVudCB0aGUgY29sdW1uIGNvdW50ZXIqL1xuICAgICAgICAgICAgb3B0aW9ucy5jb2x1bW5Db3VudCArPSAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLyplbHNlIGZpZWxkIGlzIGFuIG9iamVjdCwgcHJvY2VzcyBpdCByZWN1cnNpdmVseSovXG4gICAgICAgICAgICAvKiBpZiBwYXJlbnQgbm9kZSB0byBiZSBpbmNsdWRlZCwgaW5jbHVkZSBpdCAqL1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuY29sdW1uQ291bnQgIT09IG9wdGlvbnMudXBwZXJCb3VuZCkge1xuICAgICAgICAgICAgICAgIGNvbHVtbkRlZk9iai5vYmplY3RzLnB1c2goZGVmT2JqKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogaWYgZmllbGQgaXMgYW4gYXJyYXkgbm9kZSwgcHJvY2VzcyBpdHMgZmlyc3QgY2hpbGQgKi9cbiAgICAgICAgICAgIGlmIChpc0FycmF5KHZhbHVlKSAmJiB2YWx1ZVswXSkge1xuICAgICAgICAgICAgICAgIHB1c2hGaWVsZERlZih2YWx1ZVswXSwgY29sdW1uRGVmT2JqLCB0aXRsZSArICdbMF0nLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcHVzaEZpZWxkRGVmKHZhbHVlLCBjb2x1bW5EZWZPYmosIHRpdGxlLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufTtcblxuY29uc3QgZ2V0TWV0YURhdGFGcm9tRGF0YSA9IChkYXRhKSA9PiB7XG4gICAgbGV0IGRhdGFPYmplY3Q7XG4gICAgaWYgKGlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgaWYgKGlzT2JqZWN0KGRhdGFbMF0pKSB7XG4gICAgICAgICAgICBkYXRhT2JqZWN0ID0gZ2V0Q2xvbmVkT2JqZWN0KGRhdGFbMF0pO1xuICAgICAgICAgICAgLypMb29wIG92ZXIgdGhlIG9iamVjdCB0byBmaW5kIG91dCBhbnkgbnVsbCB2YWx1ZXMuIElmIGFueSBudWxsIHZhbHVlcyBhcmUgcHJlc2VudCBpbiB0aGUgZmlyc3Qgcm93LCBjaGVjayBhbmQgYXNzaWduIHRoZSB2YWx1ZXMgZnJvbSBvdGhlciByb3cuXG4gICAgICAgICAgICAgKiBBcyBjb2x1bW4gZ2VuZXJhdGlvbiBpcyBkZXBlbmRlbnQgb24gZGF0YSwgZm9yIHJlbGF0ZWQgZmllbGRzIGlmIGZpcnN0IHJvdyB2YWx1ZSBpcyBudWxsLCBjb2x1bW5zIGFyZSBub3QgZ2VuZXJhdGVkLlxuICAgICAgICAgICAgICogVG8gcHJldmVudCB0aGlzLCBjaGVjayB0aGUgZGF0YSBpbiBvdGhlciByb3dzIGFuZCBnZW5lcmF0ZSB0aGUgY29sdW1ucy4gTmV3IGtleXMgZnJvbSBvdGhlcnMgcm93cyBhcmUgYWxzbyBhZGRlZCovXG4gICAgICAgICAgICBmb3JFYWNoKGRhdGEsIChyb3csIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKChpbmRleCArIDEpID49IDEwKSB7IC8vIExpbWl0IHRoZSBkYXRhIHNlYXJjaCB0byBmaXJzdCAxMCByZWNvcmRzXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXNzaWduV2l0aChkYXRhT2JqZWN0LCByb3csIChvYmpWYWx1ZSwgc3JjVmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChvYmpWYWx1ZSA9PT0gbnVsbCB8fCBvYmpWYWx1ZSA9PT0gdW5kZWZpbmVkKSA/IHNyY1ZhbHVlIDogb2JqVmFsdWU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGFPYmplY3QgPSBkYXRhWzBdO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZGF0YU9iamVjdCA9IGRhdGE7XG4gICAgfVxuICAgIHJldHVybiBkYXRhT2JqZWN0O1xufTtcblxuZXhwb3J0IGNvbnN0IHByZXBhcmVGaWVsZERlZnMgPSAoZGF0YSwgb3B0aW9ucz8pID0+IHtcbiAgICBsZXQgZGF0YU9iamVjdDtcbiAgICBjb25zdCBjb2x1bW5EZWYgPSB7XG4gICAgICAgICAgICAnb2JqZWN0cycgOiBbXSxcbiAgICAgICAgICAgICd0ZXJtaW5hbHMnIDogW11cbiAgICAgICAgfTtcbiAgICAvKmlmIG5vIGRhdGEgcHJvdmlkZWQsIGluaXRpYWxpemUgZGVmYXVsdCBjb2x1bW4gZGVmaW5pdGlvbnMqL1xuICAgIGlmICghZGF0YSkge1xuICAgICAgICBkYXRhID0gW107XG4gICAgfVxuICAgIGlmICghb3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0ge307XG4gICAgfVxuICAgIG9wdGlvbnMuc2V0QmluZGluZ0ZpZWxkID0gdHJ1ZTtcbiAgICBvcHRpb25zLmNvbHVtbkNvdW50ID0gMDtcbiAgICBkYXRhT2JqZWN0ID0gZ2V0TWV0YURhdGFGcm9tRGF0YShkYXRhKTtcbiAgICAvKmZpcnN0IG9mIHRoZSBtYW55IGRhdGEgb2JqZWN0cyBmcm9tIGdyaWQgZGF0YSovXG4gICAgcHVzaEZpZWxkRGVmKGRhdGFPYmplY3QsIGNvbHVtbkRlZiwgJycsIG9wdGlvbnMpO1xuICAgIGlmICghb3B0aW9ucyB8fCAob3B0aW9ucyAmJiAhb3B0aW9ucy5maWx0ZXIpKSB7XG4gICAgICAgIHJldHVybiBjb2x1bW5EZWYudGVybWluYWxzO1xuICAgIH1cbiAgICBzd2l0Y2ggKG9wdGlvbnMuZmlsdGVyKSB7XG4gICAgICAgIGNhc2UgJ2FsbCc6XG4gICAgICAgICAgICByZXR1cm4gY29sdW1uRGVmO1xuICAgICAgICBjYXNlICdvYmplY3RzJzpcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW5EZWYub2JqZWN0cztcbiAgICAgICAgY2FzZSAndGVybWluYWxzJzpcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW5EZWYudGVybWluYWxzO1xuICAgIH1cbiAgICByZXR1cm4gY29sdW1uRGVmO1xufTtcblxuXG4vKipcbiAqIFRvIGdldCBjb250YWluZXIgdGFyZ2V0IGVsZW1lbnQgdG8gYXBwZW5kIHRoZSBsaXN0IGZvciBzZWFyY2ggYW5kIGRhdGVwaWNrZXIgcGFuZWwgd2hlbiBmaWVsZCBwcmVzZW50IGluIGRpYWxvZ1xuICovXG5leHBvcnQgY29uc3QgZ2V0Q29udGFpbmVyVGFyZ2V0Q2xhc3MgPSAoZWxlbWVudCkgPT4ge1xuICAgIHJldHVybiAnLndtLWFwcCc7XG5cbiAgICAvLyBCZWxvdyBjb2RlIGlzIG5vdCB3b3JraW5nIHdoZW4gd2UgaGF2ZSBuZXN0ZWQgZGlhbG9ncy5cbiAgICAvLyBOZXN0ZWQgZGlhbG9ncyBjYXNlIHdlIHdpbGwgaGF2ZSAgbXVsdGlwbGUgJy5tb2RhbC1jb250ZW50JyBjbGFzc2VzIG9uIERPTSBkdWUgdG8gdGhhdCBjb250YWluZXIgcG9zaXRpb25zIGlzIG5vdCB3b3JraW5nIGFzIGV4cGVjdGVkLlxuICAgIC8vIEJlbG93IGNvZGUgdG8gZml4IHRoZSBpc3N1ZSA9PT4gV01TLTE4NzUxXG4gICAgLy8gQXMgcmVncmVzc2lvbiB3ZSBnb3QgPT0+IFdNUy0xOTgzNVxuXG4gICAgLy8gaWYgKGVsZW1lbnQuY2xvc2VzdCgnLm1vZGFsLWRpYWxvZycpKSB7XG4gICAgLy8gICAgIHJldHVybiAnLm1vZGFsLWNvbnRlbnQnO1xuICAgIC8vIH0gZWxzZSB7XG4gICAgLy8gICAgIHJldHVybiAnYm9keSc7XG4gICAgLy8gfVxuXG59XG5cbi8qKlxuICogVG8gZXh0cmFjdCB0aGUgVmFyaWFibGUgTmFtZSBmcm9tIGEgV2lkZ2V0J3MgYmluZGRhdGFzb3VyY2UgYXR0cmlidXRlXG4gKi9cbmV4cG9ydCBjb25zdCBleHRyYWN0RGF0YVNvdXJjZU5hbWUgPSAoYmluZERhdGFTb3VyY2UpID0+IHtcbiAgICBpZiAoIWJpbmREYXRhU291cmNlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGRhdGFTb3VyY2VOYW1lO1xuICAgIGNvbnN0IHBhcnRzID0gYmluZERhdGFTb3VyY2Uuc3BsaXQoJy4nKTtcbiAgICBpZiAocGFydHMubGVuZ3RoID4gMSAmJiBwYXJ0c1swXSA9PT0gJ1ZhcmlhYmxlcycpIHtcbiAgICAgICAgZGF0YVNvdXJjZU5hbWUgPSBwYXJ0c1sxXTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGFTb3VyY2VOYW1lO1xufVxuXG5leHBvcnQgY29uc3Qgc2V0Rm9jdXNUcmFwID0gKGNvbnRhaW5lciwgYWxsb3dPdXRzaWRlQ2xpY2ssIHNldFJldHVybkZvY3VzRWxlbWVudD8pID0+IHtcbiAgICByZXR1cm4gY3JlYXRlRm9jdXNUcmFwKGNvbnRhaW5lciwge1xuICAgICAgICBvbkFjdGl2YXRlOiAoKSA9PiBjb250YWluZXIuY2xhc3NMaXN0LmFkZCgnaXMtYWN0aXZlJyksXG4gICAgICAgIG9uRGVhY3RpdmF0ZTogKCkgPT4gY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2lzLWFjdGl2ZScpLFxuICAgICAgICBhbGxvd091dHNpZGVDbGljazogYWxsb3dPdXRzaWRlQ2xpY2ssXG4gICAgICAgIHNldFJldHVybkZvY3VzOiBzZXRSZXR1cm5Gb2N1c0VsZW1lbnQsXG4gICAgfSk7XG59XG5cbi8qKlxuICogR2V0cyBrZXlib2FyZCBmb2N1c2FibGUgZWxlbWVudHMgd2l0aGluIGEgc3BlY2lmaWVkIGVsZW1lbnRcbiAqIEBwYXJhbSBlbGVtZW50IHtIVE1MRWxlbWVudH1cbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEtleWJvYXJkRm9jdXNhYmxlRWxlbWVudHMgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBlbGVtZW50Tm9kZUxpc3QgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2EsIGJ1dHRvbiwgaW5wdXQsIHRleHRhcmVhLCBzZWxlY3QsIGRldGFpbHMsIGlmcmFtZSwgZW1iZWQsIG9iamVjdCwgc3VtbWFyeSBkaWFsb2csIGF1ZGlvW2NvbnRyb2xzXSwgdmlkZW9bY29udHJvbHNdLCBbY29udGVudGVkaXRhYmxlXScpO1xuICAgIGNvbnN0IGVsZW1lbnRzID0gQXJyYXkuZnJvbShlbGVtZW50Tm9kZUxpc3QpO1xuICAgIHJldHVybiBlbGVtZW50cy5maWx0ZXIoZWwgPT4ge1xuICAgICAgICByZXR1cm4gKCFlbC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgJiYgIWVsLmhhc0F0dHJpYnV0ZSgnaGlkZGVuJylcbiAgICAgICAgICAgICYmICghZWwuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpIHx8IChlbC5oYXNBdHRyaWJ1dGUoJ3RhYmluZGV4JykgJiYgIWVsLmdldEF0dHJpYnV0ZShcInRhYmluZGV4XCIpLnN0YXJ0c1dpdGgoJy0nKSkpKTtcbiAgICB9KTtcbn1cbiJdfQ==
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { ContentChildren, Directive, Injector } from '@angular/core';
|
|
2
2
|
import { StylableComponent } from "./stylable.component";
|
|
3
3
|
import { RedrawableDirective } from "../redraw/redrawable.directive";
|
|
4
|
+
import { includes, pickBy } from "lodash-es";
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export class BaseContainerComponent extends StylableComponent {
|
|
6
|
-
constructor(inj, WIDGET_CONFIG) {
|
|
7
|
-
super(inj, WIDGET_CONFIG);
|
|
7
|
+
constructor(inj, WIDGET_CONFIG, explicitContext) {
|
|
8
|
+
super(inj, WIDGET_CONFIG, explicitContext);
|
|
8
9
|
}
|
|
9
10
|
updateRedrawableComponents(widgets) {
|
|
10
|
-
|
|
11
|
+
pickBy(widgets, widget => {
|
|
11
12
|
// check for redrawable widget and whether it is already exist in reDrawableComponents query list or not
|
|
12
|
-
if (widget && widget.nativeElement && widget.nativeElement.hasAttribute('redrawable') && !
|
|
13
|
+
if (widget && widget.nativeElement && widget.nativeElement.hasAttribute('redrawable') && !includes(this.reDrawableComponents._results, widget)) {
|
|
13
14
|
this.reDrawableComponents._results.push(widget);
|
|
14
15
|
}
|
|
15
16
|
if (widget && widget.Widgets) {
|
|
@@ -44,10 +45,10 @@ export class BaseContainerComponent extends StylableComponent {
|
|
|
44
45
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.reDrawableComponents = _t);
|
|
45
46
|
} }, features: [i0.ɵɵInheritDefinitionFeature] }); }
|
|
46
47
|
}
|
|
47
|
-
(
|
|
48
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseContainerComponent, [{
|
|
48
49
|
type: Directive
|
|
49
|
-
}],
|
|
50
|
+
}], () => [{ type: i0.Injector }, { type: undefined }, { type: undefined }], { reDrawableComponents: [{
|
|
50
51
|
type: ContentChildren,
|
|
51
52
|
args: [RedrawableDirective, { descendants: true }]
|
|
52
53
|
}] }); })();
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9iYXNlL3NyYy93aWRnZXRzL2NvbW1vbi9iYXNlL2Jhc2UtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLFNBQVMsRUFBVSxRQUFRLEVBQVcsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFckUsT0FBTyxFQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBRzNDLE1BQU0sT0FBZ0Isc0JBQXVCLFNBQVEsaUJBQWlCO0lBTWxFLFlBQVksR0FBYSxFQUFFLGFBQTRCLEVBQUUsZUFBb0I7UUFDekUsS0FBSyxDQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVPLDBCQUEwQixDQUFDLE9BQU87UUFDdEMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRTtZQUNyQix3R0FBd0c7WUFDeEcsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLGFBQWEsSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQzdJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELENBQUM7WUFDRCxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEQsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGNBQWM7UUFDbEIsK0ZBQStGO1FBQy9GLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUN2RCxDQUFDO1FBQ0wsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVELGdCQUFnQixDQUFDLEdBQVcsRUFBRSxFQUFPLEVBQUUsRUFBUTtRQUMzQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwQyxJQUFJLEdBQUcsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNqQixJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUNMLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMxQixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7O29FQXpDaUIsc0JBQXNCO3dDQUV2QixtQkFBbUI7Ozs7OztpRkFGbEIsc0JBQXNCO2NBRDNDLFNBQVM7bUZBR3VELG9CQUFvQjtrQkFBaEYsZUFBZTttQkFBQyxtQkFBbUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBJbmplY3QsIEluamVjdG9yLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdHlsYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuL3N0eWxhYmxlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUmVkcmF3YWJsZURpcmVjdGl2ZSB9IGZyb20gXCIuLi9yZWRyYXcvcmVkcmF3YWJsZS5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IElXaWRnZXRDb25maWcgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvdHlwZXMnO1xuaW1wb3J0IHtpbmNsdWRlcywgcGlja0J5fSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDb250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCB7XG4gICAgLy8gcmVmZXJlbmNlIHRvIHRoZSBjb21wb25lbnRzIHdoaWNoIG5lZWRzIGEgcmVkcmF3KGVnLCBncmlkLCBjaGFydCkgd2hlbiB0aGUgc2hvdyBvZiB0aGlzIGNvbXBvbmVudCBjaGFuZ2VzXG4gICAgQENvbnRlbnRDaGlsZHJlbihSZWRyYXdhYmxlRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHJlRHJhd2FibGVDb21wb25lbnRzO1xuICAgIHB1YmxpYyBjb250ZW50O1xuICAgIHB1YmxpYyBXaWRnZXRzO1xuXG4gICAgY29uc3RydWN0b3IoaW5qOiBJbmplY3RvciwgV0lER0VUX0NPTkZJRzogSVdpZGdldENvbmZpZywgZXhwbGljaXRDb250ZXh0OiBhbnkpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUmVkcmF3YWJsZUNvbXBvbmVudHMod2lkZ2V0cykge1xuICAgICAgICBwaWNrQnkod2lkZ2V0cywgd2lkZ2V0ID0+IHtcbiAgICAgICAgICAgIC8vIGNoZWNrIGZvciByZWRyYXdhYmxlIHdpZGdldCBhbmQgd2hldGhlciBpdCBpcyBhbHJlYWR5IGV4aXN0IGluIHJlRHJhd2FibGVDb21wb25lbnRzIHF1ZXJ5IGxpc3Qgb3Igbm90XG4gICAgICAgICAgICBpZiAod2lkZ2V0ICYmIHdpZGdldC5uYXRpdmVFbGVtZW50ICYmIHdpZGdldC5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZSgncmVkcmF3YWJsZScpICYmICFpbmNsdWRlcyh0aGlzLnJlRHJhd2FibGVDb21wb25lbnRzLl9yZXN1bHRzLCB3aWRnZXQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZURyYXdhYmxlQ29tcG9uZW50cy5fcmVzdWx0cy5wdXNoKHdpZGdldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAod2lkZ2V0ICYmIHdpZGdldC5XaWRnZXRzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVSZWRyYXdhYmxlQ29tcG9uZW50cyh3aWRnZXQuV2lkZ2V0cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVkcmF3Q2hpbGRyZW4oKSB7XG4gICAgICAgIC8vIElmIGNvbnRhaW5lciBpcyBib3VuZCB0byBwYXJ0aWFsIGNvbnRlbnQsIG1hbnVhbGx5IHVwZGF0aW5nIHJlRHJhd2FibGVDb21wb25lbnRzIHF1ZXJ5IGxpc3QuXG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnQgJiYgdGhpcy5XaWRnZXRzKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVJlZHJhd2FibGVDb21wb25lbnRzKHRoaXMuV2lkZ2V0cyk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5yZURyYXdhYmxlQ29tcG9uZW50cykge1xuICAgICAgICAgICAgICAgIHRoaXMucmVEcmF3YWJsZUNvbXBvbmVudHMuZm9yRWFjaChjID0+IGMucmVkcmF3KCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAxMDApO1xuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICBpZiAoa2V5ID09PSAnc2hvdycpIHtcbiAgICAgICAgICAgIGlmIChudikge1xuICAgICAgICAgICAgICAgIHRoaXMucmVkcmF3Q2hpbGRyZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|