@sapui5/sap.fe.core 1.127.2 → 1.129.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime.js +3 -9
- package/src/sap/fe/core/ActionRuntime.ts +3 -7
- package/src/sap/fe/core/AppComponent.js +9 -19
- package/src/sap/fe/core/AppComponent.ts +2 -12
- package/src/sap/fe/core/AppStateHandler.js +3 -11
- package/src/sap/fe/core/AppStateHandler.ts +0 -7
- package/src/sap/fe/core/BaseController.js +4 -8
- package/src/sap/fe/core/BaseController.ts +0 -5
- package/src/sap/fe/core/CommonUtils.js +1 -9
- package/src/sap/fe/core/CommonUtils.ts +4 -8
- package/src/sap/fe/core/ExtensionAPI.js +10 -25
- package/src/sap/fe/core/ExtensionAPI.ts +4 -19
- package/src/sap/fe/core/InsightsFormattersExtension.js +5 -3
- package/src/sap/fe/core/PageController.js +7 -10
- package/src/sap/fe/core/PageController.ts +0 -3
- package/src/sap/fe/core/ResourceModel.js +3 -5
- package/src/sap/fe/core/ResourceModel.ts +0 -2
- package/src/sap/fe/core/ReuseComponent.js +8 -14
- package/src/sap/fe/core/ReuseComponent.ts +0 -6
- package/src/sap/fe/core/TemplateComponent.js +37 -9
- package/src/sap/fe/core/TemplateComponent.ts +3 -2
- package/src/sap/fe/core/TemplateModel.js +5 -5
- package/src/sap/fe/core/TemplateModel.ts +0 -1
- package/src/sap/fe/core/UIProvider.js +1 -1
- package/src/sap/fe/core/UIProvider.ts +44 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +7 -12
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +0 -5
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +61 -65
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +60 -63
- package/src/sap/fe/core/buildingBlocks/templating/AttributeModel.js +3 -3
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockFormatter.js +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +21 -5
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +0 -4
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +6 -18
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +3 -20
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +5 -11
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +0 -6
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlock.js +3 -3
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.js +11 -10
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.ts +0 -1
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +5 -7
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +0 -1
- package/src/sap/fe/core/controllerextensions/BusyLocker.js +1 -1
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +3 -10
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +0 -7
- package/src/sap/fe/core/controllerextensions/ContextSharing.js +5 -8
- package/src/sap/fe/core/controllerextensions/ContextSharing.ts +0 -2
- package/src/sap/fe/core/controllerextensions/EditFlow.js +225 -155
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +248 -164
- package/src/sap/fe/core/controllerextensions/Feedback.js +1 -3
- package/src/sap/fe/core/controllerextensions/Feedback.ts +0 -2
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +4 -7
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +0 -3
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +8 -25
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +2 -21
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +22 -34
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +25 -31
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +8 -21
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +4 -15
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +68 -31
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +78 -32
- package/src/sap/fe/core/controllerextensions/PageReady.js +4 -4
- package/src/sap/fe/core/controllerextensions/Paginator.js +4 -8
- package/src/sap/fe/core/controllerextensions/Paginator.ts +0 -4
- package/src/sap/fe/core/controllerextensions/Placeholder.js +4 -4
- package/src/sap/fe/core/controllerextensions/Recommendations.js +15 -24
- package/src/sap/fe/core/controllerextensions/Recommendations.ts +13 -20
- package/src/sap/fe/core/controllerextensions/Routing.js +4 -10
- package/src/sap/fe/core/controllerextensions/Routing.ts +0 -6
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
- package/src/sap/fe/core/controllerextensions/Share.js +17 -11
- package/src/sap/fe/core/controllerextensions/Share.ts +10 -5
- package/src/sap/fe/core/controllerextensions/SideEffects.js +49 -45
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +54 -41
- package/src/sap/fe/core/controllerextensions/Telemetry.js +4 -4
- package/src/sap/fe/core/controllerextensions/ViewState.js +10 -34
- package/src/sap/fe/core/controllerextensions/ViewState.ts +3 -49
- package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.js +6 -8
- package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.ts +0 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -2
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +0 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +4 -3
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +1 -1
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +16 -12
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +4 -1
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +126 -74
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +158 -91
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -22
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +0 -20
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +10 -20
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +11 -17
- package/src/sap/fe/core/controllerextensions/editFlow/editFlowConstants.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +191 -767
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +277 -1024
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -6
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +0 -5
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +381 -250
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +467 -301
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +2 -6
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +0 -5
- package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.js +2 -6
- package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.ts +4 -6
- package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.js +1 -6
- package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.ts +0 -4
- package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js +1 -1
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +4 -41
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +1 -37
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.js +1 -1
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.ts +0 -1
- package/src/sap/fe/core/controls/Any.js +1 -2
- package/src/sap/fe/core/controls/Any.ts +0 -1
- package/src/sap/fe/core/controls/AnyElement.js +1 -2
- package/src/sap/fe/core/controls/AnyElement.ts +0 -1
- package/src/sap/fe/core/controls/CommandExecution.js +3 -3
- package/src/sap/fe/core/controls/ComponentLoader.js +23 -10
- package/src/sap/fe/core/controls/ComponentLoader.ts +0 -1
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +10 -13
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +0 -6
- package/src/sap/fe/core/controls/EventDelegateHook.js +8 -9
- package/src/sap/fe/core/controls/FormElementWrapper.js +7 -7
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +3 -1
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +140 -24
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.tsx +141 -10
- package/src/sap/fe/core/converters/ConverterContext.js +8 -30
- package/src/sap/fe/core/converters/ConverterContext.ts +7 -29
- package/src/sap/fe/core/converters/ManifestSettings.js +37 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +12 -3
- package/src/sap/fe/core/converters/ManifestWrapper.js +12 -40
- package/src/sap/fe/core/converters/ManifestWrapper.ts +13 -46
- package/src/sap/fe/core/converters/MetaModelConverter.js +44 -48
- package/src/sap/fe/core/converters/MetaModelConverter.ts +50 -48
- package/src/sap/fe/core/converters/TemplateConverter.js +3 -2
- package/src/sap/fe/core/converters/TemplateConverter.ts +0 -1
- package/src/sap/fe/core/converters/annotations/DataField.js +1 -28
- package/src/sap/fe/core/converters/annotations/DataField.ts +0 -26
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +24 -19
- package/src/sap/fe/core/converters/controls/Common/Action.js +13 -26
- package/src/sap/fe/core/converters/controls/Common/Action.ts +13 -31
- package/src/sap/fe/core/converters/controls/Common/Chart.js +5 -6
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +0 -5
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +2 -4
- package/src/sap/fe/core/converters/controls/Common/Criticality.ts +1 -2
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -5
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +0 -4
- package/src/sap/fe/core/converters/controls/Common/Form.js +3 -2
- package/src/sap/fe/core/converters/controls/Common/Form.ts +2 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -7
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +11 -6
- package/src/sap/fe/core/converters/controls/Common/Table.js +159 -141
- package/src/sap/fe/core/converters/controls/Common/Table.ts +166 -122
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +5 -30
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +3 -29
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +43 -55
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +43 -47
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -4
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +0 -3
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +3 -8
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +2 -7
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -11
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +0 -9
- package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -10
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +0 -9
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -7
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +0 -6
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +1 -9
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +0 -8
- package/src/sap/fe/core/converters/helpers/ID.js +1 -2
- package/src/sap/fe/core/converters/helpers/ID.ts +0 -1
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +1 -2
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +0 -1
- package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
- package/src/sap/fe/core/converters/helpers/Key.js +1 -5
- package/src/sap/fe/core/converters/helpers/Key.ts +0 -4
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -2
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +0 -1
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -7
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +0 -6
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +6 -27
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +9 -26
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -16
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +0 -15
- package/src/sap/fe/core/definition/FEDefinition.js +2550 -0
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +11 -12
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +9 -10
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +8 -2
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +0 -2
- package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.js +1 -2
- package/src/sap/fe/core/formatters/FPMFormatter.ts +0 -1
- package/src/sap/fe/core/formatters/FiscalFormat.js +9 -14
- package/src/sap/fe/core/formatters/FiscalFormat.ts +0 -11
- package/src/sap/fe/core/formatters/KPIFormatter.js +1 -4
- package/src/sap/fe/core/formatters/KPIFormatter.ts +0 -3
- package/src/sap/fe/core/formatters/StandardFormatter.js +6 -3
- package/src/sap/fe/core/formatters/StandardFormatter.ts +6 -2
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -4
- package/src/sap/fe/core/formatters/ValueFormatter.ts +0 -3
- package/src/sap/fe/core/fpm/Component.js +14 -17
- package/src/sap/fe/core/fpm/Component.ts +7 -10
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.js +3 -10
- package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.ts +0 -9
- package/src/sap/fe/core/helpers/AppStartupHelper.js +1 -13
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +0 -11
- package/src/sap/fe/core/helpers/BindingHelper.js +1 -4
- package/src/sap/fe/core/helpers/BindingHelper.ts +0 -3
- package/src/sap/fe/core/helpers/BindingToolkitEvaluator.js +1 -2
- package/src/sap/fe/core/helpers/BindingToolkitEvaluator.ts +0 -1
- package/src/sap/fe/core/helpers/DeleteHelper.js +61 -32
- package/src/sap/fe/core/helpers/DeleteHelper.ts +79 -33
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -2
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +0 -1
- package/src/sap/fe/core/helpers/EditState.js +1 -1
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -2
- package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +0 -1
- package/src/sap/fe/core/helpers/FPMHelper.js +1 -2
- package/src/sap/fe/core/helpers/FPMHelper.ts +0 -1
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -8
- package/src/sap/fe/core/helpers/KeepAliveHelper.ts +0 -7
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +7 -1
- package/src/sap/fe/core/helpers/LoaderUtils.js +1 -1
- package/src/sap/fe/core/helpers/ManifestHelper.js +1 -3
- package/src/sap/fe/core/helpers/ManifestHelper.ts +0 -2
- package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
- package/src/sap/fe/core/helpers/MetaModelFunction.js +3 -8
- package/src/sap/fe/core/helpers/MetaModelFunction.ts +0 -5
- package/src/sap/fe/core/helpers/MetaPath.js +1 -7
- package/src/sap/fe/core/helpers/MetaPath.ts +0 -6
- package/src/sap/fe/core/helpers/ModelHelper.js +55 -35
- package/src/sap/fe/core/helpers/ModelHelper.ts +64 -38
- package/src/sap/fe/core/helpers/PasteHelper.js +77 -24
- package/src/sap/fe/core/helpers/PasteHelper.ts +105 -23
- package/src/sap/fe/core/helpers/PromiseKeeper.js +1 -3
- package/src/sap/fe/core/helpers/PromiseKeeper.ts +0 -2
- package/src/sap/fe/core/helpers/RecommendationHelper.js +1 -4
- package/src/sap/fe/core/helpers/RecommendationHelper.ts +0 -3
- package/src/sap/fe/core/helpers/ResourceModelHelper.js +1 -3
- package/src/sap/fe/core/helpers/ResourceModelHelper.ts +3 -4
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -2
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +0 -1
- package/src/sap/fe/core/helpers/SizeHelper.js +1 -2
- package/src/sap/fe/core/helpers/SizeHelper.ts +0 -1
- package/src/sap/fe/core/helpers/StableIdHelper.js +7 -17
- package/src/sap/fe/core/helpers/StableIdHelper.ts +7 -17
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +1 -12
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.ts +0 -11
- package/src/sap/fe/core/helpers/Synchronization.js +1 -1
- package/src/sap/fe/core/helpers/TitleHelper.js +1 -10
- package/src/sap/fe/core/helpers/TitleHelper.ts +0 -9
- package/src/sap/fe/core/helpers/ToES6Promise.js +1 -2
- package/src/sap/fe/core/helpers/ToES6Promise.ts +0 -1
- package/src/sap/fe/core/helpers/TypeGuards.js +1 -15
- package/src/sap/fe/core/helpers/TypeGuards.ts +0 -14
- package/src/sap/fe/core/helpers/WebSocket.js +1 -1
- package/src/sap/fe/core/library.js +10 -44
- package/src/sap/fe/core/library.support.js +1 -1
- package/src/sap/fe/core/library.ts +8 -45
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -6
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +0 -5
- package/src/sap/fe/core/messagebundle.properties +12 -1
- package/src/sap/fe/core/messagebundle_ar.properties +8 -0
- package/src/sap/fe/core/messagebundle_bg.properties +8 -0
- package/src/sap/fe/core/messagebundle_ca.properties +8 -0
- package/src/sap/fe/core/messagebundle_cnr.properties +8 -0
- package/src/sap/fe/core/messagebundle_cs.properties +9 -1
- package/src/sap/fe/core/messagebundle_cy.properties +8 -0
- package/src/sap/fe/core/messagebundle_da.properties +8 -0
- package/src/sap/fe/core/messagebundle_de.properties +8 -0
- package/src/sap/fe/core/messagebundle_el.properties +8 -0
- package/src/sap/fe/core/messagebundle_en.properties +8 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +8 -0
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +144 -65
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +8 -0
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +273 -194
- package/src/sap/fe/core/messagebundle_es.properties +9 -1
- package/src/sap/fe/core/messagebundle_es_MX.properties +8 -0
- package/src/sap/fe/core/messagebundle_et.properties +8 -0
- package/src/sap/fe/core/messagebundle_fi.properties +8 -0
- package/src/sap/fe/core/messagebundle_fr.properties +8 -0
- package/src/sap/fe/core/messagebundle_fr_CA.properties +8 -0
- package/src/sap/fe/core/messagebundle_hi.properties +9 -1
- package/src/sap/fe/core/messagebundle_hr.properties +8 -0
- package/src/sap/fe/core/messagebundle_hu.properties +8 -0
- package/src/sap/fe/core/messagebundle_id.properties +12 -4
- package/src/sap/fe/core/messagebundle_it.properties +8 -0
- package/src/sap/fe/core/messagebundle_iw.properties +8 -0
- package/src/sap/fe/core/messagebundle_ja.properties +8 -0
- package/src/sap/fe/core/messagebundle_kk.properties +8 -0
- package/src/sap/fe/core/messagebundle_ko.properties +8 -0
- package/src/sap/fe/core/messagebundle_lt.properties +8 -0
- package/src/sap/fe/core/messagebundle_lv.properties +8 -0
- package/src/sap/fe/core/messagebundle_mk.properties +8 -0
- package/src/sap/fe/core/messagebundle_ms.properties +8 -0
- package/src/sap/fe/core/messagebundle_nl.properties +16 -8
- package/src/sap/fe/core/messagebundle_no.properties +8 -0
- package/src/sap/fe/core/messagebundle_pl.properties +8 -0
- package/src/sap/fe/core/messagebundle_pt.properties +8 -0
- package/src/sap/fe/core/messagebundle_pt_PT.properties +8 -0
- package/src/sap/fe/core/messagebundle_ro.properties +8 -0
- package/src/sap/fe/core/messagebundle_ru.properties +8 -0
- package/src/sap/fe/core/messagebundle_sh.properties +8 -0
- package/src/sap/fe/core/messagebundle_sk.properties +8 -0
- package/src/sap/fe/core/messagebundle_sl.properties +8 -0
- package/src/sap/fe/core/messagebundle_sr.properties +8 -0
- package/src/sap/fe/core/messagebundle_sv.properties +8 -0
- package/src/sap/fe/core/messagebundle_th.properties +12 -4
- package/src/sap/fe/core/messagebundle_tr.properties +8 -0
- package/src/sap/fe/core/messagebundle_uk.properties +10 -2
- package/src/sap/fe/core/messagebundle_vi.properties +8 -0
- package/src/sap/fe/core/messagebundle_zh_CN.properties +8 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +8 -0
- package/src/sap/fe/core/operationsHelper.js +22 -7
- package/src/sap/fe/core/operationsHelper.ts +24 -5
- package/src/sap/fe/core/rootView/Fcl.controller.js +7 -27
- package/src/sap/fe/core/rootView/Fcl.controller.ts +0 -18
- package/src/sap/fe/core/rootView/NavContainer.controller.js +7 -12
- package/src/sap/fe/core/rootView/NavContainer.controller.ts +0 -5
- package/src/sap/fe/core/rootView/RootViewBaseController.js +10 -24
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +3 -16
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +3 -3
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +3 -3
- package/src/sap/fe/core/services/CollaborationManagerServiceFactory.js +4 -4
- package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js +3 -3
- package/src/sap/fe/core/services/ContextSharingServiceFactory.js +3 -4
- package/src/sap/fe/core/services/ContextSharingServiceFactory.ts +0 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +13 -20
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +11 -17
- package/src/sap/fe/core/services/NavigationServiceFactory.js +11 -21
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +4 -17
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +3 -3
- package/src/sap/fe/core/services/RoutingServiceFactory.js +7 -19
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +0 -12
- package/src/sap/fe/core/services/ShellServicesFactory.js +8 -44
- package/src/sap/fe/core/services/ShellServicesFactory.ts +1 -41
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +19 -60
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +14 -57
- package/src/sap/fe/core/services/TelemetryServiceFactory.js +6 -14
- package/src/sap/fe/core/services/TelemetryServiceFactory.ts +2 -10
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +17 -7
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +17 -3
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +11 -24
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.ts +0 -19
- package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +3 -31
- package/src/sap/fe/core/services/collaborativeDraftServiceFactory.ts +0 -27
- package/src/sap/fe/core/services/valueHelpService/HistoryOptOutProvider.js +1 -4
- package/src/sap/fe/core/services/valueHelpService/HistoryOptOutProvider.ts +0 -3
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +7 -7
- package/src/sap/fe/core/support/AnnotationIssue.support.js +1 -1
- package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +1 -1
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +1 -1
- package/src/sap/fe/core/support/CommonHelper.js +4 -1
- package/src/sap/fe/core/support/Diagnostics.js +1 -1
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +1 -1
- package/src/sap/fe/core/templating/ActionHelper.js +1 -2
- package/src/sap/fe/core/templating/ActionHelper.ts +0 -1
- package/src/sap/fe/core/templating/CommonFormatters.js +1 -2
- package/src/sap/fe/core/templating/CommonFormatters.ts +0 -1
- package/src/sap/fe/core/templating/CriticalityFormatters.js +1 -6
- package/src/sap/fe/core/templating/CriticalityFormatters.ts +0 -5
- package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -2
- package/src/sap/fe/core/templating/DataFieldFormatters.ts +0 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -18
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +0 -17
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +6 -1
- package/src/sap/fe/core/templating/EntitySetHelper.js +1 -4
- package/src/sap/fe/core/templating/EntitySetHelper.ts +0 -3
- package/src/sap/fe/core/templating/EntityTypeHelper.js +4 -5
- package/src/sap/fe/core/templating/EntityTypeHelper.ts +3 -4
- package/src/sap/fe/core/templating/FieldControlHelper.js +4 -9
- package/src/sap/fe/core/templating/FieldControlHelper.ts +3 -9
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.js +1 -31
- package/src/sap/fe/core/templating/PropertyHelper.ts +0 -30
- package/src/sap/fe/core/templating/SemanticObjectHelper.js +1 -7
- package/src/sap/fe/core/templating/SemanticObjectHelper.ts +0 -6
- package/src/sap/fe/core/templating/UIFormatters.js +18 -14
- package/src/sap/fe/core/templating/UIFormatters.ts +30 -18
- package/src/sap/fe/core/type/Date.js +3 -6
- package/src/sap/fe/core/type/Date.ts +0 -3
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +3 -3
- package/src/sap/fe/core/type/EDM.js +1 -1
- package/src/sap/fe/core/type/Email.js +3 -3
- package/src/sap/fe/core/type/FiscalDate.js +3 -9
- package/src/sap/fe/core/type/FiscalDate.ts +0 -6
- package/src/sap/fe/core/type/InputMask.js +3 -7
- package/src/sap/fe/core/type/InputMask.ts +0 -4
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import Log from "sap/base/Log";
|
|
1
2
|
import VersionInfo from "sap/ui/VersionInfo";
|
|
2
3
|
import Library from "sap/ui/core/Lib";
|
|
3
4
|
import Service from "sap/ui/core/service/Service";
|
|
@@ -62,7 +63,6 @@ export class EnvironmentCapabilitiesService extends Service<EnvironmentCapabilit
|
|
|
62
63
|
* Prepares the feature for usage.
|
|
63
64
|
*
|
|
64
65
|
* This function loads the library registered for the feature.
|
|
65
|
-
*
|
|
66
66
|
* @param feature The feature to prepare.
|
|
67
67
|
* @throws Error if the feature is unavailable.
|
|
68
68
|
*/
|
|
@@ -91,7 +91,7 @@ export class EnvironmentCapabilitiesService extends Service<EnvironmentCapabilit
|
|
|
91
91
|
// Initialize optional features
|
|
92
92
|
const navigationService: Navigation | undefined = await sap.ushell?.Container?.getServiceAsync("Navigation");
|
|
93
93
|
|
|
94
|
-
for (const [featureName, feature] of Object.entries(OptionalFeatures)
|
|
94
|
+
for (const [featureName, feature] of Object.entries(OptionalFeatures)) {
|
|
95
95
|
// The feature is off by default. Only if there is a shell and the intent resolves, the feature is available
|
|
96
96
|
this.environmentCapabilities[featureName] = false;
|
|
97
97
|
|
|
@@ -116,6 +116,7 @@ export class EnvironmentCapabilitiesService extends Service<EnvironmentCapabilit
|
|
|
116
116
|
}
|
|
117
117
|
} catch (e) {
|
|
118
118
|
// Feature unavailable
|
|
119
|
+
Log.info(`Feature unavailable ${featureName}: ${(e as { message: string; stack: string }).message}`);
|
|
119
120
|
}
|
|
120
121
|
}
|
|
121
122
|
}
|
|
@@ -125,18 +126,14 @@ export class EnvironmentCapabilitiesService extends Service<EnvironmentCapabilit
|
|
|
125
126
|
|
|
126
127
|
static async resolveLibrary(libraryName: string): Promise<boolean> {
|
|
127
128
|
return new Promise(function (resolve) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
});
|
|
137
|
-
} catch (e) {
|
|
138
|
-
resolve(false);
|
|
139
|
-
}
|
|
129
|
+
Library.load({ name: `${libraryName}` })
|
|
130
|
+
.then(function () {
|
|
131
|
+
resolve(true);
|
|
132
|
+
return;
|
|
133
|
+
})
|
|
134
|
+
.catch(function () {
|
|
135
|
+
resolve(false);
|
|
136
|
+
});
|
|
140
137
|
});
|
|
141
138
|
}
|
|
142
139
|
|
|
@@ -154,7 +151,6 @@ export class EnvironmentCapabilitiesService extends Service<EnvironmentCapabilit
|
|
|
154
151
|
|
|
155
152
|
/**
|
|
156
153
|
* Checks if insights are enabled on the home page.
|
|
157
|
-
*
|
|
158
154
|
* @returns True if insights are enabled on the home page.
|
|
159
155
|
*/
|
|
160
156
|
async isInsightsEnabled(): Promise<boolean> {
|
|
@@ -183,7 +179,6 @@ export class EnvironmentCapabilitiesService extends Service<EnvironmentCapabilit
|
|
|
183
179
|
|
|
184
180
|
/**
|
|
185
181
|
* Checks if insights context channel is enabled .
|
|
186
|
-
*
|
|
187
182
|
* @returns True if enabled.
|
|
188
183
|
*/
|
|
189
184
|
async isContextSharingEnabled(): Promise<boolean> {
|
|
@@ -216,7 +211,6 @@ export class EnvironmentServiceFactory extends ServiceFactory<EnvironmentCapabil
|
|
|
216
211
|
|
|
217
212
|
/**
|
|
218
213
|
* Checks if the application is opened on Microsoft Teams.
|
|
219
|
-
*
|
|
220
214
|
* @returns True if the application is opened on Microsoft Teams.
|
|
221
215
|
*/
|
|
222
216
|
export async function getMSTeamsActive(): Promise<boolean> {
|
|
@@ -6,9 +6,9 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
9
|
-
function _assertThisInitialized(
|
|
10
|
-
function _inheritsLoose(
|
|
11
|
-
function _setPrototypeOf(
|
|
9
|
+
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
10
|
+
function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
|
|
11
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
12
12
|
let NavigationService = /*#__PURE__*/function (_Service) {
|
|
13
13
|
_inheritsLoose(NavigationService, _Service);
|
|
14
14
|
function NavigationService() {
|
|
@@ -29,7 +29,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
31
|
* Triggers a cross-app navigation after saving the inner and the cross-app states.
|
|
32
|
-
*
|
|
33
32
|
* @param sSemanticObject Semantic object of the target app
|
|
34
33
|
* @param sActionName Action of the target app
|
|
35
34
|
* @param [vNavigationParameters] Navigation parameters as an object with key/value pairs or as a string representation of
|
|
@@ -54,7 +53,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
54
53
|
|
|
55
54
|
/**
|
|
56
55
|
* Parses the incoming URL and returns a Promise.
|
|
57
|
-
*
|
|
58
56
|
* @returns A Promise object which returns the
|
|
59
57
|
* extracted app state, the startup parameters, and the type of navigation when execution is successful,
|
|
60
58
|
*/;
|
|
@@ -64,7 +62,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
64
62
|
|
|
65
63
|
/**
|
|
66
64
|
* Processes navigation-related tasks related to beforePopoverOpens event handling for the SmartLink control and returns a Promise object.
|
|
67
|
-
*
|
|
68
65
|
* @param oTableEventParameters The parameters made available by the SmartTable control when the SmartLink control has been clicked,
|
|
69
66
|
* an instance of a PopOver object
|
|
70
67
|
* @param sSelectionVariant Stringified JSON object as returned, for example, from getDataSuiteFormat() of the SmartFilterBar control
|
|
@@ -80,10 +77,8 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
80
77
|
|
|
81
78
|
/**
|
|
82
79
|
* Get App specific hash.
|
|
83
|
-
*
|
|
84
80
|
* @param appHash The path string
|
|
85
81
|
* @returns A string representing base path
|
|
86
|
-
*
|
|
87
82
|
*/;
|
|
88
83
|
_proto.getAppSpecificHash = async function getAppSpecificHash(appHash) {
|
|
89
84
|
return this.oNavHandler._getAppSpecificHash(appHash);
|
|
@@ -91,7 +86,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
91
86
|
|
|
92
87
|
/**
|
|
93
88
|
* Processes selectionVariant string and returns a Promise object (semanticAttributes and AppStateKey).
|
|
94
|
-
*
|
|
95
89
|
* @param sSelectionVariant Stringified JSON object
|
|
96
90
|
* @returns A Promise object to monitor when all actions in the function have been executed; if the execution is successful, the
|
|
97
91
|
* semanticAttributes as well as the appStateKey are returned; if an error occurs, an error object of type
|
|
@@ -125,7 +119,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
125
119
|
|
|
126
120
|
/**
|
|
127
121
|
* Gets the application specific technical parameters.
|
|
128
|
-
*
|
|
129
122
|
* @returns Containing the technical parameters.
|
|
130
123
|
*/;
|
|
131
124
|
_proto.getTechnicalParameters = function getTechnicalParameters() {
|
|
@@ -136,7 +129,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
136
129
|
* Sets the application specific technical parameters. Technical parameters will not be added to the selection variant passed to the
|
|
137
130
|
* application.
|
|
138
131
|
* As a default sap-system, sap-ushell-defaultedParameterNames and hcpApplicationId are considered as technical parameters.
|
|
139
|
-
*
|
|
140
132
|
* @param aTechnicalParameters List of parameter names to be considered as technical parameters. <code>null</code> or
|
|
141
133
|
* <code>undefined</code> may be used to reset the complete list.
|
|
142
134
|
*/;
|
|
@@ -147,7 +139,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
147
139
|
/**
|
|
148
140
|
* Sets the model that is used for verification of sensitive information. If the model is not set, the unnamed component model is used for the
|
|
149
141
|
* verification of sensitive information.
|
|
150
|
-
*
|
|
151
142
|
* @param oModel Model For checking sensitive information
|
|
152
143
|
*/;
|
|
153
144
|
_proto.setModel = function setModel(oModel) {
|
|
@@ -156,7 +147,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
156
147
|
|
|
157
148
|
/**
|
|
158
149
|
* Changes the URL according to the current app state and stores the app state for later retrieval.
|
|
159
|
-
*
|
|
160
150
|
* @param mInnerAppData Object containing the current state of the app
|
|
161
151
|
* @param [bImmediateHashReplace] If set to false, the inner app hash will not be replaced until storing is successful; do not
|
|
162
152
|
* set to false if you cannot react to the resolution of the Promise, for example, when calling the beforeLinkPressed event
|
|
@@ -173,7 +163,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
173
163
|
|
|
174
164
|
/**
|
|
175
165
|
* Changes the URL according to the current app state and stores the app state for later retrieval.
|
|
176
|
-
*
|
|
177
166
|
* @param mInnerAppData Object containing the current state of the app
|
|
178
167
|
* @param [bImmediateHashReplace] If set to false, the inner app hash will not be replaced until storing is successful; do not
|
|
179
168
|
* @returns An object containing the appStateId and a promise object to monitor when all the actions of the function have been
|
|
@@ -185,7 +174,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
185
174
|
|
|
186
175
|
/**
|
|
187
176
|
* Changes the URL according to the current sAppStateKey. As an reaction route change event will be triggered.
|
|
188
|
-
*
|
|
189
177
|
* @param sAppStateKey The new app state key.
|
|
190
178
|
*/;
|
|
191
179
|
_proto.replaceHash = function replaceHash(sAppStateKey) {
|
|
@@ -197,7 +185,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
197
185
|
|
|
198
186
|
/**
|
|
199
187
|
* Get single values from SelectionVariant for url parameters.
|
|
200
|
-
*
|
|
201
188
|
* @param [vSelectionVariant]
|
|
202
189
|
* @param [vSelectionVariant.oUrlParamaters]
|
|
203
190
|
* @returns The url parameters
|
|
@@ -208,7 +195,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
208
195
|
|
|
209
196
|
/**
|
|
210
197
|
* Save app state and return immediately without waiting for response.
|
|
211
|
-
*
|
|
212
198
|
* @param oInSelectionVariant Instance of sap.fe.navigation.SelectionVariant
|
|
213
199
|
* @returns AppState key
|
|
214
200
|
*/;
|
|
@@ -230,7 +216,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
230
216
|
|
|
231
217
|
/**
|
|
232
218
|
* Mix Attributes and selectionVariant.
|
|
233
|
-
*
|
|
234
219
|
* @param vSemanticAttributes Object/(Array of Objects) containing key/value pairs
|
|
235
220
|
* @param sSelectionVariant The selection variant in string format as provided by the SmartFilterBar control
|
|
236
221
|
* @param iSuppressionBehavior Indicates whether semantic
|
|
@@ -246,7 +231,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
246
231
|
|
|
247
232
|
/**
|
|
248
233
|
* The method creates a context url based on provided data. This context url can either be used as.
|
|
249
|
-
*
|
|
250
234
|
* @param sEntitySetName Used for url determination
|
|
251
235
|
* @param oModel The ODataModel used for url determination. If omitted, the NavigationHandler model is used.
|
|
252
236
|
* @returns The context url for the given entities
|
|
@@ -260,12 +244,14 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
260
244
|
|
|
261
245
|
/**
|
|
262
246
|
* The method returns iAppState key for the current navgation handler instance.
|
|
263
|
-
*
|
|
264
247
|
* @returns IAppState key
|
|
265
248
|
*/;
|
|
266
249
|
_proto.getIAppStateKey = function getIAppStateKey() {
|
|
267
250
|
return this.oNavHandler.getIAppStateKey();
|
|
268
251
|
};
|
|
252
|
+
_proto.checkIsPotentiallySensitive = function checkIsPotentiallySensitive(oData) {
|
|
253
|
+
return this.oNavHandler._checkIsPotentiallySensitive(oData);
|
|
254
|
+
};
|
|
269
255
|
return NavigationService;
|
|
270
256
|
}(Service);
|
|
271
257
|
_exports.NavigationService = NavigationService;
|
|
@@ -307,6 +293,10 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
307
293
|
}
|
|
308
294
|
|
|
309
295
|
// return empty object
|
|
296
|
+
|
|
297
|
+
// return promise
|
|
298
|
+
|
|
299
|
+
// return empty string
|
|
310
300
|
;
|
|
311
301
|
_proto2.replaceInnerAppStateKey = function replaceInnerAppStateKey(sAppHash) {
|
|
312
302
|
return sAppHash ? sAppHash : "";
|
|
@@ -334,4 +324,4 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
334
324
|
}(ServiceFactory);
|
|
335
325
|
return NavigationServiceFactory;
|
|
336
326
|
}, false);
|
|
337
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZpZ2F0aW9uU2VydmljZSIsImluaXQiLCJvQ29udGV4dCIsImdldENvbnRleHQiLCJvQ29tcG9uZW50Iiwic2NvcGVPYmplY3QiLCJvTmF2SGFuZGxlciIsIk5hdmlnYXRpb25IYW5kbGVyIiwic2V0TW9kZWwiLCJnZXRNb2RlbCIsImluaXRQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJleGl0IiwiZGVzdHJveSIsIm5hdmlnYXRlIiwic1NlbWFudGljT2JqZWN0Iiwic0FjdGlvbk5hbWUiLCJ2TmF2aWdhdGlvblBhcmFtZXRlcnMiLCJvSW5uZXJBcHBEYXRhIiwiZm5PbkVycm9yIiwib0V4dGVybmFsQXBwRGF0YSIsInNOYXZNb2RlIiwicGFyc2VOYXZpZ2F0aW9uIiwiX3Byb2Nlc3NCZWZvcmVTbWFydExpbmtQb3BvdmVyT3BlbnMiLCJvVGFibGVFdmVudFBhcmFtZXRlcnMiLCJzU2VsZWN0aW9uVmFyaWFudCIsIm1Jbm5lckFwcERhdGEiLCJwcm9jZXNzQmVmb3JlU21hcnRMaW5rUG9wb3Zlck9wZW5zIiwiZ2V0QXBwU3BlY2lmaWNIYXNoIiwiYXBwSGFzaCIsIl9nZXRBcHBTcGVjaWZpY0hhc2giLCJnZXRBcHBTdGF0ZUtleUFuZFVybFBhcmFtZXRlcnMiLCJfZ2V0QXBwU3RhdGVLZXlBbmRVcmxQYXJhbWV0ZXJzIiwiZ2V0VGVjaG5pY2FsUGFyYW1ldGVycyIsInNldFRlY2huaWNhbFBhcmFtZXRlcnMiLCJhVGVjaG5pY2FsUGFyYW1ldGVycyIsIm9Nb2RlbCIsInN0b3JlSW5uZXJBcHBTdGF0ZUFzeW5jIiwiYkltbWVkaWF0ZUhhc2hSZXBsYWNlIiwiYlNraXBIYXNoUmVwbGFjZSIsInJlamVjdCIsInRoZW4iLCJzdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuIiwicmVwbGFjZUhhc2giLCJzQXBwU3RhdGVLZXkiLCJyZXBsYWNlSW5uZXJBcHBTdGF0ZUtleSIsInNBcHBIYXNoIiwiX3JlcGxhY2VJbm5lckFwcFN0YXRlS2V5IiwiZ2V0VXJsUGFyYW1ldGVyc0Zyb21TZWxlY3Rpb25WYXJpYW50IiwidlNlbGVjdGlvblZhcmlhbnQiLCJfZ2V0VVJMUGFyYW1ldGVyc0Zyb21TZWxlY3Rpb25WYXJpYW50Iiwic2F2ZUFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybiIsIm9JblNlbGVjdGlvblZhcmlhbnQiLCJ0b0pTT05TdHJpbmciLCJvU2VsZWN0aW9uVmFyaWFudCIsIkpTT04iLCJwYXJzZSIsIm9YQXBwU3RhdGVPYmplY3QiLCJzZWxlY3Rpb25WYXJpYW50Iiwib1JldHVybiIsIl9zYXZlQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuIiwiYXBwU3RhdGVLZXkiLCJ1bmRlZmluZWQiLCJtaXhBdHRyaWJ1dGVzQW5kU2VsZWN0aW9uVmFyaWFudCIsInZTZW1hbnRpY0F0dHJpYnV0ZXMiLCJpU3VwcHJlc3Npb25CZWhhdmlvciIsImNvbnN0cnVjdENvbnRleHRVcmwiLCJzRW50aXR5U2V0TmFtZSIsImdldEludGVyZmFjZSIsImdldElBcHBTdGF0ZUtleSIsIlNlcnZpY2UiLCJmbkdldEVtcHR5T2JqZWN0IiwiZm5HZXRQcm9taXNlIiwiZm5HZXRKUXVlcnlQcm9taXNlIiwib015RGVmZmVyZWQiLCJqUXVlcnkiLCJEZWZlcnJlZCIsInByb21pc2UiLCJmbkdldEVtcHR5U3RyaW5nIiwiTmF2aWdhdGlvblNlcnZpY2VzTW9jayIsImNyZWF0ZUVtcHR5QXBwU3RhdGUiLCJnZXRBcHBTdGF0ZSIsImdldFN0YXJ0dXBBcHBTdGF0ZSIsIlNlcnZpY2VGYWN0b3J5IiwiTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5IiwiY3JlYXRlSW5zdGFuY2UiLCJvU2VydmljZUNvbnRleHQiLCJvTmF2aWdhdGlvblNlcnZpY2UiLCJzYXAiLCJ1aSIsInJlcXVpcmUiLCJvU2VydmljZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW5uZXJBcHBEYXRhIH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL05hdmlnYXRpb25IYW5kbGVyXCI7XG5pbXBvcnQgTmF2aWdhdGlvbkhhbmRsZXIgZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL05hdmlnYXRpb25IYW5kbGVyXCI7XG5pbXBvcnQgdHlwZSBTZWxlY3Rpb25WYXJpYW50IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9TZWxlY3Rpb25WYXJpYW50XCI7XG5pbXBvcnQgdHlwZSB7IFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50IH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL1NlbGVjdGlvblZhcmlhbnRcIjtcbmltcG9ydCBTZXJ2aWNlIGZyb20gXCJzYXAvdWkvY29yZS9zZXJ2aWNlL1NlcnZpY2VcIjtcbmltcG9ydCBTZXJ2aWNlRmFjdG9yeSBmcm9tIFwic2FwL3VpL2NvcmUvc2VydmljZS9TZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcbmltcG9ydCBqUXVlcnkgZnJvbSBcInNhcC91aS90aGlyZHBhcnR5L2pxdWVyeVwiO1xuaW1wb3J0IHR5cGUgeyBTZXJ2aWNlQ29udGV4dCB9IGZyb20gXCJ0eXBlcy9tZXRhbW9kZWxfdHlwZXNcIjtcblxudHlwZSBOYXZpZ2F0aW9uU2VydmljZVNldHRpbmdzID0ge307XG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvblNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlPE5hdmlnYXRpb25TZXJ2aWNlU2V0dGluZ3M+IHtcblx0aW5pdFByb21pc2UhOiBQcm9taXNlPHRoaXM+O1xuXG5cdG9OYXZIYW5kbGVyITogTmF2aWdhdGlvbkhhbmRsZXI7XG5cblx0aW5pdCgpOiB2b2lkIHtcblx0XHRjb25zdCBvQ29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuXHRcdFx0b0NvbXBvbmVudCA9IG9Db250ZXh0ICYmIG9Db250ZXh0LnNjb3BlT2JqZWN0O1xuXG5cdFx0dGhpcy5vTmF2SGFuZGxlciA9IG5ldyBOYXZpZ2F0aW9uSGFuZGxlcihvQ29tcG9uZW50KTtcblx0XHR0aGlzLm9OYXZIYW5kbGVyLnNldE1vZGVsKG9Db21wb25lbnQuZ2V0TW9kZWwoKSk7XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0fVxuXG5cdGV4aXQoKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5kZXN0cm95KCk7XG5cdH1cblxuXHQvKipcblx0ICogVHJpZ2dlcnMgYSBjcm9zcy1hcHAgbmF2aWdhdGlvbiBhZnRlciBzYXZpbmcgdGhlIGlubmVyIGFuZCB0aGUgY3Jvc3MtYXBwIHN0YXRlcy5cblx0ICpcblx0ICogQHBhcmFtIHNTZW1hbnRpY09iamVjdCBTZW1hbnRpYyBvYmplY3Qgb2YgdGhlIHRhcmdldCBhcHBcblx0ICogQHBhcmFtIHNBY3Rpb25OYW1lIEFjdGlvbiBvZiB0aGUgdGFyZ2V0IGFwcFxuXHQgKiBAcGFyYW0gW3ZOYXZpZ2F0aW9uUGFyYW1ldGVyc10gTmF2aWdhdGlvbiBwYXJhbWV0ZXJzIGFzIGFuIG9iamVjdCB3aXRoIGtleS92YWx1ZSBwYWlycyBvciBhcyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZlxuXHQgKiAgICAgICAgc3VjaCBhbiBvYmplY3QuIElmIHBhc3NlZCBhcyBhbiBvYmplY3QsIHRoZSBwcm9wZXJ0aWVzIGFyZSBub3QgY2hlY2tlZCBhZ2FpbnN0IHRoZSA8Y29kZT5Jc1BvdGVudGlhbFNlbnNpdGl2ZTwvY29kZT4gb3Jcblx0ICogICAgICAgIDxjb2RlPk1lYXN1cmU8L2NvZGU+IHR5cGUuXG5cdCAqIEBwYXJhbSBbb0lubmVyQXBwRGF0YV0gT2JqZWN0IGZvciBzdG9yaW5nIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGFwcFxuXHQgKiBAcGFyYW0gW2ZuT25FcnJvcl0gQ2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBuYXZpZ2F0aW9uIDxicj5cblx0ICogQHBhcmFtIFtvRXh0ZXJuYWxBcHBEYXRhXSBPYmplY3QgZm9yIHN0b3JpbmcgdGhlIHN0YXRlIHdoaWNoIHdpbGwgYmUgZm9yd2FyZGVkIHRvIHRoZSB0YXJnZXQgY29tcG9uZW50LlxuXHQgKiBAcGFyYW0gb0V4dGVybmFsQXBwRGF0YS52YWx1ZVRleHRzXG5cdCAqIEBwYXJhbSBvRXh0ZXJuYWxBcHBEYXRhLnByZXNlbnRhdGlvblZhcmlhbnRcblx0ICogQHBhcmFtIG9FeHRlcm5hbEFwcERhdGEuc2VsZWN0aW9uVmFyaWFudFxuXHQgKiBAcGFyYW0gW3NOYXZNb2RlXSBBcmd1bWVudCBpcyB1c2VkIHRvIG92ZXJ3cml0ZSB0aGUgRkxQLWNvbmZpZ3VyZWQgdGFyZ2V0IGZvciBvcGVuaW5nIGEgVVJMLiBJZiB1c2VkLCBvbmx5IHRoZVxuXHQgKiAgICAgICAgPGNvZGU+ZXhwbGFjZTwvY29kZT4gb3IgPGNvZGU+aW5wbGFjZTwvY29kZT4gdmFsdWVzIGFyZSBhbGxvd2VkLiBBbnkgb3RoZXIgdmFsdWUgd2lsbCBsZWFkIHRvIGFuIGV4Y2VwdGlvblxuXHQgKiAgICAgICAgPGNvZGU+TmF2aWdhdGlvbkhhbmRsZXIuSU5WQUxJRF9OQVZfTU9ERTwvY29kZT4uXG5cdCAqL1xuXHRuYXZpZ2F0ZShcblx0XHRzU2VtYW50aWNPYmplY3Q6IHN0cmluZyxcblx0XHRzQWN0aW9uTmFtZTogc3RyaW5nLFxuXHRcdHZOYXZpZ2F0aW9uUGFyYW1ldGVyczogc3RyaW5nIHwgb2JqZWN0LFxuXHRcdG9Jbm5lckFwcERhdGE/OiBJbm5lckFwcERhdGEsXG5cdFx0Zm5PbkVycm9yPzogRnVuY3Rpb24sXG5cdFx0b0V4dGVybmFsQXBwRGF0YT86IHtcblx0XHRcdHZhbHVlVGV4dHM/OiBvYmplY3QgfCB1bmRlZmluZWQ7XG5cdFx0XHRwcmVzZW50YXRpb25WYXJpYW50Pzogb2JqZWN0IHwgdW5kZWZpbmVkO1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudD86IG9iamVjdCB8IHVuZGVmaW5lZDtcblx0XHR9LFxuXHRcdHNOYXZNb2RlPzogc3RyaW5nXG5cdCk6IHZvaWQge1xuXHRcdC8vIFRPRE86IE5hdmlnYXRpb24gSGFuZGxlciBkb2VzIG5vdCBoYW5kbGUgbmF2aWdhdGlvbiB3aXRob3V0IGEgY29udGV4dFxuXHRcdC8vIGJ1dCBpbiB2NCBEYXRhRmllbGRGb3JJQk4gd2l0aCByZXF1aXJlc0NvbnRleHQgZmFsc2UgY2FuIHRyaWdnZXIgYSBuYXZpZ2F0aW9uIHdpdGhvdXQgYW55IGNvbnRleHRcblx0XHQvLyBUaGlzIHNob3VsZCBiZSBoYW5kbGVkXG5cdFx0dGhpcy5vTmF2SGFuZGxlci5uYXZpZ2F0ZShcblx0XHRcdHNTZW1hbnRpY09iamVjdCxcblx0XHRcdHNBY3Rpb25OYW1lLFxuXHRcdFx0dk5hdmlnYXRpb25QYXJhbWV0ZXJzLFxuXHRcdFx0b0lubmVyQXBwRGF0YSxcblx0XHRcdGZuT25FcnJvcixcblx0XHRcdG9FeHRlcm5hbEFwcERhdGEsXG5cdFx0XHRzTmF2TW9kZVxuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIHRoZSBpbmNvbWluZyBVUkwgYW5kIHJldHVybnMgYSBQcm9taXNlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHdoaWNoIHJldHVybnMgdGhlXG5cdCAqIGV4dHJhY3RlZCBhcHAgc3RhdGUsIHRoZSBzdGFydHVwIHBhcmFtZXRlcnMsIGFuZCB0aGUgdHlwZSBvZiBuYXZpZ2F0aW9uIHdoZW4gZXhlY3V0aW9uIGlzIHN1Y2Nlc3NmdWwsXG5cdCAqL1xuXHRwYXJzZU5hdmlnYXRpb24oKTogalF1ZXJ5LlByb21pc2U8dW5rbm93bltdPiB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIucGFyc2VOYXZpZ2F0aW9uKCkgYXMgalF1ZXJ5LlByb21pc2U8dW5rbm93bltdPjtcblx0fVxuXG5cdC8qKlxuXHQgKiBQcm9jZXNzZXMgbmF2aWdhdGlvbi1yZWxhdGVkIHRhc2tzIHJlbGF0ZWQgdG8gYmVmb3JlUG9wb3Zlck9wZW5zIGV2ZW50IGhhbmRsaW5nIGZvciB0aGUgU21hcnRMaW5rIGNvbnRyb2wgYW5kIHJldHVybnMgYSBQcm9taXNlIG9iamVjdC5cblx0ICpcblx0ICogQHBhcmFtIG9UYWJsZUV2ZW50UGFyYW1ldGVycyBUaGUgcGFyYW1ldGVycyBtYWRlIGF2YWlsYWJsZSBieSB0aGUgU21hcnRUYWJsZSBjb250cm9sIHdoZW4gdGhlIFNtYXJ0TGluayBjb250cm9sIGhhcyBiZWVuIGNsaWNrZWQsXG5cdCAqICAgICAgICBhbiBpbnN0YW5jZSBvZiBhIFBvcE92ZXIgb2JqZWN0XG5cdCAqIEBwYXJhbSBzU2VsZWN0aW9uVmFyaWFudCBTdHJpbmdpZmllZCBKU09OIG9iamVjdCBhcyByZXR1cm5lZCwgZm9yIGV4YW1wbGUsIGZyb20gZ2V0RGF0YVN1aXRlRm9ybWF0KCkgb2YgdGhlIFNtYXJ0RmlsdGVyQmFyIGNvbnRyb2xcblx0ICogQHBhcmFtIFttSW5uZXJBcHBEYXRhXSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwLiBJZiBwcm92aWRlZCwgb3BlbmluZyB0aGUgUG9wb3ZlciBpcyBkZWZlcnJlZCB1bnRpbCB0aGVcblx0ICogICAgICAgIGlubmVyIGFwcCBkYXRhIGlzIHNhdmVkIGluIGEgY29uc2lzdGVudCB3YXkuXG5cdCAqIEByZXR1cm5zIEEgUHJvbWlzZSBvYmplY3QgdG8gbW9uaXRvciB3aGVuIGFsbCBhY3Rpb25zIG9mIHRoZSBmdW5jdGlvbiBoYXZlIGJlZW4gZXhlY3V0ZWQ7IGlmIHRoZSBleGVjdXRpb24gaXMgc3VjY2Vzc2Z1bCwgdGhlXG5cdCAqICAgICAgICAgIG1vZGlmaWVkIG9UYWJsZUV2ZW50UGFyYW1ldGVycyBpcyByZXR1cm5lZDsgaWYgYW4gZXJyb3Igb2NjdXJzLCBhbiBlcnJvciBvYmplY3Qgb2YgdHlwZVxuXHQgKiAgICAgICAgICB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uTmF2RXJyb3J9IGlzIHJldHVybmVkXG5cdCAqL1xuXHRfcHJvY2Vzc0JlZm9yZVNtYXJ0TGlua1BvcG92ZXJPcGVucyhcblx0XHRvVGFibGVFdmVudFBhcmFtZXRlcnM6IG9iamVjdCxcblx0XHRzU2VsZWN0aW9uVmFyaWFudDogc3RyaW5nLFxuXHRcdG1Jbm5lckFwcERhdGE/OiBJbm5lckFwcERhdGFcblx0KTogSlF1ZXJ5LlByb21pc2U8dW5rbm93biwgdW5rbm93biwgdW5rbm93bj4ge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLnByb2Nlc3NCZWZvcmVTbWFydExpbmtQb3BvdmVyT3BlbnMob1RhYmxlRXZlbnRQYXJhbWV0ZXJzLCBzU2VsZWN0aW9uVmFyaWFudCwgbUlubmVyQXBwRGF0YSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IEFwcCBzcGVjaWZpYyBoYXNoLlxuXHQgKlxuXHQgKiBAcGFyYW0gYXBwSGFzaCBUaGUgcGF0aCBzdHJpbmdcblx0ICogQHJldHVybnMgQSBzdHJpbmcgcmVwcmVzZW50aW5nIGJhc2UgcGF0aFxuXHQgKlxuXHQgKi9cblx0YXN5bmMgZ2V0QXBwU3BlY2lmaWNIYXNoKGFwcEhhc2g6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIuX2dldEFwcFNwZWNpZmljSGFzaChhcHBIYXNoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQcm9jZXNzZXMgc2VsZWN0aW9uVmFyaWFudCBzdHJpbmcgYW5kIHJldHVybnMgYSBQcm9taXNlIG9iamVjdCAoc2VtYW50aWNBdHRyaWJ1dGVzIGFuZCBBcHBTdGF0ZUtleSkuXG5cdCAqXG5cdCAqIEBwYXJhbSBzU2VsZWN0aW9uVmFyaWFudCBTdHJpbmdpZmllZCBKU09OIG9iamVjdFxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHRvIG1vbml0b3Igd2hlbiBhbGwgYWN0aW9ucyBpbiB0aGUgZnVuY3Rpb24gaGF2ZSBiZWVuIGV4ZWN1dGVkOyBpZiB0aGUgZXhlY3V0aW9uIGlzIHN1Y2Nlc3NmdWwsIHRoZVxuXHQgKiAgICAgICAgICBzZW1hbnRpY0F0dHJpYnV0ZXMgYXMgd2VsbCBhcyB0aGUgYXBwU3RhdGVLZXkgYXJlIHJldHVybmVkOyBpZiBhbiBlcnJvciBvY2N1cnMsIGFuIGVycm9yIG9iamVjdCBvZiB0eXBlXG5cdCAqICAgICAgICAgIHtAbGluayBzYXAuZmUubmF2aWdhdGlvbi5OYXZFcnJvcn0gaXMgcmV0dXJuZWRcblx0ICogPGJyPlxuXHQgKiBAZXhhbXBsZSA8Y29kZT5cblx0ICpcblx0ICogXHRcdHZhciBvU2VsZWN0aW9uVmFyaWFudCA9IG5ldyBzYXAuZmUubmF2aWdhdGlvbi5TZWxlY3Rpb25WYXJpYW50KCk7XG5cdCAqIFx0XHRvU2VsZWN0aW9uVmFyaWFudC5hZGRTZWxlY3RPcHRpb24oXCJDb21wYW55Q29kZVwiLCBcIklcIiwgXCJFUVwiLCBcIjAwMDFcIik7XG5cdCAqIFx0XHRvU2VsZWN0aW9uVmFyaWFudC5hZGRTZWxlY3RPcHRpb24oXCJDdXN0b21lclwiLCBcIklcIiwgXCJFUVwiLCBcIkMwMDAxXCIpO1xuXHQgKiBcdFx0dmFyIHNTZWxlY3Rpb25WYXJpYW50PSBvU2VsZWN0aW9uVmFyaWFudC50b0pTT05TdHJpbmcoKTtcblx0ICpcblx0ICogXHRcdHZhciBvTmF2aWdhdGlvbkhhbmRsZXIgPSBuZXcgc2FwLmZlLm5hdmlnYXRpb24uTmF2aWdhdGlvbkhhbmRsZXIob0NvbnRyb2xsZXIpO1xuXHQgKiBcdFx0dmFyIG9Qcm9taXNlT2JqZWN0ID0gb05hdmlnYXRpb25IYW5kbGVyLl9nZXRBcHBTdGF0ZUtleUFuZFVybFBhcmFtZXRlcnMoc1NlbGVjdGlvblZhcmlhbnQpO1xuXHQgKlxuXHQgKiBcdFx0b1Byb21pc2VPYmplY3QuZG9uZShmdW5jdGlvbihvU2VtYW50aWNBdHRyaWJ1dGVzLCBzQXBwU3RhdGVLZXkpe1xuXHQgKiBcdFx0XHQvLyBoZXJlIHlvdSBjYW4gYWRkIGNvZGluZyB0aGF0IHNob3VsZCBydW4gYWZ0ZXIgYWxsIGFwcCBzdGF0ZSBhbmQgdGhlIHNlbWFudGljIGF0dHJpYnV0ZXMgaGF2ZSBiZWVuIHJldHVybmVkLlxuXHQgKiBcdFx0fSk7XG5cdCAqXG5cdCAqIFx0XHRvUHJvbWlzZU9iamVjdC5mYWlsKGZ1bmN0aW9uKG9FcnJvcil7XG5cdCAqIFx0XHRcdC8vc29tZSBlcnJvciBoYW5kbGluZ1xuXHQgKiBcdFx0fSk7XG5cdCAqXG5cdCAqIDwvY29kZT5cblx0ICovXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJvbWlzZS1mdW5jdGlvbi1hc3luY1xuXHRnZXRBcHBTdGF0ZUtleUFuZFVybFBhcmFtZXRlcnMoc1NlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyk6IEpRdWVyeS5Qcm9taXNlPHVua25vd24sIHVua25vd24sIHVua25vd24+IHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5fZ2V0QXBwU3RhdGVLZXlBbmRVcmxQYXJhbWV0ZXJzKHNTZWxlY3Rpb25WYXJpYW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyB0ZWNobmljYWwgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQHJldHVybnMgQ29udGFpbmluZyB0aGUgdGVjaG5pY2FsIHBhcmFtZXRlcnMuXG5cdCAqL1xuXHRnZXRUZWNobmljYWxQYXJhbWV0ZXJzKCk6IHN0cmluZ1tdIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5nZXRUZWNobmljYWxQYXJhbWV0ZXJzKCk7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWMgdGVjaG5pY2FsIHBhcmFtZXRlcnMuIFRlY2huaWNhbCBwYXJhbWV0ZXJzIHdpbGwgbm90IGJlIGFkZGVkIHRvIHRoZSBzZWxlY3Rpb24gdmFyaWFudCBwYXNzZWQgdG8gdGhlXG5cdCAqIGFwcGxpY2F0aW9uLlxuXHQgKiBBcyBhIGRlZmF1bHQgc2FwLXN5c3RlbSwgc2FwLXVzaGVsbC1kZWZhdWx0ZWRQYXJhbWV0ZXJOYW1lcyBhbmQgaGNwQXBwbGljYXRpb25JZCBhcmUgY29uc2lkZXJlZCBhcyB0ZWNobmljYWwgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQHBhcmFtIGFUZWNobmljYWxQYXJhbWV0ZXJzIExpc3Qgb2YgcGFyYW1ldGVyIG5hbWVzIHRvIGJlIGNvbnNpZGVyZWQgYXMgdGVjaG5pY2FsIHBhcmFtZXRlcnMuIDxjb2RlPm51bGw8L2NvZGU+IG9yXG5cdCAqICAgICAgICA8Y29kZT51bmRlZmluZWQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIHJlc2V0IHRoZSBjb21wbGV0ZSBsaXN0LlxuXHQgKi9cblx0c2V0VGVjaG5pY2FsUGFyYW1ldGVycyhhVGVjaG5pY2FsUGFyYW1ldGVyczogdW5rbm93bltdKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5zZXRUZWNobmljYWxQYXJhbWV0ZXJzKGFUZWNobmljYWxQYXJhbWV0ZXJzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBtb2RlbCB0aGF0IGlzIHVzZWQgZm9yIHZlcmlmaWNhdGlvbiBvZiBzZW5zaXRpdmUgaW5mb3JtYXRpb24uIElmIHRoZSBtb2RlbCBpcyBub3Qgc2V0LCB0aGUgdW5uYW1lZCBjb21wb25lbnQgbW9kZWwgaXMgdXNlZCBmb3IgdGhlXG5cdCAqIHZlcmlmaWNhdGlvbiBvZiBzZW5zaXRpdmUgaW5mb3JtYXRpb24uXG5cdCAqXG5cdCAqIEBwYXJhbSBvTW9kZWwgTW9kZWwgRm9yIGNoZWNraW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvblxuXHQgKi9cblx0c2V0TW9kZWwob01vZGVsOiBPRGF0YU1vZGVsKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5zZXRNb2RlbChvTW9kZWwpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoYW5nZXMgdGhlIFVSTCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgYXBwIHN0YXRlIGFuZCBzdG9yZXMgdGhlIGFwcCBzdGF0ZSBmb3IgbGF0ZXIgcmV0cmlldmFsLlxuXHQgKlxuXHQgKiBAcGFyYW0gbUlubmVyQXBwRGF0YSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwXG5cdCAqIEBwYXJhbSBbYkltbWVkaWF0ZUhhc2hSZXBsYWNlXSBJZiBzZXQgdG8gZmFsc2UsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCB1bnRpbCBzdG9yaW5nIGlzIHN1Y2Nlc3NmdWw7IGRvIG5vdFxuXHQgKiAgICAgICAgc2V0IHRvIGZhbHNlIGlmIHlvdSBjYW5ub3QgcmVhY3QgdG8gdGhlIHJlc29sdXRpb24gb2YgdGhlIFByb21pc2UsIGZvciBleGFtcGxlLCB3aGVuIGNhbGxpbmcgdGhlIGJlZm9yZUxpbmtQcmVzc2VkIGV2ZW50XG5cdCAqIEBwYXJhbSBbYlNraXBIYXNoUmVwbGFjZV0gSWYgc2V0IHRvIHRydWUsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCBpbiB0aGUgc3RvcmVJbm5lckFwcFN0YXRlLiBBbHNvIHRoZSBiSW1tZWRpYXRlSGFzaFJlcGxhY2Vcblx0ICogXHRcdCAgd2lsbCBiZSBpZ25vcmVkLlxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHRvIG1vbml0b3Igd2hlbiBhbGwgdGhlIGFjdGlvbnMgb2YgdGhlIGZ1bmN0aW9uIGhhdmUgYmVlbiBleGVjdXRlZDsgaWYgdGhlIGV4ZWN1dGlvbiBpcyBzdWNjZXNzZnVsLCB0aGVcblx0ICogICAgICAgICAgYXBwIHN0YXRlIGtleSBpcyByZXR1cm5lZDsgaWYgYW4gZXJyb3Igb2NjdXJzLCBhbiBvYmplY3Qgb2YgdHlwZSB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uTmF2RXJyb3J9IGlzXG5cdCAqICAgICAgICAgIHJldHVybmVkXG5cdCAqL1xuXHRhc3luYyBzdG9yZUlubmVyQXBwU3RhdGVBc3luYyhcblx0XHRtSW5uZXJBcHBEYXRhOiBJbm5lckFwcERhdGEsXG5cdFx0YkltbWVkaWF0ZUhhc2hSZXBsYWNlPzogYm9vbGVhbixcblx0XHRiU2tpcEhhc2hSZXBsYWNlPzogYm9vbGVhblxuXHQpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdC8vIHNhZmVseSBjb252ZXJ0aW5nIEpRdWVycnkgZGVmZXJyZWQgdG8gRVM2IHByb21pc2Vcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT5cblx0XHRcdHRoaXMub05hdkhhbmRsZXIuc3RvcmVJbm5lckFwcFN0YXRlQXN5bmMobUlubmVyQXBwRGF0YSwgYkltbWVkaWF0ZUhhc2hSZXBsYWNlLCBiU2tpcEhhc2hSZXBsYWNlKS50aGVuKHJlc29sdmUsIHJlamVjdClcblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoYW5nZXMgdGhlIFVSTCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgYXBwIHN0YXRlIGFuZCBzdG9yZXMgdGhlIGFwcCBzdGF0ZSBmb3IgbGF0ZXIgcmV0cmlldmFsLlxuXHQgKlxuXHQgKiBAcGFyYW0gbUlubmVyQXBwRGF0YSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwXG5cdCAqIEBwYXJhbSBbYkltbWVkaWF0ZUhhc2hSZXBsYWNlXSBJZiBzZXQgdG8gZmFsc2UsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCB1bnRpbCBzdG9yaW5nIGlzIHN1Y2Nlc3NmdWw7IGRvIG5vdFxuXHQgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgYXBwU3RhdGVJZCBhbmQgYSBwcm9taXNlIG9iamVjdCB0byBtb25pdG9yIHdoZW4gYWxsIHRoZSBhY3Rpb25zIG9mIHRoZSBmdW5jdGlvbiBoYXZlIGJlZW5cblx0ICogZXhlY3V0ZWQ7IFBsZWFzZSBub3RlIHRoYXQgdGhlIGFwcFN0YXRlS2V5IG1heSBiZSB1bmRlZmluZWQgb3IgZW1wdHkuXG5cdCAqL1xuXHRzdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuKG1Jbm5lckFwcERhdGE6IElubmVyQXBwRGF0YSwgYkltbWVkaWF0ZUhhc2hSZXBsYWNlOiBib29sZWFuIHwgdW5kZWZpbmVkKTogb2JqZWN0IHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5zdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuKG1Jbm5lckFwcERhdGEsIGJJbW1lZGlhdGVIYXNoUmVwbGFjZSk7XG5cdH1cblxuXHQvKipcblx0ICogQ2hhbmdlcyB0aGUgVVJMIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBzQXBwU3RhdGVLZXkuIEFzIGFuIHJlYWN0aW9uIHJvdXRlIGNoYW5nZSBldmVudCB3aWxsIGJlIHRyaWdnZXJlZC5cblx0ICpcblx0ICogQHBhcmFtIHNBcHBTdGF0ZUtleSBUaGUgbmV3IGFwcCBzdGF0ZSBrZXkuXG5cdCAqL1xuXHRyZXBsYWNlSGFzaChzQXBwU3RhdGVLZXk6IHN0cmluZyk6IHZvaWQge1xuXHRcdHRoaXMub05hdkhhbmRsZXIucmVwbGFjZUhhc2goc0FwcFN0YXRlS2V5KTtcblx0fVxuXG5cdHJlcGxhY2VJbm5lckFwcFN0YXRlS2V5KHNBcHBIYXNoOiBzdHJpbmcsIHNBcHBTdGF0ZUtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5fcmVwbGFjZUlubmVyQXBwU3RhdGVLZXkoc0FwcEhhc2gsIHNBcHBTdGF0ZUtleSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHNpbmdsZSB2YWx1ZXMgZnJvbSBTZWxlY3Rpb25WYXJpYW50IGZvciB1cmwgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQHBhcmFtIFt2U2VsZWN0aW9uVmFyaWFudF1cblx0ICogQHBhcmFtIFt2U2VsZWN0aW9uVmFyaWFudC5vVXJsUGFyYW1hdGVyc11cblx0ICogQHJldHVybnMgVGhlIHVybCBwYXJhbWV0ZXJzXG5cdCAqL1xuXHRnZXRVcmxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQodlNlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyB8IG9iamVjdCB8IHVuZGVmaW5lZCk6IHVua25vd24ge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLl9nZXRVUkxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQodlNlbGVjdGlvblZhcmlhbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNhdmUgYXBwIHN0YXRlIGFuZCByZXR1cm4gaW1tZWRpYXRlbHkgd2l0aG91dCB3YWl0aW5nIGZvciByZXNwb25zZS5cblx0ICpcblx0ICogQHBhcmFtIG9JblNlbGVjdGlvblZhcmlhbnQgSW5zdGFuY2Ugb2Ygc2FwLmZlLm5hdmlnYXRpb24uU2VsZWN0aW9uVmFyaWFudFxuXHQgKiBAcmV0dXJucyBBcHBTdGF0ZSBrZXlcblx0ICovXG5cdHNhdmVBcHBTdGF0ZVdpdGhJbW1lZGlhdGVSZXR1cm4ob0luU2VsZWN0aW9uVmFyaWFudDogU2VsZWN0aW9uVmFyaWFudCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKG9JblNlbGVjdGlvblZhcmlhbnQpIHtcblx0XHRcdGNvbnN0IHNTZWxlY3Rpb25WYXJpYW50ID0gb0luU2VsZWN0aW9uVmFyaWFudC50b0pTT05TdHJpbmcoKSwgLy8gY3JlYXRlIGFuIFNWIGZvciBhcHAgc3RhdGUgaW4gc3RyaW5nIGZvcm1hdFxuXHRcdFx0XHRvU2VsZWN0aW9uVmFyaWFudCA9IEpTT04ucGFyc2Uoc1NlbGVjdGlvblZhcmlhbnQpLCAvLyBjb252ZXJ0IHN0cmluZyBpbnRvIEpTT04gdG8gc3RvcmUgaW4gQXBwU3RhdGVcblx0XHRcdFx0b1hBcHBTdGF0ZU9iamVjdCA9IHtcblx0XHRcdFx0XHRzZWxlY3Rpb25WYXJpYW50OiBvU2VsZWN0aW9uVmFyaWFudFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRvUmV0dXJuID0gdGhpcy5vTmF2SGFuZGxlci5fc2F2ZUFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybihvWEFwcFN0YXRlT2JqZWN0KTtcblx0XHRcdHJldHVybiBvUmV0dXJuPy5hcHBTdGF0ZUtleSA/IG9SZXR1cm4uYXBwU3RhdGVLZXkgOiBcIlwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBNaXggQXR0cmlidXRlcyBhbmQgc2VsZWN0aW9uVmFyaWFudC5cblx0ICpcblx0ICogQHBhcmFtIHZTZW1hbnRpY0F0dHJpYnV0ZXMgT2JqZWN0LyhBcnJheSBvZiBPYmplY3RzKSBjb250YWluaW5nIGtleS92YWx1ZSBwYWlyc1xuXHQgKiBAcGFyYW0gc1NlbGVjdGlvblZhcmlhbnQgVGhlIHNlbGVjdGlvbiB2YXJpYW50IGluIHN0cmluZyBmb3JtYXQgYXMgcHJvdmlkZWQgYnkgdGhlIFNtYXJ0RmlsdGVyQmFyIGNvbnRyb2xcblx0ICogQHBhcmFtIGlTdXBwcmVzc2lvbkJlaGF2aW9yIEluZGljYXRlcyB3aGV0aGVyIHNlbWFudGljXG5cdCAqICAgICAgICBhdHRyaWJ1dGVzIHdpdGggc3BlY2lhbCB2YWx1ZXMgKHNlZSB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uU3VwcHJlc3Npb25CZWhhdmlvciBzdXBwcmVzc2lvbiBiZWhhdmlvcn0pIG11c3QgYmVcblx0ICogICAgICAgIHN1cHByZXNzZWQgYmVmb3JlIHRoZXkgYXJlIGNvbWJpbmVkIHdpdGggdGhlIHNlbGVjdGlvbiB2YXJpYW50OyBzZXZlcmFsXG5cdCAqICAgICAgICB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uU3VwcHJlc3Npb25CZWhhdmlvciBzdXBwcmVzc2lvbiBiZWhhdmlvcnN9IGNhbiBiZSBjb21iaW5lZCB3aXRoIHRoZSBiaXR3aXNlIE9SIG9wZXJhdG9yXG5cdCAqICAgICAgICAofClcblx0ICogQHJldHVybnMgSW5zdGFuY2Ugb2Yge0BsaW5rIHNhcC5mZS5uYXZpZ2F0aW9uLlNlbGVjdGlvblZhcmlhbnR9XG5cdCAqL1xuXHRtaXhBdHRyaWJ1dGVzQW5kU2VsZWN0aW9uVmFyaWFudChcblx0XHR2U2VtYW50aWNBdHRyaWJ1dGVzOiBvYmplY3QgfCB1bmtub3duW10sXG5cdFx0c1NlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyB8IFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50LFxuXHRcdGlTdXBwcmVzc2lvbkJlaGF2aW9yPzogbnVtYmVyXG5cdCk6IFNlbGVjdGlvblZhcmlhbnQge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLm1peEF0dHJpYnV0ZXNBbmRTZWxlY3Rpb25WYXJpYW50KHZTZW1hbnRpY0F0dHJpYnV0ZXMsIHNTZWxlY3Rpb25WYXJpYW50LCBpU3VwcHJlc3Npb25CZWhhdmlvcik7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIG1ldGhvZCBjcmVhdGVzIGEgY29udGV4dCB1cmwgYmFzZWQgb24gcHJvdmlkZWQgZGF0YS4gVGhpcyBjb250ZXh0IHVybCBjYW4gZWl0aGVyIGJlIHVzZWQgYXMuXG5cdCAqXG5cdCAqIEBwYXJhbSBzRW50aXR5U2V0TmFtZSBVc2VkIGZvciB1cmwgZGV0ZXJtaW5hdGlvblxuXHQgKiBAcGFyYW0gb01vZGVsIFRoZSBPRGF0YU1vZGVsIHVzZWQgZm9yIHVybCBkZXRlcm1pbmF0aW9uLiBJZiBvbWl0dGVkLCB0aGUgTmF2aWdhdGlvbkhhbmRsZXIgbW9kZWwgaXMgdXNlZC5cblx0ICogQHJldHVybnMgVGhlIGNvbnRleHQgdXJsIGZvciB0aGUgZ2l2ZW4gZW50aXRpZXNcblx0ICovXG5cdGNvbnN0cnVjdENvbnRleHRVcmwoc0VudGl0eVNldE5hbWU6IHN0cmluZywgb01vZGVsOiBPRGF0YU1vZGVsKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5jb25zdHJ1Y3RDb250ZXh0VXJsKHNFbnRpdHlTZXROYW1lLCBvTW9kZWwpO1xuXHR9XG5cblx0Z2V0SW50ZXJmYWNlKCk6IHRoaXMge1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBtZXRob2QgcmV0dXJucyBpQXBwU3RhdGUga2V5IGZvciB0aGUgY3VycmVudCBuYXZnYXRpb24gaGFuZGxlciBpbnN0YW5jZS5cblx0ICpcblx0ICogQHJldHVybnMgSUFwcFN0YXRlIGtleVxuXHQgKi9cblx0Z2V0SUFwcFN0YXRlS2V5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIuZ2V0SUFwcFN0YXRlS2V5KCk7XG5cdH1cbn1cbmZ1bmN0aW9uIGZuR2V0RW1wdHlPYmplY3QoKToge30ge1xuXHRyZXR1cm4ge307XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZuR2V0UHJvbWlzZSgpOiBQcm9taXNlPHt9PiB7XG5cdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xufVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcm9taXNlLWZ1bmN0aW9uLWFzeW5jXG5mdW5jdGlvbiBmbkdldEpRdWVyeVByb21pc2UoKTogSlF1ZXJ5LlByb21pc2U8dW5rbm93bj4ge1xuXHRjb25zdCBvTXlEZWZmZXJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpO1xuXHRvTXlEZWZmZXJlZC5yZXNvbHZlKHt9LCB7fSwgXCJpbml0aWFsXCIpO1xuXHRyZXR1cm4gb015RGVmZmVyZWQucHJvbWlzZSgpO1xufVxuXG5mdW5jdGlvbiBmbkdldEVtcHR5U3RyaW5nKCk6IHN0cmluZyB7XG5cdHJldHVybiBcIlwiO1xufVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25TZXJ2aWNlc01vY2sgZXh0ZW5kcyBTZXJ2aWNlRmFjdG9yeTxOYXZpZ2F0aW9uU2VydmljZVNldHRpbmdzPiB7XG5cdGluaXRQcm9taXNlOiBQcm9taXNlPHRoaXM+O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0fVxuXG5cdGdldEludGVyZmFjZSgpOiB0aGlzIHtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8vIHJldHVybiBlbXB0eSBvYmplY3Rcblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZSA9IGZuR2V0RW1wdHlPYmplY3Q7XG5cblx0c3RvcmVJbm5lckFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybiA9IGZuR2V0RW1wdHlPYmplY3Q7XG5cblx0bWl4QXR0cmlidXRlc0FuZFNlbGVjdGlvblZhcmlhbnQgPSBmbkdldEVtcHR5T2JqZWN0O1xuXG5cdC8vIHJldHVybiBwcm9taXNlXG5cdGdldEFwcFN0YXRlID0gZm5HZXRQcm9taXNlO1xuXG5cdGdldFN0YXJ0dXBBcHBTdGF0ZSA9IGZuR2V0UHJvbWlzZTtcblxuXHRwYXJzZU5hdmlnYXRpb24gPSBmbkdldEpRdWVyeVByb21pc2U7XG5cblx0Ly8gcmV0dXJuIGVtcHR5IHN0cmluZ1xuXHRjb25zdHJ1Y3RDb250ZXh0VXJsID0gZm5HZXRFbXB0eVN0cmluZztcblxuXHRyZXBsYWNlSW5uZXJBcHBTdGF0ZUtleShzQXBwSGFzaDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gc0FwcEhhc2ggPyBzQXBwSGFzaCA6IFwiXCI7XG5cdH1cblxuXHRnZXRJQXBwU3RhdGVLZXkgPSBmbkdldEVtcHR5U3RyaW5nO1xuXG5cdG5hdmlnYXRlKCk6IHZvaWQge1xuXHRcdC8vIERvbid0IGRvIGFueXRoaW5nXG5cdH1cbn1cblxuY2xhc3MgTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5IGV4dGVuZHMgU2VydmljZUZhY3Rvcnk8TmF2aWdhdGlvblNlcnZpY2VTZXR0aW5ncz4ge1xuXHRhc3luYyBjcmVhdGVJbnN0YW5jZShvU2VydmljZUNvbnRleHQ6IFNlcnZpY2VDb250ZXh0PE5hdmlnYXRpb25TZXJ2aWNlU2V0dGluZ3M+KTogUHJvbWlzZTxOYXZpZ2F0aW9uU2VydmljZT4ge1xuXHRcdGNvbnN0IG9OYXZpZ2F0aW9uU2VydmljZSA9IHNhcC51aS5yZXF1aXJlKFwic2FwL3VzaGVsbC9Db250YWluZXJcIilcblx0XHRcdD8gbmV3IE5hdmlnYXRpb25TZXJ2aWNlKG9TZXJ2aWNlQ29udGV4dClcblx0XHRcdDogbmV3IE5hdmlnYXRpb25TZXJ2aWNlc01vY2soKTtcblx0XHQvLyBXYWl0IEZvciBpbml0XG5cdFx0cmV0dXJuIG9OYXZpZ2F0aW9uU2VydmljZS5pbml0UHJvbWlzZS50aGVuKGZ1bmN0aW9uIChvU2VydmljZSkge1xuXHRcdFx0cmV0dXJuIG9TZXJ2aWNlIGFzIE5hdmlnYXRpb25TZXJ2aWNlO1xuXHRcdH0pO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE5hdmlnYXRpb25TZXJ2aWNlRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7TUFXYUEsaUJBQWlCO0lBQUE7SUFBQTtNQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUEsT0FLN0JDLElBQUksR0FBSixnQkFBYTtNQUNaLE1BQU1DLFFBQVEsR0FBRyxJQUFJLENBQUNDLFVBQVUsRUFBRTtRQUNqQ0MsVUFBVSxHQUFHRixRQUFRLElBQUlBLFFBQVEsQ0FBQ0csV0FBVztNQUU5QyxJQUFJLENBQUNDLFdBQVcsR0FBRyxJQUFJQyxpQkFBaUIsQ0FBQ0gsVUFBVSxDQUFDO01BQ3BELElBQUksQ0FBQ0UsV0FBVyxDQUFDRSxRQUFRLENBQUNKLFVBQVUsQ0FBQ0ssUUFBUSxFQUFFLENBQUM7TUFDaEQsSUFBSSxDQUFDQyxXQUFXLEdBQUdDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN6QyxDQUFDO0lBQUEsT0FFREMsSUFBSSxHQUFKLGdCQUFhO01BQ1osSUFBSSxDQUFDUCxXQUFXLENBQUNRLE9BQU8sRUFBRTtJQUMzQjs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FqQkM7SUFBQSxPQWtCQUMsUUFBUSxHQUFSLGtCQUNDQyxlQUF1QixFQUN2QkMsV0FBbUIsRUFDbkJDLHFCQUFzQyxFQUN0Q0MsYUFBNEIsRUFDNUJDLFNBQW9CLEVBQ3BCQyxnQkFJQyxFQUNEQyxRQUFpQixFQUNWO01BQ1A7TUFDQTtNQUNBO01BQ0EsSUFB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
|
|
327
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZpZ2F0aW9uU2VydmljZSIsIl9TZXJ2aWNlIiwiX2luaGVyaXRzTG9vc2UiLCJhcHBseSIsImFyZ3VtZW50cyIsIl9leHBvcnRzIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiaW5pdCIsIm9Db250ZXh0IiwiZ2V0Q29udGV4dCIsIm9Db21wb25lbnQiLCJzY29wZU9iamVjdCIsIm9OYXZIYW5kbGVyIiwiTmF2aWdhdGlvbkhhbmRsZXIiLCJzZXRNb2RlbCIsImdldE1vZGVsIiwiaW5pdFByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsImV4aXQiLCJkZXN0cm95IiwibmF2aWdhdGUiLCJzU2VtYW50aWNPYmplY3QiLCJzQWN0aW9uTmFtZSIsInZOYXZpZ2F0aW9uUGFyYW1ldGVycyIsIm9Jbm5lckFwcERhdGEiLCJmbk9uRXJyb3IiLCJvRXh0ZXJuYWxBcHBEYXRhIiwic05hdk1vZGUiLCJwYXJzZU5hdmlnYXRpb24iLCJfcHJvY2Vzc0JlZm9yZVNtYXJ0TGlua1BvcG92ZXJPcGVucyIsIm9UYWJsZUV2ZW50UGFyYW1ldGVycyIsInNTZWxlY3Rpb25WYXJpYW50IiwibUlubmVyQXBwRGF0YSIsInByb2Nlc3NCZWZvcmVTbWFydExpbmtQb3BvdmVyT3BlbnMiLCJnZXRBcHBTcGVjaWZpY0hhc2giLCJhcHBIYXNoIiwiX2dldEFwcFNwZWNpZmljSGFzaCIsImdldEFwcFN0YXRlS2V5QW5kVXJsUGFyYW1ldGVycyIsIl9nZXRBcHBTdGF0ZUtleUFuZFVybFBhcmFtZXRlcnMiLCJnZXRUZWNobmljYWxQYXJhbWV0ZXJzIiwic2V0VGVjaG5pY2FsUGFyYW1ldGVycyIsImFUZWNobmljYWxQYXJhbWV0ZXJzIiwib01vZGVsIiwic3RvcmVJbm5lckFwcFN0YXRlQXN5bmMiLCJiSW1tZWRpYXRlSGFzaFJlcGxhY2UiLCJiU2tpcEhhc2hSZXBsYWNlIiwicmVqZWN0IiwidGhlbiIsInN0b3JlSW5uZXJBcHBTdGF0ZVdpdGhJbW1lZGlhdGVSZXR1cm4iLCJyZXBsYWNlSGFzaCIsInNBcHBTdGF0ZUtleSIsInJlcGxhY2VJbm5lckFwcFN0YXRlS2V5Iiwic0FwcEhhc2giLCJfcmVwbGFjZUlubmVyQXBwU3RhdGVLZXkiLCJnZXRVcmxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQiLCJ2U2VsZWN0aW9uVmFyaWFudCIsIl9nZXRVUkxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQiLCJzYXZlQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuIiwib0luU2VsZWN0aW9uVmFyaWFudCIsInRvSlNPTlN0cmluZyIsIm9TZWxlY3Rpb25WYXJpYW50IiwiSlNPTiIsInBhcnNlIiwib1hBcHBTdGF0ZU9iamVjdCIsInNlbGVjdGlvblZhcmlhbnQiLCJvUmV0dXJuIiwiX3NhdmVBcHBTdGF0ZVdpdGhJbW1lZGlhdGVSZXR1cm4iLCJhcHBTdGF0ZUtleSIsInVuZGVmaW5lZCIsIm1peEF0dHJpYnV0ZXNBbmRTZWxlY3Rpb25WYXJpYW50IiwidlNlbWFudGljQXR0cmlidXRlcyIsImlTdXBwcmVzc2lvbkJlaGF2aW9yIiwiY29uc3RydWN0Q29udGV4dFVybCIsInNFbnRpdHlTZXROYW1lIiwiZ2V0SW50ZXJmYWNlIiwiZ2V0SUFwcFN0YXRlS2V5IiwiY2hlY2tJc1BvdGVudGlhbGx5U2Vuc2l0aXZlIiwib0RhdGEiLCJfY2hlY2tJc1BvdGVudGlhbGx5U2Vuc2l0aXZlIiwiU2VydmljZSIsImZuR2V0RW1wdHlPYmplY3QiLCJmbkdldFByb21pc2UiLCJmbkdldEpRdWVyeVByb21pc2UiLCJvTXlEZWZmZXJlZCIsImpRdWVyeSIsIkRlZmVycmVkIiwicHJvbWlzZSIsImZuR2V0RW1wdHlTdHJpbmciLCJOYXZpZ2F0aW9uU2VydmljZXNNb2NrIiwiX1NlcnZpY2VGYWN0b3J5IiwiX3RoaXMiLCJjYWxsIiwiY3JlYXRlRW1wdHlBcHBTdGF0ZSIsImdldEFwcFN0YXRlIiwiZ2V0U3RhcnR1cEFwcFN0YXRlIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIl9wcm90bzIiLCJTZXJ2aWNlRmFjdG9yeSIsIk5hdmlnYXRpb25TZXJ2aWNlRmFjdG9yeSIsIl9TZXJ2aWNlRmFjdG9yeTIiLCJfcHJvdG8zIiwiY3JlYXRlSW5zdGFuY2UiLCJvU2VydmljZUNvbnRleHQiLCJvTmF2aWdhdGlvblNlcnZpY2UiLCJzYXAiLCJ1aSIsInJlcXVpcmUiLCJvU2VydmljZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW5uZXJBcHBEYXRhIH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL05hdmlnYXRpb25IYW5kbGVyXCI7XG5pbXBvcnQgTmF2aWdhdGlvbkhhbmRsZXIgZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL05hdmlnYXRpb25IYW5kbGVyXCI7XG5pbXBvcnQgdHlwZSBTZWxlY3Rpb25WYXJpYW50IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9TZWxlY3Rpb25WYXJpYW50XCI7XG5pbXBvcnQgdHlwZSB7IFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50IH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL1NlbGVjdGlvblZhcmlhbnRcIjtcbmltcG9ydCBTZXJ2aWNlIGZyb20gXCJzYXAvdWkvY29yZS9zZXJ2aWNlL1NlcnZpY2VcIjtcbmltcG9ydCBTZXJ2aWNlRmFjdG9yeSBmcm9tIFwic2FwL3VpL2NvcmUvc2VydmljZS9TZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcbmltcG9ydCBqUXVlcnkgZnJvbSBcInNhcC91aS90aGlyZHBhcnR5L2pxdWVyeVwiO1xuaW1wb3J0IHR5cGUgeyBTZXJ2aWNlQ29udGV4dCB9IGZyb20gXCJ0eXBlcy9tZXRhbW9kZWxfdHlwZXNcIjtcblxudHlwZSBOYXZpZ2F0aW9uU2VydmljZVNldHRpbmdzID0ge307XG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvblNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlPE5hdmlnYXRpb25TZXJ2aWNlU2V0dGluZ3M+IHtcblx0aW5pdFByb21pc2UhOiBQcm9taXNlPHRoaXM+O1xuXG5cdG9OYXZIYW5kbGVyITogTmF2aWdhdGlvbkhhbmRsZXI7XG5cblx0aW5pdCgpOiB2b2lkIHtcblx0XHRjb25zdCBvQ29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuXHRcdFx0b0NvbXBvbmVudCA9IG9Db250ZXh0ICYmIG9Db250ZXh0LnNjb3BlT2JqZWN0O1xuXG5cdFx0dGhpcy5vTmF2SGFuZGxlciA9IG5ldyBOYXZpZ2F0aW9uSGFuZGxlcihvQ29tcG9uZW50KTtcblx0XHR0aGlzLm9OYXZIYW5kbGVyLnNldE1vZGVsKG9Db21wb25lbnQuZ2V0TW9kZWwoKSk7XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0fVxuXG5cdGV4aXQoKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5kZXN0cm95KCk7XG5cdH1cblxuXHQvKipcblx0ICogVHJpZ2dlcnMgYSBjcm9zcy1hcHAgbmF2aWdhdGlvbiBhZnRlciBzYXZpbmcgdGhlIGlubmVyIGFuZCB0aGUgY3Jvc3MtYXBwIHN0YXRlcy5cblx0ICogQHBhcmFtIHNTZW1hbnRpY09iamVjdCBTZW1hbnRpYyBvYmplY3Qgb2YgdGhlIHRhcmdldCBhcHBcblx0ICogQHBhcmFtIHNBY3Rpb25OYW1lIEFjdGlvbiBvZiB0aGUgdGFyZ2V0IGFwcFxuXHQgKiBAcGFyYW0gW3ZOYXZpZ2F0aW9uUGFyYW1ldGVyc10gTmF2aWdhdGlvbiBwYXJhbWV0ZXJzIGFzIGFuIG9iamVjdCB3aXRoIGtleS92YWx1ZSBwYWlycyBvciBhcyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZlxuXHQgKiAgICAgICAgc3VjaCBhbiBvYmplY3QuIElmIHBhc3NlZCBhcyBhbiBvYmplY3QsIHRoZSBwcm9wZXJ0aWVzIGFyZSBub3QgY2hlY2tlZCBhZ2FpbnN0IHRoZSA8Y29kZT5Jc1BvdGVudGlhbFNlbnNpdGl2ZTwvY29kZT4gb3Jcblx0ICogICAgICAgIDxjb2RlPk1lYXN1cmU8L2NvZGU+IHR5cGUuXG5cdCAqIEBwYXJhbSBbb0lubmVyQXBwRGF0YV0gT2JqZWN0IGZvciBzdG9yaW5nIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGFwcFxuXHQgKiBAcGFyYW0gW2ZuT25FcnJvcl0gQ2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBuYXZpZ2F0aW9uIDxicj5cblx0ICogQHBhcmFtIFtvRXh0ZXJuYWxBcHBEYXRhXSBPYmplY3QgZm9yIHN0b3JpbmcgdGhlIHN0YXRlIHdoaWNoIHdpbGwgYmUgZm9yd2FyZGVkIHRvIHRoZSB0YXJnZXQgY29tcG9uZW50LlxuXHQgKiBAcGFyYW0gb0V4dGVybmFsQXBwRGF0YS52YWx1ZVRleHRzXG5cdCAqIEBwYXJhbSBvRXh0ZXJuYWxBcHBEYXRhLnByZXNlbnRhdGlvblZhcmlhbnRcblx0ICogQHBhcmFtIG9FeHRlcm5hbEFwcERhdGEuc2VsZWN0aW9uVmFyaWFudFxuXHQgKiBAcGFyYW0gW3NOYXZNb2RlXSBBcmd1bWVudCBpcyB1c2VkIHRvIG92ZXJ3cml0ZSB0aGUgRkxQLWNvbmZpZ3VyZWQgdGFyZ2V0IGZvciBvcGVuaW5nIGEgVVJMLiBJZiB1c2VkLCBvbmx5IHRoZVxuXHQgKiAgICAgICAgPGNvZGU+ZXhwbGFjZTwvY29kZT4gb3IgPGNvZGU+aW5wbGFjZTwvY29kZT4gdmFsdWVzIGFyZSBhbGxvd2VkLiBBbnkgb3RoZXIgdmFsdWUgd2lsbCBsZWFkIHRvIGFuIGV4Y2VwdGlvblxuXHQgKiAgICAgICAgPGNvZGU+TmF2aWdhdGlvbkhhbmRsZXIuSU5WQUxJRF9OQVZfTU9ERTwvY29kZT4uXG5cdCAqL1xuXHRuYXZpZ2F0ZShcblx0XHRzU2VtYW50aWNPYmplY3Q6IHN0cmluZyxcblx0XHRzQWN0aW9uTmFtZTogc3RyaW5nLFxuXHRcdHZOYXZpZ2F0aW9uUGFyYW1ldGVyczogc3RyaW5nIHwgb2JqZWN0LFxuXHRcdG9Jbm5lckFwcERhdGE/OiBJbm5lckFwcERhdGEsXG5cdFx0Zm5PbkVycm9yPzogRnVuY3Rpb24sXG5cdFx0b0V4dGVybmFsQXBwRGF0YT86IHtcblx0XHRcdHZhbHVlVGV4dHM/OiBvYmplY3QgfCB1bmRlZmluZWQ7XG5cdFx0XHRwcmVzZW50YXRpb25WYXJpYW50Pzogb2JqZWN0IHwgdW5kZWZpbmVkO1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudD86IG9iamVjdCB8IHVuZGVmaW5lZDtcblx0XHR9LFxuXHRcdHNOYXZNb2RlPzogc3RyaW5nXG5cdCk6IHZvaWQge1xuXHRcdC8vIFRPRE86IE5hdmlnYXRpb24gSGFuZGxlciBkb2VzIG5vdCBoYW5kbGUgbmF2aWdhdGlvbiB3aXRob3V0IGEgY29udGV4dFxuXHRcdC8vIGJ1dCBpbiB2NCBEYXRhRmllbGRGb3JJQk4gd2l0aCByZXF1aXJlc0NvbnRleHQgZmFsc2UgY2FuIHRyaWdnZXIgYSBuYXZpZ2F0aW9uIHdpdGhvdXQgYW55IGNvbnRleHRcblx0XHQvLyBUaGlzIHNob3VsZCBiZSBoYW5kbGVkXG5cdFx0dGhpcy5vTmF2SGFuZGxlci5uYXZpZ2F0ZShcblx0XHRcdHNTZW1hbnRpY09iamVjdCxcblx0XHRcdHNBY3Rpb25OYW1lLFxuXHRcdFx0dk5hdmlnYXRpb25QYXJhbWV0ZXJzLFxuXHRcdFx0b0lubmVyQXBwRGF0YSxcblx0XHRcdGZuT25FcnJvcixcblx0XHRcdG9FeHRlcm5hbEFwcERhdGEsXG5cdFx0XHRzTmF2TW9kZVxuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIHRoZSBpbmNvbWluZyBVUkwgYW5kIHJldHVybnMgYSBQcm9taXNlLlxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHdoaWNoIHJldHVybnMgdGhlXG5cdCAqIGV4dHJhY3RlZCBhcHAgc3RhdGUsIHRoZSBzdGFydHVwIHBhcmFtZXRlcnMsIGFuZCB0aGUgdHlwZSBvZiBuYXZpZ2F0aW9uIHdoZW4gZXhlY3V0aW9uIGlzIHN1Y2Nlc3NmdWwsXG5cdCAqL1xuXHRwYXJzZU5hdmlnYXRpb24oKTogalF1ZXJ5LlByb21pc2U8dW5rbm93bltdPiB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIucGFyc2VOYXZpZ2F0aW9uKCkgYXMgalF1ZXJ5LlByb21pc2U8dW5rbm93bltdPjtcblx0fVxuXG5cdC8qKlxuXHQgKiBQcm9jZXNzZXMgbmF2aWdhdGlvbi1yZWxhdGVkIHRhc2tzIHJlbGF0ZWQgdG8gYmVmb3JlUG9wb3Zlck9wZW5zIGV2ZW50IGhhbmRsaW5nIGZvciB0aGUgU21hcnRMaW5rIGNvbnRyb2wgYW5kIHJldHVybnMgYSBQcm9taXNlIG9iamVjdC5cblx0ICogQHBhcmFtIG9UYWJsZUV2ZW50UGFyYW1ldGVycyBUaGUgcGFyYW1ldGVycyBtYWRlIGF2YWlsYWJsZSBieSB0aGUgU21hcnRUYWJsZSBjb250cm9sIHdoZW4gdGhlIFNtYXJ0TGluayBjb250cm9sIGhhcyBiZWVuIGNsaWNrZWQsXG5cdCAqICAgICAgICBhbiBpbnN0YW5jZSBvZiBhIFBvcE92ZXIgb2JqZWN0XG5cdCAqIEBwYXJhbSBzU2VsZWN0aW9uVmFyaWFudCBTdHJpbmdpZmllZCBKU09OIG9iamVjdCBhcyByZXR1cm5lZCwgZm9yIGV4YW1wbGUsIGZyb20gZ2V0RGF0YVN1aXRlRm9ybWF0KCkgb2YgdGhlIFNtYXJ0RmlsdGVyQmFyIGNvbnRyb2xcblx0ICogQHBhcmFtIFttSW5uZXJBcHBEYXRhXSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwLiBJZiBwcm92aWRlZCwgb3BlbmluZyB0aGUgUG9wb3ZlciBpcyBkZWZlcnJlZCB1bnRpbCB0aGVcblx0ICogICAgICAgIGlubmVyIGFwcCBkYXRhIGlzIHNhdmVkIGluIGEgY29uc2lzdGVudCB3YXkuXG5cdCAqIEByZXR1cm5zIEEgUHJvbWlzZSBvYmplY3QgdG8gbW9uaXRvciB3aGVuIGFsbCBhY3Rpb25zIG9mIHRoZSBmdW5jdGlvbiBoYXZlIGJlZW4gZXhlY3V0ZWQ7IGlmIHRoZSBleGVjdXRpb24gaXMgc3VjY2Vzc2Z1bCwgdGhlXG5cdCAqICAgICAgICAgIG1vZGlmaWVkIG9UYWJsZUV2ZW50UGFyYW1ldGVycyBpcyByZXR1cm5lZDsgaWYgYW4gZXJyb3Igb2NjdXJzLCBhbiBlcnJvciBvYmplY3Qgb2YgdHlwZVxuXHQgKiAgICAgICAgICB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uTmF2RXJyb3J9IGlzIHJldHVybmVkXG5cdCAqL1xuXHRfcHJvY2Vzc0JlZm9yZVNtYXJ0TGlua1BvcG92ZXJPcGVucyhcblx0XHRvVGFibGVFdmVudFBhcmFtZXRlcnM6IG9iamVjdCxcblx0XHRzU2VsZWN0aW9uVmFyaWFudDogc3RyaW5nLFxuXHRcdG1Jbm5lckFwcERhdGE/OiBJbm5lckFwcERhdGFcblx0KTogSlF1ZXJ5LlByb21pc2U8dW5rbm93biwgdW5rbm93biwgdW5rbm93bj4ge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLnByb2Nlc3NCZWZvcmVTbWFydExpbmtQb3BvdmVyT3BlbnMob1RhYmxlRXZlbnRQYXJhbWV0ZXJzLCBzU2VsZWN0aW9uVmFyaWFudCwgbUlubmVyQXBwRGF0YSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IEFwcCBzcGVjaWZpYyBoYXNoLlxuXHQgKiBAcGFyYW0gYXBwSGFzaCBUaGUgcGF0aCBzdHJpbmdcblx0ICogQHJldHVybnMgQSBzdHJpbmcgcmVwcmVzZW50aW5nIGJhc2UgcGF0aFxuXHQgKi9cblx0YXN5bmMgZ2V0QXBwU3BlY2lmaWNIYXNoKGFwcEhhc2g6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIuX2dldEFwcFNwZWNpZmljSGFzaChhcHBIYXNoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQcm9jZXNzZXMgc2VsZWN0aW9uVmFyaWFudCBzdHJpbmcgYW5kIHJldHVybnMgYSBQcm9taXNlIG9iamVjdCAoc2VtYW50aWNBdHRyaWJ1dGVzIGFuZCBBcHBTdGF0ZUtleSkuXG5cdCAqIEBwYXJhbSBzU2VsZWN0aW9uVmFyaWFudCBTdHJpbmdpZmllZCBKU09OIG9iamVjdFxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHRvIG1vbml0b3Igd2hlbiBhbGwgYWN0aW9ucyBpbiB0aGUgZnVuY3Rpb24gaGF2ZSBiZWVuIGV4ZWN1dGVkOyBpZiB0aGUgZXhlY3V0aW9uIGlzIHN1Y2Nlc3NmdWwsIHRoZVxuXHQgKiAgICAgICAgICBzZW1hbnRpY0F0dHJpYnV0ZXMgYXMgd2VsbCBhcyB0aGUgYXBwU3RhdGVLZXkgYXJlIHJldHVybmVkOyBpZiBhbiBlcnJvciBvY2N1cnMsIGFuIGVycm9yIG9iamVjdCBvZiB0eXBlXG5cdCAqICAgICAgICAgIHtAbGluayBzYXAuZmUubmF2aWdhdGlvbi5OYXZFcnJvcn0gaXMgcmV0dXJuZWRcblx0ICogPGJyPlxuXHQgKiBAZXhhbXBsZSA8Y29kZT5cblx0ICpcblx0ICogXHRcdHZhciBvU2VsZWN0aW9uVmFyaWFudCA9IG5ldyBzYXAuZmUubmF2aWdhdGlvbi5TZWxlY3Rpb25WYXJpYW50KCk7XG5cdCAqIFx0XHRvU2VsZWN0aW9uVmFyaWFudC5hZGRTZWxlY3RPcHRpb24oXCJDb21wYW55Q29kZVwiLCBcIklcIiwgXCJFUVwiLCBcIjAwMDFcIik7XG5cdCAqIFx0XHRvU2VsZWN0aW9uVmFyaWFudC5hZGRTZWxlY3RPcHRpb24oXCJDdXN0b21lclwiLCBcIklcIiwgXCJFUVwiLCBcIkMwMDAxXCIpO1xuXHQgKiBcdFx0dmFyIHNTZWxlY3Rpb25WYXJpYW50PSBvU2VsZWN0aW9uVmFyaWFudC50b0pTT05TdHJpbmcoKTtcblx0ICpcblx0ICogXHRcdHZhciBvTmF2aWdhdGlvbkhhbmRsZXIgPSBuZXcgc2FwLmZlLm5hdmlnYXRpb24uTmF2aWdhdGlvbkhhbmRsZXIob0NvbnRyb2xsZXIpO1xuXHQgKiBcdFx0dmFyIG9Qcm9taXNlT2JqZWN0ID0gb05hdmlnYXRpb25IYW5kbGVyLl9nZXRBcHBTdGF0ZUtleUFuZFVybFBhcmFtZXRlcnMoc1NlbGVjdGlvblZhcmlhbnQpO1xuXHQgKlxuXHQgKiBcdFx0b1Byb21pc2VPYmplY3QuZG9uZShmdW5jdGlvbihvU2VtYW50aWNBdHRyaWJ1dGVzLCBzQXBwU3RhdGVLZXkpe1xuXHQgKiBcdFx0XHQvLyBoZXJlIHlvdSBjYW4gYWRkIGNvZGluZyB0aGF0IHNob3VsZCBydW4gYWZ0ZXIgYWxsIGFwcCBzdGF0ZSBhbmQgdGhlIHNlbWFudGljIGF0dHJpYnV0ZXMgaGF2ZSBiZWVuIHJldHVybmVkLlxuXHQgKiBcdFx0fSk7XG5cdCAqXG5cdCAqIFx0XHRvUHJvbWlzZU9iamVjdC5mYWlsKGZ1bmN0aW9uKG9FcnJvcil7XG5cdCAqIFx0XHRcdC8vc29tZSBlcnJvciBoYW5kbGluZ1xuXHQgKiBcdFx0fSk7XG5cdCAqXG5cdCAqIDwvY29kZT5cblx0ICovXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJvbWlzZS1mdW5jdGlvbi1hc3luY1xuXHRnZXRBcHBTdGF0ZUtleUFuZFVybFBhcmFtZXRlcnMoc1NlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyk6IEpRdWVyeS5Qcm9taXNlPHVua25vd24sIHVua25vd24sIHVua25vd24+IHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5fZ2V0QXBwU3RhdGVLZXlBbmRVcmxQYXJhbWV0ZXJzKHNTZWxlY3Rpb25WYXJpYW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyB0ZWNobmljYWwgcGFyYW1ldGVycy5cblx0ICogQHJldHVybnMgQ29udGFpbmluZyB0aGUgdGVjaG5pY2FsIHBhcmFtZXRlcnMuXG5cdCAqL1xuXHRnZXRUZWNobmljYWxQYXJhbWV0ZXJzKCk6IHN0cmluZ1tdIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5nZXRUZWNobmljYWxQYXJhbWV0ZXJzKCk7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWMgdGVjaG5pY2FsIHBhcmFtZXRlcnMuIFRlY2huaWNhbCBwYXJhbWV0ZXJzIHdpbGwgbm90IGJlIGFkZGVkIHRvIHRoZSBzZWxlY3Rpb24gdmFyaWFudCBwYXNzZWQgdG8gdGhlXG5cdCAqIGFwcGxpY2F0aW9uLlxuXHQgKiBBcyBhIGRlZmF1bHQgc2FwLXN5c3RlbSwgc2FwLXVzaGVsbC1kZWZhdWx0ZWRQYXJhbWV0ZXJOYW1lcyBhbmQgaGNwQXBwbGljYXRpb25JZCBhcmUgY29uc2lkZXJlZCBhcyB0ZWNobmljYWwgcGFyYW1ldGVycy5cblx0ICogQHBhcmFtIGFUZWNobmljYWxQYXJhbWV0ZXJzIExpc3Qgb2YgcGFyYW1ldGVyIG5hbWVzIHRvIGJlIGNvbnNpZGVyZWQgYXMgdGVjaG5pY2FsIHBhcmFtZXRlcnMuIDxjb2RlPm51bGw8L2NvZGU+IG9yXG5cdCAqICAgICAgICA8Y29kZT51bmRlZmluZWQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIHJlc2V0IHRoZSBjb21wbGV0ZSBsaXN0LlxuXHQgKi9cblx0c2V0VGVjaG5pY2FsUGFyYW1ldGVycyhhVGVjaG5pY2FsUGFyYW1ldGVyczogdW5rbm93bltdKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5zZXRUZWNobmljYWxQYXJhbWV0ZXJzKGFUZWNobmljYWxQYXJhbWV0ZXJzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBtb2RlbCB0aGF0IGlzIHVzZWQgZm9yIHZlcmlmaWNhdGlvbiBvZiBzZW5zaXRpdmUgaW5mb3JtYXRpb24uIElmIHRoZSBtb2RlbCBpcyBub3Qgc2V0LCB0aGUgdW5uYW1lZCBjb21wb25lbnQgbW9kZWwgaXMgdXNlZCBmb3IgdGhlXG5cdCAqIHZlcmlmaWNhdGlvbiBvZiBzZW5zaXRpdmUgaW5mb3JtYXRpb24uXG5cdCAqIEBwYXJhbSBvTW9kZWwgTW9kZWwgRm9yIGNoZWNraW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvblxuXHQgKi9cblx0c2V0TW9kZWwob01vZGVsOiBPRGF0YU1vZGVsKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5zZXRNb2RlbChvTW9kZWwpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoYW5nZXMgdGhlIFVSTCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgYXBwIHN0YXRlIGFuZCBzdG9yZXMgdGhlIGFwcCBzdGF0ZSBmb3IgbGF0ZXIgcmV0cmlldmFsLlxuXHQgKiBAcGFyYW0gbUlubmVyQXBwRGF0YSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwXG5cdCAqIEBwYXJhbSBbYkltbWVkaWF0ZUhhc2hSZXBsYWNlXSBJZiBzZXQgdG8gZmFsc2UsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCB1bnRpbCBzdG9yaW5nIGlzIHN1Y2Nlc3NmdWw7IGRvIG5vdFxuXHQgKiAgICAgICAgc2V0IHRvIGZhbHNlIGlmIHlvdSBjYW5ub3QgcmVhY3QgdG8gdGhlIHJlc29sdXRpb24gb2YgdGhlIFByb21pc2UsIGZvciBleGFtcGxlLCB3aGVuIGNhbGxpbmcgdGhlIGJlZm9yZUxpbmtQcmVzc2VkIGV2ZW50XG5cdCAqIEBwYXJhbSBbYlNraXBIYXNoUmVwbGFjZV0gSWYgc2V0IHRvIHRydWUsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCBpbiB0aGUgc3RvcmVJbm5lckFwcFN0YXRlLiBBbHNvIHRoZSBiSW1tZWRpYXRlSGFzaFJlcGxhY2Vcblx0ICogXHRcdCAgd2lsbCBiZSBpZ25vcmVkLlxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHRvIG1vbml0b3Igd2hlbiBhbGwgdGhlIGFjdGlvbnMgb2YgdGhlIGZ1bmN0aW9uIGhhdmUgYmVlbiBleGVjdXRlZDsgaWYgdGhlIGV4ZWN1dGlvbiBpcyBzdWNjZXNzZnVsLCB0aGVcblx0ICogICAgICAgICAgYXBwIHN0YXRlIGtleSBpcyByZXR1cm5lZDsgaWYgYW4gZXJyb3Igb2NjdXJzLCBhbiBvYmplY3Qgb2YgdHlwZSB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uTmF2RXJyb3J9IGlzXG5cdCAqICAgICAgICAgIHJldHVybmVkXG5cdCAqL1xuXHRhc3luYyBzdG9yZUlubmVyQXBwU3RhdGVBc3luYyhcblx0XHRtSW5uZXJBcHBEYXRhOiBJbm5lckFwcERhdGEsXG5cdFx0YkltbWVkaWF0ZUhhc2hSZXBsYWNlPzogYm9vbGVhbixcblx0XHRiU2tpcEhhc2hSZXBsYWNlPzogYm9vbGVhblxuXHQpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdC8vIHNhZmVseSBjb252ZXJ0aW5nIEpRdWVycnkgZGVmZXJyZWQgdG8gRVM2IHByb21pc2Vcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT5cblx0XHRcdHRoaXMub05hdkhhbmRsZXIuc3RvcmVJbm5lckFwcFN0YXRlQXN5bmMobUlubmVyQXBwRGF0YSwgYkltbWVkaWF0ZUhhc2hSZXBsYWNlLCBiU2tpcEhhc2hSZXBsYWNlKS50aGVuKHJlc29sdmUsIHJlamVjdClcblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoYW5nZXMgdGhlIFVSTCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgYXBwIHN0YXRlIGFuZCBzdG9yZXMgdGhlIGFwcCBzdGF0ZSBmb3IgbGF0ZXIgcmV0cmlldmFsLlxuXHQgKiBAcGFyYW0gbUlubmVyQXBwRGF0YSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwXG5cdCAqIEBwYXJhbSBbYkltbWVkaWF0ZUhhc2hSZXBsYWNlXSBJZiBzZXQgdG8gZmFsc2UsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCB1bnRpbCBzdG9yaW5nIGlzIHN1Y2Nlc3NmdWw7IGRvIG5vdFxuXHQgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgYXBwU3RhdGVJZCBhbmQgYSBwcm9taXNlIG9iamVjdCB0byBtb25pdG9yIHdoZW4gYWxsIHRoZSBhY3Rpb25zIG9mIHRoZSBmdW5jdGlvbiBoYXZlIGJlZW5cblx0ICogZXhlY3V0ZWQ7IFBsZWFzZSBub3RlIHRoYXQgdGhlIGFwcFN0YXRlS2V5IG1heSBiZSB1bmRlZmluZWQgb3IgZW1wdHkuXG5cdCAqL1xuXHRzdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuKG1Jbm5lckFwcERhdGE6IElubmVyQXBwRGF0YSwgYkltbWVkaWF0ZUhhc2hSZXBsYWNlOiBib29sZWFuIHwgdW5kZWZpbmVkKTogb2JqZWN0IHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5zdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuKG1Jbm5lckFwcERhdGEsIGJJbW1lZGlhdGVIYXNoUmVwbGFjZSk7XG5cdH1cblxuXHQvKipcblx0ICogQ2hhbmdlcyB0aGUgVVJMIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBzQXBwU3RhdGVLZXkuIEFzIGFuIHJlYWN0aW9uIHJvdXRlIGNoYW5nZSBldmVudCB3aWxsIGJlIHRyaWdnZXJlZC5cblx0ICogQHBhcmFtIHNBcHBTdGF0ZUtleSBUaGUgbmV3IGFwcCBzdGF0ZSBrZXkuXG5cdCAqL1xuXHRyZXBsYWNlSGFzaChzQXBwU3RhdGVLZXk6IHN0cmluZyk6IHZvaWQge1xuXHRcdHRoaXMub05hdkhhbmRsZXIucmVwbGFjZUhhc2goc0FwcFN0YXRlS2V5KTtcblx0fVxuXG5cdHJlcGxhY2VJbm5lckFwcFN0YXRlS2V5KHNBcHBIYXNoOiBzdHJpbmcsIHNBcHBTdGF0ZUtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5fcmVwbGFjZUlubmVyQXBwU3RhdGVLZXkoc0FwcEhhc2gsIHNBcHBTdGF0ZUtleSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHNpbmdsZSB2YWx1ZXMgZnJvbSBTZWxlY3Rpb25WYXJpYW50IGZvciB1cmwgcGFyYW1ldGVycy5cblx0ICogQHBhcmFtIFt2U2VsZWN0aW9uVmFyaWFudF1cblx0ICogQHBhcmFtIFt2U2VsZWN0aW9uVmFyaWFudC5vVXJsUGFyYW1hdGVyc11cblx0ICogQHJldHVybnMgVGhlIHVybCBwYXJhbWV0ZXJzXG5cdCAqL1xuXHRnZXRVcmxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQodlNlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyB8IG9iamVjdCB8IHVuZGVmaW5lZCk6IHVua25vd24ge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLl9nZXRVUkxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQodlNlbGVjdGlvblZhcmlhbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNhdmUgYXBwIHN0YXRlIGFuZCByZXR1cm4gaW1tZWRpYXRlbHkgd2l0aG91dCB3YWl0aW5nIGZvciByZXNwb25zZS5cblx0ICogQHBhcmFtIG9JblNlbGVjdGlvblZhcmlhbnQgSW5zdGFuY2Ugb2Ygc2FwLmZlLm5hdmlnYXRpb24uU2VsZWN0aW9uVmFyaWFudFxuXHQgKiBAcmV0dXJucyBBcHBTdGF0ZSBrZXlcblx0ICovXG5cdHNhdmVBcHBTdGF0ZVdpdGhJbW1lZGlhdGVSZXR1cm4ob0luU2VsZWN0aW9uVmFyaWFudDogU2VsZWN0aW9uVmFyaWFudCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKG9JblNlbGVjdGlvblZhcmlhbnQpIHtcblx0XHRcdGNvbnN0IHNTZWxlY3Rpb25WYXJpYW50ID0gb0luU2VsZWN0aW9uVmFyaWFudC50b0pTT05TdHJpbmcoKSwgLy8gY3JlYXRlIGFuIFNWIGZvciBhcHAgc3RhdGUgaW4gc3RyaW5nIGZvcm1hdFxuXHRcdFx0XHRvU2VsZWN0aW9uVmFyaWFudCA9IEpTT04ucGFyc2Uoc1NlbGVjdGlvblZhcmlhbnQpLCAvLyBjb252ZXJ0IHN0cmluZyBpbnRvIEpTT04gdG8gc3RvcmUgaW4gQXBwU3RhdGVcblx0XHRcdFx0b1hBcHBTdGF0ZU9iamVjdCA9IHtcblx0XHRcdFx0XHRzZWxlY3Rpb25WYXJpYW50OiBvU2VsZWN0aW9uVmFyaWFudFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRvUmV0dXJuID0gdGhpcy5vTmF2SGFuZGxlci5fc2F2ZUFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybihvWEFwcFN0YXRlT2JqZWN0KTtcblx0XHRcdHJldHVybiBvUmV0dXJuPy5hcHBTdGF0ZUtleSA/IG9SZXR1cm4uYXBwU3RhdGVLZXkgOiBcIlwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBNaXggQXR0cmlidXRlcyBhbmQgc2VsZWN0aW9uVmFyaWFudC5cblx0ICogQHBhcmFtIHZTZW1hbnRpY0F0dHJpYnV0ZXMgT2JqZWN0LyhBcnJheSBvZiBPYmplY3RzKSBjb250YWluaW5nIGtleS92YWx1ZSBwYWlyc1xuXHQgKiBAcGFyYW0gc1NlbGVjdGlvblZhcmlhbnQgVGhlIHNlbGVjdGlvbiB2YXJpYW50IGluIHN0cmluZyBmb3JtYXQgYXMgcHJvdmlkZWQgYnkgdGhlIFNtYXJ0RmlsdGVyQmFyIGNvbnRyb2xcblx0ICogQHBhcmFtIGlTdXBwcmVzc2lvbkJlaGF2aW9yIEluZGljYXRlcyB3aGV0aGVyIHNlbWFudGljXG5cdCAqICAgICAgICBhdHRyaWJ1dGVzIHdpdGggc3BlY2lhbCB2YWx1ZXMgKHNlZSB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uU3VwcHJlc3Npb25CZWhhdmlvciBzdXBwcmVzc2lvbiBiZWhhdmlvcn0pIG11c3QgYmVcblx0ICogICAgICAgIHN1cHByZXNzZWQgYmVmb3JlIHRoZXkgYXJlIGNvbWJpbmVkIHdpdGggdGhlIHNlbGVjdGlvbiB2YXJpYW50OyBzZXZlcmFsXG5cdCAqICAgICAgICB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uU3VwcHJlc3Npb25CZWhhdmlvciBzdXBwcmVzc2lvbiBiZWhhdmlvcnN9IGNhbiBiZSBjb21iaW5lZCB3aXRoIHRoZSBiaXR3aXNlIE9SIG9wZXJhdG9yXG5cdCAqICAgICAgICAofClcblx0ICogQHJldHVybnMgSW5zdGFuY2Ugb2Yge0BsaW5rIHNhcC5mZS5uYXZpZ2F0aW9uLlNlbGVjdGlvblZhcmlhbnR9XG5cdCAqL1xuXHRtaXhBdHRyaWJ1dGVzQW5kU2VsZWN0aW9uVmFyaWFudChcblx0XHR2U2VtYW50aWNBdHRyaWJ1dGVzOiBvYmplY3QgfCB1bmtub3duW10sXG5cdFx0c1NlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyB8IFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50LFxuXHRcdGlTdXBwcmVzc2lvbkJlaGF2aW9yPzogbnVtYmVyXG5cdCk6IFNlbGVjdGlvblZhcmlhbnQge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLm1peEF0dHJpYnV0ZXNBbmRTZWxlY3Rpb25WYXJpYW50KHZTZW1hbnRpY0F0dHJpYnV0ZXMsIHNTZWxlY3Rpb25WYXJpYW50LCBpU3VwcHJlc3Npb25CZWhhdmlvcik7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIG1ldGhvZCBjcmVhdGVzIGEgY29udGV4dCB1cmwgYmFzZWQgb24gcHJvdmlkZWQgZGF0YS4gVGhpcyBjb250ZXh0IHVybCBjYW4gZWl0aGVyIGJlIHVzZWQgYXMuXG5cdCAqIEBwYXJhbSBzRW50aXR5U2V0TmFtZSBVc2VkIGZvciB1cmwgZGV0ZXJtaW5hdGlvblxuXHQgKiBAcGFyYW0gb01vZGVsIFRoZSBPRGF0YU1vZGVsIHVzZWQgZm9yIHVybCBkZXRlcm1pbmF0aW9uLiBJZiBvbWl0dGVkLCB0aGUgTmF2aWdhdGlvbkhhbmRsZXIgbW9kZWwgaXMgdXNlZC5cblx0ICogQHJldHVybnMgVGhlIGNvbnRleHQgdXJsIGZvciB0aGUgZ2l2ZW4gZW50aXRpZXNcblx0ICovXG5cdGNvbnN0cnVjdENvbnRleHRVcmwoc0VudGl0eVNldE5hbWU6IHN0cmluZywgb01vZGVsOiBPRGF0YU1vZGVsKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5jb25zdHJ1Y3RDb250ZXh0VXJsKHNFbnRpdHlTZXROYW1lLCBvTW9kZWwpO1xuXHR9XG5cblx0Z2V0SW50ZXJmYWNlKCk6IHRoaXMge1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBtZXRob2QgcmV0dXJucyBpQXBwU3RhdGUga2V5IGZvciB0aGUgY3VycmVudCBuYXZnYXRpb24gaGFuZGxlciBpbnN0YW5jZS5cblx0ICogQHJldHVybnMgSUFwcFN0YXRlIGtleVxuXHQgKi9cblx0Z2V0SUFwcFN0YXRlS2V5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIuZ2V0SUFwcFN0YXRlS2V5KCk7XG5cdH1cblxuXHRjaGVja0lzUG90ZW50aWFsbHlTZW5zaXRpdmUob0RhdGE6IE9iamVjdCk6IE9iamVjdCB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIuX2NoZWNrSXNQb3RlbnRpYWxseVNlbnNpdGl2ZShvRGF0YSk7XG5cdH1cbn1cbmZ1bmN0aW9uIGZuR2V0RW1wdHlPYmplY3QoKToge30ge1xuXHRyZXR1cm4ge307XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZuR2V0UHJvbWlzZSgpOiBQcm9taXNlPHt9PiB7XG5cdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xufVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcm9taXNlLWZ1bmN0aW9uLWFzeW5jXG5mdW5jdGlvbiBmbkdldEpRdWVyeVByb21pc2UoKTogSlF1ZXJ5LlByb21pc2U8dW5rbm93bj4ge1xuXHRjb25zdCBvTXlEZWZmZXJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpO1xuXHRvTXlEZWZmZXJlZC5yZXNvbHZlKHt9LCB7fSwgXCJpbml0aWFsXCIpO1xuXHRyZXR1cm4gb015RGVmZmVyZWQucHJvbWlzZSgpO1xufVxuXG5mdW5jdGlvbiBmbkdldEVtcHR5U3RyaW5nKCk6IHN0cmluZyB7XG5cdHJldHVybiBcIlwiO1xufVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25TZXJ2aWNlc01vY2sgZXh0ZW5kcyBTZXJ2aWNlRmFjdG9yeTxOYXZpZ2F0aW9uU2VydmljZVNldHRpbmdzPiB7XG5cdGluaXRQcm9taXNlOiBQcm9taXNlPHRoaXM+O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0fVxuXG5cdGdldEludGVyZmFjZSgpOiB0aGlzIHtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8vIHJldHVybiBlbXB0eSBvYmplY3Rcblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZSA9IGZuR2V0RW1wdHlPYmplY3Q7XG5cblx0c3RvcmVJbm5lckFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybiA9IGZuR2V0RW1wdHlPYmplY3Q7XG5cblx0bWl4QXR0cmlidXRlc0FuZFNlbGVjdGlvblZhcmlhbnQgPSBmbkdldEVtcHR5T2JqZWN0O1xuXG5cdC8vIHJldHVybiBwcm9taXNlXG5cdGdldEFwcFN0YXRlID0gZm5HZXRQcm9taXNlO1xuXG5cdGdldFN0YXJ0dXBBcHBTdGF0ZSA9IGZuR2V0UHJvbWlzZTtcblxuXHRwYXJzZU5hdmlnYXRpb24gPSBmbkdldEpRdWVyeVByb21pc2U7XG5cblx0Ly8gcmV0dXJuIGVtcHR5IHN0cmluZ1xuXHRjb25zdHJ1Y3RDb250ZXh0VXJsID0gZm5HZXRFbXB0eVN0cmluZztcblxuXHRyZXBsYWNlSW5uZXJBcHBTdGF0ZUtleShzQXBwSGFzaDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gc0FwcEhhc2ggPyBzQXBwSGFzaCA6IFwiXCI7XG5cdH1cblxuXHRnZXRJQXBwU3RhdGVLZXkgPSBmbkdldEVtcHR5U3RyaW5nO1xuXG5cdG5hdmlnYXRlKCk6IHZvaWQge1xuXHRcdC8vIERvbid0IGRvIGFueXRoaW5nXG5cdH1cbn1cblxuY2xhc3MgTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5IGV4dGVuZHMgU2VydmljZUZhY3Rvcnk8TmF2aWdhdGlvblNlcnZpY2VTZXR0aW5ncz4ge1xuXHRhc3luYyBjcmVhdGVJbnN0YW5jZShvU2VydmljZUNvbnRleHQ6IFNlcnZpY2VDb250ZXh0PE5hdmlnYXRpb25TZXJ2aWNlU2V0dGluZ3M+KTogUHJvbWlzZTxOYXZpZ2F0aW9uU2VydmljZT4ge1xuXHRcdGNvbnN0IG9OYXZpZ2F0aW9uU2VydmljZSA9IHNhcC51aS5yZXF1aXJlKFwic2FwL3VzaGVsbC9Db250YWluZXJcIilcblx0XHRcdD8gbmV3IE5hdmlnYXRpb25TZXJ2aWNlKG9TZXJ2aWNlQ29udGV4dClcblx0XHRcdDogbmV3IE5hdmlnYXRpb25TZXJ2aWNlc01vY2soKTtcblx0XHQvLyBXYWl0IEZvciBpbml0XG5cdFx0cmV0dXJuIG9OYXZpZ2F0aW9uU2VydmljZS5pbml0UHJvbWlzZS50aGVuKGZ1bmN0aW9uIChvU2VydmljZSkge1xuXHRcdFx0cmV0dXJuIG9TZXJ2aWNlIGFzIE5hdmlnYXRpb25TZXJ2aWNlO1xuXHRcdH0pO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE5hdmlnYXRpb25TZXJ2aWNlRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7TUFXYUEsaUJBQWlCLDBCQUFBQyxRQUFBO0lBQUFDLGNBQUEsQ0FBQUYsaUJBQUEsRUFBQUMsUUFBQTtJQUFBLFNBQUFELGtCQUFBO01BQUEsT0FBQUMsUUFBQSxDQUFBRSxLQUFBLE9BQUFDLFNBQUE7SUFBQTtJQUFBQyxRQUFBLENBQUFMLGlCQUFBLEdBQUFBLGlCQUFBO0lBQUEsSUFBQU0sTUFBQSxHQUFBTixpQkFBQSxDQUFBTyxTQUFBO0lBQUFELE1BQUEsQ0FLN0JFLElBQUksR0FBSixTQUFBQSxLQUFBLEVBQWE7TUFDWixNQUFNQyxRQUFRLEdBQUcsSUFBSSxDQUFDQyxVQUFVLENBQUMsQ0FBQztRQUNqQ0MsVUFBVSxHQUFHRixRQUFRLElBQUlBLFFBQVEsQ0FBQ0csV0FBVztNQUU5QyxJQUFJLENBQUNDLFdBQVcsR0FBRyxJQUFJQyxpQkFBaUIsQ0FBQ0gsVUFBVSxDQUFDO01BQ3BELElBQUks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
|
|
@@ -29,7 +29,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
31
|
* Triggers a cross-app navigation after saving the inner and the cross-app states.
|
|
32
|
-
*
|
|
33
32
|
* @param sSemanticObject Semantic object of the target app
|
|
34
33
|
* @param sActionName Action of the target app
|
|
35
34
|
* @param [vNavigationParameters] Navigation parameters as an object with key/value pairs or as a string representation of
|
|
@@ -74,7 +73,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
74
73
|
|
|
75
74
|
/**
|
|
76
75
|
* Parses the incoming URL and returns a Promise.
|
|
77
|
-
*
|
|
78
76
|
* @returns A Promise object which returns the
|
|
79
77
|
* extracted app state, the startup parameters, and the type of navigation when execution is successful,
|
|
80
78
|
*/
|
|
@@ -84,7 +82,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
84
82
|
|
|
85
83
|
/**
|
|
86
84
|
* Processes navigation-related tasks related to beforePopoverOpens event handling for the SmartLink control and returns a Promise object.
|
|
87
|
-
*
|
|
88
85
|
* @param oTableEventParameters The parameters made available by the SmartTable control when the SmartLink control has been clicked,
|
|
89
86
|
* an instance of a PopOver object
|
|
90
87
|
* @param sSelectionVariant Stringified JSON object as returned, for example, from getDataSuiteFormat() of the SmartFilterBar control
|
|
@@ -104,10 +101,8 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
104
101
|
|
|
105
102
|
/**
|
|
106
103
|
* Get App specific hash.
|
|
107
|
-
*
|
|
108
104
|
* @param appHash The path string
|
|
109
105
|
* @returns A string representing base path
|
|
110
|
-
*
|
|
111
106
|
*/
|
|
112
107
|
async getAppSpecificHash(appHash: string): Promise<string | undefined> {
|
|
113
108
|
return this.oNavHandler._getAppSpecificHash(appHash);
|
|
@@ -115,7 +110,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
115
110
|
|
|
116
111
|
/**
|
|
117
112
|
* Processes selectionVariant string and returns a Promise object (semanticAttributes and AppStateKey).
|
|
118
|
-
*
|
|
119
113
|
* @param sSelectionVariant Stringified JSON object
|
|
120
114
|
* @returns A Promise object to monitor when all actions in the function have been executed; if the execution is successful, the
|
|
121
115
|
* semanticAttributes as well as the appStateKey are returned; if an error occurs, an error object of type
|
|
@@ -148,7 +142,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
148
142
|
|
|
149
143
|
/**
|
|
150
144
|
* Gets the application specific technical parameters.
|
|
151
|
-
*
|
|
152
145
|
* @returns Containing the technical parameters.
|
|
153
146
|
*/
|
|
154
147
|
getTechnicalParameters(): string[] {
|
|
@@ -159,7 +152,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
159
152
|
* Sets the application specific technical parameters. Technical parameters will not be added to the selection variant passed to the
|
|
160
153
|
* application.
|
|
161
154
|
* As a default sap-system, sap-ushell-defaultedParameterNames and hcpApplicationId are considered as technical parameters.
|
|
162
|
-
*
|
|
163
155
|
* @param aTechnicalParameters List of parameter names to be considered as technical parameters. <code>null</code> or
|
|
164
156
|
* <code>undefined</code> may be used to reset the complete list.
|
|
165
157
|
*/
|
|
@@ -170,7 +162,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
170
162
|
/**
|
|
171
163
|
* Sets the model that is used for verification of sensitive information. If the model is not set, the unnamed component model is used for the
|
|
172
164
|
* verification of sensitive information.
|
|
173
|
-
*
|
|
174
165
|
* @param oModel Model For checking sensitive information
|
|
175
166
|
*/
|
|
176
167
|
setModel(oModel: ODataModel): void {
|
|
@@ -179,7 +170,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
179
170
|
|
|
180
171
|
/**
|
|
181
172
|
* Changes the URL according to the current app state and stores the app state for later retrieval.
|
|
182
|
-
*
|
|
183
173
|
* @param mInnerAppData Object containing the current state of the app
|
|
184
174
|
* @param [bImmediateHashReplace] If set to false, the inner app hash will not be replaced until storing is successful; do not
|
|
185
175
|
* set to false if you cannot react to the resolution of the Promise, for example, when calling the beforeLinkPressed event
|
|
@@ -202,7 +192,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
202
192
|
|
|
203
193
|
/**
|
|
204
194
|
* Changes the URL according to the current app state and stores the app state for later retrieval.
|
|
205
|
-
*
|
|
206
195
|
* @param mInnerAppData Object containing the current state of the app
|
|
207
196
|
* @param [bImmediateHashReplace] If set to false, the inner app hash will not be replaced until storing is successful; do not
|
|
208
197
|
* @returns An object containing the appStateId and a promise object to monitor when all the actions of the function have been
|
|
@@ -214,7 +203,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
214
203
|
|
|
215
204
|
/**
|
|
216
205
|
* Changes the URL according to the current sAppStateKey. As an reaction route change event will be triggered.
|
|
217
|
-
*
|
|
218
206
|
* @param sAppStateKey The new app state key.
|
|
219
207
|
*/
|
|
220
208
|
replaceHash(sAppStateKey: string): void {
|
|
@@ -227,7 +215,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
227
215
|
|
|
228
216
|
/**
|
|
229
217
|
* Get single values from SelectionVariant for url parameters.
|
|
230
|
-
*
|
|
231
218
|
* @param [vSelectionVariant]
|
|
232
219
|
* @param [vSelectionVariant.oUrlParamaters]
|
|
233
220
|
* @returns The url parameters
|
|
@@ -238,7 +225,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
238
225
|
|
|
239
226
|
/**
|
|
240
227
|
* Save app state and return immediately without waiting for response.
|
|
241
|
-
*
|
|
242
228
|
* @param oInSelectionVariant Instance of sap.fe.navigation.SelectionVariant
|
|
243
229
|
* @returns AppState key
|
|
244
230
|
*/
|
|
@@ -258,7 +244,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
258
244
|
|
|
259
245
|
/**
|
|
260
246
|
* Mix Attributes and selectionVariant.
|
|
261
|
-
*
|
|
262
247
|
* @param vSemanticAttributes Object/(Array of Objects) containing key/value pairs
|
|
263
248
|
* @param sSelectionVariant The selection variant in string format as provided by the SmartFilterBar control
|
|
264
249
|
* @param iSuppressionBehavior Indicates whether semantic
|
|
@@ -278,7 +263,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
278
263
|
|
|
279
264
|
/**
|
|
280
265
|
* The method creates a context url based on provided data. This context url can either be used as.
|
|
281
|
-
*
|
|
282
266
|
* @param sEntitySetName Used for url determination
|
|
283
267
|
* @param oModel The ODataModel used for url determination. If omitted, the NavigationHandler model is used.
|
|
284
268
|
* @returns The context url for the given entities
|
|
@@ -293,12 +277,15 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
293
277
|
|
|
294
278
|
/**
|
|
295
279
|
* The method returns iAppState key for the current navgation handler instance.
|
|
296
|
-
*
|
|
297
280
|
* @returns IAppState key
|
|
298
281
|
*/
|
|
299
282
|
getIAppStateKey(): string | undefined {
|
|
300
283
|
return this.oNavHandler.getIAppStateKey();
|
|
301
284
|
}
|
|
285
|
+
|
|
286
|
+
checkIsPotentiallySensitive(oData: Object): Object {
|
|
287
|
+
return this.oNavHandler._checkIsPotentiallySensitive(oData);
|
|
288
|
+
}
|
|
302
289
|
}
|
|
303
290
|
function fnGetEmptyObject(): {} {
|
|
304
291
|
return {};
|
|
@@ -6,8 +6,8 @@ sap.ui.define(["sap/fe/core/ResourceModel", "sap/ui/core/service/Service", "sap/
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
9
|
-
function _inheritsLoose(
|
|
10
|
-
function _setPrototypeOf(
|
|
9
|
+
function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
|
|
10
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
11
11
|
let ResourceModelService = /*#__PURE__*/function (_Service) {
|
|
12
12
|
_inheritsLoose(ResourceModelService, _Service);
|
|
13
13
|
function ResourceModelService() {
|
|
@@ -88,4 +88,4 @@ sap.ui.define(["sap/fe/core/ResourceModel", "sap/ui/core/service/Service", "sap/
|
|
|
88
88
|
}(ServiceFactory);
|
|
89
89
|
return ResourceModelServiceFactory;
|
|
90
90
|
}, false);
|
|
91
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZXNvdXJjZU1vZGVsU2VydmljZSIsIl9TZXJ2aWNlIiwiX2luaGVyaXRzTG9vc2UiLCJhcHBseSIsImFyZ3VtZW50cyIsIl9leHBvcnRzIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiaW5pdCIsIm9Db250ZXh0IiwiZ2V0Q29udGV4dCIsIm1TZXR0aW5ncyIsInNldHRpbmdzIiwib0ZhY3RvcnkiLCJmYWN0b3J5IiwiYUJ1bmRsZXMiLCJidW5kbGVzIiwiY29uY2F0IiwiZW5oYW5jZUkxOG4iLCJtYXAiLCJ2STE4biIsImlzQSIsImdldFJlc291cmNlQnVuZGxlIiwiYnVuZGxlTmFtZSIsInJlcGxhY2UiLCJvUmVzb3VyY2VNb2RlbCIsIlJlc291cmNlTW9kZWwiLCJlbmhhbmNlV2l0aCIsInNsaWNlIiwiYXN5bmMiLCJzY29wZVR5cGUiLCJvQ29tcG9uZW50Iiwic2NvcGVPYmplY3QiLCJzZXRNb2RlbCIsIm1vZGVsTmFtZSIsImluaXRQcm9taXNlIiwiUHJvbWlzZSIsImFsbCIsIl9wRW5oYW5jZWQiLCJyZXNvbHZlIiwidGhlbiIsIm9CdW5kbGUiLCJfX2J1bmRsZSIsImdldFJlc291cmNlTW9kZWwiLCJnZXRJbnRlcmZhY2UiLCJleGl0IiwicmVtb3ZlR2xvYmFsSW5zdGFuY2UiLCJTZXJ2aWNlIiwiUmVzb3VyY2VNb2RlbFNlcnZpY2VGYWN0b3J5IiwiX1NlcnZpY2VGYWN0b3J5IiwiX3RoaXMiLCJfbGVuIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNhbGwiLCJfb0luc3RhbmNlcyIsIl9wcm90bzIiLCJjcmVhdGVJbnN0YW5jZSIsIm9TZXJ2aWNlQ29udGV4dCIsInNLZXkiLCJnZXRJZCIsImpvaW4iLCJPYmplY3QiLCJhc3NpZ24iLCJTZXJ2aWNlRmFjdG9yeSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiUmVzb3VyY2VNb2RlbFNlcnZpY2VGYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFJlc291cmNlQnVuZGxlIGZyb20gXCJzYXAvYmFzZS9pMThuL1Jlc291cmNlQnVuZGxlXCI7XG5pbXBvcnQgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvUmVzb3VyY2VNb2RlbFwiO1xuaW1wb3J0IHR5cGUgQmFzZU9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvT2JqZWN0XCI7XG5pbXBvcnQgU2VydmljZSBmcm9tIFwic2FwL3VpL2NvcmUvc2VydmljZS9TZXJ2aWNlXCI7XG5pbXBvcnQgU2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC91aS9jb3JlL3NlcnZpY2UvU2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB0eXBlIHsgU2VydmljZUNvbnRleHQgfSBmcm9tIFwidHlwZXMvbWV0YW1vZGVsX3R5cGVzXCI7XG50eXBlIFJlc291cmNlTW9kZWxTZXJ2aWNlU2V0dGluZ3MgPSB7XG5cdGJ1bmRsZXM6IFJlc291cmNlQnVuZGxlW107XG5cdGVuaGFuY2VJMThuOiBzdHJpbmdbXTtcbn07XG5leHBvcnQgY2xhc3MgUmVzb3VyY2VNb2RlbFNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlPFJlc291cmNlTW9kZWxTZXJ2aWNlU2V0dGluZ3M+IHtcblx0aW5pdFByb21pc2UhOiBQcm9taXNlPHRoaXM+O1xuXG5cdG9GYWN0b3J5ITogUmVzb3VyY2VNb2RlbFNlcnZpY2VGYWN0b3J5O1xuXG5cdG9SZXNvdXJjZU1vZGVsITogUmVzb3VyY2VNb2RlbDtcblxuXHRpbml0KCk6IHZvaWQge1xuXHRcdGNvbnN0IG9Db250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cdFx0Y29uc3QgbVNldHRpbmdzID0gb0NvbnRleHQuc2V0dGluZ3M7XG5cdFx0dGhpcy5vRmFjdG9yeSA9IG9Db250ZXh0LmZhY3Rvcnk7XG5cblx0XHQvLyBXaGVuIGVuaGFuY2luZyBpMThuIGtleXMgdGhlIHZhbHVlIGluIHRoZSBsYXN0IHJlc291cmNlIGJ1bmRsZSB0YWtlcyBwcmVjZWRlbmNlXG5cdFx0Ly8gaGVuY2UgYXJyYW5nZSB2YXJpb3VzIHJlc291cmNlIGJ1bmRsZXMgc28gdGhhdCBlbmhhbmNlSTE4biBwcm92aWRlZCBieSB0aGUgYXBwbGljYXRpb24gaXMgdGhlIGxhc3QuXG5cdFx0Ly8gVGhlIGZvbGxvd2luZyBvcmRlciBpcyB1c2VkIDpcblx0XHQvLyAxLiBzYXAuZmUgYnVuZGxlIC0gc2FwLmZlLmNvcmUubWVzc2FnZWJ1bmRsZSAocGFzc2VkIHdpdGggbVNldHRpbmdzLmJ1bmRsZXMpXG5cdFx0Ly8gMi4gc2FwLmZlIGJ1bmRsZSAtIHNhcC5mZS50ZW1wbGF0ZXMubWVzc2FnZWJ1bmRsZSAocGFzc2VkIHdpdGggbVNldHRpbmdzLmJ1bmRsZXMpXG5cdFx0Ly8gMy4gTXVsdGlwbGUgYnVuZGxlcyBwYXNzZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGFzIHBhcnQgb2YgZW5oYW5jZUkxOG5cblx0XHRjb25zdCBhQnVuZGxlcyA9IG1TZXR0aW5ncy5idW5kbGVzLmNvbmNhdChtU2V0dGluZ3MuZW5oYW5jZUkxOG4gfHwgW10pLm1hcChmdW5jdGlvbiAodkkxOG46IFJlc291cmNlTW9kZWwgfCBzdHJpbmcpIHtcblx0XHRcdC8vIGlmIHZhbHVlIHBhc3NlZCBmb3IgZW5oYW5jZUkxOG4gaXMgYSBSZXNvdXJjZSBNb2RlbCwgcmV0dXJuIHRoZSBhc3NvY2lhdGVkIGJ1bmRsZVxuXHRcdFx0Ly8gZWxzZSB0aGUgdmFsdWUgaXMgYSBidW5kbGVVcmwsIHJldHVybiBSZXNvdXJjZSBCdW5kbGUgY29uZmlndXJhdGlvbiBzbyB0aGF0IGEgYnVuZGxlIGNhbiBiZSBjcmVhdGVkXG5cdFx0XHRyZXR1cm4gdHlwZW9mICh2STE4biBhcyBCYXNlT2JqZWN0KS5pc0EgPT09IFwiZnVuY3Rpb25cIiAmJiAodkkxOG4gYXMgQmFzZU9iamVjdCkuaXNBKFwic2FwLnVpLm1vZGVsLnJlc291cmNlLlJlc291cmNlTW9kZWxcIilcblx0XHRcdFx0PyAoKHZJMThuIGFzIFJlc291cmNlTW9kZWwpLmdldFJlc291cmNlQnVuZGxlKCkgYXMgUmVzb3VyY2VCdW5kbGUpXG5cdFx0XHRcdDogeyBidW5kbGVOYW1lOiAodkkxOG4gYXMgc3RyaW5nKS5yZXBsYWNlKC9cXC8vZywgXCIuXCIpIH07XG5cdFx0fSk7XG5cblx0XHR0aGlzLm9SZXNvdXJjZU1vZGVsID0gbmV3IFJlc291cmNlTW9kZWwoe1xuXHRcdFx0YnVuZGxlTmFtZTogYUJ1bmRsZXNbMF0uYnVuZGxlTmFtZSxcblx0XHRcdGVuaGFuY2VXaXRoOiBhQnVuZGxlcy5zbGljZSgxKSxcblx0XHRcdGFzeW5jOiB0cnVlXG5cdFx0fSk7XG5cblx0XHRpZiAob0NvbnRleHQuc2NvcGVUeXBlID09PSBcImNvbXBvbmVudFwiKSB7XG5cdFx0XHRjb25zdCBvQ29tcG9uZW50ID0gb0NvbnRleHQuc2NvcGVPYmplY3Q7XG5cdFx0XHRvQ29tcG9uZW50LnNldE1vZGVsKHRoaXMub1Jlc291cmNlTW9kZWwsIG1TZXR0aW5ncy5tb2RlbE5hbWUpO1xuXHRcdH1cblxuXHRcdHRoaXMuaW5pdFByb21pc2UgPSBQcm9taXNlLmFsbChbXG5cdFx0XHR0aGlzLm9SZXNvdXJjZU1vZGVsLmdldFJlc291cmNlQnVuZGxlKCkgYXMgUHJvbWlzZTxSZXNvdXJjZUJ1bmRsZT4sXG5cdFx0XHQodGhpcy5vUmVzb3VyY2VNb2RlbCBhcyB7IF9wRW5oYW5jZWQ/OiBib29sZWFuIH0pLl9wRW5oYW5jZWQgfHwgUHJvbWlzZS5yZXNvbHZlKClcblx0XHRdKS50aGVuKChvQnVuZGxlOiB1bmtub3duW10pID0+IHtcblx0XHRcdCh0aGlzLm9SZXNvdXJjZU1vZGVsIGFzIHsgX19idW5kbGU/OiB1bmtub3duIH0pLl9fYnVuZGxlID0gb0J1bmRsZVswXTtcblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH0pO1xuXHR9XG5cblx0Z2V0UmVzb3VyY2VNb2RlbCgpOiBSZXNvdXJjZU1vZGVsIHtcblx0XHRyZXR1cm4gdGhpcy5vUmVzb3VyY2VNb2RlbDtcblx0fVxuXG5cdGdldEludGVyZmFjZSgpOiB0aGlzIHtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdGV4aXQoKTogdm9pZCB7XG5cdFx0Ly8gRGVyZWdpc3RlciBnbG9iYWwgaW5zdGFuY2Vcblx0XHR0aGlzLm9GYWN0b3J5LnJlbW92ZUdsb2JhbEluc3RhbmNlKCk7XG5cdH1cbn1cblxuY2xhc3MgUmVzb3VyY2VNb2RlbFNlcnZpY2VGYWN0b3J5IGV4dGVuZHMgU2VydmljZUZhY3Rvcnk8UmVzb3VyY2VNb2RlbFNlcnZpY2VTZXR0aW5ncz4ge1xuXHRfb0luc3RhbmNlczogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VNb2RlbFNlcnZpY2U+ID0ge307XG5cblx0YXN5bmMgY3JlYXRlSW5zdGFuY2Uob1NlcnZpY2VDb250ZXh0OiBTZXJ2aWNlQ29udGV4dDxSZXNvdXJjZU1vZGVsU2VydmljZVNldHRpbmdzPik6IFByb21pc2U8UmVzb3VyY2VNb2RlbFNlcnZpY2U+IHtcblx0XHRjb25zdCBzS2V5ID1cblx0XHRcdGAke29TZXJ2aWNlQ29udGV4dC5zY29wZU9iamVjdC5nZXRJZCgpfV8ke29TZXJ2aWNlQ29udGV4dC5zZXR0aW5ncy5idW5kbGVzLmpvaW4oXCIsXCIpfWAgK1xuXHRcdFx0KG9TZXJ2aWNlQ29udGV4dC5zZXR0aW5ncy5lbmhhbmNlSTE4biA/IGAsJHtvU2VydmljZUNvbnRleHQuc2V0dGluZ3MuZW5oYW5jZUkxOG4uam9pbihcIixcIil9YCA6IFwiXCIpO1xuXG5cdFx0aWYgKCF0aGlzLl9vSW5zdGFuY2VzW3NLZXldKSB7XG5cdFx0XHR0aGlzLl9vSW5zdGFuY2VzW3NLZXldID0gbmV3IFJlc291cmNlTW9kZWxTZXJ2aWNlKE9iamVjdC5hc3NpZ24oeyBmYWN0b3J5OiB0aGlzIH0sIG9TZXJ2aWNlQ29udGV4dCkpO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLl9vSW5zdGFuY2VzW3NLZXldLmluaXRQcm9taXNlO1xuXHR9XG5cblx0cmVtb3ZlR2xvYmFsSW5zdGFuY2UoKTogdm9pZCB7XG5cdFx0dGhpcy5fb0luc3RhbmNlcyA9IHt9O1xuXHR9XG59XG5cbmV4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
|