@sapui5/sap.fe.core 1.111.1 → 1.112.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-dbg.js +4 -4
- package/src/sap/fe/core/ActionRuntime.js +1 -1
- package/src/sap/fe/core/ActionRuntime.js.map +1 -1
- package/src/sap/fe/core/ActionRuntime.ts +11 -11
- package/src/sap/fe/core/AppComponent-dbg.js +27 -5
- package/src/sap/fe/core/AppComponent.js +1 -1
- package/src/sap/fe/core/AppComponent.js.map +1 -1
- package/src/sap/fe/core/AppComponent.ts +58 -3
- package/src/sap/fe/core/AppStateHandler-dbg.js +5 -2
- package/src/sap/fe/core/AppStateHandler.js +1 -1
- package/src/sap/fe/core/AppStateHandler.js.map +1 -1
- package/src/sap/fe/core/AppStateHandler.ts +10 -1
- package/src/sap/fe/core/BaseController-dbg.js +1 -1
- package/src/sap/fe/core/BaseController.ts +2 -1
- package/src/sap/fe/core/CommonUtils-dbg.js +152 -365
- package/src/sap/fe/core/CommonUtils.js +1 -1
- package/src/sap/fe/core/CommonUtils.js.map +1 -1
- package/src/sap/fe/core/CommonUtils.ts +201 -478
- package/src/sap/fe/core/ExtensionAPI-dbg.js +2 -1
- package/src/sap/fe/core/ExtensionAPI.js +1 -1
- package/src/sap/fe/core/ExtensionAPI.js.map +1 -1
- package/src/sap/fe/core/ExtensionAPI.ts +9 -1
- package/src/sap/fe/core/PageController-dbg.js +26 -31
- package/src/sap/fe/core/PageController.js +1 -1
- package/src/sap/fe/core/PageController.js.map +1 -1
- package/src/sap/fe/core/PageController.ts +17 -3
- package/src/sap/fe/core/ResourceModel-dbg.js +71 -0
- package/src/sap/fe/core/ResourceModel.js +6 -0
- package/src/sap/fe/core/ResourceModel.js.map +1 -0
- package/src/sap/fe/core/ResourceModel.ts +67 -0
- package/src/sap/fe/core/TemplateComponent-dbg.js +1 -1
- package/src/sap/fe/core/TemplateComponent.ts +1 -0
- package/src/sap/fe/core/TemplateModel-dbg.js +1 -1
- package/src/sap/fe/core/TemplateModel.ts +6 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel-dbg.js +5 -7
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +1 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +6 -5
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +163 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +6 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +169 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport-dbg.js +88 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js +6 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.ts +147 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +905 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js +21 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/{BuildingBlockRuntime.ts → BuildingBlockTemplateProcessor.ts} +290 -362
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock-dbg.js +79 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js +15 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.ts +68 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment-dbg.js +162 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js +6 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js.map +1 -0
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.ts +181 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo-dbg.js +4 -2
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +1 -1
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +5 -3
- package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +890 -220
- package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +974 -239
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +24 -34
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +71 -61
- package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +14 -17
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +23 -17
- package/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +1 -1
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -0
- package/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +3 -3
- package/src/sap/fe/core/controllerextensions/MassEdit.js +1 -1
- package/src/sap/fe/core/controllerextensions/MassEdit.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +2 -2
- package/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +2 -1
- package/src/sap/fe/core/controllerextensions/MessageHandler.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +2 -0
- package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +1 -1
- package/src/sap/fe/core/controllerextensions/PageReady.ts +24 -0
- package/src/sap/fe/core/controllerextensions/Paginator-dbg.js +2 -1
- package/src/sap/fe/core/controllerextensions/Paginator.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/Paginator.ts +7 -0
- package/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +1 -1
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +8 -0
- package/src/sap/fe/core/controllerextensions/Share-dbg.js +8 -1
- package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/Share.ts +11 -0
- package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +14 -13
- package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
- package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +27 -27
- package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +17 -8
- package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
- package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/ViewState.ts +35 -14
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase-dbg.js +6 -5
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +7 -4
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +285 -82
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +326 -89
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +23 -2
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +32 -3
- package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +2 -3
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +17 -3
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block-dbg.js +65 -34
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +1 -1
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +33 -18
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +45 -31
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +52 -42
- package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +44 -49
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +43 -63
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal-dbg.js +77 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +6 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +114 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +1505 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +6 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +1985 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations-dbg.js +3 -1415
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +2 -1921
- package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +10 -11
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +9 -13
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +43 -41
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +44 -47
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher-dbg.js +12 -1
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +19 -0
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +12 -13
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +32 -13
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +4 -1
- package/src/sap/fe/core/controls/CommandExecution-dbg.js +16 -5
- package/src/sap/fe/core/controls/CommandExecution.js +1 -1
- package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
- package/src/sap/fe/core/controls/CommandExecution.ts +15 -3
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +3 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +1 -1
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +4 -1
- package/src/sap/fe/core/controls/FilterBar-dbg.js +1 -1
- package/src/sap/fe/core/controls/FilterBar.ts +5 -0
- package/src/sap/fe/core/controls/FormElementWrapper-dbg.js +1 -1
- package/src/sap/fe/core/controls/FormElementWrapper.ts +3 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +1 -1
- package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +7 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +1 -1
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +4 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +1 -1
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +10 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +4 -3
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +3 -2
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +0 -1
- package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +2 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +6 -1
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +1 -1
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js.map +1 -1
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +5 -0
- package/src/sap/fe/core/converters/ConverterContext-dbg.js +1 -1
- package/src/sap/fe/core/converters/ConverterContext.ts +2 -1
- package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -8
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.js.map +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +15 -6
- package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +17 -1
- package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
- package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -1
- package/src/sap/fe/core/converters/ManifestWrapper.ts +16 -0
- package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +61 -49
- package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
- package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
- package/src/sap/fe/core/converters/MetaModelConverter.ts +65 -51
- package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -1
- package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
- package/src/sap/fe/core/converters/annotations/DataField-dbg.js +65 -16
- package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
- package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
- package/src/sap/fe/core/converters/annotations/DataField.ts +62 -18
- package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1010 -957
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
- package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +8 -8
- package/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Action.ts +28 -26
- package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +95 -33
- package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +133 -49
- package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +99 -62
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +140 -75
- package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Form.ts +3 -3
- package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +6 -6
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +15 -15
- package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +97 -69
- package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Table.ts +161 -137
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +3 -3
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +10 -9
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +48 -44
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +130 -86
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +34 -26
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +62 -45
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar-dbg.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +6 -6
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +5 -8
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +34 -13
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +54 -20
- package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +3 -1
- package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +8 -0
- package/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +7 -6
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +19 -10
- package/src/sap/fe/core/converters/helpers/DataFieldHelper-dbg.js +1 -1
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +7 -2
- package/src/sap/fe/core/converters/helpers/ID-dbg.js +1 -1
- package/src/sap/fe/core/converters/helpers/ID.ts +2 -1
- package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +9 -8
- package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
- package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/IssueManager.ts +8 -7
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +8 -7
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +9 -6
- package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +25 -33
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
- package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +35 -35
- package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +11 -4
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +7 -1
- package/src/sap/fe/core/formatters/FPMFormatter-dbg.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.ts +1 -1
- package/src/sap/fe/core/formatters/FiscalFormat-dbg.js +2 -2
- package/src/sap/fe/core/formatters/FiscalFormat.ts +6 -1
- package/src/sap/fe/core/formatters/TableFormatter-dbg.js +2 -2
- package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
- package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -1
- package/src/sap/fe/core/formatters/TableFormatter.ts +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +5 -5
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.ts +6 -4
- package/src/sap/fe/core/fpm/Component-dbg.js +1 -1
- package/src/sap/fe/core/fpm/Component.ts +1 -0
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +2 -2
- package/src/sap/fe/core/helpers/AppStartupHelper.js +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +6 -6
- package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit.ts +8 -8
- package/src/sap/fe/core/helpers/ClassSupport-dbg.js +1 -1
- package/src/sap/fe/core/helpers/ClassSupport.js.map +1 -1
- package/src/sap/fe/core/helpers/ClassSupport.ts +1 -0
- package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +93 -62
- package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper.ts +140 -185
- package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +20 -18
- package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper.ts +22 -23
- package/src/sap/fe/core/helpers/MessageStrip-dbg.js +4 -5
- package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
- package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -1
- package/src/sap/fe/core/helpers/MessageStrip.ts +4 -4
- package/src/sap/fe/core/helpers/MetaModelFunction-dbg.js +354 -0
- package/src/sap/fe/core/helpers/MetaModelFunction.js +6 -0
- package/src/sap/fe/core/helpers/MetaModelFunction.js.map +1 -0
- package/src/sap/fe/core/helpers/MetaModelFunction.ts +408 -0
- package/src/sap/fe/core/helpers/ModelHelper-dbg.js +13 -13
- package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/ModelHelper.ts +13 -13
- package/src/sap/fe/core/helpers/PasteHelper-dbg.js +5 -5
- package/src/sap/fe/core/helpers/PasteHelper.js +1 -1
- package/src/sap/fe/core/helpers/PasteHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/PasteHelper.ts +6 -10
- package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +26 -0
- package/src/sap/fe/core/helpers/ResourceModelHelper.js +6 -0
- package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/ResourceModelHelper.ts +19 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +93 -18
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +70 -17
- package/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +2 -2
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
- package/src/sap/fe/core/helpers/Synchronization-dbg.js +1 -1
- package/src/sap/fe/core/helpers/Synchronization.ts +2 -0
- package/src/sap/fe/core/helpers/TypeGuards-dbg.js +5 -1
- package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
- package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -1
- package/src/sap/fe/core/helpers/TypeGuards.ts +12 -1
- package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +2 -1
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -1
- package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +6 -2
- package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +3 -1
- package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +3 -3
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +1 -1
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -1
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +1 -1
- package/src/sap/fe/core/library-dbg.js +2 -2
- package/src/sap/fe/core/library-preload.js +127 -125
- package/src/sap/fe/core/library-preload.js.map +1 -1
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/library.ts +7 -0
- package/src/sap/fe/core/manifest.json +1 -1
- package/src/sap/fe/core/messagebundle.properties +33 -0
- package/src/sap/fe/core/messagebundle_ar.properties +12 -10
- package/src/sap/fe/core/messagebundle_bg.properties +11 -9
- package/src/sap/fe/core/messagebundle_ca.properties +11 -9
- package/src/sap/fe/core/messagebundle_cs.properties +11 -9
- package/src/sap/fe/core/messagebundle_cy.properties +11 -9
- package/src/sap/fe/core/messagebundle_da.properties +11 -9
- package/src/sap/fe/core/messagebundle_de.properties +3 -1
- package/src/sap/fe/core/messagebundle_el.properties +11 -9
- package/src/sap/fe/core/messagebundle_en.properties +3 -1
- package/src/sap/fe/core/messagebundle_en_GB.properties +2 -0
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +2 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +20 -0
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +21 -3
- package/src/sap/fe/core/messagebundle_es.properties +11 -9
- package/src/sap/fe/core/messagebundle_es_MX.properties +11 -9
- package/src/sap/fe/core/messagebundle_et.properties +11 -9
- package/src/sap/fe/core/messagebundle_fi.properties +11 -9
- package/src/sap/fe/core/messagebundle_fr.properties +11 -9
- package/src/sap/fe/core/messagebundle_fr_CA.properties +3 -1
- package/src/sap/fe/core/messagebundle_hi.properties +2 -0
- package/src/sap/fe/core/messagebundle_hr.properties +11 -9
- package/src/sap/fe/core/messagebundle_hu.properties +11 -9
- package/src/sap/fe/core/messagebundle_id.properties +3 -1
- package/src/sap/fe/core/messagebundle_it.properties +11 -9
- package/src/sap/fe/core/messagebundle_iw.properties +11 -9
- package/src/sap/fe/core/messagebundle_ja.properties +11 -9
- package/src/sap/fe/core/messagebundle_kk.properties +11 -9
- package/src/sap/fe/core/messagebundle_ko.properties +2 -0
- package/src/sap/fe/core/messagebundle_lt.properties +11 -9
- package/src/sap/fe/core/messagebundle_lv.properties +2 -0
- package/src/sap/fe/core/messagebundle_ms.properties +12 -10
- package/src/sap/fe/core/messagebundle_nl.properties +12 -10
- package/src/sap/fe/core/messagebundle_no.properties +11 -9
- package/src/sap/fe/core/messagebundle_pl.properties +2 -0
- package/src/sap/fe/core/messagebundle_pt.properties +11 -9
- package/src/sap/fe/core/messagebundle_pt_PT.properties +11 -9
- package/src/sap/fe/core/messagebundle_ro.properties +3 -1
- package/src/sap/fe/core/messagebundle_ru.properties +3 -1
- package/src/sap/fe/core/messagebundle_sh.properties +11 -9
- package/src/sap/fe/core/messagebundle_sk.properties +11 -9
- package/src/sap/fe/core/messagebundle_sl.properties +11 -9
- package/src/sap/fe/core/messagebundle_sv.properties +2 -0
- package/src/sap/fe/core/messagebundle_th.properties +11 -9
- package/src/sap/fe/core/messagebundle_tr.properties +11 -9
- package/src/sap/fe/core/messagebundle_uk.properties +11 -9
- package/src/sap/fe/core/messagebundle_vi.properties +12 -10
- package/src/sap/fe/core/messagebundle_zh_CN.properties +2 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +2 -0
- package/src/sap/fe/core/operationsHelper-dbg.js +70 -44
- package/src/sap/fe/core/operationsHelper.js +1 -1
- package/src/sap/fe/core/operationsHelper.js.map +1 -1
- package/src/sap/fe/core/operationsHelper.ts +88 -63
- package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +1 -1
- package/src/sap/fe/core/rootView/Fcl.controller.ts +10 -0
- package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +2 -2
- package/src/sap/fe/core/rootView/NavContainer.controller.js +1 -1
- package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -1
- package/src/sap/fe/core/rootView/NavContainer.controller.ts +5 -3
- package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +4 -3
- package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
- package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +15 -5
- package/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +1 -1
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +1 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +15 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +4 -1
- package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +9 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +19 -1
- package/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +2 -2
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +10 -3
- package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +3 -3
- package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +29 -3
- package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +1 -1
- package/src/sap/fe/core/services/ShellServicesFactory.ts +14 -2
- package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +448 -279
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +502 -333
- package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +18 -5
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +41 -12
- package/src/sap/fe/core/support/Diagnostics-dbg.js +1 -1
- package/src/sap/fe/core/support/Diagnostics.ts +5 -0
- package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +185 -86
- package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +190 -82
- package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +1 -1
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +2 -3
- package/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper.ts +1 -3
- package/src/sap/fe/core/templating/FilterHelper-dbg.js +3 -3
- package/src/sap/fe/core/templating/FilterHelper.js +1 -1
- package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
- package/src/sap/fe/core/templating/FilterHelper.ts +5 -3
- package/src/sap/fe/core/templating/PropertyHelper-dbg.js +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.ts +2 -2
- package/src/sap/fe/core/templating/UIFormatters-dbg.js +1 -1
- package/src/sap/fe/core/templating/UIFormatters.ts +4 -0
- package/src/sap/fe/core/type/DateTimeWithTimezone-dbg.js +1 -1
- package/src/sap/fe/core/type/DateTimeWithTimezone.ts +2 -0
- package/src/sap/fe/core/type/FiscalDate-dbg.js +2 -2
- package/src/sap/fe/core/type/FiscalDate.js.map +1 -1
- package/src/sap/fe/core/type/FiscalDate.ts +2 -1
- package/src/sap/fe/core/type/TypeUtil-dbg.js +5 -10
- package/src/sap/fe/core/type/TypeUtil.js +1 -1
- package/src/sap/fe/core/type/TypeUtil.js.map +1 -1
- package/src/sap/fe/core/type/TypeUtil.ts +3 -6
- package/src/sap/fe/core/buildingBlocks/BuildingBlock-dbg.js +0 -410
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +0 -15
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js.map +0 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +0 -536
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment-dbg.js +0 -44
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +0 -6
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js.map +0 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +0 -14
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime-dbg.js +0 -948
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +0 -19
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js.map +0 -1
- package/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +0 -711
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +0 -6
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js.map +0 -1
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +0 -863
- package/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +0 -151
- package/src/sap/fe/core/controls/ConditionalWrapper.js +0 -6
- package/src/sap/fe/core/controls/ConditionalWrapper.js.map +0 -1
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +0 -88
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper-dbg.js +0 -330
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +0 -6
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js.map +0 -1
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +0 -292
- package/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +0 -126
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +0 -6
- package/src/sap/fe/core/controls/CustomQuickViewPage.js.map +0 -1
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +0 -105
- package/src/sap/fe/core/controls/FieldWrapper-dbg.js +0 -194
- package/src/sap/fe/core/controls/FieldWrapper.js +0 -6
- package/src/sap/fe/core/controls/FieldWrapper.js.map +0 -1
- package/src/sap/fe/core/controls/FieldWrapper.ts +0 -121
- package/src/sap/fe/core/controls/FileWrapper-dbg.js +0 -280
- package/src/sap/fe/core/controls/FileWrapper.js +0 -6
- package/src/sap/fe/core/controls/FileWrapper.js.map +0 -1
- package/src/sap/fe/core/controls/FileWrapper.ts +0 -202
- package/src/sap/fe/core/helpers/SideEffectsHelper-dbg.js +0 -141
- package/src/sap/fe/core/helpers/SideEffectsHelper.js +0 -6
- package/src/sap/fe/core/helpers/SideEffectsHelper.js.map +0 -1
- package/src/sap/fe/core/helpers/SideEffectsHelper.ts +0 -129
|
@@ -90,8 +90,8 @@ sap.ui.define(["sap/fe/core/formatters/TableFormatter", "sap/fe/core/helpers/Bin
|
|
|
90
90
|
const newAction = !ModelHelper.isSingleton(currentEntitySet) ? (currentEntitySet === null || currentEntitySet === void 0 ? void 0 : (_annotations = currentEntitySet.annotations) === null || _annotations === void 0 ? void 0 : (_annotations$Common = _annotations.Common) === null || _annotations$Common === void 0 ? void 0 : (_annotations$Common$D = _annotations$Common.DraftRoot) === null || _annotations$Common$D === void 0 ? void 0 : _annotations$Common$D.NewAction) || (currentEntitySet === null || currentEntitySet === void 0 ? void 0 : (_annotations2 = currentEntitySet.annotations) === null || _annotations2 === void 0 ? void 0 : (_annotations2$Session = _annotations2.Session) === null || _annotations2$Session === void 0 ? void 0 : (_annotations2$Session2 = _annotations2$Session.StickySessionSupported) === null || _annotations2$Session2 === void 0 ? void 0 : _annotations2$Session2.NewAction) : undefined;
|
|
91
91
|
const newActionName = newAction === null || newAction === void 0 ? void 0 : newAction.toString();
|
|
92
92
|
if (newActionName) {
|
|
93
|
-
var _converterContext$get, _converterContext$get2, _converterContext$get3;
|
|
94
|
-
let availableProperty = converterContext === null || converterContext === void 0 ? void 0 : (_converterContext$get = converterContext.getEntityType().actions[newActionName]) === null || _converterContext$get === void 0 ? void 0 : (_converterContext$get2 = _converterContext$get.annotations) === null || _converterContext$get2 === void 0 ? void 0 : (_converterContext$get3 = _converterContext$get2.Core) === null || _converterContext$get3 === void 0 ? void 0 : _converterContext$get3.OperationAvailable;
|
|
93
|
+
var _converterContext$get, _converterContext$get2, _converterContext$get3, _converterContext$get4;
|
|
94
|
+
let availableProperty = converterContext === null || converterContext === void 0 ? void 0 : (_converterContext$get = converterContext.getEntityType().actions[newActionName]) === null || _converterContext$get === void 0 ? void 0 : (_converterContext$get2 = _converterContext$get.annotations) === null || _converterContext$get2 === void 0 ? void 0 : (_converterContext$get3 = _converterContext$get2.Core) === null || _converterContext$get3 === void 0 ? void 0 : (_converterContext$get4 = _converterContext$get3.OperationAvailable) === null || _converterContext$get4 === void 0 ? void 0 : _converterContext$get4.valueOf();
|
|
95
95
|
availableProperty = availableProperty !== undefined ? availableProperty : true;
|
|
96
96
|
return {
|
|
97
97
|
name: newActionName,
|
|
@@ -519,4 +519,4 @@ sap.ui.define(["sap/fe/core/formatters/TableFormatter", "sap/fe/core/helpers/Bin
|
|
|
519
519
|
_exports.isInDisplayMode = isInDisplayMode;
|
|
520
520
|
return _exports;
|
|
521
521
|
}, false);
|
|
522
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBbm5vdGF0aW9uSGlkZGVuUHJvcGVydHkiLCJnZW5lcmF0ZVN0YW5kYXJkQWN0aW9uc0NvbnRleHQiLCJjb252ZXJ0ZXJDb250ZXh0IiwiY3JlYXRpb25Nb2RlIiwidGFibGVNYW5pZmVzdENvbmZpZ3VyYXRpb24iLCJ2aWV3Q29uZmlndXJhdGlvbiIsImNvbGxlY3Rpb25QYXRoIiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsImdldERhdGFNb2RlbE9iamVjdFBhdGgiLCJoaWRkZW5Bbm5vdGF0aW9uIiwiY3JlYXRlIiwiaXNBY3Rpb25Bbm5vdGF0ZWRIaWRkZW4iLCJDcmVhdGVIaWRkZW4iLCJkZWxldGUiLCJEZWxldGVIaWRkZW4iLCJ1cGRhdGUiLCJVcGRhdGVIaWRkZW4iLCJpc0RyYWZ0T3JTdGlja3lTdXBwb3J0ZWQiLCJpc1ZpZXdXaXRoTXVsdGlwbGVWaXN1YWxpemF0aW9ucyIsImdldE1hbmlmZXN0V3JhcHBlciIsImhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMiLCJuZXdBY3Rpb24iLCJnZXROZXdBY3Rpb24iLCJyZXN0cmljdGlvbnMiLCJnZXRSZXN0cmljdGlvbnMiLCJkYXRhTW9kZWxPYmplY3RQYXRoIiwiYklzRHJhZnRTdXBwb3J0ZWQiLCJNb2RlbEhlbHBlciIsImlzT2JqZWN0UGF0aERyYWZ0U3VwcG9ydGVkIiwiYklzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsInN0YXJ0aW5nRW50aXR5U2V0IiwiYW5ub3RhdGlvbnMiLCJTZXNzaW9uIiwiU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsImN1cnJlbnRFbnRpdHlTZXQiLCJnZXRFbnRpdHlTZXQiLCJpc1NpbmdsZXRvbiIsIkNvbW1vbiIsIkRyYWZ0Um9vdCIsIk5ld0FjdGlvbiIsInVuZGVmaW5lZCIsIm5ld0FjdGlvbk5hbWUiLCJ0b1N0cmluZyIsImF2YWlsYWJsZVByb3BlcnR5IiwiZ2V0RW50aXR5VHlwZSIsImFjdGlvbnMiLCJDb3JlIiwiT3BlcmF0aW9uQXZhaWxhYmxlIiwibmFtZSIsImF2YWlsYWJsZSIsImdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiIsInNBbm5vdGF0aW9uVGVybSIsImJXaXRoTmF2aWdhdGlvblBhdGgiLCJ2aXNpdGVkTmF2aWdhdGlvblBhdGhzIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJsZW5ndGgiLCJhY3Rpb25Bbm5vdGF0aW9uVmFsdWUiLCJVSSIsInBhdGgiLCJzaW5nbGV0b25QYXRoVmlzaXRvciIsImdldENvbnZlcnRlZFR5cGVzIiwiY29uc3RhbnQiLCJyZXN0cmljdGlvbnNEZWYiLCJrZXkiLCJmdW5jdGlvbiIsImlzUGF0aEluc2VydGFibGUiLCJpc1BhdGhVcGRhdGFibGUiLCJpc1BhdGhEZWxldGFibGUiLCJyZXN1bHQiLCJmb3JFYWNoIiwiZGVmIiwiZGVmRnVuY3Rpb24iLCJleHByZXNzaW9uIiwiYXBwbHkiLCJwYXRoVmlzaXRvciIsIm5hdmlnYXRpb25QYXRocyIsIm5hdmlnYXRpb25FeHByZXNzaW9uIiwiaWdub3JlVGFyZ2V0Q29sbGVjdGlvbiIsImF1dGhvcml6ZVVucmVzb2x2YWJsZSIsImdldEluc2VydFVwZGF0ZUFjdGlvbnNUZW1wbGF0aW5nIiwic3RhbmRhcmRBY3Rpb25zQ29udGV4dCIsImlzRHJhZnRPclN0aWNreSIsImlzQ3JlYXRlQWx3YXlzSGlkZGVuIiwiQ3JlYXRpb25Nb2RlIiwiRXh0ZXJuYWwiLCJnZXRTdGFuZGFyZEFjdGlvbkNyZWF0ZSIsImNyZWF0ZVZpc2liaWxpdHkiLCJnZXRDcmVhdGVWaXNpYmlsaXR5IiwiaXNUZW1wbGF0ZWQiLCJjb21waWxlRXhwcmVzc2lvbiIsImdldENyZWF0ZVRlbXBsYXRpbmciLCJ2aXNpYmxlIiwiZW5hYmxlZCIsImdldENyZWF0ZUVuYWJsZW1lbnQiLCJnZXRTdGFuZGFyZEFjdGlvbkRlbGV0ZSIsImRlbGV0ZVZpc2liaWxpdHkiLCJnZXREZWxldGVWaXNpYmlsaXR5IiwiZ2V0RGVmYXVsdFRlbXBsYXRpbmciLCJnZXREZWxldGVFbmFibGVtZW50IiwiZ2V0Q3JlYXRpb25Sb3ciLCJjcmVhdGlvblJvd1Zpc2liaWxpdHkiLCJnZXRDcmVhdGlvblJvd0VuYWJsZW1lbnQiLCJnZXRTdGFuZGFyZEFjdGlvblBhc3RlIiwiaXNJbnNlcnRVcGRhdGVBY3Rpb25zVGVtcGxhdGVkIiwiY3JlYXRlRW5hYmxlbWVudCIsInBhc3RlVmlzaWJpbGl0eSIsImdldFBhc3RlVmlzaWJpbGl0eSIsImdldFBhc3RlRW5hYmxlbWVudCIsImdldFN0YW5kYXJkQWN0aW9uTWFzc0VkaXQiLCJtYXNzRWRpdFZpc2liaWxpdHkiLCJnZXRNYXNzRWRpdFZpc2liaWxpdHkiLCJnZXRNYXNzRWRpdEVuYWJsZW1lbnQiLCJpc0ZvckNyZWF0aW9uUm93IiwiYW5kIiwib3IiLCJDcmVhdGlvblJvdyIsIm5vdCIsImlzQ29uc3RhbnQiLCJhY3Rpb25WaXNpYmlsaXR5IiwiaXNJbnNlcnRhYmxlIiwiaXNDcmVhdGVIaWRkZW4iLCJpZkVsc2UiLCJnZXRUZW1wbGF0ZVR5cGUiLCJUZW1wbGF0ZVR5cGUiLCJMaXN0UmVwb3J0IiwiSXNFZGl0YWJsZSIsImVxdWFsIiwiSW5saW5lQ3JlYXRpb25Sb3dzIiwidHlwZSIsImlubGluZUNyZWF0aW9uUm93c0hpZGRlbkluRWRpdE1vZGUiLCJJc0NyZWF0ZU1vZGUiLCJpc1BhdGhJbk1vZGVsRXhwcmVzc2lvbiIsImlzRGVsZXRlSGlkZGVuIiwicGF0aERlbGV0YWJsZUV4cHJlc3Npb24iLCJpc0RlbGV0YWJsZSIsIkFuYWx5dGljYWxMaXN0UGFnZSIsIm5vdEVxdWFsIiwiZW5hYmxlUGFzdGUiLCJpbmRleE9mIiwiaXNVcGRhdGVIaWRkZW4iLCJwYXRoVXBkYXRhYmxlRXhwcmVzc2lvbiIsImlzVXBkYXRhYmxlIiwiYk1hc3NFZGl0RW5hYmxlZEluTWFuaWZlc3QiLCJlbmFibGVNYXNzRWRpdCIsInRlbXBsYXRlQmluZGluZ0V4cHJlc3Npb24iLCJPYmplY3RQYWdlIiwicmVzdHJpY3Rpb25zSW5zZXJ0YWJsZSIsImxhc3ROYXYiLCJwYXJ0bmVyIiwiX3R5cGUiLCJkaXNhYmxlQWRkUm93QnV0dG9uRm9yRW1wdHlEYXRhIiwiZm9ybWF0UmVzdWx0IiwicGF0aEluTW9kZWwiLCJ0YWJsZUZvcm1hdHRlcnMiLCJ2YWxpZGF0ZUNyZWF0aW9uUm93RmllbGRzIiwiQ29sbGVjdGlvblR5cGUiLCJyZXNvbHZlQWJzb2x1dGVQYXRoIiwidGFyZ2V0IiwiZGVsZXRhYmxlQ29udGV4dHMiLCJ1blNhdmVkQ29udGV4dHMiLCJkcmFmdHNXaXRoRGVsZXRhYmxlQWN0aXZlIiwiZHJhZnRzV2l0aE5vbkRlbGV0YWJsZUFjdGl2ZSIsImdyZWF0ZXJUaGFuIiwiaXNPbmx5RHluYW1pY09uQ3VycmVudEVudGl0eSIsIm51bWJlck9mU2VsZWN0ZWRDb250ZXh0cyIsImdyZWF0ZXJPckVxdWFsIiwibnVtYmVyT2ZVcGRhdGFibGVDb250ZXh0cyIsImJEaXNwbGF5TW9kZSIsImlzSW5EaXNwbGF5TW9kZSIsInJ1bnRpbWVCaW5kaW5nIiwidGVtcGxhdGVUeXBlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTdGFuZGFyZEFjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbnRpdHlTZXQsIFByb3BlcnR5QW5ub3RhdGlvblZhbHVlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgdGFibGVGb3JtYXR0ZXJzIGZyb20gXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL1RhYmxlRm9ybWF0dGVyXCI7XG5pbXBvcnQgdHlwZSB7IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiwgQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHtcblx0YW5kLFxuXHRjb21waWxlRXhwcmVzc2lvbixcblx0Y29uc3RhbnQsXG5cdGVxdWFsLFxuXHRmb3JtYXRSZXN1bHQsXG5cdGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbixcblx0Z3JlYXRlck9yRXF1YWwsXG5cdGdyZWF0ZXJUaGFuLFxuXHRpZkVsc2UsXG5cdGlzQ29uc3RhbnQsXG5cdGlzUGF0aEluTW9kZWxFeHByZXNzaW9uLFxuXHRsZW5ndGgsXG5cdG5vdCxcblx0bm90RXF1YWwsXG5cdG9yLFxuXHRwYXRoSW5Nb2RlbFxufSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRUYXJnZXRPYmplY3RQYXRoLCBpc1BhdGhEZWxldGFibGUsIGlzUGF0aEluc2VydGFibGUsIGlzUGF0aFVwZGF0YWJsZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB0eXBlIENvbnZlcnRlckNvbnRleHQgZnJvbSBcIi4uLy4uLy4uL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB7IHNpbmdsZXRvblBhdGhWaXNpdG9yLCBVSSB9IGZyb20gXCIuLi8uLi8uLi9oZWxwZXJzL0JpbmRpbmdIZWxwZXJcIjtcbmltcG9ydCB0eXBlIHsgVmlld1BhdGhDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IENyZWF0aW9uTW9kZSwgVGVtcGxhdGVUeXBlIH0gZnJvbSBcIi4uLy4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB0eXBlIHsgVGFibGVDb250cm9sQ29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi9UYWJsZVwiO1xuXG5lbnVtIEFubm90YXRpb25IaWRkZW5Qcm9wZXJ0eSB7XG5cdENyZWF0ZUhpZGRlbiA9IFwiQ3JlYXRlSGlkZGVuXCIsXG5cdERlbGV0ZUhpZGRlbiA9IFwiRGVsZXRlSGlkZGVuXCIsXG5cdFVwZGF0ZUhpZGRlbiA9IFwiVXBkYXRlSGlkZGVuXCJcbn1cblxuZXhwb3J0IHR5cGUgU3RhbmRhcmRBY3Rpb25Db25maWdUeXBlID0ge1xuXHRpc1RlbXBsYXRlZD86IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uO1xuXHR2aXNpYmxlOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0ZW5hYmxlZDogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG59O1xuXG50eXBlIEV4cHJlc3Npb25SZXN0cmljdGlvbnNUeXBlID0ge1xuXHRleHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj47XG5cdG5hdmlnYXRpb25FeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj47XG59O1xudHlwZSBTdGFuZGFyZEFjdGlvbnNSZXN0cmljdGlvbnNUeXBlID0gUmVjb3JkPHN0cmluZywgRXhwcmVzc2lvblJlc3RyaWN0aW9uc1R5cGU+O1xuXG5leHBvcnQgdHlwZSBTdGFuZGFyZEFjdGlvbnNDb250ZXh0ID0ge1xuXHRjb2xsZWN0aW9uUGF0aDogc3RyaW5nO1xuXHRoaWRkZW5Bbm5vdGF0aW9uOiB7XG5cdFx0Y3JlYXRlOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj47XG5cdFx0ZGVsZXRlOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj47XG5cdFx0dXBkYXRlOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj47XG5cdH07XG5cdGNyZWF0aW9uTW9kZTogQ3JlYXRpb25Nb2RlO1xuXHRpc0RyYWZ0T3JTdGlja3lTdXBwb3J0ZWQ6IGJvb2xlYW47XG5cdGlzVmlld1dpdGhNdWx0aXBsZVZpc3VhbGl6YXRpb25zOiBib29sZWFuO1xuXHRuZXdBY3Rpb24/OiB7XG5cdFx0bmFtZT86IHN0cmluZztcblx0XHRhdmFpbGFibGU/OiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj47XG5cdH07XG5cdHRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uOiBUYWJsZUNvbnRyb2xDb25maWd1cmF0aW9uO1xuXHRyZXN0cmljdGlvbnM6IFN0YW5kYXJkQWN0aW9uc1Jlc3RyaWN0aW9uc1R5cGU7XG59O1xuXG4vKipcbiAqIEdlbmVyYXRlcyB0aGUgY29udGV4dCBmb3IgdGhlIHN0YW5kYXJkIGFjdGlvbnMuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSBjcmVhdGlvbk1vZGVcbiAqIEBwYXJhbSB0YWJsZU1hbmlmZXN0Q29uZmlndXJhdGlvblxuICogQHBhcmFtIHZpZXdDb25maWd1cmF0aW9uXG4gKiBAcmV0dXJucyAgVGhlIGNvbnRleHQgZm9yIHRhYmxlIGFjdGlvbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlU3RhbmRhcmRBY3Rpb25zQ29udGV4dChcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0Y3JlYXRpb25Nb2RlOiBDcmVhdGlvbk1vZGUsXG5cdHRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uOiBUYWJsZUNvbnRyb2xDb25maWd1cmF0aW9uLFxuXHR2aWV3Q29uZmlndXJhdGlvbj86IFZpZXdQYXRoQ29uZmlndXJhdGlvblxuKTogU3RhbmRhcmRBY3Rpb25zQ29udGV4dCB7XG5cdHJldHVybiB7XG5cdFx0Y29sbGVjdGlvblBhdGg6IGdldFRhcmdldE9iamVjdFBhdGgoY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCkpLFxuXHRcdGhpZGRlbkFubm90YXRpb246IHtcblx0XHRcdGNyZWF0ZTogaXNBY3Rpb25Bbm5vdGF0ZWRIaWRkZW4oY29udmVydGVyQ29udGV4dCwgQW5ub3RhdGlvbkhpZGRlblByb3BlcnR5LkNyZWF0ZUhpZGRlbiksXG5cdFx0XHRkZWxldGU6IGlzQWN0aW9uQW5ub3RhdGVkSGlkZGVuKGNvbnZlcnRlckNvbnRleHQsIEFubm90YXRpb25IaWRkZW5Qcm9wZXJ0eS5EZWxldGVIaWRkZW4pLFxuXHRcdFx0dXBkYXRlOiBpc0FjdGlvbkFubm90YXRlZEhpZGRlbihjb252ZXJ0ZXJDb250ZXh0LCBBbm5vdGF0aW9uSGlkZGVuUHJvcGVydHkuVXBkYXRlSGlkZGVuKVxuXHRcdH0sXG5cdFx0Y3JlYXRpb25Nb2RlOiBjcmVhdGlvbk1vZGUsXG5cdFx0aXNEcmFmdE9yU3RpY2t5U3VwcG9ydGVkOiBpc0RyYWZ0T3JTdGlja3lTdXBwb3J0ZWQoY29udmVydGVyQ29udGV4dCksXG5cdFx0aXNWaWV3V2l0aE11bHRpcGxlVmlzdWFsaXphdGlvbnM6IHZpZXdDb25maWd1cmF0aW9uXG5cdFx0XHQ/IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyh2aWV3Q29uZmlndXJhdGlvbilcblx0XHRcdDogZmFsc2UsXG5cdFx0bmV3QWN0aW9uOiBnZXROZXdBY3Rpb24oY29udmVydGVyQ29udGV4dCksXG5cdFx0dGFibGVNYW5pZmVzdENvbmZpZ3VyYXRpb246IHRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uLFxuXHRcdHJlc3RyaWN0aW9uczogZ2V0UmVzdHJpY3Rpb25zKGNvbnZlcnRlckNvbnRleHQpXG5cdH07XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHN0aWNreSBvciBkcmFmdCBpcyBzdXBwb3J0ZWQuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEByZXR1cm5zIGB0cnVlYCBpZiBpdCBpcyBzdXBwb3J0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRHJhZnRPclN0aWNreVN1cHBvcnRlZChjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogYm9vbGVhbiB7XG5cdGNvbnN0IGRhdGFNb2RlbE9iamVjdFBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKTtcblx0Y29uc3QgYklzRHJhZnRTdXBwb3J0ZWQgPSBNb2RlbEhlbHBlci5pc09iamVjdFBhdGhEcmFmdFN1cHBvcnRlZChkYXRhTW9kZWxPYmplY3RQYXRoKTtcblx0Y29uc3QgYklzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCA9IChkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0IGFzIEVudGl0eVNldCk/LmFubm90YXRpb25zPy5TZXNzaW9uPy5TdGlja3lTZXNzaW9uU3VwcG9ydGVkXG5cdFx0PyB0cnVlXG5cdFx0OiBmYWxzZTtcblxuXHRyZXR1cm4gYklzRHJhZnRTdXBwb3J0ZWQgfHwgYklzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZDtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBjb25maWd1cmVkIG5ld0FjdGlvbiBpbnRvIGFubm90YXRpb24uXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEByZXR1cm5zIFRoZSBuZXcgYWN0aW9uIGluZm9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5ld0FjdGlvbihjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogYW55IHtcblx0Y29uc3QgY3VycmVudEVudGl0eVNldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCk7XG5cdGNvbnN0IG5ld0FjdGlvbiA9ICFNb2RlbEhlbHBlci5pc1NpbmdsZXRvbihjdXJyZW50RW50aXR5U2V0KVxuXHRcdD8gKGN1cnJlbnRFbnRpdHlTZXQgYXMgRW50aXR5U2V0KT8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uRHJhZnRSb290Py5OZXdBY3Rpb24gfHxcblx0XHQgIChjdXJyZW50RW50aXR5U2V0IGFzIEVudGl0eVNldCk/LmFubm90YXRpb25zPy5TZXNzaW9uPy5TdGlja3lTZXNzaW9uU3VwcG9ydGVkPy5OZXdBY3Rpb25cblx0XHQ6IHVuZGVmaW5lZDtcblx0Y29uc3QgbmV3QWN0aW9uTmFtZTogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gPSBuZXdBY3Rpb24/LnRvU3RyaW5nKCk7XG5cdGlmIChuZXdBY3Rpb25OYW1lKSB7XG5cdFx0bGV0IGF2YWlsYWJsZVByb3BlcnR5OiBhbnkgPSBjb252ZXJ0ZXJDb250ZXh0Py5nZXRFbnRpdHlUeXBlKCkuYWN0aW9uc1tuZXdBY3Rpb25OYW1lXT8uYW5ub3RhdGlvbnM/LkNvcmU/Lk9wZXJhdGlvbkF2YWlsYWJsZTtcblx0XHRhdmFpbGFibGVQcm9wZXJ0eSA9IGF2YWlsYWJsZVByb3BlcnR5ICE9PSB1bmRlZmluZWQgPyBhdmFpbGFibGVQcm9wZXJ0eSA6IHRydWU7XG5cdFx0cmV0dXJuIHtcblx0XHRcdG5hbWU6IG5ld0FjdGlvbk5hbWUsXG5cdFx0XHRhdmFpbGFibGU6IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihhdmFpbGFibGVQcm9wZXJ0eSlcblx0XHR9O1xuXHR9XG5cdHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgYWN0aW9uIHZpc2liaWxpdHkgY29uZmlndXJlZCBpbnRvIGFubm90YXRpb24uXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSBzQW5ub3RhdGlvblRlcm1cbiAqIEBwYXJhbSBiV2l0aE5hdmlnYXRpb25QYXRoXG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgYWN0aW9uIHZpc2liaWxpdHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQWN0aW9uQW5ub3RhdGVkSGlkZGVuKFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRzQW5ub3RhdGlvblRlcm06IHN0cmluZyxcblx0YldpdGhOYXZpZ2F0aW9uUGF0aCA9IHRydWVcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IGN1cnJlbnRFbnRpdHlTZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpO1xuXHRjb25zdCBkYXRhTW9kZWxPYmplY3RQYXRoID0gY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCk7XG5cdC8vIENvbnNpZGVyIG9ubHkgdGhlIGxhc3QgbGV2ZWwgb2YgbmF2aWdhdGlvbi4gVGhlIG90aGVycyBhcmUgYWxyZWFkeSBjb25zaWRlcmVkIGluIHRoZSBlbGVtZW50IGJpbmRpbmcgb2YgdGhlIHBhZ2UuXG5cdGNvbnN0IHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMgPVxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMubGVuZ3RoID4gMCAmJiBiV2l0aE5hdmlnYXRpb25QYXRoXG5cdFx0XHQ/IFtkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzW2RhdGFNb2RlbE9iamVjdFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMubGVuZ3RoIC0gMV0ubmFtZV1cblx0XHRcdDogW107XG5cdGNvbnN0IGFjdGlvbkFubm90YXRpb25WYWx1ZSA9XG5cdFx0KChjdXJyZW50RW50aXR5U2V0Py5hbm5vdGF0aW9ucy5VSSBhcyBhbnkpPy5bc0Fubm90YXRpb25UZXJtXSBhcyBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxib29sZWFuPikgfHwgZmFsc2U7XG5cblx0cmV0dXJuIGN1cnJlbnRFbnRpdHlTZXRcblx0XHQ/IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihhY3Rpb25Bbm5vdGF0aW9uVmFsdWUsIHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMsIHVuZGVmaW5lZCwgKHBhdGg6IHN0cmluZykgPT5cblx0XHRcdFx0c2luZ2xldG9uUGF0aFZpc2l0b3IocGF0aCwgY29udmVydGVyQ29udGV4dC5nZXRDb252ZXJ0ZWRUeXBlcygpLCB2aXNpdGVkTmF2aWdhdGlvblBhdGhzKVxuXHRcdCAgKVxuXHRcdDogY29uc3RhbnQoZmFsc2UpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGFubm90YXRlZCByZXN0cmljdGlvbnMgZm9yIHRoZSBhY3Rpb25zLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcmV0dXJucyBUaGUgcmVzdHJpY3Rpb24gaW5mb3JtYXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc3RyaWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogU3RhbmRhcmRBY3Rpb25zUmVzdHJpY3Rpb25zVHlwZSB7XG5cdGNvbnN0IGRhdGFNb2RlbE9iamVjdFBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKTtcblx0Y29uc3QgcmVzdHJpY3Rpb25zRGVmID0gW1xuXHRcdHtcblx0XHRcdGtleTogXCJpc0luc2VydGFibGVcIixcblx0XHRcdGZ1bmN0aW9uOiBpc1BhdGhJbnNlcnRhYmxlXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRrZXk6IFwiaXNVcGRhdGFibGVcIixcblx0XHRcdGZ1bmN0aW9uOiBpc1BhdGhVcGRhdGFibGVcblx0XHR9LFxuXHRcdHtcblx0XHRcdGtleTogXCJpc0RlbGV0YWJsZVwiLFxuXHRcdFx0ZnVuY3Rpb246IGlzUGF0aERlbGV0YWJsZVxuXHRcdH1cblx0XTtcblx0Y29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBFeHByZXNzaW9uUmVzdHJpY3Rpb25zVHlwZT4gPSB7fTtcblx0cmVzdHJpY3Rpb25zRGVmLmZvckVhY2goZnVuY3Rpb24gKGRlZikge1xuXHRcdGNvbnN0IGRlZkZ1bmN0aW9uID0gZGVmW1wiZnVuY3Rpb25cIl07XG5cdFx0cmVzdWx0W2RlZi5rZXldID0ge1xuXHRcdFx0ZXhwcmVzc2lvbjogZGVmRnVuY3Rpb24uYXBwbHkobnVsbCwgW1xuXHRcdFx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0cGF0aFZpc2l0b3I6IChwYXRoOiBzdHJpbmcsIG5hdmlnYXRpb25QYXRoczogc3RyaW5nW10pID0+XG5cdFx0XHRcdFx0XHRzaW5nbGV0b25QYXRoVmlzaXRvcihwYXRoLCBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlZFR5cGVzKCksIG5hdmlnYXRpb25QYXRocylcblx0XHRcdFx0fVxuXHRcdFx0XSksXG5cdFx0XHRuYXZpZ2F0aW9uRXhwcmVzc2lvbjogZGVmRnVuY3Rpb24uYXBwbHkobnVsbCwgW1xuXHRcdFx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0aWdub3JlVGFyZ2V0Q29sbGVjdGlvbjogdHJ1ZSxcblx0XHRcdFx0XHRhdXRob3JpemVVbnJlc29sdmFibGU6IHRydWUsXG5cdFx0XHRcdFx0cGF0aFZpc2l0b3I6IChwYXRoOiBzdHJpbmcsIG5hdmlnYXRpb25QYXRoczogc3RyaW5nW10pID0+XG5cdFx0XHRcdFx0XHRzaW5nbGV0b25QYXRoVmlzaXRvcihwYXRoLCBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlZFR5cGVzKCksIG5hdmlnYXRpb25QYXRocylcblx0XHRcdFx0fVxuXHRcdFx0XSlcblx0XHR9O1xuXHR9KTtcblx0cmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdGVtcGxhdGluZyBmb3IgaW5zZXJ0L3VwZGF0ZSBhY3Rpb25zIGlzIG1hbmRhdG9yeS5cbiAqXG4gKiBAcGFyYW0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dFxuICogQHBhcmFtIGlzRHJhZnRPclN0aWNreVxuICogQHBhcmFtIGlzQ3JlYXRlQWx3YXlzSGlkZGVuXG4gKiBAcmV0dXJucyBUaGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEluc2VydFVwZGF0ZUFjdGlvbnNUZW1wbGF0aW5nKFxuXHRzdGFuZGFyZEFjdGlvbnNDb250ZXh0OiBTdGFuZGFyZEFjdGlvbnNDb250ZXh0LFxuXHRpc0RyYWZ0T3JTdGlja3k6IGJvb2xlYW4sXG5cdGlzQ3JlYXRlQWx3YXlzSGlkZGVuOiBib29sZWFuXG4pOiBib29sZWFuIHtcblx0cmV0dXJuIChpc0RyYWZ0T3JTdGlja3kgfHwgc3RhbmRhcmRBY3Rpb25zQ29udGV4dC5jcmVhdGlvbk1vZGUgPT09IENyZWF0aW9uTW9kZS5FeHRlcm5hbCkgJiYgIWlzQ3JlYXRlQWx3YXlzSGlkZGVuO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbnMgZm9yIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSAnQ3JlYXRlJyBhY3Rpb24uXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSBzdGFuZGFyZEFjdGlvbnNDb250ZXh0XG4gKiBAcmV0dXJucyBUaGUgc3RhbmRhcmQgYWN0aW9uIGluZm9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YW5kYXJkQWN0aW9uQ3JlYXRlKFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRzdGFuZGFyZEFjdGlvbnNDb250ZXh0OiBTdGFuZGFyZEFjdGlvbnNDb250ZXh0XG4pOiBTdGFuZGFyZEFjdGlvbkNvbmZpZ1R5cGUge1xuXHRjb25zdCBjcmVhdGVWaXNpYmlsaXR5ID0gZ2V0Q3JlYXRlVmlzaWJpbGl0eShjb252ZXJ0ZXJDb250ZXh0LCBzdGFuZGFyZEFjdGlvbnNDb250ZXh0KTtcblx0cmV0dXJuIHtcblx0XHRpc1RlbXBsYXRlZDogY29tcGlsZUV4cHJlc3Npb24oZ2V0Q3JlYXRlVGVtcGxhdGluZyhzdGFuZGFyZEFjdGlvbnNDb250ZXh0LCBjcmVhdGVWaXNpYmlsaXR5KSksXG5cdFx0dmlzaWJsZTogY29tcGlsZUV4cHJlc3Npb24oY3JlYXRlVmlzaWJpbGl0eSksXG5cdFx0ZW5hYmxlZDogY29tcGlsZUV4cHJlc3Npb24oZ2V0Q3JlYXRlRW5hYmxlbWVudChjb252ZXJ0ZXJDb250ZXh0LCBzdGFuZGFyZEFjdGlvbnNDb250ZXh0LCBjcmVhdGVWaXNpYmlsaXR5KSlcblx0fTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBiaW5kaW5nIGV4cHJlc3Npb25zIGZvciB0aGUgcHJvcGVydGllcyBvZiB0aGUgJ0RlbGV0ZScgYWN0aW9uLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcGFyYW0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dFxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbnMgZm9yIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSAnRGVsZXRlJyBhY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGFuZGFyZEFjdGlvbkRlbGV0ZShcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0c3RhbmRhcmRBY3Rpb25zQ29udGV4dDogU3RhbmRhcmRBY3Rpb25zQ29udGV4dFxuKTogU3RhbmRhcmRBY3Rpb25Db25maWdUeXBlIHtcblx0Y29uc3QgZGVsZXRlVmlzaWJpbGl0eSA9IGdldERlbGV0ZVZpc2liaWxpdHkoY29udmVydGVyQ29udGV4dCwgc3RhbmRhcmRBY3Rpb25zQ29udGV4dCk7XG5cblx0cmV0dXJuIHtcblx0XHRpc1RlbXBsYXRlZDogY29tcGlsZUV4cHJlc3Npb24oZ2V0RGVmYXVsdFRlbXBsYXRpbmcoZGVsZXRlVmlzaWJpbGl0eSkpLFxuXHRcdHZpc2libGU6IGNvbXBpbGVFeHByZXNzaW9uKGRlbGV0ZVZpc2liaWxpdHkpLFxuXHRcdGVuYWJsZWQ6IGNvbXBpbGVFeHByZXNzaW9uKGdldERlbGV0ZUVuYWJsZW1lbnQoY29udmVydGVyQ29udGV4dCwgc3RhbmRhcmRBY3Rpb25zQ29udGV4dCwgZGVsZXRlVmlzaWJpbGl0eSkpXG5cdH07XG59XG5cbi8qKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSBzdGFuZGFyZEFjdGlvbnNDb250ZXh0XG4gKiBAcmV0dXJucyBTdGFuZGFyZEFjdGlvbkNvbmZpZ1R5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENyZWF0aW9uUm93KFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRzdGFuZGFyZEFjdGlvbnNDb250ZXh0OiBTdGFuZGFyZEFjdGlvbnNDb250ZXh0XG4pOiBTdGFuZGFyZEFjdGlvbkNvbmZpZ1R5cGUge1xuXHRjb25zdCBjcmVhdGlvblJvd1Zpc2liaWxpdHkgPSBnZXRDcmVhdGVWaXNpYmlsaXR5KGNvbnZlcnRlckNvbnRleHQsIHN0YW5kYXJkQWN0aW9uc0NvbnRleHQsIHRydWUpO1xuXG5cdHJldHVybiB7XG5cdFx0aXNUZW1wbGF0ZWQ6IGNvbXBpbGVFeHByZXNzaW9uKGdldENyZWF0ZVRlbXBsYXRpbmcoc3RhbmRhcmRBY3Rpb25zQ29udGV4dCwgY3JlYXRpb25Sb3dWaXNpYmlsaXR5LCB0cnVlKSksXG5cdFx0dmlzaWJsZTogY29tcGlsZUV4cHJlc3Npb24oY3JlYXRpb25Sb3dWaXNpYmlsaXR5KSxcblx0XHRlbmFibGVkOiBjb21waWxlRXhwcmVzc2lvbihnZXRDcmVhdGlvblJvd0VuYWJsZW1lbnQoY29udmVydGVyQ29udGV4dCwgc3RhbmRhcmRBY3Rpb25zQ29udGV4dCwgY3JlYXRpb25Sb3dWaXNpYmlsaXR5KSlcblx0fTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBiaW5kaW5nIGV4cHJlc3Npb25zIGZvciB0aGUgcHJvcGVydGllcyBvZiB0aGUgJ1Bhc3RlJyBhY3Rpb24uXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSBzdGFuZGFyZEFjdGlvbnNDb250ZXh0XG4gKiBAcGFyYW0gaXNJbnNlcnRVcGRhdGVBY3Rpb25zVGVtcGxhdGVkXG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9ucyBmb3IgdGhlIHByb3BlcnRpZXMgb2YgdGhlICdQYXN0ZScgYWN0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhbmRhcmRBY3Rpb25QYXN0ZShcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0c3RhbmRhcmRBY3Rpb25zQ29udGV4dDogU3RhbmRhcmRBY3Rpb25zQ29udGV4dCxcblx0aXNJbnNlcnRVcGRhdGVBY3Rpb25zVGVtcGxhdGVkOiBib29sZWFuXG4pOiBTdGFuZGFyZEFjdGlvbkNvbmZpZ1R5cGUge1xuXHRjb25zdCBjcmVhdGVWaXNpYmlsaXR5ID0gZ2V0Q3JlYXRlVmlzaWJpbGl0eShjb252ZXJ0ZXJDb250ZXh0LCBzdGFuZGFyZEFjdGlvbnNDb250ZXh0KTtcblx0Y29uc3QgY3JlYXRlRW5hYmxlbWVudCA9IGdldENyZWF0ZUVuYWJsZW1lbnQoY29udmVydGVyQ29udGV4dCwgc3RhbmRhcmRBY3Rpb25zQ29udGV4dCwgY3JlYXRlVmlzaWJpbGl0eSk7XG5cdGNvbnN0IHBhc3RlVmlzaWJpbGl0eSA9IGdldFBhc3RlVmlzaWJpbGl0eShjb252ZXJ0ZXJDb250ZXh0LCBzdGFuZGFyZEFjdGlvbnNDb250ZXh0LCBjcmVhdGVWaXNpYmlsaXR5LCBpc0luc2VydFVwZGF0ZUFjdGlvbnNUZW1wbGF0ZWQpO1xuXHRyZXR1cm4ge1xuXHRcdHZpc2libGU6IGNvbXBpbGVFeHByZXNzaW9uKHBhc3RlVmlzaWJpbGl0eSksXG5cdFx0ZW5hYmxlZDogY29tcGlsZUV4cHJlc3Npb24oZ2V0UGFzdGVFbmFibGVtZW50KHBhc3RlVmlzaWJpbGl0eSwgY3JlYXRlRW5hYmxlbWVudCkpXG5cdH07XG59XG5cbi8qKlxuICogR2V0cyB0aGUgYmluZGluZyBleHByZXNzaW9ucyBmb3IgdGhlIHByb3BlcnRpZXMgb2YgdGhlICdNYXNzRWRpdCcgYWN0aW9uLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcGFyYW0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dFxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbnMgZm9yIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSAnTWFzc0VkaXQnIGFjdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YW5kYXJkQWN0aW9uTWFzc0VkaXQoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHN0YW5kYXJkQWN0aW9uc0NvbnRleHQ6IFN0YW5kYXJkQWN0aW9uc0NvbnRleHRcbik6IFN0YW5kYXJkQWN0aW9uQ29uZmlnVHlwZSB7XG5cdGNvbnN0IG1hc3NFZGl0VmlzaWJpbGl0eSA9IGdldE1hc3NFZGl0VmlzaWJpbGl0eShjb252ZXJ0ZXJDb250ZXh0LCBzdGFuZGFyZEFjdGlvbnNDb250ZXh0KTtcblxuXHRyZXR1cm4ge1xuXHRcdGlzVGVtcGxhdGVkOiBjb21waWxlRXhwcmVzc2lvbihnZXREZWZhdWx0VGVtcGxhdGluZyhtYXNzRWRpdFZpc2liaWxpdHkpKSxcblx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihtYXNzRWRpdFZpc2liaWxpdHkpLFxuXHRcdGVuYWJsZWQ6IGNvbXBpbGVFeHByZXNzaW9uKGdldE1hc3NFZGl0RW5hYmxlbWVudChjb252ZXJ0ZXJDb250ZXh0LCBzdGFuZGFyZEFjdGlvbnNDb250ZXh0LCBtYXNzRWRpdFZpc2liaWxpdHkpKVxuXHR9O1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlIHRlbXBsYXRpbmcgb2YgdGhlICdDcmVhdGUnIGFjdGlvbi5cbiAqXG4gKiBAcGFyYW0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dFxuICogQHBhcmFtIGNyZWF0ZVZpc2liaWxpdHlcbiAqIEBwYXJhbSBpc0ZvckNyZWF0aW9uUm93XG4gKiBAcmV0dXJucyBUaGUgY3JlYXRlIGJpbmRpbmcgZXhwcmVzc2lvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3JlYXRlVGVtcGxhdGluZyhcblx0c3RhbmRhcmRBY3Rpb25zQ29udGV4dDogU3RhbmRhcmRBY3Rpb25zQ29udGV4dCxcblx0Y3JlYXRlVmlzaWJpbGl0eTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+LFxuXHRpc0ZvckNyZWF0aW9uUm93ID0gZmFsc2Vcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdC8vVGVtcGxhdGluZyBvZiBDcmVhdGUgQnV0dG9uIGlzIG5vdCBkb25lOlxuXHQvLyBcdCAtIElmIEJ1dHRvbiBpcyBuZXZlciB2aXNpYmxlKGNvdmVyZWQgdGhlIEV4dGVybmFsIGNyZWF0ZSBidXR0b24sIG5ldyBBY3Rpb24pXG5cdC8vXHQgLSBvciBDcmVhdGlvbk1vZGUgaXMgb24gQ3JlYXRpb25Sb3cgZm9yIENyZWF0ZSBCdXR0b25cblx0Ly9cdCAtIG9yIENyZWF0aW9uTW9kZSBpcyBub3Qgb24gQ3JlYXRpb25Sb3cgZm9yIENyZWF0aW9uUm93IEJ1dHRvblxuXG5cdHJldHVybiBhbmQoXG5cdFx0Ly9YTk9SIGdhdGVcblx0XHRvcihcblx0XHRcdGFuZChpc0ZvckNyZWF0aW9uUm93LCBzdGFuZGFyZEFjdGlvbnNDb250ZXh0LmNyZWF0aW9uTW9kZSA9PT0gQ3JlYXRpb25Nb2RlLkNyZWF0aW9uUm93KSxcblx0XHRcdGFuZCghaXNGb3JDcmVhdGlvblJvdywgc3RhbmRhcmRBY3Rpb25zQ29udGV4dC5jcmVhdGlvbk1vZGUgIT09IENyZWF0aW9uTW9kZS5DcmVhdGlvblJvdylcblx0XHQpLFxuXHRcdG9yKG5vdChpc0NvbnN0YW50KGNyZWF0ZVZpc2liaWxpdHkpKSwgY3JlYXRlVmlzaWJpbGl0eSlcblx0KTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSB0ZW1wbGF0aW5nIG9mIHRoZSBub24tQ3JlYXRlIGFjdGlvbnMuXG4gKlxuICogQHBhcmFtIGFjdGlvblZpc2liaWxpdHlcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSB0ZW1wbGF0aW5nIG9mIHRoZSBub24tQ3JlYXRlIGFjdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0VGVtcGxhdGluZyhhY3Rpb25WaXNpYmlsaXR5OiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHRyZXR1cm4gb3Iobm90KGlzQ29uc3RhbnQoYWN0aW9uVmlzaWJpbGl0eSkpLCBhY3Rpb25WaXNpYmlsaXR5KTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlICdDcmVhdGUnIGFjdGlvbi5cbiAqXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dFxuICogQHBhcmFtIHN0YW5kYXJkQWN0aW9uc0NvbnRleHRcbiAqIEBwYXJhbSBpc0ZvckNyZWF0aW9uUm93XG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSAnQ3JlYXRlJyBhY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDcmVhdGVWaXNpYmlsaXR5KFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRzdGFuZGFyZEFjdGlvbnNDb250ZXh0OiBTdGFuZGFyZEFjdGlvbnNDb250ZXh0LFxuXHRpc0ZvckNyZWF0aW9uUm93ID0gZmFsc2Vcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IGlzSW5zZXJ0YWJsZSA9IHN0YW5kYXJkQWN0aW9uc0NvbnRleHQucmVzdHJpY3Rpb25zLmlzSW5zZXJ0YWJsZS5leHByZXNzaW9uO1xuXHRjb25zdCBpc0NyZWF0ZUhpZGRlbiA9IGlzRm9yQ3JlYXRpb25Sb3dcblx0XHQ/IGlzQWN0aW9uQW5ub3RhdGVkSGlkZGVuKGNvbnZlcnRlckNvbnRleHQsIEFubm90YXRpb25IaWRkZW5Qcm9wZXJ0eS5DcmVhdGVIaWRkZW4sIGZhbHNlKVxuXHRcdDogc3RhbmRhcmRBY3Rpb25zQ29udGV4dC5oaWRkZW5Bbm5vdGF0aW9uLmNyZWF0ZTtcblx0Y29uc3QgbmV3QWN0aW9uID0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dC5uZXdBY3Rpb247XG5cdC8vQ3JlYXRlIEJ1dHRvbiBpcyB2aXNpYmxlOlxuXHQvLyBcdCAtIElmIHRoZSBjcmVhdGlvbiBtb2RlIGlzIGV4dGVybmFsXG5cdC8vICAgICAgLSBJZiB3ZSdyZSBvbiB0aGUgbGlzdCByZXBvcnQgYW5kIGNyZWF0ZSBpcyBub3QgaGlkZGVuXG5cdC8vXHRcdC0gT3RoZXJ3aXNlIHRoaXMgZGVwZW5kcyBvbiB0aGUgdmFsdWUgb2YgdGhlIFVJLklzRWRpdGFibGVcblx0Ly9cdCAtIE90aGVyd2lzZVxuXHQvL1x0XHQtIElmIGFueSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgaXMgdmFsaWQgdGhlbiBjcmVhdGUgYnV0dG9uIGlzbid0IHZpc2libGVcblx0Ly9cdFx0XHQtIG5vIG5ld0FjdGlvbiBhdmFpbGFibGVcblx0Ly9cdFx0XHQtIEl0J3Mgbm90IGluc2VydGFibGUgYW5kIHRoZXJlIGlzIG5vdCBhIG5ldyBhY3Rpb25cblx0Ly9cdFx0XHQtIGNyZWF0ZSBpcyBoaWRkZW5cblx0Ly9cdFx0XHQtIFRoZXJlIGFyZSBtdWx0aXBsZSB2aXN1YWxpemF0aW9uc1xuXHQvL1x0XHRcdC0gSXQncyBhbiBBbmFseXRpY2FsIExpc3QgUGFnZVxuXHQvL1x0XHRcdC0gVXNlcyBJbmxpbmVDcmVhdGlvblJvd3MgbW9kZSBhbmQgYSBSZXNwb25zaXZlIHRhYmxlIHR5cGUsIHdpdGggdGhlIHBhcmFtZXRlciBpbmxpbmVDcmVhdGlvblJvd3NIaWRkZW5JbkVkaXRNb2RlIHRvIHRydWUgd2hpbGUgbm90IGluIGNyZWF0ZSBtb2RlXG5cdC8vICAgLSBPdGhlcndpc2Vcblx0Ly8gXHQgXHQtIElmIHdlJ3JlIG9uIHRoZSBsaXN0IHJlcG9ydCAtPlxuXHQvLyBcdCBcdFx0LSBJZiBVSS5DcmVhdGVIaWRkZW4gcG9pbnRzIHRvIGEgcHJvcGVydHkgcGF0aCAtPiBwcm92aWRlIGEgbmVnYXRlZCBiaW5kaW5nIHRvIHRoaXMgcGF0aFxuXHQvLyBcdCBcdFx0LSBPdGhlcndpc2UsIGNyZWF0ZSBpcyB2aXNpYmxlXG5cdC8vIFx0IFx0LSBPdGhlcndpc2Vcblx0Ly8gXHQgIFx0IC0gVGhpcyBkZXBlbmRzIG9uIHRoZSB2YWx1ZSBvZiB0aGUgVUkuSXNFZGl0YWJsZVxuXHRyZXR1cm4gaWZFbHNlKFxuXHRcdHN0YW5kYXJkQWN0aW9uc0NvbnRleHQuY3JlYXRpb25Nb2RlID09PSBDcmVhdGlvbk1vZGUuRXh0ZXJuYWwsXG5cdFx0YW5kKG5vdChpc0NyZWF0ZUhpZGRlbiksIG9yKGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5MaXN0UmVwb3J0LCBVSS5Jc0VkaXRhYmxlKSksXG5cdFx0aWZFbHNlKFxuXHRcdFx0b3IoXG5cdFx0XHRcdGFuZChpc0NvbnN0YW50KG5ld0FjdGlvbj8uYXZhaWxhYmxlKSwgZXF1YWwobmV3QWN0aW9uPy5hdmFpbGFibGUsIGZhbHNlKSksXG5cdFx0XHRcdGFuZChpc0NvbnN0YW50KGlzSW5zZXJ0YWJsZSksIGVxdWFsKGlzSW5zZXJ0YWJsZSwgZmFsc2UpLCAhbmV3QWN0aW9uKSxcblx0XHRcdFx0YW5kKGlzQ29uc3RhbnQoaXNDcmVhdGVIaWRkZW4pLCBlcXVhbChpc0NyZWF0ZUhpZGRlbiwgdHJ1ZSkpLFxuXHRcdFx0XHRhbmQoXG5cdFx0XHRcdFx0c3RhbmRhcmRBY3Rpb25zQ29udGV4dC5jcmVhdGlvbk1vZGUgPT09IENyZWF0aW9uTW9kZS5JbmxpbmVDcmVhdGlvblJvd3MsXG5cdFx0XHRcdFx0c3RhbmRhcmRBY3Rpb25zQ29udGV4dC50YWJsZU1hbmlmZXN0Q29uZmlndXJhdGlvbj8udHlwZSA9PT0gXCJSZXNwb25zaXZlVGFibGVcIixcblx0XHRcdFx0XHRpZkVsc2UoXG5cdFx0XHRcdFx0XHRzdGFuZGFyZEFjdGlvbnNDb250ZXh0Py50YWJsZU1hbmlmZXN0Q29uZmlndXJhdGlvbj8uaW5saW5lQ3JlYXRpb25Sb3dzSGlkZGVuSW5FZGl0TW9kZSA9PT0gZmFsc2UsXG5cdFx0XHRcdFx0XHR0cnVlLFxuXHRcdFx0XHRcdFx0VUkuSXNDcmVhdGVNb2RlXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpXG5cdFx0XHQpLFxuXHRcdFx0ZmFsc2UsXG5cdFx0XHRpZkVsc2UoXG5cdFx0XHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5MaXN0UmVwb3J0LFxuXHRcdFx0XHRvcihub3QoaXNQYXRoSW5Nb2RlbEV4cHJlc3Npb24oaXNDcmVhdGVIaWRkZW4pKSwgbm90KGlzQ3JlYXRlSGlkZGVuKSksXG5cdFx0XHRcdGFuZChub3QoaXNDcmVhdGVIaWRkZW4pLCBVSS5Jc0VkaXRhYmxlKVxuXHRcdFx0KVxuXHRcdClcblx0KTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlICdEZWxldGUnIGFjdGlvbi5cbiAqXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dFxuICogQHBhcmFtIHN0YW5kYXJkQWN0aW9uc0NvbnRleHRcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlICdEZWxldGUnIGFjdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlbGV0ZVZpc2liaWxpdHkoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHN0YW5kYXJkQWN0aW9uc0NvbnRleHQ6IFN0YW5kYXJkQWN0aW9uc0NvbnRleHRcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IGlzRGVsZXRlSGlkZGVuID0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dC5oaWRkZW5Bbm5vdGF0aW9uLmRlbGV0ZTtcblx0Y29uc3QgcGF0aERlbGV0YWJsZUV4cHJlc3Npb24gPSBzdGFuZGFyZEFjdGlvbnNDb250ZXh0LnJlc3RyaWN0aW9ucy5pc0RlbGV0YWJsZS5leHByZXNzaW9uO1xuXG5cdC8vRGVsZXRlIEJ1dHRvbiBpcyB2aXNpYmxlOlxuXHQvLyBcdCBQcmVyZXF1aXNpdGVzOlxuXHQvL1x0IC0gSWYgd2UncmUgbm90IG9uIEFMUFxuXHQvLyAgIC0gSWYgcmVzdHJpY3Rpb25zIG9uIGRlbGV0YWJsZSBzZXQgdG8gZmFsc2UgLT4gbm90IHZpc2libGVcblx0Ly8gICAtIE90aGVyd2lzZVxuXHQvL1x0XHRcdC0gSWYgVUkuRGVsZXRlSGlkZGVuIGlzIHRydWUgLT4gbm90IHZpc2libGVcblx0Ly9cdFx0XHQtIE90aGVyd2lzZVxuXHQvLyBcdCBcdFx0XHQtIElmIHdlJ3JlIG9uIE9QIC0+IGRlcGVuZGluZyBpZiBVSSBpcyBlZGl0YWJsZSBhbmQgcmVzdHJpY3Rpb25zIG9uIGRlbGV0YWJsZVxuXHQvL1x0XHRcdFx0LSBPdGhlcndpc2Vcblx0Ly9cdFx0XHRcdCBcdC0gSWYgVUkuRGVsZXRlSGlkZGVuIHBvaW50cyB0byBhIHByb3BlcnR5IHBhdGggLT4gcHJvdmlkZSBhIG5lZ2F0ZWQgYmluZGluZyB0byB0aGlzIHBhdGhcblx0Ly9cdCBcdCBcdFx0IFx0LSBPdGhlcndpc2UsIGRlbGV0ZSBpcyB2aXNpYmxlXG5cblx0cmV0dXJuIGlmRWxzZShcblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuQW5hbHl0aWNhbExpc3RQYWdlLFxuXHRcdGZhbHNlLFxuXHRcdGlmRWxzZShcblx0XHRcdGFuZChpc0NvbnN0YW50KHBhdGhEZWxldGFibGVFeHByZXNzaW9uKSwgZXF1YWwocGF0aERlbGV0YWJsZUV4cHJlc3Npb24sIGZhbHNlKSksXG5cdFx0XHRmYWxzZSxcblx0XHRcdGlmRWxzZShcblx0XHRcdFx0YW5kKGlzQ29uc3RhbnQoaXNEZWxldGVIaWRkZW4pLCBlcXVhbChpc0RlbGV0ZUhpZGRlbiwgY29uc3RhbnQodHJ1ZSkpKSxcblx0XHRcdFx0ZmFsc2UsXG5cdFx0XHRcdGlmRWxzZShcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpICE9PSBUZW1wbGF0ZVR5cGUuTGlzdFJlcG9ydCxcblx0XHRcdFx0XHRhbmQobm90KGlzRGVsZXRlSGlkZGVuKSwgVUkuSXNFZGl0YWJsZSksXG5cdFx0XHRcdFx0bm90KGFuZChpc1BhdGhJbk1vZGVsRXhwcmVzc2lvbihpc0RlbGV0ZUhpZGRlbiksIGlzRGVsZXRlSGlkZGVuKSlcblx0XHRcdFx0KVxuXHRcdFx0KVxuXHRcdClcblx0KTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlICdQYXN0ZScgYWN0aW9uLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcGFyYW0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dFxuICogQHBhcmFtIGNyZWF0ZVZpc2liaWxpdHlcbiAqIEBwYXJhbSBpc0luc2VydFVwZGF0ZUFjdGlvbnNUZW1wbGF0ZWRcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlICdQYXN0ZScgYWN0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFzdGVWaXNpYmlsaXR5KFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRzdGFuZGFyZEFjdGlvbnNDb250ZXh0OiBTdGFuZGFyZEFjdGlvbnNDb250ZXh0LFxuXHRjcmVhdGVWaXNpYmlsaXR5OiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4sXG5cdGlzSW5zZXJ0VXBkYXRlQWN0aW9uc1RlbXBsYXRlZDogYm9vbGVhblxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Ly8gSWYgQ3JlYXRlIGlzIHZpc2libGUsIGVuYWJsZVBhc3RlIGlzIG5vdCBkaXNhYmxlZCBpbnRvIG1hbmlmZXN0IGFuZCB3ZSBhcmUgb24gT1AvYmxvY2tzIG91dHNpZGUgRmlvcmkgZWxlbWVudHMgdGVtcGxhdGVzXG5cdC8vIFRoZW4gYnV0dG9uIHdpbGwgYmUgdmlzaWJsZSBhY2NvcmRpbmcgdG8gaW5zZXJ0YWJsZSByZXN0cmljdGlvbnMgYW5kIGNyZWF0ZSB2aXNpYmlsaXR5XG5cdC8vIE90aGVyd2lzZSBpdCdzIG5vdCB2aXNpYmxlXG5cdHJldHVybiBhbmQoXG5cdFx0bm90RXF1YWwoc3RhbmRhcmRBY3Rpb25zQ29udGV4dC50YWJsZU1hbmlmZXN0Q29uZmlndXJhdGlvbi5lbmFibGVQYXN0ZSwgZmFsc2UpLFxuXHRcdGNyZWF0ZVZpc2liaWxpdHksXG5cdFx0aXNJbnNlcnRVcGRhdGVBY3Rpb25zVGVtcGxhdGVkLFxuXHRcdFtUZW1wbGF0ZVR5cGUuTGlzdFJlcG9ydCwgVGVtcGxhdGVUeXBlLkFuYWx5dGljYWxMaXN0UGFnZV0uaW5kZXhPZihjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpKSA9PT0gLTEsXG5cdFx0c3RhbmRhcmRBY3Rpb25zQ29udGV4dC5yZXN0cmljdGlvbnMuaXNJbnNlcnRhYmxlLmV4cHJlc3Npb25cblx0KTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlICdNYXNzRWRpdCcgYWN0aW9uLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcGFyYW0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dFxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBvZiB0aGUgJ01hc3NFZGl0JyBhY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXNzRWRpdFZpc2liaWxpdHkoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHN0YW5kYXJkQWN0aW9uc0NvbnRleHQ6IFN0YW5kYXJkQWN0aW9uc0NvbnRleHRcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IGlzVXBkYXRlSGlkZGVuID0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dC5oaWRkZW5Bbm5vdGF0aW9uLnVwZGF0ZSxcblx0XHRwYXRoVXBkYXRhYmxlRXhwcmVzc2lvbiA9IHN0YW5kYXJkQWN0aW9uc0NvbnRleHQucmVzdHJpY3Rpb25zLmlzVXBkYXRhYmxlLmV4cHJlc3Npb24sXG5cdFx0Yk1hc3NFZGl0RW5hYmxlZEluTWFuaWZlc3Q6IGJvb2xlYW4gPSBzdGFuZGFyZEFjdGlvbnNDb250ZXh0LnRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uPy5lbmFibGVNYXNzRWRpdCB8fCBmYWxzZTtcblx0Y29uc3QgdGVtcGxhdGVCaW5kaW5nRXhwcmVzc2lvbiA9XG5cdFx0Y29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLk9iamVjdFBhZ2Vcblx0XHRcdD8gVUkuSXNFZGl0YWJsZVxuXHRcdFx0OiBjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuTGlzdFJlcG9ydDtcblx0Ly9NYXNzRWRpdCBpcyB2aXNpYmxlXG5cdC8vIElmXG5cdC8vXHRcdC0gdGhlcmUgaXMgbm8gc3RhdGljIHJlc3RyaWN0aW9ucyBzZXQgdG8gZmFsc2Vcblx0Ly9cdFx0LSBhbmQgZW5hYmxlTWFzc0VkaXQgaXMgbm90IHNldCB0byBmYWxzZSBpbnRvIHRoZSBtYW5pZmVzdFxuXHQvL1x0XHQtIGFuZCB0aGUgc2VsZWN0aW9uTW9kZSBpcyByZWxldmFudFxuXHQvL1x0VGhlbiBNYXNzRWRpdCBpcyBhbHdheXMgdmlzaWJsZSBpbiBMUiBvciBkeW5hbWljYWxseSB2aXNpYmxlIGluIE9QIGFjY29yZGluZyB0byB1aT5FZGl0YWJsZSBhbmQgaGlkZGVuQW5ub3RhdGlvblxuXHQvLyAgQnV0dG9uIGlzIGhpZGRlbiBmb3IgYWxsIG90aGVyIGNhc2VzXG5cdHJldHVybiBhbmQoXG5cdFx0bm90KGFuZChpc0NvbnN0YW50KHBhdGhVcGRhdGFibGVFeHByZXNzaW9uKSwgZXF1YWwocGF0aFVwZGF0YWJsZUV4cHJlc3Npb24sIGZhbHNlKSkpLFxuXHRcdGJNYXNzRWRpdEVuYWJsZWRJbk1hbmlmZXN0LFxuXHRcdHRlbXBsYXRlQmluZGluZ0V4cHJlc3Npb24sXG5cdFx0bm90KGlzVXBkYXRlSGlkZGVuKVxuXHQpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBvZiB0aGUgY3JlYXRpb25Sb3cuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSBzdGFuZGFyZEFjdGlvbnNDb250ZXh0XG4gKiBAcGFyYW0gY3JlYXRpb25Sb3dWaXNpYmlsaXR5XG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ2VuYWJsZWQnIHByb3BlcnR5IG9mIHRoZSBjcmVhdGlvblJvdy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENyZWF0aW9uUm93RW5hYmxlbWVudChcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0c3RhbmRhcmRBY3Rpb25zQ29udGV4dDogU3RhbmRhcmRBY3Rpb25zQ29udGV4dCxcblx0Y3JlYXRpb25Sb3dWaXNpYmlsaXR5OiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj5cbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IHJlc3RyaWN0aW9uc0luc2VydGFibGUgPSBpc1BhdGhJbnNlcnRhYmxlKGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLCB7XG5cdFx0aWdub3JlVGFyZ2V0Q29sbGVjdGlvbjogdHJ1ZSxcblx0XHRhdXRob3JpemVVbnJlc29sdmFibGU6IHRydWUsXG5cdFx0cGF0aFZpc2l0b3I6IChwYXRoOiBzdHJpbmcsIG5hdmlnYXRpb25QYXRoczogc3RyaW5nW10pID0+IHtcblx0XHRcdGlmIChwYXRoLmluZGV4T2YoXCIvXCIpID09PSAwKSB7XG5cdFx0XHRcdHBhdGggPSBzaW5nbGV0b25QYXRoVmlzaXRvcihwYXRoLCBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlZFR5cGVzKCksIG5hdmlnYXRpb25QYXRocyk7XG5cdFx0XHRcdHJldHVybiBwYXRoO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgbmF2aWdhdGlvblByb3BlcnRpZXMgPSBjb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKS5uYXZpZ2F0aW9uUHJvcGVydGllcztcblx0XHRcdGlmIChuYXZpZ2F0aW9uUHJvcGVydGllcykge1xuXHRcdFx0XHRjb25zdCBsYXN0TmF2ID0gbmF2aWdhdGlvblByb3BlcnRpZXNbbmF2aWdhdGlvblByb3BlcnRpZXMubGVuZ3RoIC0gMV07XG5cdFx0XHRcdGNvbnN0IHBhcnRuZXIgPSBsYXN0TmF2Ll90eXBlID09PSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVwiICYmIGxhc3ROYXYucGFydG5lcjtcblx0XHRcdFx0aWYgKHBhcnRuZXIpIHtcblx0XHRcdFx0XHRwYXRoID0gYCR7cGFydG5lcn0vJHtwYXRofWA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBwYXRoO1xuXHRcdH1cblx0fSk7XG5cdGNvbnN0IGlzSW5zZXJ0YWJsZSA9XG5cdFx0cmVzdHJpY3Rpb25zSW5zZXJ0YWJsZS5fdHlwZSA9PT0gXCJVbnJlc29sdmFibGVcIlxuXHRcdFx0PyBpc1BhdGhJbnNlcnRhYmxlKGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLCB7XG5cdFx0XHRcdFx0cGF0aFZpc2l0b3I6IChwYXRoOiBzdHJpbmcpID0+IHNpbmdsZXRvblBhdGhWaXNpdG9yKHBhdGgsIGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVkVHlwZXMoKSwgW10pXG5cdFx0XHQgIH0pXG5cdFx0XHQ6IHJlc3RyaWN0aW9uc0luc2VydGFibGU7XG5cblx0cmV0dXJuIGFuZChcblx0XHRjcmVhdGlvblJvd1Zpc2liaWxpdHksXG5cdFx0aXNJbnNlcnRhYmxlLFxuXHRcdG9yKFxuXHRcdFx0IXN0YW5kYXJkQWN0aW9uc0NvbnRleHQudGFibGVNYW5pZmVzdENvbmZpZ3VyYXRpb24uZGlzYWJsZUFkZFJvd0J1dHRvbkZvckVtcHR5RGF0YSxcblx0XHRcdGZvcm1hdFJlc3VsdChbcGF0aEluTW9kZWwoXCJjcmVhdGlvblJvd0ZpZWxkVmFsaWRpdHlcIiwgXCJpbnRlcm5hbFwiKV0sIHRhYmxlRm9ybWF0dGVycy52YWxpZGF0ZUNyZWF0aW9uUm93RmllbGRzKVxuXHRcdClcblx0KTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlICdDcmVhdGUnIGFjdGlvbi5cbiAqXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dFxuICogQHBhcmFtIHN0YW5kYXJkQWN0aW9uc0NvbnRleHRcbiAqIEBwYXJhbSBjcmVhdGVWaXNpYmlsaXR5XG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ2VuYWJsZWQnIHByb3BlcnR5IG9mIHRoZSAnQ3JlYXRlJyBhY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDcmVhdGVFbmFibGVtZW50KFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRzdGFuZGFyZEFjdGlvbnNDb250ZXh0OiBTdGFuZGFyZEFjdGlvbnNDb250ZXh0LFxuXHRjcmVhdGVWaXNpYmlsaXR5OiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj5cbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IGlzSW5zZXJ0YWJsZSA9IHN0YW5kYXJkQWN0aW9uc0NvbnRleHQucmVzdHJpY3Rpb25zLmlzSW5zZXJ0YWJsZS5leHByZXNzaW9uO1xuXHRjb25zdCBDb2xsZWN0aW9uVHlwZSA9IGNvbnZlcnRlckNvbnRleHQucmVzb2x2ZUFic29sdXRlUGF0aDxhbnk+KHN0YW5kYXJkQWN0aW9uc0NvbnRleHQuY29sbGVjdGlvblBhdGgpLnRhcmdldD8uX3R5cGU7XG5cdHJldHVybiBhbmQoXG5cdFx0Y3JlYXRlVmlzaWJpbGl0eSxcblx0XHRvcihcblx0XHRcdENvbGxlY3Rpb25UeXBlID09PSBcIkVudGl0eVNldFwiLFxuXHRcdFx0YW5kKGlzSW5zZXJ0YWJsZSwgb3IoY29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSAhPT0gVGVtcGxhdGVUeXBlLk9iamVjdFBhZ2UsIFVJLklzRWRpdGFibGUpKVxuXHRcdClcblx0KTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlICdEZWxldGUnIGFjdGlvbi5cbiAqXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dFxuICogQHBhcmFtIHN0YW5kYXJkQWN0aW9uc0NvbnRleHRcbiAqIEBwYXJhbSBkZWxldGVWaXNpYmlsaXR5XG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ2VuYWJsZWQnIHByb3BlcnR5IG9mIHRoZSAnRGVsZXRlJyBhY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWxldGVFbmFibGVtZW50KFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRzdGFuZGFyZEFjdGlvbnNDb250ZXh0OiBTdGFuZGFyZEFjdGlvbnNDb250ZXh0LFxuXHRkZWxldGVWaXNpYmlsaXR5OiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj5cbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IGRlbGV0YWJsZUNvbnRleHRzID0gcGF0aEluTW9kZWwoXCJkZWxldGFibGVDb250ZXh0c1wiLCBcImludGVybmFsXCIpO1xuXHRjb25zdCB1blNhdmVkQ29udGV4dHMgPSBwYXRoSW5Nb2RlbChcInVuU2F2ZWRDb250ZXh0c1wiLCBcImludGVybmFsXCIpO1xuXHRjb25zdCBkcmFmdHNXaXRoRGVsZXRhYmxlQWN0aXZlID0gcGF0aEluTW9kZWwoXCJkcmFmdHNXaXRoRGVsZXRhYmxlQWN0aXZlXCIsIFwiaW50ZXJuYWxcIik7XG5cdGNvbnN0IGRyYWZ0c1dpdGhOb25EZWxldGFibGVBY3RpdmUgPSBwYXRoSW5Nb2RlbChcImRyYWZ0c1dpdGhOb25EZWxldGFibGVBY3RpdmVcIiwgXCJpbnRlcm5hbFwiKTtcblxuXHRyZXR1cm4gYW5kKFxuXHRcdGRlbGV0ZVZpc2liaWxpdHksXG5cdFx0aWZFbHNlKFxuXHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLk9iamVjdFBhZ2UsXG5cdFx0XHRvcihcblx0XHRcdFx0YW5kKG5vdEVxdWFsKGRlbGV0YWJsZUNvbnRleHRzLCB1bmRlZmluZWQpLCBncmVhdGVyVGhhbihsZW5ndGgoZGVsZXRhYmxlQ29udGV4dHMpLCAwKSksXG5cdFx0XHRcdGFuZChub3RFcXVhbChkcmFmdHNXaXRoRGVsZXRhYmxlQWN0aXZlLCB1bmRlZmluZWQpLCBncmVhdGVyVGhhbihsZW5ndGgoZHJhZnRzV2l0aERlbGV0YWJsZUFjdGl2ZSksIDApKVxuXHRcdFx0KSxcblx0XHRcdG9yKFxuXHRcdFx0XHRhbmQobm90RXF1YWwoZGVsZXRhYmxlQ29udGV4dHMsIHVuZGVmaW5lZCksIGdyZWF0ZXJUaGFuKGxlbmd0aChkZWxldGFibGVDb250ZXh0cyksIDApKSxcblx0XHRcdFx0YW5kKG5vdEVxdWFsKGRyYWZ0c1dpdGhEZWxldGFibGVBY3RpdmUsIHVuZGVmaW5lZCksIGdyZWF0ZXJUaGFuKGxlbmd0aChkcmFmdHNXaXRoRGVsZXRhYmxlQWN0aXZlKSwgMCkpLFxuXHRcdFx0XHQvLyBvbiBMUiwgYWxzbyBlbmFibGUgZGVsZXRlIGJ1dHRvbiB0byBjYW5jZWwgZHJhZnRzXG5cdFx0XHRcdGFuZChub3RFcXVhbChkcmFmdHNXaXRoTm9uRGVsZXRhYmxlQWN0aXZlLCB1bmRlZmluZWQpLCBncmVhdGVyVGhhbihsZW5ndGgoZHJhZnRzV2l0aE5vbkRlbGV0YWJsZUFjdGl2ZSksIDApKSxcblx0XHRcdFx0Ly8gZGVsZXRhYmxlIGNvbnRleHRzIHdpdGggdW5zYXZlZCBjaGFuZ2VzIGFyZSBjb3VudGVkIHNlcGFyYXRlbHkgKExSIG9ubHkpXG5cdFx0XHRcdGFuZChub3RFcXVhbCh1blNhdmVkQ29udGV4dHMsIHVuZGVmaW5lZCksIGdyZWF0ZXJUaGFuKGxlbmd0aCh1blNhdmVkQ29udGV4dHMpLCAwKSlcblx0XHRcdClcblx0XHQpXG5cdCk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ2VuYWJsZWQnIHByb3BlcnR5IG9mIHRoZSAnUGFzdGUnIGFjdGlvbi5cbiAqXG4gKiBAcGFyYW0gcGFzdGVWaXNpYmlsaXR5XG4gKiBAcGFyYW0gY3JlYXRlRW5hYmxlbWVudFxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBvZiB0aGUgJ1Bhc3RlJyBhY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXN0ZUVuYWJsZW1lbnQoXG5cdHBhc3RlVmlzaWJpbGl0eTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+LFxuXHRjcmVhdGVFbmFibGVtZW50OiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj5cbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdHJldHVybiBhbmQocGFzdGVWaXNpYmlsaXR5LCBjcmVhdGVFbmFibGVtZW50KTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlICdNYXNzRWRpdCcgYWN0aW9uLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcGFyYW0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dFxuICogQHBhcmFtIG1hc3NFZGl0VmlzaWJpbGl0eVxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBvZiB0aGUgJ01hc3NFZGl0JyBhY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXNzRWRpdEVuYWJsZW1lbnQoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHN0YW5kYXJkQWN0aW9uc0NvbnRleHQ6IFN0YW5kYXJkQWN0aW9uc0NvbnRleHQsXG5cdG1hc3NFZGl0VmlzaWJpbGl0eTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+XG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHRjb25zdCBwYXRoVXBkYXRhYmxlRXhwcmVzc2lvbiA9IHN0YW5kYXJkQWN0aW9uc0NvbnRleHQucmVzdHJpY3Rpb25zLmlzVXBkYXRhYmxlLmV4cHJlc3Npb247XG5cdGNvbnN0IGlzT25seUR5bmFtaWNPbkN1cnJlbnRFbnRpdHk6IGFueSA9XG5cdFx0IWlzQ29uc3RhbnQocGF0aFVwZGF0YWJsZUV4cHJlc3Npb24pICYmXG5cdFx0c3RhbmRhcmRBY3Rpb25zQ29udGV4dC5yZXN0cmljdGlvbnMuaXNVcGRhdGFibGUubmF2aWdhdGlvbkV4cHJlc3Npb24uX3R5cGUgPT09IFwiVW5yZXNvbHZhYmxlXCI7XG5cdGNvbnN0IG51bWJlck9mU2VsZWN0ZWRDb250ZXh0cyA9IGdyZWF0ZXJPckVxdWFsKHBhdGhJbk1vZGVsKFwibnVtYmVyT2ZTZWxlY3RlZENvbnRleHRzXCIsIFwiaW50ZXJuYWxcIiksIDEpO1xuXHRjb25zdCBudW1iZXJPZlVwZGF0YWJsZUNvbnRleHRzID0gZ3JlYXRlck9yRXF1YWwobGVuZ3RoKHBhdGhJbk1vZGVsKFwidXBkYXRhYmxlQ29udGV4dHNcIiwgXCJpbnRlcm5hbFwiKSksIDEpO1xuXHRjb25zdCBiSXNEcmFmdFN1cHBvcnRlZCA9IE1vZGVsSGVscGVyLmlzT2JqZWN0UGF0aERyYWZ0U3VwcG9ydGVkKGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpKTtcblx0Y29uc3QgYkRpc3BsYXlNb2RlID0gaXNJbkRpc3BsYXlNb2RlKGNvbnZlcnRlckNvbnRleHQpO1xuXG5cdC8vIG51bWJlck9mVXBkYXRhYmxlQ29udGV4dHMgbmVlZHMgdG8gYmUgYWRkZWQgdG8gdGhlIGJpbmRpbmcgaW4gY2FzZVxuXHQvLyAxLiBVcGRhdGUgaXMgZGVwZW5kZW50IG9uIGN1cnJlbnQgZW50aXR5IHByb3BlcnR5IChpc09ubHlEeW5hbWljT25DdXJyZW50RW50aXR5IGlzIHRydWUpLlxuXHQvLyAyLiBUaGUgdGFibGUgaXMgcmVhZCBvbmx5IGFuZCBkcmFmdCBlbmFibGVkKGxpa2UgTFIpLCBpbiB0aGlzIGNhc2Ugb25seSBhY3RpdmUgY29udGV4dHMgY2FuIGJlIG1hc3MgZWRpdGVkLlxuXHQvLyAgICBTbywgdXBkYXRlIGRlcGVuZHMgb24gJ0lzQWN0aXZlRW50aXR5JyB2YWx1ZSB3aGljaCBuZWVkcyB0byBiZSBjaGVja2VkIHJ1bnRpbWUuXG5cdGNvbnN0IHJ1bnRpbWVCaW5kaW5nID0gaWZFbHNlKFxuXHRcdG9yKGFuZChiRGlzcGxheU1vZGUsIGJJc0RyYWZ0U3VwcG9ydGVkKSwgaXNPbmx5RHluYW1pY09uQ3VycmVudEVudGl0eSksXG5cdFx0YW5kKG51bWJlck9mU2VsZWN0ZWRDb250ZXh0cywgbnVtYmVyT2ZVcGRhdGFibGVDb250ZXh0cyksXG5cdFx0YW5kKG51bWJlck9mU2VsZWN0ZWRDb250ZXh0cylcblx0KTtcblxuXHRyZXR1cm4gYW5kKG1hc3NFZGl0VmlzaWJpbGl0eSwgaWZFbHNlKGlzT25seUR5bmFtaWNPbkN1cnJlbnRFbnRpdHksIHJ1bnRpbWVCaW5kaW5nLCBhbmQocnVudGltZUJpbmRpbmcsIHBhdGhVcGRhdGFibGVFeHByZXNzaW9uKSkpO1xufVxuXG4vKipcbiAqIFRlbGxzIGlmIHRoZSB0YWJsZSBpbiB0ZW1wbGF0ZSBpcyBpbiBkaXNwbGF5IG1vZGUuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSB2aWV3Q29uZmlndXJhdGlvblxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSB0YWJsZSBpcyBpbiBkaXNwbGF5IG1vZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW5EaXNwbGF5TW9kZShjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LCB2aWV3Q29uZmlndXJhdGlvbj86IFZpZXdQYXRoQ29uZmlndXJhdGlvbik6IGJvb2xlYW4ge1xuXHRjb25zdCB0ZW1wbGF0ZVR5cGUgPSBjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpO1xuXHRpZiAoXG5cdFx0dGVtcGxhdGVUeXBlID09PSBUZW1wbGF0ZVR5cGUuTGlzdFJlcG9ydCB8fFxuXHRcdHRlbXBsYXRlVHlwZSA9PT0gVGVtcGxhdGVUeXBlLkFuYWx5dGljYWxMaXN0UGFnZSB8fFxuXHRcdCh2aWV3Q29uZmlndXJhdGlvbiAmJiBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmhhc011bHRpcGxlVmlzdWFsaXphdGlvbnModmlld0NvbmZpZ3VyYXRpb24pKVxuXHQpIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXHQvLyB1cGRhdGFibGUgd2lsbCBiZSBoYW5kbGVkIGF0IHRoZSBwcm9wZXJ0eSBsZXZlbFxuXHRyZXR1cm4gZmFsc2U7XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BNkJLQSx3QkFBd0I7RUFBQSxXQUF4QkEsd0JBQXdCO0lBQXhCQSx3QkFBd0I7SUFBeEJBLHdCQUF3QjtJQUF4QkEsd0JBQXdCO0VBQUEsR0FBeEJBLHdCQUF3QixLQUF4QkEsd0JBQXdCO0VBb0M3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDTyxTQUFTQyw4QkFBOEIsQ0FDN0NDLGdCQUFrQyxFQUNsQ0MsWUFBMEIsRUFDMUJDLDBCQUFxRCxFQUNyREMsaUJBQXlDLEVBQ2hCO0lBQ3pCLE9BQU87TUFDTkMsY0FBYyxFQUFFQyxtQkFBbUIsQ0FBQ0wsZ0JBQWdCLENBQUNNLHNCQUFzQixFQUFFLENBQUM7TUFD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
|
|
522
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBbm5vdGF0aW9uSGlkZGVuUHJvcGVydHkiLCJnZW5lcmF0ZVN0YW5kYXJkQWN0aW9uc0NvbnRleHQiLCJjb252ZXJ0ZXJDb250ZXh0IiwiY3JlYXRpb25Nb2RlIiwidGFibGVNYW5pZmVzdENvbmZpZ3VyYXRpb24iLCJ2aWV3Q29uZmlndXJhdGlvbiIsImNvbGxlY3Rpb25QYXRoIiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsImdldERhdGFNb2RlbE9iamVjdFBhdGgiLCJoaWRkZW5Bbm5vdGF0aW9uIiwiY3JlYXRlIiwiaXNBY3Rpb25Bbm5vdGF0ZWRIaWRkZW4iLCJDcmVhdGVIaWRkZW4iLCJkZWxldGUiLCJEZWxldGVIaWRkZW4iLCJ1cGRhdGUiLCJVcGRhdGVIaWRkZW4iLCJpc0RyYWZ0T3JTdGlja3lTdXBwb3J0ZWQiLCJpc1ZpZXdXaXRoTXVsdGlwbGVWaXN1YWxpemF0aW9ucyIsImdldE1hbmlmZXN0V3JhcHBlciIsImhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMiLCJuZXdBY3Rpb24iLCJnZXROZXdBY3Rpb24iLCJyZXN0cmljdGlvbnMiLCJnZXRSZXN0cmljdGlvbnMiLCJkYXRhTW9kZWxPYmplY3RQYXRoIiwiYklzRHJhZnRTdXBwb3J0ZWQiLCJNb2RlbEhlbHBlciIsImlzT2JqZWN0UGF0aERyYWZ0U3VwcG9ydGVkIiwiYklzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsInN0YXJ0aW5nRW50aXR5U2V0IiwiYW5ub3RhdGlvbnMiLCJTZXNzaW9uIiwiU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsImN1cnJlbnRFbnRpdHlTZXQiLCJnZXRFbnRpdHlTZXQiLCJpc1NpbmdsZXRvbiIsIkNvbW1vbiIsIkRyYWZ0Um9vdCIsIk5ld0FjdGlvbiIsInVuZGVmaW5lZCIsIm5ld0FjdGlvbk5hbWUiLCJ0b1N0cmluZyIsImF2YWlsYWJsZVByb3BlcnR5IiwiZ2V0RW50aXR5VHlwZSIsImFjdGlvbnMiLCJDb3JlIiwiT3BlcmF0aW9uQXZhaWxhYmxlIiwidmFsdWVPZiIsIm5hbWUiLCJhdmFpbGFibGUiLCJnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24iLCJzQW5ub3RhdGlvblRlcm0iLCJiV2l0aE5hdmlnYXRpb25QYXRoIiwidmlzaXRlZE5hdmlnYXRpb25QYXRocyIsIm5hdmlnYXRpb25Qcm9wZXJ0aWVzIiwibGVuZ3RoIiwiYWN0aW9uQW5ub3RhdGlvblZhbHVlIiwiVUkiLCJwYXRoIiwic2luZ2xldG9uUGF0aFZpc2l0b3IiLCJnZXRDb252ZXJ0ZWRUeXBlcyIsImNvbnN0YW50IiwicmVzdHJpY3Rpb25zRGVmIiwia2V5IiwiZnVuY3Rpb24iLCJpc1BhdGhJbnNlcnRhYmxlIiwiaXNQYXRoVXBkYXRhYmxlIiwiaXNQYXRoRGVsZXRhYmxlIiwicmVzdWx0IiwiZm9yRWFjaCIsImRlZiIsImRlZkZ1bmN0aW9uIiwiZXhwcmVzc2lvbiIsImFwcGx5IiwicGF0aFZpc2l0b3IiLCJuYXZpZ2F0aW9uUGF0aHMiLCJuYXZpZ2F0aW9uRXhwcmVzc2lvbiIsImlnbm9yZVRhcmdldENvbGxlY3Rpb24iLCJhdXRob3JpemVVbnJlc29sdmFibGUiLCJnZXRJbnNlcnRVcGRhdGVBY3Rpb25zVGVtcGxhdGluZyIsInN0YW5kYXJkQWN0aW9uc0NvbnRleHQiLCJpc0RyYWZ0T3JTdGlja3kiLCJpc0NyZWF0ZUFsd2F5c0hpZGRlbiIsIkNyZWF0aW9uTW9kZSIsIkV4dGVybmFsIiwiZ2V0U3RhbmRhcmRBY3Rpb25DcmVhdGUiLCJjcmVhdGVWaXNpYmlsaXR5IiwiZ2V0Q3JlYXRlVmlzaWJpbGl0eSIsImlzVGVtcGxhdGVkIiwiY29tcGlsZUV4cHJlc3Npb24iLCJnZXRDcmVhdGVUZW1wbGF0aW5nIiwidmlzaWJsZSIsImVuYWJsZWQiLCJnZXRDcmVhdGVFbmFibGVtZW50IiwiZ2V0U3RhbmRhcmRBY3Rpb25EZWxldGUiLCJkZWxldGVWaXNpYmlsaXR5IiwiZ2V0RGVsZXRlVmlzaWJpbGl0eSIsImdldERlZmF1bHRUZW1wbGF0aW5nIiwiZ2V0RGVsZXRlRW5hYmxlbWVudCIsImdldENyZWF0aW9uUm93IiwiY3JlYXRpb25Sb3dWaXNpYmlsaXR5IiwiZ2V0Q3JlYXRpb25Sb3dFbmFibGVtZW50IiwiZ2V0U3RhbmRhcmRBY3Rpb25QYXN0ZSIsImlzSW5zZXJ0VXBkYXRlQWN0aW9uc1RlbXBsYXRlZCIsImNyZWF0ZUVuYWJsZW1lbnQiLCJwYXN0ZVZpc2liaWxpdHkiLCJnZXRQYXN0ZVZpc2liaWxpdHkiLCJnZXRQYXN0ZUVuYWJsZW1lbnQiLCJnZXRTdGFuZGFyZEFjdGlvbk1hc3NFZGl0IiwibWFzc0VkaXRWaXNpYmlsaXR5IiwiZ2V0TWFzc0VkaXRWaXNpYmlsaXR5IiwiZ2V0TWFzc0VkaXRFbmFibGVtZW50IiwiaXNGb3JDcmVhdGlvblJvdyIsImFuZCIsIm9yIiwiQ3JlYXRpb25Sb3ciLCJub3QiLCJpc0NvbnN0YW50IiwiYWN0aW9uVmlzaWJpbGl0eSIsImlzSW5zZXJ0YWJsZSIsImlzQ3JlYXRlSGlkZGVuIiwiaWZFbHNlIiwiZ2V0VGVtcGxhdGVUeXBlIiwiVGVtcGxhdGVUeXBlIiwiTGlzdFJlcG9ydCIsIklzRWRpdGFibGUiLCJlcXVhbCIsIklubGluZUNyZWF0aW9uUm93cyIsInR5cGUiLCJpbmxpbmVDcmVhdGlvblJvd3NIaWRkZW5JbkVkaXRNb2RlIiwiSXNDcmVhdGVNb2RlIiwiaXNQYXRoSW5Nb2RlbEV4cHJlc3Npb24iLCJpc0RlbGV0ZUhpZGRlbiIsInBhdGhEZWxldGFibGVFeHByZXNzaW9uIiwiaXNEZWxldGFibGUiLCJBbmFseXRpY2FsTGlzdFBhZ2UiLCJub3RFcXVhbCIsImVuYWJsZVBhc3RlIiwiaW5kZXhPZiIsImlzVXBkYXRlSGlkZGVuIiwicGF0aFVwZGF0YWJsZUV4cHJlc3Npb24iLCJpc1VwZGF0YWJsZSIsImJNYXNzRWRpdEVuYWJsZWRJbk1hbmlmZXN0IiwiZW5hYmxlTWFzc0VkaXQiLCJ0ZW1wbGF0ZUJpbmRpbmdFeHByZXNzaW9uIiwiT2JqZWN0UGFnZSIsInJlc3RyaWN0aW9uc0luc2VydGFibGUiLCJsYXN0TmF2IiwicGFydG5lciIsIl90eXBlIiwiZGlzYWJsZUFkZFJvd0J1dHRvbkZvckVtcHR5RGF0YSIsImZvcm1hdFJlc3VsdCIsInBhdGhJbk1vZGVsIiwidGFibGVGb3JtYXR0ZXJzIiwidmFsaWRhdGVDcmVhdGlvblJvd0ZpZWxkcyIsIkNvbGxlY3Rpb25UeXBlIiwicmVzb2x2ZUFic29sdXRlUGF0aCIsInRhcmdldCIsImRlbGV0YWJsZUNvbnRleHRzIiwidW5TYXZlZENvbnRleHRzIiwiZHJhZnRzV2l0aERlbGV0YWJsZUFjdGl2ZSIsImRyYWZ0c1dpdGhOb25EZWxldGFibGVBY3RpdmUiLCJncmVhdGVyVGhhbiIsImlzT25seUR5bmFtaWNPbkN1cnJlbnRFbnRpdHkiLCJudW1iZXJPZlNlbGVjdGVkQ29udGV4dHMiLCJncmVhdGVyT3JFcXVhbCIsIm51bWJlck9mVXBkYXRhYmxlQ29udGV4dHMiLCJiRGlzcGxheU1vZGUiLCJpc0luRGlzcGxheU1vZGUiLCJydW50aW1lQmluZGluZyIsInRlbXBsYXRlVHlwZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiU3RhbmRhcmRBY3Rpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5U2V0LCBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHlTZXRBbm5vdGF0aW9uc19VSSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlfRWRtXCI7XG5pbXBvcnQgdGFibGVGb3JtYXR0ZXJzIGZyb20gXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL1RhYmxlRm9ybWF0dGVyXCI7XG5pbXBvcnQgdHlwZSB7IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiwgQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHtcblx0YW5kLFxuXHRjb21waWxlRXhwcmVzc2lvbixcblx0Y29uc3RhbnQsXG5cdGVxdWFsLFxuXHRmb3JtYXRSZXN1bHQsXG5cdGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbixcblx0Z3JlYXRlck9yRXF1YWwsXG5cdGdyZWF0ZXJUaGFuLFxuXHRpZkVsc2UsXG5cdGlzQ29uc3RhbnQsXG5cdGlzUGF0aEluTW9kZWxFeHByZXNzaW9uLFxuXHRsZW5ndGgsXG5cdG5vdCxcblx0bm90RXF1YWwsXG5cdG9yLFxuXHRwYXRoSW5Nb2RlbFxufSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRUYXJnZXRPYmplY3RQYXRoLCBpc1BhdGhEZWxldGFibGUsIGlzUGF0aEluc2VydGFibGUsIGlzUGF0aFVwZGF0YWJsZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB0eXBlIENvbnZlcnRlckNvbnRleHQgZnJvbSBcIi4uLy4uLy4uL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB7IHNpbmdsZXRvblBhdGhWaXNpdG9yLCBVSSB9IGZyb20gXCIuLi8uLi8uLi9oZWxwZXJzL0JpbmRpbmdIZWxwZXJcIjtcbmltcG9ydCB0eXBlIHsgVmlld1BhdGhDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IENyZWF0aW9uTW9kZSwgVGVtcGxhdGVUeXBlIH0gZnJvbSBcIi4uLy4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB0eXBlIHsgVGFibGVDb250cm9sQ29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi9UYWJsZVwiO1xuXG5lbnVtIEFubm90YXRpb25IaWRkZW5Qcm9wZXJ0eSB7XG5cdENyZWF0ZUhpZGRlbiA9IFwiQ3JlYXRlSGlkZGVuXCIsXG5cdERlbGV0ZUhpZGRlbiA9IFwiRGVsZXRlSGlkZGVuXCIsXG5cdFVwZGF0ZUhpZGRlbiA9IFwiVXBkYXRlSGlkZGVuXCJcbn1cblxuZXhwb3J0IHR5cGUgU3RhbmRhcmRBY3Rpb25Db25maWdUeXBlID0ge1xuXHRpc1RlbXBsYXRlZD86IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uO1xuXHR2aXNpYmxlOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0ZW5hYmxlZDogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG59O1xuXG50eXBlIEV4cHJlc3Npb25SZXN0cmljdGlvbnNUeXBlID0ge1xuXHRleHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj47XG5cdG5hdmlnYXRpb25FeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj47XG59O1xudHlwZSBTdGFuZGFyZEFjdGlvbnNSZXN0cmljdGlvbnNUeXBlID0gUmVjb3JkPHN0cmluZywgRXhwcmVzc2lvblJlc3RyaWN0aW9uc1R5cGU+O1xuXG5leHBvcnQgdHlwZSBTdGFuZGFyZEFjdGlvbnNDb250ZXh0ID0ge1xuXHRjb2xsZWN0aW9uUGF0aDogc3RyaW5nO1xuXHRoaWRkZW5Bbm5vdGF0aW9uOiB7XG5cdFx0Y3JlYXRlOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj47XG5cdFx0ZGVsZXRlOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj47XG5cdFx0dXBkYXRlOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj47XG5cdH07XG5cdGNyZWF0aW9uTW9kZTogQ3JlYXRpb25Nb2RlO1xuXHRpc0RyYWZ0T3JTdGlja3lTdXBwb3J0ZWQ6IGJvb2xlYW47XG5cdGlzVmlld1dpdGhNdWx0aXBsZVZpc3VhbGl6YXRpb25zOiBib29sZWFuO1xuXHRuZXdBY3Rpb24/OiB7XG5cdFx0bmFtZTogc3RyaW5nO1xuXHRcdGF2YWlsYWJsZTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+O1xuXHR9O1xuXHR0YWJsZU1hbmlmZXN0Q29uZmlndXJhdGlvbjogVGFibGVDb250cm9sQ29uZmlndXJhdGlvbjtcblx0cmVzdHJpY3Rpb25zOiBTdGFuZGFyZEFjdGlvbnNSZXN0cmljdGlvbnNUeXBlO1xufTtcblxuLyoqXG4gKiBHZW5lcmF0ZXMgdGhlIGNvbnRleHQgZm9yIHRoZSBzdGFuZGFyZCBhY3Rpb25zLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcGFyYW0gY3JlYXRpb25Nb2RlXG4gKiBAcGFyYW0gdGFibGVNYW5pZmVzdENvbmZpZ3VyYXRpb25cbiAqIEBwYXJhbSB2aWV3Q29uZmlndXJhdGlvblxuICogQHJldHVybnMgIFRoZSBjb250ZXh0IGZvciB0YWJsZSBhY3Rpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVN0YW5kYXJkQWN0aW9uc0NvbnRleHQoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGNyZWF0aW9uTW9kZTogQ3JlYXRpb25Nb2RlLFxuXHR0YWJsZU1hbmlmZXN0Q29uZmlndXJhdGlvbjogVGFibGVDb250cm9sQ29uZmlndXJhdGlvbixcblx0dmlld0NvbmZpZ3VyYXRpb24/OiBWaWV3UGF0aENvbmZpZ3VyYXRpb25cbik6IFN0YW5kYXJkQWN0aW9uc0NvbnRleHQge1xuXHRyZXR1cm4ge1xuXHRcdGNvbGxlY3Rpb25QYXRoOiBnZXRUYXJnZXRPYmplY3RQYXRoKGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpKSxcblx0XHRoaWRkZW5Bbm5vdGF0aW9uOiB7XG5cdFx0XHRjcmVhdGU6IGlzQWN0aW9uQW5ub3RhdGVkSGlkZGVuKGNvbnZlcnRlckNvbnRleHQsIEFubm90YXRpb25IaWRkZW5Qcm9wZXJ0eS5DcmVhdGVIaWRkZW4pLFxuXHRcdFx0ZGVsZXRlOiBpc0FjdGlvbkFubm90YXRlZEhpZGRlbihjb252ZXJ0ZXJDb250ZXh0LCBBbm5vdGF0aW9uSGlkZGVuUHJvcGVydHkuRGVsZXRlSGlkZGVuKSxcblx0XHRcdHVwZGF0ZTogaXNBY3Rpb25Bbm5vdGF0ZWRIaWRkZW4oY29udmVydGVyQ29udGV4dCwgQW5ub3RhdGlvbkhpZGRlblByb3BlcnR5LlVwZGF0ZUhpZGRlbilcblx0XHR9LFxuXHRcdGNyZWF0aW9uTW9kZTogY3JlYXRpb25Nb2RlLFxuXHRcdGlzRHJhZnRPclN0aWNreVN1cHBvcnRlZDogaXNEcmFmdE9yU3RpY2t5U3VwcG9ydGVkKGNvbnZlcnRlckNvbnRleHQpLFxuXHRcdGlzVmlld1dpdGhNdWx0aXBsZVZpc3VhbGl6YXRpb25zOiB2aWV3Q29uZmlndXJhdGlvblxuXHRcdFx0PyBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmhhc011bHRpcGxlVmlzdWFsaXphdGlvbnModmlld0NvbmZpZ3VyYXRpb24pXG5cdFx0XHQ6IGZhbHNlLFxuXHRcdG5ld0FjdGlvbjogZ2V0TmV3QWN0aW9uKGNvbnZlcnRlckNvbnRleHQpLFxuXHRcdHRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uOiB0YWJsZU1hbmlmZXN0Q29uZmlndXJhdGlvbixcblx0XHRyZXN0cmljdGlvbnM6IGdldFJlc3RyaWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0KVxuXHR9O1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBzdGlja3kgb3IgZHJhZnQgaXMgc3VwcG9ydGVkLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgaXQgaXMgc3VwcG9ydGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RyYWZ0T3JTdGlja3lTdXBwb3J0ZWQoY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IGJvb2xlYW4ge1xuXHRjb25zdCBkYXRhTW9kZWxPYmplY3RQYXRoID0gY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCk7XG5cdGNvbnN0IGJJc0RyYWZ0U3VwcG9ydGVkID0gTW9kZWxIZWxwZXIuaXNPYmplY3RQYXRoRHJhZnRTdXBwb3J0ZWQoZGF0YU1vZGVsT2JqZWN0UGF0aCk7XG5cdGNvbnN0IGJJc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQgPSAoZGF0YU1vZGVsT2JqZWN0UGF0aC5zdGFydGluZ0VudGl0eVNldCBhcyBFbnRpdHlTZXQpPy5hbm5vdGF0aW9ucz8uU2Vzc2lvbj8uU3RpY2t5U2Vzc2lvblN1cHBvcnRlZFxuXHRcdD8gdHJ1ZVxuXHRcdDogZmFsc2U7XG5cblx0cmV0dXJuIGJJc0RyYWZ0U3VwcG9ydGVkIHx8IGJJc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQ7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgY29uZmlndXJlZCBuZXdBY3Rpb24gaW50byBhbm5vdGF0aW9uLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcmV0dXJucyBUaGUgbmV3IGFjdGlvbiBpbmZvXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXdBY3Rpb24oY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCkge1xuXHRjb25zdCBjdXJyZW50RW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKTtcblx0Y29uc3QgbmV3QWN0aW9uID0gIU1vZGVsSGVscGVyLmlzU2luZ2xldG9uKGN1cnJlbnRFbnRpdHlTZXQpXG5cdFx0PyAoY3VycmVudEVudGl0eVNldCBhcyBFbnRpdHlTZXQpPy5hbm5vdGF0aW9ucz8uQ29tbW9uPy5EcmFmdFJvb3Q/Lk5ld0FjdGlvbiB8fFxuXHRcdCAgKGN1cnJlbnRFbnRpdHlTZXQgYXMgRW50aXR5U2V0KT8uYW5ub3RhdGlvbnM/LlNlc3Npb24/LlN0aWNreVNlc3Npb25TdXBwb3J0ZWQ/Lk5ld0FjdGlvblxuXHRcdDogdW5kZWZpbmVkO1xuXHRjb25zdCBuZXdBY3Rpb25OYW1lOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiA9IG5ld0FjdGlvbj8udG9TdHJpbmcoKTtcblx0aWYgKG5ld0FjdGlvbk5hbWUpIHtcblx0XHRsZXQgYXZhaWxhYmxlUHJvcGVydHkgPSBjb252ZXJ0ZXJDb250ZXh0Py5nZXRFbnRpdHlUeXBlKCkuYWN0aW9uc1tuZXdBY3Rpb25OYW1lXT8uYW5ub3RhdGlvbnM/LkNvcmU/Lk9wZXJhdGlvbkF2YWlsYWJsZT8udmFsdWVPZigpO1xuXHRcdGF2YWlsYWJsZVByb3BlcnR5ID0gYXZhaWxhYmxlUHJvcGVydHkgIT09IHVuZGVmaW5lZCA/IGF2YWlsYWJsZVByb3BlcnR5IDogdHJ1ZTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0bmFtZTogbmV3QWN0aW9uTmFtZSxcblx0XHRcdGF2YWlsYWJsZTogZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uPGJvb2xlYW4+KGF2YWlsYWJsZVByb3BlcnR5IGFzIHVua25vd24gYXMgUHJvcGVydHlBbm5vdGF0aW9uVmFsdWU8Ym9vbGVhbj4pXG5cdFx0fTtcblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlIGFjdGlvbiB2aXNpYmlsaXR5IGNvbmZpZ3VyZWQgaW50byBhbm5vdGF0aW9uLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcGFyYW0gc0Fubm90YXRpb25UZXJtXG4gKiBAcGFyYW0gYldpdGhOYXZpZ2F0aW9uUGF0aFxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlIGFjdGlvbiB2aXNpYmlsaXR5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0FjdGlvbkFubm90YXRlZEhpZGRlbihcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0c0Fubm90YXRpb25UZXJtOiBrZXlvZiBFbnRpdHlTZXRBbm5vdGF0aW9uc19VSSxcblx0YldpdGhOYXZpZ2F0aW9uUGF0aCA9IHRydWVcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IGN1cnJlbnRFbnRpdHlTZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpO1xuXHRjb25zdCBkYXRhTW9kZWxPYmplY3RQYXRoID0gY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCk7XG5cdC8vIENvbnNpZGVyIG9ubHkgdGhlIGxhc3QgbGV2ZWwgb2YgbmF2aWdhdGlvbi4gVGhlIG90aGVycyBhcmUgYWxyZWFkeSBjb25zaWRlcmVkIGluIHRoZSBlbGVtZW50IGJpbmRpbmcgb2YgdGhlIHBhZ2UuXG5cdGNvbnN0IHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMgPVxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMubGVuZ3RoID4gMCAmJiBiV2l0aE5hdmlnYXRpb25QYXRoXG5cdFx0XHQ/IFtkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzW2RhdGFNb2RlbE9iamVjdFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMubGVuZ3RoIC0gMV0ubmFtZV1cblx0XHRcdDogW107XG5cdGNvbnN0IGFjdGlvbkFubm90YXRpb25WYWx1ZSA9XG5cdFx0KChjdXJyZW50RW50aXR5U2V0Py5hbm5vdGF0aW9ucy5VSSBhcyBFbnRpdHlTZXRBbm5vdGF0aW9uc19VSSk/LltzQW5ub3RhdGlvblRlcm1dIGFzIFByb3BlcnR5QW5ub3RhdGlvblZhbHVlPGJvb2xlYW4+KSB8fCBmYWxzZTtcblxuXHRyZXR1cm4gY3VycmVudEVudGl0eVNldFxuXHRcdD8gZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGFjdGlvbkFubm90YXRpb25WYWx1ZSwgdmlzaXRlZE5hdmlnYXRpb25QYXRocywgdW5kZWZpbmVkLCAocGF0aDogc3RyaW5nKSA9PlxuXHRcdFx0XHRzaW5nbGV0b25QYXRoVmlzaXRvcihwYXRoLCBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlZFR5cGVzKCksIHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMpXG5cdFx0ICApXG5cdFx0OiBjb25zdGFudChmYWxzZSk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgYW5ub3RhdGVkIHJlc3RyaWN0aW9ucyBmb3IgdGhlIGFjdGlvbnMuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEByZXR1cm5zIFRoZSByZXN0cmljdGlvbiBpbmZvcm1hdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzdHJpY3Rpb25zKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBTdGFuZGFyZEFjdGlvbnNSZXN0cmljdGlvbnNUeXBlIHtcblx0Y29uc3QgZGF0YU1vZGVsT2JqZWN0UGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpO1xuXHRjb25zdCByZXN0cmljdGlvbnNEZWYgPSBbXG5cdFx0e1xuXHRcdFx0a2V5OiBcImlzSW5zZXJ0YWJsZVwiLFxuXHRcdFx0ZnVuY3Rpb246IGlzUGF0aEluc2VydGFibGVcblx0XHR9LFxuXHRcdHtcblx0XHRcdGtleTogXCJpc1VwZGF0YWJsZVwiLFxuXHRcdFx0ZnVuY3Rpb246IGlzUGF0aFVwZGF0YWJsZVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0a2V5OiBcImlzRGVsZXRhYmxlXCIsXG5cdFx0XHRmdW5jdGlvbjogaXNQYXRoRGVsZXRhYmxlXG5cdFx0fVxuXHRdO1xuXHRjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIEV4cHJlc3Npb25SZXN0cmljdGlvbnNUeXBlPiA9IHt9O1xuXHRyZXN0cmljdGlvbnNEZWYuZm9yRWFjaChmdW5jdGlvbiAoZGVmKSB7XG5cdFx0Y29uc3QgZGVmRnVuY3Rpb24gPSBkZWZbXCJmdW5jdGlvblwiXTtcblx0XHRyZXN1bHRbZGVmLmtleV0gPSB7XG5cdFx0XHRleHByZXNzaW9uOiBkZWZGdW5jdGlvbi5hcHBseShudWxsLCBbXG5cdFx0XHRcdGRhdGFNb2RlbE9iamVjdFBhdGgsXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRwYXRoVmlzaXRvcjogKHBhdGg6IHN0cmluZywgbmF2aWdhdGlvblBhdGhzOiBzdHJpbmdbXSkgPT5cblx0XHRcdFx0XHRcdHNpbmdsZXRvblBhdGhWaXNpdG9yKHBhdGgsIGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVkVHlwZXMoKSwgbmF2aWdhdGlvblBhdGhzKVxuXHRcdFx0XHR9XG5cdFx0XHRdKSxcblx0XHRcdG5hdmlnYXRpb25FeHByZXNzaW9uOiBkZWZGdW5jdGlvbi5hcHBseShudWxsLCBbXG5cdFx0XHRcdGRhdGFNb2RlbE9iamVjdFBhdGgsXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRpZ25vcmVUYXJnZXRDb2xsZWN0aW9uOiB0cnVlLFxuXHRcdFx0XHRcdGF1dGhvcml6ZVVucmVzb2x2YWJsZTogdHJ1ZSxcblx0XHRcdFx0XHRwYXRoVmlzaXRvcjogKHBhdGg6IHN0cmluZywgbmF2aWdhdGlvblBhdGhzOiBzdHJpbmdbXSkgPT5cblx0XHRcdFx0XHRcdHNpbmdsZXRvblBhdGhWaXNpdG9yKHBhdGgsIGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVkVHlwZXMoKSwgbmF2aWdhdGlvblBhdGhzKVxuXHRcdFx0XHR9XG5cdFx0XHRdKVxuXHRcdH07XG5cdH0pO1xuXHRyZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0ZW1wbGF0aW5nIGZvciBpbnNlcnQvdXBkYXRlIGFjdGlvbnMgaXMgbWFuZGF0b3J5LlxuICpcbiAqIEBwYXJhbSBzdGFuZGFyZEFjdGlvbnNDb250ZXh0XG4gKiBAcGFyYW0gaXNEcmFmdE9yU3RpY2t5XG4gKiBAcGFyYW0gaXNDcmVhdGVBbHdheXNIaWRkZW5cbiAqIEByZXR1cm5zIFRoZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5zZXJ0VXBkYXRlQWN0aW9uc1RlbXBsYXRpbmcoXG5cdHN0YW5kYXJkQWN0aW9uc0NvbnRleHQ6IFN0YW5kYXJkQWN0aW9uc0NvbnRleHQsXG5cdGlzRHJhZnRPclN0aWNreTogYm9vbGVhbixcblx0aXNDcmVhdGVBbHdheXNIaWRkZW46IGJvb2xlYW5cbik6IGJvb2xlYW4ge1xuXHRyZXR1cm4gKGlzRHJhZnRPclN0aWNreSB8fCBzdGFuZGFyZEFjdGlvbnNDb250ZXh0LmNyZWF0aW9uTW9kZSA9PT0gQ3JlYXRpb25Nb2RlLkV4dGVybmFsKSAmJiAhaXNDcmVhdGVBbHdheXNIaWRkZW47XG59XG5cbi8qKlxuICogR2V0cyB0aGUgYmluZGluZyBleHByZXNzaW9ucyBmb3IgdGhlIHByb3BlcnRpZXMgb2YgdGhlICdDcmVhdGUnIGFjdGlvbi5cbiAqXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dFxuICogQHBhcmFtIHN0YW5kYXJkQWN0aW9uc0NvbnRleHRcbiAqIEByZXR1cm5zIFRoZSBzdGFuZGFyZCBhY3Rpb24gaW5mb1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhbmRhcmRBY3Rpb25DcmVhdGUoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHN0YW5kYXJkQWN0aW9uc0NvbnRleHQ6IFN0YW5kYXJkQWN0aW9uc0NvbnRleHRcbik6IFN0YW5kYXJkQWN0aW9uQ29uZmlnVHlwZSB7XG5cdGNvbnN0IGNyZWF0ZVZpc2liaWxpdHkgPSBnZXRDcmVhdGVWaXNpYmlsaXR5KGNvbnZlcnRlckNvbnRleHQsIHN0YW5kYXJkQWN0aW9uc0NvbnRleHQpO1xuXHRyZXR1cm4ge1xuXHRcdGlzVGVtcGxhdGVkOiBjb21waWxlRXhwcmVzc2lvbihnZXRDcmVhdGVUZW1wbGF0aW5nKHN0YW5kYXJkQWN0aW9uc0NvbnRleHQsIGNyZWF0ZVZpc2liaWxpdHkpKSxcblx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihjcmVhdGVWaXNpYmlsaXR5KSxcblx0XHRlbmFibGVkOiBjb21waWxlRXhwcmVzc2lvbihnZXRDcmVhdGVFbmFibGVtZW50KGNvbnZlcnRlckNvbnRleHQsIHN0YW5kYXJkQWN0aW9uc0NvbnRleHQsIGNyZWF0ZVZpc2liaWxpdHkpKVxuXHR9O1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbnMgZm9yIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSAnRGVsZXRlJyBhY3Rpb24uXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSBzdGFuZGFyZEFjdGlvbnNDb250ZXh0XG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9ucyBmb3IgdGhlIHByb3BlcnRpZXMgb2YgdGhlICdEZWxldGUnIGFjdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YW5kYXJkQWN0aW9uRGVsZXRlKFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRzdGFuZGFyZEFjdGlvbnNDb250ZXh0OiBTdGFuZGFyZEFjdGlvbnNDb250ZXh0XG4pOiBTdGFuZGFyZEFjdGlvbkNvbmZpZ1R5cGUge1xuXHRjb25zdCBkZWxldGVWaXNpYmlsaXR5ID0gZ2V0RGVsZXRlVmlzaWJpbGl0eShjb252ZXJ0ZXJDb250ZXh0LCBzdGFuZGFyZEFjdGlvbnNDb250ZXh0KTtcblxuXHRyZXR1cm4ge1xuXHRcdGlzVGVtcGxhdGVkOiBjb21waWxlRXhwcmVzc2lvbihnZXREZWZhdWx0VGVtcGxhdGluZyhkZWxldGVWaXNpYmlsaXR5KSksXG5cdFx0dmlzaWJsZTogY29tcGlsZUV4cHJlc3Npb24oZGVsZXRlVmlzaWJpbGl0eSksXG5cdFx0ZW5hYmxlZDogY29tcGlsZUV4cHJlc3Npb24oZ2V0RGVsZXRlRW5hYmxlbWVudChjb252ZXJ0ZXJDb250ZXh0LCBzdGFuZGFyZEFjdGlvbnNDb250ZXh0LCBkZWxldGVWaXNpYmlsaXR5KSlcblx0fTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dFxuICogQHBhcmFtIHN0YW5kYXJkQWN0aW9uc0NvbnRleHRcbiAqIEByZXR1cm5zIFN0YW5kYXJkQWN0aW9uQ29uZmlnVHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3JlYXRpb25Sb3coXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHN0YW5kYXJkQWN0aW9uc0NvbnRleHQ6IFN0YW5kYXJkQWN0aW9uc0NvbnRleHRcbik6IFN0YW5kYXJkQWN0aW9uQ29uZmlnVHlwZSB7XG5cdGNvbnN0IGNyZWF0aW9uUm93VmlzaWJpbGl0eSA9IGdldENyZWF0ZVZpc2liaWxpdHkoY29udmVydGVyQ29udGV4dCwgc3RhbmRhcmRBY3Rpb25zQ29udGV4dCwgdHJ1ZSk7XG5cblx0cmV0dXJuIHtcblx0XHRpc1RlbXBsYXRlZDogY29tcGlsZUV4cHJlc3Npb24oZ2V0Q3JlYXRlVGVtcGxhdGluZyhzdGFuZGFyZEFjdGlvbnNDb250ZXh0LCBjcmVhdGlvblJvd1Zpc2liaWxpdHksIHRydWUpKSxcblx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihjcmVhdGlvblJvd1Zpc2liaWxpdHkpLFxuXHRcdGVuYWJsZWQ6IGNvbXBpbGVFeHByZXNzaW9uKGdldENyZWF0aW9uUm93RW5hYmxlbWVudChjb252ZXJ0ZXJDb250ZXh0LCBzdGFuZGFyZEFjdGlvbnNDb250ZXh0LCBjcmVhdGlvblJvd1Zpc2liaWxpdHkpKVxuXHR9O1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbnMgZm9yIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSAnUGFzdGUnIGFjdGlvbi5cbiAqXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dFxuICogQHBhcmFtIHN0YW5kYXJkQWN0aW9uc0NvbnRleHRcbiAqIEBwYXJhbSBpc0luc2VydFVwZGF0ZUFjdGlvbnNUZW1wbGF0ZWRcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb25zIGZvciB0aGUgcHJvcGVydGllcyBvZiB0aGUgJ1Bhc3RlJyBhY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGFuZGFyZEFjdGlvblBhc3RlKFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRzdGFuZGFyZEFjdGlvbnNDb250ZXh0OiBTdGFuZGFyZEFjdGlvbnNDb250ZXh0LFxuXHRpc0luc2VydFVwZGF0ZUFjdGlvbnNUZW1wbGF0ZWQ6IGJvb2xlYW5cbik6IFN0YW5kYXJkQWN0aW9uQ29uZmlnVHlwZSB7XG5cdGNvbnN0IGNyZWF0ZVZpc2liaWxpdHkgPSBnZXRDcmVhdGVWaXNpYmlsaXR5KGNvbnZlcnRlckNvbnRleHQsIHN0YW5kYXJkQWN0aW9uc0NvbnRleHQpO1xuXHRjb25zdCBjcmVhdGVFbmFibGVtZW50ID0gZ2V0Q3JlYXRlRW5hYmxlbWVudChjb252ZXJ0ZXJDb250ZXh0LCBzdGFuZGFyZEFjdGlvbnNDb250ZXh0LCBjcmVhdGVWaXNpYmlsaXR5KTtcblx0Y29uc3QgcGFzdGVWaXNpYmlsaXR5ID0gZ2V0UGFzdGVWaXNpYmlsaXR5KGNvbnZlcnRlckNvbnRleHQsIHN0YW5kYXJkQWN0aW9uc0NvbnRleHQsIGNyZWF0ZVZpc2liaWxpdHksIGlzSW5zZXJ0VXBkYXRlQWN0aW9uc1RlbXBsYXRlZCk7XG5cdHJldHVybiB7XG5cdFx0dmlzaWJsZTogY29tcGlsZUV4cHJlc3Npb24ocGFzdGVWaXNpYmlsaXR5KSxcblx0XHRlbmFibGVkOiBjb21waWxlRXhwcmVzc2lvbihnZXRQYXN0ZUVuYWJsZW1lbnQocGFzdGVWaXNpYmlsaXR5LCBjcmVhdGVFbmFibGVtZW50KSlcblx0fTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBiaW5kaW5nIGV4cHJlc3Npb25zIGZvciB0aGUgcHJvcGVydGllcyBvZiB0aGUgJ01hc3NFZGl0JyBhY3Rpb24uXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSBzdGFuZGFyZEFjdGlvbnNDb250ZXh0XG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9ucyBmb3IgdGhlIHByb3BlcnRpZXMgb2YgdGhlICdNYXNzRWRpdCcgYWN0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhbmRhcmRBY3Rpb25NYXNzRWRpdChcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0c3RhbmRhcmRBY3Rpb25zQ29udGV4dDogU3RhbmRhcmRBY3Rpb25zQ29udGV4dFxuKTogU3RhbmRhcmRBY3Rpb25Db25maWdUeXBlIHtcblx0Y29uc3QgbWFzc0VkaXRWaXNpYmlsaXR5ID0gZ2V0TWFzc0VkaXRWaXNpYmlsaXR5KGNvbnZlcnRlckNvbnRleHQsIHN0YW5kYXJkQWN0aW9uc0NvbnRleHQpO1xuXG5cdHJldHVybiB7XG5cdFx0aXNUZW1wbGF0ZWQ6IGNvbXBpbGVFeHByZXNzaW9uKGdldERlZmF1bHRUZW1wbGF0aW5nKG1hc3NFZGl0VmlzaWJpbGl0eSkpLFxuXHRcdHZpc2libGU6IGNvbXBpbGVFeHByZXNzaW9uKG1hc3NFZGl0VmlzaWJpbGl0eSksXG5cdFx0ZW5hYmxlZDogY29tcGlsZUV4cHJlc3Npb24oZ2V0TWFzc0VkaXRFbmFibGVtZW50KGNvbnZlcnRlckNvbnRleHQsIHN0YW5kYXJkQWN0aW9uc0NvbnRleHQsIG1hc3NFZGl0VmlzaWJpbGl0eSkpXG5cdH07XG59XG5cbi8qKlxuICogR2V0cyB0aGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgdGVtcGxhdGluZyBvZiB0aGUgJ0NyZWF0ZScgYWN0aW9uLlxuICpcbiAqIEBwYXJhbSBzdGFuZGFyZEFjdGlvbnNDb250ZXh0XG4gKiBAcGFyYW0gY3JlYXRlVmlzaWJpbGl0eVxuICogQHBhcmFtIGlzRm9yQ3JlYXRpb25Sb3dcbiAqIEByZXR1cm5zIFRoZSBjcmVhdGUgYmluZGluZyBleHByZXNzaW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDcmVhdGVUZW1wbGF0aW5nKFxuXHRzdGFuZGFyZEFjdGlvbnNDb250ZXh0OiBTdGFuZGFyZEFjdGlvbnNDb250ZXh0LFxuXHRjcmVhdGVWaXNpYmlsaXR5OiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4sXG5cdGlzRm9yQ3JlYXRpb25Sb3cgPSBmYWxzZVxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Ly9UZW1wbGF0aW5nIG9mIENyZWF0ZSBCdXR0b24gaXMgbm90IGRvbmU6XG5cdC8vIFx0IC0gSWYgQnV0dG9uIGlzIG5ldmVyIHZpc2libGUoY292ZXJlZCB0aGUgRXh0ZXJuYWwgY3JlYXRlIGJ1dHRvbiwgbmV3IEFjdGlvbilcblx0Ly9cdCAtIG9yIENyZWF0aW9uTW9kZSBpcyBvbiBDcmVhdGlvblJvdyBmb3IgQ3JlYXRlIEJ1dHRvblxuXHQvL1x0IC0gb3IgQ3JlYXRpb25Nb2RlIGlzIG5vdCBvbiBDcmVhdGlvblJvdyBmb3IgQ3JlYXRpb25Sb3cgQnV0dG9uXG5cblx0cmV0dXJuIGFuZChcblx0XHQvL1hOT1IgZ2F0ZVxuXHRcdG9yKFxuXHRcdFx0YW5kKGlzRm9yQ3JlYXRpb25Sb3csIHN0YW5kYXJkQWN0aW9uc0NvbnRleHQuY3JlYXRpb25Nb2RlID09PSBDcmVhdGlvbk1vZGUuQ3JlYXRpb25Sb3cpLFxuXHRcdFx0YW5kKCFpc0ZvckNyZWF0aW9uUm93LCBzdGFuZGFyZEFjdGlvbnNDb250ZXh0LmNyZWF0aW9uTW9kZSAhPT0gQ3JlYXRpb25Nb2RlLkNyZWF0aW9uUm93KVxuXHRcdCksXG5cdFx0b3Iobm90KGlzQ29uc3RhbnQoY3JlYXRlVmlzaWJpbGl0eSkpLCBjcmVhdGVWaXNpYmlsaXR5KVxuXHQpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlIHRlbXBsYXRpbmcgb2YgdGhlIG5vbi1DcmVhdGUgYWN0aW9ucy5cbiAqXG4gKiBAcGFyYW0gYWN0aW9uVmlzaWJpbGl0eVxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlIHRlbXBsYXRpbmcgb2YgdGhlIG5vbi1DcmVhdGUgYWN0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRUZW1wbGF0aW5nKGFjdGlvblZpc2liaWxpdHk6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdHJldHVybiBvcihub3QoaXNDb25zdGFudChhY3Rpb25WaXNpYmlsaXR5KSksIGFjdGlvblZpc2liaWxpdHkpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBvZiB0aGUgJ0NyZWF0ZScgYWN0aW9uLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcGFyYW0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dFxuICogQHBhcmFtIGlzRm9yQ3JlYXRpb25Sb3dcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlICdDcmVhdGUnIGFjdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENyZWF0ZVZpc2liaWxpdHkoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHN0YW5kYXJkQWN0aW9uc0NvbnRleHQ6IFN0YW5kYXJkQWN0aW9uc0NvbnRleHQsXG5cdGlzRm9yQ3JlYXRpb25Sb3cgPSBmYWxzZVxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgaXNJbnNlcnRhYmxlID0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dC5yZXN0cmljdGlvbnMuaXNJbnNlcnRhYmxlLmV4cHJlc3Npb247XG5cdGNvbnN0IGlzQ3JlYXRlSGlkZGVuID0gaXNGb3JDcmVhdGlvblJvd1xuXHRcdD8gaXNBY3Rpb25Bbm5vdGF0ZWRIaWRkZW4oY29udmVydGVyQ29udGV4dCwgQW5ub3RhdGlvbkhpZGRlblByb3BlcnR5LkNyZWF0ZUhpZGRlbiwgZmFsc2UpXG5cdFx0OiBzdGFuZGFyZEFjdGlvbnNDb250ZXh0LmhpZGRlbkFubm90YXRpb24uY3JlYXRlO1xuXHRjb25zdCBuZXdBY3Rpb24gPSBzdGFuZGFyZEFjdGlvbnNDb250ZXh0Lm5ld0FjdGlvbjtcblx0Ly9DcmVhdGUgQnV0dG9uIGlzIHZpc2libGU6XG5cdC8vIFx0IC0gSWYgdGhlIGNyZWF0aW9uIG1vZGUgaXMgZXh0ZXJuYWxcblx0Ly8gICAgICAtIElmIHdlJ3JlIG9uIHRoZSBsaXN0IHJlcG9ydCBhbmQgY3JlYXRlIGlzIG5vdCBoaWRkZW5cblx0Ly9cdFx0LSBPdGhlcndpc2UgdGhpcyBkZXBlbmRzIG9uIHRoZSB2YWx1ZSBvZiB0aGUgVUkuSXNFZGl0YWJsZVxuXHQvL1x0IC0gT3RoZXJ3aXNlXG5cdC8vXHRcdC0gSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBpcyB2YWxpZCB0aGVuIGNyZWF0ZSBidXR0b24gaXNuJ3QgdmlzaWJsZVxuXHQvL1x0XHRcdC0gbm8gbmV3QWN0aW9uIGF2YWlsYWJsZVxuXHQvL1x0XHRcdC0gSXQncyBub3QgaW5zZXJ0YWJsZSBhbmQgdGhlcmUgaXMgbm90IGEgbmV3IGFjdGlvblxuXHQvL1x0XHRcdC0gY3JlYXRlIGlzIGhpZGRlblxuXHQvL1x0XHRcdC0gVGhlcmUgYXJlIG11bHRpcGxlIHZpc3VhbGl6YXRpb25zXG5cdC8vXHRcdFx0LSBJdCdzIGFuIEFuYWx5dGljYWwgTGlzdCBQYWdlXG5cdC8vXHRcdFx0LSBVc2VzIElubGluZUNyZWF0aW9uUm93cyBtb2RlIGFuZCBhIFJlc3BvbnNpdmUgdGFibGUgdHlwZSwgd2l0aCB0aGUgcGFyYW1ldGVyIGlubGluZUNyZWF0aW9uUm93c0hpZGRlbkluRWRpdE1vZGUgdG8gdHJ1ZSB3aGlsZSBub3QgaW4gY3JlYXRlIG1vZGVcblx0Ly8gICAtIE90aGVyd2lzZVxuXHQvLyBcdCBcdC0gSWYgd2UncmUgb24gdGhlIGxpc3QgcmVwb3J0IC0+XG5cdC8vIFx0IFx0XHQtIElmIFVJLkNyZWF0ZUhpZGRlbiBwb2ludHMgdG8gYSBwcm9wZXJ0eSBwYXRoIC0+IHByb3ZpZGUgYSBuZWdhdGVkIGJpbmRpbmcgdG8gdGhpcyBwYXRoXG5cdC8vIFx0IFx0XHQtIE90aGVyd2lzZSwgY3JlYXRlIGlzIHZpc2libGVcblx0Ly8gXHQgXHQtIE90aGVyd2lzZVxuXHQvLyBcdCAgXHQgLSBUaGlzIGRlcGVuZHMgb24gdGhlIHZhbHVlIG9mIHRoZSBVSS5Jc0VkaXRhYmxlXG5cdHJldHVybiBpZkVsc2UoXG5cdFx0c3RhbmRhcmRBY3Rpb25zQ29udGV4dC5jcmVhdGlvbk1vZGUgPT09IENyZWF0aW9uTW9kZS5FeHRlcm5hbCxcblx0XHRhbmQobm90KGlzQ3JlYXRlSGlkZGVuKSwgb3IoY29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLkxpc3RSZXBvcnQsIFVJLklzRWRpdGFibGUpKSxcblx0XHRpZkVsc2UoXG5cdFx0XHRvcihcblx0XHRcdFx0YW5kKGlzQ29uc3RhbnQobmV3QWN0aW9uPy5hdmFpbGFibGUpLCBlcXVhbChuZXdBY3Rpb24/LmF2YWlsYWJsZSwgZmFsc2UpKSxcblx0XHRcdFx0YW5kKGlzQ29uc3RhbnQoaXNJbnNlcnRhYmxlKSwgZXF1YWwoaXNJbnNlcnRhYmxlLCBmYWxzZSksICFuZXdBY3Rpb24pLFxuXHRcdFx0XHRhbmQoaXNDb25zdGFudChpc0NyZWF0ZUhpZGRlbiksIGVxdWFsKGlzQ3JlYXRlSGlkZGVuLCB0cnVlKSksXG5cdFx0XHRcdGFuZChcblx0XHRcdFx0XHRzdGFuZGFyZEFjdGlvbnNDb250ZXh0LmNyZWF0aW9uTW9kZSA9PT0gQ3JlYXRpb25Nb2RlLklubGluZUNyZWF0aW9uUm93cyxcblx0XHRcdFx0XHRzdGFuZGFyZEFjdGlvbnNDb250ZXh0LnRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uPy50eXBlID09PSBcIlJlc3BvbnNpdmVUYWJsZVwiLFxuXHRcdFx0XHRcdGlmRWxzZShcblx0XHRcdFx0XHRcdHN0YW5kYXJkQWN0aW9uc0NvbnRleHQ/LnRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uPy5pbmxpbmVDcmVhdGlvblJvd3NIaWRkZW5JbkVkaXRNb2RlID09PSBmYWxzZSxcblx0XHRcdFx0XHRcdHRydWUsXG5cdFx0XHRcdFx0XHRVSS5Jc0NyZWF0ZU1vZGVcblx0XHRcdFx0XHQpXG5cdFx0XHRcdClcblx0XHRcdCksXG5cdFx0XHRmYWxzZSxcblx0XHRcdGlmRWxzZShcblx0XHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLkxpc3RSZXBvcnQsXG5cdFx0XHRcdG9yKG5vdChpc1BhdGhJbk1vZGVsRXhwcmVzc2lvbihpc0NyZWF0ZUhpZGRlbikpLCBub3QoaXNDcmVhdGVIaWRkZW4pKSxcblx0XHRcdFx0YW5kKG5vdChpc0NyZWF0ZUhpZGRlbiksIFVJLklzRWRpdGFibGUpXG5cdFx0XHQpXG5cdFx0KVxuXHQpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBvZiB0aGUgJ0RlbGV0ZScgYWN0aW9uLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcGFyYW0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dFxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBvZiB0aGUgJ0RlbGV0ZScgYWN0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVsZXRlVmlzaWJpbGl0eShcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0c3RhbmRhcmRBY3Rpb25zQ29udGV4dDogU3RhbmRhcmRBY3Rpb25zQ29udGV4dFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgaXNEZWxldGVIaWRkZW4gPSBzdGFuZGFyZEFjdGlvbnNDb250ZXh0LmhpZGRlbkFubm90YXRpb24uZGVsZXRlO1xuXHRjb25zdCBwYXRoRGVsZXRhYmxlRXhwcmVzc2lvbiA9IHN0YW5kYXJkQWN0aW9uc0NvbnRleHQucmVzdHJpY3Rpb25zLmlzRGVsZXRhYmxlLmV4cHJlc3Npb247XG5cblx0Ly9EZWxldGUgQnV0dG9uIGlzIHZpc2libGU6XG5cdC8vIFx0IFByZXJlcXVpc2l0ZXM6XG5cdC8vXHQgLSBJZiB3ZSdyZSBub3Qgb24gQUxQXG5cdC8vICAgLSBJZiByZXN0cmljdGlvbnMgb24gZGVsZXRhYmxlIHNldCB0byBmYWxzZSAtPiBub3QgdmlzaWJsZVxuXHQvLyAgIC0gT3RoZXJ3aXNlXG5cdC8vXHRcdFx0LSBJZiBVSS5EZWxldGVIaWRkZW4gaXMgdHJ1ZSAtPiBub3QgdmlzaWJsZVxuXHQvL1x0XHRcdC0gT3RoZXJ3aXNlXG5cdC8vIFx0IFx0XHRcdC0gSWYgd2UncmUgb24gT1AgLT4gZGVwZW5kaW5nIGlmIFVJIGlzIGVkaXRhYmxlIGFuZCByZXN0cmljdGlvbnMgb24gZGVsZXRhYmxlXG5cdC8vXHRcdFx0XHQtIE90aGVyd2lzZVxuXHQvL1x0XHRcdFx0IFx0LSBJZiBVSS5EZWxldGVIaWRkZW4gcG9pbnRzIHRvIGEgcHJvcGVydHkgcGF0aCAtPiBwcm92aWRlIGEgbmVnYXRlZCBiaW5kaW5nIHRvIHRoaXMgcGF0aFxuXHQvL1x0IFx0IFx0XHQgXHQtIE90aGVyd2lzZSwgZGVsZXRlIGlzIHZpc2libGVcblxuXHRyZXR1cm4gaWZFbHNlKFxuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5BbmFseXRpY2FsTGlzdFBhZ2UsXG5cdFx0ZmFsc2UsXG5cdFx0aWZFbHNlKFxuXHRcdFx0YW5kKGlzQ29uc3RhbnQocGF0aERlbGV0YWJsZUV4cHJlc3Npb24pLCBlcXVhbChwYXRoRGVsZXRhYmxlRXhwcmVzc2lvbiwgZmFsc2UpKSxcblx0XHRcdGZhbHNlLFxuXHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRhbmQoaXNDb25zdGFudChpc0RlbGV0ZUhpZGRlbiksIGVxdWFsKGlzRGVsZXRlSGlkZGVuLCBjb25zdGFudCh0cnVlKSkpLFxuXHRcdFx0XHRmYWxzZSxcblx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgIT09IFRlbXBsYXRlVHlwZS5MaXN0UmVwb3J0LFxuXHRcdFx0XHRcdGFuZChub3QoaXNEZWxldGVIaWRkZW4pLCBVSS5Jc0VkaXRhYmxlKSxcblx0XHRcdFx0XHRub3QoYW5kKGlzUGF0aEluTW9kZWxFeHByZXNzaW9uKGlzRGVsZXRlSGlkZGVuKSwgaXNEZWxldGVIaWRkZW4pKVxuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0KVxuXHQpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBvZiB0aGUgJ1Bhc3RlJyBhY3Rpb24uXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSBzdGFuZGFyZEFjdGlvbnNDb250ZXh0XG4gKiBAcGFyYW0gY3JlYXRlVmlzaWJpbGl0eVxuICogQHBhcmFtIGlzSW5zZXJ0VXBkYXRlQWN0aW9uc1RlbXBsYXRlZFxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBvZiB0aGUgJ1Bhc3RlJyBhY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXN0ZVZpc2liaWxpdHkoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHN0YW5kYXJkQWN0aW9uc0NvbnRleHQ6IFN0YW5kYXJkQWN0aW9uc0NvbnRleHQsXG5cdGNyZWF0ZVZpc2liaWxpdHk6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPixcblx0aXNJbnNlcnRVcGRhdGVBY3Rpb25zVGVtcGxhdGVkOiBib29sZWFuXG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHQvLyBJZiBDcmVhdGUgaXMgdmlzaWJsZSwgZW5hYmxlUGFzdGUgaXMgbm90IGRpc2FibGVkIGludG8gbWFuaWZlc3QgYW5kIHdlIGFyZSBvbiBPUC9ibG9ja3Mgb3V0c2lkZSBGaW9yaSBlbGVtZW50cyB0ZW1wbGF0ZXNcblx0Ly8gVGhlbiBidXR0b24gd2lsbCBiZSB2aXNpYmxlIGFjY29yZGluZyB0byBpbnNlcnRhYmxlIHJlc3RyaWN0aW9ucyBhbmQgY3JlYXRlIHZpc2liaWxpdHlcblx0Ly8gT3RoZXJ3aXNlIGl0J3Mgbm90IHZpc2libGVcblx0cmV0dXJuIGFuZChcblx0XHRub3RFcXVhbChzdGFuZGFyZEFjdGlvbnNDb250ZXh0LnRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uLmVuYWJsZVBhc3RlLCBmYWxzZSksXG5cdFx0Y3JlYXRlVmlzaWJpbGl0eSxcblx0XHRpc0luc2VydFVwZGF0ZUFjdGlvbnNUZW1wbGF0ZWQsXG5cdFx0W1RlbXBsYXRlVHlwZS5MaXN0UmVwb3J0LCBUZW1wbGF0ZVR5cGUuQW5hbHl0aWNhbExpc3RQYWdlXS5pbmRleE9mKGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkpID09PSAtMSxcblx0XHRzdGFuZGFyZEFjdGlvbnNDb250ZXh0LnJlc3RyaWN0aW9ucy5pc0luc2VydGFibGUuZXhwcmVzc2lvblxuXHQpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBvZiB0aGUgJ01hc3NFZGl0JyBhY3Rpb24uXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSBzdGFuZGFyZEFjdGlvbnNDb250ZXh0XG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSAnTWFzc0VkaXQnIGFjdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1hc3NFZGl0VmlzaWJpbGl0eShcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0c3RhbmRhcmRBY3Rpb25zQ29udGV4dDogU3RhbmRhcmRBY3Rpb25zQ29udGV4dFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgaXNVcGRhdGVIaWRkZW4gPSBzdGFuZGFyZEFjdGlvbnNDb250ZXh0LmhpZGRlbkFubm90YXRpb24udXBkYXRlLFxuXHRcdHBhdGhVcGRhdGFibGVFeHByZXNzaW9uID0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dC5yZXN0cmljdGlvbnMuaXNVcGRhdGFibGUuZXhwcmVzc2lvbixcblx0XHRiTWFzc0VkaXRFbmFibGVkSW5NYW5pZmVzdDogYm9vbGVhbiA9IHN0YW5kYXJkQWN0aW9uc0NvbnRleHQudGFibGVNYW5pZmVzdENvbmZpZ3VyYXRpb24/LmVuYWJsZU1hc3NFZGl0IHx8IGZhbHNlO1xuXHRjb25zdCB0ZW1wbGF0ZUJpbmRpbmdFeHByZXNzaW9uID1cblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuT2JqZWN0UGFnZVxuXHRcdFx0PyBVSS5Jc0VkaXRhYmxlXG5cdFx0XHQ6IGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5MaXN0UmVwb3J0O1xuXHQvL01hc3NFZGl0IGlzIHZpc2libGVcblx0Ly8gSWZcblx0Ly9cdFx0LSB0aGVyZSBpcyBubyBzdGF0aWMgcmVzdHJpY3Rpb25zIHNldCB0byBmYWxzZVxuXHQvL1x0XHQtIGFuZCBlbmFibGVNYXNzRWRpdCBpcyBub3Qgc2V0IHRvIGZhbHNlIGludG8gdGhlIG1hbmlmZXN0XG5cdC8vXHRcdC0gYW5kIHRoZSBzZWxlY3Rpb25Nb2RlIGlzIHJlbGV2YW50XG5cdC8vXHRUaGVuIE1hc3NFZGl0IGlzIGFsd2F5cyB2aXNpYmxlIGluIExSIG9yIGR5bmFtaWNhbGx5IHZpc2libGUgaW4gT1AgYWNjb3JkaW5nIHRvIHVpPkVkaXRhYmxlIGFuZCBoaWRkZW5Bbm5vdGF0aW9uXG5cdC8vICBCdXR0b24gaXMgaGlkZGVuIGZvciBhbGwgb3RoZXIgY2FzZXNcblx0cmV0dXJuIGFuZChcblx0XHRub3QoYW5kKGlzQ29uc3RhbnQocGF0aFVwZGF0YWJsZUV4cHJlc3Npb24pLCBlcXVhbChwYXRoVXBkYXRhYmxlRXhwcmVzc2lvbiwgZmFsc2UpKSksXG5cdFx0Yk1hc3NFZGl0RW5hYmxlZEluTWFuaWZlc3QsXG5cdFx0dGVtcGxhdGVCaW5kaW5nRXhwcmVzc2lvbixcblx0XHRub3QoaXNVcGRhdGVIaWRkZW4pXG5cdCk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ2VuYWJsZWQnIHByb3BlcnR5IG9mIHRoZSBjcmVhdGlvblJvdy5cbiAqXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dFxuICogQHBhcmFtIHN0YW5kYXJkQWN0aW9uc0NvbnRleHRcbiAqIEBwYXJhbSBjcmVhdGlvblJvd1Zpc2liaWxpdHlcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlIGNyZWF0aW9uUm93LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3JlYXRpb25Sb3dFbmFibGVtZW50KFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRzdGFuZGFyZEFjdGlvbnNDb250ZXh0OiBTdGFuZGFyZEFjdGlvbnNDb250ZXh0LFxuXHRjcmVhdGlvblJvd1Zpc2liaWxpdHk6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPlxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgcmVzdHJpY3Rpb25zSW5zZXJ0YWJsZSA9IGlzUGF0aEluc2VydGFibGUoY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCksIHtcblx0XHRpZ25vcmVUYXJnZXRDb2xsZWN0aW9uOiB0cnVlLFxuXHRcdGF1dGhvcml6ZVVucmVzb2x2YWJsZTogdHJ1ZSxcblx0XHRwYXRoVmlzaXRvcjogKHBhdGg6IHN0cmluZywgbmF2aWdhdGlvblBhdGhzOiBzdHJpbmdbXSkgPT4ge1xuXHRcdFx0aWYgKHBhdGguaW5kZXhPZihcIi9cIikgPT09IDApIHtcblx0XHRcdFx0cGF0aCA9IHNpbmdsZXRvblBhdGhWaXNpdG9yKHBhdGgsIGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVkVHlwZXMoKSwgbmF2aWdhdGlvblBhdGhzKTtcblx0XHRcdFx0cmV0dXJuIHBhdGg7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBuYXZpZ2F0aW9uUHJvcGVydGllcyA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLm5hdmlnYXRpb25Qcm9wZXJ0aWVzO1xuXHRcdFx0aWYgKG5hdmlnYXRpb25Qcm9wZXJ0aWVzKSB7XG5cdFx0XHRcdGNvbnN0IGxhc3ROYXYgPSBuYXZpZ2F0aW9uUHJvcGVydGllc1tuYXZpZ2F0aW9uUHJvcGVydGllcy5sZW5ndGggLSAxXTtcblx0XHRcdFx0Y29uc3QgcGFydG5lciA9IGxhc3ROYXYuX3R5cGUgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCIgJiYgbGFzdE5hdi5wYXJ0bmVyO1xuXHRcdFx0XHRpZiAocGFydG5lcikge1xuXHRcdFx0XHRcdHBhdGggPSBgJHtwYXJ0bmVyfS8ke3BhdGh9YDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHBhdGg7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgaXNJbnNlcnRhYmxlID1cblx0XHRyZXN0cmljdGlvbnNJbnNlcnRhYmxlLl90eXBlID09PSBcIlVucmVzb2x2YWJsZVwiXG5cdFx0XHQ/IGlzUGF0aEluc2VydGFibGUoY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCksIHtcblx0XHRcdFx0XHRwYXRoVmlzaXRvcjogKHBhdGg6IHN0cmluZykgPT4gc2luZ2xldG9uUGF0aFZpc2l0b3IocGF0aCwgY29udmVydGVyQ29udGV4dC5nZXRDb252ZXJ0ZWRUeXBlcygpLCBbXSlcblx0XHRcdCAgfSlcblx0XHRcdDogcmVzdHJpY3Rpb25zSW5zZXJ0YWJsZTtcblxuXHRyZXR1cm4gYW5kKFxuXHRcdGNyZWF0aW9uUm93VmlzaWJpbGl0eSxcblx0XHRpc0luc2VydGFibGUsXG5cdFx0b3IoXG5cdFx0XHQhc3RhbmRhcmRBY3Rpb25zQ29udGV4dC50YWJsZU1hbmlmZXN0Q29uZmlndXJhdGlvbi5kaXNhYmxlQWRkUm93QnV0dG9uRm9yRW1wdHlEYXRhLFxuXHRcdFx0Zm9ybWF0UmVzdWx0KFtwYXRoSW5Nb2RlbChcImNyZWF0aW9uUm93RmllbGRWYWxpZGl0eVwiLCBcImludGVybmFsXCIpXSwgdGFibGVGb3JtYXR0ZXJzLnZhbGlkYXRlQ3JlYXRpb25Sb3dGaWVsZHMpXG5cdFx0KVxuXHQpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBvZiB0aGUgJ0NyZWF0ZScgYWN0aW9uLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcGFyYW0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dFxuICogQHBhcmFtIGNyZWF0ZVZpc2liaWxpdHlcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlICdDcmVhdGUnIGFjdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENyZWF0ZUVuYWJsZW1lbnQoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHN0YW5kYXJkQWN0aW9uc0NvbnRleHQ6IFN0YW5kYXJkQWN0aW9uc0NvbnRleHQsXG5cdGNyZWF0ZVZpc2liaWxpdHk6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPlxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgaXNJbnNlcnRhYmxlID0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dC5yZXN0cmljdGlvbnMuaXNJbnNlcnRhYmxlLmV4cHJlc3Npb247XG5cdGNvbnN0IENvbGxlY3Rpb25UeXBlID0gY29udmVydGVyQ29udGV4dC5yZXNvbHZlQWJzb2x1dGVQYXRoPEVudGl0eVNldD4oc3RhbmRhcmRBY3Rpb25zQ29udGV4dC5jb2xsZWN0aW9uUGF0aCkudGFyZ2V0Py5fdHlwZTtcblx0cmV0dXJuIGFuZChcblx0XHRjcmVhdGVWaXNpYmlsaXR5LFxuXHRcdG9yKFxuXHRcdFx0Q29sbGVjdGlvblR5cGUgPT09IFwiRW50aXR5U2V0XCIsXG5cdFx0XHRhbmQoaXNJbnNlcnRhYmxlLCBvcihjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpICE9PSBUZW1wbGF0ZVR5cGUuT2JqZWN0UGFnZSwgVUkuSXNFZGl0YWJsZSkpXG5cdFx0KVxuXHQpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBvZiB0aGUgJ0RlbGV0ZScgYWN0aW9uLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcGFyYW0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dFxuICogQHBhcmFtIGRlbGV0ZVZpc2liaWxpdHlcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlICdEZWxldGUnIGFjdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlbGV0ZUVuYWJsZW1lbnQoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHN0YW5kYXJkQWN0aW9uc0NvbnRleHQ6IFN0YW5kYXJkQWN0aW9uc0NvbnRleHQsXG5cdGRlbGV0ZVZpc2liaWxpdHk6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPlxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgZGVsZXRhYmxlQ29udGV4dHMgPSBwYXRoSW5Nb2RlbChcImRlbGV0YWJsZUNvbnRleHRzXCIsIFwiaW50ZXJuYWxcIik7XG5cdGNvbnN0IHVuU2F2ZWRDb250ZXh0cyA9IHBhdGhJbk1vZGVsKFwidW5TYXZlZENvbnRleHRzXCIsIFwiaW50ZXJuYWxcIik7XG5cdGNvbnN0IGRyYWZ0c1dpdGhEZWxldGFibGVBY3RpdmUgPSBwYXRoSW5Nb2RlbChcImRyYWZ0c1dpdGhEZWxldGFibGVBY3RpdmVcIiwgXCJpbnRlcm5hbFwiKTtcblx0Y29uc3QgZHJhZnRzV2l0aE5vbkRlbGV0YWJsZUFjdGl2ZSA9IHBhdGhJbk1vZGVsKFwiZHJhZnRzV2l0aE5vbkRlbGV0YWJsZUFjdGl2ZVwiLCBcImludGVybmFsXCIpO1xuXG5cdHJldHVybiBhbmQoXG5cdFx0ZGVsZXRlVmlzaWJpbGl0eSxcblx0XHRpZkVsc2UoXG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuT2JqZWN0UGFnZSxcblx0XHRcdG9yKFxuXHRcdFx0XHRhbmQobm90RXF1YWwoZGVsZXRhYmxlQ29udGV4dHMsIHVuZGVmaW5lZCksIGdyZWF0ZXJUaGFuKGxlbmd0aChkZWxldGFibGVDb250ZXh0cyksIDApKSxcblx0XHRcdFx0YW5kKG5vdEVxdWFsKGRyYWZ0c1dpdGhEZWxldGFibGVBY3RpdmUsIHVuZGVmaW5lZCksIGdyZWF0ZXJUaGFuKGxlbmd0aChkcmFmdHNXaXRoRGVsZXRhYmxlQWN0aXZlKSwgMCkpXG5cdFx0XHQpLFxuXHRcdFx0b3IoXG5cdFx0XHRcdGFuZChub3RFcXVhbChkZWxldGFibGVDb250ZXh0cywgdW5kZWZpbmVkKSwgZ3JlYXRlclRoYW4obGVuZ3RoKGRlbGV0YWJsZUNvbnRleHRzKSwgMCkpLFxuXHRcdFx0XHRhbmQobm90RXF1YWwoZHJhZnRzV2l0aERlbGV0YWJsZUFjdGl2ZSwgdW5kZWZpbmVkKSwgZ3JlYXRlclRoYW4obGVuZ3RoKGRyYWZ0c1dpdGhEZWxldGFibGVBY3RpdmUpLCAwKSksXG5cdFx0XHRcdC8vIG9uIExSLCBhbHNvIGVuYWJsZSBkZWxldGUgYnV0dG9uIHRvIGNhbmNlbCBkcmFmdHNcblx0XHRcdFx0YW5kKG5vdEVxdWFsKGRyYWZ0c1dpdGhOb25EZWxldGFibGVBY3RpdmUsIHVuZGVmaW5lZCksIGdyZWF0ZXJUaGFuKGxlbmd0aChkcmFmdHNXaXRoTm9uRGVsZXRhYmxlQWN0aXZlKSwgMCkpLFxuXHRcdFx0XHQvLyBkZWxldGFibGUgY29udGV4dHMgd2l0aCB1bnNhdmVkIGNoYW5nZXMgYXJlIGNvdW50ZWQgc2VwYXJhdGVseSAoTFIgb25seSlcblx0XHRcdFx0YW5kKG5vdEVxdWFsKHVuU2F2ZWRDb250ZXh0cywgdW5kZWZpbmVkKSwgZ3JlYXRlclRoYW4obGVuZ3RoKHVuU2F2ZWRDb250ZXh0cyksIDApKVxuXHRcdFx0KVxuXHRcdClcblx0KTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlICdQYXN0ZScgYWN0aW9uLlxuICpcbiAqIEBwYXJhbSBwYXN0ZVZpc2liaWxpdHlcbiAqIEBwYXJhbSBjcmVhdGVFbmFibGVtZW50XG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ2VuYWJsZWQnIHByb3BlcnR5IG9mIHRoZSAnUGFzdGUnIGFjdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhc3RlRW5hYmxlbWVudChcblx0cGFzdGVWaXNpYmlsaXR5OiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4sXG5cdGNyZWF0ZUVuYWJsZW1lbnQ6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPlxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0cmV0dXJuIGFuZChwYXN0ZVZpc2liaWxpdHksIGNyZWF0ZUVuYWJsZW1lbnQpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBvZiB0aGUgJ01hc3NFZGl0JyBhY3Rpb24uXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSBzdGFuZGFyZEFjdGlvbnNDb250ZXh0XG4gKiBAcGFyYW0gbWFzc0VkaXRWaXNpYmlsaXR5XG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ2VuYWJsZWQnIHByb3BlcnR5IG9mIHRoZSAnTWFzc0VkaXQnIGFjdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1hc3NFZGl0RW5hYmxlbWVudChcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0c3RhbmRhcmRBY3Rpb25zQ29udGV4dDogU3RhbmRhcmRBY3Rpb25zQ29udGV4dCxcblx0bWFzc0VkaXRWaXNpYmlsaXR5OiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj5cbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IHBhdGhVcGRhdGFibGVFeHByZXNzaW9uID0gc3RhbmRhcmRBY3Rpb25zQ29udGV4dC5yZXN0cmljdGlvbnMuaXNVcGRhdGFibGUuZXhwcmVzc2lvbjtcblx0Y29uc3QgaXNPbmx5RHluYW1pY09uQ3VycmVudEVudGl0eSA9XG5cdFx0IWlzQ29uc3RhbnQocGF0aFVwZGF0YWJsZUV4cHJlc3Npb24pICYmXG5cdFx0c3RhbmRhcmRBY3Rpb25zQ29udGV4dC5yZXN0cmljdGlvbnMuaXNVcGRhdGFibGUubmF2aWdhdGlvbkV4cHJlc3Npb24uX3R5cGUgPT09IFwiVW5yZXNvbHZhYmxlXCI7XG5cdGNvbnN0IG51bWJlck9mU2VsZWN0ZWRDb250ZXh0cyA9IGdyZWF0ZXJPckVxdWFsKHBhdGhJbk1vZGVsKFwibnVtYmVyT2ZTZWxlY3RlZENvbnRleHRzXCIsIFwiaW50ZXJuYWxcIiksIDEpO1xuXHRjb25zdCBudW1iZXJPZlVwZGF0YWJsZUNvbnRleHRzID0gZ3JlYXRlck9yRXF1YWwobGVuZ3RoKHBhdGhJbk1vZGVsKFwidXBkYXRhYmxlQ29udGV4dHNcIiwgXCJpbnRlcm5hbFwiKSksIDEpO1xuXHRjb25zdCBiSXNEcmFmdFN1cHBvcnRlZCA9IE1vZGVsSGVscGVyLmlzT2JqZWN0UGF0aERyYWZ0U3VwcG9ydGVkKGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpKTtcblx0Y29uc3QgYkRpc3BsYXlNb2RlID0gaXNJbkRpc3BsYXlNb2RlKGNvbnZlcnRlckNvbnRleHQpO1xuXG5cdC8vIG51bWJlck9mVXBkYXRhYmxlQ29udGV4dHMgbmVlZHMgdG8gYmUgYWRkZWQgdG8gdGhlIGJpbmRpbmcgaW4gY2FzZVxuXHQvLyAxLiBVcGRhdGUgaXMgZGVwZW5kZW50IG9uIGN1cnJlbnQgZW50aXR5IHByb3BlcnR5IChpc09ubHlEeW5hbWljT25DdXJyZW50RW50aXR5IGlzIHRydWUpLlxuXHQvLyAyLiBUaGUgdGFibGUgaXMgcmVhZCBvbmx5IGFuZCBkcmFmdCBlbmFibGVkKGxpa2UgTFIpLCBpbiB0aGlzIGNhc2Ugb25seSBhY3RpdmUgY29udGV4dHMgY2FuIGJlIG1hc3MgZWRpdGVkLlxuXHQvLyAgICBTbywgdXBkYXRlIGRlcGVuZHMgb24gJ0lzQWN0aXZlRW50aXR5JyB2YWx1ZSB3aGljaCBuZWVkcyB0byBiZSBjaGVja2VkIHJ1bnRpbWUuXG5cdGNvbnN0IHJ1bnRpbWVCaW5kaW5nID0gaWZFbHNlKFxuXHRcdG9yKGFuZChiRGlzcGxheU1vZGUsIGJJc0RyYWZ0U3VwcG9ydGVkKSwgaXNPbmx5RHluYW1pY09uQ3VycmVudEVudGl0eSksXG5cdFx0YW5kKG51bWJlck9mU2VsZWN0ZWRDb250ZXh0cywgbnVtYmVyT2ZVcGRhdGFibGVDb250ZXh0cyksXG5cdFx0YW5kKG51bWJlck9mU2VsZWN0ZWRDb250ZXh0cylcblx0KTtcblxuXHRyZXR1cm4gYW5kKG1hc3NFZGl0VmlzaWJpbGl0eSwgaWZFbHNlKGlzT25seUR5bmFtaWNPbkN1cnJlbnRFbnRpdHksIHJ1bnRpbWVCaW5kaW5nLCBhbmQocnVudGltZUJpbmRpbmcsIHBhdGhVcGRhdGFibGVFeHByZXNzaW9uKSkpO1xufVxuXG4vKipcbiAqIFRlbGxzIGlmIHRoZSB0YWJsZSBpbiB0ZW1wbGF0ZSBpcyBpbiBkaXNwbGF5IG1vZGUuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSB2aWV3Q29uZmlndXJhdGlvblxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSB0YWJsZSBpcyBpbiBkaXNwbGF5IG1vZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW5EaXNwbGF5TW9kZShjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LCB2aWV3Q29uZmlndXJhdGlvbj86IFZpZXdQYXRoQ29uZmlndXJhdGlvbik6IGJvb2xlYW4ge1xuXHRjb25zdCB0ZW1wbGF0ZVR5cGUgPSBjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpO1xuXHRpZiAoXG5cdFx0dGVtcGxhdGVUeXBlID09PSBUZW1wbGF0ZVR5cGUuTGlzdFJlcG9ydCB8fFxuXHRcdHRlbXBsYXRlVHlwZSA9PT0gVGVtcGxhdGVUeXBlLkFuYWx5dGljYWxMaXN0UGFnZSB8fFxuXHRcdCh2aWV3Q29uZmlndXJhdGlvbiAmJiBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmhhc011bHRpcGxlVmlzdWFsaXphdGlvbnModmlld0NvbmZpZ3VyYXRpb24pKVxuXHQpIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXHQvLyB1cGRhdGFibGUgd2lsbCBiZSBoYW5kbGVkIGF0IHRoZSBwcm9wZXJ0eSBsZXZlbFxuXHRyZXR1cm4gZmFsc2U7XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BOEJLQSx3QkFBd0I7RUFBQSxXQUF4QkEsd0JBQXdCO0lBQXhCQSx3QkFBd0I7SUFBeEJBLHdCQUF3QjtJQUF4QkEsd0JBQXdCO0VBQUEsR0FBeEJBLHdCQUF3QixLQUF4QkEs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
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/core/formatters/TableFormatter","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","sap/fe/core/templating/DataModelPathHelper","../../../helpers/BindingHelper","../../../ManifestSettings"],function(e,t,n,i,a,o){"use strict";var r={};var s=o.TemplateType;var l=o.CreationMode;var d=a.UI;var
|
|
5
|
+
sap.ui.define(["sap/fe/core/formatters/TableFormatter","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","sap/fe/core/templating/DataModelPathHelper","../../../helpers/BindingHelper","../../../ManifestSettings"],function(e,t,n,i,a,o){"use strict";var r={};var s=o.TemplateType;var l=o.CreationMode;var d=a.UI;var u=a.singletonPathVisitor;var c=i.isPathUpdatable;var p=i.isPathInsertable;var v=i.isPathDeletable;var f=i.getTargetObjectPath;var g=t.pathInModel;var b=t.or;var h=t.notEqual;var y=t.not;var T=t.length;var C=t.isPathInModelExpression;var M=t.isConstant;var m=t.ifElse;var P=t.greaterThan;var E=t.greaterOrEqual;var D=t.getExpressionFromAnnotation;var S=t.formatResult;var A=t.equal;var O=t.constant;var x=t.compileExpression;var I=t.and;var R;(function(e){e["CreateHidden"]="CreateHidden";e["DeleteHidden"]="DeleteHidden";e["UpdateHidden"]="UpdateHidden"})(R||(R={}));function w(e,t,n,i){return{collectionPath:f(e.getDataModelObjectPath()),hiddenAnnotation:{create:j(e,R.CreateHidden),delete:j(e,R.DeleteHidden),update:j(e,R.UpdateHidden)},creationMode:t,isDraftOrStickySupported:H(e),isViewWithMultipleVisualizations:i?e.getManifestWrapper().hasMultipleVisualizations(i):false,newAction:U(e),tableManifestConfiguration:n,restrictions:V(e)}}r.generateStandardActionsContext=w;function H(e){var t,i,a;const o=e.getDataModelObjectPath();const r=n.isObjectPathDraftSupported(o);const s=(t=o.startingEntitySet)!==null&&t!==void 0&&(i=t.annotations)!==null&&i!==void 0&&(a=i.Session)!==null&&a!==void 0&&a.StickySessionSupported?true:false;return r||s}r.isDraftOrStickySupported=H;function U(e){var t,i,a,o,r,s;const l=e.getEntitySet();const d=!n.isSingleton(l)?(l===null||l===void 0?void 0:(t=l.annotations)===null||t===void 0?void 0:(i=t.Common)===null||i===void 0?void 0:(a=i.DraftRoot)===null||a===void 0?void 0:a.NewAction)||(l===null||l===void 0?void 0:(o=l.annotations)===null||o===void 0?void 0:(r=o.Session)===null||r===void 0?void 0:(s=r.StickySessionSupported)===null||s===void 0?void 0:s.NewAction):undefined;const u=d===null||d===void 0?void 0:d.toString();if(u){var c,p,v,f;let t=e===null||e===void 0?void 0:(c=e.getEntityType().actions[u])===null||c===void 0?void 0:(p=c.annotations)===null||p===void 0?void 0:(v=p.Core)===null||v===void 0?void 0:(f=v.OperationAvailable)===null||f===void 0?void 0:f.valueOf();t=t!==undefined?t:true;return{name:u,available:D(t)}}return undefined}r.getNewAction=U;function j(e,t){var n;let i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;const a=e.getEntitySet();const o=e.getDataModelObjectPath();const r=o.navigationProperties.length>0&&i?[o.navigationProperties[o.navigationProperties.length-1].name]:[];const s=(a===null||a===void 0?void 0:(n=a.annotations.UI)===null||n===void 0?void 0:n[t])||false;return a?D(s,r,undefined,t=>u(t,e.getConvertedTypes(),r)):O(false)}r.isActionAnnotatedHidden=j;function V(e){const t=e.getDataModelObjectPath();const n=[{key:"isInsertable",function:p},{key:"isUpdatable",function:c},{key:"isDeletable",function:v}];const i={};n.forEach(function(n){const a=n["function"];i[n.key]={expression:a.apply(null,[t,{pathVisitor:(t,n)=>u(t,e.getConvertedTypes(),n)}]),navigationExpression:a.apply(null,[t,{ignoreTargetCollection:true,authorizeUnresolvable:true,pathVisitor:(t,n)=>u(t,e.getConvertedTypes(),n)}])}});return i}r.getRestrictions=V;function k(e,t,n){return(t||e.creationMode===l.External)&&!n}r.getInsertUpdateActionsTemplating=k;function L(e,t){const n=B(e,t);return{isTemplated:x(_(t,n)),visible:x(n),enabled:x(Q(e,t,n))}}r.getStandardActionCreate=L;function z(e,t){const n=$(e,t);return{isTemplated:x(q(n)),visible:x(n),enabled:x(X(e,t,n))}}r.getStandardActionDelete=z;function F(e,t){const n=B(e,t,true);return{isTemplated:x(_(t,n,true)),visible:x(n),enabled:x(K(e,t,n))}}r.getCreationRow=F;function N(e,t,n){const i=B(e,t);const a=Q(e,t,i);const o=G(e,t,i,n);return{visible:x(o),enabled:x(Y(o,a))}}r.getStandardActionPaste=N;function W(e,t){const n=J(e,t);return{isTemplated:x(q(n)),visible:x(n),enabled:x(Z(e,t,n))}}r.getStandardActionMassEdit=W;function _(e,t){let n=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;return I(b(I(n,e.creationMode===l.CreationRow),I(!n,e.creationMode!==l.CreationRow)),b(y(M(t)),t))}r.getCreateTemplating=_;function q(e){return b(y(M(e)),e)}r.getDefaultTemplating=q;function B(e,t){var n,i;let a=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;const o=t.restrictions.isInsertable.expression;const r=a?j(e,R.CreateHidden,false):t.hiddenAnnotation.create;const u=t.newAction;return m(t.creationMode===l.External,I(y(r),b(e.getTemplateType()===s.ListReport,d.IsEditable)),m(b(I(M(u===null||u===void 0?void 0:u.available),A(u===null||u===void 0?void 0:u.available,false)),I(M(o),A(o,false),!u),I(M(r),A(r,true)),I(t.creationMode===l.InlineCreationRows,((n=t.tableManifestConfiguration)===null||n===void 0?void 0:n.type)==="ResponsiveTable",m((t===null||t===void 0?void 0:(i=t.tableManifestConfiguration)===null||i===void 0?void 0:i.inlineCreationRowsHiddenInEditMode)===false,true,d.IsCreateMode))),false,m(e.getTemplateType()===s.ListReport,b(y(C(r)),y(r)),I(y(r),d.IsEditable))))}r.getCreateVisibility=B;function $(e,t){const n=t.hiddenAnnotation.delete;const i=t.restrictions.isDeletable.expression;return m(e.getTemplateType()===s.AnalyticalListPage,false,m(I(M(i),A(i,false)),false,m(I(M(n),A(n,O(true))),false,m(e.getTemplateType()!==s.ListReport,I(y(n),d.IsEditable),y(I(C(n),n))))))}r.getDeleteVisibility=$;function G(e,t,n,i){return I(h(t.tableManifestConfiguration.enablePaste,false),n,i,[s.ListReport,s.AnalyticalListPage].indexOf(e.getTemplateType())===-1,t.restrictions.isInsertable.expression)}r.getPasteVisibility=G;function J(e,t){var n;const i=t.hiddenAnnotation.update,a=t.restrictions.isUpdatable.expression,o=((n=t.tableManifestConfiguration)===null||n===void 0?void 0:n.enableMassEdit)||false;const r=e.getTemplateType()===s.ObjectPage?d.IsEditable:e.getTemplateType()===s.ListReport;return I(y(I(M(a),A(a,false))),o,r,y(i))}r.getMassEditVisibility=J;function K(t,n,i){const a=p(t.getDataModelObjectPath(),{ignoreTargetCollection:true,authorizeUnresolvable:true,pathVisitor:(e,n)=>{if(e.indexOf("/")===0){e=u(e,t.getConvertedTypes(),n);return e}const i=t.getDataModelObjectPath().navigationProperties;if(i){const t=i[i.length-1];const n=t._type==="NavigationProperty"&&t.partner;if(n){e=`${n}/${e}`}}return e}});const o=a._type==="Unresolvable"?p(t.getDataModelObjectPath(),{pathVisitor:e=>u(e,t.getConvertedTypes(),[])}):a;return I(i,o,b(!n.tableManifestConfiguration.disableAddRowButtonForEmptyData,S([g("creationRowFieldValidity","internal")],e.validateCreationRowFields)))}r.getCreationRowEnablement=K;function Q(e,t,n){var i;const a=t.restrictions.isInsertable.expression;const o=(i=e.resolveAbsolutePath(t.collectionPath).target)===null||i===void 0?void 0:i._type;return I(n,b(o==="EntitySet",I(a,b(e.getTemplateType()!==s.ObjectPage,d.IsEditable))))}r.getCreateEnablement=Q;function X(e,t,n){const i=g("deletableContexts","internal");const a=g("unSavedContexts","internal");const o=g("draftsWithDeletableActive","internal");const r=g("draftsWithNonDeletableActive","internal");return I(n,m(e.getTemplateType()===s.ObjectPage,b(I(h(i,undefined),P(T(i),0)),I(h(o,undefined),P(T(o),0))),b(I(h(i,undefined),P(T(i),0)),I(h(o,undefined),P(T(o),0)),I(h(r,undefined),P(T(r),0)),I(h(a,undefined),P(T(a),0)))))}r.getDeleteEnablement=X;function Y(e,t){return I(e,t)}r.getPasteEnablement=Y;function Z(e,t,i){const a=t.restrictions.isUpdatable.expression;const o=!M(a)&&t.restrictions.isUpdatable.navigationExpression._type==="Unresolvable";const r=E(g("numberOfSelectedContexts","internal"),1);const s=E(T(g("updatableContexts","internal")),1);const l=n.isObjectPathDraftSupported(e.getDataModelObjectPath());const d=ee(e);const u=m(b(I(d,l),o),I(r,s),I(r));return I(i,m(o,u,I(u,a)))}r.getMassEditEnablement=Z;function ee(e,t){const n=e.getTemplateType();if(n===s.ListReport||n===s.AnalyticalListPage||t&&e.getManifestWrapper().hasMultipleVisualizations(t)){return true}return false}r.isInDisplayMode=ee;return r},false);
|
|
6
6
|
//# sourceMappingURL=StandardActions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StandardActions.js","names":["sap","ui","define","tableFormatters","BindingToolkit","ModelHelper","DataModelPathHelper","BindingHelper","ManifestSettings","_exports","TemplateType","CreationMode","UI","singletonPathVisitor","isPathUpdatable","isPathInsertable","isPathDeletable","getTargetObjectPath","pathInModel","or","notEqual","not","length","isPathInModelExpression","isConstant","ifElse","greaterThan","greaterOrEqual","getExpressionFromAnnotation","formatResult","equal","constant","compileExpression","and","AnnotationHiddenProperty","generateStandardActionsContext","converterContext","creationMode","tableManifestConfiguration","viewConfiguration","collectionPath","getDataModelObjectPath","hiddenAnnotation","create","isActionAnnotatedHidden","CreateHidden","delete","DeleteHidden","update","UpdateHidden","isDraftOrStickySupported","isViewWithMultipleVisualizations","getManifestWrapper","hasMultipleVisualizations","newAction","getNewAction","restrictions","getRestrictions","_dataModelObjectPath$","_dataModelObjectPath$2","_dataModelObjectPath$3","dataModelObjectPath","bIsDraftSupported","isObjectPathDraftSupported","bIsStickySessionSupported","startingEntitySet","annotations","Session","StickySessionSupported","_annotations","_annotations$Common","_annotations$Common$D","_annotations2","_annotations2$Session","_annotations2$Session2","currentEntitySet","getEntitySet","isSingleton","Common","DraftRoot","NewAction","undefined","newActionName","toString","_converterContext$get","_converterContext$get2","_converterContext$get3","availableProperty","getEntityType","actions","Core","OperationAvailable","name","available","sAnnotationTerm","_currentEntitySet$ann","bWithNavigationPath","arguments","visitedNavigationPaths","navigationProperties","actionAnnotationValue","path","getConvertedTypes","restrictionsDef","key","function","result","forEach","def","defFunction","expression","apply","pathVisitor","navigationPaths","navigationExpression","ignoreTargetCollection","authorizeUnresolvable","getInsertUpdateActionsTemplating","standardActionsContext","isDraftOrSticky","isCreateAlwaysHidden","External","getStandardActionCreate","createVisibility","getCreateVisibility","isTemplated","getCreateTemplating","visible","enabled","getCreateEnablement","getStandardActionDelete","deleteVisibility","getDeleteVisibility","getDefaultTemplating","getDeleteEnablement","getCreationRow","creationRowVisibility","getCreationRowEnablement","getStandardActionPaste","isInsertUpdateActionsTemplated","createEnablement","pasteVisibility","getPasteVisibility","getPasteEnablement","getStandardActionMassEdit","massEditVisibility","getMassEditVisibility","getMassEditEnablement","isForCreationRow","CreationRow","actionVisibility","_standardActionsConte","_standardActionsConte2","isInsertable","isCreateHidden","getTemplateType","ListReport","IsEditable","InlineCreationRows","type","inlineCreationRowsHiddenInEditMode","IsCreateMode","isDeleteHidden","pathDeletableExpression","isDeletable","AnalyticalListPage","enablePaste","indexOf","_standardActionsConte3","isUpdateHidden","pathUpdatableExpression","isUpdatable","bMassEditEnabledInManifest","enableMassEdit","templateBindingExpression","ObjectPage","restrictionsInsertable","lastNav","partner","_type","disableAddRowButtonForEmptyData","validateCreationRowFields","_converterContext$res","CollectionType","resolveAbsolutePath","target","deletableContexts","unSavedContexts","draftsWithDeletableActive","draftsWithNonDeletableActive","isOnlyDynamicOnCurrentEntity","numberOfSelectedContexts","numberOfUpdatableContexts","bDisplayMode","isInDisplayMode","runtimeBinding","templateType"],"sources":["StandardActions-dbg.js"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StandardActions.js","names":["sap","ui","define","tableFormatters","BindingToolkit","ModelHelper","DataModelPathHelper","BindingHelper","ManifestSettings","_exports","TemplateType","CreationMode","UI","singletonPathVisitor","isPathUpdatable","isPathInsertable","isPathDeletable","getTargetObjectPath","pathInModel","or","notEqual","not","length","isPathInModelExpression","isConstant","ifElse","greaterThan","greaterOrEqual","getExpressionFromAnnotation","formatResult","equal","constant","compileExpression","and","AnnotationHiddenProperty","generateStandardActionsContext","converterContext","creationMode","tableManifestConfiguration","viewConfiguration","collectionPath","getDataModelObjectPath","hiddenAnnotation","create","isActionAnnotatedHidden","CreateHidden","delete","DeleteHidden","update","UpdateHidden","isDraftOrStickySupported","isViewWithMultipleVisualizations","getManifestWrapper","hasMultipleVisualizations","newAction","getNewAction","restrictions","getRestrictions","_dataModelObjectPath$","_dataModelObjectPath$2","_dataModelObjectPath$3","dataModelObjectPath","bIsDraftSupported","isObjectPathDraftSupported","bIsStickySessionSupported","startingEntitySet","annotations","Session","StickySessionSupported","_annotations","_annotations$Common","_annotations$Common$D","_annotations2","_annotations2$Session","_annotations2$Session2","currentEntitySet","getEntitySet","isSingleton","Common","DraftRoot","NewAction","undefined","newActionName","toString","_converterContext$get","_converterContext$get2","_converterContext$get3","_converterContext$get4","availableProperty","getEntityType","actions","Core","OperationAvailable","valueOf","name","available","sAnnotationTerm","_currentEntitySet$ann","bWithNavigationPath","arguments","visitedNavigationPaths","navigationProperties","actionAnnotationValue","path","getConvertedTypes","restrictionsDef","key","function","result","forEach","def","defFunction","expression","apply","pathVisitor","navigationPaths","navigationExpression","ignoreTargetCollection","authorizeUnresolvable","getInsertUpdateActionsTemplating","standardActionsContext","isDraftOrSticky","isCreateAlwaysHidden","External","getStandardActionCreate","createVisibility","getCreateVisibility","isTemplated","getCreateTemplating","visible","enabled","getCreateEnablement","getStandardActionDelete","deleteVisibility","getDeleteVisibility","getDefaultTemplating","getDeleteEnablement","getCreationRow","creationRowVisibility","getCreationRowEnablement","getStandardActionPaste","isInsertUpdateActionsTemplated","createEnablement","pasteVisibility","getPasteVisibility","getPasteEnablement","getStandardActionMassEdit","massEditVisibility","getMassEditVisibility","getMassEditEnablement","isForCreationRow","CreationRow","actionVisibility","_standardActionsConte","_standardActionsConte2","isInsertable","isCreateHidden","getTemplateType","ListReport","IsEditable","InlineCreationRows","type","inlineCreationRowsHiddenInEditMode","IsCreateMode","isDeleteHidden","pathDeletableExpression","isDeletable","AnalyticalListPage","enablePaste","indexOf","_standardActionsConte3","isUpdateHidden","pathUpdatableExpression","isUpdatable","bMassEditEnabledInManifest","enableMassEdit","templateBindingExpression","ObjectPage","restrictionsInsertable","lastNav","partner","_type","disableAddRowButtonForEmptyData","validateCreationRowFields","_converterContext$res","CollectionType","resolveAbsolutePath","target","deletableContexts","unSavedContexts","draftsWithDeletableActive","draftsWithNonDeletableActive","isOnlyDynamicOnCurrentEntity","numberOfSelectedContexts","numberOfUpdatableContexts","bDisplayMode","isInDisplayMode","runtimeBinding","templateType"],"sources":["StandardActions-dbg.js"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { EntitySet, PropertyAnnotationValue } from "@sap-ux/vocabularies-types";
|
|
2
|
+
import type { EntitySetAnnotations_UI } from "@sap-ux/vocabularies-types/vocabularies/UI_Edm";
|
|
2
3
|
import tableFormatters from "sap/fe/core/formatters/TableFormatter";
|
|
3
4
|
import type { BindingToolkitExpression, CompiledBindingToolkitExpression } from "sap/fe/core/helpers/BindingToolkit";
|
|
4
5
|
import {
|
|
@@ -56,8 +57,8 @@ export type StandardActionsContext = {
|
|
|
56
57
|
isDraftOrStickySupported: boolean;
|
|
57
58
|
isViewWithMultipleVisualizations: boolean;
|
|
58
59
|
newAction?: {
|
|
59
|
-
name
|
|
60
|
-
available
|
|
60
|
+
name: string;
|
|
61
|
+
available: BindingToolkitExpression<boolean>;
|
|
61
62
|
};
|
|
62
63
|
tableManifestConfiguration: TableControlConfiguration;
|
|
63
64
|
restrictions: StandardActionsRestrictionsType;
|
|
@@ -118,7 +119,7 @@ export function isDraftOrStickySupported(converterContext: ConverterContext): bo
|
|
|
118
119
|
* @param converterContext
|
|
119
120
|
* @returns The new action info
|
|
120
121
|
*/
|
|
121
|
-
export function getNewAction(converterContext: ConverterContext)
|
|
122
|
+
export function getNewAction(converterContext: ConverterContext) {
|
|
122
123
|
const currentEntitySet = converterContext.getEntitySet();
|
|
123
124
|
const newAction = !ModelHelper.isSingleton(currentEntitySet)
|
|
124
125
|
? (currentEntitySet as EntitySet)?.annotations?.Common?.DraftRoot?.NewAction ||
|
|
@@ -126,11 +127,11 @@ export function getNewAction(converterContext: ConverterContext): any {
|
|
|
126
127
|
: undefined;
|
|
127
128
|
const newActionName: CompiledBindingToolkitExpression = newAction?.toString();
|
|
128
129
|
if (newActionName) {
|
|
129
|
-
let availableProperty
|
|
130
|
+
let availableProperty = converterContext?.getEntityType().actions[newActionName]?.annotations?.Core?.OperationAvailable?.valueOf();
|
|
130
131
|
availableProperty = availableProperty !== undefined ? availableProperty : true;
|
|
131
132
|
return {
|
|
132
133
|
name: newActionName,
|
|
133
|
-
available: getExpressionFromAnnotation(availableProperty)
|
|
134
|
+
available: getExpressionFromAnnotation<boolean>(availableProperty as unknown as PropertyAnnotationValue<boolean>)
|
|
134
135
|
};
|
|
135
136
|
}
|
|
136
137
|
return undefined;
|
|
@@ -146,7 +147,7 @@ export function getNewAction(converterContext: ConverterContext): any {
|
|
|
146
147
|
*/
|
|
147
148
|
export function isActionAnnotatedHidden(
|
|
148
149
|
converterContext: ConverterContext,
|
|
149
|
-
sAnnotationTerm:
|
|
150
|
+
sAnnotationTerm: keyof EntitySetAnnotations_UI,
|
|
150
151
|
bWithNavigationPath = true
|
|
151
152
|
): BindingToolkitExpression<boolean> {
|
|
152
153
|
const currentEntitySet = converterContext.getEntitySet();
|
|
@@ -157,7 +158,7 @@ export function isActionAnnotatedHidden(
|
|
|
157
158
|
? [dataModelObjectPath.navigationProperties[dataModelObjectPath.navigationProperties.length - 1].name]
|
|
158
159
|
: [];
|
|
159
160
|
const actionAnnotationValue =
|
|
160
|
-
((currentEntitySet?.annotations.UI as
|
|
161
|
+
((currentEntitySet?.annotations.UI as EntitySetAnnotations_UI)?.[sAnnotationTerm] as PropertyAnnotationValue<boolean>) || false;
|
|
161
162
|
|
|
162
163
|
return currentEntitySet
|
|
163
164
|
? getExpressionFromAnnotation(actionAnnotationValue, visitedNavigationPaths, undefined, (path: string) =>
|
|
@@ -598,7 +599,7 @@ export function getCreateEnablement(
|
|
|
598
599
|
createVisibility: BindingToolkitExpression<boolean>
|
|
599
600
|
): BindingToolkitExpression<boolean> {
|
|
600
601
|
const isInsertable = standardActionsContext.restrictions.isInsertable.expression;
|
|
601
|
-
const CollectionType = converterContext.resolveAbsolutePath<
|
|
602
|
+
const CollectionType = converterContext.resolveAbsolutePath<EntitySet>(standardActionsContext.collectionPath).target?._type;
|
|
602
603
|
return and(
|
|
603
604
|
createVisibility,
|
|
604
605
|
or(
|
|
@@ -674,7 +675,7 @@ export function getMassEditEnablement(
|
|
|
674
675
|
massEditVisibility: BindingToolkitExpression<boolean>
|
|
675
676
|
): BindingToolkitExpression<boolean> {
|
|
676
677
|
const pathUpdatableExpression = standardActionsContext.restrictions.isUpdatable.expression;
|
|
677
|
-
const isOnlyDynamicOnCurrentEntity
|
|
678
|
+
const isOnlyDynamicOnCurrentEntity =
|
|
678
679
|
!isConstant(pathUpdatableExpression) &&
|
|
679
680
|
standardActionsContext.restrictions.isUpdatable.navigationExpression._type === "Unresolvable";
|
|
680
681
|
const numberOfSelectedContexts = greaterOrEqual(pathInModel("numberOfSelectedContexts", "internal"), 1);
|