@wavemaker/app-ng-runtime 11.8.0-next.139432 → 11.8.0-next.141156
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/bundles/index.umd.js +10 -12
- app-ng-runtime/build-task/esm2022/advanced/carousel/carousel-template/carousel-template.build.mjs +2 -4
- 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 +2 -4
- 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 +2 -5
- 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 +1 -1
- app-ng-runtime/build-task/esm2022/utils/utils.mjs +1 -1
- app-ng-runtime/build-task/fesm2022/index.mjs +11 -13
- app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +11 -21
- app-ng-runtime/components/advanced/carousel/carousel-template/carousel-template.directive.d.ts +2 -2
- 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 +7 -12
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +1 -1
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.directive.mjs +7 -12
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.module.mjs +2 -2
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +13 -23
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/login/bundles/index.umd.js +8 -14
- app-ng-runtime/components/advanced/login/esm2022/login.component.mjs +9 -15
- app-ng-runtime/components/advanced/login/esm2022/login.module.mjs +2 -2
- app-ng-runtime/components/advanced/login/fesm2022/index.mjs +10 -16
- 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/bundles/index.umd.js +6 -11
- app-ng-runtime/components/advanced/marquee/esm2022/marquee.directive.mjs +7 -12
- app-ng-runtime/components/advanced/marquee/esm2022/marquee.module.mjs +2 -2
- app-ng-runtime/components/advanced/marquee/fesm2022/index.mjs +8 -13
- 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/bundles/index.umd.js +104 -159
- app-ng-runtime/components/base/esm2022/components.module.mjs +2 -2
- app-ng-runtime/components/base/esm2022/directives/show-in-device.directive.mjs +4 -4
- app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +24 -24
- 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 +1 -1
- app-ng-runtime/components/base/esm2022/utils/data-utils.mjs +2 -2
- app-ng-runtime/components/base/esm2022/utils/form-utils.mjs +2 -2
- app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +1 -1
- app-ng-runtime/components/base/esm2022/utils/widget-utils.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/common/base/base-container.component.mjs +5 -5
- app-ng-runtime/components/base/esm2022/widgets/common/base/base-field-validations.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +7 -32
- app-ng-runtime/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +5 -13
- app-ng-runtime/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +4 -4
- 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 +7 -12
- app-ng-runtime/components/base/esm2022/widgets/common/dialog/dialog.service.mjs +3 -3
- app-ng-runtime/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +7 -12
- app-ng-runtime/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +3 -3
- app-ng-runtime/components/base/esm2022/widgets/common/message/message.component.mjs +10 -16
- app-ng-runtime/components/base/esm2022/widgets/common/partial/partial.directive.mjs +7 -12
- app-ng-runtime/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +7 -7
- 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 +7 -12
- app-ng-runtime/components/base/esm2022/widgets/common/smooth-scroll/smooth-scroll.directive.mjs +6 -6
- app-ng-runtime/components/base/esm2022/widgets/framework/deviceview.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/framework/property-change-handler.mjs +1 -1
- 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 +1 -1
- app-ng-runtime/components/base/esm2022/widgets/framework/widget-registry.mjs +1 -1
- app-ng-runtime/components/base/fesm2022/index.mjs +100 -157
- app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/utils/data-utils.d.ts +1 -0
- app-ng-runtime/components/base/widgets/common/base/base-container.component.d.ts +1 -1
- app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +2 -4
- app-ng-runtime/components/base/widgets/common/base/dataset-aware-nav.component.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/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 +2 -2
- 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 +106 -149
- app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +27 -31
- app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +7 -13
- app-ng-runtime/components/basic/default/esm2022/basic.module.mjs +2 -2
- app-ng-runtime/components/basic/default/esm2022/html/html.directive.mjs +8 -13
- app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +14 -19
- app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +9 -15
- app-ng-runtime/components/basic/default/esm2022/label/label.directive.mjs +7 -12
- app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +7 -12
- app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +1 -1
- app-ng-runtime/components/basic/default/esm2022/spinner/spinner.component.mjs +27 -30
- app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +17 -21
- app-ng-runtime/components/basic/default/fesm2022/index.mjs +108 -151
- 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/bundles/index.umd.js +17 -29
- app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +13 -19
- app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +7 -13
- app-ng-runtime/components/basic/progress/esm2022/progress.module.mjs +2 -2
- app-ng-runtime/components/basic/progress/esm2022/utils.mjs +1 -1
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs +19 -31
- 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/bundles/index.umd.js +5 -6
- app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +5 -6
- 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 +6 -7
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/search/bundles/index.umd.js +111 -120
- 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 +1 -1
- app-ng-runtime/components/basic/search/esm2022/data-provider/remote-data-provider.mjs +1 -1
- app-ng-runtime/components/basic/search/esm2022/scrollable.directive.mjs +3 -3
- app-ng-runtime/components/basic/search/esm2022/search.component.mjs +110 -119
- app-ng-runtime/components/basic/search/esm2022/search.module.mjs +2 -2
- app-ng-runtime/components/basic/search/fesm2022/index.mjs +112 -121
- 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/bundles/index.umd.js +9 -15
- app-ng-runtime/components/basic/tree/esm2022/tree.component.mjs +10 -16
- app-ng-runtime/components/basic/tree/esm2022/tree.module.mjs +2 -2
- app-ng-runtime/components/basic/tree/fesm2022/index.mjs +11 -17
- 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/bundles/index.umd.js +22 -26
- app-ng-runtime/components/chart/chart.component.d.ts +2 -2
- app-ng-runtime/components/chart/esm2022/chart.component.mjs +22 -26
- app-ng-runtime/components/chart/esm2022/chart.module.mjs +2 -2
- app-ng-runtime/components/chart/esm2022/chart.utils.mjs +1 -1
- app-ng-runtime/components/chart/fesm2022/index.mjs +23 -27
- app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
- 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 +24 -35
- app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +17 -23
- 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 +7 -12
- app-ng-runtime/components/containers/accordion/esm2022/accordion.module.mjs +2 -2
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +26 -37
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/layout-grid/bundles/index.umd.js +17 -32
- app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid-column/layout-grid-column.directive.mjs +8 -13
- app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid-row/layout-grid-row.directive.mjs +7 -12
- app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid.directive.mjs +7 -12
- app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid.module.mjs +2 -2
- app-ng-runtime/components/containers/layout-grid/fesm2022/index.mjs +19 -34
- 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/bundles/index.umd.js +11 -21
- app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout-item/linear-layout-item.directive.mjs +7 -12
- app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout.directive.mjs +7 -12
- app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout.module.mjs +2 -2
- app-ng-runtime/components/containers/linear-layout/fesm2022/index.mjs +13 -23
- 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/bundles/index.umd.js +80 -80
- app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +81 -81
- app-ng-runtime/components/containers/panel/esm2022/panel.module.mjs +2 -2
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs +82 -82
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/panel.component.d.ts +2 -2
- app-ng-runtime/components/containers/tabs/bundles/index.umd.js +47 -58
- app-ng-runtime/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +8 -14
- 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 +39 -44
- 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 +49 -60
- 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/bundles/index.umd.js +6 -11
- app-ng-runtime/components/containers/tile/esm2022/tile.directive.mjs +7 -12
- app-ng-runtime/components/containers/tile/esm2022/tile.module.mjs +2 -2
- app-ng-runtime/components/containers/tile/fesm2022/index.mjs +8 -13
- 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/bundles/index.umd.js +98 -102
- app-ng-runtime/components/containers/wizard/esm2022/wizard-step/wizard-step.directive.mjs +8 -13
- app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +93 -92
- app-ng-runtime/components/containers/wizard/esm2022/wizard.module.mjs +2 -2
- app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +100 -104
- 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/bundles/index.umd.js +50 -70
- 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 +7 -12
- app-ng-runtime/components/data/card/esm2022/card-content/card-content.component.mjs +9 -15
- app-ng-runtime/components/data/card/esm2022/card-footer/card-footer.directive.mjs +7 -12
- app-ng-runtime/components/data/card/esm2022/card.component.mjs +34 -38
- app-ng-runtime/components/data/card/esm2022/card.module.mjs +2 -2
- app-ng-runtime/components/data/card/fesm2022/index.mjs +52 -72
- app-ng-runtime/components/data/card/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/bundles/index.umd.js +115 -127
- app-ng-runtime/components/data/form/esm2022/form-action/form-action.directive.mjs +8 -13
- app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +7 -13
- 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 +84 -87
- 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 +5 -5
- app-ng-runtime/components/data/form/esm2022/live-form/live-form.directive.mjs +8 -6
- app-ng-runtime/components/data/form/fesm2022/index.mjs +117 -129
- 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 +2 -2
- app-ng-runtime/components/data/list/bundles/index.umd.js +142 -142
- app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +4 -4
- app-ng-runtime/components/data/list/esm2022/list.animator.mjs +1 -1
- app-ng-runtime/components/data/list/esm2022/list.component.mjs +140 -140
- app-ng-runtime/components/data/list/esm2022/list.module.mjs +2 -2
- app-ng-runtime/components/data/list/fesm2022/index.mjs +144 -144
- app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/list/list.component.d.ts +2 -2
- app-ng-runtime/components/data/live-table/bundles/index.umd.js +7 -13
- app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +8 -14
- app-ng-runtime/components/data/live-table/esm2022/live-table.module.mjs +2 -2
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs +9 -15
- 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/bundles/index.umd.js +96 -98
- app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +97 -99
- app-ng-runtime/components/data/pagination/esm2022/pagination.module.mjs +2 -2
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs +98 -100
- 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/bundles/index.umd.js +106 -128
- app-ng-runtime/components/data/table/esm2022/table-action/table-action.directive.mjs +8 -13
- app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +17 -13
- 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 +8 -13
- app-ng-runtime/components/data/table/esm2022/table-cud.directive.mjs +4 -4
- app-ng-runtime/components/data/table/esm2022/table-filter.directive.mjs +4 -4
- app-ng-runtime/components/data/table/esm2022/table-row/table-row.directive.mjs +8 -13
- app-ng-runtime/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +7 -12
- app-ng-runtime/components/data/table/esm2022/table.component.mjs +60 -66
- 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 +108 -130
- 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 +2 -2
- 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 +2 -2
- 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 +9 -15
- app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +10 -16
- app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +11 -17
- app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +11 -17
- 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 +12 -18
- app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +13 -19
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/default/base-dialog.d.ts +2 -2
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +69 -73
- 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 +8 -13
- 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 +7 -12
- app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +55 -49
- app-ng-runtime/components/dialogs/default/esm2022/dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +71 -75
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +14 -20
- 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 +15 -21
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +16 -22
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +14 -20
- app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +15 -21
- app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +16 -22
- 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/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/bundles/index.umd.js +10 -16
- app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +11 -17
- app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +12 -18
- 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/bundles/index.umd.js +8 -14
- app-ng-runtime/components/input/calendar/calendar.component.d.ts +2 -2
- app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +9 -15
- app-ng-runtime/components/input/calendar/esm2022/calendar.module.mjs +2 -2
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs +10 -16
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/chips/bundles/index.umd.js +34 -41
- app-ng-runtime/components/input/chips/chips.component.d.ts +2 -2
- app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +35 -42
- app-ng-runtime/components/input/chips/esm2022/chips.module.mjs +2 -2
- app-ng-runtime/components/input/chips/fesm2022/index.mjs +35 -42
- app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/color-picker/bundles/index.umd.js +11 -24
- 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 +12 -25
- app-ng-runtime/components/input/color-picker/esm2022/color-picker.module.mjs +2 -2
- app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +12 -25
- app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/currency/bundles/index.umd.js +11 -18
- app-ng-runtime/components/input/currency/currency.component.d.ts +2 -2
- app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +12 -19
- app-ng-runtime/components/input/currency/esm2022/currency.module.mjs +2 -2
- app-ng-runtime/components/input/currency/fesm2022/index.mjs +12 -19
- app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/bundles/index.umd.js +416 -540
- 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 +2 -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/esm2022/base-form-custom.component.mjs +3 -3
- app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +4 -4
- app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +28 -32
- app-ng-runtime/components/input/default/esm2022/button-group/button-group.directive.mjs +7 -12
- app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +4 -5
- app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +14 -23
- app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +101 -103
- app-ng-runtime/components/input/default/esm2022/composite/composite.directive.mjs +7 -12
- app-ng-runtime/components/input/default/esm2022/dataset-aware-form.component.mjs +4 -4
- app-ng-runtime/components/input/default/esm2022/input.module.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +10 -17
- app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +101 -103
- app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +55 -72
- app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +28 -34
- app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +8 -13
- app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +11 -21
- app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +11 -21
- app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +11 -20
- app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +7 -16
- app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +12 -21
- app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +11 -20
- app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +12 -21
- app-ng-runtime/components/input/default/fesm2022/index.mjs +414 -540
- 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 +3 -4
- 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 +2 -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/base-date-time.component.d.ts +1 -1
- app-ng-runtime/components/input/epoch/bundles/index.umd.js +112 -145
- 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 +6 -11
- app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +19 -26
- 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 +40 -40
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +31 -41
- app-ng-runtime/components/input/epoch/esm2022/epoch.module.mjs +2 -2
- app-ng-runtime/components/input/epoch/esm2022/picker/picker.component.mjs +5 -7
- app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +19 -28
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs +114 -147
- 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/bundles/index.umd.js +121 -119
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +122 -120
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.module.mjs +2 -2
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +123 -121
- 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/bundles/index.umd.js +39 -46
- app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +40 -47
- app-ng-runtime/components/input/rating/esm2022/rating.module.mjs +2 -2
- app-ng-runtime/components/input/rating/fesm2022/index.mjs +40 -47
- 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/bundles/index.umd.js +12 -21
- app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +13 -22
- app-ng-runtime/components/input/slider/esm2022/slider.module.mjs +2 -2
- app-ng-runtime/components/input/slider/fesm2022/index.mjs +13 -22
- 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/breadcrumb.component.d.ts +2 -2
- app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +28 -33
- app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +29 -34
- app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.module.mjs +2 -2
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +30 -35
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js +117 -133
- app-ng-runtime/components/navigation/menu/esm2022/menu-adapator.component.mjs +6 -11
- app-ng-runtime/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +4 -5
- app-ng-runtime/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +23 -23
- app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +34 -37
- app-ng-runtime/components/navigation/menu/esm2022/menu.module.mjs +2 -2
- app-ng-runtime/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +7 -12
- app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +50 -52
- app-ng-runtime/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +3 -3
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +119 -135
- 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.component.d.ts +2 -2
- app-ng-runtime/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +2 -2
- app-ng-runtime/components/navigation/menu/nav/nav.component.d.ts +2 -2
- app-ng-runtime/components/navigation/navbar/bundles/index.umd.js +22 -29
- app-ng-runtime/components/navigation/navbar/esm2022/navbar.component.mjs +23 -30
- app-ng-runtime/components/navigation/navbar/esm2022/navbar.module.mjs +2 -2
- app-ng-runtime/components/navigation/navbar/fesm2022/index.mjs +24 -31
- 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/bundles/index.umd.js +11 -18
- app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +12 -19
- app-ng-runtime/components/navigation/popover/esm2022/popover.module.mjs +2 -2
- app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +13 -20
- 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/bundles/index.umd.js +31 -63
- app-ng-runtime/components/page/default/content/content.component.d.ts +2 -2
- app-ng-runtime/components/page/default/esm2022/content/content.component.mjs +7 -13
- app-ng-runtime/components/page/default/esm2022/layout.directive.mjs +7 -12
- app-ng-runtime/components/page/default/esm2022/page-content/page-content.component.mjs +7 -13
- app-ng-runtime/components/page/default/esm2022/page.directive.mjs +7 -12
- app-ng-runtime/components/page/default/esm2022/page.module.mjs +2 -2
- app-ng-runtime/components/page/default/esm2022/router-outlet.directive.mjs +7 -12
- app-ng-runtime/components/page/default/esm2022/spa-page.directive.mjs +7 -12
- app-ng-runtime/components/page/default/fesm2022/index.mjs +33 -65
- 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/bundles/index.umd.js +6 -11
- app-ng-runtime/components/page/footer/esm2022/footer.directive.mjs +7 -12
- app-ng-runtime/components/page/footer/esm2022/footer.module.mjs +2 -2
- app-ng-runtime/components/page/footer/fesm2022/index.mjs +8 -13
- 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/bundles/index.umd.js +6 -12
- app-ng-runtime/components/page/header/esm2022/header.component.mjs +7 -13
- app-ng-runtime/components/page/header/esm2022/header.module.mjs +2 -2
- app-ng-runtime/components/page/header/fesm2022/index.mjs +8 -14
- 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/bundles/index.umd.js +7 -12
- 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 +8 -13
- app-ng-runtime/components/page/left-panel/esm2022/left-panel.module.mjs +2 -2
- app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +9 -14
- 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/bundles/index.umd.js +6 -11
- app-ng-runtime/components/page/right-panel/esm2022/right-panel.directive.mjs +7 -12
- app-ng-runtime/components/page/right-panel/esm2022/right-panel.module.mjs +2 -2
- app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +8 -13
- 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/bundles/index.umd.js +6 -11
- app-ng-runtime/components/page/top-nav/esm2022/top-nav.directive.mjs +7 -12
- app-ng-runtime/components/page/top-nav/esm2022/top-nav.module.mjs +2 -2
- app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +8 -13
- 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/bundles/index.umd.js +12 -22
- app-ng-runtime/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +7 -12
- app-ng-runtime/components/prefab/esm2022/prefab.directive.mjs +8 -13
- app-ng-runtime/components/prefab/esm2022/prefab.module.mjs +2 -2
- app-ng-runtime/components/prefab/fesm2022/index.mjs +13 -23
- 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/bundles/index.umd.js +16 -16
- app-ng-runtime/core/esm2022/core.module.mjs +2 -2
- app-ng-runtime/core/esm2022/services/constant.service.mjs +2 -2
- app-ng-runtime/core/esm2022/services/field-type.service.mjs +3 -3
- app-ng-runtime/core/esm2022/services/field-widget.service.mjs +3 -3
- app-ng-runtime/core/esm2022/services/pagination.service.mjs +2 -2
- app-ng-runtime/core/esm2022/services/script-loader.service.mjs +3 -3
- app-ng-runtime/core/esm2022/services/state-persistence.service.mjs +2 -2
- app-ng-runtime/core/esm2022/services/user-custom-pipe-manager.service.mjs +2 -2
- app-ng-runtime/core/esm2022/services/utils.service.mjs +3 -3
- app-ng-runtime/core/esm2022/services/viewport.service.mjs +3 -3
- app-ng-runtime/core/esm2022/utils/build-utils.mjs +1 -1
- 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 +2 -2
- app-ng-runtime/core/esm2022/utils/id-generator.mjs +1 -1
- app-ng-runtime/core/esm2022/utils/lru-cache.mjs +1 -1
- app-ng-runtime/core/esm2022/utils/utils.mjs +1 -1
- app-ng-runtime/core/esm2022/utils/watcher.mjs +1 -1
- app-ng-runtime/core/esm2022/utils/wm-project-properties.mjs +1 -1
- app-ng-runtime/core/fesm2022/index.mjs +17 -17
- app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/http/bundles/index.umd.js +3 -3
- app-ng-runtime/http/esm2022/http-service.module.mjs +2 -2
- app-ng-runtime/http/esm2022/http.service.mjs +3 -3
- app-ng-runtime/http/fesm2022/index.mjs +3 -3
- 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 +44 -58
- app-ng-runtime/locales/angular/global/ff-gn.js +44 -58
- 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 +44 -58
- 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/bundles/index.umd.js +124 -125
- app-ng-runtime/mobile/components/basic/default/esm2022/anchor/anchor.directive.mjs +4 -4
- app-ng-runtime/mobile/components/basic/default/esm2022/app-update/app-update.component.mjs +6 -7
- 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 +36 -36
- app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-selector.service.mjs +3 -3
- app-ng-runtime/mobile/components/basic/default/esm2022/image-cache/image-cache.directive.mjs +4 -4
- app-ng-runtime/mobile/components/basic/default/esm2022/network-info-toaster/network-info-toaster.component.mjs +47 -49
- 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 +30 -28
- app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs +125 -126
- 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/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/bundles/index.umd.js +25 -37
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +8 -14
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +20 -26
- 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 +27 -39
- 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/bundles/index.umd.js +41 -46
- 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 +41 -46
- 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 +43 -48
- 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/barcode-scanner.component.d.ts +2 -2
- app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +8 -14
- app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.component.mjs +9 -15
- 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 +10 -16
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +9 -15
- app-ng-runtime/mobile/components/device/camera/camera.component.d.ts +2 -2
- app-ng-runtime/mobile/components/device/camera/esm2022/camera.component.mjs +10 -16
- app-ng-runtime/mobile/components/device/camera/esm2022/camera.module.mjs +2 -2
- app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +11 -17
- app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
- 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/bundles/index.umd.js +5 -6
- app-ng-runtime/mobile/components/page/default/esm2022/page-content-loader/page-content-loader.component.mjs +3 -4
- app-ng-runtime/mobile/components/page/default/esm2022/page.directive.mjs +3 -3
- app-ng-runtime/mobile/components/page/default/esm2022/page.module.mjs +2 -2
- app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs +5 -6
- app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs.map +1 -1
- 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/bundles/index.umd.js +35 -40
- app-ng-runtime/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.component.mjs +36 -41
- 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 +36 -41
- 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/bundles/index.umd.js +37 -43
- 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 +38 -44
- app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs +39 -45
- 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/bundles/index.umd.js +18 -18
- 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 +3 -3
- app-ng-runtime/mobile/core/esm2022/services/device-file-opener.service.mjs +3 -3
- app-ng-runtime/mobile/core/esm2022/services/device-file-upload.service.mjs +3 -3
- app-ng-runtime/mobile/core/esm2022/services/device-file.service.mjs +3 -3
- app-ng-runtime/mobile/core/esm2022/services/device.service.mjs +3 -3
- app-ng-runtime/mobile/core/esm2022/services/ext-app-message.service.mjs +3 -3
- app-ng-runtime/mobile/core/esm2022/services/network.service.mjs +3 -3
- app-ng-runtime/mobile/core/fesm2022/index.mjs +18 -18
- app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/offline/bundles/index.umd.js +15 -15
- app-ng-runtime/mobile/offline/esm2022/models/local-db-store.mjs +1 -1
- app-ng-runtime/mobile/offline/esm2022/offline.module.mjs +3 -3
- app-ng-runtime/mobile/offline/esm2022/services/change-log.service.mjs +3 -3
- app-ng-runtime/mobile/offline/esm2022/services/local-db-data-pull.service.mjs +3 -3
- app-ng-runtime/mobile/offline/esm2022/services/local-db-management.service.mjs +3 -3
- app-ng-runtime/mobile/offline/esm2022/services/local-db.service.mjs +3 -3
- 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 +1 -1
- app-ng-runtime/mobile/offline/esm2022/services/workers/file-handler.mjs +1 -1
- 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 +1 -1
- app-ng-runtime/mobile/offline/esm2022/utils/file-upload.utils.mjs +1 -1
- app-ng-runtime/mobile/offline/esm2022/utils/live-variable.utils.mjs +1 -1
- app-ng-runtime/mobile/offline/esm2022/utils/query-executor.utils.mjs +1 -1
- app-ng-runtime/mobile/offline/esm2022/utils/security.utils.mjs +1 -1
- app-ng-runtime/mobile/offline/esm2022/utils/utils.mjs +1 -1
- app-ng-runtime/mobile/offline/fesm2022/index.mjs +16 -16
- app-ng-runtime/mobile/offline/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/placeholder/runtime/bundles/index.umd.js +2 -3
- app-ng-runtime/mobile/placeholder/runtime/esm2022/components/app-ext.component.mjs +2 -3
- app-ng-runtime/mobile/placeholder/runtime/esm2022/mobile-runtime.module.mjs +2 -2
- app-ng-runtime/mobile/placeholder/runtime/fesm2022/index.mjs +2 -3
- app-ng-runtime/mobile/placeholder/runtime/fesm2022/index.mjs.map +1 -1
- 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/bundles/index.umd.js +9 -10
- app-ng-runtime/mobile/runtime/esm2022/components/app-ext.component.mjs +3 -4
- app-ng-runtime/mobile/runtime/esm2022/mobile-runtime.module.mjs +3 -3
- app-ng-runtime/mobile/runtime/esm2022/services/cookie.service.mjs +2 -2
- app-ng-runtime/mobile/runtime/esm2022/services/http-interceptor.service.mjs +3 -3
- app-ng-runtime/mobile/runtime/esm2022/services/webprocess.service.mjs +3 -3
- app-ng-runtime/mobile/runtime/fesm2022/index.mjs +9 -10
- app-ng-runtime/mobile/runtime/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/runtime-dynamic/bundles/index.umd.js +3 -3
- 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 +3 -3
- app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs +3 -3
- app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/variables/bundles/index.umd.js +5 -5
- app-ng-runtime/mobile/variables/esm2022/services/camera-service.mjs +4 -4
- app-ng-runtime/mobile/variables/esm2022/services/contacts-service.mjs +1 -1
- app-ng-runtime/mobile/variables/esm2022/services/datasync-service.mjs +1 -1
- 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 +1 -1
- 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 +5 -5
- app-ng-runtime/mobile/variables/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/oAuth/bundles/index.umd.js +3 -3
- app-ng-runtime/oAuth/esm2022/oAuth.module.mjs +2 -2
- app-ng-runtime/oAuth/esm2022/oAuth.service.mjs +3 -3
- app-ng-runtime/oAuth/esm2022/oAuth.utils.mjs +1 -1
- app-ng-runtime/oAuth/fesm2022/index.mjs +3 -3
- app-ng-runtime/oAuth/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/package.json +1 -1
- app-ng-runtime/runtime/base/bundles/index.umd.js +118 -122
- app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +27 -27
- app-ng-runtime/runtime/base/esm2022/components/app-spinner.component.mjs +8 -9
- app-ng-runtime/runtime/base/esm2022/components/base-layout.component.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/components/base-page.component.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/components/base-partial.component.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/components/base-prefab.component.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/components/base-spa-page.component.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/components/custom-toaster.component.mjs +12 -13
- app-ng-runtime/runtime/base/esm2022/components/empty-component/empty-page.component.mjs +3 -4
- app-ng-runtime/runtime/base/esm2022/components/prefab-preview.component.mjs +3 -4
- app-ng-runtime/runtime/base/esm2022/directives/accessroles.directive.mjs +3 -3
- 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 +3 -3
- 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 +3 -3
- app-ng-runtime/runtime/base/esm2022/services/app.service.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/services/http-interceptor.services.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/services/navigation.service.mjs +3 -3
- 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 +3 -3
- app-ng-runtime/runtime/base/esm2022/services/spinner.service.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/services/toaster.service.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/util/fragment-monitor.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +2 -2
- app-ng-runtime/runtime/base/fesm2022/index.mjs +130 -134
- 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/dynamic/bundles/index.umd.js +14 -15
- app-ng-runtime/runtime/dynamic/esm2022/app/app.module.mjs +1 -1
- app-ng-runtime/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +3 -4
- 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 +3 -3
- app-ng-runtime/runtime/dynamic/esm2022/app/services/prefab-config-provider.service.mjs +3 -3
- app-ng-runtime/runtime/dynamic/esm2022/main.mjs +1 -1
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +16 -17
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/scripts/datatable/datatable.js +2 -1
- app-ng-runtime/security/bundles/index.umd.js +3 -3
- app-ng-runtime/security/esm2022/security.module.mjs +2 -2
- app-ng-runtime/security/esm2022/security.service.mjs +3 -3
- app-ng-runtime/security/fesm2022/index.mjs +3 -3
- app-ng-runtime/security/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/swipey/esm2022/swipe.animation.mjs +1 -1
- app-ng-runtime/swipey/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/transpiler/esm2022/build.mjs +1 -1
- app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/variables/bundles/index.umd.js +5 -5
- app-ng-runtime/variables/esm2022/factory/variable.factory.mjs +1 -1
- app-ng-runtime/variables/esm2022/manager/action/login-action.manager.mjs +1 -1
- app-ng-runtime/variables/esm2022/manager/action/logout-action.manager.mjs +1 -1
- app-ng-runtime/variables/esm2022/manager/action/notification-action.manager.mjs +1 -1
- app-ng-runtime/variables/esm2022/manager/variable/base-variable.manager.mjs +1 -1
- 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 +1 -1
- 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 +3 -3
- app-ng-runtime/variables/esm2022/util/action/navigation-action.utils.mjs +1 -1
- app-ng-runtime/variables/esm2022/util/variable/pagination.utils.mjs +1 -1
- app-ng-runtime/variables/esm2022/util/variable/service-variable.utils.mjs +1 -1
- app-ng-runtime/variables/esm2022/util/variable/variables.utils.mjs +1 -1
- app-ng-runtime/variables/esm2022/variables.module.mjs +2 -2
- app-ng-runtime/variables/fesm2022/index.mjs +5 -5
- app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/build-task/.npmignore +0 -2
- app-ng-runtime/components/advanced/carousel/.npmignore +0 -2
- app-ng-runtime/components/advanced/login/.npmignore +0 -2
- app-ng-runtime/components/advanced/marquee/.npmignore +0 -2
- app-ng-runtime/components/base/.npmignore +0 -2
- app-ng-runtime/components/basic/default/.npmignore +0 -2
- app-ng-runtime/components/basic/progress/.npmignore +0 -2
- app-ng-runtime/components/basic/rich-text-editor/.npmignore +0 -2
- app-ng-runtime/components/basic/search/.npmignore +0 -2
- app-ng-runtime/components/basic/tree/.npmignore +0 -2
- app-ng-runtime/components/chart/.npmignore +0 -2
- app-ng-runtime/components/containers/accordion/.npmignore +0 -2
- app-ng-runtime/components/containers/layout-grid/.npmignore +0 -2
- app-ng-runtime/components/containers/linear-layout/.npmignore +0 -2
- app-ng-runtime/components/containers/panel/.npmignore +0 -2
- app-ng-runtime/components/containers/tabs/.npmignore +0 -2
- app-ng-runtime/components/containers/tile/.npmignore +0 -2
- app-ng-runtime/components/containers/wizard/.npmignore +0 -2
- app-ng-runtime/components/data/card/.npmignore +0 -2
- app-ng-runtime/components/data/form/.npmignore +0 -2
- app-ng-runtime/components/data/list/.npmignore +0 -2
- app-ng-runtime/components/data/live-table/.npmignore +0 -2
- app-ng-runtime/components/data/pagination/.npmignore +0 -2
- app-ng-runtime/components/data/table/.npmignore +0 -2
- app-ng-runtime/components/dialogs/alert-dialog/.npmignore +0 -2
- app-ng-runtime/components/dialogs/confirm-dialog/.npmignore +0 -2
- app-ng-runtime/components/dialogs/default/.npmignore +0 -2
- app-ng-runtime/components/dialogs/design-dialog/.npmignore +0 -2
- app-ng-runtime/components/dialogs/iframe-dialog/.npmignore +0 -2
- app-ng-runtime/components/dialogs/login-dialog/.npmignore +0 -2
- app-ng-runtime/components/dialogs/partial-dialog/.npmignore +0 -2
- app-ng-runtime/components/input/calendar/.npmignore +0 -2
- app-ng-runtime/components/input/chips/.npmignore +0 -2
- app-ng-runtime/components/input/color-picker/.npmignore +0 -2
- app-ng-runtime/components/input/currency/.npmignore +0 -2
- app-ng-runtime/components/input/default/.npmignore +0 -2
- app-ng-runtime/components/input/epoch/.npmignore +0 -2
- app-ng-runtime/components/input/file-upload/.npmignore +0 -2
- app-ng-runtime/components/input/rating/.npmignore +0 -2
- app-ng-runtime/components/input/slider/.npmignore +0 -2
- app-ng-runtime/components/navigation/breadcrumb/.npmignore +0 -2
- app-ng-runtime/components/navigation/menu/.npmignore +0 -2
- app-ng-runtime/components/navigation/navbar/.npmignore +0 -2
- app-ng-runtime/components/navigation/popover/.npmignore +0 -2
- app-ng-runtime/components/page/default/.npmignore +0 -2
- app-ng-runtime/components/page/footer/.npmignore +0 -2
- app-ng-runtime/components/page/header/.npmignore +0 -2
- app-ng-runtime/components/page/left-panel/.npmignore +0 -2
- app-ng-runtime/components/page/right-panel/.npmignore +0 -2
- app-ng-runtime/components/page/top-nav/.npmignore +0 -2
- app-ng-runtime/components/prefab/.npmignore +0 -2
- app-ng-runtime/core/.npmignore +0 -2
- app-ng-runtime/http/.npmignore +0 -2
- app-ng-runtime/mobile/components/basic/default/.npmignore +0 -2
- app-ng-runtime/mobile/components/basic/search/.npmignore +0 -2
- app-ng-runtime/mobile/components/containers/segmented-control/.npmignore +0 -2
- app-ng-runtime/mobile/components/data/media-list/.npmignore +0 -2
- app-ng-runtime/mobile/components/device/barcode-scanner/.npmignore +0 -2
- app-ng-runtime/mobile/components/device/camera/.npmignore +0 -2
- app-ng-runtime/mobile/components/input/file-upload/.npmignore +0 -2
- app-ng-runtime/mobile/components/page/default/.npmignore +0 -2
- app-ng-runtime/mobile/components/page/left-panel/.npmignore +0 -2
- app-ng-runtime/mobile/components/page/mobile-navbar/.npmignore +0 -2
- app-ng-runtime/mobile/components/page/tab-bar/.npmignore +0 -2
- app-ng-runtime/mobile/core/.npmignore +0 -2
- app-ng-runtime/mobile/offline/.npmignore +0 -2
- app-ng-runtime/mobile/placeholder/runtime/.npmignore +0 -2
- app-ng-runtime/mobile/placeholder/runtime-dynamic/.npmignore +0 -2
- app-ng-runtime/mobile/runtime/.npmignore +0 -2
- app-ng-runtime/mobile/runtime-dynamic/.npmignore +0 -2
- app-ng-runtime/mobile/variables/.npmignore +0 -2
- app-ng-runtime/oAuth/.npmignore +0 -2
- app-ng-runtime/runtime/base/.npmignore +0 -2
- app-ng-runtime/runtime/dynamic/.npmignore +0 -2
- app-ng-runtime/security/.npmignore +0 -2
- app-ng-runtime/swipey/.npmignore +0 -2
- app-ng-runtime/transpiler/.npmignore +0 -2
- app-ng-runtime/variables/.npmignore +0 -2
|
@@ -521,7 +521,7 @@ export function $parseEvent(expr, defOnly) {
|
|
|
521
521
|
}
|
|
522
522
|
else {
|
|
523
523
|
const parser = new Parser(new Lexer);
|
|
524
|
-
const ast = parser.parseAction(expr, '', 0);
|
|
524
|
+
const ast = parser.parseAction(expr, false, '', 0);
|
|
525
525
|
if (ast.errors.length) {
|
|
526
526
|
return noop;
|
|
527
527
|
}
|
|
@@ -589,4 +589,4 @@ export const getFnForBindExpr = (expr) => {
|
|
|
589
589
|
export const getFnForEventExpr = (expr) => {
|
|
590
590
|
return fnExecutor(expr, ExpressionType.Action);
|
|
591
591
|
};
|
|
592
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbi1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy91dGlscy9leHByZXNzaW9uLXBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsTUFBTSxFQUNOLFdBQVcsRUFDWCxJQUFJLEVBQ0osS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULEtBQUssRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixhQUFhLEVBQ2IsS0FBSyxFQUNSLE1BQU0sbUJBQW1CLENBQUM7QUFJM0IsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7QUFDaEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25FLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2xELE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUl0QixNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzlCLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDL0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUU1QixNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUM3QixJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNqRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVc7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtJQUM3QixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQ3RCLElBQUksU0FBUyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDekIsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNWLEtBQUssRUFBRTtZQUNILFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDWixNQUFNO1lBQ1YsQ0FBQztRQUNMLEtBQUssQ0FBQztZQUNGLFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDWixNQUFNO1lBQ1YsQ0FBQztRQUNMLEtBQUssQ0FBQztZQUNGLFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDWixNQUFNO1lBQ1YsQ0FBQztRQUNMLEtBQUssQ0FBQztZQUNGLFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDWixNQUFNO1lBQ1YsQ0FBQztRQUNMLEtBQUssQ0FBQztZQUNGLFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDWixNQUFNO1lBQ1YsQ0FBQztRQUNMLEtBQUssQ0FBQztZQUNGLFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDWixNQUFNO1lBQ1YsQ0FBQztRQUNMLEtBQUssQ0FBQztZQUNGLFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDWixNQUFNO1lBQ1YsQ0FBQztRQUNMLEtBQUssQ0FBQztZQUNGLFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDWixNQUFNO1lBQ1YsQ0FBQztRQUNMLEtBQUssQ0FBQztZQUNGLFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMs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LEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksUUFBUSxFQUFFLEdBQUcsQ0FBQztRQUNsQixJQUFJLEdBQUcsQ0FBQyxRQUFRLFlBQVksZ0JBQWdCLEVBQUUsQ0FBQztZQUMzQyxHQUFHLEdBQUcsUUFBUSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDSixRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzNDLEdBQUcsR0FBRyxHQUFHLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEUsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6QyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVc7UUFDUCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzNCLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDZixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDZixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkMsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekIsS0FBSyxDQUFDLElBQUksQ0FB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QUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNuRCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEJpbmFyeSxcbiAgICBCaW5kaW5nUGlwZSxcbiAgICBDYWxsLFxuICAgIENoYWluLFxuICAgIENvbmRpdGlvbmFsLFxuICAgIEltcGxpY2l0UmVjZWl2ZXIsXG4gICAgS2V5ZWRSZWFkLFxuICAgIExleGVyLFxuICAgIExpdGVyYWxBcnJheSxcbiAgICBMaXRlcmFsTWFwLFxuICAgIExpdGVyYWxQcmltaXRpdmUsXG4gICAgUGFyc2VyLFxuICAgIFByZWZpeE5vdCxcbiAgICBQcm9wZXJ0eVJlYWQsXG4gICAgUHJvcGVydHlXcml0ZSxcbiAgICBVbmFyeVxufSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5cbmRlY2xhcmUgY29uc3QgXztcblxuY29uc3QgaXNEZWYgPSB2ID0+IHYgIT09IHZvaWQgMDtcbmNvbnN0IGlmRGVmID0gKHYsIGQpID0+IHYgPT09IHZvaWQgMCA/IGQgOiB2O1xuY29uc3QgcGx1cyA9IChhLCBiKSA9PiB2b2lkIDAgPT09IGEgPyBiIDogdm9pZCAwID09PSBiID8gYSA6IGEgKyBiO1xuY29uc3QgbWludXMgPSAoYSwgYikgPT4gaWZEZWYoYSwgMCkgLSBpZkRlZihiLCAwKTtcbmNvbnN0IG5vb3AgPSAoKSA9PiB7fTtcblxuZXhwb3J0IHR5cGUgUGFyc2VFeHByUmVzdWx0ID0gKGRhdGE/OiBhbnksIGxvY2Fscz86IGFueSkgPT4gYW55O1xuXG5jb25zdCBleHByRm5DYWNoZSA9IG5ldyBNYXAoKTtcbmNvbnN0IGV2ZW50Rm5DYWNoZSA9IG5ldyBNYXAoKTtcbmNvbnN0IHB1cmVQaXBlcyA9IG5ldyBNYXAoKTtcblxuY29uc3QgcHJpbWl0aXZlRXF1YWxzID0gKGEsIGIpID0+IHtcbiAgICBpZiAodHlwZW9mIGEgPT09ICdvYmplY3QnIHx8IHR5cGVvZiBiID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChhICE9PSBhICYmIGIgIT09IGIpIHsgLy8gTmFOIGNhc2VcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBhID09PSBiO1xufTtcblxuY29uc3QgZGV0ZWN0Q2hhbmdlcyA9IChvdiwgbnYpID0+IHtcbiAgICBjb25zdCBsZW4gPSBudi5sZW5ndGg7XG4gICAgbGV0IGhhc0NoYW5nZSA9IGxlbiA+IDEwO1xuICAgIHN3aXRjaCAobGVuKSB7XG4gICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgICBoYXNDaGFuZ2UgPSAhcHJpbWl0aXZlRXF1YWxzKG92WzldLCBudls5XSk7XG4gICAgICAgICAgICBpZiAoaGFzQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgOTpcbiAgICAgICAgICAgIGhhc0NoYW5nZSA9ICFwcmltaXRpdmVFcXVhbHMob3ZbOF0sIG52WzhdKTtcbiAgICAgICAgICAgIGlmIChoYXNDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgaGFzQ2hhbmdlID0gIXByaW1pdGl2ZUVxdWFscyhvdls3XSwgbnZbN10pO1xuICAgICAgICAgICAgaWYgKGhhc0NoYW5nZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICBoYXNDaGFuZ2UgPSAhcHJpbWl0aXZlRXF1YWxzKG92WzZdLCBudls2XSk7XG4gICAgICAgICAgICBpZiAoaGFzQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgIGhhc0NoYW5nZSA9ICFwcmltaXRpdmVFcXVhbHMob3ZbNV0sIG52WzVdKTtcbiAgICAgICAgICAgIGlmIChoYXNDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgaGFzQ2hhbmdlID0gIXByaW1pdGl2ZUVxdWFscyhvdls0XSwgbnZbNF0pO1xuICAgICAgICAgICAgaWYgKGhhc0NoYW5nZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICBoYXNDaGFuZ2UgPSAhcHJpbWl0aXZlRXF1YWxzKG92WzNdLCBudlszXSk7XG4gICAgICAgICAgICBpZiAoaGFzQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIGhhc0NoYW5nZSA9ICFwcmltaXRpdmVFcXVhbHMob3ZbMl0sIG52WzJdKTtcbiAgICAgICAgICAgIGlmIChoYXNDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgaGFzQ2hhbmdlID0gIXByaW1pdGl2ZUVxdWFscyhvdlsxXSwgbnZbMV0pO1xuICAgICAgICAgICAgaWYgKGhhc0NoYW5nZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICBoYXNDaGFuZ2UgPSAhcHJpbWl0aXZlRXF1YWxzKG92WzBdLCBudlswXSk7XG4gICAgICAgICAgICBpZiAoaGFzQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoYXNDaGFuZ2U7XG59O1xuXG5jb25zdCBnZXRQdXJlUGlwZVZhbCA9IChwaXBlLCBjYWNoZSwgaWRlbnRpZmllciwgLi4uYXJncykgPT4ge1xuICAgIGxldCBsYXN0UmVzdWx0ID0gY2FjaGUuZ2V0KGlkZW50aWZpZXIpO1xuICAgIGxldCByZXN1bHQ7XG4gICAgaWYgKGxhc3RSZXN1bHQpIHtcbiAgICAgICAgY29uc3QgaXNNb2RpZmllZCA9IGRldGVjdENoYW5nZXMobGFzdFJlc3VsdC5hcmdzLCBhcmdzKTtcbiAgICAgICAgaWYgKCFpc01vZGlmaWVkKSB7XG4gICAgICAgICAgICByZXR1cm4gbGFzdFJlc3VsdC5yZXN1bHQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVzdWx0ID0gcGlwZS50cmFuc2Zvcm0oLi4uYXJncyk7XG4gICAgbGFzdFJlc3VsdCA9IHthcmdzLCByZXN1bHR9O1xuICAgIGNhY2hlLnNldChpZGVudGlmaWVyLCBsYXN0UmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuY29uc3QgU1RSX0VTQ0FQRV9SRUdFWCA9IC9bXiBhLXpBLVowLTldL2c7XG5cbmNvbnN0IHN0cmluZ0VzY2FwZUZuID0gc3RyID0+IHtcbiAgICByZXR1cm4gJ1xcXFx1JyArICgnMDAwMCcgKyBzdHIuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNsaWNlKC00KTtcbn07XG5cbmNsYXNzIEFTVENvbXBpbGVyIHtcbiAgICBhc3Q7IC8vIGFzdCB0byBiZSBjb21waWxlZFxuICAgIGRlY2xhcmF0aW9uczsgLy8gdmFyaWFibGUgbmFtZXNcbiAgICBzdG10czsgLy8gZnVuY3Rpb24gYm9keSBzdGF0ZW1lbnRzXG4gICAgcGlwZXM7IC8vIHVzZWQgcGlwZXNcbiAgICB2SWR4OyAvLyB2YXJpYWJsZSBuYW1lIGluZGV4XG4gICAgY0FzdDsgLy8gY3VycmVudCBBU1Qgbm9kZSBpbiB0aGUgcHJvY2Vzc1xuICAgIGNTdG10cztcbiAgICBwaXBlTmFtZVZzSXNQdXJlTWFwO1xuICAgIGV4cHJUeXBlOiBFeHByZXNzaW9uVHlwZTtcblxuICAgIGNvbnN0cnVjdG9yKGFzdCwgZXhwclR5cGUsIHBpcGVOYW1lVnNJc1B1cmVNYXA/KSB7XG4gICAgICAgIHRoaXMuYXN0ID0gYXN0O1xuICAgICAgICB0aGlzLmRlY2xhcmF0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLnN0bXRzID0gW107XG4gICAgICAgIHRoaXMucGlwZXMgPSBbXTtcbiAgICAgICAgdGhpcy52SWR4ID0gMDtcbiAgICAgICAgdGhpcy5leHByVHlwZSA9IGV4cHJUeXBlO1xuICAgICAgICB0aGlzLnBpcGVOYW1lVnNJc1B1cmVNYXAgPSBwaXBlTmFtZVZzSXNQdXJlTWFwO1xuICAgIH1cblxuICAgIGNyZWF0ZVZhcigpIHtcbiAgICAgICAgY29uc3QgdiA9IGB2JHt0aGlzLnZJZHgrK31gO1xuICAgICAgICB0aGlzLmRlY2xhcmF0aW9ucy5wdXNoKHYpO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBwcm9jZXNzSW1wbGljaXRSZWNlaXZlcigpIHtcbiAgICAgICAgcmV0dXJuICdjdHgnO1xuICAgIH1cblxuICAgIHByb2Nlc3NMaXRlcmFsUHJpbWl0aXZlKCkge1xuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmNBc3Q7XG4gICAgICAgIHJldHVybiB0eXBlb2YgKGFzdC52YWx1ZSkgPT09ICdzdHJpbmcnID8gYFwiJHthc3QudmFsdWUucmVwbGFjZSgvXCIvZywgJ1xcXCInKS5yZXBsYWNlKFNUUl9FU0NBUEVfUkVHRVgsIHN0cmluZ0VzY2FwZUZuKX1cImAgOiBhc3QudmFsdWU7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0xpdGVyYWxBcnJheSgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCB2ID0gdGhpcy5jcmVhdGVWYXIoKTtcbiAgICAgICAgY29uc3QgcyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXN0LmV4cHJlc3Npb25zKSB7XG4gICAgICAgICAgICBzLnB1c2godGhpcy5idWlsZChpdGVtLCBzdG10cykpO1xuICAgICAgICB9XG4gICAgICAgIHN0bXRzLnB1c2goYCR7dn09WyR7cy5qb2luKCcsJyl9XWApO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBwcm9jZXNzTGl0ZXJhbE1hcCgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCB2ID0gdGhpcy5jcmVhdGVWYXIoKTtcbiAgICAgICAgY29uc3QgX3ZhbHVlcyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IF92YWx1ZSBvZiBhc3QudmFsdWVzKSB7XG4gICAgICAgICAgICBfdmFsdWVzLnB1c2godGhpcy5idWlsZChfdmFsdWUsIHN0bXRzKSk7XG4gICAgICAgIH1cbiAgICAgICAgc3RtdHMucHVzaChgJHt2fT17JHthc3Qua2V5cy5tYXAoKGssIGkpID0+IGAnJHtrLmtleX0nOiR7X3ZhbHVlc1tpXX1gKX19YCk7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cblxuICAgIHByb2Nlc3NQcm9wZXJ0eVJlYWQoKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgY29uc3Qgc3RtdHMgPSB0aGlzLmNTdG10cztcbiAgICAgICAgY29uc3QgciA9IHRoaXMuYnVpbGQoYXN0LnJlY2VpdmVyLCBzdG10cyk7XG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLmNyZWF0ZVZhcigpO1xuICAgICAgICBzdG10cy5wdXNoKGAke3Z9PSR7cn0mJiR7cn0uJHthc3QubmFtZX1gKTtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0tleWVkUmVhZCgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCBrID0gdGhpcy5idWlsZChhc3Qua2V5LCBzdG10cyk7XG4gICAgICAgIGNvbnN0IG8gPSB0aGlzLmJ1aWxkKGFzdC5yZWNlaXZlciwgc3RtdHMpO1xuICAgICAgICBjb25zdCB2ID0gdGhpcy5jcmVhdGVWYXIoKTtcbiAgICAgICAgc3RtdHMucHVzaChgJHt2fT0ke299JiYke299WyR7a31dYCk7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cblxuICAgIHByb2Nlc3NQcmVmaXhOb3QoKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgY29uc3Qgc3RtdHMgPSB0aGlzLmNTdG10cztcbiAgICAgICAgY29uc3QgciA9IHRoaXMuYnVpbGQoYXN0LmV4cHJlc3Npb24sIHN0bXRzKTtcbiAgICAgICAgc3RtdHMucHVzaChgJHtyfT0hJHtyfWApO1xuICAgICAgICByZXR1cm4gcjtcbiAgICB9XG5cbiAgICBoYW5kbGVCaW5hcnlQbHVzX01pbnVzKCkge1xuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmNBc3Q7XG4gICAgICAgIGNvbnN0IHN0bXRzID0gdGhpcy5jU3RtdHM7XG4gICAgICAgIGNvbnN0IGwgPSB0aGlzLmJ1aWxkKGFzdC5sZWZ0LCBzdG10cyk7XG4gICAgICAgIGNvbnN0IHIgPSB0aGlzLmJ1aWxkKGFzdC5yaWdodCwgc3RtdHMpO1xuICAgICAgICBjb25zdCB2ID0gdGhpcy5jcmVhdGVWYXIoKTtcbiAgICAgICAgY29uc3QgbSA9IGFzdC5vcGVyYXRpb24gPT09ICcrJyA/ICdfcGx1cycgOiAnX21pbnVzJztcbiAgICAgICAgc3RtdHMucHVzaChgJHt2fT0ke219KCR7bH0sJHtyfSlgKTtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuXG4gICAgaGFuZGxlQmluYXJ5QU5EX09SKCkge1xuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmNBc3Q7XG4gICAgICAgIGNvbnN0IHN0bXRzID0gdGhpcy5jU3RtdHM7XG4gICAgICAgIGNvbnN0IF9zMSA9IFtdO1xuICAgICAgICBjb25zdCBfc2wgPSBbXTtcbiAgICAgICAgY29uc3QgX3NyID0gW107XG4gICAgICAgIGNvbnN0IGwgPSB0aGlzLmJ1aWxkKGFzdC5sZWZ0LCBfc2wpO1xuICAgICAgICBjb25zdCByID0gdGhpcy5idWlsZChhc3QucmlnaHQsIF9zcik7XG5cbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlVmFyKCk7XG5cbiAgICAgICAgaWYgKGFzdC5vcGVyYXRpb24gPT09ICcmJicpIHtcbiAgICAgICAgICAgIF9zMS5wdXNoKFxuICAgICAgICAgICAgICAgIF9zbC5qb2luKCc7JyksXG4gICAgICAgICAgICAgICAgYDske3Z9PWZhbHNlYCxcbiAgICAgICAgICAgICAgICBgO2lmKCR7bH0pe2AsXG4gICAgICAgICAgICAgICAgX3NyLmpvaW4oJzsnKSxcbiAgICAgICAgICAgICAgICBgOyR7dn09JHtyfTtgLFxuICAgICAgICAgICAgICAgIGB9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIF9zMS5wdXNoKFxuICAgICAgICAgICAgICAgIF9zbC5qb2luKCc7JyksXG4gICAgICAgICAgICAgICAgYDske3Z9PSR7bH1gLFxuICAgICAgICAgICAgICAgIGA7aWYoISR7bH0pe2AsXG4gICAgICAgICAgICAgICAgX3NyLmpvaW4oJzsnKSxcbiAgICAgICAgICAgICAgICBgOyR7dn09JHtyfTtgLFxuICAgICAgICAgICAgICAgIGB9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBzdG10cy5wdXNoKF9zMS5qb2luKCcnKSk7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cblxuICAgIGhhbmRsZUJpbmFyeURlZmF1bHQoKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgY29uc3Qgc3RtdHMgPSB0aGlzLmNTdG10cztcbiAgICAgICAgY29uc3QgbCA9IHRoaXMuYnVpbGQoYXN0LmxlZnQsIHN0bXRzKTtcbiAgICAgICAgY29uc3QgciA9IHRoaXMuYnVpbGQoYXN0LnJpZ2h0LCBzdG10cyk7XG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLmNyZWF0ZVZhcigpO1xuICAgICAgICBzdG10cy5wdXNoKGAke3Z9PSR7bH0ke2FzdC5vcGVyYXRpb259JHtyfWApO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBwcm9jZXNzQmluYXJ5KCkge1xuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmNBc3Q7XG4gICAgICAgIGNvbnN0IG9wID0gYXN0Lm9wZXJhdGlvbjtcbiAgICAgICAgaWYgKG9wID09PSAnKycgfHwgb3AgPT09ICctJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQmluYXJ5UGx1c19NaW51cygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcCA9PT0gJyYmJyB8fCBvcCA9PT0gJ3x8Jykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQmluYXJ5QU5EX09SKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVCaW5hcnlEZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgcHJvY2Vzc1VuYXJ5KCkge1xuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmNBc3Q7XG4gICAgICAgIGNvbnN0IHN0bXRzID0gdGhpcy5jU3RtdHM7XG4gICAgICAgIGNvbnN0IGUgPSB0aGlzLmJ1aWxkKGFzdC5leHByLCBzdG10cyk7XG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLmNyZWF0ZVZhcigpO1xuICAgICAgICBzdG10cy5wdXNoKGAke3Z9PSR7YXN0Lm9wZXJhdG9yfSR7ZX1gKTtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0NvbmRpdGlvbmFsKCkge1xuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmNBc3Q7XG4gICAgICAgIGNvbnN0IHN0bXRzID0gdGhpcy5jU3RtdHM7XG4gICAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IHRoaXMuYnVpbGQoYXN0LmNvbmRpdGlvbiwgc3RtdHMpO1xuICAgICAgICBjb25zdCB2ID0gdGhpcy5jcmVhdGVWYXIoKTtcbiAgICAgICAgY29uc3QgX3MxID0gW107XG4gICAgICAgIGNvbnN0IF9zMiA9IFtdO1xuICAgICAgICBjb25zdCBfczMgPSBbXTtcbiAgICAgICAgY29uc3QgdHJ1ZUV4cCA9IHRoaXMuYnVpbGQoYXN0LnRydWVFeHAsIF9zMik7XG4gICAgICAgIGNvbnN0IGZhbHNlRXhwID0gdGhpcy5idWlsZChhc3QuZmFsc2VFeHAsIF9zMyk7XG5cbiAgICAgICAgX3MxLnB1c2goXG4gICAgICAgICAgICBgaWYoJHtjb25kaXRpb259KXtgLFxuICAgICAgICAgICAgX3MyLmpvaW4oJzsnKSxcbiAgICAgICAgICAgIGA7JHt2fT0ke3RydWVFeHB9O2AsXG4gICAgICAgICAgICBgfWVsc2V7YCxcbiAgICAgICAgICAgIF9zMy5qb2luKCc7JyksXG4gICAgICAgICAgICBgOyR7dn09JHtmYWxzZUV4cH07YCxcbiAgICAgICAgICAgIGB9YFxuICAgICAgICApO1xuXG4gICAgICAgIHN0bXRzLnB1c2goX3MxLmpvaW4oJyAnKSk7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cblxuICAgIHByb2Nlc3NNZXRob2RDYWxsKCkge1xuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmNBc3Q7XG4gICAgICAgIGNvbnN0IHN0bXRzID0gdGhpcy5jU3RtdHM7XG4gICAgICAgIGNvbnN0IF9hcmdzID0gW107XG4gICAgICAgIGZvciAoY29uc3QgYXJnIG9mIGFzdC5hcmdzKSB7XG4gICAgICAgICAgICBfYXJncy5wdXNoKHRoaXMuYnVpbGQoYXJnLCBzdG10cykpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZuID0gdGhpcy5idWlsZChhc3QucmVjZWl2ZXIsIHN0bXRzKTtcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlVmFyKCk7XG4gICAgICAgIGNvbnN0IGlzSW1wbGljaXRSZWNlaXZlciA9IGFzdC5yZWNlaXZlciBpbnN0YW5jZW9mIEltcGxpY2l0UmVjZWl2ZXIgfHwgKGFzdC5yZWNlaXZlciBpbnN0YW5jZW9mIFByb3BlcnR5UmVhZCAmJiBhc3QucmVjZWl2ZXI/LnJlY2VpdmVyIGluc3RhbmNlb2YgSW1wbGljaXRSZWNlaXZlcik7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSBzdG10c1tzdG10cy5sZW5ndGggLSAxXS5zcGxpdCgnJiYnKVswXS5zcGxpdCgnPScpWzFdO1xuICAgICAgICBzdG10cy5wdXNoKGAke3Z9PSAke2ZufSYmJHtmbn0ke2lzSW1wbGljaXRSZWNlaXZlciA/ICcuYmluZChfY3R4KScgOiBgLmJpbmQoJHtjb250ZXh0fSlgfSgke19hcmdzLmpvaW4oJywnKX0pYCk7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cblxuICAgIHByb2Nlc3NDaGFpbigpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICByZXR1cm4gYXN0LmV4cHJlc3Npb25zLm1hcChlID0+IHRoaXMuYnVpbGQoZSkpLmpvaW4oJzsnKTtcbiAgICB9XG5cbiAgICBwcm9jZXNzUHJvcGVydHlXcml0ZSgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBsZXQgcmVjZWl2ZXIsIGxocztcbiAgICAgICAgaWYgKGFzdC5yZWNlaXZlciBpbnN0YW5jZW9mIEltcGxpY2l0UmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGxocyA9IGBfY3R4LiR7YXN0Lm5hbWV9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlY2VpdmVyID0gdGhpcy5idWlsZChhc3QucmVjZWl2ZXIsIHN0bXRzKTtcbiAgICAgICAgICAgIGxocyA9IGAke3JlY2VpdmVyfSR7cmVjZWl2ZXIubGVuZ3RoID8gJy4nIDogJyd9JHthc3QubmFtZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmhzID0gdGhpcy5idWlsZChhc3QudmFsdWUsIHN0bXRzKTtcbiAgICAgICAgc3RtdHMucHVzaChgJHtsaHN9PSR7cmhzfWApO1xuICAgIH1cblxuICAgIHByb2Nlc3NQaXBlKCkge1xuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmNBc3Q7XG4gICAgICAgIGNvbnN0IHN0bXRzID0gdGhpcy5jU3RtdHM7XG4gICAgICAgIGNvbnN0IHQgPSB0aGlzLmNyZWF0ZVZhcigpO1xuICAgICAgICBjb25zdCBfYXJncyA9IFtdO1xuICAgICAgICBjb25zdCBfczEgPSBbXTtcbiAgICAgICAgY29uc3QgX3MyID0gW107XG4gICAgICAgIGNvbnN0IGV4cCA9IHRoaXMuYnVpbGQoYXN0LmV4cCwgc3RtdHMpO1xuICAgICAgICBmb3IgKGNvbnN0IGFyZyBvZiBhc3QuYXJncykge1xuICAgICAgICAgICAgX2FyZ3MucHVzaCh0aGlzLmJ1aWxkKGFyZywgX3MyKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwID0gYF9wJHt0aGlzLnBpcGVzLmxlbmd0aH1gO1xuICAgICAgICB0aGlzLnBpcGVzLnB1c2goW2FzdC5uYW1lLCBwXSk7XG5cbiAgICAgICAgX2FyZ3MudW5zaGlmdChleHApO1xuXG4gICAgICAgIF9zMS5wdXNoKFxuICAgICAgICAgICAgX3MyLmxlbmd0aCA/IF9zMi5qb2luKCc7JykgKyAnOycgOiAnJyxcbiAgICAgICAgICAgIHRoaXMucGlwZU5hbWVWc0lzUHVyZU1hcC5nZXQoYXN0Lm5hbWUpID8gYCR7dH09Z2V0UFBWYWwoJHtwfSxfcHBjLFwiJHtwfVwiLCR7X2FyZ3N9KWAgOiBgJHt0fT0ke3B9LnRyYW5zZm9ybSgke19hcmdzfSlgXG4gICAgICAgICk7XG5cbiAgICAgICAgc3RtdHMucHVzaChfczEuam9pbignJykpO1xuICAgICAgICByZXR1cm4gdDtcbiAgICB9XG5cbiAgICBidWlsZChhc3QsIGNTdG10cz8pIHtcbiAgICAgICAgdGhpcy5jQXN0ID0gYXN0O1xuICAgICAgICB0aGlzLmNTdG10cyA9IGNTdG10cyB8fCB0aGlzLnN0bXRzO1xuXG4gICAgICAgIGlmIChhc3QgaW5zdGFuY2VvZiBJbXBsaWNpdFJlY2VpdmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzSW1wbGljaXRSZWNlaXZlcigpO1xuICAgICAgICB9IGVsc2UgaWYgKGFzdCBpbnN0YW5jZW9mIExpdGVyYWxQcmltaXRpdmUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NMaXRlcmFsUHJpbWl0aXZlKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgTGl0ZXJhbEFycmF5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzTGl0ZXJhbEFycmF5KCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgTGl0ZXJhbE1hcCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0xpdGVyYWxNYXAoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhc3QgaW5zdGFuY2VvZiBQcm9wZXJ0eVJlYWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NQcm9wZXJ0eVJlYWQoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhc3QgaW5zdGFuY2VvZiBQcm9wZXJ0eVdyaXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzUHJvcGVydHlXcml0ZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGFzdCBpbnN0YW5jZW9mIEtleWVkUmVhZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0tleWVkUmVhZCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGFzdCBpbnN0YW5jZW9mIFByZWZpeE5vdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1ByZWZpeE5vdCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGFzdCBpbnN0YW5jZW9mIFVuYXJ5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzVW5hcnkoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhc3QgaW5zdGFuY2VvZiBCaW5hcnkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NCaW5hcnkoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhc3QgaW5zdGFuY2VvZiBDb25kaXRpb25hbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0NvbmRpdGlvbmFsKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgQ2FsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc01ldGhvZENhbGwoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhc3QgaW5zdGFuY2VvZiBDaGFpbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0NoYWluKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgQmluZGluZ1BpcGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NQaXBlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBleHRlbmRDdHhXaXRoTG9jYWxzKCkge1xuICAgICAgICBjb25zdCB2MSA9IHRoaXMuY3JlYXRlVmFyKCk7XG4gICAgICAgIHRoaXMuc3RtdHMucHVzaChcbiAgICAgICAgICAgIGAke3YxfT1PYmplY3QuYXNzaWduKHt9LCBsb2NhbHMpYCxcbiAgICAgICAgICAgIGBPYmplY3Quc2V0UHJvdG90eXBlT2YoJHt2MX0sIF9jdHgpYCxcbiAgICAgICAgICAgIGBjdHg9JHt2MX1gXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZm5Cb2R5KCkge1xuICAgICAgICB0aGlzLmRlY2xhcmF0aW9ucy5wdXNoKCdjdHgnKTtcbiAgICAgICAgcmV0dXJuICdcInVzZSBzdHJpY3RcIjtcXG52YXIgJyArIHRoaXMuZGVjbGFyYXRpb25zLmpvaW4oJywnKSArICc7XFxuJyArIHRoaXMuc3RtdHMuam9pbignOycpO1xuICAgIH1cblxuICAgIGZuQXJncygpIHtcbiAgICAgICAgY29uc3QgYXJncyA9IFsnX3BsdXMnLCAnX21pbnVzJywgJ19pc0RlZiddO1xuXG4gICAgICAgIGlmICh0aGlzLmV4cHJUeXBlID09PSBFeHByZXNzaW9uVHlwZS5CaW5kaW5nKSB7XG4gICAgICAgICAgICBhcmdzLnB1c2goJ2dldFBQVmFsJywgJ19wcGMnKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgWywgcGlwZVZhcl0gb2YgdGhpcy5waXBlcykge1xuICAgICAgICAgICAgICAgIGFyZ3MucHVzaChwaXBlVmFyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGFyZ3MucHVzaCgnX2N0eCcsICdsb2NhbHMnKTtcblxuICAgICAgICByZXR1cm4gYXJncy5qb2luKCcsJyk7XG4gICAgfVxuXG4gICAgYWRkUmV0dXJuU3RtdChyZXN1bHQpIHtcbiAgICAgICAgLy8gaWYgKHRoaXMuZXhwclR5cGUgPT09IEV4cHJlc3Npb25UeXBlLkJpbmRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuc3RtdHMucHVzaChgcmV0dXJuICR7cmVzdWx0fTtgKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIGNsZWFudXAoKSB7XG4gICAgICAgIHRoaXMuYXN0ID0gdGhpcy5jQXN0ID0gdGhpcy5zdG10cyA9IHRoaXMuY1N0bXRzID0gdGhpcy5kZWNsYXJhdGlvbnMgPSB0aGlzLnBpcGVzID0gdGhpcy5waXBlTmFtZVZzSXNQdXJlTWFwID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbXBpbGUoZGVmT25seT8pIHtcbiAgICAgICAgdGhpcy5leHRlbmRDdHhXaXRoTG9jYWxzKCk7XG4gICAgICAgIHRoaXMuYWRkUmV0dXJuU3RtdCh0aGlzLmJ1aWxkKHRoaXMuYXN0KSk7XG4gICAgICAgIGlmIChkZWZPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm4ge2ZuQm9keTogdGhpcy5mbkJvZHkoKSwgZm5BcmdzOiB0aGlzLmZuQXJncygpLCBwaXBlczogdGhpcy5waXBlc307XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZm4gPSBuZXcgRnVuY3Rpb24odGhpcy5mbkFyZ3MoKSwgdGhpcy5mbkJvZHkoKSk7XG4gICAgICAgIGxldCBib3VuZEZuO1xuICAgICAgICBpZiAodGhpcy5leHByVHlwZSA9PT0gRXhwcmVzc2lvblR5cGUuQmluZGluZykge1xuICAgICAgICAgICAgYm91bmRGbiA9IGZuLmJpbmQodW5kZWZpbmVkLCBwbHVzLCBtaW51cywgaXNEZWYsIGdldFB1cmVQaXBlVmFsKTtcbiAgICAgICAgICAgIGJvdW5kRm4udXNlZFBpcGVzID0gdGhpcy5waXBlcy5zbGljZSgwKTsgLy8gY2xvbmVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGJvdW5kRm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgcGx1cywgbWludXMsIGlzRGVmKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2xlYW51cCgpO1xuICAgICAgICByZXR1cm4gYm91bmRGbjtcbiAgICB9XG59XG5cbmNvbnN0IG51bGxQaXBlID0gKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zZm9ybTogbm9vcFxuICAgIH07XG59O1xuXG5sZXQgX2NzcEVuYWJsZWQ7XG5jb25zdCBpc0NTUEVuYWJsZWQgPSAoKSA9PiB7XG4gICAgaWYodHlwZW9mIF9jc3BFbmFibGVkICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gX2NzcEVuYWJsZWQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIG5ldyBGdW5jdGlvbigpO1xuICAgICAgICBfY3NwRW5hYmxlZCA9IGZhbHNlO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgICBfY3NwRW5hYmxlZCA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiBfY3NwRW5hYmxlZDtcbn07XG5cbmxldCBwaXBlUHJvdmlkZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRQaXBlUHJvdmlkZXIoX3BpcGVQcm92aWRlcikge1xuICAgIHBpcGVQcm92aWRlciA9IF9waXBlUHJvdmlkZXI7XG59XG5cbmVudW0gRXhwcmVzc2lvblR5cGUge1xuICAgIEJpbmRpbmcsXG4gICAgQWN0aW9uXG59XG5cbmV4cG9ydCBmdW5jdGlvbiAkcGFyc2VFeHByKGV4cHI6IHN0cmluZywgZGVmT25seT86IGJvb2xlYW4pOiBQYXJzZUV4cHJSZXN1bHQge1xuXG4gICAgaWYgKCFwaXBlUHJvdmlkZXIpIHtcbiAgICAgICAgcmV0dXJuIG5vb3A7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiAoZXhwcikgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBub29wO1xuICAgIH1cblxuICAgIGV4cHIgPSBleHByLnRyaW0oKTtcblxuICAgIGlmIChleHByLmVuZHNXaXRoKCc7JykpIHtcbiAgICAgICAgZXhwciA9IGV4cHIuc2xpY2UoMCwgLTEpOyAvLyByZW1vdmUgdGhlIHRyYWlsaW5nIHNlbWljb2xvblxuICAgIH1cblxuICAgIGlmICghZXhwci5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIG5vb3A7XG4gICAgfVxuXG4gICAgbGV0IGZuID0gZXhwckZuQ2FjaGUuZ2V0KGV4cHIpO1xuXG4gICAgaWYgKGZuKSB7XG4gICAgICAgIHJldHVybiBmbjtcbiAgICB9XG5cbiAgICBsZXQgYm91bmRGbjtcbiAgICBpZiAoIWRlZk9ubHkpIHtcbiAgICAgICAgYm91bmRGbiA9IGdldEZuRm9yQmluZEV4cHIoZXhwcik7XG4gICAgfVxuXG4gICAgLy8gZmFsbGJhY2sgdG8gZ2VuZXJhdGUgZnVuY3Rpb24gaW4gcnVudGltZS4gVGhpcyB3aWxsIGJyZWFrIGlmIENTUCBpcyBlbmFibGVkXG4gICAgaWYgKCFib3VuZEZuKSB7XG4gICAgICAgIC8vIElmIENTUCBlbmFibGVkLCBmdW5jdGlvbiBkZWYgbm90IGZvdW5kIGZyb20gdGhlIGdlbmVyYXRlZCBmbiBleHByZXNzaW9ucyBmb3IgdGhlIHBhZ2UuXG4gICAgICAgIC8vIEhhbmRsZSBiaW5kIGV4cHJlc3Npb25zIHVzZWQgaW50ZXJuYWxseSBpbnNpZGUgV00gY29tcG9uZW50cy4gZS5nLiB3bUFuY2hvciB1c2VkIGluc2lkZSBuYXYuY29tcC5odG1sXG4gICAgICAgIGlmIChpc0NTUEVuYWJsZWQoKSkge1xuICAgICAgICAgICAgYm91bmRGbiA9IGZ1bmN0aW9uKGN0eCwgbG9jYWxzKSB7XG4gICAgICAgICAgICAgICAgLy8gaGFuZGxlIGludGVybmFsIGJpbmRpbmdzIGZvciB3bSB3aWRnZXRzIHVzZWQgaW5zaWRlIGEgY29tcG9uZW50XG4gICAgICAgICAgICAgICAgbGV0IF9jdHggPSBPYmplY3QuYXNzaWduKHt9LCBsb2NhbHMpO1xuICAgICAgICAgICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihfY3R4LCBjdHgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBfLmdldChfY3R4LCBleHByKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZXIgPSBuZXcgUGFyc2VyKG5ldyBMZXhlcik7XG4gICAgICAgICAgICBjb25zdCBhc3QgPSBwYXJzZXIucGFyc2VCaW5kaW5nKGV4cHIsICcnLDApO1xuXG4gICAgICAgICAgICBpZiAoYXN0LmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBmbiA9IG5vb3A7XG4gICAgICAgICAgICAgICAgYm91bmRGbiA9IGZuO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwaXBlTmFtZVZzSXNQdXJlTWFwID0gcGlwZVByb3ZpZGVyLmdldFBpcGVOYW1lVnNJc1B1cmVNYXAoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBhc3RDb21waWxlciA9IG5ldyBBU1RDb21waWxlcihhc3QuYXN0LCBFeHByZXNzaW9uVHlwZS5CaW5kaW5nLCBwaXBlTmFtZVZzSXNQdXJlTWFwKTtcbiAgICAgICAgICAgICAgICBmbiA9IGFzdENvbXBpbGVyLmNvbXBpbGUoZGVmT25seSk7XG4gICAgICAgICAgICAgICAgaWYgKGRlZk9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChmbi51c2VkUGlwZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBpcGVBcmdzID0gW107XG4gICAgICAgICAgICAgICAgICAgIGxldCBoYXNQdXJlUGlwZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtwaXBlTmFtZV0gb2YgZm4udXNlZFBpcGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwaXBlSW5mbyA9IHBpcGVQcm92aWRlci5tZXRhKHBpcGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwaXBlSW5zdGFuY2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXBpcGVJbmZvKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlwZUluc3RhbmNlID0gbnVsbFBpcGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaXBlSW5mby5wdXJlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc1B1cmVQaXBlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlwZUluc3RhbmNlID0gcHVyZVBpcGVzLmdldChwaXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwaXBlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlwZUluc3RhbmNlID0gcGlwZVByb3ZpZGVyLmdldEluc3RhbmNlKHBpcGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlwZUluZm8ucHVyZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXJlUGlwZXMuc2V0KHBpcGVOYW1lLCBwaXBlSW5zdGFuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHBpcGVBcmdzLnB1c2gocGlwZUluc3RhbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHBpcGVBcmdzLnVuc2hpZnQoaGFzUHVyZVBpcGUgPyBuZXcgTWFwKCkgOiB1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgICAgICBib3VuZEZuID0gZm4uYmluZCh1bmRlZmluZWQsIC4uLnBpcGVBcmdzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBib3VuZEZuID0gZm4uYmluZCh1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZXhwckZuQ2FjaGUuc2V0KGV4cHIsIGJvdW5kRm4pO1xuXG4gICAgcmV0dXJuIGJvdW5kRm47XG59XG5cbmZ1bmN0aW9uIHNpbXBsZUZ1bmN0aW9uRXZhbHVhdG9yKGV4cHIsIGN0eCwgbG9jYWxzKSB7XG4gICAgbGV0IF9jdHggPSBPYmplY3QuYXNzaWduKHt9LCBsb2NhbHMpO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihfY3R4LCBjdHgpO1xuXG4gICAgbGV0IHBhcnRzID0gZXhwci5zcGxpdCgnKCcpO1xuICAgIGxldCBmbk5hbWUgPSBwYXJ0c1swXTtcbiAgICBsZXQgY29tcHV0ZWRGbiA9IF8uZ2V0KGN0eCwgZm5OYW1lKTtcblxuICAgIGlmIChjb21wdXRlZEZuKSB7XG4gICAgICAgIGxldCBhcmdzID0gcGFydHNbMV0ucmVwbGFjZSgnKScsICcnKTtcbiAgICAgICAgYXJncyA9IGFyZ3Muc3BsaXQoJywnKTtcbiAgICAgICAgbGV0IGNvbXB1dGVkQXJncyA9IFtdO1xuICAgICAgICBhcmdzLmZvckVhY2goKGFyZyk9PiB7XG4gICAgICAgICAgICBhcmcgPSBhcmcgJiYgYXJnLnRyaW0oKTtcbiAgICAgICAgICAgIGNvbXB1dGVkQXJncy5wdXNoKF8uZ2V0KF9jdHgsIGFyZykpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNvbXB1dGVkRm4uYmluZChfY3R4KSguLi5jb21wdXRlZEFyZ3MpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uICRwYXJzZUV2ZW50KGV4cHIsIGRlZk9ubHk/KTogUGFyc2VFeHByUmVzdWx0IHtcbiAgICBpZiAodHlwZW9mIChleHByKSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIG5vb3A7XG4gICAgfVxuXG4gICAgZXhwciA9IGV4cHIudHJpbSgpO1xuXG4gICAgaWYgKCFleHByLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gbm9vcDtcbiAgICB9XG5cbiAgICBsZXQgZm4gPSBldmVudEZuQ2FjaGUuZ2V0KGV4cHIpO1xuXG4gICAgaWYgKGZuKSB7XG4gICAgICAgIHJldHVybiBmbjtcbiAgICB9XG5cbiAgICBpZiAoIWRlZk9ubHkpIHtcbiAgICAgICAgZm4gPSBnZXRGbkZvckV2ZW50RXhwcihleHByKTtcbiAgICB9XG5cbiAgICAvLyBmYWxsYmFjayB0byBnZW5lcmF0ZSBmdW5jdGlvbiBpbiBydW50aW1lLiBUaGlzIHdpbGwgYnJlYWsgaWYgQ1NQIGlzIGVuYWJsZWRcbiAgICBpZighZm4pIHtcbiAgICAgICAgaWYgKGlzQ1NQRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICBmbiA9IHNpbXBsZUZ1bmN0aW9uRXZhbHVhdG9yLmJpbmQodW5kZWZpbmVkLCBleHByKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlciA9IG5ldyBQYXJzZXIobmV3IExleGVyKTtcbiAgICAgICAgICAgIGNvbnN0IGFzdCA9IHBhcnNlci5wYXJzZUFjdGlvbihleHByLCAnJywgMCk7XG5cbiAgICAgICAgICAgIGlmIChhc3QuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBub29wO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYXN0Q29tcGlsZXIgPSBuZXcgQVNUQ29tcGlsZXIoYXN0LmFzdCwgRXhwcmVzc2lvblR5cGUuQWN0aW9uKTtcbiAgICAgICAgICAgIGZuID0gYXN0Q29tcGlsZXIuY29tcGlsZShkZWZPbmx5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGV2ZW50Rm5DYWNoZS5zZXQoZXhwciwgZm4pO1xuICAgIHJldHVybiBmbjtcbn1cblxuY29uc3QgZm5OYW1lTWFwID0gbmV3IE1hcCgpO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJGbkJ5RXhwciA9IChleHByLCBmbiwgdXNlZFBpcGVzPykgPT4ge1xuICAgIGZuLnVzZWRQaXBlcyA9IHVzZWRQaXBlcyB8fCBbXTtcbiAgICBmbk5hbWVNYXAuc2V0KGV4cHIsIGZuKTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldEZuQnlFeHByID0gKGV4cHIpID0+IGZuTmFtZU1hcC5nZXQoZXhwcilcblxuY29uc3QgZm5FeGVjdXRvciA9IChleHByLCBleHByVHlwZSkgPT4ge1xuICAgIGxldCBmbiA9IGdldEZuQnlFeHByKGV4cHIpO1xuICAgIGlmICghZm4pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB1c2VkUGlwZXMgPSBmbi51c2VkUGlwZXMgfHwgW107XG5cbiAgICBpZihleHByVHlwZSA9PT0gRXhwcmVzc2lvblR5cGUuQmluZGluZykge1xuICAgICAgICBmbiA9IGZuLmJpbmQodW5kZWZpbmVkLCBwbHVzLCBtaW51cywgaXNEZWYsIGdldFB1cmVQaXBlVmFsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBmbiA9IGZuLmJpbmQodW5kZWZpbmVkLCBwbHVzLCBtaW51cywgaXNEZWYpO1xuICAgIH1cblxuICAgIGlmICh1c2VkUGlwZXMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHBpcGVBcmdzID0gW107XG4gICAgICAgIGxldCBoYXNQdXJlUGlwZSA9IGZhbHNlO1xuICAgICAgICBmb3IgKGNvbnN0IFtwaXBlTmFtZV0gb2YgdXNlZFBpcGVzKSB7XG4gICAgICAgICAgICBjb25zdCBwaXBlSW5mbyA9IHBpcGVQcm92aWRlci5tZXRhKHBpcGVOYW1lKTtcbiAgICAgICAgICAgIGxldCBwaXBlSW5zdGFuY2U7XG4gICAgICAgICAgICBpZiAoIXBpcGVJbmZvKSB7XG4gICAgICAgICAgICAgICAgcGlwZUluc3RhbmNlID0gbnVsbFBpcGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChwaXBlSW5mby5wdXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1B1cmVQaXBlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcGlwZUluc3RhbmNlID0gcHVyZVBpcGVzLmdldChwaXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCFwaXBlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgcGlwZUluc3RhbmNlID0gcGlwZVByb3ZpZGVyLmdldEluc3RhbmNlKHBpcGVOYW1lKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocGlwZUluZm8ucHVyZSkge1xuICAgICAgICAgICAgICAgICAgICBwdXJlUGlwZXMuc2V0KHBpcGVOYW1lLCBwaXBlSW5zdGFuY2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBpcGVBcmdzLnB1c2gocGlwZUluc3RhbmNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBpcGVBcmdzLnVuc2hpZnQoaGFzUHVyZVBpcGUgPyBuZXcgTWFwKCkgOiB1bmRlZmluZWQpO1xuICAgICAgICBmbiA9IGZuLmJpbmQodW5kZWZpbmVkLCAuLi5waXBlQXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGV4cHJUeXBlID09PSBFeHByZXNzaW9uVHlwZS5CaW5kaW5nKSB7XG4gICAgICAgICAgICBmbiA9IGZuLmJpbmQodW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZuO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0Rm5Gb3JCaW5kRXhwciA9IChleHByKSA9PiB7XG4gICAgcmV0dXJuIGZuRXhlY3V0b3IoZXhwciwgRXhwcmVzc2lvblR5cGUuQmluZGluZyk7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRGbkZvckV2ZW50RXhwciA9IChleHByKSA9PiB7XG4gICAgcmV0dXJuIGZuRXhlY3V0b3IoZXhwciwgRXhwcmVzc2lvblR5cGUuQWN0aW9uKTtcbn1cbiJdfQ==
|
|
592
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbi1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy91dGlscy9leHByZXNzaW9uLXBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsTUFBTSxFQUNOLFdBQVcsRUFDWCxJQUFJLEVBQ0osS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULEtBQUssRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixhQUFhLEVBQ2IsS0FBSyxFQUNSLE1BQU0sbUJBQW1CLENBQUM7QUFJM0IsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7QUFDaEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25FLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2xELE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUl0QixNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzlCLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDL0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUU1QixNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUM3QixJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUU7UUFDaEQsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFdBQVc7UUFDakMsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtJQUM3QixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQ3RCLElBQUksU0FBUyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDekIsUUFBUSxHQUFHLEVBQUU7UUFDVCxLQUFLLEVBQUU7WUFDSCxTQUFTLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLElBQUksU0FBUyxFQUFFO2dCQUNYLE1BQU07YUFDVDtRQUNMLEtBQUssQ0FBQztZQUNGLFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxTQUFTLEVBQUU7Z0JBQ1gsTUFBTTthQUNUO1FBQ0wsS0FBSyxDQUFDO1lBQ0YsU0FBUyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLFNBQVMsRUFBRTtnQkFDWCxNQUFNO2FBQ1Q7UUFDTCxLQUFLLENBQUM7WUFDRixTQUFTLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLElBQUksU0FBUyxFQUFFO2dCQUNYLE1BQU07YUFDVDtRQUNMLEtBQUssQ0FBQztZQUNGLFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxTQUFTLEVBQUU7Z0JBQ1gsTUFBTTthQUNUO1FBQ0wsS0FBSyxDQUFDO1lBQ0YsU0FBUyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLFNBQVMsRUFBRTtnQkFDWCxNQUFNO2FBQ1Q7UUFDTCxLQUFLLENBQUM7WUFDRixTQUFTLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLElBQUksU0FBUyxFQUFFO2dCQUNYLE1BQU07YUFDVDtRQUNMLEtBQUssQ0FBQztZQUNGLFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxTQUFTLEVBQUU7Z0JBQ1gsTUFBTTthQUNUO1FBQ0wsS0FBSyxDQUFDO1lBQ0YsU0FBUyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLFNBQVMsRUFBRTtnQkFDWCxNQUFNO2FBQ1Q7UUFDTCxLQUFLLENBQUM7WUFDRixTQUFT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Q3RDLE9BQU8sVUFBVSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbkQsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBCaW5hcnksXG4gICAgQmluZGluZ1BpcGUsXG4gICAgQ2FsbCxcbiAgICBDaGFpbixcbiAgICBDb25kaXRpb25hbCxcbiAgICBJbXBsaWNpdFJlY2VpdmVyLFxuICAgIEtleWVkUmVhZCxcbiAgICBMZXhlcixcbiAgICBMaXRlcmFsQXJyYXksXG4gICAgTGl0ZXJhbE1hcCxcbiAgICBMaXRlcmFsUHJpbWl0aXZlLFxuICAgIFBhcnNlcixcbiAgICBQcmVmaXhOb3QsXG4gICAgUHJvcGVydHlSZWFkLFxuICAgIFByb3BlcnR5V3JpdGUsXG4gICAgVW5hcnlcbn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5cbmNvbnN0IGlzRGVmID0gdiA9PiB2ICE9PSB2b2lkIDA7XG5jb25zdCBpZkRlZiA9ICh2LCBkKSA9PiB2ID09PSB2b2lkIDAgPyBkIDogdjtcbmNvbnN0IHBsdXMgPSAoYSwgYikgPT4gdm9pZCAwID09PSBhID8gYiA6IHZvaWQgMCA9PT0gYiA/IGEgOiBhICsgYjtcbmNvbnN0IG1pbnVzID0gKGEsIGIpID0+IGlmRGVmKGEsIDApIC0gaWZEZWYoYiwgMCk7XG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbmV4cG9ydCB0eXBlIFBhcnNlRXhwclJlc3VsdCA9IChkYXRhPzogYW55LCBsb2NhbHM/OiBhbnkpID0+IGFueTtcblxuY29uc3QgZXhwckZuQ2FjaGUgPSBuZXcgTWFwKCk7XG5jb25zdCBldmVudEZuQ2FjaGUgPSBuZXcgTWFwKCk7XG5jb25zdCBwdXJlUGlwZXMgPSBuZXcgTWFwKCk7XG5cbmNvbnN0IHByaW1pdGl2ZUVxdWFscyA9IChhLCBiKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBhID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgYiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoYSAhPT0gYSAmJiBiICE9PSBiKSB7IC8vIE5hTiBjYXNlXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gYSA9PT0gYjtcbn07XG5cbmNvbnN0IGRldGVjdENoYW5nZXMgPSAob3YsIG52KSA9PiB7XG4gICAgY29uc3QgbGVuID0gbnYubGVuZ3RoO1xuICAgIGxldCBoYXNDaGFuZ2UgPSBsZW4gPiAxMDtcbiAgICBzd2l0Y2ggKGxlbikge1xuICAgICAgICBjYXNlIDEwOlxuICAgICAgICAgICAgaGFzQ2hhbmdlID0gIXByaW1pdGl2ZUVxdWFscyhvdls5XSwgbnZbOV0pO1xuICAgICAgICAgICAgaWYgKGhhc0NoYW5nZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICBoYXNDaGFuZ2UgPSAhcHJpbWl0aXZlRXF1YWxzKG92WzhdLCBudls4XSk7XG4gICAgICAgICAgICBpZiAoaGFzQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgIGhhc0NoYW5nZSA9ICFwcmltaXRpdmVFcXVhbHMob3ZbN10sIG52WzddKTtcbiAgICAgICAgICAgIGlmIChoYXNDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgaGFzQ2hhbmdlID0gIXByaW1pdGl2ZUVxdWFscyhvdls2XSwgbnZbNl0pO1xuICAgICAgICAgICAgaWYgKGhhc0NoYW5nZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICBoYXNDaGFuZ2UgPSAhcHJpbWl0aXZlRXF1YWxzKG92WzVdLCBudls1XSk7XG4gICAgICAgICAgICBpZiAoaGFzQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIGhhc0NoYW5nZSA9ICFwcmltaXRpdmVFcXVhbHMob3ZbNF0sIG52WzRdKTtcbiAgICAgICAgICAgIGlmIChoYXNDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgaGFzQ2hhbmdlID0gIXByaW1pdGl2ZUVxdWFscyhvdlszXSwgbnZbM10pO1xuICAgICAgICAgICAgaWYgKGhhc0NoYW5nZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICBoYXNDaGFuZ2UgPSAhcHJpbWl0aXZlRXF1YWxzKG92WzJdLCBudlsyXSk7XG4gICAgICAgICAgICBpZiAoaGFzQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIGhhc0NoYW5nZSA9ICFwcmltaXRpdmVFcXVhbHMob3ZbMV0sIG52WzFdKTtcbiAgICAgICAgICAgIGlmIChoYXNDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgaGFzQ2hhbmdlID0gIXByaW1pdGl2ZUVxdWFscyhvdlswXSwgbnZbMF0pO1xuICAgICAgICAgICAgaWYgKGhhc0NoYW5nZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaGFzQ2hhbmdlO1xufTtcblxuY29uc3QgZ2V0UHVyZVBpcGVWYWwgPSAocGlwZSwgY2FjaGUsIGlkZW50aWZpZXIsIC4uLmFyZ3MpID0+IHtcbiAgICBsZXQgbGFzdFJlc3VsdCA9IGNhY2hlLmdldChpZGVudGlmaWVyKTtcbiAgICBsZXQgcmVzdWx0O1xuICAgIGlmIChsYXN0UmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IGlzTW9kaWZpZWQgPSBkZXRlY3RDaGFuZ2VzKGxhc3RSZXN1bHQuYXJncywgYXJncyk7XG4gICAgICAgIGlmICghaXNNb2RpZmllZCkge1xuICAgICAgICAgICAgcmV0dXJuIGxhc3RSZXN1bHQucmVzdWx0O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlc3VsdCA9IHBpcGUudHJhbnNmb3JtKC4uLmFyZ3MpO1xuICAgIGxhc3RSZXN1bHQgPSB7YXJncywgcmVzdWx0fTtcbiAgICBjYWNoZS5zZXQoaWRlbnRpZmllciwgbGFzdFJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmNvbnN0IFNUUl9FU0NBUEVfUkVHRVggPSAvW14gYS16QS1aMC05XS9nO1xuXG5jb25zdCBzdHJpbmdFc2NhcGVGbiA9IHN0ciA9PiB7XG4gICAgcmV0dXJuICdcXFxcdScgKyAoJzAwMDAnICsgc3RyLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtNCk7XG59O1xuXG5jbGFzcyBBU1RDb21waWxlciB7XG4gICAgYXN0OyAvLyBhc3QgdG8gYmUgY29tcGlsZWRcbiAgICBkZWNsYXJhdGlvbnM7IC8vIHZhcmlhYmxlIG5hbWVzXG4gICAgc3RtdHM7IC8vIGZ1bmN0aW9uIGJvZHkgc3RhdGVtZW50c1xuICAgIHBpcGVzOyAvLyB1c2VkIHBpcGVzXG4gICAgdklkeDsgLy8gdmFyaWFibGUgbmFtZSBpbmRleFxuICAgIGNBc3Q7IC8vIGN1cnJlbnQgQVNUIG5vZGUgaW4gdGhlIHByb2Nlc3NcbiAgICBjU3RtdHM7XG4gICAgcGlwZU5hbWVWc0lzUHVyZU1hcDtcbiAgICBleHByVHlwZTogRXhwcmVzc2lvblR5cGU7XG5cbiAgICBjb25zdHJ1Y3Rvcihhc3QsIGV4cHJUeXBlLCBwaXBlTmFtZVZzSXNQdXJlTWFwPykge1xuICAgICAgICB0aGlzLmFzdCA9IGFzdDtcbiAgICAgICAgdGhpcy5kZWNsYXJhdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5zdG10cyA9IFtdO1xuICAgICAgICB0aGlzLnBpcGVzID0gW107XG4gICAgICAgIHRoaXMudklkeCA9IDA7XG4gICAgICAgIHRoaXMuZXhwclR5cGUgPSBleHByVHlwZTtcbiAgICAgICAgdGhpcy5waXBlTmFtZVZzSXNQdXJlTWFwID0gcGlwZU5hbWVWc0lzUHVyZU1hcDtcbiAgICB9XG5cbiAgICBjcmVhdGVWYXIoKSB7XG4gICAgICAgIGNvbnN0IHYgPSBgdiR7dGhpcy52SWR4Kyt9YDtcbiAgICAgICAgdGhpcy5kZWNsYXJhdGlvbnMucHVzaCh2KTtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0ltcGxpY2l0UmVjZWl2ZXIoKSB7XG4gICAgICAgIHJldHVybiAnY3R4JztcbiAgICB9XG5cbiAgICBwcm9jZXNzTGl0ZXJhbFByaW1pdGl2ZSgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICByZXR1cm4gdHlwZW9mIChhc3QudmFsdWUpID09PSAnc3RyaW5nJyA/IGBcIiR7YXN0LnZhbHVlLnJlcGxhY2UoL1wiL2csICdcXFwiJykucmVwbGFjZShTVFJfRVNDQVBFX1JFR0VYLCBzdHJpbmdFc2NhcGVGbil9XCJgIDogYXN0LnZhbHVlO1xuICAgIH1cblxuICAgIHByb2Nlc3NMaXRlcmFsQXJyYXkoKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgY29uc3Qgc3RtdHMgPSB0aGlzLmNTdG10cztcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlVmFyKCk7XG4gICAgICAgIGNvbnN0IHMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGFzdC5leHByZXNzaW9ucykge1xuICAgICAgICAgICAgcy5wdXNoKHRoaXMuYnVpbGQoaXRlbSwgc3RtdHMpKTtcbiAgICAgICAgfVxuICAgICAgICBzdG10cy5wdXNoKGAke3Z9PVske3Muam9pbignLCcpfV1gKTtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0xpdGVyYWxNYXAoKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgY29uc3Qgc3RtdHMgPSB0aGlzLmNTdG10cztcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlVmFyKCk7XG4gICAgICAgIGNvbnN0IF92YWx1ZXMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBfdmFsdWUgb2YgYXN0LnZhbHVlcykge1xuICAgICAgICAgICAgX3ZhbHVlcy5wdXNoKHRoaXMuYnVpbGQoX3ZhbHVlLCBzdG10cykpO1xuICAgICAgICB9XG4gICAgICAgIHN0bXRzLnB1c2goYCR7dn09eyR7YXN0LmtleXMubWFwKChrLCBpKSA9PiBgJyR7ay5rZXl9Jzoke192YWx1ZXNbaV19YCl9fWApO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBwcm9jZXNzUHJvcGVydHlSZWFkKCkge1xuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmNBc3Q7XG4gICAgICAgIGNvbnN0IHN0bXRzID0gdGhpcy5jU3RtdHM7XG4gICAgICAgIGNvbnN0IHIgPSB0aGlzLmJ1aWxkKGFzdC5yZWNlaXZlciwgc3RtdHMpO1xuICAgICAgICBjb25zdCB2ID0gdGhpcy5jcmVhdGVWYXIoKTtcbiAgICAgICAgc3RtdHMucHVzaChgJHt2fT0ke3J9JiYke3J9LiR7YXN0Lm5hbWV9YCk7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cblxuICAgIHByb2Nlc3NLZXllZFJlYWQoKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgY29uc3Qgc3RtdHMgPSB0aGlzLmNTdG10cztcbiAgICAgICAgY29uc3QgayA9IHRoaXMuYnVpbGQoYXN0LmtleSwgc3RtdHMpO1xuICAgICAgICBjb25zdCBvID0gdGhpcy5idWlsZChhc3QucmVjZWl2ZXIsIHN0bXRzKTtcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlVmFyKCk7XG4gICAgICAgIHN0bXRzLnB1c2goYCR7dn09JHtvfSYmJHtvfVske2t9XWApO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBwcm9jZXNzUHJlZml4Tm90KCkge1xuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmNBc3Q7XG4gICAgICAgIGNvbnN0IHN0bXRzID0gdGhpcy5jU3RtdHM7XG4gICAgICAgIGNvbnN0IHIgPSB0aGlzLmJ1aWxkKGFzdC5leHByZXNzaW9uLCBzdG10cyk7XG4gICAgICAgIHN0bXRzLnB1c2goYCR7cn09ISR7cn1gKTtcbiAgICAgICAgcmV0dXJuIHI7XG4gICAgfVxuXG4gICAgaGFuZGxlQmluYXJ5UGx1c19NaW51cygpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCBsID0gdGhpcy5idWlsZChhc3QubGVmdCwgc3RtdHMpO1xuICAgICAgICBjb25zdCByID0gdGhpcy5idWlsZChhc3QucmlnaHQsIHN0bXRzKTtcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlVmFyKCk7XG4gICAgICAgIGNvbnN0IG0gPSBhc3Qub3BlcmF0aW9uID09PSAnKycgPyAnX3BsdXMnIDogJ19taW51cyc7XG4gICAgICAgIHN0bXRzLnB1c2goYCR7dn09JHttfSgke2x9LCR7cn0pYCk7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cblxuICAgIGhhbmRsZUJpbmFyeUFORF9PUigpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCBfczEgPSBbXTtcbiAgICAgICAgY29uc3QgX3NsID0gW107XG4gICAgICAgIGNvbnN0IF9zciA9IFtdO1xuICAgICAgICBjb25zdCBsID0gdGhpcy5idWlsZChhc3QubGVmdCwgX3NsKTtcbiAgICAgICAgY29uc3QgciA9IHRoaXMuYnVpbGQoYXN0LnJpZ2h0LCBfc3IpO1xuXG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLmNyZWF0ZVZhcigpO1xuXG4gICAgICAgIGlmIChhc3Qub3BlcmF0aW9uID09PSAnJiYnKSB7XG4gICAgICAgICAgICBfczEucHVzaChcbiAgICAgICAgICAgICAgICBfc2wuam9pbignOycpLFxuICAgICAgICAgICAgICAgIGA7JHt2fT1mYWxzZWAsXG4gICAgICAgICAgICAgICAgYDtpZigke2x9KXtgLFxuICAgICAgICAgICAgICAgIF9zci5qb2luKCc7JyksXG4gICAgICAgICAgICAgICAgYDske3Z9PSR7cn07YCxcbiAgICAgICAgICAgICAgICBgfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBfczEucHVzaChcbiAgICAgICAgICAgICAgICBfc2wuam9pbignOycpLFxuICAgICAgICAgICAgICAgIGA7JHt2fT0ke2x9YCxcbiAgICAgICAgICAgICAgICBgO2lmKCEke2x9KXtgLFxuICAgICAgICAgICAgICAgIF9zci5qb2luKCc7JyksXG4gICAgICAgICAgICAgICAgYDske3Z9PSR7cn07YCxcbiAgICAgICAgICAgICAgICBgfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgc3RtdHMucHVzaChfczEuam9pbignJykpO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBoYW5kbGVCaW5hcnlEZWZhdWx0KCkge1xuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmNBc3Q7XG4gICAgICAgIGNvbnN0IHN0bXRzID0gdGhpcy5jU3RtdHM7XG4gICAgICAgIGNvbnN0IGwgPSB0aGlzLmJ1aWxkKGFzdC5sZWZ0LCBzdG10cyk7XG4gICAgICAgIGNvbnN0IHIgPSB0aGlzLmJ1aWxkKGFzdC5yaWdodCwgc3RtdHMpO1xuICAgICAgICBjb25zdCB2ID0gdGhpcy5jcmVhdGVWYXIoKTtcbiAgICAgICAgc3RtdHMucHVzaChgJHt2fT0ke2x9JHthc3Qub3BlcmF0aW9ufSR7cn1gKTtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0JpbmFyeSgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBvcCA9IGFzdC5vcGVyYXRpb247XG4gICAgICAgIGlmIChvcCA9PT0gJysnIHx8IG9wID09PSAnLScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUJpbmFyeVBsdXNfTWludXMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3AgPT09ICcmJicgfHwgb3AgPT09ICd8fCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUJpbmFyeUFORF9PUigpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQmluYXJ5RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHByb2Nlc3NVbmFyeSgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCBlID0gdGhpcy5idWlsZChhc3QuZXhwciwgc3RtdHMpO1xuICAgICAgICBjb25zdCB2ID0gdGhpcy5jcmVhdGVWYXIoKTtcbiAgICAgICAgc3RtdHMucHVzaChgJHt2fT0ke2FzdC5vcGVyYXRvcn0ke2V9YCk7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cblxuICAgIHByb2Nlc3NDb25kaXRpb25hbCgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCBjb25kaXRpb24gPSB0aGlzLmJ1aWxkKGFzdC5jb25kaXRpb24sIHN0bXRzKTtcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlVmFyKCk7XG4gICAgICAgIGNvbnN0IF9zMSA9IFtdO1xuICAgICAgICBjb25zdCBfczIgPSBbXTtcbiAgICAgICAgY29uc3QgX3MzID0gW107XG4gICAgICAgIGNvbnN0IHRydWVFeHAgPSB0aGlzLmJ1aWxkKGFzdC50cnVlRXhwLCBfczIpO1xuICAgICAgICBjb25zdCBmYWxzZUV4cCA9IHRoaXMuYnVpbGQoYXN0LmZhbHNlRXhwLCBfczMpO1xuXG4gICAgICAgIF9zMS5wdXNoKFxuICAgICAgICAgICAgYGlmKCR7Y29uZGl0aW9ufSl7YCxcbiAgICAgICAgICAgIF9zMi5qb2luKCc7JyksXG4gICAgICAgICAgICBgOyR7dn09JHt0cnVlRXhwfTtgLFxuICAgICAgICAgICAgYH1lbHNle2AsXG4gICAgICAgICAgICBfczMuam9pbignOycpLFxuICAgICAgICAgICAgYDske3Z9PSR7ZmFsc2VFeHB9O2AsXG4gICAgICAgICAgICBgfWBcbiAgICAgICAgKTtcblxuICAgICAgICBzdG10cy5wdXNoKF9zMS5qb2luKCcgJykpO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBwcm9jZXNzTWV0aG9kQ2FsbCgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCBfYXJncyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGFyZyBvZiBhc3QuYXJncykge1xuICAgICAgICAgICAgX2FyZ3MucHVzaCh0aGlzLmJ1aWxkKGFyZywgc3RtdHMpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmbiA9IHRoaXMuYnVpbGQoYXN0LnJlY2VpdmVyLCBzdG10cyk7XG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLmNyZWF0ZVZhcigpO1xuICAgICAgICBjb25zdCBpc0ltcGxpY2l0UmVjZWl2ZXIgPSBhc3QucmVjZWl2ZXIgaW5zdGFuY2VvZiBJbXBsaWNpdFJlY2VpdmVyIHx8IChhc3QucmVjZWl2ZXIgaW5zdGFuY2VvZiBQcm9wZXJ0eVJlYWQgJiYgYXN0LnJlY2VpdmVyPy5yZWNlaXZlciBpbnN0YW5jZW9mIEltcGxpY2l0UmVjZWl2ZXIpO1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gc3RtdHNbc3RtdHMubGVuZ3RoIC0gMV0uc3BsaXQoJyYmJylbMF0uc3BsaXQoJz0nKVsxXTtcbiAgICAgICAgc3RtdHMucHVzaChgJHt2fT0gJHtmbn0mJiR7Zm59JHtpc0ltcGxpY2l0UmVjZWl2ZXIgPyAnLmJpbmQoX2N0eCknIDogYC5iaW5kKCR7Y29udGV4dH0pYH0oJHtfYXJncy5qb2luKCcsJyl9KWApO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBwcm9jZXNzQ2hhaW4oKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgcmV0dXJuIGFzdC5leHByZXNzaW9ucy5tYXAoZSA9PiB0aGlzLmJ1aWxkKGUpKS5qb2luKCc7Jyk7XG4gICAgfVxuXG4gICAgcHJvY2Vzc1Byb3BlcnR5V3JpdGUoKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgY29uc3Qgc3RtdHMgPSB0aGlzLmNTdG10cztcbiAgICAgICAgbGV0IHJlY2VpdmVyLCBsaHM7XG4gICAgICAgIGlmIChhc3QucmVjZWl2ZXIgaW5zdGFuY2VvZiBJbXBsaWNpdFJlY2VpdmVyKSB7XG4gICAgICAgICAgICBsaHMgPSBgX2N0eC4ke2FzdC5uYW1lfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWNlaXZlciA9IHRoaXMuYnVpbGQoYXN0LnJlY2VpdmVyLCBzdG10cyk7XG4gICAgICAgICAgICBsaHMgPSBgJHtyZWNlaXZlcn0ke3JlY2VpdmVyLmxlbmd0aCA/ICcuJyA6ICcnfSR7YXN0Lm5hbWV9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJocyA9IHRoaXMuYnVpbGQoYXN0LnZhbHVlLCBzdG10cyk7XG4gICAgICAgIHN0bXRzLnB1c2goYCR7bGhzfT0ke3Joc31gKTtcbiAgICB9XG5cbiAgICBwcm9jZXNzUGlwZSgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCB0ID0gdGhpcy5jcmVhdGVWYXIoKTtcbiAgICAgICAgY29uc3QgX2FyZ3MgPSBbXTtcbiAgICAgICAgY29uc3QgX3MxID0gW107XG4gICAgICAgIGNvbnN0IF9zMiA9IFtdO1xuICAgICAgICBjb25zdCBleHAgPSB0aGlzLmJ1aWxkKGFzdC5leHAsIHN0bXRzKTtcbiAgICAgICAgZm9yIChjb25zdCBhcmcgb2YgYXN0LmFyZ3MpIHtcbiAgICAgICAgICAgIF9hcmdzLnB1c2godGhpcy5idWlsZChhcmcsIF9zMikpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcCA9IGBfcCR7dGhpcy5waXBlcy5sZW5ndGh9YDtcbiAgICAgICAgdGhpcy5waXBlcy5wdXNoKFthc3QubmFtZSwgcF0pO1xuXG4gICAgICAgIF9hcmdzLnVuc2hpZnQoZXhwKTtcblxuICAgICAgICBfczEucHVzaChcbiAgICAgICAgICAgIF9zMi5sZW5ndGggPyBfczIuam9pbignOycpICsgJzsnIDogJycsXG4gICAgICAgICAgICB0aGlzLnBpcGVOYW1lVnNJc1B1cmVNYXAuZ2V0KGFzdC5uYW1lKSA/IGAke3R9PWdldFBQVmFsKCR7cH0sX3BwYyxcIiR7cH1cIiwke19hcmdzfSlgIDogYCR7dH09JHtwfS50cmFuc2Zvcm0oJHtfYXJnc30pYFxuICAgICAgICApO1xuXG4gICAgICAgIHN0bXRzLnB1c2goX3MxLmpvaW4oJycpKTtcbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfVxuXG4gICAgYnVpbGQoYXN0LCBjU3RtdHM/KSB7XG4gICAgICAgIHRoaXMuY0FzdCA9IGFzdDtcbiAgICAgICAgdGhpcy5jU3RtdHMgPSBjU3RtdHMgfHwgdGhpcy5zdG10cztcblxuICAgICAgICBpZiAoYXN0IGluc3RhbmNlb2YgSW1wbGljaXRSZWNlaXZlcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0ltcGxpY2l0UmVjZWl2ZXIoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhc3QgaW5zdGFuY2VvZiBMaXRlcmFsUHJpbWl0aXZlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzTGl0ZXJhbFByaW1pdGl2ZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGFzdCBpbnN0YW5jZW9mIExpdGVyYWxBcnJheSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0xpdGVyYWxBcnJheSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGFzdCBpbnN0YW5jZW9mIExpdGVyYWxNYXApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NMaXRlcmFsTWFwKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgUHJvcGVydHlSZWFkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzUHJvcGVydHlSZWFkKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgUHJvcGVydHlXcml0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1Byb3BlcnR5V3JpdGUoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhc3QgaW5zdGFuY2VvZiBLZXllZFJlYWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NLZXllZFJlYWQoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhc3QgaW5zdGFuY2VvZiBQcmVmaXhOb3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NQcmVmaXhOb3QoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhc3QgaW5zdGFuY2VvZiBVbmFyeSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1VuYXJ5KCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgQmluYXJ5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQmluYXJ5KCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgQ29uZGl0aW9uYWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NDb25kaXRpb25hbCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGFzdCBpbnN0YW5jZW9mIENhbGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NNZXRob2RDYWxsKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgQ2hhaW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NDaGFpbigpO1xuICAgICAgICB9IGVsc2UgaWYgKGFzdCBpbnN0YW5jZW9mIEJpbmRpbmdQaXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzUGlwZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZXh0ZW5kQ3R4V2l0aExvY2FscygpIHtcbiAgICAgICAgY29uc3QgdjEgPSB0aGlzLmNyZWF0ZVZhcigpO1xuICAgICAgICB0aGlzLnN0bXRzLnB1c2goXG4gICAgICAgICAgICBgJHt2MX09T2JqZWN0LmFzc2lnbih7fSwgbG9jYWxzKWAsXG4gICAgICAgICAgICBgT2JqZWN0LnNldFByb3RvdHlwZU9mKCR7djF9LCBfY3R4KWAsXG4gICAgICAgICAgICBgY3R4PSR7djF9YFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZuQm9keSgpIHtcbiAgICAgICAgdGhpcy5kZWNsYXJhdGlvbnMucHVzaCgnY3R4Jyk7XG4gICAgICAgIHJldHVybiAnXCJ1c2Ugc3RyaWN0XCI7XFxudmFyICcgKyB0aGlzLmRlY2xhcmF0aW9ucy5qb2luKCcsJykgKyAnO1xcbicgKyB0aGlzLnN0bXRzLmpvaW4oJzsnKTtcbiAgICB9XG5cbiAgICBmbkFyZ3MoKSB7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBbJ19wbHVzJywgJ19taW51cycsICdfaXNEZWYnXTtcblxuICAgICAgICBpZiAodGhpcy5leHByVHlwZSA9PT0gRXhwcmVzc2lvblR5cGUuQmluZGluZykge1xuICAgICAgICAgICAgYXJncy5wdXNoKCdnZXRQUFZhbCcsICdfcHBjJyk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFssIHBpcGVWYXJdIG9mIHRoaXMucGlwZXMpIHtcbiAgICAgICAgICAgICAgICBhcmdzLnB1c2gocGlwZVZhcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhcmdzLnB1c2goJ19jdHgnLCAnbG9jYWxzJyk7XG5cbiAgICAgICAgcmV0dXJuIGFyZ3Muam9pbignLCcpO1xuICAgIH1cblxuICAgIGFkZFJldHVyblN0bXQocmVzdWx0KSB7XG4gICAgICAgIC8vIGlmICh0aGlzLmV4cHJUeXBlID09PSBFeHByZXNzaW9uVHlwZS5CaW5kaW5nKSB7XG4gICAgICAgICAgICB0aGlzLnN0bXRzLnB1c2goYHJldHVybiAke3Jlc3VsdH07YCk7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBjbGVhbnVwKCkge1xuICAgICAgICB0aGlzLmFzdCA9IHRoaXMuY0FzdCA9IHRoaXMuc3RtdHMgPSB0aGlzLmNTdG10cyA9IHRoaXMuZGVjbGFyYXRpb25zID0gdGhpcy5waXBlcyA9IHRoaXMucGlwZU5hbWVWc0lzUHVyZU1hcCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb21waWxlKGRlZk9ubHk/KSB7XG4gICAgICAgIHRoaXMuZXh0ZW5kQ3R4V2l0aExvY2FscygpO1xuICAgICAgICB0aGlzLmFkZFJldHVyblN0bXQodGhpcy5idWlsZCh0aGlzLmFzdCkpO1xuICAgICAgICBpZiAoZGVmT25seSkge1xuICAgICAgICAgICAgcmV0dXJuIHtmbkJvZHk6IHRoaXMuZm5Cb2R5KCksIGZuQXJnczogdGhpcy5mbkFyZ3MoKSwgcGlwZXM6IHRoaXMucGlwZXN9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZuID0gbmV3IEZ1bmN0aW9uKHRoaXMuZm5BcmdzKCksIHRoaXMuZm5Cb2R5KCkpO1xuICAgICAgICBsZXQgYm91bmRGbjtcbiAgICAgICAgaWYgKHRoaXMuZXhwclR5cGUgPT09IEV4cHJlc3Npb25UeXBlLkJpbmRpbmcpIHtcbiAgICAgICAgICAgIGJvdW5kRm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgcGx1cywgbWludXMsIGlzRGVmLCBnZXRQdXJlUGlwZVZhbCk7XG4gICAgICAgICAgICBib3VuZEZuLnVzZWRQaXBlcyA9IHRoaXMucGlwZXMuc2xpY2UoMCk7IC8vIGNsb25lXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBib3VuZEZuID0gZm4uYmluZCh1bmRlZmluZWQsIHBsdXMsIG1pbnVzLCBpc0RlZik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICAgICAgcmV0dXJuIGJvdW5kRm47XG4gICAgfVxufVxuXG5jb25zdCBudWxsUGlwZSA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0cmFuc2Zvcm06IG5vb3BcbiAgICB9O1xufTtcblxubGV0IF9jc3BFbmFibGVkO1xuY29uc3QgaXNDU1BFbmFibGVkID0gKCkgPT4ge1xuICAgIGlmKHR5cGVvZiBfY3NwRW5hYmxlZCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIF9jc3BFbmFibGVkO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBuZXcgRnVuY3Rpb24oKTtcbiAgICAgICAgX2NzcEVuYWJsZWQgPSBmYWxzZTtcbiAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgX2NzcEVuYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gX2NzcEVuYWJsZWQ7XG59O1xuXG5sZXQgcGlwZVByb3ZpZGVyO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0UGlwZVByb3ZpZGVyKF9waXBlUHJvdmlkZXIpIHtcbiAgICBwaXBlUHJvdmlkZXIgPSBfcGlwZVByb3ZpZGVyO1xufVxuXG5lbnVtIEV4cHJlc3Npb25UeXBlIHtcbiAgICBCaW5kaW5nLFxuICAgIEFjdGlvblxufVxuXG5leHBvcnQgZnVuY3Rpb24gJHBhcnNlRXhwcihleHByOiBzdHJpbmcsIGRlZk9ubHk/OiBib29sZWFuKTogUGFyc2VFeHByUmVzdWx0IHtcblxuICAgIGlmICghcGlwZVByb3ZpZGVyKSB7XG4gICAgICAgIHJldHVybiBub29wO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgKGV4cHIpICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gbm9vcDtcbiAgICB9XG5cbiAgICBleHByID0gZXhwci50cmltKCk7XG5cbiAgICBpZiAoZXhwci5lbmRzV2l0aCgnOycpKSB7XG4gICAgICAgIGV4cHIgPSBleHByLnNsaWNlKDAsIC0xKTsgLy8gcmVtb3ZlIHRoZSB0cmFpbGluZyBzZW1pY29sb25cbiAgICB9XG5cbiAgICBpZiAoIWV4cHIubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBub29wO1xuICAgIH1cblxuICAgIGxldCBmbiA9IGV4cHJGbkNhY2hlLmdldChleHByKTtcblxuICAgIGlmIChmbikge1xuICAgICAgICByZXR1cm4gZm47XG4gICAgfVxuXG4gICAgbGV0IGJvdW5kRm47XG4gICAgaWYgKCFkZWZPbmx5KSB7XG4gICAgICAgIGJvdW5kRm4gPSBnZXRGbkZvckJpbmRFeHByKGV4cHIpO1xuICAgIH1cblxuICAgIC8vIGZhbGxiYWNrIHRvIGdlbmVyYXRlIGZ1bmN0aW9uIGluIHJ1bnRpbWUuIFRoaXMgd2lsbCBicmVhayBpZiBDU1AgaXMgZW5hYmxlZFxuICAgIGlmICghYm91bmRGbikge1xuICAgICAgICAvLyBJZiBDU1AgZW5hYmxlZCwgZnVuY3Rpb24gZGVmIG5vdCBmb3VuZCBmcm9tIHRoZSBnZW5lcmF0ZWQgZm4gZXhwcmVzc2lvbnMgZm9yIHRoZSBwYWdlLlxuICAgICAgICAvLyBIYW5kbGUgYmluZCBleHByZXNzaW9ucyB1c2VkIGludGVybmFsbHkgaW5zaWRlIFdNIGNvbXBvbmVudHMuIGUuZy4gd21BbmNob3IgdXNlZCBpbnNpZGUgbmF2LmNvbXAuaHRtbFxuICAgICAgICBpZiAoaXNDU1BFbmFibGVkKCkpIHtcbiAgICAgICAgICAgIGJvdW5kRm4gPSBmdW5jdGlvbihjdHgsIGxvY2Fscykge1xuICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBpbnRlcm5hbCBiaW5kaW5ncyBmb3Igd20gd2lkZ2V0cyB1c2VkIGluc2lkZSBhIGNvbXBvbmVudFxuICAgICAgICAgICAgICAgIGxldCBfY3R4ID0gT2JqZWN0LmFzc2lnbih7fSwgbG9jYWxzKTtcbiAgICAgICAgICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoX2N0eCwgY3R4KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gXy5nZXQoX2N0eCwgZXhwcik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VyID0gbmV3IFBhcnNlcihuZXcgTGV4ZXIpO1xuICAgICAgICAgICAgY29uc3QgYXN0ID0gcGFyc2VyLnBhcnNlQmluZGluZyhleHByLCAnJywwKTtcblxuICAgICAgICAgICAgaWYgKGFzdC5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgZm4gPSBub29wO1xuICAgICAgICAgICAgICAgIGJvdW5kRm4gPSBmbjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGlwZU5hbWVWc0lzUHVyZU1hcCA9IHBpcGVQcm92aWRlci5nZXRQaXBlTmFtZVZzSXNQdXJlTWFwKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgYXN0Q29tcGlsZXIgPSBuZXcgQVNUQ29tcGlsZXIoYXN0LmFzdCwgRXhwcmVzc2lvblR5cGUuQmluZGluZywgcGlwZU5hbWVWc0lzUHVyZU1hcCk7XG4gICAgICAgICAgICAgICAgZm4gPSBhc3RDb21waWxlci5jb21waWxlKGRlZk9ubHkpO1xuICAgICAgICAgICAgICAgIGlmIChkZWZPbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmbjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoZm4udXNlZFBpcGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwaXBlQXJncyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBsZXQgaGFzUHVyZVBpcGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBbcGlwZU5hbWVdIG9mIGZuLnVzZWRQaXBlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGlwZUluZm8gPSBwaXBlUHJvdmlkZXIubWV0YShwaXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGlwZUluc3RhbmNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwaXBlSW5mbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpcGVJbnN0YW5jZSA9IG51bGxQaXBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlwZUluZm8ucHVyZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNQdXJlUGlwZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpcGVJbnN0YW5jZSA9IHB1cmVQaXBlcy5nZXQocGlwZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGlwZUluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpcGVJbnN0YW5jZSA9IHBpcGVQcm92aWRlci5nZXRJbnN0YW5jZShwaXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpcGVJbmZvLnB1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVyZVBpcGVzLnNldChwaXBlTmFtZSwgcGlwZUluc3RhbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBwaXBlQXJncy5wdXNoKHBpcGVJbnN0YW5jZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBwaXBlQXJncy51bnNoaWZ0KGhhc1B1cmVQaXBlID8gbmV3IE1hcCgpIDogdW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICAgICAgYm91bmRGbiA9IGZuLmJpbmQodW5kZWZpbmVkLCAuLi5waXBlQXJncyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYm91bmRGbiA9IGZuLmJpbmQodW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGV4cHJGbkNhY2hlLnNldChleHByLCBib3VuZEZuKTtcblxuICAgIHJldHVybiBib3VuZEZuO1xufVxuXG5mdW5jdGlvbiBzaW1wbGVGdW5jdGlvbkV2YWx1YXRvcihleHByLCBjdHgsIGxvY2Fscykge1xuICAgIGxldCBfY3R4ID0gT2JqZWN0LmFzc2lnbih7fSwgbG9jYWxzKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoX2N0eCwgY3R4KTtcblxuICAgIGxldCBwYXJ0cyA9IGV4cHIuc3BsaXQoJygnKTtcbiAgICBsZXQgZm5OYW1lID0gcGFydHNbMF07XG4gICAgbGV0IGNvbXB1dGVkRm4gPSBfLmdldChjdHgsIGZuTmFtZSk7XG5cbiAgICBpZiAoY29tcHV0ZWRGbikge1xuICAgICAgICBsZXQgYXJncyA9IHBhcnRzWzFdLnJlcGxhY2UoJyknLCAnJyk7XG4gICAgICAgIGFyZ3MgPSBhcmdzLnNwbGl0KCcsJyk7XG4gICAgICAgIGxldCBjb21wdXRlZEFyZ3MgPSBbXTtcbiAgICAgICAgYXJncy5mb3JFYWNoKChhcmcpPT4ge1xuICAgICAgICAgICAgYXJnID0gYXJnICYmIGFyZy50cmltKCk7XG4gICAgICAgICAgICBjb21wdXRlZEFyZ3MucHVzaChfLmdldChfY3R4LCBhcmcpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjb21wdXRlZEZuLmJpbmQoX2N0eCkoLi4uY29tcHV0ZWRBcmdzKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiAkcGFyc2VFdmVudChleHByLCBkZWZPbmx5Pyk6IFBhcnNlRXhwclJlc3VsdCB7XG4gICAgaWYgKHR5cGVvZiAoZXhwcikgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBub29wO1xuICAgIH1cblxuICAgIGV4cHIgPSBleHByLnRyaW0oKTtcblxuICAgIGlmICghZXhwci5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIG5vb3A7XG4gICAgfVxuXG4gICAgbGV0IGZuID0gZXZlbnRGbkNhY2hlLmdldChleHByKTtcblxuICAgIGlmIChmbikge1xuICAgICAgICByZXR1cm4gZm47XG4gICAgfVxuXG4gICAgaWYgKCFkZWZPbmx5KSB7XG4gICAgICAgIGZuID0gZ2V0Rm5Gb3JFdmVudEV4cHIoZXhwcik7XG4gICAgfVxuXG4gICAgLy8gZmFsbGJhY2sgdG8gZ2VuZXJhdGUgZnVuY3Rpb24gaW4gcnVudGltZS4gVGhpcyB3aWxsIGJyZWFrIGlmIENTUCBpcyBlbmFibGVkXG4gICAgaWYoIWZuKSB7XG4gICAgICAgIGlmIChpc0NTUEVuYWJsZWQoKSkge1xuICAgICAgICAgICAgZm4gPSBzaW1wbGVGdW5jdGlvbkV2YWx1YXRvci5iaW5kKHVuZGVmaW5lZCwgZXhwcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZXIgPSBuZXcgUGFyc2VyKG5ldyBMZXhlcik7XG4gICAgICAgICAgICBjb25zdCBhc3QgPSBwYXJzZXIucGFyc2VBY3Rpb24oZXhwciwgZmFsc2UsICcnLDApO1xuXG4gICAgICAgICAgICBpZiAoYXN0LmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9vcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGFzdENvbXBpbGVyID0gbmV3IEFTVENvbXBpbGVyKGFzdC5hc3QsIEV4cHJlc3Npb25UeXBlLkFjdGlvbik7XG4gICAgICAgICAgICBmbiA9IGFzdENvbXBpbGVyLmNvbXBpbGUoZGVmT25seSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBldmVudEZuQ2FjaGUuc2V0KGV4cHIsIGZuKTtcbiAgICByZXR1cm4gZm47XG59XG5cbmNvbnN0IGZuTmFtZU1hcCA9IG5ldyBNYXAoKTtcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyRm5CeUV4cHIgPSAoZXhwciwgZm4sIHVzZWRQaXBlcz8pID0+IHtcbiAgICBmbi51c2VkUGlwZXMgPSB1c2VkUGlwZXMgfHwgW107XG4gICAgZm5OYW1lTWFwLnNldChleHByLCBmbik7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRGbkJ5RXhwciA9IChleHByKSA9PiBmbk5hbWVNYXAuZ2V0KGV4cHIpXG5cbmNvbnN0IGZuRXhlY3V0b3IgPSAoZXhwciwgZXhwclR5cGUpID0+IHtcbiAgICBsZXQgZm4gPSBnZXRGbkJ5RXhwcihleHByKTtcbiAgICBpZiAoIWZuKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdXNlZFBpcGVzID0gZm4udXNlZFBpcGVzIHx8IFtdO1xuXG4gICAgaWYoZXhwclR5cGUgPT09IEV4cHJlc3Npb25UeXBlLkJpbmRpbmcpIHtcbiAgICAgICAgZm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgcGx1cywgbWludXMsIGlzRGVmLCBnZXRQdXJlUGlwZVZhbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgcGx1cywgbWludXMsIGlzRGVmKTtcbiAgICB9XG5cbiAgICBpZiAodXNlZFBpcGVzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBwaXBlQXJncyA9IFtdO1xuICAgICAgICBsZXQgaGFzUHVyZVBpcGUgPSBmYWxzZTtcbiAgICAgICAgZm9yIChjb25zdCBbcGlwZU5hbWVdIG9mIHVzZWRQaXBlcykge1xuICAgICAgICAgICAgY29uc3QgcGlwZUluZm8gPSBwaXBlUHJvdmlkZXIubWV0YShwaXBlTmFtZSk7XG4gICAgICAgICAgICBsZXQgcGlwZUluc3RhbmNlO1xuICAgICAgICAgICAgaWYgKCFwaXBlSW5mbykge1xuICAgICAgICAgICAgICAgIHBpcGVJbnN0YW5jZSA9IG51bGxQaXBlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAocGlwZUluZm8ucHVyZSkge1xuICAgICAgICAgICAgICAgICAgICBoYXNQdXJlUGlwZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHBpcGVJbnN0YW5jZSA9IHB1cmVQaXBlcy5nZXQocGlwZU5hbWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghcGlwZUluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHBpcGVJbnN0YW5jZSA9IHBpcGVQcm92aWRlci5nZXRJbnN0YW5jZShwaXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHBpcGVJbmZvLnB1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcHVyZVBpcGVzLnNldChwaXBlTmFtZSwgcGlwZUluc3RhbmNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwaXBlQXJncy5wdXNoKHBpcGVJbnN0YW5jZSk7XG4gICAgICAgIH1cblxuICAgICAgICBwaXBlQXJncy51bnNoaWZ0KGhhc1B1cmVQaXBlID8gbmV3IE1hcCgpIDogdW5kZWZpbmVkKTtcbiAgICAgICAgZm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgLi4ucGlwZUFyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChleHByVHlwZSA9PT0gRXhwcmVzc2lvblR5cGUuQmluZGluZykge1xuICAgICAgICAgICAgZm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmbjtcbn1cblxuZXhwb3J0IGNvbnN0IGdldEZuRm9yQmluZEV4cHIgPSAoZXhwcikgPT4ge1xuICAgIHJldHVybiBmbkV4ZWN1dG9yKGV4cHIsIEV4cHJlc3Npb25UeXBlLkJpbmRpbmcpO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0Rm5Gb3JFdmVudEV4cHIgPSAoZXhwcikgPT4ge1xuICAgIHJldHVybiBmbkV4ZWN1dG9yKGV4cHIsIEV4cHJlc3Npb25UeXBlLkFjdGlvbik7XG59XG4iXX0=
|
|
@@ -12,4 +12,4 @@ export class IDGenerator {
|
|
|
12
12
|
return this.generator.next().value;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvdXRpbHMvaWQtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFFBQVEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLO0lBQ3ZCLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNYLE9BQU8sQ0FBQyxFQUFFO1FBQ04sTUFBTSxHQUFHLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO0tBQzNCO0FBQ0wsQ0FBQztBQUVELE1BQU0sT0FBTyxXQUFXO0lBR3BCLFlBQVksR0FBVztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sT0FBTztRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUM7SUFDdkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24qIGlkR2VuZXJhdG9yKHRva2VuKSB7XG4gICAgbGV0IGlkID0gMTtcbiAgICB3aGlsZSAoMSkge1xuICAgICAgICB5aWVsZCBgJHt0b2tlbn0ke2lkKyt9YDtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJREdlbmVyYXRvciB7XG4gICAgcHJpdmF0ZSBnZW5lcmF0b3I6IEl0ZXJhdG9yPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihrZXk6IHN0cmluZykge1xuICAgICAgICB0aGlzLmdlbmVyYXRvciA9IGlkR2VuZXJhdG9yKGtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5leHRVaWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJhdG9yLm5leHQoKS52YWx1ZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -77,4 +77,4 @@ export class LRUCache {
|
|
|
77
77
|
this.evict(this.evictQueue.length);
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHJ1LWNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvdXRpbHMvbHJ1LWNhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sT0FBTyxRQUFRO0lBSWpCLFlBQ1ksVUFBVSxHQUFHLEVBQ2IsU0FBUyxFQUFFLEVBQ1gsT0FBMEM7UUFGMUMsWUFBTyxHQUFQLE9BQU8sQ0FBTTtRQUNiLFdBQU0sR0FBTixNQUFNLENBQUs7UUFDWCxZQUFPLEdBQVAsT0FBTyxDQUFtQztRQU45QyxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7UUFDekMsZUFBVSxHQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7UUFNNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4QixJQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2hCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUU7Z0JBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsTUFBTSxzQ0FBc0MsQ0FBQyxDQUFDO2FBQ2hGO1lBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNqQyxXQUFXLENBQUMsR0FBRyxFQUFFO2dCQUNiLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUNyQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDM0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxHQUFHLENBQUM7Z0JBQ3JELENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE1B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QUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLElBQUk7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIlxuZGVjbGFyZSBjb25zdCBfO1xuXG5pbnRlcmZhY2UgQ2FjaGVkRGF0YTxUPiB7XG4gICAgaW5zdGFuY2U6IFQ7XG4gICAgbGFzdEFjY2Vzc2VkVGltZTogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgTFJVQ2FjaGU8VD4ge1xuICAgIHByaXZhdGUgY2FjaGUgPSBuZXcgTWFwPHN0cmluZywgQ2FjaGVkRGF0YTxUPj4oKTtcbiAgICBwcml2YXRlIGV2aWN0UXVldWU6IFtzdHJpbmddID0gWycnXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIG1heFNpemUgPSAxMDAsXG4gICAgICAgIHByaXZhdGUgbWF4QWdlID0gNjAsXG4gICAgICAgIHByaXZhdGUgb25FdmljdD86ICgoa2V5OiBzdHJpbmcsIHZhbHVlOiBUKSA9PiBhbnkpKSB7XG4gICAgICAgICAgICB0aGlzLmV2aWN0UXVldWUuc2hpZnQoKTtcbiAgICAgICAgICAgIGlmKHRoaXMubWF4QWdlID4gMCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1heEFnZSA8PSAzMCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYENhY2hlIGFnZSAke3RoaXMubWF4QWdlfXMgaXMgdmVyeSBsZXNzLiBLZWVwIGl0IGF0bGVhc3QgMzBzLmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLm1heEFnZSA9IHRoaXMubWF4QWdlICogMTAwMDtcbiAgICAgICAgICAgICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heCA9IERhdGUubm93KCkgLSB0aGlzLm1heEFnZTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwaXJlZERhdGEgPSB0aGlzLmV2aWN0UXVldWUuZmlsdGVyKGsgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KGspLmxhc3RBY2Nlc3NlZFRpbWUgPD0gbWF4O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ldmljdChleHBpcmVkRGF0YS5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIH0sIHRoaXMubWF4QWdlKTtcbiAgICAgICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFRvRXZpY3RRdWV1ZShrZXk6IHN0cmluZykge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZXZpY3RRdWV1ZS5maW5kSW5kZXgoayA9PiAoayA9PT0ga2V5KSk7XG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmV2aWN0UXVldWUuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmV2aWN0UXVldWUucHVzaChrZXkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXZpY3QoY291bnQgPSAxKTogdm9pZCB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5kZWxldGUodGhpcy5ldmljdFF1ZXVlWzBdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBrZXlzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWNoZS5rZXlzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldChrZXk6IHN0cmluZywgZGF0YVRvQ2FjaGU6IFQpOiB2b2lkIHtcbiAgICAgICAgaWYgKF8uaXNOaWwoZGF0YVRvQ2FjaGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FjaGVkRGF0YSA9IHtcbiAgICAgICAgICAgIGluc3RhbmNlOiBkYXRhVG9DYWNoZSxcbiAgICAgICAgICAgIGxhc3RBY2Nlc3NlZFRpbWU6IERhdGUubm93KClcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jYWNoZS5zZXQoa2V5LCBjYWNoZWREYXRhKTtcbiAgICAgICAgdGhpcy5hZGRUb0V2aWN0UXVldWUoa2V5KTtcbiAgICAgICAgdGhpcy5ldmljdCh0aGlzLmV2aWN0UXVldWUubGVuZ3RoIC0gdGhpcy5tYXhTaXplKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nKTogVCB7XG4gICAgICAgIGNvbnN0IGNhY2hlZERhdGEgPSB0aGlzLmNhY2hlLmdldChrZXkpO1xuICAgICAgICBpZiAoY2FjaGVkRGF0YSkge1xuICAgICAgICAgICAgY2FjaGVkRGF0YS5sYXN0QWNjZXNzZWRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgIHRoaXMuYWRkVG9FdmljdFF1ZXVlKGtleSk7XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkRGF0YS5pbnN0YW5jZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVsZXRlKGtleTogc3RyaW5nKSB7XG4gICAgICAgIGlmKGtleSAmJiB0aGlzLmNhY2hlLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICBjb25zdCBjYWNoZWREYXRhID0gdGhpcy5jYWNoZS5nZXQoa2V5KTtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUuZGVsZXRlKGtleSk7XG4gICAgICAgICAgICB0aGlzLm9uRXZpY3QgJiYgdGhpcy5vbkV2aWN0KGtleSwgY2FjaGVkRGF0YS5pbnN0YW5jZSk7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZXZpY3RRdWV1ZS5maW5kSW5kZXgoayA9PiAoayA9PT0ga2V5KSk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZXZpY3RRdWV1ZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGhhcyhrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWNoZS5oYXMoa2V5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2l6ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5ldmljdFF1ZXVlLmxlbmd0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuZXZpY3QodGhpcy5ldmljdFF1ZXVlLmxlbmd0aCk7XG4gICAgfVxufVxuIl19
|