@wavemaker/app-ng-runtime 11.8.0-next.24904 → 11.8.0-next.27301
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 +5 -5
- app-ng-runtime/build-task/esm2022/basic/progress/progress-bar/progress-bar.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/page/page.build.mjs +3 -2
- app-ng-runtime/build-task/fesm2022/index.mjs +2 -1
- app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +5 -5
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +3 -2
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.directive.mjs +1 -1
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/login/bundles/index.umd.js +6 -6
- app-ng-runtime/components/advanced/login/esm2022/login.component.mjs +4 -3
- app-ng-runtime/components/advanced/login/fesm2022/index.mjs +3 -2
- app-ng-runtime/components/advanced/login/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/bundles/index.umd.js +203 -171
- app-ng-runtime/components/base/esm2022/directives/show-in-device.directive.mjs +1 -1
- app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +12 -11
- app-ng-runtime/components/base/esm2022/pipes/wm-pipe.mjs +3 -2
- app-ng-runtime/components/base/esm2022/utils/data-utils.mjs +30 -29
- app-ng-runtime/components/base/esm2022/utils/form-utils.mjs +47 -41
- app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +8 -7
- app-ng-runtime/components/base/esm2022/utils/widget-utils.mjs +28 -27
- app-ng-runtime/components/base/esm2022/widgets/common/base/base-container.component.mjs +4 -3
- app-ng-runtime/components/base/esm2022/widgets/common/base/base-field-validations.mjs +24 -21
- app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +12 -11
- app-ng-runtime/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +40 -14
- app-ng-runtime/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/common/dialog/dialog.service.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/common/partial/partial.directive.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/common/smooth-scroll/smooth-scroll.directive.mjs +6 -5
- app-ng-runtime/components/base/esm2022/widgets/framework/deviceview.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/framework/property-change-handler.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +4 -3
- app-ng-runtime/components/base/fesm2022/index.mjs +206 -173
- app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
- app-ng-runtime/components/base/utils/data-utils.d.ts +0 -1
- app-ng-runtime/components/base/utils/widget-utils.d.ts +2 -2
- app-ng-runtime/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
- app-ng-runtime/components/base/widgets/common/base/partial-container.directive.d.ts +1 -1
- app-ng-runtime/components/basic/default/bundles/index.umd.js +10 -10
- app-ng-runtime/components/basic/default/esm2022/label/label.directive.mjs +4 -3
- app-ng-runtime/components/basic/default/esm2022/spinner/spinner.component.mjs +6 -5
- app-ng-runtime/components/basic/default/fesm2022/index.mjs +7 -6
- app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/progress/bundles/index.umd.js +13 -13
- app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +5 -4
- app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +6 -5
- app-ng-runtime/components/basic/progress/esm2022/utils.mjs +3 -3
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs +10 -9
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +15 -10
- app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +14 -8
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +13 -7
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/rich-text-editor/rich-text-editor.component.d.ts +2 -2
- app-ng-runtime/components/basic/search/bundles/index.umd.js +67 -65
- app-ng-runtime/components/basic/search/esm2022/data-provider/data-provider.mjs +1 -1
- app-ng-runtime/components/basic/search/esm2022/data-provider/local-data-provider.mjs +26 -23
- app-ng-runtime/components/basic/search/esm2022/data-provider/remote-data-provider.mjs +12 -11
- app-ng-runtime/components/basic/search/esm2022/search.component.mjs +31 -30
- app-ng-runtime/components/basic/search/fesm2022/index.mjs +66 -63
- app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/tree/bundles/index.umd.js +9 -9
- app-ng-runtime/components/basic/tree/esm2022/tree.component.mjs +7 -6
- app-ng-runtime/components/basic/tree/fesm2022/index.mjs +6 -5
- app-ng-runtime/components/basic/tree/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/chart/bundles/index.umd.js +72 -63
- app-ng-runtime/components/chart/chart.component.d.ts +1 -1
- app-ng-runtime/components/chart/chart.utils.d.ts +3 -3
- app-ng-runtime/components/chart/esm2022/chart.component.mjs +58 -48
- app-ng-runtime/components/chart/esm2022/chart.utils.mjs +14 -13
- app-ng-runtime/components/chart/fesm2022/index.mjs +69 -59
- app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/accordion/bundles/index.umd.js +16 -16
- app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +14 -13
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +13 -12
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/bundles/index.umd.js +5 -5
- app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +3 -2
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/panel.component.d.ts +1 -1
- app-ng-runtime/components/containers/tabs/bundles/index.umd.js +17 -17
- app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +15 -14
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +14 -13
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/bundles/index.umd.js +75 -75
- app-ng-runtime/components/data/form/esm2022/form-action/form-action.directive.mjs +3 -2
- app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +10 -9
- app-ng-runtime/components/data/form/esm2022/form.component.mjs +54 -53
- app-ng-runtime/components/data/form/esm2022/live-filter/live-filter.directive.mjs +3 -2
- app-ng-runtime/components/data/form/esm2022/live-form/live-form.directive.mjs +11 -10
- app-ng-runtime/components/data/form/fesm2022/index.mjs +77 -76
- app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/form.component.d.ts +2 -2
- app-ng-runtime/components/data/form/live-form/live-form.directive.d.ts +1 -1
- app-ng-runtime/components/data/list/bundles/index.umd.js +692 -687
- app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +1 -1
- app-ng-runtime/components/data/list/esm2022/list.animator.mjs +5 -3
- app-ng-runtime/components/data/list/esm2022/list.component.mjs +687 -682
- app-ng-runtime/components/data/list/fesm2022/index.mjs +690 -684
- app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/list/list.component.d.ts +53 -53
- app-ng-runtime/components/data/live-table/bundles/index.umd.js +1 -1
- app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +2 -2
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs +1 -1
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/pagination/bundles/index.umd.js +14 -14
- app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +12 -11
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs +11 -10
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/bundles/index.umd.js +175 -172
- app-ng-runtime/components/data/table/esm2022/table-action/table-action.directive.mjs +3 -2
- app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +19 -18
- app-ng-runtime/components/data/table/esm2022/table-cud.directive.mjs +7 -6
- app-ng-runtime/components/data/table/esm2022/table-filter.directive.mjs +53 -55
- app-ng-runtime/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +3 -2
- app-ng-runtime/components/data/table/esm2022/table.component.mjs +98 -91
- app-ng-runtime/components/data/table/fesm2022/index.mjs +172 -168
- app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/table-column/table-column.directive.d.ts +6 -6
- app-ng-runtime/components/data/table/table.component.d.ts +2 -2
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +2 -2
- app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +3 -3
- app-ng-runtime/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +1 -1
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +1 -1
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/calendar/bundles/index.umd.js +33 -31
- app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +31 -28
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs +30 -27
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/chips/bundles/index.umd.js +29 -28
- app-ng-runtime/components/input/chips/chips.component.d.ts +1 -1
- app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +27 -25
- app-ng-runtime/components/input/chips/fesm2022/index.mjs +26 -24
- app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/base-form.component.d.ts +3 -3
- app-ng-runtime/components/input/default/bundles/index.umd.js +75 -62
- app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
- app-ng-runtime/components/input/default/dataset-aware-form.component.d.ts +4 -4
- app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +14 -8
- app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +3 -2
- app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +6 -4
- app-ng-runtime/components/input/default/esm2022/dataset-aware-form.component.mjs +29 -23
- app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +4 -3
- app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +4 -3
- app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +6 -5
- app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +4 -3
- app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +20 -18
- app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +2 -2
- app-ng-runtime/components/input/default/fesm2022/index.mjs +75 -62
- app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +1 -1
- app-ng-runtime/components/input/epoch/bundles/index.umd.js +53 -51
- app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +34 -31
- app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +5 -4
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +5 -4
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +7 -6
- app-ng-runtime/components/input/epoch/esm2022/picker/picker.component.mjs +1 -1
- app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +6 -5
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs +48 -45
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/bundles/index.umd.js +15 -15
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +13 -12
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +12 -11
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/rating/bundles/index.umd.js +12 -12
- app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +10 -9
- app-ng-runtime/components/input/rating/fesm2022/index.mjs +9 -8
- app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +1 -1
- app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +2 -2
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +1 -1
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js +23 -22
- app-ng-runtime/components/navigation/menu/esm2022/menu-adapator.component.mjs +3 -2
- app-ng-runtime/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +6 -5
- app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +8 -7
- app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +10 -8
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +20 -18
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +12 -1
- app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +1 -1
- app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/prefab/bundles/index.umd.js +6 -6
- app-ng-runtime/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +3 -2
- app-ng-runtime/components/prefab/esm2022/prefab.directive.mjs +3 -2
- app-ng-runtime/components/prefab/fesm2022/index.mjs +3 -2
- app-ng-runtime/components/prefab/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/bundles/index.umd.js +119 -130
- app-ng-runtime/core/esm2022/public_api.mjs +2 -2
- app-ng-runtime/core/esm2022/services/field-type.service.mjs +3 -2
- app-ng-runtime/core/esm2022/services/field-widget.service.mjs +3 -2
- app-ng-runtime/core/esm2022/services/pagination.service.mjs +7 -6
- app-ng-runtime/core/esm2022/services/state-persistence.service.mjs +17 -16
- app-ng-runtime/core/esm2022/services/utils.service.mjs +3 -2
- app-ng-runtime/core/esm2022/services/viewport.service.mjs +3 -2
- app-ng-runtime/core/esm2022/utils/build-utils.mjs +5 -4
- app-ng-runtime/core/esm2022/utils/expression-parser.mjs +5 -4
- app-ng-runtime/core/esm2022/utils/lru-cache.mjs +3 -2
- app-ng-runtime/core/esm2022/utils/utils.mjs +79 -82
- app-ng-runtime/core/esm2022/utils/watcher.mjs +9 -7
- app-ng-runtime/core/fesm2022/index.mjs +117 -123
- app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/public_api.d.ts +1 -1
- app-ng-runtime/core/services/pagination.service.d.ts +1 -1
- app-ng-runtime/core/utils/utils.d.ts +5 -9
- app-ng-runtime/http/bundles/index.umd.js +7 -7
- app-ng-runtime/http/esm2022/http.service.mjs +5 -4
- app-ng-runtime/http/esm2022/wm-http-request.mjs +1 -1
- app-ng-runtime/http/esm2022/wm-http-response.mjs +1 -1
- app-ng-runtime/http/fesm2022/index.mjs +4 -3
- app-ng-runtime/http/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/basic/default/bundles/index.umd.js +24 -20
- app-ng-runtime/mobile/components/basic/default/esm2022/anchor/anchor.directive.mjs +5 -4
- app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +12 -8
- app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-selector.service.mjs +5 -3
- app-ng-runtime/mobile/components/basic/default/esm2022/image-cache/image-cache.directive.mjs +3 -2
- app-ng-runtime/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +5 -4
- app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs +21 -16
- app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/containers/segmented-control/bundles/index.umd.js +7 -7
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +2 -2
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +4 -3
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs +4 -3
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/data/media-list/bundles/index.umd.js +8 -8
- app-ng-runtime/mobile/components/data/media-list/esm2022/media-list.component.mjs +4 -3
- app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs +3 -2
- app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/default/bundles/index.umd.js +5 -5
- app-ng-runtime/mobile/components/page/default/esm2022/page.directive.mjs +3 -2
- app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs +2 -1
- app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/tab-bar/bundles/index.umd.js +9 -9
- app-ng-runtime/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +7 -6
- app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs +6 -5
- app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/core/bundles/index.umd.js +25 -25
- app-ng-runtime/mobile/core/esm2022/services/device-file-download.service.mjs +5 -4
- app-ng-runtime/mobile/core/esm2022/services/device-file-opener.service.mjs +3 -2
- app-ng-runtime/mobile/core/esm2022/services/device-file-upload.service.mjs +4 -3
- app-ng-runtime/mobile/core/esm2022/services/device-file.service.mjs +6 -5
- app-ng-runtime/mobile/core/esm2022/services/device.service.mjs +3 -2
- app-ng-runtime/mobile/core/esm2022/services/ext-app-message.service.mjs +5 -4
- app-ng-runtime/mobile/core/esm2022/services/network.service.mjs +9 -8
- app-ng-runtime/mobile/core/fesm2022/index.mjs +22 -21
- app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/core/services/ext-app-message.service.d.ts +1 -1
- app-ng-runtime/mobile/core/services/network.service.d.ts +7 -1
- app-ng-runtime/mobile/offline/bundles/index.umd.js +161 -144
- app-ng-runtime/mobile/offline/esm2022/models/local-db-store.mjs +23 -21
- app-ng-runtime/mobile/offline/esm2022/services/change-log.service.mjs +7 -6
- app-ng-runtime/mobile/offline/esm2022/services/local-db-data-pull.service.mjs +37 -35
- app-ng-runtime/mobile/offline/esm2022/services/local-db-management.service.mjs +54 -45
- app-ng-runtime/mobile/offline/esm2022/services/local-db.service.mjs +5 -4
- app-ng-runtime/mobile/offline/esm2022/services/workers/error-blocker.mjs +4 -3
- app-ng-runtime/mobile/offline/esm2022/services/workers/file-handler.mjs +18 -13
- app-ng-runtime/mobile/offline/esm2022/services/workers/multi-part-param-transformer.mjs +9 -5
- app-ng-runtime/mobile/offline/esm2022/utils/live-variable.utils.mjs +12 -11
- app-ng-runtime/mobile/offline/esm2022/utils/query-executor.utils.mjs +5 -4
- app-ng-runtime/mobile/offline/esm2022/utils/security.utils.mjs +3 -2
- app-ng-runtime/mobile/offline/fesm2022/index.mjs +156 -138
- app-ng-runtime/mobile/offline/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/runtime/bundles/index.umd.js +11 -8
- app-ng-runtime/mobile/runtime/esm2022/mobile-runtime.module.mjs +3 -2
- app-ng-runtime/mobile/runtime/esm2022/services/cookie.service.mjs +6 -2
- app-ng-runtime/mobile/runtime/esm2022/services/http-interceptor.service.mjs +4 -3
- app-ng-runtime/mobile/runtime/fesm2022/index.mjs +8 -4
- app-ng-runtime/mobile/runtime/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/runtime-dynamic/bundles/index.umd.js +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 +2 -2
- app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/variables/bundles/index.umd.js +23 -16
- app-ng-runtime/mobile/variables/esm2022/services/camera-service.mjs +2 -2
- app-ng-runtime/mobile/variables/esm2022/services/datasync-service.mjs +10 -9
- app-ng-runtime/mobile/variables/esm2022/services/file-service.mjs +11 -3
- app-ng-runtime/mobile/variables/fesm2022/index.mjs +19 -11
- app-ng-runtime/mobile/variables/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/oAuth/bundles/index.umd.js +12 -12
- app-ng-runtime/oAuth/esm2022/oAuth.service.mjs +4 -3
- app-ng-runtime/oAuth/esm2022/oAuth.utils.mjs +8 -7
- app-ng-runtime/oAuth/fesm2022/index.mjs +9 -8
- 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 +121 -120
- app-ng-runtime/runtime/base/esm2022/components/base-layout.component.mjs +4 -3
- app-ng-runtime/runtime/base/esm2022/components/base-page.component.mjs +14 -13
- app-ng-runtime/runtime/base/esm2022/components/base-partial.component.mjs +13 -12
- app-ng-runtime/runtime/base/esm2022/components/base-prefab.component.mjs +15 -14
- app-ng-runtime/runtime/base/esm2022/components/base-spa-page.component.mjs +14 -13
- app-ng-runtime/runtime/base/esm2022/components/custom-toaster.component.mjs +6 -5
- app-ng-runtime/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -10
- app-ng-runtime/runtime/base/esm2022/guards/page-not-found.guard.mjs +1 -1
- app-ng-runtime/runtime/base/esm2022/guards/role.guard.mjs +3 -2
- app-ng-runtime/runtime/base/esm2022/services/app-defaults.service.mjs +1 -1
- app-ng-runtime/runtime/base/esm2022/services/app.manager.service.mjs +17 -14
- app-ng-runtime/runtime/base/esm2022/services/app.service.mjs +7 -6
- app-ng-runtime/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +3 -2
- app-ng-runtime/runtime/base/esm2022/services/http-interceptor.services.mjs +4 -3
- app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +12 -10
- app-ng-runtime/runtime/base/esm2022/services/navigation.service.mjs +8 -7
- app-ng-runtime/runtime/base/esm2022/services/prefab-manager.service.mjs +3 -2
- app-ng-runtime/runtime/base/esm2022/services/spinner.service.mjs +7 -6
- app-ng-runtime/runtime/base/esm2022/services/toaster.service.mjs +6 -5
- app-ng-runtime/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +6 -7
- app-ng-runtime/runtime/base/fesm2022/index.mjs +119 -117
- app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/runtime/base/services/i18n.service.d.ts +1 -1
- app-ng-runtime/runtime/dynamic/bundles/index.umd.js +7 -7
- app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +4 -3
- app-ng-runtime/runtime/dynamic/esm2022/main.mjs +3 -2
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +4 -3
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/scripts/jquery-ui/ui/widgets/droppable.js +7 -7
- app-ng-runtime/scripts/jquery-ui/ui/widgets/resizable.js +13 -10
- app-ng-runtime/scripts/jquery-ui/ui/widgets/sortable.js +7 -7
- app-ng-runtime/security/bundles/index.umd.js +14 -14
- app-ng-runtime/security/esm2022/security.service.mjs +12 -11
- app-ng-runtime/security/fesm2022/index.mjs +11 -10
- app-ng-runtime/security/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/security/security.service.d.ts +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/bundles/index.umd.js +10 -9
- app-ng-runtime/transpiler/esm2022/build.mjs +8 -6
- app-ng-runtime/transpiler/fesm2022/index.mjs +7 -5
- app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/variables/bundles/index.umd.js +155 -145
- app-ng-runtime/variables/esm2022/manager/action/login-action.manager.mjs +15 -14
- app-ng-runtime/variables/esm2022/manager/action/notification-action.manager.mjs +9 -8
- app-ng-runtime/variables/esm2022/manager/variable/base-variable.manager.mjs +3 -2
- app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +11 -10
- app-ng-runtime/variables/esm2022/service/variables.service.mjs +7 -6
- app-ng-runtime/variables/esm2022/util/action/navigation-action.utils.mjs +4 -4
- app-ng-runtime/variables/esm2022/util/variable/pagination.utils.mjs +30 -23
- app-ng-runtime/variables/esm2022/util/variable/service-variable.utils.mjs +29 -28
- app-ng-runtime/variables/esm2022/util/variable/variables.utils.mjs +75 -70
- app-ng-runtime/variables/fesm2022/index.mjs +169 -158
- app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/variables/util/variable/service-variable.utils.d.ts +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common/http'), require('@angular/core'), require('@awesome-cordova-plugins/app-version/ngx'), require('@awesome-cordova-plugins/barcode-scanner/ngx'), require('@awesome-cordova-plugins/calendar/ngx'), require('@awesome-cordova-plugins/camera/ngx'), require('@awesome-cordova-plugins/file/ngx'), require('@awesome-cordova-plugins/file-opener/ngx'), require('@awesome-cordova-plugins/device/ngx'), require('@awesome-cordova-plugins/media-capture/ngx'), require('@awesome-cordova-plugins/geolocation/ngx'), require('@awesome-cordova-plugins/network/ngx'), require('@awesome-cordova-plugins/sqlite/ngx'), require('@awesome-cordova-plugins/vibration/ngx'), require('@awesome-cordova-plugins/location-accuracy/ngx'), require('@awesome-cordova-plugins/diagnostic/ngx'), require('@wm/core'), require('@wm/components/base'), require('@wm/mobile/core'), require('@wm/mobile/offline'), require('@wm/security'), require('@wm/mobile/variables'), require('@wm/variables'), require('@wm/mobile/components/basic'), require('rxjs'), require('rxjs/operators'), require('@wm/mobile/components/basic/search'), require('@wm/mobile/components/containers/segmented-control'), require('@wm/mobile/components/data/media-list'), require('@wm/mobile/components/device/barcode-scanner'), require('@wm/mobile/components/device/camera'), require('@wm/mobile/components/input/file-upload'), require('@wm/mobile/components/page'), require('@wm/mobile/components/page/left-panel'), require('@wm/mobile/components/page/mobile-navbar'), require('@wm/mobile/components/page/tab-bar')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', '@angular/common/http', '@angular/core', '@awesome-cordova-plugins/app-version/ngx', '@awesome-cordova-plugins/barcode-scanner/ngx', '@awesome-cordova-plugins/calendar/ngx', '@awesome-cordova-plugins/camera/ngx', '@awesome-cordova-plugins/file/ngx', '@awesome-cordova-plugins/file-opener/ngx', '@awesome-cordova-plugins/device/ngx', '@awesome-cordova-plugins/media-capture/ngx', '@awesome-cordova-plugins/geolocation/ngx', '@awesome-cordova-plugins/network/ngx', '@awesome-cordova-plugins/sqlite/ngx', '@awesome-cordova-plugins/vibration/ngx', '@awesome-cordova-plugins/location-accuracy/ngx', '@awesome-cordova-plugins/diagnostic/ngx', '@wm/core', '@wm/components/base', '@wm/mobile/core', '@wm/mobile/offline', '@wm/security', '@wm/mobile/variables', '@wm/variables', '@wm/mobile/components/basic', 'rxjs', 'rxjs/operators', '@wm/mobile/components/basic/search', '@wm/mobile/components/containers/segmented-control', '@wm/mobile/components/data/media-list', '@wm/mobile/components/device/barcode-scanner', '@wm/mobile/components/device/camera', '@wm/mobile/components/input/file-upload', '@wm/mobile/components/page', '@wm/mobile/components/page/left-panel', '@wm/mobile/components/page/mobile-navbar', '@wm/mobile/components/page/tab-bar'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wm = global.wm || {}, global.wm.mobile = global.wm.mobile || {}, global.wm.mobile.runtime = {}), global.ng.common.http, global.ng.core, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.wm.core, global.wm.components.base, global.wm.mobile.core, global.wm.mobile.offline, global.wm.security, global.wm.mobile.variables, global.wm.variables, global.wm.mobile.components.basic, global.rxjs, global.rxjs.operators, global.wm.mobile.components.basic.search, global.wm.mobile.components.containers.segmentedcontrol, global.wm.mobile.components.data.medialist, global.wm.mobile.components.device.barcodescanner, global.wm.mobile.components.device.camera, global.wm.mobile.components.input.fileupload, global.wm.mobile.components.page, global.wm.mobile.components.page.leftpanel, global.wm.mobile.components.page.mobilenavbar, global.wm.mobile.components.page.tabbar));
|
|
5
|
-
})(this, (function (exports, http, i0, ngx, ngx$1, ngx$2, ngx$3, i2, ngx$4, ngx$5, ngx$7, ngx$6, ngx$8, ngx$9, ngx$a, ngx$b, ngx$c, i1$1, base, i3, offline, i4, variables$1, variables, i1, rxjs, operators, search, segmentedControl, mediaList, barcodeScanner, camera, fileUpload, page, leftPanel, mobileNavbar, tabBar) { 'use strict';
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common/http'), require('@angular/core'), require('@awesome-cordova-plugins/app-version/ngx'), require('@awesome-cordova-plugins/barcode-scanner/ngx'), require('@awesome-cordova-plugins/calendar/ngx'), require('@awesome-cordova-plugins/camera/ngx'), require('@awesome-cordova-plugins/file/ngx'), require('@awesome-cordova-plugins/file-opener/ngx'), require('@awesome-cordova-plugins/device/ngx'), require('@awesome-cordova-plugins/media-capture/ngx'), require('@awesome-cordova-plugins/geolocation/ngx'), require('@awesome-cordova-plugins/network/ngx'), require('@awesome-cordova-plugins/sqlite/ngx'), require('@awesome-cordova-plugins/vibration/ngx'), require('@awesome-cordova-plugins/location-accuracy/ngx'), require('@awesome-cordova-plugins/diagnostic/ngx'), require('@wm/core'), require('lodash-es'), require('@wm/components/base'), require('@wm/mobile/core'), require('@wm/mobile/offline'), require('@wm/security'), require('@wm/mobile/variables'), require('@wm/variables'), require('@wm/mobile/components/basic'), require('rxjs'), require('rxjs/operators'), require('@wm/mobile/components/basic/search'), require('@wm/mobile/components/containers/segmented-control'), require('@wm/mobile/components/data/media-list'), require('@wm/mobile/components/device/barcode-scanner'), require('@wm/mobile/components/device/camera'), require('@wm/mobile/components/input/file-upload'), require('@wm/mobile/components/page'), require('@wm/mobile/components/page/left-panel'), require('@wm/mobile/components/page/mobile-navbar'), require('@wm/mobile/components/page/tab-bar')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', '@angular/common/http', '@angular/core', '@awesome-cordova-plugins/app-version/ngx', '@awesome-cordova-plugins/barcode-scanner/ngx', '@awesome-cordova-plugins/calendar/ngx', '@awesome-cordova-plugins/camera/ngx', '@awesome-cordova-plugins/file/ngx', '@awesome-cordova-plugins/file-opener/ngx', '@awesome-cordova-plugins/device/ngx', '@awesome-cordova-plugins/media-capture/ngx', '@awesome-cordova-plugins/geolocation/ngx', '@awesome-cordova-plugins/network/ngx', '@awesome-cordova-plugins/sqlite/ngx', '@awesome-cordova-plugins/vibration/ngx', '@awesome-cordova-plugins/location-accuracy/ngx', '@awesome-cordova-plugins/diagnostic/ngx', '@wm/core', 'lodash-es', '@wm/components/base', '@wm/mobile/core', '@wm/mobile/offline', '@wm/security', '@wm/mobile/variables', '@wm/variables', '@wm/mobile/components/basic', 'rxjs', 'rxjs/operators', '@wm/mobile/components/basic/search', '@wm/mobile/components/containers/segmented-control', '@wm/mobile/components/data/media-list', '@wm/mobile/components/device/barcode-scanner', '@wm/mobile/components/device/camera', '@wm/mobile/components/input/file-upload', '@wm/mobile/components/page', '@wm/mobile/components/page/left-panel', '@wm/mobile/components/page/mobile-navbar', '@wm/mobile/components/page/tab-bar'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wm = global.wm || {}, global.wm.mobile = global.wm.mobile || {}, global.wm.mobile.runtime = {}), global.ng.common.http, global.ng.core, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.awesomeCordova.plugins, global.wm.core, global._, global.wm.components.base, global.wm.mobile.core, global.wm.mobile.offline, global.wm.security, global.wm.mobile.variables, global.wm.variables, global.wm.mobile.components.basic, global.rxjs, global.rxjs.operators, global.wm.mobile.components.basic.search, global.wm.mobile.components.containers.segmentedcontrol, global.wm.mobile.components.data.medialist, global.wm.mobile.components.device.barcodescanner, global.wm.mobile.components.device.camera, global.wm.mobile.components.input.fileupload, global.wm.mobile.components.page, global.wm.mobile.components.page.leftpanel, global.wm.mobile.components.page.mobilenavbar, global.wm.mobile.components.page.tabbar));
|
|
5
|
+
})(this, (function (exports, http, i0, ngx, ngx$1, ngx$2, ngx$3, i2, ngx$4, ngx$5, ngx$7, ngx$6, ngx$8, ngx$9, ngx$a, ngx$b, ngx$c, i1$1, lodashEs, base, i3, offline, i4, variables$1, variables, i1, rxjs, operators, search, segmentedControl, mediaList, barcodeScanner, camera, fileUpload, page, leftPanel, mobileNavbar, tabBar) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopNamespaceDefault(e) {
|
|
8
8
|
var n = Object.create(null);
|
|
@@ -107,10 +107,13 @@
|
|
|
107
107
|
const cookieInfoStr = localStorage.getItem(STORAGE_KEY), promises = [];
|
|
108
108
|
if (cookieInfoStr) {
|
|
109
109
|
const cookieInfo = JSON.parse(cookieInfoStr);
|
|
110
|
-
|
|
110
|
+
lodashEs.forEach(cookieInfo, c => {
|
|
111
|
+
// @ts-ignore
|
|
111
112
|
if (c.name && c.value) {
|
|
113
|
+
// @ts-ignore
|
|
112
114
|
promises.push(this.getCookie(c.hostname, c.name).catch(() => {
|
|
113
115
|
return new Promise((resolve, reject) => {
|
|
116
|
+
// @ts-ignore
|
|
114
117
|
window['cookieEmperor'].setCookie(c.hostname, c.name, this.rotateRTL(c.value), resolve, reject);
|
|
115
118
|
});
|
|
116
119
|
}));
|
|
@@ -303,7 +306,7 @@
|
|
|
303
306
|
return this.init();
|
|
304
307
|
}
|
|
305
308
|
}).then(() => {
|
|
306
|
-
const urlSplits =
|
|
309
|
+
const urlSplits = lodashEs.split(request.url, '/');
|
|
307
310
|
const pageName = urlSplits[urlSplits.length - 2];
|
|
308
311
|
if (!this.publicPages || this.publicPages[pageName]) {
|
|
309
312
|
return Promise.resolve(request);
|
|
@@ -334,7 +337,7 @@
|
|
|
334
337
|
if (!this.initialized) {
|
|
335
338
|
this.publicPages = {};
|
|
336
339
|
this.initialized = true;
|
|
337
|
-
|
|
340
|
+
lodashEs.forEach(JSON.parse(text), pageName => this.publicPages[pageName] = true);
|
|
338
341
|
}
|
|
339
342
|
}).catch(() => {
|
|
340
343
|
this.initialized = true;
|
|
@@ -637,7 +640,7 @@
|
|
|
637
640
|
isAuthenticating = false;
|
|
638
641
|
return this.cookieService.clearAll()
|
|
639
642
|
.then(() => {
|
|
640
|
-
const promises =
|
|
643
|
+
const promises = lodashEs.keys(output).map(k => {
|
|
641
644
|
return this.cookieService.setCookie(this.app.deployedUrl, k, output[k]);
|
|
642
645
|
});
|
|
643
646
|
return Promise.all(promises);
|
|
@@ -36,6 +36,7 @@ import { PageModule } from "@wm/mobile/components/page";
|
|
|
36
36
|
import { LeftPanelModule } from "@wm/mobile/components/page/left-panel";
|
|
37
37
|
import { MobileNavbarModule } from "@wm/mobile/components/page/mobile-navbar";
|
|
38
38
|
import { TabBarModule } from "@wm/mobile/components/page/tab-bar";
|
|
39
|
+
import { keys } from "lodash-es";
|
|
39
40
|
import * as i0 from "@angular/core";
|
|
40
41
|
import * as i1 from "@wm/core";
|
|
41
42
|
import * as i2 from "./services/cookie.service";
|
|
@@ -267,7 +268,7 @@ export class MobileRuntimeModule {
|
|
|
267
268
|
isAuthenticating = false;
|
|
268
269
|
return this.cookieService.clearAll()
|
|
269
270
|
.then(() => {
|
|
270
|
-
const promises =
|
|
271
|
+
const promises = keys(output).map(k => {
|
|
271
272
|
return this.cookieService.setCookie(this.app.deployedUrl, k, output[k]);
|
|
272
273
|
});
|
|
273
274
|
return Promise.all(promises);
|
|
@@ -347,4 +348,4 @@ export class MobileRuntimeModule {
|
|
|
347
348
|
LeftPanelModule,
|
|
348
349
|
MobileNavbarModule,
|
|
349
350
|
TabBarModule] }); })();
|
|
350
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLXJ1bnRpbWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9iaWxlL3J1bnRpbWUvc3JjL21vYmlsZS1ydW50aW1lLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FB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QUFlO1lBQ2YsV0FBVyxFQUNSLHdCQUF3QixFQTVCL0IsV0FBVztZQUNYLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsZUFBZTtZQUNmLFlBQVk7WUFDWixzQkFBc0I7WUFDdEIsZUFBZTtZQUNmLG9CQUFvQjtZQUNwQixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLFVBQVU7WUFDVixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLFlBQVk7O2lGQW1CSCxtQkFBbUI7Y0FoQi9CLFFBQVE7ZUFBQztnQkFDTixZQUFZLEVBQUU7b0JBQ1YsZUFBZTtpQkFDbEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLGVBQWU7b0JBQ2YsR0FBRyx3QkFBd0I7aUJBQzlCO2dCQUNELE9BQU8sRUFBRTtvQkFDTCxnQkFBZ0I7b0JBQ2hCLGVBQWU7b0JBQ2YsV0FBVztvQkFDWCxHQUFHLHdCQUF3QjtpQkFDOUI7Z0JBQ0QsU0FBUyxFQUFFLEVBQUU7YUFDaEI7O3dGQUNZLG1CQUFtQixtQkFkeEIsZUFBZSxhQU9mLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsV0FBVyxFQTNCZixXQUFXO1FBQ1gsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixlQUFlO1FBQ2YsWUFBWTtRQUNaLHNCQUFzQjtRQUN0QixlQUFlO1FBQ2Ysb0JBQW9CO1FBQ3BCLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsVUFBVTtRQUNWLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsWUFBWSxhQVFSLGVBQWUsRUFyQm5CLFdBQVc7UUFDWCxnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGVBQWU7UUFDZixZQUFZO1FBQ1osc0JBQXNCO1FBQ3RCLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIsWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixVQUFVO1FBQ1YsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcHBWZXJzaW9uIH0gZnJvbSAnQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL2FwcC12ZXJzaW9uL25neCc7XG5pbXBvcnQgeyBCYXJjb2RlU2Nhbm5lciB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9iYXJjb2RlLXNjYW5uZXIvbmd4JztcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSAnQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL2NhbGVuZGFyL25neCc7XG5pbXBvcnQgeyBDYW1lcmEgfSBmcm9tICdAYXdlc29tZS1jb3Jkb3ZhLXBsdWdpbnMvY2FtZXJhL25neCc7XG5pbXBvcnQgeyBGaWxlIH0gZnJvbSAnQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL2ZpbGUvbmd4JztcbmltcG9ydCB7IEZpbGVPcGVuZXIgfSBmcm9tICdAYXdlc29tZS1jb3Jkb3ZhLXBsdWdpbnMvZmlsZS1vcGVuZXIvbmd4JztcbmltcG9ydCB7IERldmljZSB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9kZXZpY2Uvbmd4JztcbmltcG9ydCB7IE1lZGlhQ2FwdHVyZSB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9tZWRpYS1jYXB0dXJlL25neCc7XG5pbXBvcnQgeyBHZW9sb2NhdGlvbiB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9nZW9sb2NhdGlvbi9uZ3gnO1xuaW1wb3J0IHsgTmV0d29yayB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9uZXR3b3JrL25neCc7XG5pbXBvcnQgeyBTUUxpdGUgfSBmcm9tICdAYXdlc29tZS1jb3Jkb3ZhLXBsdWdpbnMvc3FsaXRlL25neCc7XG5pbXBvcnQgeyBWaWJyYXRpb24gfSBmcm9tICdAYXdlc29tZS1jb3Jkb3ZhLXBsdWdpbnMvdmlicmF0aW9uL25neCc7XG5pbXBvcnQgeyBMb2NhdGlvbkFjY3VyYWN5IH0gZnJvbSAnQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL2xvY2F0aW9uLWFjY3VyYWN5L25neCc7XG5pbXBvcnQgeyBEaWFnbm9zdGljIH0gZnJvbSAnQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL2RpYWdub3N0aWMvbmd4JztcblxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvY29va2llLnNlcnZpY2UnO1xuXG5pbXBvcnQge1xuICAgIEFwcCxcbiAgICBBYnN0cmFjdEh0dHBTZXJ2aWNlLFxuICAgIGhhc0NvcmRvdmEsXG4gICAgaW5zZXJ0QWZ0ZXIsXG4gICAgaXNJcGFkLFxuICAgIGlzSXBob25lLFxuICAgIGlzSXBvZCxcbiAgICBpc09iamVjdCxcbiAgICBsb2FkU2NyaXB0LFxuICAgIGxvYWRTdHlsZVNoZWV0LFxuICAgIG5vb3AsXG4gICAgcmVtb3ZlTm9kZSxcbiAgICBnZXRXbVByb2plY3RQcm9wZXJ0aWVzXG59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IEZpbGVFeHRlbnNpb25Gcm9tTWltZVBpcGUgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IERldmljZUZpbGVPcGVuZXJTZXJ2aWNlLCBEZXZpY2VTZXJ2aWNlLCBFeHRBcHBNZXNzYWdlU2VydmljZSwgTW9iaWxlQ29yZU1vZHVsZSwgTmV0d29ya1NlcnZpY2UgfSBmcm9tICdAd20vbW9iaWxlL2NvcmUnO1xuaW1wb3J0IHtPZmZsaW5lTW9kdWxlLCBQdXNoU2VydmljZSwgUHVzaFNlcnZpY2VJbXBsfSBmcm9tICdAd20vbW9iaWxlL29mZmxpbmUnO1xuaW1wb3J0IHsgU2VjdXJpdHlTZXJ2aWNlIH0gZnJvbSAnQHdtL3NlY3VyaXR5JztcbmltcG9ydCB7IFZhcmlhYmxlc01vZHVsZSB9IGZyb20gJ0B3bS9tb2JpbGUvdmFyaWFibGVzJztcbmltcG9ydCB7ICRyb290U2NvcGUsIENPTlNUQU5UUyB9IGZyb20gJ0B3bS92YXJpYWJsZXMnO1xuaW1wb3J0IHsgQmFzaWNNb2R1bGUgfSBmcm9tICdAd20vbW9iaWxlL2NvbXBvbmVudHMvYmFzaWMnO1xuXG5pbXBvcnQgeyBBcHBFeHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXBwLWV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9iaWxlSHR0cEludGVyY2VwdG9yIH0gZnJvbSAnLi9zZXJ2aWNlcy9odHRwLWludGVyY2VwdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2ViUHJvY2Vzc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3dlYnByb2Nlc3Muc2VydmljZSc7XG5pbXBvcnQge1NlYXJjaE1vZHVsZX0gZnJvbSBcIkB3bS9tb2JpbGUvY29tcG9uZW50cy9iYXNpYy9zZWFyY2hcIjtcbmltcG9ydCB7U2VnbWVudGVkQ29udHJvbE1vZHVsZX0gZnJvbSBcIkB3bS9tb2JpbGUvY29tcG9uZW50cy9jb250YWluZXJzL3NlZ21lbnRlZC1jb250cm9sXCI7XG5pbXBvcnQge01lZGlhTGlzdE1vZHVsZX0gZnJvbSBcIkB3bS9tb2JpbGUvY29tcG9uZW50cy9kYXRhL21lZGlhLWxpc3RcIjtcbmltcG9ydCB7QmFyY29kZVNjYW5uZXJNb2R1bGV9IGZyb20gXCJAd20vbW9iaWxlL2NvbXBvbmVudHMvZGV2aWNlL2JhcmNvZGUtc2Nhbm5lclwiO1xuaW1wb3J0IHtDYW1lcmFNb2R1bGV9IGZyb20gXCJAd20vbW9iaWxlL2NvbXBvbmVudHMvZGV2aWNlL2NhbWVyYVwiO1xuaW1wb3J0IHtGaWxlVXBsb2FkTW9kdWxlfSBmcm9tIFwiQHdtL21vYmlsZS9jb21wb25lbnRzL2lucHV0L2ZpbGUtdXBsb2FkXCI7XG5pbXBvcnQge1BhZ2VNb2R1bGV9IGZyb20gXCJAd20vbW9iaWxlL2NvbXBvbmVudHMvcGFnZVwiO1xuaW1wb3J0IHtMZWZ0UGFuZWxNb2R1bGV9IGZyb20gXCJAd20vbW9iaWxlL2NvbXBvbmVudHMvcGFnZS9sZWZ0LXBhbmVsXCI7XG5pbXBvcnQge01vYmlsZU5hdmJhck1vZHVsZX0gZnJvbSBcIkB3bS9tb2JpbGUvY29tcG9uZW50cy9wYWdlL21vYmlsZS1uYXZiYXJcIjtcbmltcG9ydCB7VGFiQmFyTW9kdWxlfSBmcm9tIFwiQHdtL21vYmlsZS9jb21wb25lbnRzL3BhZ2UvdGFiLWJhclwiO1xuXG5kZWNsYXJlIGNvbnN0ICQsIG5hdmlnYXRvciwgXywgY29yZG92YTtcblxuZXhwb3J0IGNvbnN0IE1BWF9XQUlUX1RJTUVfNF9PQVVUSF9NRVNTQUdFID0gNjAwMDA7XG5cbmNvbnN0IE1JTklNVU1fVEFCX1dJRFRIID0gNzY4O1xuY29uc3QgS0VZQk9BUkRfQ0xBU1MgPSAna2V5Ym9hcmQnO1xuXG5jb25zdCBjb3Jkb3ZhU2VydmljZXMgPSBbXG4gICAgQXBwVmVyc2lvbixcbiAgICBCYXJjb2RlU2Nhbm5lcixcbiAgICBDYWxlbmRhcixcbiAgICBDYW1lcmEsXG4gICAgRmlsZSxcbiAgICBGaWxlT3BlbmVyLFxuICAgIERldmljZSxcbiAgICBHZW9sb2NhdGlvbixcbiAgICBNZWRpYUNhcHR1cmUsXG4gICAgTmV0d29yayxcbiAgICBTUUxpdGUsXG4gICAgVmlicmF0aW9uLFxuICAgIExvY2F0aW9uQWNjdXJhY3ksXG4gICAgRGlhZ25vc3RpY1xuXTtcblxuZXhwb3J0IGNvbnN0IE1PQklMRV9DT01QT05FTlRfTU9EVUxFUyA9IFtcbiAgICBCYXNpY01vZHVsZSxcbiAgICBNb2JpbGVDb3JlTW9kdWxlLFxuICAgIE9mZmxpbmVNb2R1bGUsXG4gICAgVmFyaWFibGVzTW9kdWxlLFxuICAgIFNlYXJjaE1vZHVsZSxcbiAgICBTZWdtZW50ZWRDb250cm9sTW9kdWxlLFxuICAgIE1lZGlhTGlzdE1vZHVsZSxcbiAgICBCYXJjb2RlU2Nhbm5lck1vZHVsZSxcbiAgICBDYW1lcmFNb2R1bGUsXG4gICAgRmlsZVVwbG9hZE1vZHVsZSxcbiAgICBQYWdlTW9kdWxlLFxuICAgIExlZnRQYW5lbE1vZHVsZSxcbiAgICBNb2JpbGVOYXZiYXJNb2R1bGUsXG4gICAgVGFiQmFyTW9kdWxlXG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBBcHBFeHRDb21wb25lbnRcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgQXBwRXh0Q29tcG9uZW50LFxuICAgICAgICAuLi5NT0JJTEVfQ09NUE9ORU5UX01PRFVMRVNcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTW9iaWxlQ29yZU1vZHVsZSxcbiAgICAgICAgVmFyaWFibGVzTW9kdWxlLFxuICAgICAgICBCYXNpY01vZHVsZSxcbiAgICAgICAgLi4uTU9CSUxFX0NPTVBPTkVOVF9NT0RVTEVTXG4gICAgXSxcbiAgICBib290c3RyYXA6IFtdXG59KVxuZXhwb3J0IGNsYXNzIE1vYmlsZVJ1bnRpbWVNb2R1bGUge1xuXG4gICAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxNb2JpbGVSdW50aW1lTW9kdWxlPiB7XG4gICAgICAgIC8qIGFkZCBhbGwgcHJvdmlkZXJzIHRoYXQgYXJlIHJlcXVpcmVkIGZvciBtb2JpbGUgaGVyZS4gVGhpcyBpcyB0byBzaW1wbGlmeSBwbGFjZWhvbGRlci4qL1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IE1vYmlsZVJ1bnRpbWVNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICBXZWJQcm9jZXNzU2VydmljZSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxuICAgICAgICAgICAgICAgICAgICB1c2VDbGFzczogTW9iaWxlSHR0cEludGVyY2VwdG9yLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgLi4uY29yZG92YVNlcnZpY2VzLFxuICAgICAgICAgICAgICAgIEZpbGVFeHRlbnNpb25Gcm9tTWltZVBpcGUsXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IFB1c2hTZXJ2aWNlLCB1c2VDbGFzczogUHVzaFNlcnZpY2VJbXBsfVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgLy8gU3RhcnR1cCBzZXJ2aWNlcyBoYXZlIHRvIGJlIGFkZGVkIG9ubHkgb25jZSBpbiB0aGUgYXBwIGxpZmUtY3ljbGUuXG4gICAgcHJpdmF0ZSBzdGF0aWMgaW5pdGlhbGl6ZVJ1bnRpbWUocnVudGltZU1vZHVsZTogTW9iaWxlUnVudGltZU1vZHVsZSxcbiAgICAgICAgICAgICAgICAgICAgICBhcHA6IEFwcCxcbiAgICAgICAgICAgICAgICAgICAgICBkZXZpY2VGaWxlT3BlbmVyU2VydmljZTogRGV2aWNlRmlsZU9wZW5lclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgZGV2aWNlU2VydmljZTogRGV2aWNlU2VydmljZSkge1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICBhcHAuZGVwbG95ZWRVcmwgPSBydW50aW1lTW9kdWxlLmdldERlcGxveWVkVXJsKCk7XG4gICAgICAgIGlmIChoYXNDb3Jkb3ZhKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHVuc3Vic2NyaWJlID0gYXBwLnN1YnNjcmliZSgncGFnZVJlYWR5JywgKHBhZ2UpID0+IHtcbiAgICAgICAgICAgICAgICBuYXZpZ2F0b3Iuc3BsYXNoc2NyZWVuLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB1bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBhcHAuc3Vic2NyaWJlKCd1c2VyTG9nZ2VkSW4nLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29yZG92YSAmJiBjb3Jkb3ZhLndhdmVtYWtlci5zeW5jQ29va2llcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBydW50aW1lTW9kdWxlLmhhbmRsZUtleUJvYXJkQ2xhc3MoKTtcbiAgICAgICAgICAgIGFwcC5zdWJzY3JpYmUoJ2RldmljZS1maWxlLWRvd25sb2FkJywgKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBkZXZpY2VGaWxlT3BlbmVyU2VydmljZS5vcGVuUmVtb3RlRmlsZShkYXRhLnVybCwgZGF0YS5leHRlbnNpb24sIGRhdGEubmFtZSwgZGF0YS5oZWFkZXJzKS50aGVuKGRhdGEuc3VjY2Vzc0NiLCBkYXRhLmVycm9yQ2IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBfX3pvbmVfc3ltYm9sX19GaWxlUmVhZGVyID0gd2luZG93WydfX3pvbmVfc3ltYm9sX19GaWxlUmVhZGVyJ107XG4gICAgICAgICAgICBpZiAoX196b25lX3N5bWJvbF9fRmlsZVJlYWRlciAmJiBfX3pvbmVfc3ltYm9sX19GaWxlUmVhZGVyLlJFQURfQ0hVTktfU0laRSkge1xuICAgICAgICAgICAgICAgIC8vIGNvcmRvdmEgRmlsZSBSZWFkZXIgaXMgcmVxdWlyZWQuIE90aGVyd2lzZSwgZmlsZSBvcGVyYXRpb25zIGFyZSBmYWlsaW5nLlxuICAgICAgICAgICAgICAgIHdpbmRvd1snRmlsZVJlYWRlciddID0gX196b25lX3N5bWJvbF9fRmlsZVJlYWRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpbmRvdy5vcGVuID0gd2luZG93Wydjb3Jkb3ZhJ11bJ0luQXBwQnJvd3NlciddWydvcGVuJ107XG4gICAgICAgICAgICBydW50aW1lTW9kdWxlLmFkZEF1dGhJbkJyb3dzZXIoKTtcbiAgICAgICAgfVxuICAgICAgICBkZXZpY2VTZXJ2aWNlLnN0YXJ0KCk7XG4gICAgICAgIGRldmljZVNlcnZpY2Uud2hlblJlYWR5KCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaGFzQ29yZG92YSgpKSB7XG4gICAgICAgICAgICAgICAgcnVudGltZU1vZHVsZS5fJGFwcEVsLmFkZENsYXNzKCdjb3Jkb3ZhJyk7XG4gICAgICAgICAgICAgICAgcnVudGltZU1vZHVsZS5leHBvc2VPQXV0aFNlcnZpY2UoKTtcbiAgICAgICAgICAgICAgICAvLyBGaXggZm9yIGlzc3VlOiBpb3MgZGV2aWNlIGlzIG5vdCBjb25zaWRlcmluZyB0aGUgYmFja2dyb3VuZCBzdHlsZSwgZXZlbnRob3VnaCB2YWx1ZSBpcyBzZXQgaW4gY29uZmlnLnhtbC5cbiAgICAgICAgICAgICAgICBpZiAod2luZG93WydTdGF0dXNCYXInXSkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3dbJ1N0YXR1c0JhciddLm92ZXJsYXlzV2ViVmlldyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF8kYXBwRWw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhcHA6IEFwcCxcbiAgICAgICAgcHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRldmljZUZpbGVPcGVuZXJTZXJ2aWNlOiBEZXZpY2VGaWxlT3BlbmVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkZXZpY2VTZXJ2aWNlOiBEZXZpY2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHNlY3VyaXR5U2VydmljZTogU2VjdXJpdHlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBBYnN0cmFjdEh0dHBTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGV4dEFwcE1lc3NhZ2VTZXJ2aWNlOiBFeHRBcHBNZXNzYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuZXR3b3JrU2VydmljZTogTmV0d29ya1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgd2ViUHJvY2Vzc1NlcnZpY2U6IFdlYlByb2Nlc3NTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuXyRhcHBFbCA9ICQoJy53bS1hcHAnKS5maXJzdCgpO1xuICAgICAgICBpZiAodGhpcy5fJGFwcEVsLndpZHRoKCkgPj0gTUlOSU1VTV9UQUJfV0lEVEgpIHtcbiAgICAgICAgICAgIGFwcC5pc1RhYmxldEFwcGxpY2F0aW9uVHlwZSA9ICB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fJGFwcEVsLmFkZENsYXNzKCd3bS10YWJsZXQtYXBwJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl8kYXBwRWwuYWRkQ2xhc3MoJ3dtLW1vYmlsZS1hcHAnKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBhcHBseWluZyBvcyB0aGVtZSBvbiBnZXR0aW5nIG9zIGRldGFpbHNcbiAgICAgICAgYXBwLnN1YnNjcmliZSgnb24tdmlld3BvcnQtZGV0YWlscycsIG9zID0+IHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlPU1RoZW1lKG9zKTtcbiAgICAgICAgfSk7XG4gICAgICAgIE1vYmlsZVJ1bnRpbWVNb2R1bGUuaW5pdGlhbGl6ZVJ1bnRpbWUodGhpcywgdGhpcy5hcHAsIHRoaXMuZGV2aWNlRmlsZU9wZW5lclNlcnZpY2UsIHRoaXMuZGV2aWNlU2VydmljZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHBvc2VPQXV0aFNlcnZpY2UoKSB7XG4gICAgICAgIHdpbmRvd1snT0F1dGhJbk1vYmlsZSddID0gKHByb3ZpZGVySWQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvYXV0aEFkcmVzcyA9ICdec2VydmljZXMvb2F1dGgvJyArIHByb3ZpZGVySWQgKyAnJCc7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVyZWdpc3RlciA9IHRoaXMuZXh0QXBwTWVzc2FnZVNlcnZpY2Uuc3Vic2NyaWJlKG9hdXRoQWRyZXNzLCBtZXNzYWdlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUobWVzc2FnZS5kYXRhWydhY2Nlc3NfdG9rZW4nXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZXJlZ2lzdGVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXJJZCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVySWQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVyZWdpc3RlcigpO1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoYFRpbWUgb3V0IGZvciBvYXV0aCBtZXNzYWdlIGFmdGVyICR7TUFYX1dBSVRfVElNRV80X09BVVRIX01FU1NBR0UgJSAxMDAwfSBzZWNvbmRzYCk7XG4gICAgICAgICAgICAgICAgfSwgTUFYX1dBSVRfVElNRV80X09BVVRIX01FU1NBR0UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGhhbmRsZU9wZW5VUkwgPSB3aW5kb3dbJ2hhbmRsZU9wZW5VUkwnXTtcbiAgICAgICAgaGFuZGxlT3BlblVSTC5pc1JlYWR5ID0gdHJ1ZTtcbiAgICAgICAgaGFuZGxlT3BlblVSTChoYW5kbGVPcGVuVVJMLmxhc3RVUkwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhcHBseU9TVGhlbWUob3MpIHtcbiAgICAgICAgbGV0IG9sZFN0eWxlU2hlZXQgPSAkKCdsaW5rW3RoZW1lPVwid210aGVtZVwiXVtocmVmIF49XCJ0aGVtZXNcIl1baHJlZiAkPVwiL3N0eWxlLmNzc1wiXScpLmZpcnN0KCk7XG4gICAgICAgIGlmIChvbGRTdHlsZVNoZWV0Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgdGhlbWVVcmwgPSBvbGRTdHlsZVNoZWV0LmF0dHIoJ2hyZWYnKS5yZXBsYWNlKG5ldyBSZWdFeHAoJy9bYS16XSovc3R5bGUuY3NzJCcpLCBgLyR7b3MudG9Mb3dlckNhc2UoKX0vc3R5bGUuY3NzYCksXG4gICAgICAgICAgICAgICAgbmV3U3R5bGVTaGVldCA9IGxvYWRTdHlsZVNoZWV0KHRoZW1lVXJsLCB7bmFtZTogJ3RoZW1lJywgdmFsdWU6ICd3bXRoZW1lJ30pO1xuICAgICAgICAgICAgb2xkU3R5bGVTaGVldCA9IG9sZFN0eWxlU2hlZXQubGVuZ3RoID4gMCAmJiBvbGRTdHlsZVNoZWV0WzBdO1xuICAgICAgICAgICAgaWYgKG5ld1N0eWxlU2hlZXQgJiYgb2xkU3R5bGVTaGVldCkge1xuICAgICAgICAgICAgICAgIGluc2VydEFmdGVyKG5ld1N0eWxlU2hlZXQsIG9sZFN0eWxlU2hlZXQpO1xuICAgICAgICAgICAgICAgIHJlbW92ZU5vZGUob2xkU3R5bGVTaGVldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbiBhbmd1bGFyIGRldmVsb3BtZW50LCBzdHlsZVNoZWV0IHdpbGwgcG9pbnQgdG8gLmpzIGZpbGVzXG4gICAgICAgIC8vIEluIGFuZ3VsYXIgcHJvZHVjdGlvbiwgc3R5bGVTaGVldCB3aWxsIHBvaW50IHRvICd3bS1hbmRyb2lkLXN0eWxlcy5jc3MnIG9yICd3bS1pb3Mtc3R5bGVzLmNzcydcbiAgICAgICAgY29uc3QgcmVtb3ZlVGhlbWUgPSBvcy50b0xvd2VyQ2FzZSgpID09PSAnYW5kcm9pZCcgPyAnd20taW9zLXN0eWxlcycgOiAnd20tYW5kcm9pZC1zdHlsZXMnO1xuICAgICAgICBsZXQgaXNEZXZCdWlsZDtcbiAgICAgICAgY29uc3QgdXNlVGhlbWUgPSAnd20tJyArIG9zLnRvTG93ZXJDYXNlKCkgKyAnLXN0eWxlcyc7XG4gICAgICAgIGxldCB1bnVzZWRTdHlsZVNoZWV0ID0gJCgnbGlua1tocmVmICo9JyArIHJlbW92ZVRoZW1lICsgJ10nKS5maXJzdCgpO1xuICAgICAgICBpZiAoIXVudXNlZFN0eWxlU2hlZXQubGVuZ3RoKSB7XG4gICAgICAgICAgICBpc0RldkJ1aWxkID0gdHJ1ZTtcbiAgICAgICAgICAgIHVudXNlZFN0eWxlU2hlZXQgPSAkKCdzY3JpcHRbc3JjICo9JyArIHJlbW92ZVRoZW1lICsgJ10nKS5maXJzdCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1bnVzZWRTdHlsZVNoZWV0Lmxlbmd0aCkge1xuICAgICAgICAgICAgbGV0IG5ld1N0eWxlU2hlZXQ7XG4gICAgICAgICAgICBpZiAoaXNEZXZCdWlsZCkge1xuICAgICAgICAgICAgICAgIG5ld1N0eWxlU2hlZXQgPSB1bnVzZWRTdHlsZVNoZWV0LmNsb25lKCk7XG4gICAgICAgICAgICAgICAgbmV3U3R5bGVTaGVldCA9IG5ld1N0eWxlU2hlZXRbMF07XG4gICAgICAgICAgICAgICAgbmV3U3R5bGVTaGVldC5zcmMgPSBuZXdTdHlsZVNoZWV0LnNyYy5yZXBsYWNlKHJlbW92ZVRoZW1lLCB1c2VUaGVtZSk7XG4gICAgICAgICAgICAgICAgbG9hZFNjcmlwdChuZXdTdHlsZVNoZWV0LnNyYywgZmFsc2UpO1xuICAgICAgICAgICAgICAgIHVudXNlZFN0eWxlU2hlZXQgPSB1bnVzZWRTdHlsZVNoZWV0WzBdO1xuICAgICAgICAgICAgICAgIGluc2VydEFmdGVyKG5ld1N0eWxlU2hlZXQsIHVudXNlZFN0eWxlU2hlZXQpO1xuICAgICAgICAgICAgICAgIHJlbW92ZU5vZGUodW51c2VkU3R5bGVTaGVldCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld1N0eWxlU2hlZXQgPSAkKCdsaW5rW2hyZWYgKj0nICsgdXNlVGhlbWUgKyAnXScpLmZpcnN0KCk7XG4gICAgICAgICAgICAgICAgbmV3U3R5bGVTaGVldCA9IG5ld1N0eWxlU2hlZXRbMF07XG4gICAgICAgICAgICAgICAgbG9hZFN0eWxlU2hlZXQobmV3U3R5bGVTaGVldC5ocmVmLCB7bmFtZTogJ3RoZW1lJywgdmFsdWU6ICd3bXRoZW1lJ30pO1xuICAgICAgICAgICAgICAgIHJlbW92ZU5vZGUodW51c2VkU3R5bGVTaGVldFswXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUtleUJvYXJkQ2xhc3MoKSB7XG4gICAgICAgIGNvbnN0IGluaXRpYWxTY3JlZW5TaXplID0gd2luZG93LmlubmVySGVpZ2h0O1xuICAgICAgICAvLyBrZXlib2FyZCBjbGFzcyBpcyBhZGRlZCB3aGVuIGtleWJvYXJkIGlzIG9wZW4uXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAod2luZG93LmlubmVySGVpZ2h0IDwgaW5pdGlhbFNjcmVlblNpemUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl8kYXBwRWwuYWRkQ2xhc3MoS0VZQk9BUkRfQ0xBU1MpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl8kYXBwRWwucmVtb3ZlQ2xhc3MoS0VZQk9BUkRfQ0xBU1MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERlcGxveWVkVXJsKCk6IHN0cmluZyB7XG4gICAgICAgIGxldCBkZXBsb3llZFVybCA9ICRyb290U2NvcGUucHJvamVjdC5kZXBsb3llZFVybDtcbiAgICAgICAgaWYgKGhhc0NvcmRvdmEoKSkge1xuICAgICAgICAgICAgY29uc3QgYmFzZVVybCA9ICQoJ21ldGFbbmFtZT1cImxpdmVTeW5jLmRlcGxveWVkVXJsXCJdJykuYXR0cigndmFsdWUnKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuZGV2aWNlU2VydmljZS5nZXRDb25maWcoKTtcbiAgICAgICAgICAgIGlmIChiYXNlVXJsKSB7XG4gICAgICAgICAgICAgICAgZGVwbG95ZWRVcmwgPSBiYXNlVXJsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkZXBsb3llZFVybCA9IHRoaXMuZGV2aWNlU2VydmljZS5nZXRCYXNlVXJsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmFwcC5jdXN0b21VcmxTY2hlbWUgPSBjb25maWcuY3VzdG9tVXJsU2NoZW1lO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZXBsb3llZFVybCAhPT0gJ05PTkUnICYmICFkZXBsb3llZFVybC5lbmRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICBkZXBsb3llZFVybCA9IGRlcGxveWVkVXJsICsgJy8nO1xuICAgICAgICB9XG4gICAgICAgICRyb290U2NvcGUucHJvamVjdC5kZXBsb3llZFVybCA9IGRlcGxveWVkVXJsO1xuICAgICAgICByZXR1cm4gZGVwbG95ZWRVcmw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRBdXRoSW5Ccm93c2VyKCkge1xuICAgICAgICBsZXQgaXNBdXRoZW50aWNhdGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlY3VyaXR5U2VydmljZS5hdXRoSW5Ccm93c2VyID0gKCk6IFByb21pc2U8YW55PiA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMubmV0d29ya1NlcnZpY2UuaXNDb25uZWN0ZWQoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnSW4gb2ZmbGluZSwgYXBwIGNhbm5vdCBjb250YWN0IHRoZSBzZXJ2ZXIuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNBdXRoZW50aWNhdGluZykge1xuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnQXV0aGVudGljYXRpb24gaXMgaW4gcHJvY2Vzcy4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlzQXV0aGVudGljYXRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMud2ViUHJvY2Vzc1NlcnZpY2UuZXhlY3V0ZSgnTE9HSU4nLCAnLycsIHRydWUpXG4gICAgICAgICAgICAgICAgLnRoZW4ob3V0cHV0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gSlNPTi5wYXJzZShvdXRwdXQgJiYgb3V0cHV0LnJlcGxhY2UoLyZxdW90Oy9nLCBcIlxcXCJcIikpO1xuICAgICAgICAgICAgICAgICAgICBpZiAob3V0cHV0W0NPTlNUQU5UUy5YU1JGX0NPT0tJRV9OQU1FXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oQ09OU1RBTlRTLlhTUkZfQ09PS0lFX05BTUUsIG91dHB1dFtDT05TVEFOVFMuWFNSRl9DT09LSUVfTkFNRV0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlzQXV0aGVudGljYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29va2llU2VydmljZS5jbGVhckFsbCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgIHByb21pc2VzID0gXy5rZXlzKG91dHB1dCkubWFwKGsgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb29raWVTZXJ2aWNlLnNldENvb2tpZSh0aGlzLmFwcC5kZXBsb3llZFVybCwgaywgb3V0cHV0W2tdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB0aGlzLmFwcC5ub3RpZnkoJ3VzZXJMb2dnZWRJbicsIHt9KSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaXNBdXRoZW50aWNhdGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|
|
351
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLXJ1bnRpbWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9iaWxlL3J1bnRpbWUvc3JjL21vYmlsZS1ydW50aW1lLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FB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bkIsbUJBQW1CO3VFQVB4QixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLFdBQVcsRUFDUix3QkFBd0IsRUE1Qi9CLFdBQVc7WUFDWCxnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGVBQWU7WUFDZixZQUFZO1lBQ1osc0JBQXNCO1lBQ3RCLGVBQWU7WUFDZixvQkFBb0I7WUFDcEIsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixVQUFVO1lBQ1YsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixZQUFZOztpRkFtQkgsbUJBQW1CO2NBaEIvQixRQUFRO2VBQUM7Z0JBQ04sWUFBWSxFQUFFO29CQUNWLGVBQWU7aUJBQ2xCO2dCQUNELE9BQU8sRUFBRTtvQkFDTCxlQUFlO29CQUNmLEdBQUcsd0JBQXdCO2lCQUM5QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsZ0JBQWdCO29CQUNoQixlQUFlO29CQUNmLFdBQVc7b0JBQ1gsR0FBRyx3QkFBd0I7aUJBQzlCO2dCQUNELFNBQVMsRUFBRSxFQUFFO2FBQ2hCOzt3RkFDWSxtQkFBbUIsbUJBZHhCLGVBQWUsYUFPZixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLFdBQVcsRUEzQmYsV0FBVztRQUNYLGdCQUFnQjtRQUNoQixhQUFhO1FBQ2IsZUFBZTtRQUNmLFlBQVk7UUFDWixzQkFBc0I7UUFDdEIsZUFBZTtRQUNmLG9CQUFvQjtRQUNwQixZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLFVBQVU7UUFDVixlQUFlO1FBQ2Ysa0JBQWtCO1FBQ2xCLFlBQVksYUFRUixlQUFlLEVBckJuQixXQUFXO1FBQ1gsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixlQUFlO1FBQ2YsWUFBWTtRQUNaLHNCQUFzQjtRQUN0QixlQUFlO1FBQ2Ysb0JBQW9CO1FBQ3BCLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsVUFBVTtRQUNWLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQXBwVmVyc2lvbiB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9hcHAtdmVyc2lvbi9uZ3gnO1xuaW1wb3J0IHsgQmFyY29kZVNjYW5uZXIgfSBmcm9tICdAYXdlc29tZS1jb3Jkb3ZhLXBsdWdpbnMvYmFyY29kZS1zY2FubmVyL25neCc7XG5pbXBvcnQgeyBDYWxlbmRhciB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9jYWxlbmRhci9uZ3gnO1xuaW1wb3J0IHsgQ2FtZXJhIH0gZnJvbSAnQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL2NhbWVyYS9uZ3gnO1xuaW1wb3J0IHsgRmlsZSB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9maWxlL25neCc7XG5pbXBvcnQgeyBGaWxlT3BlbmVyIH0gZnJvbSAnQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL2ZpbGUtb3BlbmVyL25neCc7XG5pbXBvcnQgeyBEZXZpY2UgfSBmcm9tICdAYXdlc29tZS1jb3Jkb3ZhLXBsdWdpbnMvZGV2aWNlL25neCc7XG5pbXBvcnQgeyBNZWRpYUNhcHR1cmUgfSBmcm9tICdAYXdlc29tZS1jb3Jkb3ZhLXBsdWdpbnMvbWVkaWEtY2FwdHVyZS9uZ3gnO1xuaW1wb3J0IHsgR2VvbG9jYXRpb24gfSBmcm9tICdAYXdlc29tZS1jb3Jkb3ZhLXBsdWdpbnMvZ2VvbG9jYXRpb24vbmd4JztcbmltcG9ydCB7IE5ldHdvcmsgfSBmcm9tICdAYXdlc29tZS1jb3Jkb3ZhLXBsdWdpbnMvbmV0d29yay9uZ3gnO1xuaW1wb3J0IHsgU1FMaXRlIH0gZnJvbSAnQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL3NxbGl0ZS9uZ3gnO1xuaW1wb3J0IHsgVmlicmF0aW9uIH0gZnJvbSAnQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL3ZpYnJhdGlvbi9uZ3gnO1xuaW1wb3J0IHsgTG9jYXRpb25BY2N1cmFjeSB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9sb2NhdGlvbi1hY2N1cmFjeS9uZ3gnO1xuaW1wb3J0IHsgRGlhZ25vc3RpYyB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9kaWFnbm9zdGljL25neCc7XG5cbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2Nvb2tpZS5zZXJ2aWNlJztcblxuaW1wb3J0IHtcbiAgICBBcHAsXG4gICAgQWJzdHJhY3RIdHRwU2VydmljZSxcbiAgICBoYXNDb3Jkb3ZhLFxuICAgIGluc2VydEFmdGVyLFxuICAgIGlzSXBhZCxcbiAgICBpc0lwaG9uZSxcbiAgICBpc0lwb2QsXG4gICAgaXNPYmplY3QsXG4gICAgbG9hZFNjcmlwdCxcbiAgICBsb2FkU3R5bGVTaGVldCxcbiAgICBub29wLFxuICAgIHJlbW92ZU5vZGUsXG4gICAgZ2V0V21Qcm9qZWN0UHJvcGVydGllc1xufSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBGaWxlRXh0ZW5zaW9uRnJvbU1pbWVQaXBlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBEZXZpY2VGaWxlT3BlbmVyU2VydmljZSwgRGV2aWNlU2VydmljZSwgRXh0QXBwTWVzc2FnZVNlcnZpY2UsIE1vYmlsZUNvcmVNb2R1bGUsIE5ldHdvcmtTZXJ2aWNlIH0gZnJvbSAnQHdtL21vYmlsZS9jb3JlJztcbmltcG9ydCB7T2ZmbGluZU1vZHVsZSwgUHVzaFNlcnZpY2UsIFB1c2hTZXJ2aWNlSW1wbH0gZnJvbSAnQHdtL21vYmlsZS9vZmZsaW5lJztcbmltcG9ydCB7IFNlY3VyaXR5U2VydmljZSB9IGZyb20gJ0B3bS9zZWN1cml0eSc7XG5pbXBvcnQgeyBWYXJpYWJsZXNNb2R1bGUgfSBmcm9tICdAd20vbW9iaWxlL3ZhcmlhYmxlcyc7XG5pbXBvcnQgeyAkcm9vdFNjb3BlLCBDT05TVEFOVFMgfSBmcm9tICdAd20vdmFyaWFibGVzJztcbmltcG9ydCB7IEJhc2ljTW9kdWxlIH0gZnJvbSAnQHdtL21vYmlsZS9jb21wb25lbnRzL2Jhc2ljJztcblxuaW1wb3J0IHsgQXBwRXh0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FwcC1leHQuY29tcG9uZW50JztcbmltcG9ydCB7IE1vYmlsZUh0dHBJbnRlcmNlcHRvciB9IGZyb20gJy4vc2VydmljZXMvaHR0cC1pbnRlcmNlcHRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFdlYlByb2Nlc3NTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy93ZWJwcm9jZXNzLnNlcnZpY2UnO1xuaW1wb3J0IHtTZWFyY2hNb2R1bGV9IGZyb20gXCJAd20vbW9iaWxlL2NvbXBvbmVudHMvYmFzaWMvc2VhcmNoXCI7XG5pbXBvcnQge1NlZ21lbnRlZENvbnRyb2xNb2R1bGV9IGZyb20gXCJAd20vbW9iaWxlL2NvbXBvbmVudHMvY29udGFpbmVycy9zZWdtZW50ZWQtY29udHJvbFwiO1xuaW1wb3J0IHtNZWRpYUxpc3RNb2R1bGV9IGZyb20gXCJAd20vbW9iaWxlL2NvbXBvbmVudHMvZGF0YS9tZWRpYS1saXN0XCI7XG5pbXBvcnQge0JhcmNvZGVTY2FubmVyTW9kdWxlfSBmcm9tIFwiQHdtL21vYmlsZS9jb21wb25lbnRzL2RldmljZS9iYXJjb2RlLXNjYW5uZXJcIjtcbmltcG9ydCB7Q2FtZXJhTW9kdWxlfSBmcm9tIFwiQHdtL21vYmlsZS9jb21wb25lbnRzL2RldmljZS9jYW1lcmFcIjtcbmltcG9ydCB7RmlsZVVwbG9hZE1vZHVsZX0gZnJvbSBcIkB3bS9tb2JpbGUvY29tcG9uZW50cy9pbnB1dC9maWxlLXVwbG9hZFwiO1xuaW1wb3J0IHtQYWdlTW9kdWxlfSBmcm9tIFwiQHdtL21vYmlsZS9jb21wb25lbnRzL3BhZ2VcIjtcbmltcG9ydCB7TGVmdFBhbmVsTW9kdWxlfSBmcm9tIFwiQHdtL21vYmlsZS9jb21wb25lbnRzL3BhZ2UvbGVmdC1wYW5lbFwiO1xuaW1wb3J0IHtNb2JpbGVOYXZiYXJNb2R1bGV9IGZyb20gXCJAd20vbW9iaWxlL2NvbXBvbmVudHMvcGFnZS9tb2JpbGUtbmF2YmFyXCI7XG5pbXBvcnQge1RhYkJhck1vZHVsZX0gZnJvbSBcIkB3bS9tb2JpbGUvY29tcG9uZW50cy9wYWdlL3RhYi1iYXJcIjtcbmltcG9ydCB7a2V5c30gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5kZWNsYXJlIGNvbnN0ICQ7XG5kZWNsYXJlIGNvbnN0IG5hdmlnYXRvciwgY29yZG92YTtcblxuZXhwb3J0IGNvbnN0IE1BWF9XQUlUX1RJTUVfNF9PQVVUSF9NRVNTQUdFID0gNjAwMDA7XG5cbmNvbnN0IE1JTklNVU1fVEFCX1dJRFRIID0gNzY4O1xuY29uc3QgS0VZQk9BUkRfQ0xBU1MgPSAna2V5Ym9hcmQnO1xuXG5jb25zdCBjb3Jkb3ZhU2VydmljZXMgPSBbXG4gICAgQXBwVmVyc2lvbixcbiAgICBCYXJjb2RlU2Nhbm5lcixcbiAgICBDYWxlbmRhcixcbiAgICBDYW1lcmEsXG4gICAgRmlsZSxcbiAgICBGaWxlT3BlbmVyLFxuICAgIERldmljZSxcbiAgICBHZW9sb2NhdGlvbixcbiAgICBNZWRpYUNhcHR1cmUsXG4gICAgTmV0d29yayxcbiAgICBTUUxpdGUsXG4gICAgVmlicmF0aW9uLFxuICAgIExvY2F0aW9uQWNjdXJhY3ksXG4gICAgRGlhZ25vc3RpY1xuXTtcblxuZXhwb3J0IGNvbnN0IE1PQklMRV9DT01QT05FTlRfTU9EVUxFUyA9IFtcbiAgICBCYXNpY01vZHVsZSxcbiAgICBNb2JpbGVDb3JlTW9kdWxlLFxuICAgIE9mZmxpbmVNb2R1bGUsXG4gICAgVmFyaWFibGVzTW9kdWxlLFxuICAgIFNlYXJjaE1vZHVsZSxcbiAgICBTZWdtZW50ZWRDb250cm9sTW9kdWxlLFxuICAgIE1lZGlhTGlzdE1vZHVsZSxcbiAgICBCYXJjb2RlU2Nhbm5lck1vZHVsZSxcbiAgICBDYW1lcmFNb2R1bGUsXG4gICAgRmlsZVVwbG9hZE1vZHVsZSxcbiAgICBQYWdlTW9kdWxlLFxuICAgIExlZnRQYW5lbE1vZHVsZSxcbiAgICBNb2JpbGVOYXZiYXJNb2R1bGUsXG4gICAgVGFiQmFyTW9kdWxlXG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBBcHBFeHRDb21wb25lbnRcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgQXBwRXh0Q29tcG9uZW50LFxuICAgICAgICAuLi5NT0JJTEVfQ09NUE9ORU5UX01PRFVMRVNcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTW9iaWxlQ29yZU1vZHVsZSxcbiAgICAgICAgVmFyaWFibGVzTW9kdWxlLFxuICAgICAgICBCYXNpY01vZHVsZSxcbiAgICAgICAgLi4uTU9CSUxFX0NPTVBPTkVOVF9NT0RVTEVTXG4gICAgXSxcbiAgICBib290c3RyYXA6IFtdXG59KVxuZXhwb3J0IGNsYXNzIE1vYmlsZVJ1bnRpbWVNb2R1bGUge1xuXG4gICAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxNb2JpbGVSdW50aW1lTW9kdWxlPiB7XG4gICAgICAgIC8qIGFkZCBhbGwgcHJvdmlkZXJzIHRoYXQgYXJlIHJlcXVpcmVkIGZvciBtb2JpbGUgaGVyZS4gVGhpcyBpcyB0byBzaW1wbGlmeSBwbGFjZWhvbGRlci4qL1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IE1vYmlsZVJ1bnRpbWVNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICBXZWJQcm9jZXNzU2VydmljZSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxuICAgICAgICAgICAgICAgICAgICB1c2VDbGFzczogTW9iaWxlSHR0cEludGVyY2VwdG9yLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgLi4uY29yZG92YVNlcnZpY2VzLFxuICAgICAgICAgICAgICAgIEZpbGVFeHRlbnNpb25Gcm9tTWltZVBpcGUsXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IFB1c2hTZXJ2aWNlLCB1c2VDbGFzczogUHVzaFNlcnZpY2VJbXBsfVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgLy8gU3RhcnR1cCBzZXJ2aWNlcyBoYXZlIHRvIGJlIGFkZGVkIG9ubHkgb25jZSBpbiB0aGUgYXBwIGxpZmUtY3ljbGUuXG4gICAgcHJpdmF0ZSBzdGF0aWMgaW5pdGlhbGl6ZVJ1bnRpbWUocnVudGltZU1vZHVsZTogTW9iaWxlUnVudGltZU1vZHVsZSxcbiAgICAgICAgICAgICAgICAgICAgICBhcHA6IEFwcCxcbiAgICAgICAgICAgICAgICAgICAgICBkZXZpY2VGaWxlT3BlbmVyU2VydmljZTogRGV2aWNlRmlsZU9wZW5lclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgZGV2aWNlU2VydmljZTogRGV2aWNlU2VydmljZSkge1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICBhcHAuZGVwbG95ZWRVcmwgPSBydW50aW1lTW9kdWxlLmdldERlcGxveWVkVXJsKCk7XG4gICAgICAgIGlmIChoYXNDb3Jkb3ZhKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHVuc3Vic2NyaWJlID0gYXBwLnN1YnNjcmliZSgncGFnZVJlYWR5JywgKHBhZ2UpID0+IHtcbiAgICAgICAgICAgICAgICBuYXZpZ2F0b3Iuc3BsYXNoc2NyZWVuLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB1bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBhcHAuc3Vic2NyaWJlKCd1c2VyTG9nZ2VkSW4nLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29yZG92YSAmJiBjb3Jkb3ZhLndhdmVtYWtlci5zeW5jQ29va2llcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBydW50aW1lTW9kdWxlLmhhbmRsZUtleUJvYXJkQ2xhc3MoKTtcbiAgICAgICAgICAgIGFwcC5zdWJzY3JpYmUoJ2RldmljZS1maWxlLWRvd25sb2FkJywgKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBkZXZpY2VGaWxlT3BlbmVyU2VydmljZS5vcGVuUmVtb3RlRmlsZShkYXRhLnVybCwgZGF0YS5leHRlbnNpb24sIGRhdGEubmFtZSwgZGF0YS5oZWFkZXJzKS50aGVuKGRhdGEuc3VjY2Vzc0NiLCBkYXRhLmVycm9yQ2IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBfX3pvbmVfc3ltYm9sX19GaWxlUmVhZGVyID0gd2luZG93WydfX3pvbmVfc3ltYm9sX19GaWxlUmVhZGVyJ107XG4gICAgICAgICAgICBpZiAoX196b25lX3N5bWJvbF9fRmlsZVJlYWRlciAmJiBfX3pvbmVfc3ltYm9sX19GaWxlUmVhZGVyLlJFQURfQ0hVTktfU0laRSkge1xuICAgICAgICAgICAgICAgIC8vIGNvcmRvdmEgRmlsZSBSZWFkZXIgaXMgcmVxdWlyZWQuIE90aGVyd2lzZSwgZmlsZSBvcGVyYXRpb25zIGFyZSBmYWlsaW5nLlxuICAgICAgICAgICAgICAgIHdpbmRvd1snRmlsZVJlYWRlciddID0gX196b25lX3N5bWJvbF9fRmlsZVJlYWRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpbmRvdy5vcGVuID0gd2luZG93Wydjb3Jkb3ZhJ11bJ0luQXBwQnJvd3NlciddWydvcGVuJ107XG4gICAgICAgICAgICBydW50aW1lTW9kdWxlLmFkZEF1dGhJbkJyb3dzZXIoKTtcbiAgICAgICAgfVxuICAgICAgICBkZXZpY2VTZXJ2aWNlLnN0YXJ0KCk7XG4gICAgICAgIGRldmljZVNlcnZpY2Uud2hlblJlYWR5KCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaGFzQ29yZG92YSgpKSB7XG4gICAgICAgICAgICAgICAgcnVudGltZU1vZHVsZS5fJGFwcEVsLmFkZENsYXNzKCdjb3Jkb3ZhJyk7XG4gICAgICAgICAgICAgICAgcnVudGltZU1vZHVsZS5leHBvc2VPQXV0aFNlcnZpY2UoKTtcbiAgICAgICAgICAgICAgICAvLyBGaXggZm9yIGlzc3VlOiBpb3MgZGV2aWNlIGlzIG5vdCBjb25zaWRlcmluZyB0aGUgYmFja2dyb3VuZCBzdHlsZSwgZXZlbnRob3VnaCB2YWx1ZSBpcyBzZXQgaW4gY29uZmlnLnhtbC5cbiAgICAgICAgICAgICAgICBpZiAod2luZG93WydTdGF0dXNCYXInXSkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3dbJ1N0YXR1c0JhciddLm92ZXJsYXlzV2ViVmlldyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF8kYXBwRWw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhcHA6IEFwcCxcbiAgICAgICAgcHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRldmljZUZpbGVPcGVuZXJTZXJ2aWNlOiBEZXZpY2VGaWxlT3BlbmVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkZXZpY2VTZXJ2aWNlOiBEZXZpY2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHNlY3VyaXR5U2VydmljZTogU2VjdXJpdHlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBBYnN0cmFjdEh0dHBTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGV4dEFwcE1lc3NhZ2VTZXJ2aWNlOiBFeHRBcHBNZXNzYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuZXR3b3JrU2VydmljZTogTmV0d29ya1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgd2ViUHJvY2Vzc1NlcnZpY2U6IFdlYlByb2Nlc3NTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuXyRhcHBFbCA9ICQoJy53bS1hcHAnKS5maXJzdCgpO1xuICAgICAgICBpZiAodGhpcy5fJGFwcEVsLndpZHRoKCkgPj0gTUlOSU1VTV9UQUJfV0lEVEgpIHtcbiAgICAgICAgICAgIGFwcC5pc1RhYmxldEFwcGxpY2F0aW9uVHlwZSA9ICB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fJGFwcEVsLmFkZENsYXNzKCd3bS10YWJsZXQtYXBwJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl8kYXBwRWwuYWRkQ2xhc3MoJ3dtLW1vYmlsZS1hcHAnKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBhcHBseWluZyBvcyB0aGVtZSBvbiBnZXR0aW5nIG9zIGRldGFpbHNcbiAgICAgICAgYXBwLnN1YnNjcmliZSgnb24tdmlld3BvcnQtZGV0YWlscycsIG9zID0+IHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlPU1RoZW1lKG9zKTtcbiAgICAgICAgfSk7XG4gICAgICAgIE1vYmlsZVJ1bnRpbWVNb2R1bGUuaW5pdGlhbGl6ZVJ1bnRpbWUodGhpcywgdGhpcy5hcHAsIHRoaXMuZGV2aWNlRmlsZU9wZW5lclNlcnZpY2UsIHRoaXMuZGV2aWNlU2VydmljZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHBvc2VPQXV0aFNlcnZpY2UoKSB7XG4gICAgICAgIHdpbmRvd1snT0F1dGhJbk1vYmlsZSddID0gKHByb3ZpZGVySWQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvYXV0aEFkcmVzcyA9ICdec2VydmljZXMvb2F1dGgvJyArIHByb3ZpZGVySWQgKyAnJCc7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVyZWdpc3RlciA9IHRoaXMuZXh0QXBwTWVzc2FnZVNlcnZpY2Uuc3Vic2NyaWJlKG9hdXRoQWRyZXNzLCBtZXNzYWdlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUobWVzc2FnZS5kYXRhWydhY2Nlc3NfdG9rZW4nXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZXJlZ2lzdGVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXJJZCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVySWQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVyZWdpc3RlcigpO1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoYFRpbWUgb3V0IGZvciBvYXV0aCBtZXNzYWdlIGFmdGVyICR7TUFYX1dBSVRfVElNRV80X09BVVRIX01FU1NBR0UgJSAxMDAwfSBzZWNvbmRzYCk7XG4gICAgICAgICAgICAgICAgfSwgTUFYX1dBSVRfVElNRV80X09BVVRIX01FU1NBR0UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGhhbmRsZU9wZW5VUkwgPSB3aW5kb3dbJ2hhbmRsZU9wZW5VUkwnXTtcbiAgICAgICAgaGFuZGxlT3BlblVSTC5pc1JlYWR5ID0gdHJ1ZTtcbiAgICAgICAgaGFuZGxlT3BlblVSTChoYW5kbGVPcGVuVVJMLmxhc3RVUkwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhcHBseU9TVGhlbWUob3MpIHtcbiAgICAgICAgbGV0IG9sZFN0eWxlU2hlZXQ6IGFueSA9ICQoJ2xpbmtbdGhlbWU9XCJ3bXRoZW1lXCJdW2hyZWYgXj1cInRoZW1lc1wiXVtocmVmICQ9XCIvc3R5bGUuY3NzXCJdJykuZmlyc3QoKTtcbiAgICAgICAgaWYgKG9sZFN0eWxlU2hlZXQubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCB0aGVtZVVybCA9IG9sZFN0eWxlU2hlZXQuYXR0cignaHJlZicpLnJlcGxhY2UobmV3IFJlZ0V4cCgnL1thLXpdKi9zdHlsZS5jc3MkJyksIGAvJHtvcy50b0xvd2VyQ2FzZSgpfS9zdHlsZS5jc3NgKSxcbiAgICAgICAgICAgICAgICBuZXdTdHlsZVNoZWV0ID0gbG9hZFN0eWxlU2hlZXQodGhlbWVVcmwsIHtuYW1lOiAndGhlbWUnLCB2YWx1ZTogJ3dtdGhlbWUnfSk7XG4gICAgICAgICAgICBvbGRTdHlsZVNoZWV0ID0gb2xkU3R5bGVTaGVldC5sZW5ndGggPiAwICYmIG9sZFN0eWxlU2hlZXRbMF07XG4gICAgICAgICAgICBpZiAobmV3U3R5bGVTaGVldCAmJiBvbGRTdHlsZVNoZWV0KSB7XG4gICAgICAgICAgICAgICAgaW5zZXJ0QWZ0ZXIobmV3U3R5bGVTaGVldCwgb2xkU3R5bGVTaGVldCk7XG4gICAgICAgICAgICAgICAgcmVtb3ZlTm9kZShvbGRTdHlsZVNoZWV0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEluIGFuZ3VsYXIgZGV2ZWxvcG1lbnQsIHN0eWxlU2hlZXQgd2lsbCBwb2ludCB0byAuanMgZmlsZXNcbiAgICAgICAgLy8gSW4gYW5ndWxhciBwcm9kdWN0aW9uLCBzdHlsZVNoZWV0IHdpbGwgcG9pbnQgdG8gJ3dtLWFuZHJvaWQtc3R5bGVzLmNzcycgb3IgJ3dtLWlvcy1zdHlsZXMuY3NzJ1xuICAgICAgICBjb25zdCByZW1vdmVUaGVtZSA9IG9zLnRvTG93ZXJDYXNlKCkgPT09ICdhbmRyb2lkJyA/ICd3bS1pb3Mtc3R5bGVzJyA6ICd3bS1hbmRyb2lkLXN0eWxlcyc7XG4gICAgICAgIGxldCBpc0RldkJ1aWxkO1xuICAgICAgICBjb25zdCB1c2VUaGVtZSA9ICd3bS0nICsgb3MudG9Mb3dlckNhc2UoKSArICctc3R5bGVzJztcbiAgICAgICAgbGV0IHVudXNlZFN0eWxlU2hlZXQ6IGFueSA9ICQoJ2xpbmtbaHJlZiAqPScgKyByZW1vdmVUaGVtZSArICddJykuZmlyc3QoKTtcbiAgICAgICAgaWYgKCF1bnVzZWRTdHlsZVNoZWV0Lmxlbmd0aCkge1xuICAgICAgICAgICAgaXNEZXZCdWlsZCA9IHRydWU7XG4gICAgICAgICAgICB1bnVzZWRTdHlsZVNoZWV0ID0gJCgnc2NyaXB0W3NyYyAqPScgKyByZW1vdmVUaGVtZSArICddJykuZmlyc3QoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodW51c2VkU3R5bGVTaGVldC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGxldCBuZXdTdHlsZVNoZWV0O1xuICAgICAgICAgICAgaWYgKGlzRGV2QnVpbGQpIHtcbiAgICAgICAgICAgICAgICBuZXdTdHlsZVNoZWV0ID0gdW51c2VkU3R5bGVTaGVldC5jbG9uZSgpO1xuICAgICAgICAgICAgICAgIG5ld1N0eWxlU2hlZXQgPSBuZXdTdHlsZVNoZWV0WzBdO1xuICAgICAgICAgICAgICAgIG5ld1N0eWxlU2hlZXQuc3JjID0gbmV3U3R5bGVTaGVldC5zcmMucmVwbGFjZShyZW1vdmVUaGVtZSwgdXNlVGhlbWUpO1xuICAgICAgICAgICAgICAgIGxvYWRTY3JpcHQobmV3U3R5bGVTaGVldC5zcmMsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB1bnVzZWRTdHlsZVNoZWV0ID0gdW51c2VkU3R5bGVTaGVldFswXTtcbiAgICAgICAgICAgICAgICBpbnNlcnRBZnRlcihuZXdTdHlsZVNoZWV0LCB1bnVzZWRTdHlsZVNoZWV0KTtcbiAgICAgICAgICAgICAgICByZW1vdmVOb2RlKHVudXNlZFN0eWxlU2hlZXQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdTdHlsZVNoZWV0ID0gJCgnbGlua1tocmVmICo9JyArIHVzZVRoZW1lICsgJ10nKS5maXJzdCgpO1xuICAgICAgICAgICAgICAgIG5ld1N0eWxlU2hlZXQgPSBuZXdTdHlsZVNoZWV0WzBdO1xuICAgICAgICAgICAgICAgIGxvYWRTdHlsZVNoZWV0KG5ld1N0eWxlU2hlZXQuaHJlZiwge25hbWU6ICd0aGVtZScsIHZhbHVlOiAnd210aGVtZSd9KTtcbiAgICAgICAgICAgICAgICByZW1vdmVOb2RlKHVudXNlZFN0eWxlU2hlZXRbMF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVLZXlCb2FyZENsYXNzKCkge1xuICAgICAgICBjb25zdCBpbml0aWFsU2NyZWVuU2l6ZSA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgICAgLy8ga2V5Ym9hcmQgY2xhc3MgaXMgYWRkZWQgd2hlbiBrZXlib2FyZCBpcyBvcGVuLlxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHdpbmRvdy5pbm5lckhlaWdodCA8IGluaXRpYWxTY3JlZW5TaXplKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fJGFwcEVsLmFkZENsYXNzKEtFWUJPQVJEX0NMQVNTKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fJGFwcEVsLnJlbW92ZUNsYXNzKEtFWUJPQVJEX0NMQVNTKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREZXBsb3llZFVybCgpOiBzdHJpbmcge1xuICAgICAgICBsZXQgZGVwbG95ZWRVcmwgPSAkcm9vdFNjb3BlLnByb2plY3QuZGVwbG95ZWRVcmw7XG4gICAgICAgIGlmIChoYXNDb3Jkb3ZhKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGJhc2VVcmwgPSAkKCdtZXRhW25hbWU9XCJsaXZlU3luYy5kZXBsb3llZFVybFwiXScpLmF0dHIoJ3ZhbHVlJyk7XG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmRldmljZVNlcnZpY2UuZ2V0Q29uZmlnKCk7XG4gICAgICAgICAgICBpZiAoYmFzZVVybCkge1xuICAgICAgICAgICAgICAgIGRlcGxveWVkVXJsID0gYmFzZVVybDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGVwbG95ZWRVcmwgPSB0aGlzLmRldmljZVNlcnZpY2UuZ2V0QmFzZVVybCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hcHAuY3VzdG9tVXJsU2NoZW1lID0gY29uZmlnLmN1c3RvbVVybFNjaGVtZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVwbG95ZWRVcmwgIT09ICdOT05FJyAmJiAhZGVwbG95ZWRVcmwuZW5kc1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgZGVwbG95ZWRVcmwgPSBkZXBsb3llZFVybCArICcvJztcbiAgICAgICAgfVxuICAgICAgICAkcm9vdFNjb3BlLnByb2plY3QuZGVwbG95ZWRVcmwgPSBkZXBsb3llZFVybDtcbiAgICAgICAgcmV0dXJuIGRlcGxveWVkVXJsO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkQXV0aEluQnJvd3NlcigpIHtcbiAgICAgICAgbGV0IGlzQXV0aGVudGljYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWN1cml0eVNlcnZpY2UuYXV0aEluQnJvd3NlciA9ICgpOiBQcm9taXNlPGFueT4gPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLm5ldHdvcmtTZXJ2aWNlLmlzQ29ubmVjdGVkKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ0luIG9mZmxpbmUsIGFwcCBjYW5ub3QgY29udGFjdCB0aGUgc2VydmVyLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzQXV0aGVudGljYXRpbmcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ0F1dGhlbnRpY2F0aW9uIGlzIGluIHByb2Nlc3MuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpc0F1dGhlbnRpY2F0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLndlYlByb2Nlc3NTZXJ2aWNlLmV4ZWN1dGUoJ0xPR0lOJywgJy8nLCB0cnVlKVxuICAgICAgICAgICAgICAgIC50aGVuKG91dHB1dCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IEpTT04ucGFyc2Uob3V0cHV0ICYmIG91dHB1dC5yZXBsYWNlKC8mcXVvdDsvZywgXCJcXFwiXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG91dHB1dFtDT05TVEFOVFMuWFNSRl9DT09LSUVfTkFNRV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKENPTlNUQU5UUy5YU1JGX0NPT0tJRV9OQU1FLCBvdXRwdXRbQ09OU1RBTlRTLlhTUkZfQ09PS0lFX05BTUVdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dGhlbnRpY2F0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvb2tpZVNlcnZpY2UuY2xlYXJBbGwoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb21pc2VzID0ga2V5cyhvdXRwdXQpLm1hcChrID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29va2llU2VydmljZS5zZXRDb29raWUodGhpcy5hcHAuZGVwbG95ZWRVcmwsIGssIG91dHB1dFtrXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5hcHAubm90aWZ5KCd1c2VyTG9nZ2VkSW4nLCB7fSkpXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlzQXV0aGVudGljYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { isIos } from '@wm/core';
|
|
3
|
+
import { forEach } from "lodash-es";
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
const STORAGE_KEY = 'wavemaker.persistedcookies';
|
|
5
6
|
export class CookieService {
|
|
@@ -80,10 +81,13 @@ export class CookieService {
|
|
|
80
81
|
const cookieInfoStr = localStorage.getItem(STORAGE_KEY), promises = [];
|
|
81
82
|
if (cookieInfoStr) {
|
|
82
83
|
const cookieInfo = JSON.parse(cookieInfoStr);
|
|
83
|
-
|
|
84
|
+
forEach(cookieInfo, c => {
|
|
85
|
+
// @ts-ignore
|
|
84
86
|
if (c.name && c.value) {
|
|
87
|
+
// @ts-ignore
|
|
85
88
|
promises.push(this.getCookie(c.hostname, c.name).catch(() => {
|
|
86
89
|
return new Promise((resolve, reject) => {
|
|
90
|
+
// @ts-ignore
|
|
87
91
|
window['cookieEmperor'].setCookie(c.hostname, c.name, this.rotateRTL(c.value), resolve, reject);
|
|
88
92
|
});
|
|
89
93
|
}));
|
|
@@ -128,4 +132,4 @@ export class CookieService {
|
|
|
128
132
|
providedIn: 'root'
|
|
129
133
|
}]
|
|
130
134
|
}], null, null); })();
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb2JpbGUvcnVudGltZS9zcmMvc2VydmljZXMvY29va2llLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUlqQyxNQUFNLFdBQVcsR0FBRyw0QkFBNEIsQ0FBQztBQVdqRCxNQUFNLE9BQU8sYUFBYTtJQUgxQjtRQUtZLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFakIsZ0JBQVcsR0FBRyxjQUFjLENBQUM7S0F5SHZDO2FBNUhtQixpQkFBWSxHQUFHLGVBQWUsQUFBbEIsQ0FBbUI7SUFLeEMsYUFBYSxDQUFDLFFBQWdCLEVBQUUsVUFBa0IsRUFBRSxXQUFvQjtRQUMzRSxPQUFPLElBQUksT0FBTyxDQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3ZDLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2QsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUM7cUJBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDekQsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNaLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRztnQkFDM0MsUUFBUSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztnQkFDekMsSUFBSSxFQUFF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S0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssU0FBUyxDQUFDLEdBQVc7UUFDekIsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFDckIsSUFBSSxHQUFHLEVBQUUsRUFDVCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDOzhFQTVIUSxhQUFhO3VFQUFiLGFBQWEsV0FBYixhQUFhLG1CQUZWLE1BQU07O2lGQUVULGFBQWE7Y0FIekIsVUFBVTtlQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJRGV2aWNlU3RhcnRVcFNlcnZpY2UgfSBmcm9tICdAd20vbW9iaWxlL2NvcmUnO1xuaW1wb3J0IHsgaXNJb3MgfSBmcm9tICdAd20vY29yZSc7XG5cbmRlY2xhcmUgY29uc3QgXztcblxuY29uc3QgU1RPUkFHRV9LRVkgPSAnd2F2ZW1ha2VyLnBlcnNpc3RlZGNvb2tpZXMnO1xuXG5pbnRlcmZhY2UgQ29va2llSW5mbyB7XG4gICAgaG9zdG5hbWU6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb29raWVTZXJ2aWNlIGltcGxlbWVudHMgSURldmljZVN0YXJ0VXBTZXJ2aWNlIHtcbiAgICBzdGF0aWMgcmVhZG9ubHkgU0VSVklDRV9OQU1FID0gJ0Nvb2tpZVNlcnZpY2UnO1xuICAgIHByaXZhdGUgY29va2llSW5mbyA9IHt9O1xuXG4gICAgcHVibGljIHNlcnZpY2VOYW1lID0gJ0Nvb2tlU2VydmljZSc7XG5cbiAgICBwdWJsaWMgcGVyc2lzdENvb2tpZShob3N0bmFtZTogc3RyaW5nLCBjb29raWVOYW1lOiBzdHJpbmcsIGNvb2tpZVZhbHVlPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY29va2llVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShjb29raWVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRDb29raWUoaG9zdG5hbWUsIGNvb2tpZU5hbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbihkYXRhID0+IHJlc29sdmUoZGF0YS5jb29raWVWYWx1ZSksIHJlamVjdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkudGhlbih2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb29raWVJbmZvW2hvc3RuYW1lICsgJy0nICsgY29va2llTmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIGhvc3RuYW1lOiBob3N0bmFtZS5yZXBsYWNlKC86WzAtOV0rLywgJycpLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBjb29raWVOYW1lLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5yb3RhdGVMVFIodmFsdWUpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTVE9SQUdFX0tFWSwgSlNPTi5zdHJpbmdpZnkodGhpcy5jb29raWVJbmZvKSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29va2llKGhvc3RuYW1lOiBzdHJpbmcsIGNvb2tpZU5hbWU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGlmIChpc0lvcygpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29va2llU3RyaW5nID0gd2luZG93Wydjb3Jkb3ZhJ10ucGx1Z2luLmh0dHAuZ2V0Q29va2llU3RyaW5nKGhvc3RuYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoY29va2llU3RyaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGF0ID0gY29va2llU3RyaW5nLmluZGV4T2YoY29va2llTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IGF0ICsgY29va2llTmFtZS5sZW5ndGggKyAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kID0gY29va2llU3RyaW5nLmluZGV4T2YoJzsnLCBzdGFydCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb29raWVWYWx1ZSA9IGNvb2tpZVN0cmluZy5zdWJzdHJpbmcoc3RhcnQsIGVuZCA+PSAwID8gZW5kIDogdW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tpZVZhbHVlOiBjb29raWVWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVqZWN0KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdpbmRvd1snY29va2llRW1wZXJvciddLmdldENvb2tpZShob3N0bmFtZSwgY29va2llTmFtZSwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldENvb2tpZShob3N0bmFtZTogc3RyaW5nLCBjb29raWVOYW1lOiBzdHJpbmcsIGNvb2tpZVZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzSW9zKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb29raWVTdHJpbmcgPSBjb29raWVOYW1lICsgJz0nICsgY29va2llVmFsdWU7XG4gICAgICAgICAgICAgICAgd2luZG93Wydjb3Jkb3ZhJ10ucGx1Z2luLmh0dHAuc2V0Q29va2llKGhvc3RuYW1lLCBjb29raWVTdHJpbmcpO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgd2luZG93Wydjb29raWVFbXBlcm9yJ10uc2V0Q29va2llKGhvc3RuYW1lLCBjb29raWVOYW1lLCBjb29raWVWYWx1ZSwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyQWxsKCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGlmIChpc0lvcygpKSB7XG4gICAgICAgICAgICAgICAgd2luZG93Wydjb3Jkb3ZhJ10ucGx1Z2luLmh0dHAuY2xlYXJDb29raWVzKCk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgnJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdpbmRvd1snY29va2llRW1wZXJvciddLmNsZWFyQWxsKHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvYWRzIHBlcnNpc3RlZCBjb29raWVzIGZyb20gbG9jYWwgc3RvcmFnZSBhbmQgYWRkcyB0aGVtIHRvIHRoZSBicm93c2VyLlxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGFydCgpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBjb29raWVJbmZvU3RyID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpLFxuICAgICAgICAgICAgcHJvbWlzZXMgPSBbXTtcbiAgICAgICAgaWYgKGNvb2tpZUluZm9TdHIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvb2tpZUluZm8gPSBKU09OLnBhcnNlKGNvb2tpZUluZm9TdHIpIGFzIE1hcDxzdHJpbmcsIENvb2tpZUluZm8+O1xuICAgICAgICAgICAgXy5mb3JFYWNoKGNvb2tpZUluZm8sIGMgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjLm5hbWUgJiYgYy52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHRoaXMuZ2V0Q29va2llKGMuaG9zdG5hbWUsIGMubmFtZSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dbJ2Nvb2tpZUVtcGVyb3InXS5zZXRDb29raWUoYy5ob3N0bmFtZSwgYy5uYW1lLCB0aGlzLnJvdGF0ZVJUTChjLnZhbHVlKSwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2VydmljZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiBDb29raWVTZXJ2aWNlLlNFUlZJQ0VfTkFNRTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBKdXN0IHJvdGF0ZXMgdGhlIGdpdmVuIHN0cmluZyBleGFjdGx5IGZyb20gMS8zIG9mIHN0cmluZyBsZW5ndGggaW4gbGVmdCB0byByaWdodCBkaXJlY3Rpb24uXG4gICAgICogQHBhcmFtIHN0clxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAgICovXG4gICAgcHJpdmF0ZSByb3RhdGVMVFIoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBhcnIgPSBzdHIuc3BsaXQoJycpLFxuICAgICAgICAgICAgdEFyciA9IFtdLFxuICAgICAgICAgICAgc2hpZnQgPSBNYXRoLmZsb29yKHN0ci5sZW5ndGggLyAzKTtcbiAgICAgICAgYXJyLmZvckVhY2goKHYsIGkpID0+IHtcbiAgICAgICAgICAgIHRBcnJbKGkgKyBzaGlmdCkgJSBhcnIubGVuZ3RoXSA9IGFycltpXTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0QXJyLmpvaW4oJycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEp1c3Qgcm90YXRlcyB0aGUgZ2l2ZW4gc3RyaW5nIGV4YWN0bHkgZnJvbSAxLzMgb2Ygc3RyaW5nIGxlbmd0aCBpbiAgcmlnaHQgdG8gbGVmdCBkaXJlY3Rpb24uLlxuICAgICAqIEBwYXJhbSBzdHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgICAqL1xuICAgIHByaXZhdGUgcm90YXRlUlRMKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgYXJyID0gc3RyLnNwbGl0KCcnKSxcbiAgICAgICAgICAgIHRBcnIgPSBbXSxcbiAgICAgICAgICAgIHNoaWZ0ID0gTWF0aC5mbG9vcihzdHIubGVuZ3RoIC8gMyk7XG4gICAgICAgIGFyci5mb3JFYWNoKCh2LCBpKSA9PiB7XG4gICAgICAgICAgICB0QXJyWyhhcnIubGVuZ3RoICsgaSAtIHNoaWZ0KSAlIGFyci5sZW5ndGhdID0gYXJyW2ldO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRBcnIuam9pbignJyk7XG4gICAgfVxufVxuIl19
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb2JpbGUvcnVudGltZS9zcmMvc2VydmljZXMvY29va2llLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBRWxDLE1BQU0sV0FBVyxHQUFHLDRCQUE0QixDQUFDO0FBV2pELE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBS1ksZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVqQixnQkFBVyxHQUFHLGNBQWMsQ0FBQztLQTRIdkM7YUEvSG1CLGlCQUFZLEdBQUcsZUFBZSxBQUFsQixDQUFtQjtJQUt4QyxhQUFhLENBQUMsUUFBZ0IsRUFBRSxVQUFrQixFQUFFLFdBQW9CO1FBQzNFLE9BQU8sSUFBSSxPQUFPLENBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDdkMsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDZCxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekIsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQztxQkFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN6RCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1osSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHO2dCQUMzQyxRQUFRLEVBQUUsUUFBUSxDQUFDLE9BQU8s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ImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSURldmljZVN0YXJ0VXBTZXJ2aWNlIH0gZnJvbSAnQHdtL21vYmlsZS9jb3JlJztcbmltcG9ydCB7IGlzSW9zIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHtmb3JFYWNofSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmNvbnN0IFNUT1JBR0VfS0VZID0gJ3dhdmVtYWtlci5wZXJzaXN0ZWRjb29raWVzJztcblxuaW50ZXJmYWNlIENvb2tpZUluZm8ge1xuICAgIGhvc3RuYW1lOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29va2llU2VydmljZSBpbXBsZW1lbnRzIElEZXZpY2VTdGFydFVwU2VydmljZSB7XG4gICAgc3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VfTkFNRSA9ICdDb29raWVTZXJ2aWNlJztcbiAgICBwcml2YXRlIGNvb2tpZUluZm8gPSB7fTtcblxuICAgIHB1YmxpYyBzZXJ2aWNlTmFtZSA9ICdDb29rZVNlcnZpY2UnO1xuXG4gICAgcHVibGljIHBlcnNpc3RDb29raWUoaG9zdG5hbWU6IHN0cmluZywgY29va2llTmFtZTogc3RyaW5nLCBjb29raWVWYWx1ZT86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNvb2tpZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoY29va2llVmFsdWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q29va2llKGhvc3RuYW1lLCBjb29raWVOYW1lKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oZGF0YSA9PiByZXNvbHZlKGRhdGEuY29va2llVmFsdWUpLCByZWplY3QpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLnRoZW4odmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29va2llSW5mb1tob3N0bmFtZSArICctJyArIGNvb2tpZU5hbWVdID0ge1xuICAgICAgICAgICAgICAgICAgICBob3N0bmFtZTogaG9zdG5hbWUucmVwbGFjZSgvOlswLTldKy8sICcnKSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogY29va2llTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMucm90YXRlTFRSKHZhbHVlKVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oU1RPUkFHRV9LRVksIEpTT04uc3RyaW5naWZ5KHRoaXMuY29va2llSW5mbykpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvb2tpZShob3N0bmFtZTogc3RyaW5nLCBjb29raWVOYW1lOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNJb3MoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvb2tpZVN0cmluZyA9IHdpbmRvd1snY29yZG92YSddLnBsdWdpbi5odHRwLmdldENvb2tpZVN0cmluZyhob3N0bmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKGNvb2tpZVN0cmluZykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhdCA9IGNvb2tpZVN0cmluZy5pbmRleE9mKGNvb2tpZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXQgPj0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBhdCArIGNvb2tpZU5hbWUubGVuZ3RoICsgMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IGNvb2tpZVN0cmluZy5pbmRleE9mKCc7Jywgc3RhcnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29va2llVmFsdWUgPSBjb29raWVTdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBlbmQgPj0gMCA/IGVuZCA6IHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29raWVWYWx1ZTogY29va2llVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3aW5kb3dbJ2Nvb2tpZUVtcGVyb3InXS5nZXRDb29raWUoaG9zdG5hbWUsIGNvb2tpZU5hbWUsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRDb29raWUoaG9zdG5hbWU6IHN0cmluZywgY29va2llTmFtZTogc3RyaW5nLCBjb29raWVWYWx1ZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGlmIChpc0lvcygpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29va2llU3RyaW5nID0gY29va2llTmFtZSArICc9JyArIGNvb2tpZVZhbHVlO1xuICAgICAgICAgICAgICAgIHdpbmRvd1snY29yZG92YSddLnBsdWdpbi5odHRwLnNldENvb2tpZShob3N0bmFtZSwgY29va2llU3RyaW5nKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdpbmRvd1snY29va2llRW1wZXJvciddLnNldENvb2tpZShob3N0bmFtZSwgY29va2llTmFtZSwgY29va2llVmFsdWUsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhckFsbCgpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNJb3MoKSkge1xuICAgICAgICAgICAgICAgIHdpbmRvd1snY29yZG92YSddLnBsdWdpbi5odHRwLmNsZWFyQ29va2llcygpO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoJycpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3aW5kb3dbJ2Nvb2tpZUVtcGVyb3InXS5jbGVhckFsbChyZXNvbHZlLCByZWplY3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2FkcyBwZXJzaXN0ZWQgY29va2llcyBmcm9tIGxvY2FsIHN0b3JhZ2UgYW5kIGFkZHMgdGhlbSB0byB0aGUgYnJvd3Nlci5cbiAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhcnQoKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgY29va2llSW5mb1N0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKSxcbiAgICAgICAgICAgIHByb21pc2VzID0gW107XG4gICAgICAgIGlmIChjb29raWVJbmZvU3RyKSB7XG4gICAgICAgICAgICBjb25zdCBjb29raWVJbmZvID0gSlNPTi5wYXJzZShjb29raWVJbmZvU3RyKSBhcyBNYXA8c3RyaW5nLCBDb29raWVJbmZvPjtcbiAgICAgICAgICAgIGZvckVhY2goY29va2llSW5mbywgYyA9PiB7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIGlmIChjLm5hbWUgJiYgYy52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgIHByb21pc2VzLnB1c2godGhpcy5nZXRDb29raWUoYy5ob3N0bmFtZSwgYy5uYW1lKS5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dbJ2Nvb2tpZUVtcGVyb3InXS5zZXRDb29raWUoYy5ob3N0bmFtZSwgYy5uYW1lLCB0aGlzLnJvdGF0ZVJUTChjLnZhbHVlKSwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2VydmljZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiBDb29raWVTZXJ2aWNlLlNFUlZJQ0VfTkFNRTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBKdXN0IHJvdGF0ZXMgdGhlIGdpdmVuIHN0cmluZyBleGFjdGx5IGZyb20gMS8zIG9mIHN0cmluZyBsZW5ndGggaW4gbGVmdCB0byByaWdodCBkaXJlY3Rpb24uXG4gICAgICogQHBhcmFtIHN0clxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAgICovXG4gICAgcHJpdmF0ZSByb3RhdGVMVFIoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBhcnIgPSBzdHIuc3BsaXQoJycpLFxuICAgICAgICAgICAgdEFyciA9IFtdLFxuICAgICAgICAgICAgc2hpZnQgPSBNYXRoLmZsb29yKHN0ci5sZW5ndGggLyAzKTtcbiAgICAgICAgYXJyLmZvckVhY2goKHYsIGkpID0+IHtcbiAgICAgICAgICAgIHRBcnJbKGkgKyBzaGlmdCkgJSBhcnIubGVuZ3RoXSA9IGFycltpXTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0QXJyLmpvaW4oJycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEp1c3Qgcm90YXRlcyB0aGUgZ2l2ZW4gc3RyaW5nIGV4YWN0bHkgZnJvbSAxLzMgb2Ygc3RyaW5nIGxlbmd0aCBpbiAgcmlnaHQgdG8gbGVmdCBkaXJlY3Rpb24uLlxuICAgICAqIEBwYXJhbSBzdHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgICAqL1xuICAgIHByaXZhdGUgcm90YXRlUlRMKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgYXJyID0gc3RyLnNwbGl0KCcnKSxcbiAgICAgICAgICAgIHRBcnIgPSBbXSxcbiAgICAgICAgICAgIHNoaWZ0ID0gTWF0aC5mbG9vcihzdHIubGVuZ3RoIC8gMyk7XG4gICAgICAgIGFyci5mb3JFYWNoKCh2LCBpKSA9PiB7XG4gICAgICAgICAgICB0QXJyWyhhcnIubGVuZ3RoICsgaSAtIHNoaWZ0KSAlIGFyci5sZW5ndGhdID0gYXJyW2ldO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRBcnIuam9pbignJyk7XG4gICAgfVxufVxuIl19
|
|
@@ -7,6 +7,7 @@ import { App, executePromiseChain, getWmProjectProperties, hasCordova, removeExt
|
|
|
7
7
|
import { DeviceFileDownloadService, DeviceService, NetworkService } from '@wm/mobile/core';
|
|
8
8
|
import { SecurityService } from '@wm/security';
|
|
9
9
|
import { CONSTANTS } from '@wm/variables';
|
|
10
|
+
import { forEach, split } from "lodash-es";
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
12
|
import * as i1 from "@wm/core";
|
|
12
13
|
import * as i2 from "@awesome-cordova-plugins/file/ngx";
|
|
@@ -105,7 +106,7 @@ class SecurityInterceptor {
|
|
|
105
106
|
return this.init();
|
|
106
107
|
}
|
|
107
108
|
}).then(() => {
|
|
108
|
-
const urlSplits =
|
|
109
|
+
const urlSplits = split(request.url, '/');
|
|
109
110
|
const pageName = urlSplits[urlSplits.length - 2];
|
|
110
111
|
if (!this.publicPages || this.publicPages[pageName]) {
|
|
111
112
|
return Promise.resolve(request);
|
|
@@ -136,11 +137,11 @@ class SecurityInterceptor {
|
|
|
136
137
|
if (!this.initialized) {
|
|
137
138
|
this.publicPages = {};
|
|
138
139
|
this.initialized = true;
|
|
139
|
-
|
|
140
|
+
forEach(JSON.parse(text), pageName => this.publicPages[pageName] = true);
|
|
140
141
|
}
|
|
141
142
|
}).catch(() => {
|
|
142
143
|
this.initialized = true;
|
|
143
144
|
});
|
|
144
145
|
}
|
|
145
146
|
}
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1pbnRlcmNlcHRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9iaWxlL3J1bnRpbWUvc3JjL3NlcnZpY2VzL2h0dHAtaW50ZXJjZXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVCLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFDSCxHQUFHLEVBQ0gsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0QixVQUFVLEVBQ1Ysa0JBQWtCLEdBQ3JCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFVMUMsTUFBTSxPQUFPLHFCQUFxQjtJQUk5QixZQUEyQixHQUFRLEVBQ2hCLElBQVUsRUFDVix5QkFBb0QsRUFDNUMsYUFBNEIsRUFDNUIsY0FBOEIsRUFDdEMsZUFBZ0M7UUFMeEIsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUdSLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQU5qRCx3QkFBbUIsR0FBeUIsRUFBRSxDQUFDO1FBUW5ELElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJ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O0lBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRmlsZSB9IGZyb20gJ0Bhd2Vzb21lLWNvcmRvdmEtcGx1Z2lucy9maWxlL25neCc7XG5pbXBvcnQgeyBmcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBBcHAsXG4gICAgZXhlY3V0ZVByb21pc2VDaGFpbixcbiAgICBnZXRXbVByb2plY3RQcm9wZXJ0aWVzLFxuICAgIGhhc0NvcmRvdmEsXG4gICAgcmVtb3ZlRXh0cmFTbGFzaGVzLFxufSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBEZXZpY2VGaWxlRG93bmxvYWRTZXJ2aWNlLCBEZXZpY2VTZXJ2aWNlLCBOZXR3b3JrU2VydmljZSB9IGZyb20gJ0B3bS9tb2JpbGUvY29yZSc7XG5pbXBvcnQgeyBTZWN1cml0eVNlcnZpY2UgfSBmcm9tICdAd20vc2VjdXJpdHknO1xuaW1wb3J0IHsgQ09OU1RBTlRTIH0gZnJvbSAnQHdtL3ZhcmlhYmxlcyc7XG5cbmRlY2xhcmUgY29uc3QgY29yZG92YTtcbmRlY2xhcmUgY29uc3QgXztcblxuaW50ZXJmYWNlIFJlcXVlc3RJbnRlcmNlcHRvciB7XG4gICAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pOiBQcm9taXNlPEh0dHBSZXF1ZXN0PGFueT4+O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTW9iaWxlSHR0cEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcblxuICAgIHByaXZhdGUgcmVxdWVzdEludGVyY2VwdG9yczogUmVxdWVzdEludGVyY2VwdG9yW10gPSBbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcDogQXBwLFxuICAgICAgICAgICAgICAgICAgICAgICBmaWxlOiBGaWxlLFxuICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2VGaWxlRG93bmxvYWRTZXJ2aWNlOiBEZXZpY2VGaWxlRG93bmxvYWRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIGRldmljZVNlcnZpY2U6IERldmljZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgbmV0d29ya1NlcnZpY2U6IE5ldHdvcmtTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICBzZWN1cml0eVNlcnZpY2U6IFNlY3VyaXR5U2VydmljZSkge1xuICAgICAgICBpZiAoaGFzQ29yZG92YSgpKSB7XG4gICAgICAgICAgICB0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMucHVzaChuZXcgU2VjdXJpdHlJbnRlcmNlcHRvcihhcHAsIGZpbGUsIHNlY3VyaXR5U2VydmljZSkpO1xuICAgICAgICAgICAgdGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLnB1c2gobmV3IFNlcnZpY2VDYWxsSW50ZXJjZXB0b3IoYXBwKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgICAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8SHR0cEV2ZW50PGFueT4+KCk7XG4gICAgICAgIGNvbnN0IHRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oQ09OU1RBTlRTLlhTUkZfQ09PS0lFX05BTUUpO1xuICAgICAgICBjb25zdCB4c3JmSGVhZGVyTmFtZSA9IGdldFdtUHJvamVjdFByb3BlcnRpZXMoKS54c3JmX2hlYWRlcl9uYW1lO1xuICAgICAgICBpZiAodG9rZW4gXG4gICAgICAgICAgICAmJiB4c3JmSGVhZGVyTmFtZVxuICAgICAgICAgICAgJiYgdGhpcy5hcHAuZGVwbG95ZWRVcmwgXG4gICAgICAgICAgICAmJiAocmVxdWVzdC51cmwuaW5kZXhPZignOi8vJykgPCAwXG4gICAgICAgICAgICAgICAgfHwgcmVxdWVzdC51cmwuc3RhcnRzV2l0aCh0aGlzLmFwcC5kZXBsb3llZFVybCkpKSB7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBDbG9uZSB0aGUgcmVxdWVzdCB0byBhZGQgdGhlIG5ldyBoZWFkZXJcbiAgICAgICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHsgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzLnNldCh4c3JmSGVhZGVyTmFtZSwgdG9rZW4pIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7cmVxdWVzdDogcmVxdWVzdH07XG5cbiAgICAgICAgLy8gaW52b2tlIHRoZSByZXF1ZXN0IG9ubHkgd2hlbiBkZXZpY2UgaXMgcmVhZHkuXG4gICAgICAgIGNvbnN0IG9icyA9IGZyb20odGhpcy5kZXZpY2VTZXJ2aWNlLndoZW5SZWFkeSgpXG4gICAgICAgICAgICAudGhlbigoKSA9PiBleGVjdXRlUHJvbWlzZUNoYWluKHRoaXMuZ2V0SW50ZXJjZXB0b3JzKCksIFtkYXRhXSkpKTtcbiAgICAgICAgcmV0dXJuIG9icy5waXBlKG1lcmdlTWFwKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShkYXRhLnJlcXVlc3QpO1xuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRJbnRlcmNlcHRvcnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMubWFwKGkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChkYXRhKSA9PiBpLmludGVyY2VwdChkYXRhLnJlcXVlc3QpLnRoZW4ocmVxID0+IGRhdGEucmVxdWVzdCA9IHJlcSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25IdHRwRXJyb3IocmVzcG9uc2U6IEh0dHBSZXNwb25zZTxhbnk+KSB7XG4gICAgICAgIGlmIChoYXNDb3Jkb3ZhXG4gICAgICAgICAgICAmJiAoIXJlc3BvbnNlIHx8ICFyZXNwb25zZS5zdGF0dXMgfHwgcmVzcG9uc2Uuc3RhdHVzIDwgMCB8fCByZXNwb25zZS5zdGF0dXMgPT09IDQwNClcbiAgICAgICAgICAgICYmICh0aGlzLm5ldHdvcmtTZXJ2aWNlLmlzQ29ubmVjdGVkKCkpKSB7XG4gICAgICAgICAgICB0aGlzLm5ldHdvcmtTZXJ2aWNlLmlzQXZhaWxhYmxlKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5jbGFzcyBTZXJ2aWNlQ2FsbEludGVyY2VwdG9yIGltcGxlbWVudHMgUmVxdWVzdEludGVyY2VwdG9yIHtcblxuICAgIHByaXZhdGUgc3RhdGljIFJFTU9URV9TRVJWSUNFX1VSTF9QQVRURVJOUyA9IFtcbiAgICAgICAgbmV3IFJlZ0V4cCgnXigoLi8pfC8pP3NlcnZpY2VzLycpLFxuICAgICAgICBuZXcgUmVnRXhwKCdqX3NwcmluZ19zZWN1cml0eV9jaGVjaycpLFxuICAgICAgICBuZXcgUmVnRXhwKCdqX3NwcmluZ19zZWN1cml0eV9sb2dvdXQnKVxuICAgIF07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcDogQXBwKSB7fVxuXG4gICAgcHVibGljIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KTogUHJvbWlzZTxIdHRwUmVxdWVzdDxhbnk+PiB7XG4gICAgICAgIGxldCBtb2RpZmllZFJlcXVlc3QgPSByZXF1ZXN0O1xuICAgICAgICBsZXQgdXJsID0gcmVxdWVzdC51cmw7XG4gICAgICAgIC8vIGlmIG5lY2Vzc2FyeSwgcHJlcGVuZCBkZXBsb3llZCB1cmxcbiAgICAgICAgaWYgKHVybC5pbmRleE9mKCc6Ly8nKSA8IDBcbiAgICAgICAgICAgICYmIFNlcnZpY2VDYWxsSW50ZXJjZXB0b3IuUkVNT1RFX1NFUlZJQ0VfVVJMX1BBVFRFUk5TLmZpbmQociA9PiByLnRlc3QodXJsKSkpIHtcbiAgICAgICAgICAgIHVybCA9IHRoaXMuYXBwLmRlcGxveWVkVXJsICsgdXJsO1xuICAgICAgICB9XG4gICAgICAgIHVybCA9IHJlbW92ZUV4dHJhU2xhc2hlcyh1cmwpO1xuICAgICAgICBpZiAodXJsICE9PSByZXF1ZXN0LnVybCkge1xuICAgICAgICAgICAgbW9kaWZpZWRSZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICAgICAgICAgICAgdXJsOiB1cmxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobW9kaWZpZWRSZXF1ZXN0KTtcbiAgICB9XG5cbn1cblxuY2xhc3MgU2VjdXJpdHlJbnRlcmNlcHRvciBpbXBsZW1lbnRzIFJlcXVlc3RJbnRlcmNlcHRvciB7XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBzdGF0aWMgUEFHRV9VUkxfUEFUVEVSTiA9IG5ldyBSZWdFeHAoJ3BhZ2UubWluLmpzb24kJyk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgUFJFRkFCX1VSTF9QQVRURVJOID0gbmV3IFJlZ0V4cCgnXmFwcC9wcmVmYWJzLy4qL3BhZ2UubWluLmpzb24kJyk7XG4gICAgcHJpdmF0ZSBwdWJsaWNQYWdlcztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwOiBBcHAsIHByaXZhdGUgZmlsZTogRmlsZSwgcHJpdmF0ZSBzZWN1cml0eVNlcnZpY2U6IFNlY3VyaXR5U2VydmljZSkge31cblxuICAgIHB1YmxpYyBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55Pik6IFByb21pc2U8SHR0cFJlcXVlc3Q8YW55Pj4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8SHR0cFJlcXVlc3Q8YW55Pj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFTZWN1cml0eUludGVyY2VwdG9yLlBSRUZBQl9VUkxfUEFUVEVSTi50ZXN0KHJlcXVlc3QudXJsKSBcbiAgICAgICAgICAgICAgICAmJiBTZWN1cml0eUludGVyY2VwdG9yLlBBR0VfVVJMX1BBVFRFUk4udGVzdChyZXF1ZXN0LnVybCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5pdCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybFNwbGl0cyA9IF8uc3BsaXQocmVxdWVzdC51cmwsICcvJyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VOYW1lID0gdXJsU3BsaXRzW3VybFNwbGl0cy5sZW5ndGggLSAyXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLnB1YmxpY1BhZ2VzIHx8IHRoaXMucHVibGljUGFnZXNbcGFnZU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlcXVlc3QpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWN1cml0eVNlcnZpY2UuZ2V0Q29uZmlnKGNvbmZpZyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25maWcuc2VjdXJpdHlFbmFibGVkIHx8IGNvbmZpZy5hdXRoZW50aWNhdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVxdWVzdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGBQYWdlICcke3BhZ2VOYW1lfScgaXMgbm90IGFjY2Vzc2libGUgdG8gdGhlIHVzZXIuYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwLm5vdGlmeSgnaHR0cDQwMScsIHsgcGFnZTogcGFnZU5hbWV9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LCAoKSA9PiByZWplY3QoYFNlY3VyaXR5IGNhbGwgZmFpbGVkLmApKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlcXVlc3QpO1xuICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlKHJlcXVlc3QpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBsb2FkcyBwdWJsaWMgcGFnZXMgZnJvbSAnbWV0YWRhdGEvYXBwL3B1YmxpYy1wYWdlcy5pbmZvJyBhbmQgb3ZlcnJpZGVzIGNhbkFjY2VzcyBtZXRob2QgU2VjdXJpdHlTZXJ2aWNlXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0KCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IGZvbGRlclBhdGggPSBjb3Jkb3ZhLmZpbGUuYXBwbGljYXRpb25EaXJlY3RvcnkgKyAnd3d3L21ldGFkYXRhL2FwcCcsXG4gICAgICAgICAgICBmaWxlTmFtZSA9ICdwdWJsaWMtcGFnZXMuanNvbic7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbGUucmVhZEFzVGV4dChmb2xkZXJQYXRoLCBmaWxlTmFtZSkudGhlbih0ZXh0ID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucHVibGljUGFnZXMgPSB7fTtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBfLmZvckVhY2goSlNPTi5wYXJzZSh0ZXh0KSwgcGFnZU5hbWUgPT4gdGhpcy5wdWJsaWNQYWdlc1twYWdlTmFtZV0gPSB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1pbnRlcmNlcHRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9iaWxlL3J1bnRpbWUvc3JjL3NlcnZpY2VzL2h0dHAtaW50ZXJjZXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVCLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFDSCxHQUFHLEVBQ0gsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0QixVQUFVLEVBQ1Ysa0JBQWtCLEdBQ3JCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLE1BQU0sV0FBVyxDQUFDOzs7Ozs7QUFTekMsTUFBTSxPQUFPLHFCQUFxQjtJQUk5QixZQUEyQixHQUFRLEVBQ2hCLElBQVUsRUFDVix5QkFBb0QsRUFDNUMsYUFBNEIsRUFDNUIsY0FBOEIsRUFDdEMsZUFBZ0M7UUFMeEIsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUdSLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQU5qRCx3QkFBbUIsR0FBeUIsRUFBRSxDQUFDO1FBUW5ELElB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LElBQUksQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZpbGUgfSBmcm9tICdAYXdlc29tZS1jb3Jkb3ZhLXBsdWdpbnMvZmlsZS9uZ3gnO1xuaW1wb3J0IHsgZnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gICAgQXBwLFxuICAgIGV4ZWN1dGVQcm9taXNlQ2hhaW4sXG4gICAgZ2V0V21Qcm9qZWN0UHJvcGVydGllcyxcbiAgICBoYXNDb3Jkb3ZhLFxuICAgIHJlbW92ZUV4dHJhU2xhc2hlcyxcbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgRGV2aWNlRmlsZURvd25sb2FkU2VydmljZSwgRGV2aWNlU2VydmljZSwgTmV0d29ya1NlcnZpY2UgfSBmcm9tICdAd20vbW9iaWxlL2NvcmUnO1xuaW1wb3J0IHsgU2VjdXJpdHlTZXJ2aWNlIH0gZnJvbSAnQHdtL3NlY3VyaXR5JztcbmltcG9ydCB7IENPTlNUQU5UUyB9IGZyb20gJ0B3bS92YXJpYWJsZXMnO1xuaW1wb3J0IHtmb3JFYWNoLCBzcGxpdH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5kZWNsYXJlIGNvbnN0IGNvcmRvdmE7XG5cbmludGVyZmFjZSBSZXF1ZXN0SW50ZXJjZXB0b3Ige1xuICAgIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KTogUHJvbWlzZTxIdHRwUmVxdWVzdDxhbnk+Pjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1vYmlsZUh0dHBJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG5cbiAgICBwcml2YXRlIHJlcXVlc3RJbnRlcmNlcHRvcnM6IFJlcXVlc3RJbnRlcmNlcHRvcltdID0gW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBhcHA6IEFwcCxcbiAgICAgICAgICAgICAgICAgICAgICAgZmlsZTogRmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlRmlsZURvd25sb2FkU2VydmljZTogRGV2aWNlRmlsZURvd25sb2FkU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSBkZXZpY2VTZXJ2aWNlOiBEZXZpY2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIG5ldHdvcmtTZXJ2aWNlOiBOZXR3b3JrU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgc2VjdXJpdHlTZXJ2aWNlOiBTZWN1cml0eVNlcnZpY2UpIHtcbiAgICAgICAgaWYgKGhhc0NvcmRvdmEoKSkge1xuICAgICAgICAgICAgdGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLnB1c2gobmV3IFNlY3VyaXR5SW50ZXJjZXB0b3IoYXBwLCBmaWxlLCBzZWN1cml0eVNlcnZpY2UpKTtcbiAgICAgICAgICAgIHRoaXMucmVxdWVzdEludGVyY2VwdG9ycy5wdXNoKG5ldyBTZXJ2aWNlQ2FsbEludGVyY2VwdG9yKGFwcCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICAgICAgY29uc3Qgc3ViamVjdCA9IG5ldyBTdWJqZWN0PEh0dHBFdmVudDxhbnk+PigpO1xuICAgICAgICBjb25zdCB0b2tlbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKENPTlNUQU5UUy5YU1JGX0NPT0tJRV9OQU1FKTtcbiAgICAgICAgY29uc3QgeHNyZkhlYWRlck5hbWUgPSBnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkueHNyZl9oZWFkZXJfbmFtZTtcbiAgICAgICAgaWYgKHRva2VuXG4gICAgICAgICAgICAmJiB4c3JmSGVhZGVyTmFtZVxuICAgICAgICAgICAgJiYgdGhpcy5hcHAuZGVwbG95ZWRVcmxcbiAgICAgICAgICAgICYmIChyZXF1ZXN0LnVybC5pbmRleE9mKCc6Ly8nKSA8IDBcbiAgICAgICAgICAgICAgICB8fCByZXF1ZXN0LnVybC5zdGFydHNXaXRoKHRoaXMuYXBwLmRlcGxveWVkVXJsKSkpIHtcblxuICAgICAgICAgICAgLy8gQ2xvbmUgdGhlIHJlcXVlc3QgdG8gYWRkIHRoZSBuZXcgaGVhZGVyXG4gICAgICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7IGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVycy5zZXQoeHNyZkhlYWRlck5hbWUsIHRva2VuKSB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkYXRhID0ge3JlcXVlc3Q6IHJlcXVlc3R9O1xuXG4gICAgICAgIC8vIGludm9rZSB0aGUgcmVxdWVzdCBvbmx5IHdoZW4gZGV2aWNlIGlzIHJlYWR5LlxuICAgICAgICBjb25zdCBvYnMgPSBmcm9tKHRoaXMuZGV2aWNlU2VydmljZS53aGVuUmVhZHkoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gZXhlY3V0ZVByb21pc2VDaGFpbih0aGlzLmdldEludGVyY2VwdG9ycygpLCBbZGF0YV0pKSk7XG4gICAgICAgIHJldHVybiBvYnMucGlwZShtZXJnZU1hcCgoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUoZGF0YS5yZXF1ZXN0KTtcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SW50ZXJjZXB0b3JzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLm1hcChpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoZGF0YSkgPT4gaS5pbnRlcmNlcHQoZGF0YS5yZXF1ZXN0KS50aGVuKHJlcSA9PiBkYXRhLnJlcXVlc3QgPSByZXEpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uSHR0cEVycm9yKHJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8YW55Pikge1xuICAgICAgICBpZiAoaGFzQ29yZG92YVxuICAgICAgICAgICAgJiYgKCFyZXNwb25zZSB8fCAhcmVzcG9uc2Uuc3RhdHVzIHx8IHJlc3BvbnNlLnN0YXR1cyA8IDAgfHwgcmVzcG9uc2Uuc3RhdHVzID09PSA0MDQpXG4gICAgICAgICAgICAmJiAodGhpcy5uZXR3b3JrU2VydmljZS5pc0Nvbm5lY3RlZCgpKSkge1xuICAgICAgICAgICAgdGhpcy5uZXR3b3JrU2VydmljZS5pc0F2YWlsYWJsZSh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuY2xhc3MgU2VydmljZUNhbGxJbnRlcmNlcHRvciBpbXBsZW1lbnRzIFJlcXVlc3RJbnRlcmNlcHRvciB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBSRU1PVEVfU0VSVklDRV9VUkxfUEFUVEVSTlMgPSBbXG4gICAgICAgIG5ldyBSZWdFeHAoJ14oKC4vKXwvKT9zZXJ2aWNlcy8nKSxcbiAgICAgICAgbmV3IFJlZ0V4cCgnal9zcHJpbmdfc2VjdXJpdHlfY2hlY2snKSxcbiAgICAgICAgbmV3IFJlZ0V4cCgnal9zcHJpbmdfc2VjdXJpdHlfbG9nb3V0JylcbiAgICBdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhcHA6IEFwcCkge31cblxuICAgIHB1YmxpYyBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55Pik6IFByb21pc2U8SHR0cFJlcXVlc3Q8YW55Pj4ge1xuICAgICAgICBsZXQgbW9kaWZpZWRSZXF1ZXN0ID0gcmVxdWVzdDtcbiAgICAgICAgbGV0IHVybCA9IHJlcXVlc3QudXJsO1xuICAgICAgICAvLyBpZiBuZWNlc3NhcnksIHByZXBlbmQgZGVwbG95ZWQgdXJsXG4gICAgICAgIGlmICh1cmwuaW5kZXhPZignOi8vJykgPCAwXG4gICAgICAgICAgICAmJiBTZXJ2aWNlQ2FsbEludGVyY2VwdG9yLlJFTU9URV9TRVJWSUNFX1VSTF9QQVRURVJOUy5maW5kKHIgPT4gci50ZXN0KHVybCkpKSB7XG4gICAgICAgICAgICB1cmwgPSB0aGlzLmFwcC5kZXBsb3llZFVybCArIHVybDtcbiAgICAgICAgfVxuICAgICAgICB1cmwgPSByZW1vdmVFeHRyYVNsYXNoZXModXJsKTtcbiAgICAgICAgaWYgKHVybCAhPT0gcmVxdWVzdC51cmwpIHtcbiAgICAgICAgICAgIG1vZGlmaWVkUmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgICAgICAgIHVybDogdXJsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG1vZGlmaWVkUmVxdWVzdCk7XG4gICAgfVxuXG59XG5cbmNsYXNzIFNlY3VyaXR5SW50ZXJjZXB0b3IgaW1wbGVtZW50cyBSZXF1ZXN0SW50ZXJjZXB0b3Ige1xuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgc3RhdGljIFBBR0VfVVJMX1BBVFRFUk4gPSBuZXcgUmVnRXhwKCdwYWdlLm1pbi5qc29uJCcpO1xuICAgIHByaXZhdGUgc3RhdGljIFBSRUZBQl9VUkxfUEFUVEVSTiA9IG5ldyBSZWdFeHAoJ15hcHAvcHJlZmFicy8uKi9wYWdlLm1pbi5qc29uJCcpO1xuICAgIHByaXZhdGUgcHVibGljUGFnZXM7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcDogQXBwLCBwcml2YXRlIGZpbGU6IEZpbGUsIHByaXZhdGUgc2VjdXJpdHlTZXJ2aWNlOiBTZWN1cml0eVNlcnZpY2UpIHt9XG5cbiAgICBwdWJsaWMgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pOiBQcm9taXNlPEh0dHBSZXF1ZXN0PGFueT4+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPEh0dHBSZXF1ZXN0PGFueT4+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGlmICghU2VjdXJpdHlJbnRlcmNlcHRvci5QUkVGQUJfVVJMX1BBVFRFUk4udGVzdChyZXF1ZXN0LnVybClcbiAgICAgICAgICAgICAgICAmJiBTZWN1cml0eUludGVyY2VwdG9yLlBBR0VfVVJMX1BBVFRFUk4udGVzdChyZXF1ZXN0LnVybCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5pdCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybFNwbGl0cyA9IHNwbGl0KHJlcXVlc3QudXJsLCAnLycpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWdlTmFtZSA9IHVybFNwbGl0c1t1cmxTcGxpdHMubGVuZ3RoIC0gMl07XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5wdWJsaWNQYWdlcyB8fCB0aGlzLnB1YmxpY1BhZ2VzW3BhZ2VOYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXF1ZXN0KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VjdXJpdHlTZXJ2aWNlLmdldENvbmZpZyhjb25maWcgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY29uZmlnLnNlY3VyaXR5RW5hYmxlZCB8fCBjb25maWcuYXV0aGVudGljYXRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlcXVlc3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChgUGFnZSAnJHtwYWdlTmFtZX0nIGlzIG5vdCBhY2Nlc3NpYmxlIHRvIHRoZSB1c2VyLmApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcC5ub3RpZnkoJ2h0dHA0MDEnLCB7IHBhZ2U6IHBhZ2VOYW1lfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgKCkgPT4gcmVqZWN0KGBTZWN1cml0eSBjYWxsIGZhaWxlZC5gKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXF1ZXN0KTtcbiAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShyZXF1ZXN0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogbG9hZHMgcHVibGljIHBhZ2VzIGZyb20gJ21ldGFkYXRhL2FwcC9wdWJsaWMtcGFnZXMuaW5mbycgYW5kIG92ZXJyaWRlcyBjYW5BY2Nlc3MgbWV0aG9kIFNlY3VyaXR5U2VydmljZVxuICAgICAqL1xuICAgIHByaXZhdGUgaW5pdCgpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBmb2xkZXJQYXRoID0gY29yZG92YS5maWxlLmFwcGxpY2F0aW9uRGlyZWN0b3J5ICsgJ3d3dy9tZXRhZGF0YS9hcHAnLFxuICAgICAgICAgICAgZmlsZU5hbWUgPSAncHVibGljLXBhZ2VzLmpzb24nO1xuICAgICAgICByZXR1cm4gdGhpcy5maWxlLnJlYWRBc1RleHQoZm9sZGVyUGF0aCwgZmlsZU5hbWUpLnRoZW4odGV4dCA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnB1YmxpY1BhZ2VzID0ge307XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgZm9yRWFjaChKU09OLnBhcnNlKHRleHQpLCBwYWdlTmFtZSA9PiB0aGlzLnB1YmxpY1BhZ2VzW3BhZ2VOYW1lXSA9IHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -18,6 +18,7 @@ import { LocationAccuracy } from '@awesome-cordova-plugins/location-accuracy/ngx
|
|
|
18
18
|
import { Diagnostic } from '@awesome-cordova-plugins/diagnostic/ngx';
|
|
19
19
|
import * as i1$1 from '@wm/core';
|
|
20
20
|
import { isIos, hasCordova, getWmProjectProperties, executePromiseChain, removeExtraSlashes, loadStyleSheet, insertAfter, removeNode, loadScript } from '@wm/core';
|
|
21
|
+
import { forEach, split, keys } from 'lodash-es';
|
|
21
22
|
import { FileExtensionFromMimePipe } from '@wm/components/base';
|
|
22
23
|
import * as i3 from '@wm/mobile/core';
|
|
23
24
|
import { MobileCoreModule } from '@wm/mobile/core';
|
|
@@ -119,10 +120,13 @@ class CookieService {
|
|
|
119
120
|
const cookieInfoStr = localStorage.getItem(STORAGE_KEY), promises = [];
|
|
120
121
|
if (cookieInfoStr) {
|
|
121
122
|
const cookieInfo = JSON.parse(cookieInfoStr);
|
|
122
|
-
|
|
123
|
+
forEach(cookieInfo, c => {
|
|
124
|
+
// @ts-ignore
|
|
123
125
|
if (c.name && c.value) {
|
|
126
|
+
// @ts-ignore
|
|
124
127
|
promises.push(this.getCookie(c.hostname, c.name).catch(() => {
|
|
125
128
|
return new Promise((resolve, reject) => {
|
|
129
|
+
// @ts-ignore
|
|
126
130
|
window['cookieEmperor'].setCookie(c.hostname, c.name, this.rotateRTL(c.value), resolve, reject);
|
|
127
131
|
});
|
|
128
132
|
}));
|
|
@@ -315,7 +319,7 @@ class SecurityInterceptor {
|
|
|
315
319
|
return this.init();
|
|
316
320
|
}
|
|
317
321
|
}).then(() => {
|
|
318
|
-
const urlSplits =
|
|
322
|
+
const urlSplits = split(request.url, '/');
|
|
319
323
|
const pageName = urlSplits[urlSplits.length - 2];
|
|
320
324
|
if (!this.publicPages || this.publicPages[pageName]) {
|
|
321
325
|
return Promise.resolve(request);
|
|
@@ -346,7 +350,7 @@ class SecurityInterceptor {
|
|
|
346
350
|
if (!this.initialized) {
|
|
347
351
|
this.publicPages = {};
|
|
348
352
|
this.initialized = true;
|
|
349
|
-
|
|
353
|
+
forEach(JSON.parse(text), pageName => this.publicPages[pageName] = true);
|
|
350
354
|
}
|
|
351
355
|
}).catch(() => {
|
|
352
356
|
this.initialized = true;
|
|
@@ -649,7 +653,7 @@ class MobileRuntimeModule {
|
|
|
649
653
|
isAuthenticating = false;
|
|
650
654
|
return this.cookieService.clearAll()
|
|
651
655
|
.then(() => {
|
|
652
|
-
const promises =
|
|
656
|
+
const promises = keys(output).map(k => {
|
|
653
657
|
return this.cookieService.setCookie(this.app.deployedUrl, k, output[k]);
|
|
654
658
|
});
|
|
655
659
|
return Promise.all(promises);
|