@magic-xpa/engine 4.801.0-dev481.243 → 4.801.0-dev481.249
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/esm2020/index.mjs +190 -0
- package/{esm2015/magic-xpa-engine.js → esm2020/magic-xpa-engine.mjs} +0 -0
- package/esm2020/src/AccessHelper.mjs +3 -0
- package/esm2020/src/ClientManager.mjs +403 -0
- package/esm2020/src/CommandsProcessorBase.mjs +58 -0
- package/esm2020/src/CommandsProcessorManager.mjs +26 -0
- package/esm2020/src/CommandsTable.mjs +163 -0
- package/{esm2015/src/ConstInterface.js → esm2020/src/ConstInterface.mjs} +0 -0
- package/{esm2015/src/CurrentClientVersion.js → esm2020/src/CurrentClientVersion.mjs} +2 -2
- package/{esm2015/src/FlowMonitorInterface.js → esm2020/src/FlowMonitorInterface.mjs} +0 -0
- package/esm2020/src/GUIManager.mjs +63 -0
- package/{esm2015/src/GlobalCommandsManager.js → esm2020/src/GlobalCommandsManager.mjs} +0 -0
- package/{esm2015/src/GuiEventsProcessor.js → esm2020/src/GuiEventsProcessor.mjs} +0 -0
- package/{esm2015/src/ICommandsTable.js → esm2020/src/ICommandsTable.mjs} +1 -0
- package/{esm2015/src/ServerConfig.js → esm2020/src/ServerConfig.mjs} +0 -0
- package/{esm2015/src/bridge/IGuiEvent.js → esm2020/src/bridge/IGuiEvent.mjs} +0 -0
- package/esm2020/src/bridge/MagicBridge.mjs +41 -0
- package/{esm2015/src/commands/ClientOriginatedCommandTaskTag.js → esm2020/src/commands/ClientOriginatedCommandTaskTag.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/AddUserLocateDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserLocateDataViewCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/AddUserRangeDataviewCommand.js → esm2020/src/commands/ClientToServer/AddUserRangeDataviewCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/AddUserSortDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserSortDataViewCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/BrowserEscEventCommand.js → esm2020/src/commands/ClientToServer/BrowserEscEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ClientOriginatedCommand.js → esm2020/src/commands/ClientToServer/ClientOriginatedCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ClientOriginatedCommandSerializer.js → esm2020/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ColumnSortEventCommand.js → esm2020/src/commands/ClientToServer/ColumnSortEventCommand.mjs} +0 -0
- package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +278 -0
- package/{esm2015/src/commands/ClientToServer/CommandSerializationHelper.js → esm2020/src/commands/ClientToServer/CommandSerializationHelper.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ComputeEventCommand.js → esm2020/src/commands/ClientToServer/ComputeEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ContextTerminationEventCommand.js → esm2020/src/commands/ClientToServer/ContextTerminationEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ContextTimeoutResetCommand.js → esm2020/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ControlItemsRefreshCommand.js → esm2020/src/commands/ClientToServer/ControlItemsRefreshCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/DataViewOutputCommand.js → esm2020/src/commands/ClientToServer/DataViewOutputCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/DataviewCommand.js → esm2020/src/commands/ClientToServer/DataviewCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/EvaluateCommand.js → esm2020/src/commands/ClientToServer/EvaluateCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/EventCommand.js → esm2020/src/commands/ClientToServer/EventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ExecOperCommand.js → esm2020/src/commands/ClientToServer/ExecOperCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/FetchDataControlValuesEventCommand.js → esm2020/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/GlobalParamsQueryCommand.js → esm2020/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ICommandTaskTag.js → esm2020/src/commands/ClientToServer/ICommandTaskTag.mjs} +1 -0
- package/{esm2015/src/commands/ClientToServer/IndexChangeEventCommand.js → esm2020/src/commands/ClientToServer/IndexChangeEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/IniputForceWriteCommand.js → esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/NonReversibleExitEventCommand.js → esm2020/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/QueryCommand.js → esm2020/src/commands/ClientToServer/QueryCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/RecomputeCommand.js → esm2020/src/commands/ClientToServer/RecomputeCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/RefreshEventCommand.js → esm2020/src/commands/ClientToServer/RefreshEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/RefreshScreenEventCommand.js → esm2020/src/commands/ClientToServer/RefreshScreenEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/RollbackEventCommand.js → esm2020/src/commands/ClientToServer/RollbackEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/SelectProgramCommand.js → esm2020/src/commands/ClientToServer/SelectProgramCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/SetTransactionStateDataviewCommand.js → esm2020/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/SubformOpenEventCommand.js → esm2020/src/commands/ClientToServer/SubformOpenEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/SubformRefreshEventCommand.js → esm2020/src/commands/ClientToServer/SubformRefreshEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/TransactionCommand.js → esm2020/src/commands/ClientToServer/TransactionCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/UnloadCommand.js → esm2020/src/commands/ClientToServer/UnloadCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/WriteMessageToServerLogCommand.js → esm2020/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs} +0 -0
- package/esm2020/src/commands/DataViewCommandBase.mjs +10 -0
- package/{esm2015/src/commands/IClientCommand.js → esm2020/src/commands/IClientCommand.mjs} +1 -0
- package/esm2020/src/commands/IClientTargetedCommand.mjs +9 -0
- package/{esm2015/src/commands/IClientToServerCommandInfo.js → esm2020/src/commands/IClientToServerCommandInfo.mjs} +1 -0
- package/esm2020/src/commands/ServerToClient/AbortCommand.mjs +65 -0
- package/esm2020/src/commands/ServerToClient/AddLocateCommand.mjs +22 -0
- package/esm2020/src/commands/ServerToClient/AddRangeCommand.mjs +62 -0
- package/esm2020/src/commands/ServerToClient/AddSortCommand.mjs +33 -0
- package/{esm2015/src/commands/ServerToClient/ClientRefreshCommand.js → esm2020/src/commands/ServerToClient/ClientRefreshCommand.mjs} +14 -17
- package/esm2020/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +27 -0
- package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +45 -0
- package/esm2020/src/commands/ServerToClient/OpenURLCommand.mjs +222 -0
- package/esm2020/src/commands/ServerToClient/ResetLocateCommand.mjs +15 -0
- package/esm2020/src/commands/ServerToClient/ResetRangeCommand.mjs +15 -0
- package/esm2020/src/commands/ServerToClient/ResetSortCommand.mjs +15 -0
- package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +37 -0
- package/esm2020/src/commands/ServerToClient/VerifyCommand.mjs +85 -0
- package/{esm2015/src/commands/ServerToClient/XMLBasedCommandBuilder.js → esm2020/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs} +0 -0
- package/{esm2015/src/communications/IConnectionStateManager.js → esm2020/src/communications/IConnectionStateManager.mjs} +1 -0
- package/esm2020/src/communications/InteractiveCommunicationsFailureHandler.mjs +17 -0
- package/{esm2015/src/data/DataSourceIdKey.js → esm2020/src/data/DataSourceIdKey.mjs} +0 -0
- package/esm2020/src/data/DataView.mjs +1634 -0
- package/{esm2015/src/data/DataViewBase.js → esm2020/src/data/DataViewBase.mjs} +0 -0
- package/esm2020/src/data/DataviewManager.mjs +28 -0
- package/esm2020/src/data/DataviewManagerBase.mjs +15 -0
- package/{esm2015/src/data/DvCache.js → esm2020/src/data/DvCache.mjs} +0 -0
- package/esm2020/src/data/Field.mjs +645 -0
- package/esm2020/src/data/FieldBase.mjs +18 -0
- package/{esm2015/src/data/FieldsTable.js → esm2020/src/data/FieldsTable.mjs} +0 -0
- package/{esm2015/src/data/IRecordsTable.js → esm2020/src/data/IRecordsTable.mjs} +1 -0
- package/{esm2015/src/data/Key.js → esm2020/src/data/Key.mjs} +0 -0
- package/{esm2015/src/data/Record.js → esm2020/src/data/Record.mjs} +0 -0
- package/{esm2015/src/data/RecordOutOfDataViewException.js → esm2020/src/data/RecordOutOfDataViewException.mjs} +0 -0
- package/{esm2015/src/data/RecordsTable.js → esm2020/src/data/RecordsTable.mjs} +0 -0
- package/esm2020/src/data/TaskTransactionManager.mjs +103 -0
- package/{esm2015/src/data/XMLBasedDcValuesBuilder.js → esm2020/src/data/XMLBasedDcValuesBuilder.mjs} +0 -0
- package/{esm2015/src/enums.js → esm2020/src/enums.mjs} +0 -0
- package/esm2020/src/env/EnvVariablesTable.mjs +340 -0
- package/esm2020/src/env/Environment.mjs +554 -0
- package/{esm2015/src/env/ILanguageData.js → esm2020/src/env/ILanguageData.mjs} +1 -0
- package/esm2020/src/env/LanguageData.mjs +222 -0
- package/esm2020/src/env/MirrorString.mjs +66 -0
- package/{esm2015/src/event/ActionManager.js → esm2020/src/event/ActionManager.mjs} +0 -0
- package/esm2020/src/event/Event.mjs +1436 -0
- package/esm2020/src/event/EventHandler.mjs +773 -0
- package/{esm2015/src/event/EventHandlerPosition.js → esm2020/src/event/EventHandlerPosition.mjs} +0 -0
- package/esm2020/src/event/EventsManager.mjs +2983 -0
- package/{esm2015/src/event/IEventsManager.js → esm2020/src/event/IEventsManager.mjs} +0 -0
- package/{esm2015/src/event/RunTimeEvent.js → esm2020/src/event/RunTimeEvent.mjs} +0 -0
- package/{esm2015/src/event/RunTimeEventBase.js → esm2020/src/event/RunTimeEventBase.mjs} +0 -0
- package/{esm2015/src/event/UserEventsTable.js → esm2020/src/event/UserEventsTable.mjs} +0 -0
- package/{esm2015/src/exp/ExpTable.js → esm2020/src/exp/ExpTable.mjs} +0 -0
- package/esm2020/src/exp/Expression.mjs +200 -0
- package/{esm2015/src/exp/ExpressionDict.js → esm2020/src/exp/ExpressionDict.mjs} +0 -0
- package/esm2020/src/exp/ExpressionEvaluator.mjs +4373 -0
- package/{esm2015/src/exp/ExpressionLocalJpn.js → esm2020/src/exp/ExpressionLocalJpn.mjs} +0 -0
- package/esm2020/src/exp/GlobalParamsTable.mjs +85 -0
- package/esm2020/src/exp/YesNoExp.mjs +41 -0
- package/{esm2015/src/gui/CreatedFormVector.js → esm2020/src/gui/CreatedFormVector.mjs} +0 -0
- package/esm2020/src/gui/FormsTable.mjs +66 -0
- package/esm2020/src/gui/MgControl.mjs +357 -0
- package/esm2020/src/gui/MgForm.mjs +1195 -0
- package/esm2020/src/http/HttpManager.mjs +97 -0
- package/esm2020/src/http/client/HttpClientAsync.mjs +67 -0
- package/esm2020/src/http/client/HttpClientBase.mjs +148 -0
- package/{esm2015/src/http/client/HttpClientEvents.js → esm2020/src/http/client/HttpClientEvents.mjs} +0 -0
- package/esm2020/src/http/client/HttpClientSync.mjs +42 -0
- package/{esm2015/src/http/client/HttpUtility.js → esm2020/src/http/client/HttpUtility.mjs} +0 -0
- package/{esm2015/src/http/client/ICommunicationsFailureHandler.js → esm2020/src/http/client/ICommunicationsFailureHandler.mjs} +1 -0
- package/esm2020/src/remote/AddUserLocateRemoteDataViewCommand.mjs +18 -0
- package/esm2020/src/remote/AddUserRangeRemoteDataViewCommand.mjs +18 -0
- package/esm2020/src/remote/AddUserSortRemoteDataViewCommand.mjs +18 -0
- package/esm2020/src/remote/RemoteCommandsProcessor.mjs +872 -0
- package/esm2020/src/remote/RemoteControlItemsRefreshCommand.mjs +25 -0
- package/esm2020/src/remote/RemoteDataViewCommandBase.mjs +24 -0
- package/{esm2015/src/remote/RemoteDataViewCommandFactory.js → esm2020/src/remote/RemoteDataViewCommandFactory.mjs} +0 -0
- package/esm2020/src/remote/RemoteDataViewCommandUpdateNonModifiable.mjs +16 -0
- package/esm2020/src/remote/RemoteDataviewManager.mjs +17 -0
- package/esm2020/src/remote/RemoteInitDataViewCommand.mjs +11 -0
- package/esm2020/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +17 -0
- package/esm2020/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +13 -0
- package/esm2020/src/remote/ResetUserSortRemoteDataviewCommand.mjs +16 -0
- package/{esm2015/src/remote/ServerError.js → esm2020/src/remote/ServerError.mjs} +0 -0
- package/{esm2015/src/remote/SetTransactionStateRemoteDataViewCommand.js → esm2020/src/remote/SetTransactionStateRemoteDataViewCommand.mjs} +8 -11
- package/esm2020/src/rt/Argument.mjs +274 -0
- package/esm2020/src/rt/ArgumentsList.mjs +103 -0
- package/esm2020/src/rt/Boundary.mjs +158 -0
- package/{esm2015/src/rt/CompMainPrgTable.js → esm2020/src/rt/CompMainPrgTable.mjs} +0 -0
- package/esm2020/src/rt/DataviewHeaderBase.mjs +96 -0
- package/{esm2015/src/rt/DataviewHeaderFactory.js → esm2020/src/rt/DataviewHeaderFactory.mjs} +0 -0
- package/{esm2015/src/rt/DataviewHeaders.js → esm2020/src/rt/DataviewHeaders.mjs} +0 -0
- package/{esm2015/src/rt/DataviewHeadersSaxHandler.js → esm2020/src/rt/DataviewHeadersSaxHandler.mjs} +0 -0
- package/{esm2015/src/rt/ExecutionStack.js → esm2020/src/rt/ExecutionStack.mjs} +0 -0
- package/{esm2015/src/rt/ExecutionStackEntry.js → esm2020/src/rt/ExecutionStackEntry.mjs} +0 -0
- package/{esm2015/src/rt/HandlersTable.js → esm2020/src/rt/HandlersTable.mjs} +0 -0
- package/{esm2015/src/rt/IDataSourceViewDefinition.js → esm2020/src/rt/IDataSourceViewDefinition.mjs} +1 -0
- package/{esm2015/src/rt/IDataviewHeader.js → esm2020/src/rt/IDataviewHeader.mjs} +1 -0
- package/{esm2015/src/rt/IResultValue.js → esm2020/src/rt/IResultValue.mjs} +1 -0
- package/{esm2015/src/rt/LastFocusedManager.js → esm2020/src/rt/LastFocusedManager.mjs} +0 -0
- package/esm2020/src/rt/Operation.mjs +745 -0
- package/{esm2015/src/rt/OperationTable.js → esm2020/src/rt/OperationTable.mjs} +0 -0
- package/esm2020/src/rt/Recompute.mjs +355 -0
- package/{esm2015/src/rt/RecomputeTable.js → esm2020/src/rt/RecomputeTable.mjs} +0 -0
- package/esm2020/src/rt/RemoteDataviewHeader.mjs +105 -0
- package/{esm2015/src/rt/ResultValue.js → esm2020/src/rt/ResultValue.mjs} +0 -0
- package/esm2020/src/rt/TableCache.mjs +177 -0
- package/esm2020/src/rt/TableCacheManager.mjs +67 -0
- package/{esm2015/src/rt/Transaction.js → esm2020/src/rt/Transaction.mjs} +0 -0
- package/{esm2015/src/security/UserDetails.js → esm2020/src/security/UserDetails.mjs} +0 -0
- package/{esm2015/src/tasks/IMGDataCollection.js → esm2020/src/tasks/IMGDataCollection.mjs} +1 -0
- package/esm2020/src/tasks/MGData.mjs +552 -0
- package/esm2020/src/tasks/MGDataCollection.mjs +259 -0
- package/{esm2015/src/tasks/MenusDeserializer.js → esm2020/src/tasks/MenusDeserializer.mjs} +0 -0
- package/{esm2015/src/tasks/RCTimer.js → esm2020/src/tasks/RCTimer.mjs} +0 -0
- package/{esm2015/src/tasks/RemoteTaskService.js → esm2020/src/tasks/RemoteTaskService.mjs} +0 -0
- package/esm2020/src/tasks/Task.mjs +2501 -0
- package/{esm2015/src/tasks/TaskBase.js → esm2020/src/tasks/TaskBase.mjs} +22 -1
- package/esm2020/src/tasks/TaskServiceBase.mjs +25 -0
- package/esm2020/src/tasks/TasksTable.mjs +80 -0
- package/{esm2015/src/tasks/sort/Sort.js → esm2020/src/tasks/sort/Sort.mjs} +0 -0
- package/{esm2015/src/tasks/sort/SortCollection.js → esm2020/src/tasks/sort/SortCollection.mjs} +0 -0
- package/{esm2015/src/util/ConstUtils.js → esm2020/src/util/ConstUtils.mjs} +0 -0
- package/esm2020/src/util/FlowMonitorQueue.mjs +361 -0
- package/{esm2015/src/util/HeapSort.js → esm2020/src/util/HeapSort.mjs} +0 -0
- package/{esm2015/src/util/IMirrorXML.js → esm2020/src/util/IMirrorXML.mjs} +2 -1
- package/{esm2015/src/util/IServerConfig.js → esm2020/src/util/IServerConfig.mjs} +1 -0
- package/{esm2015/src/util/MgBlockingQueue.js → esm2020/src/util/MgBlockingQueue.mjs} +1 -0
- package/esm2020/src/util/MgPriorityBlockingQueue.mjs +76 -0
- package/{esm2015/src/util/MgPriorityQueue.js → esm2020/src/util/MgPriorityQueue.mjs} +0 -0
- package/esm2020/src/util/ParamParseResult.mjs +8 -0
- package/esm2020/src/util/PrmMap.mjs +151 -0
- package/{esm2015/src/util/Process.js → esm2020/src/util/Process.mjs} +0 -0
- package/{esm2015/src/util/ReturnResult.js → esm2020/src/util/ReturnResult.mjs} +0 -0
- package/{esm2015/src/util/ReturnResultBase.js → esm2020/src/util/ReturnResultBase.mjs} +0 -0
- package/{esm2015/src/util/Scrambler.js → esm2020/src/util/Scrambler.mjs} +0 -0
- package/{esm2015/src/util/UniqueIDUtils.js → esm2020/src/util/UniqueIDUtils.mjs} +0 -0
- package/{esm2015/src/util/cookie.service.js → esm2020/src/util/cookie.service.mjs} +0 -0
- package/fesm2015/{magic-xpa-engine.js → magic-xpa-engine.mjs} +102 -5
- package/fesm2015/magic-xpa-engine.mjs.map +1 -0
- package/fesm2020/magic-xpa-engine.mjs +30705 -0
- package/fesm2020/magic-xpa-engine.mjs.map +1 -0
- package/index.d.ts +2 -0
- package/package.json +27 -13
- package/src/AccessHelper.d.ts +1 -1
- package/src/CommandsProcessorBase.d.ts +3 -3
- package/src/commands/DataViewCommandBase.d.ts +2 -2
- package/src/commands/IClientTargetedCommand.d.ts +1 -1
- package/src/commands/ServerToClient/ClientTargetedCommandBase.d.ts +1 -1
- package/src/data/FieldBase.d.ts +3 -3
- package/src/env/EnvVariablesTable.d.ts +2 -15
- package/src/env/MirrorString.d.ts +15 -0
- package/src/exp/GlobalParamsTable.d.ts +2 -1
- package/src/http/client/HttpClientBase.d.ts +2 -2
- package/src/rt/DataviewHeaderBase.d.ts +1 -1
- package/src/tasks/TaskBase.d.ts +7 -7
- package/src/util/IMirrorXML.d.ts +1 -1
- package/src/util/ParamParseResult.d.ts +6 -0
- package/src/util/PrmMap.d.ts +0 -6
- package/bundles/magic-xpa-engine.umd.js +0 -37983
- package/bundles/magic-xpa-engine.umd.js.map +0 -1
- package/bundles/magic-xpa-engine.umd.min.js +0 -16
- package/bundles/magic-xpa-engine.umd.min.js.map +0 -1
- package/esm2015/index.js +0 -188
- package/esm2015/src/AccessHelper.js +0 -3
- package/esm2015/src/ClientManager.js +0 -412
- package/esm2015/src/CommandsProcessorBase.js +0 -54
- package/esm2015/src/CommandsProcessorManager.js +0 -31
- package/esm2015/src/CommandsTable.js +0 -166
- package/esm2015/src/GUIManager.js +0 -72
- package/esm2015/src/bridge/MagicBridge.js +0 -44
- package/esm2015/src/commands/ClientToServer/CommandFactory.js +0 -283
- package/esm2015/src/commands/DataViewCommandBase.js +0 -6
- package/esm2015/src/commands/IClientTargetedCommand.js +0 -6
- package/esm2015/src/commands/ServerToClient/AbortCommand.js +0 -68
- package/esm2015/src/commands/ServerToClient/AddLocateCommand.js +0 -25
- package/esm2015/src/commands/ServerToClient/AddRangeCommand.js +0 -65
- package/esm2015/src/commands/ServerToClient/AddSortCommand.js +0 -36
- package/esm2015/src/commands/ServerToClient/ClientTargetedCommandBase.js +0 -24
- package/esm2015/src/commands/ServerToClient/EnhancedVerifyCommand.js +0 -48
- package/esm2015/src/commands/ServerToClient/OpenURLCommand.js +0 -225
- package/esm2015/src/commands/ServerToClient/ResetLocateCommand.js +0 -18
- package/esm2015/src/commands/ServerToClient/ResetRangeCommand.js +0 -18
- package/esm2015/src/commands/ServerToClient/ResetSortCommand.js +0 -18
- package/esm2015/src/commands/ServerToClient/ResultCommand.js +0 -40
- package/esm2015/src/commands/ServerToClient/VerifyCommand.js +0 -88
- package/esm2015/src/communications/InteractiveCommunicationsFailureHandler.js +0 -20
- package/esm2015/src/data/DataView.js +0 -1692
- package/esm2015/src/data/DataviewManager.js +0 -31
- package/esm2015/src/data/DataviewManagerBase.js +0 -18
- package/esm2015/src/data/Field.js +0 -671
- package/esm2015/src/data/FieldBase.js +0 -9
- package/esm2015/src/data/TaskTransactionManager.js +0 -110
- package/esm2015/src/env/EnvVariablesTable.js +0 -408
- package/esm2015/src/env/Environment.js +0 -557
- package/esm2015/src/env/LanguageData.js +0 -229
- package/esm2015/src/event/Event.js +0 -1441
- package/esm2015/src/event/EventHandler.js +0 -786
- package/esm2015/src/event/EventsManager.js +0 -3106
- package/esm2015/src/exp/Expression.js +0 -209
- package/esm2015/src/exp/ExpressionEvaluator.js +0 -4440
- package/esm2015/src/exp/GlobalParamsTable.js +0 -84
- package/esm2015/src/exp/YesNoExp.js +0 -44
- package/esm2015/src/gui/FormsTable.js +0 -73
- package/esm2015/src/gui/MgControl.js +0 -424
- package/esm2015/src/gui/MgForm.js +0 -1291
- package/esm2015/src/http/HttpManager.js +0 -100
- package/esm2015/src/http/client/HttpClientAsync.js +0 -72
- package/esm2015/src/http/client/HttpClientBase.js +0 -147
- package/esm2015/src/http/client/HttpClientSync.js +0 -47
- package/esm2015/src/remote/AddUserLocateRemoteDataViewCommand.js +0 -21
- package/esm2015/src/remote/AddUserRangeRemoteDataViewCommand.js +0 -21
- package/esm2015/src/remote/AddUserSortRemoteDataViewCommand.js +0 -21
- package/esm2015/src/remote/RemoteCommandsProcessor.js +0 -901
- package/esm2015/src/remote/RemoteControlItemsRefreshCommand.js +0 -28
- package/esm2015/src/remote/RemoteDataViewCommandBase.js +0 -27
- package/esm2015/src/remote/RemoteDataViewCommandUpdateNonModifiable.js +0 -19
- package/esm2015/src/remote/RemoteDataviewManager.js +0 -23
- package/esm2015/src/remote/RemoteInitDataViewCommand.js +0 -14
- package/esm2015/src/remote/ResetUserLocateRemoteDataviewCommand.js +0 -20
- package/esm2015/src/remote/ResetUserRangeRemoteDataviewCommand.js +0 -16
- package/esm2015/src/remote/ResetUserSortRemoteDataviewCommand.js +0 -19
- package/esm2015/src/rt/Argument.js +0 -281
- package/esm2015/src/rt/ArgumentsList.js +0 -108
- package/esm2015/src/rt/Boundary.js +0 -161
- package/esm2015/src/rt/DataviewHeaderBase.js +0 -96
- package/esm2015/src/rt/Operation.js +0 -772
- package/esm2015/src/rt/Recompute.js +0 -372
- package/esm2015/src/rt/RemoteDataviewHeader.js +0 -114
- package/esm2015/src/rt/TableCache.js +0 -182
- package/esm2015/src/rt/TableCacheManager.js +0 -70
- package/esm2015/src/tasks/MGData.js +0 -561
- package/esm2015/src/tasks/MGDataCollection.js +0 -270
- package/esm2015/src/tasks/Task.js +0 -2601
- package/esm2015/src/tasks/TaskServiceBase.js +0 -30
- package/esm2015/src/tasks/TasksTable.js +0 -87
- package/esm2015/src/util/FlowMonitorQueue.js +0 -364
- package/esm2015/src/util/MgPriorityBlockingQueue.js +0 -79
- package/esm2015/src/util/PrmMap.js +0 -157
- package/fesm2015/magic-xpa-engine.js.map +0 -1
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { List, NString } from "@magic-xpa/mscorelib";
|
|
2
|
+
import { Key } from "../data/Key";
|
|
3
|
+
import { FieldsTableExt as FieldsTable } from "../data/FieldsTable";
|
|
4
|
+
import { Logger, XMLConstants, XmlParser } from "@magic-xpa/utils";
|
|
5
|
+
import { RuntimeContextBase } from "@magic-xpa/gui";
|
|
6
|
+
import { Record } from "../data/Record";
|
|
7
|
+
import { HeapSort } from "../util/HeapSort";
|
|
8
|
+
import { ConstInterface } from "../ConstInterface";
|
|
9
|
+
import { TableCacheManager } from "./TableCacheManager";
|
|
10
|
+
export class TableCache {
|
|
11
|
+
constructor(tableId) {
|
|
12
|
+
this._keys = null;
|
|
13
|
+
this._records = null;
|
|
14
|
+
this._currSortDir = '\0';
|
|
15
|
+
this._currSortKey = 0;
|
|
16
|
+
this.FldsTab = null;
|
|
17
|
+
this._isLoaded = false;
|
|
18
|
+
this._tableIdent = null;
|
|
19
|
+
this._tableUId = null;
|
|
20
|
+
this._tableUId = tableId;
|
|
21
|
+
this._keys = new List();
|
|
22
|
+
this._records = new List();
|
|
23
|
+
this._isLoaded = false;
|
|
24
|
+
}
|
|
25
|
+
SetTableIdent(ident) {
|
|
26
|
+
if (this._tableIdent === null)
|
|
27
|
+
this._tableIdent = ident;
|
|
28
|
+
else if (this._tableIdent !== ident) {
|
|
29
|
+
Logger.Instance.WriteExceptionToLogWithMsg("in TableCache.setTableIdent() already set and table identifier does not match");
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
FillData() {
|
|
33
|
+
let parser = RuntimeContextBase.Instance.Parser;
|
|
34
|
+
this.FillAttributes(parser);
|
|
35
|
+
while (this.InitInnerObjects(parser, parser.getNextTag())) {
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
FillAttributes(parser) {
|
|
39
|
+
let endContext = parser.getXMLdata().indexOf(XMLConstants.TAG_CLOSE, parser.getCurrIndex());
|
|
40
|
+
if (endContext !== -1 && endContext < parser.getXMLdata().length) {
|
|
41
|
+
let tag = parser.getXMLsubstring(endContext);
|
|
42
|
+
parser.add2CurrIndex(tag.indexOf(ConstInterface.MG_TAG_CACHED_TABLE) + ConstInterface.MG_TAG_CACHED_TABLE.length);
|
|
43
|
+
let tokensVector = XmlParser.getTokens(parser.getXMLsubstring(endContext), XMLConstants.XML_ATTR_DELIM);
|
|
44
|
+
for (let j = 0; j < tokensVector.length; j += 2) {
|
|
45
|
+
let attribute = (tokensVector.get_Item(j));
|
|
46
|
+
let valueStr = (tokensVector.get_Item(j + 1));
|
|
47
|
+
switch (attribute) {
|
|
48
|
+
case XMLConstants.MG_ATTR_ID:
|
|
49
|
+
if (this._tableUId.indexOf(valueStr) === -1) {
|
|
50
|
+
this._tableUId = valueStr;
|
|
51
|
+
Logger.Instance.WriteExceptionToLogWithMsg("in TableCache.fillAttributes() table unique id does not match");
|
|
52
|
+
}
|
|
53
|
+
break;
|
|
54
|
+
case XMLConstants.MG_ATTR_NAME:
|
|
55
|
+
break;
|
|
56
|
+
case ConstInterface.MG_ATTR_IDENT:
|
|
57
|
+
if (this._tableIdent !== valueStr) {
|
|
58
|
+
this._tableIdent = valueStr;
|
|
59
|
+
Logger.Instance.WriteExceptionToLogWithMsg("in TableCache.fillAttributes() table identifier id does not match");
|
|
60
|
+
}
|
|
61
|
+
break;
|
|
62
|
+
default:
|
|
63
|
+
Logger.Instance.WriteExceptionToLogWithMsg(NString.Format("Unrecognized attribute: '{0}'", attribute));
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
parser.setCurrIndex(++endContext);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
Logger.Instance.WriteExceptionToLogWithMsg("in TableCache.fillAttributes() out of string bounds");
|
|
71
|
+
}
|
|
72
|
+
InitInnerObjects(parser, foundTagName) {
|
|
73
|
+
if (foundTagName == null)
|
|
74
|
+
return false;
|
|
75
|
+
switch (foundTagName) {
|
|
76
|
+
case XMLConstants.MG_TAG_FLDH:
|
|
77
|
+
this.FldsTab = new FieldsTable();
|
|
78
|
+
this.FldsTab.fillData(parser);
|
|
79
|
+
break;
|
|
80
|
+
case ConstInterface.MG_ATTR_KEY: {
|
|
81
|
+
let current = new Key(this);
|
|
82
|
+
current.FillData(parser);
|
|
83
|
+
this._keys.push(current);
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
case ConstInterface.MG_TAG_RECORDS:
|
|
87
|
+
parser.setCurrIndex(parser.getXMLdata().indexOf(XMLConstants.TAG_CLOSE, parser.getCurrIndex()) + 1);
|
|
88
|
+
break;
|
|
89
|
+
case ConstInterface.MG_TAG_RECORDS_END:
|
|
90
|
+
parser.setCurrIndex2EndOfTag();
|
|
91
|
+
break;
|
|
92
|
+
case ConstInterface.MG_TAG_CACHED_TABLE_END:
|
|
93
|
+
parser.setCurrIndex2EndOfTag();
|
|
94
|
+
return false;
|
|
95
|
+
case ConstInterface.MG_TAG_REC: {
|
|
96
|
+
let current = new Record(this);
|
|
97
|
+
current.Initialize();
|
|
98
|
+
current.fillData(parser);
|
|
99
|
+
this._records.push(current);
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
GetTableUniqueId() {
|
|
106
|
+
return this._tableUId;
|
|
107
|
+
}
|
|
108
|
+
GetTableCommonIdentifier() {
|
|
109
|
+
return this._tableIdent;
|
|
110
|
+
}
|
|
111
|
+
GetCurrSortKey() {
|
|
112
|
+
return this._currSortKey;
|
|
113
|
+
}
|
|
114
|
+
GetKeyById(keyId) {
|
|
115
|
+
for (let i = 0; i < this._keys.length; i = i + 1) {
|
|
116
|
+
if (this._keys.get_Item(i).GetKeyId() === keyId)
|
|
117
|
+
return this._keys.get_Item(i);
|
|
118
|
+
}
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
async Load() {
|
|
122
|
+
if (!this._isLoaded) {
|
|
123
|
+
await TableCacheManager.Instance.LoadTable(this._tableUId);
|
|
124
|
+
this._isLoaded = true;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
async SortTable(sortKeyId, sortDir) {
|
|
128
|
+
if (!this._isLoaded)
|
|
129
|
+
await this.Load();
|
|
130
|
+
if (sortKeyId !== this._currSortKey || sortDir !== this._currSortDir) {
|
|
131
|
+
this._currSortDir = sortDir;
|
|
132
|
+
this._currSortKey = sortKeyId;
|
|
133
|
+
let recordsArr = this._records.ToArray();
|
|
134
|
+
HeapSort.sort(recordsArr);
|
|
135
|
+
if (this._currSortDir === 'D')
|
|
136
|
+
this.ReverseVector(recordsArr);
|
|
137
|
+
for (let i = 0; i < this._records.length; i = i + 1) {
|
|
138
|
+
this._records.set_Item(i, recordsArr[i]);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
Fetch(loc) {
|
|
143
|
+
let checkLoc = loc.length > 0;
|
|
144
|
+
if (this._isLoaded) {
|
|
145
|
+
if (!checkLoc) {
|
|
146
|
+
return ((this._records.length !== 0) ? this._records.get_Item(0) : null);
|
|
147
|
+
}
|
|
148
|
+
for (let i = 0; i < this._records.length; i = i + 1) {
|
|
149
|
+
let currRec = this._records.get_Item(i);
|
|
150
|
+
if (TableCache.validateRec(currRec, loc)) {
|
|
151
|
+
return currRec;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
static validateRec(currRec, rangeCond) {
|
|
158
|
+
let result = true;
|
|
159
|
+
for (let i = 0; i < rangeCond.length; i = i + 1) {
|
|
160
|
+
let currCnd = rangeCond.get_Item(i);
|
|
161
|
+
if (!currCnd.checkRange(currRec.GetFieldValue(currCnd.getCacheTableFldId()), currRec.IsNull(currCnd.getCacheTableFldId()))) {
|
|
162
|
+
result = false;
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return result;
|
|
167
|
+
}
|
|
168
|
+
ReverseVector(array) {
|
|
169
|
+
let right = array.length - 1;
|
|
170
|
+
for (let left = 0; left < Math.floor((array.length - 1) / 2); left++, right--) {
|
|
171
|
+
let tmp = array[left];
|
|
172
|
+
array[left] = array[right];
|
|
173
|
+
array[right] = tmp;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVDYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcnQvVGFibGVDYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDaEMsT0FBTyxFQUFDLGNBQWMsSUFBSSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUt4RCxNQUFNLE9BQU8sVUFBVTtJQWdCckIsWUFBWSxPQUFlO1FBZm5CLFVBQUssR0FBYyxJQUFJLENBQUM7UUFDeEIsYUFBUSxHQUFpQixJQUFJLENBQUM7UUFDOUIsaUJBQVksR0FBVyxJQUFJLENBQUM7UUFDNUIsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFFakMsWUFBTyxHQUFnQixJQUFJLENBQUM7UUFFcEIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixnQkFBVyxHQUFXLElBQUksQ0FBQztRQUMzQixjQUFTLEdBQVcsSUFBSSxDQUFDO1FBTy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQU8s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QUUsRUFBRyxLQUFLLEVBQUUsRUFBRTtZQUN0RixJQUFJLEdBQUcsR0FBVyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMaXN0LCBOU3RyaW5nfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuaW1wb3J0IHtLZXl9IGZyb20gXCIuLi9kYXRhL0tleVwiO1xyXG5pbXBvcnQge0ZpZWxkc1RhYmxlRXh0IGFzIEZpZWxkc1RhYmxlIH0gZnJvbSBcIi4uL2RhdGEvRmllbGRzVGFibGVcIjtcclxuaW1wb3J0IHtMb2dnZXIsIFhNTENvbnN0YW50cywgWG1sUGFyc2VyfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge1J1bnRpbWVDb250ZXh0QmFzZX0gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcbmltcG9ydCB7UmVjb3JkfSBmcm9tIFwiLi4vZGF0YS9SZWNvcmRcIjtcclxuaW1wb3J0IHtIZWFwU29ydH0gZnJvbSBcIi4uL3V0aWwvSGVhcFNvcnRcIjtcclxuaW1wb3J0IHtCb3VuZGFyeX0gZnJvbSBcIi4vQm91bmRhcnlcIjtcclxuaW1wb3J0IHtDb25zdEludGVyZmFjZX0gZnJvbSBcIi4uL0NvbnN0SW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7IFRhYmxlQ2FjaGVNYW5hZ2VyIH0gZnJvbSBcIi4vVGFibGVDYWNoZU1hbmFnZXJcIjtcclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vICAgcmVzaWRlbnQgdGFibGUgb24gY2xpZW50XHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNhY2hlIHtcclxuICBwcml2YXRlIF9rZXlzOiBMaXN0PEtleT4gPSBudWxsO1xyXG4gIHByaXZhdGUgX3JlY29yZHM6IExpc3Q8UmVjb3JkPiA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfY3VyclNvcnREaXI6IHN0cmluZyA9ICdcXDAnO1xyXG4gIHByaXZhdGUgX2N1cnJTb3J0S2V5OiBudW1iZXIgPSAwO1xyXG5cclxuICBGbGRzVGFiOiBGaWVsZHNUYWJsZSA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgX2lzTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfdGFibGVJZGVudDogc3RyaW5nID0gbnVsbDsgLy8gYSB0YWJsZSBpZGVudGlmaWVyIHRoaXMgaWQgaWYgc2hhcmUgYmV0d2VlbiBhbGwgaW5zdGFuY2VzIG9mIGEgcmVzaWRlbnQgdGFibGUgdXNlZCB0byBkZWxldGUgb2xkIGluc3RuY2VzIG9mIGEgcmVsb2FkZWQgdGFibGU7XHJcbiAgcHJpdmF0ZSBfdGFibGVVSWQ6IHN0cmluZyA9IG51bGw7IC8vIHRoZSB0YWJsZSB1bmlxdWUgaWQgdXNlZCB0byBsb2FkIHRoZSB0YWJsZSAtIGl0IGlzIGFsc28gdGhlIGlkIG9mIHRoZSBkYXRhLWlzbGFuZCBjb250YWluaW5nIHRoZSB0YWJsZSB4bWxcclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBjb25zdHJ1Y3RzIGFuIGVtcHR5IHRhYmxlIGNhY2hlIHdpdGhvdXQgbG9hZGluZyB0aGUgdGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGNvbnN0cnVjdG9yKHRhYmxlSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdGFibGVVSWQgPSB0YWJsZUlkO1xyXG4gICAgdGhpcy5fa2V5cyA9IG5ldyBMaXN0PEtleT4oKTtcclxuICAgIHRoaXMuX3JlY29yZHMgPSBuZXcgTGlzdDxSZWNvcmQ+KCk7XHJcbiAgICB0aGlzLl9pc0xvYWRlZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldCB0aGUgdGFibGUgc2hhcmVkIGlkZW50aWZpZXIgd2lsbCBiZSBjYWxsZWQgZGlyZWN0bHkgYmVmb3JlIHRoZSBjb25zdHJ1Y3RvciBhbmQgYmVmb3JlIHBhcnNpbmdcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIFNldFRhYmxlSWRlbnQoaWRlbnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3RhYmxlSWRlbnQgPT09IG51bGwpXHJcbiAgICAgIHRoaXMuX3RhYmxlSWRlbnQgPSBpZGVudDtcclxuICAgIGVsc2UgaWYgKHRoaXMuX3RhYmxlSWRlbnQgIT09IGlkZW50KSB7XHJcbiAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhcImluIFRhYmxlQ2FjaGUuc2V0VGFibGVJZGVudCgpIGFscmVhZHkgc2V0IGFuZCB0YWJsZSBpZGVudGlmaWVyICBkb2VzIG5vdCBtYXRjaFwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBwYXJzZXMgdGhlIHhtbCBkYXRhIG9mIHRoZSB0YWJsZSBjYWNoZSBhcyBwYXJ0IG9mIHRoZSBsb2FkIHByb2Nlc3NcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIEZpbGxEYXRhKCk6IHZvaWQge1xyXG4gICAgbGV0IHBhcnNlcjogWG1sUGFyc2VyID0gUnVudGltZUNvbnRleHRCYXNlLkluc3RhbmNlLlBhcnNlcjtcclxuICAgIHRoaXMuRmlsbEF0dHJpYnV0ZXMocGFyc2VyKTtcclxuICAgIHdoaWxlICh0aGlzLkluaXRJbm5lck9iamVjdHMocGFyc2VyLCBwYXJzZXIuZ2V0TmV4dFRhZygpKSkge1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHBhcnNlcyB0aGUgYXR0cmlidXRlcyBvZiB0aGUgY2FjaGVkVGFibGUgdGFnXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIEZpbGxBdHRyaWJ1dGVzKHBhcnNlcjogWG1sUGFyc2VyKTogdm9pZCB7XHJcbiAgICBsZXQgZW5kQ29udGV4dDogbnVtYmVyID0gcGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKFhNTENvbnN0YW50cy5UQUdfQ0xPU0UsIHBhcnNlci5nZXRDdXJySW5kZXgoKSk7XHJcblxyXG4gICAgaWYgKGVuZENvbnRleHQgIT09IC0xICYmIGVuZENvbnRleHQgPCBwYXJzZXIuZ2V0WE1MZGF0YSgpLmxlbmd0aCkge1xyXG4gICAgICAvLyBsYXN0IHBvc2l0aW9uIG9mIGl0cyB0YWdcclxuICAgICAgbGV0IHRhZzogc3RyaW5nID0gcGFyc2VyLmdldFhNTHN1YnN0cmluZyhlbmRDb250ZXh0KTtcclxuICAgICAgcGFyc2VyLmFkZDJDdXJySW5kZXgodGFnLmluZGV4T2YoQ29uc3RJbnRlcmZhY2UuTUdfVEFHX0NBQ0hFRF9UQUJMRSkgKyBDb25zdEludGVyZmFjZS5NR19UQUdfQ0FDSEVEX1RBQkxFLmxlbmd0aCk7XHJcblxyXG4gICAgICBsZXQgdG9rZW5zVmVjdG9yOiBMaXN0PHN0cmluZz4gPSBYbWxQYXJzZXIuZ2V0VG9rZW5zKHBhcnNlci5nZXRYTUxzdWJzdHJpbmcoZW5kQ29udGV4dCksIFhNTENvbnN0YW50cy5YTUxfQVRUUl9ERUxJTSk7XHJcblxyXG4gICAgICAvLyBwYXJzZSB0aGUgY2FjaGVkVGFibGUgYXR0cmlidXRlc1xyXG4gICAgICBmb3IgKGxldCBqOiBudW1iZXIgPSAwOyBqIDwgdG9rZW5zVmVjdG9yLmxlbmd0aDsgaiArPSAyKSB7XHJcbiAgICAgICAgbGV0IGF0dHJpYnV0ZTogc3RyaW5nID0gKHRva2Vuc1ZlY3Rvci5nZXRfSXRlbShqKSk7XHJcbiAgICAgICAgbGV0IHZhbHVlU3RyOiBzdHJpbmcgPSAodG9rZW5zVmVjdG9yLmdldF9JdGVtKGogKyAxKSk7XHJcblxyXG4gICAgICAgIHN3aXRjaCAoYXR0cmlidXRlKSB7XHJcbiAgICAgICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX0lEOlxyXG5cclxuICAgICAgICAgICAgLy8gdGhlIGlkIG9mIHRoZSB0YWJsZSBpcyByZWNpdmVkIGF0IHRoZSBjb25zdHJ1Y3RvciBhbmQgZG9lcyBub3QgbmVlZCB0byBiZSBwYXJzZWRcclxuICAgICAgICAgICAgLy8gaG93ZXZlciBpc3N1ZSBhIHdhcm5uaW5nIGlmIHRoZSBwYXJzZWQgdmFsdWUgaXMgZGlmZmVyZW50IHRoYW4gdGhlIGN1cnJlbnQgdmFsdWVcclxuICAgICAgICAgICAgaWYgKHRoaXMuX3RhYmxlVUlkLmluZGV4T2YodmFsdWVTdHIpID09PSAtMSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuX3RhYmxlVUlkID0gdmFsdWVTdHI7XHJcbiAgICAgICAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2dXaXRoTXNnKFwiaW4gVGFibGVDYWNoZS5maWxsQXR0cmlidXRlcygpIHRhYmxlIHVuaXF1ZSBpZCBkb2VzIG5vdCBtYXRjaFwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX05BTUU6XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9JREVOVDpcclxuICAgICAgICAgICAgaWYgKHRoaXMuX3RhYmxlSWRlbnQgIT09IHZhbHVlU3RyKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5fdGFibGVJZGVudCA9IHZhbHVlU3RyO1xyXG4gICAgICAgICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhcImluIFRhYmxlQ2FjaGUuZmlsbEF0dHJpYnV0ZXMoKSB0YWJsZSBpZGVudGlmaWVyIGlkIGRvZXMgbm90IG1hdGNoXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2dXaXRoTXNnKE5TdHJpbmcuRm9ybWF0KFwiVW5yZWNvZ25pemVkIGF0dHJpYnV0ZTogJ3swfSdcIiwgYXR0cmlidXRlKSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBwYXJzZXIuc2V0Q3VyckluZGV4KCsrZW5kQ29udGV4dCk7ICAvLyB0byBkZWxldGUgXCI+XCIgdG9vXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhcImluIFRhYmxlQ2FjaGUuZmlsbEF0dHJpYnV0ZXMoKSBvdXQgb2Ygc3RyaW5nIGJvdW5kc1wiKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBhbGxvY2F0ZXMgYW5kIGluaXRpYWxpemUgaW5uZXIgb2JqZWN0IGFjY29yZGluZyB0byB0aGUgZm91bmQgeG1sIGRhdGFcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByaXZhdGUgSW5pdElubmVyT2JqZWN0cyhwYXJzZXI6IFhtbFBhcnNlciwgZm91bmRUYWdOYW1lOiBTdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGlmIChmb3VuZFRhZ05hbWUgPT0gbnVsbClcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIHN3aXRjaCAoZm91bmRUYWdOYW1lKSB7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX1RBR19GTERIOlxyXG4gICAgICAgIHRoaXMuRmxkc1RhYiA9IG5ldyBGaWVsZHNUYWJsZSgpO1xyXG4gICAgICAgIHRoaXMuRmxkc1RhYi5maWxsRGF0YShwYXJzZXIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0tFWToge1xyXG4gICAgICAgIGxldCBjdXJyZW50ID0gbmV3IEtleSh0aGlzKTtcclxuICAgICAgICBjdXJyZW50LkZpbGxEYXRhKHBhcnNlcik7XHJcbiAgICAgICAgdGhpcy5fa2V5cy5wdXNoKGN1cnJlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX1RBR19SRUNPUkRTOlxyXG4gICAgICAgIHBhcnNlci5zZXRDdXJySW5kZXgocGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKFhNTENvbnN0YW50cy5UQUdfQ0xPU0UsIHBhcnNlci5nZXRDdXJySW5kZXgoKSkgKyAxKTtcclxuICAgICAgICAvLyBlbmQgb2Ygb3V0ZXIgdGFkIGFuZCBpdHMgXCI+XCJcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19UQUdfUkVDT1JEU19FTkQ6XHJcbiAgICAgICAgcGFyc2VyLnNldEN1cnJJbmRleDJFbmRPZlRhZygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX1RBR19DQUNIRURfVEFCTEVfRU5EOlxyXG4gICAgICAgIHBhcnNlci5zZXRDdXJySW5kZXgyRW5kT2ZUYWcoKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX1JFQzoge1xyXG4gICAgICAgIGxldCBjdXJyZW50ID0gbmV3IFJlY29yZCh0aGlzKTtcclxuICAgICAgICBjdXJyZW50LkluaXRpYWxpemUoKTtcclxuICAgICAgICBjdXJyZW50LmZpbGxEYXRhKHBhcnNlcik7XHJcbiAgICAgICAgdGhpcy5fcmVjb3Jkcy5wdXNoKGN1cnJlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSB1bmlxdWUgaWQgb2YgdGhlIGN1cnJlbnQgY2FjaGVkIHRhYmxlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBHZXRUYWJsZVVuaXF1ZUlkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGFibGVVSWQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSB0YWJsZSBjb21tb24gaWRlbnRpZmllclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgR2V0VGFibGVDb21tb25JZGVudGlmaWVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGFibGVJZGVudDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSBrZXkgYnkgd2hpYyB3ZSBhcmUgY3VycmVudGx5IHNvcnRpbmcgKG9yIGN1cnJlbnRseSBzb3J0ZWQpIHRoZSB0YWJsZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgR2V0Q3VyclNvcnRLZXkoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9jdXJyU29ydEtleTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSBrZXkgYnkgaWRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIEdldEtleUJ5SWQoa2V5SWQ6IG51bWJlcik6IEtleSB7XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgdGhpcy5fa2V5cy5sZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICBpZiAodGhpcy5fa2V5cy5nZXRfSXRlbShpKS5HZXRLZXlJZCgpID09PSBrZXlJZClcclxuICAgICAgICByZXR1cm4gdGhpcy5fa2V5cy5nZXRfSXRlbShpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGxvYWRzIGEgdGFibGUgZnJvbSB0aGUgZGF0YUlzbGFuZCBhY2NvcmRpbmcgdG8gaXMgdW5pcXVlIGlkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIGFzeW5jIExvYWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuX2lzTG9hZGVkKSB7XHJcbiAgICAgIGF3YWl0IFRhYmxlQ2FjaGVNYW5hZ2VyLkluc3RhbmNlLkxvYWRUYWJsZSh0aGlzLl90YWJsZVVJZCk7XHJcbiAgICAgIHRoaXMuX2lzTG9hZGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzb3J0IHRoZSBjdXJyZW50IHRhYmxlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJzb3J0S2V5SWRcIj50aGUgaWQgb2YgdGhlIGtleSB0byBzb3J0IGJ5IDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic29ydERpclwiPjwvcGFyYW0+XHJcbiAgYXN5bmMgU29ydFRhYmxlKHNvcnRLZXlJZDogbnVtYmVyLCBzb3J0RGlyOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5faXNMb2FkZWQpXHJcbiAgICAgIGF3YWl0IHRoaXMuTG9hZCgpO1xyXG5cclxuICAgIC8vIGlmIHRoZSB0YWJsZSBpcyBhbHJlYWR5IHNvcnRlZCB0aGUgd2F5IHdlIHdhbnQgaXRcclxuICAgIGlmIChzb3J0S2V5SWQgIT09IHRoaXMuX2N1cnJTb3J0S2V5IHx8IHNvcnREaXIgIT09IHRoaXMuX2N1cnJTb3J0RGlyKSB7XHJcbiAgICAgIHRoaXMuX2N1cnJTb3J0RGlyID0gc29ydERpcjtcclxuICAgICAgdGhpcy5fY3VyclNvcnRLZXkgPSBzb3J0S2V5SWQ7XHJcblxyXG4gICAgICBsZXQgcmVjb3Jkc0FycjogUmVjb3JkW10gPSB0aGlzLl9yZWNvcmRzLlRvQXJyYXkoKTtcclxuICAgICAgSGVhcFNvcnQuc29ydChyZWNvcmRzQXJyKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLl9jdXJyU29ydERpciA9PT0gJ0QnKVxyXG4gICAgICAgIHRoaXMuUmV2ZXJzZVZlY3RvcihyZWNvcmRzQXJyKTtcclxuXHJcbiAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB0aGlzLl9yZWNvcmRzLmxlbmd0aDsgaSA9IGkgKyAxKSB7XHJcbiAgICAgICAgdGhpcy5fcmVjb3Jkcy5zZXRfSXRlbShpLCByZWNvcmRzQXJyW2ldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGV4ZWN1dGVzIHRoZSB0aGUgbGluayBvcGVyYXRpb24gd2UgYXNzdW1lIHRoZSB0YWJsZSBpcyBhbHJlYWR5IHNvcnRlZCBieSB0aGUgY29ycmVjdCBrZXkgYW5kIGRpcmVjdGlvblxyXG4gIC8vLyAgIHRoZSBtZXRob2QgcmV0dXJucyB0aGUgcmVxdWVzdGVkIHJlY29yZCBhY2NvcmRpbmcgdGhlIGxvY2F0ZXNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIEZldGNoKGxvYzogTGlzdDxCb3VuZGFyeT4pOiBSZWNvcmQge1xyXG5cclxuICAgIC8vIGlmIHRoZXJlIGFyZSBub3QgYW55IGxvY2F0ZSBleHByZXNzaW9uIHRoZW4gZWl0aGVyIHdlIHJldHVybiB0aGUgZmZpcnN0IHJlY29yZCB0aGF0IGFjY2VwdHNcclxuICAgIC8vIGFsIHRoZSByYW5nZSBjb25kaXRpb24gb3Igd2UgcmV0dXJuIHRoZSBmaXJzdCByZWNvcmQgaW4gdGhlIHRhYmxlIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBzb3J0XHJcbiAgICBsZXQgY2hlY2tMb2M6IGJvb2xlYW4gPSBsb2MubGVuZ3RoID4gMDtcclxuXHJcbiAgICBpZiAodGhpcy5faXNMb2FkZWQpIHtcclxuICAgICAgLy8gc2hvdWxkIGJlIGxvYWRlZCBhdCBzb3J0IHRpbWUgdGhlIHRpbWUgbXVzdCBiZSBhbHJlYWR5IHNvcnRlZCBhdCB0aGlzIHN0YWdlXHJcbiAgICAgIGlmICghY2hlY2tMb2MpIHtcclxuICAgICAgICAvLyBpZiB0aGVyZSBhcmUgbm8gbG9jYXRlcyByZXR1cm4gdGhlIGZpcnN0IHJlY29yZFxyXG4gICAgICAgIHJldHVybiAoKHRoaXMuX3JlY29yZHMubGVuZ3RoICE9PSAwKSA/IHRoaXMuX3JlY29yZHMuZ2V0X0l0ZW0oMCkgOiBudWxsKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gZmluZCB0aGUgZmlyc3QgcmVjb3JkIHRoYXQgYWdyZWVzIHdpdGggdGhlIGxvY2F0ZXMgYW50IHJldHVybiBpdFxyXG4gICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgdGhpcy5fcmVjb3Jkcy5sZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICAgIGxldCBjdXJyUmVjOiBSZWNvcmQgPSB0aGlzLl9yZWNvcmRzLmdldF9JdGVtKGkpO1xyXG5cclxuICAgICAgICAvLyBjaGVjayBpZiB0aGlzIHJlY29yZCBhZ3JlZXMgd2l0aCBhbGwgdGhlIGxvY2F0ZSBjb25kaXRpb25zXHJcbiAgICAgICAgaWYgKFRhYmxlQ2FjaGUudmFsaWRhdGVSZWMoY3VyclJlYywgbG9jKSkge1xyXG4gICAgICAgICAgcmV0dXJuIGN1cnJSZWM7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBpZiB3ZSBnb3QgaGVyZSB0aGVuIGVpdGhlciB0aGUgdGFibGUgd2FzIG5vdCBsb2FkZWQgYW5kIHNvcnRlZCBvciB3ZSBkaWQgbm90IGZpbmQgYW55IHJlY29yZFxyXG4gICAgLy8gdGhhdCBhZ3JlZXMgd2l0aCB0aGUgbG9jYXRlIGV4cHJlc3Npb25zIC0gaW4gZWl0aGVyIGNhc2UgcmV0dXJuIG51bGxcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHZhbGlkYXRlIGEgcmVjb3JkIGRhdGEgYWdhaW5zdCBhIHNlcmllcyBvZiBsb2NhdGUgZXhwcmVzc2lvbnNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlUmVjKGN1cnJSZWM6IFJlY29yZCwgcmFuZ2VDb25kOiBMaXN0PEJvdW5kYXJ5Pik6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgLy8gZ28gb3ZlciBhbGwgdGhlIGNvbmRpdGlvbnNcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCByYW5nZUNvbmQubGVuZ3RoOyBpID0gaSArIDEpIHtcclxuICAgICAgbGV0IGN1cnJDbmQ6IEJvdW5kYXJ5ID0gcmFuZ2VDb25kLmdldF9JdGVtKGkpO1xyXG4gICAgICAvLyBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgZmlsZWQgdGhhdCBkb2VzIG5vdCBhZ3JlZSBhbGwgdGhlIHJlY29yZCBkaWVzIG5vdCBhZ3JlZVxyXG4gICAgICBpZiAoIWN1cnJDbmQuY2hlY2tSYW5nZShjdXJyUmVjLkdldEZpZWxkVmFsdWUoY3VyckNuZC5nZXRDYWNoZVRhYmxlRmxkSWQoKSksIGN1cnJSZWMuSXNOdWxsKGN1cnJDbmQuZ2V0Q2FjaGVUYWJsZUZsZElkKCkpKSkge1xyXG4gICAgICAgIHJlc3VsdCA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vL1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiYXJyYXlcIj48L3BhcmFtPlxyXG4gIHByb3RlY3RlZCBSZXZlcnNlVmVjdG9yKGFycmF5OiBPYmplY3RbXSk6IHZvaWQge1xyXG4gICAgbGV0IHJpZ2h0OiBudW1iZXIgPSBhcnJheS5sZW5ndGggLSAxO1xyXG4gICAgZm9yIChsZXQgbGVmdDogbnVtYmVyID0gMDsgbGVmdCA8IE1hdGguZmxvb3IoKGFycmF5Lmxlbmd0aCAtIDEpIC8gMik7IGxlZnQrKyAsIHJpZ2h0LS0pIHtcclxuICAgICAgbGV0IHRtcDogT2JqZWN0ID0gYXJyYXlbbGVmdF07XHJcbiAgICAgIGFycmF5W2xlZnRdID0gYXJyYXlbcmlnaHRdO1xyXG4gICAgICBhcnJheVtyaWdodF0gPSB0bXA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Misc } from '@magic-xpa/utils';
|
|
2
|
+
import { ApplicationException, Exception, Hashtable, List } from '@magic-xpa/mscorelib';
|
|
3
|
+
import { RuntimeContextBase } from '@magic-xpa/gui';
|
|
4
|
+
import { RemoteCommandsProcessor } from '../remote/RemoteCommandsProcessor';
|
|
5
|
+
export class TableCacheManager {
|
|
6
|
+
constructor() {
|
|
7
|
+
this._tables = null;
|
|
8
|
+
this._tables = new Hashtable();
|
|
9
|
+
}
|
|
10
|
+
GetTableById(tableUId) {
|
|
11
|
+
return this._tables.get_Item(tableUId);
|
|
12
|
+
}
|
|
13
|
+
TableExists(tableUId) {
|
|
14
|
+
let result = true;
|
|
15
|
+
if (this.GetTableById(tableUId) === null)
|
|
16
|
+
result = false;
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
InsertTable(table) {
|
|
20
|
+
let result = false;
|
|
21
|
+
if (!this.TableExists(table.GetTableUniqueId())) {
|
|
22
|
+
this._tables.set_Item(table.GetTableUniqueId(), table);
|
|
23
|
+
result = true;
|
|
24
|
+
}
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
async LoadTable(tableUId) {
|
|
28
|
+
let server = RemoteCommandsProcessor.GetInstance();
|
|
29
|
+
if (this.TableExists(tableUId)) {
|
|
30
|
+
let current = this._tables.get_Item(tableUId);
|
|
31
|
+
try {
|
|
32
|
+
let residentTableContentStr = await server.GetContent(tableUId, true);
|
|
33
|
+
try {
|
|
34
|
+
RuntimeContextBase.Instance.Parser.loadTableCacheData(residentTableContentStr);
|
|
35
|
+
}
|
|
36
|
+
catch (innerException) {
|
|
37
|
+
if (innerException instanceof Exception) {
|
|
38
|
+
throw new ApplicationException("Unable to parse resident table " + tableUId + ", due to unsupported encoding.", innerException);
|
|
39
|
+
}
|
|
40
|
+
else
|
|
41
|
+
throw innerException;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (throwable) {
|
|
45
|
+
if (throwable instanceof Exception) {
|
|
46
|
+
Misc.WriteStackTrace(throwable);
|
|
47
|
+
}
|
|
48
|
+
else
|
|
49
|
+
throw throwable;
|
|
50
|
+
}
|
|
51
|
+
current.FillData();
|
|
52
|
+
let deletedUids = new List();
|
|
53
|
+
let enumerator = this._tables.Values;
|
|
54
|
+
while (enumerator.MoveNext()) {
|
|
55
|
+
let tbl = enumerator.Current;
|
|
56
|
+
let currIdent = tbl.GetTableCommonIdentifier();
|
|
57
|
+
if (currIdent === current.GetTableCommonIdentifier() && tbl.GetTableUniqueId() !== tableUId)
|
|
58
|
+
deletedUids.push(tbl.GetTableUniqueId());
|
|
59
|
+
}
|
|
60
|
+
for (let i = 0; i < deletedUids.length; i = i + 1) {
|
|
61
|
+
this._tables.Remove(deletedUids.get_Item(i));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
TableCacheManager.Instance = new TableCacheManager();
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVDYWNoZU1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3J0L1RhYmxlQ2FjaGVNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsb0JBQW9CLEVBQW9CLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFLNUUsTUFBTSxPQUFPLGlCQUFpQjtJQUs1QjtRQUpRLFlBQU8sR0FBa0MsSUFBSSxDQUFDO1FBS3BELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxTQUFTLEVBQXNCLENBQUM7SUFDckQsQ0FBQztJQUtELFlBQVksQ0FBQyxRQUFnQjtRQUMzQixPQUFtQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBS0QsV0FBVyxDQUFDLFFBQWdCO1FBQzFCLElBQUksTUFBTSxHQUFZLElBQUksQ0FBQztRQUUzQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSTtZQUN0QyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWpCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFNRCxXQUFXLENBQUMsS0FBaUI7UUFDM0IsSUFBSSxNQUFNLEdBQVksS0FBSyxDQUFDO1FBRTVCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdkQsTUFBTSxHQUFHLElBQUksQ0FBQztTQUNmO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQU1ELEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBZ0I7UUFDOUIsSUFBSSxNQUFNLEdBQTBCLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRzFFLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUU5QixJQUFJLE9BQU8sR0FBMkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEUsSUFBSTtnQkFDRixJQUFJLHVCQUF1QixHQUFXLE1BQU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzlFLElBQUk7b0JBQ0Ysa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2lCQUNoRjtnQkFDRCxPQUFPLGNBQWMsRUFBRTtvQkFDckIsSUFBSSxjQUFjLFlBQVksU0FBUyxFQUFFO3dCQUN2QyxNQUFNLElBQUksb0JBQW9CLENBQUMsaUNBQWlDLEdBQUcsUUFBUSxHQUFHLGdDQUFnQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO3FCQUNqSTs7d0JBRUMsTUFBTSxjQUFjLENBQUM7aUJBQ3hCO2FBQ0Y7WUFDRCxPQUFPLFNBQVMsRUFBRTtnQkFDaEIsSUFBSSxTQUFTLFlBQVksU0FBUyxFQUFFO29CQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUNqQzs7b0JBRUMsTUFBTSxTQUFTLENBQUM7YUFDbkI7WUFHRCxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFHbkIsSUFBSSxXQUFXLEdBQWlCLElBQUksSUFBSSxFQUFVLENBQUM7WUFDbkQsSUFBSSxVQUFVLEdBQWlDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ25FLE9BQU8sVUFBVSxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUM1QixJQUFJLEdBQUcsR0FBMkIsVUFBVSxDQUFDLE9BQU8sQ0FBQztnQkFDckQsSUFBSSxTQUFTLEdBQVcsR0FBRyxDQUFDLHdCQUF3QixFQUFFLENBQUM7Z0JBQ3ZELElBQUksU0FBUyxLQUFLLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLFFBQVE7b0JBQ3pGLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQzthQUM1QztZQUVELEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDOUM7U0FDRjtJQUNILENBQUM7O0FBekZNLDBCQUFRLEdBQXNCLElBQUksaUJBQWlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pc2MgfSBmcm9tICdAbWFnaWMteHBhL3V0aWxzJztcclxuaW1wb3J0IHsgQXBwbGljYXRpb25FeGNlcHRpb24sIEFycmF5X0VudW1lcmF0b3IsIEV4Y2VwdGlvbiwgSGFzaHRhYmxlLCBMaXN0IH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQgeyBSdW50aW1lQ29udGV4dEJhc2UgfSBmcm9tICdAbWFnaWMteHBhL2d1aSc7XHJcbmltcG9ydCB7IFRhYmxlQ2FjaGUgfSBmcm9tICcuL1RhYmxlQ2FjaGUnO1xyXG5pbXBvcnQgeyBDb21tYW5kc1Byb2Nlc3NvckJhc2UgfSBmcm9tICcuLi9Db21tYW5kc1Byb2Nlc3NvckJhc2UnO1xyXG5pbXBvcnQgeyBSZW1vdGVDb21tYW5kc1Byb2Nlc3NvciB9IGZyb20gJy4uL3JlbW90ZS9SZW1vdGVDb21tYW5kc1Byb2Nlc3Nvcic7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyAgIGhhbmRsZXMgdGhlIGxvYWRpbmcgYW5kIG1hbmFnaW5nIG9mIGFsbCBjYWNoZSB0YWJsZXMgaW4gdGhlIGNvbnRleHRcclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGNsYXNzIFRhYmxlQ2FjaGVNYW5hZ2VyIHtcclxuICBwcml2YXRlIF90YWJsZXM6IEhhc2h0YWJsZTxzdHJpbmcsIFRhYmxlQ2FjaGU+ID0gbnVsbDtcclxuXHJcbiAgc3RhdGljIEluc3RhbmNlOiBUYWJsZUNhY2hlTWFuYWdlciA9IG5ldyBUYWJsZUNhY2hlTWFuYWdlcigpO1xyXG5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5fdGFibGVzID0gbmV3IEhhc2h0YWJsZTxzdHJpbmcsIFRhYmxlQ2FjaGU+KCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSB0YWJsZUNhY2hlIG9iamVjdCAgYWNjb3JkaW5nIHRvIGl0cyB1bmlxdWUgaWQgb3IgbnVsbCBpZiBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFuYWdlclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgR2V0VGFibGVCeUlkKHRhYmxlVUlkOiBzdHJpbmcpOiBUYWJsZUNhY2hlIHtcclxuICAgIHJldHVybiA8VGFibGVDYWNoZT50aGlzLl90YWJsZXMuZ2V0X0l0ZW0odGFibGVVSWQpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGNoZWNrcyBpZiBhIGdpdmVuIHRhYmxlIGV4aXN0cyBpbiB0aGUgbWFuYWdlclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgVGFibGVFeGlzdHModGFibGVVSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgaWYgKHRoaXMuR2V0VGFibGVCeUlkKHRhYmxlVUlkKSA9PT0gbnVsbClcclxuICAgICAgcmVzdWx0ID0gZmFsc2U7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBpbnNlcnRzIGEgdGFibGUgaW50byB0aGUgbWFuYWdlciBpcyBub3QgYWxyZWFkeSBleGlzdHNcclxuICAvLy8gICByZXR1cm5zIHRydWUgaXMgaW5zZXJ0IHN1Y2NlZWRlZCBmYWxzZSBvdGhlcndpc2VcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIEluc2VydFRhYmxlKHRhYmxlOiBUYWJsZUNhY2hlKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKCF0aGlzLlRhYmxlRXhpc3RzKHRhYmxlLkdldFRhYmxlVW5pcXVlSWQoKSkpIHtcclxuICAgICAgdGhpcy5fdGFibGVzLnNldF9JdGVtKHRhYmxlLkdldFRhYmxlVW5pcXVlSWQoKSwgdGFibGUpO1xyXG4gICAgICByZXN1bHQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgbG9hZHMgYSBuZXcgdGFibGUgc3RhcnQgdGhlIHRhYmxlIHBhcnNpbmcgcHJvY2Vzc1xyXG4gIC8vLyAgIGRlbGV0ZSBhbnkgb2xkIGluc3RhbmNlcyBvZiB0aGUgc2FtZSB0YWJsZSAoZXZlbiBpZiB0aGV5IG90aGVyIHVuaXF1ZSBpZHNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGFzeW5jIExvYWRUYWJsZSh0YWJsZVVJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgc2VydmVyOiBDb21tYW5kc1Byb2Nlc3NvckJhc2UgPSBSZW1vdGVDb21tYW5kc1Byb2Nlc3Nvci5HZXRJbnN0YW5jZSgpO1xyXG5cclxuICAgIC8vIHRoZSB0YWJsZSBtdXN0IGV4aXN0IGluIHRoZSBoYXNoVGFibGUgYXQgdGhpcyBzdGFnZSBlbHNlIGl0IGlzIGFuIGVycm9yXHJcbiAgICBpZiAodGhpcy5UYWJsZUV4aXN0cyh0YWJsZVVJZCkpIHtcclxuICAgICAgLy8gZ2V0IHRoZSB0YWJsZVxyXG4gICAgICBsZXQgY3VycmVudDogVGFibGVDYWNoZSA9IDxUYWJsZUNhY2hlPnRoaXMuX3RhYmxlcy5nZXRfSXRlbSh0YWJsZVVJZCk7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgbGV0IHJlc2lkZW50VGFibGVDb250ZW50U3RyOiBzdHJpbmcgPSBhd2FpdCBzZXJ2ZXIuR2V0Q29udGVudCh0YWJsZVVJZCwgdHJ1ZSk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIFJ1bnRpbWVDb250ZXh0QmFzZS5JbnN0YW5jZS5QYXJzZXIubG9hZFRhYmxlQ2FjaGVEYXRhKHJlc2lkZW50VGFibGVDb250ZW50U3RyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGlubmVyRXhjZXB0aW9uKSB7XHJcbiAgICAgICAgICBpZiAoaW5uZXJFeGNlcHRpb24gaW5zdGFuY2VvZiBFeGNlcHRpb24pIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEFwcGxpY2F0aW9uRXhjZXB0aW9uKFwiVW5hYmxlIHRvIHBhcnNlIHJlc2lkZW50IHRhYmxlIFwiICsgdGFibGVVSWQgKyBcIiwgZHVlIHRvIHVuc3VwcG9ydGVkIGVuY29kaW5nLlwiLCBpbm5lckV4Y2VwdGlvbik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRocm93IGlubmVyRXhjZXB0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjYXRjaCAodGhyb3dhYmxlKSB7XHJcbiAgICAgICAgaWYgKHRocm93YWJsZSBpbnN0YW5jZW9mIEV4Y2VwdGlvbikge1xyXG4gICAgICAgICAgTWlzYy5Xcml0ZVN0YWNrVHJhY2UodGhyb3dhYmxlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhyb3cgdGhyb3dhYmxlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBzdGFydCBwYXJzaW5nXHJcbiAgICAgIGN1cnJlbnQuRmlsbERhdGEoKTtcclxuXHJcbiAgICAgIC8vIGRlbGV0ZSBvbGQgdGFibGVzXHJcbiAgICAgIGxldCBkZWxldGVkVWlkczogTGlzdDxzdHJpbmc+ID0gbmV3IExpc3Q8c3RyaW5nPigpO1xyXG4gICAgICBsZXQgZW51bWVyYXRvcjogQXJyYXlfRW51bWVyYXRvcjxUYWJsZUNhY2hlPiA9IHRoaXMuX3RhYmxlcy5WYWx1ZXM7XHJcbiAgICAgIHdoaWxlIChlbnVtZXJhdG9yLk1vdmVOZXh0KCkpIHtcclxuICAgICAgICBsZXQgdGJsOiBUYWJsZUNhY2hlID0gPFRhYmxlQ2FjaGU+ZW51bWVyYXRvci5DdXJyZW50O1xyXG4gICAgICAgIGxldCBjdXJySWRlbnQ6IHN0cmluZyA9IHRibC5HZXRUYWJsZUNvbW1vbklkZW50aWZpZXIoKTtcclxuICAgICAgICBpZiAoY3VycklkZW50ID09PSBjdXJyZW50LkdldFRhYmxlQ29tbW9uSWRlbnRpZmllcigpICYmIHRibC5HZXRUYWJsZVVuaXF1ZUlkKCkgIT09IHRhYmxlVUlkKVxyXG4gICAgICAgICAgZGVsZXRlZFVpZHMucHVzaCh0YmwuR2V0VGFibGVVbmlxdWVJZCgpKTtcclxuICAgICAgfVxyXG4gICAgICAvLyBkZWxldGVcclxuICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGRlbGV0ZWRVaWRzLmxlbmd0aDsgaSA9IGkgKyAxKSB7XHJcbiAgICAgICAgdGhpcy5fdGFibGVzLlJlbW92ZShkZWxldGVkVWlkcy5nZXRfSXRlbShpKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
File without changes
|
|
File without changes
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
export {};
|
|
1
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSU1HRGF0YUNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3Rhc2tzL0lNR0RhdGFDb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaXN0LCBTdHJpbmdCdWlsZGVyIH0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7IElNR0RhdGFUYWJsZSwgSVRhc2ssIE1nRm9ybUJhc2UgfSBmcm9tIFwiQG1hZ2ljLXhwYS9ndWlcIjtcclxuaW1wb3J0IHsgTUdEYXRhIH0gZnJvbSBcIi4vTUdEYXRhXCI7XHJcbmltcG9ydCB7IFRhc2tCYXNlIH0gZnJvbSBcIi4vVGFza0Jhc2VcIjtcclxuaW1wb3J0IHsgSUNsaWVudENvbW1hbmQgfSBmcm9tIFwiLi4vY29tbWFuZHMvSUNsaWVudENvbW1hbmRcIjtcclxuaW1wb3J0IHsgQ29tbWFuZHNUYWJsZSB9IGZyb20gXCIuLi9Db21tYW5kc1RhYmxlXCI7XHJcbmltcG9ydCB7IEV4cHJlc3Npb24gfSBmcm9tIFwiLi4vZXhwL0V4cHJlc3Npb25cIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU1HRGF0YUNvbGxlY3Rpb24gZXh0ZW5kcyBJTUdEYXRhVGFibGUge1xyXG4gIGN1cnJNZ2RJRDogbnVtYmVyO1xyXG4gIFN0YXJ0dXBNZ0RhdGE6IE1HRGF0YTtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgTUdEYXRhIG9iamVjdCBieSBpdHMgaW5kZXhcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldE1HRGF0YShpZHg6IG51bWJlcik6IE1HRGF0YTtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGN1cnJlbnQgaWQgb2YgYSB0YXNrIGFjY29yZGluZyB0byBpdHMgb3JpZ2luYWwgaWRcclxuICAvLy8gICBpdCB3aWxsIHVzdWFsbHkgcmV0dXJuIHRoZSBzYW1lIGlkIGFzIHNlbnQgdG8gaXQsIGJ1dCBmb3Igc3ViZm9ybSBhZnRlciBlcnJvciBhbmQgcmV0cnkgaXQgd2lsbFxyXG4gIC8vLyAgIGNvbnZlcnQgdGhlIG9yaWdpbmFsIGlkIHRvIHRoZSBjdXJyZW50LlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0YXNrSWRcIj4tIG9yaWdpbmFsIHRhc2sgaWQ8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gdGhlIGN1cnJlbnQgdGFza2lkIGZvciB0aGlzIHRhc2s8L3JldHVybnM+XHJcbiAgZ2V0VGFza0lkQnlJZCh0YXNrSWQ6IHN0cmluZyk6IHN0cmluZztcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCBzaXplIG9mIE1HRGF0YSB0YWJsZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiBzaXplIG9mIHRhYmxlPC9yZXR1cm5zPlxyXG4gIGdldFNpemUoKTogbnVtYmVyO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyBNR0RhdGEgb2JqZWN0IGJ5IGl0cyBpbmRleFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0TUdEYXRhKGlkeDogbnVtYmVyKTogTUdEYXRhO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgc3RhcnQgdGhlIHRhc2tzIGl0ZXJhdG9yXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzdGFydFRhc2tzSXRlcmF0aW9uKCk6IHZvaWQ7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgdGhlIG5leHQgdGFzayB1c2luZyB0aGUgdGFza3MgaXRlcmF0b3JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldE5leHRUYXNrKCk6IElUYXNrO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIGFsbCB0b3AgbGV2ZWwgZm9ybXMgdGhhdCBleGlzdFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgR2V0VG9wTW9zdEZvcm1zKCk6IExpc3Q8TWdGb3JtQmFzZT47XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgdGhlIGN1cnJlbnQgTUdEYXRhXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IE1HRGF0YSBvYmplY3Q8L3JldHVybnM+XHJcbiAgZ2V0Q3Vyck1HRGF0YSgpOiBNR0RhdGE7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gR2V0cyB0aGUgTUdEYXRhIHRoYXQgaG9sZHMvc2hvdWxkIGhvbGQgdGhlIHN0YXJ0dXAgcHJvZ3JhbS5cclxuICAvLy8gVGhlIG1ldGhvZCB0YWtlcyBpbnRvIGNvbnNpZGVyYXRpb24gd2hldGhlciB0aGUgYXBwbGljYXRpb24gdXNlcyBNREkgb3Igbm90LlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBHZXRNR0RhdGFGb3JTdGFydHVwUHJvZ3JhbSgpOiBNR0RhdGE7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBmaW5kIGFsbCB0YXNrcyB3aGljaCB3ZXJlIHRyaWdnZXJlZCBieSBhIHNwZWNpZmljIHRhc2tcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidHJpZ2dlcmluZ1Rhc2tcIj50aGUgdGFzayB3aG8gdHJpZ2dlcmVkIGFsbCBvdGhlciB0YXNrcy48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gdmVjdG9yIGNvbnRhaW5pbmcgYWxsIHRhc2tzIHdoaWNoIHdlcmUgdHJpZ2dlcmVkIGJ5IHRoZSBwYXJhbWV0ZXIgdGFzazwvcmV0dXJucz5cclxuICBnZXRUcmlnZ2VyZWRUYXNrcyh0cmlnZ2VyaW5nVGFzazogVGFza0Jhc2UpOiBMaXN0PFRhc2tCYXNlPjtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgYXZhaWxhYmxlIGluZGV4XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRBdmFpbGFibGVJZHgoKTogbnVtYmVyO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYWRkIE1HRGF0YSBvYmplY3QgdG8gdGhlIHRhYmxlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm1nZFwiPnRoZSBNR0RhdGEgb2JqZWN0IHRvIGFkZDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpZHhcIj50aGUgaW5kZXggd2l0aGluIHRoZSB0YWJsZSBmb3IgdGhlIG5ldyBNR0RhdGE8L3BhcmFtPlxyXG4gIGFkZE1HRGF0YShtZ2Q6IE1HRGF0YSwgaWR4OiBudW1iZXIsIGlzU3RhcnR1cDogYm9vbGVhbik6IHZvaWQ7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBidWlsZCBYTUwgc3RyaW5nIG9mIHRoZSBNR0RhdGFUQUJMRSBvYmplY3QsXHJcbiAgLy8vICAgQUxMIE1HRGF0YSBpbiB0aGUgdGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIm1lc3NhZ2VcIj5hIG1lc3NhZ2UgYmVpbmcgcHJlcGFyZWQuPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJzZXJpYWxpemVUYXNrc1wiPmlmIHRydWUsIHRhc2tzIGluIHRoZSBjdXJyZW50IGV4ZWN1dGlvbiB3aWxsIGFsc28gYmUgc2VyaWFsaXplZC48L3BhcmFtPlxyXG4gIGJ1aWxkWE1MKG1lc3NhZ2U6IFN0cmluZ0J1aWxkZXIsIHNlcmlhbGl6ZVRhc2tzOiBib29sZWFuKTogdm9pZDtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHBlcmZvcm0gYW55IGRhdGEgZXJyb3IgcmVjb3ZlcnkgYWN0aW9uIG9uIGFsbCBkYXRhdmlld3NcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByb2Nlc3NSZWNvdmVyeSgpOiB2b2lkO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIEFkZCBjb21tYW5kLCBleGVjdXRlIHJlcXVlc3QgYW5kIGRvIHJlY29yZCBjeWNsZSBmb3Igc3ViZm9ybXMgdGhhdCB0aGUgc2VydmVyIHNlbnQgdGhlaXIgbmV3IGRhdGF2aWV3XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjbWRzVG9TZXJ2ZXJcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImNtZFRvU2VydmVyXCI+YWRkaXRpb25hbCBjb21tYW5kIHRvIHRoZSBTZXJ2ZXI8L3BhcmFtPlxyXG4gIGV4ZWNSZXF1ZXN0V2l0aFN1YmZvcm1SZWNvcmRDeWNsZShjbWRzVG9TZXJ2ZXI6IENvbW1hbmRzVGFibGUsIGNtZFRvU2VydmVyOiBJQ2xpZW50Q29tbWFuZCwgZXhwOiBFeHByZXNzaW9uKTogUHJvbWlzZTx2b2lkPjtcclxufVxyXG4iXX0=
|