@magic-xpa/engine 4.1100.0-dev4110.98 → 4.1100.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +7 -7
- package/{esm2020 → esm2022}/index.mjs +188 -188
- package/{esm2020 → esm2022}/magic-xpa-engine.mjs +1 -1
- package/esm2022/src/AccessHelper.mjs +15 -0
- package/esm2022/src/ClientManager.mjs +421 -0
- package/esm2022/src/CommandsProcessorBase.mjs +56 -0
- package/{esm2020 → esm2022}/src/CommandsProcessorManager.mjs +25 -25
- package/esm2022/src/CommandsTable.mjs +162 -0
- package/esm2022/src/ConstInterface.mjs +517 -0
- package/{esm2020 → esm2022}/src/CurrentClientVersion.mjs +2 -2
- package/esm2022/src/FlowMonitorInterface.mjs +16 -0
- package/esm2022/src/GUIManager.mjs +62 -0
- package/esm2022/src/GlobalCommandsManager.mjs +34 -0
- package/esm2022/src/GuiEventsProcessor.mjs +156 -0
- package/{esm2020 → esm2022}/src/ICommandsTable.mjs +1 -1
- package/esm2022/src/ServerConfig.mjs +122 -0
- package/{esm2020 → esm2022}/src/bridge/IGuiEvent.mjs +19 -19
- package/esm2022/src/bridge/MagicBridge.mjs +41 -0
- package/esm2022/src/commands/ClientOriginatedCommandTaskTag.mjs +12 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/AddUserLocateDataViewCommand.mjs +8 -8
- package/{esm2020 → esm2022}/src/commands/ClientToServer/AddUserRangeDataviewCommand.mjs +9 -9
- package/{esm2020 → esm2022}/src/commands/ClientToServer/AddUserSortDataViewCommand.mjs +9 -9
- package/esm2022/src/commands/ClientToServer/BrowserEscEventCommand.mjs +26 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/ClientOriginatedCommand.mjs +14 -14
- package/{esm2020 → esm2022}/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs +59 -59
- package/esm2022/src/commands/ClientToServer/ColumnSortEventCommand.mjs +29 -0
- package/esm2022/src/commands/ClientToServer/CommandFactory.mjs +261 -0
- package/esm2022/src/commands/ClientToServer/CommandSerializationHelper.mjs +67 -0
- package/esm2022/src/commands/ClientToServer/ComputeEventCommand.mjs +26 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/ContextTerminationEventCommand.mjs +24 -21
- package/{esm2020 → esm2022}/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs +23 -20
- package/{esm2020 → esm2022}/src/commands/ClientToServer/ControlItemsRefreshCommand.mjs +8 -8
- package/esm2022/src/commands/ClientToServer/DataViewOutputCommand.mjs +13 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/DataviewCommand.mjs +44 -44
- package/esm2022/src/commands/ClientToServer/EvaluateCommand.mjs +40 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/EventCommand.mjs +43 -40
- package/esm2022/src/commands/ClientToServer/ExecOperCommand.mjs +70 -0
- package/esm2022/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +25 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs +10 -10
- package/{esm2020 → esm2022}/src/commands/ClientToServer/ICommandTaskTag.mjs +1 -1
- package/esm2022/src/commands/ClientToServer/IndexChangeEventCommand.mjs +24 -0
- package/esm2022/src/commands/ClientToServer/IniputForceWriteCommand.mjs +26 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs +26 -23
- package/{esm2020 → esm2022}/src/commands/ClientToServer/QueryCommand.mjs +20 -20
- package/esm2022/src/commands/ClientToServer/RecomputeCommand.mjs +30 -0
- package/esm2022/src/commands/ClientToServer/RefreshEventCommand.mjs +30 -0
- package/esm2022/src/commands/ClientToServer/RefreshScreenEventCommand.mjs +27 -0
- package/esm2022/src/commands/ClientToServer/RollbackEventCommand.mjs +43 -0
- package/esm2022/src/commands/ClientToServer/SelectProgramCommand.mjs +19 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs +9 -9
- package/esm2022/src/commands/ClientToServer/SubformOpenEventCommand.mjs +24 -0
- package/esm2022/src/commands/ClientToServer/SubformRefreshEventCommand.mjs +27 -0
- package/esm2022/src/commands/ClientToServer/TransactionCommand.mjs +34 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/UnloadCommand.mjs +18 -15
- package/esm2022/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs +18 -0
- package/esm2022/src/commands/DataViewCommandBase.mjs +8 -0
- package/{esm2020 → esm2022}/src/commands/IClientCommand.mjs +1 -1
- package/esm2022/src/commands/IClientTargetedCommand.mjs +13 -0
- package/{esm2020 → esm2022}/src/commands/IClientToServerCommandInfo.mjs +2 -2
- package/esm2022/src/commands/ServerToClient/AbortCommand.mjs +65 -0
- package/{esm2020 → esm2022}/src/commands/ServerToClient/AddLocateCommand.mjs +21 -21
- package/{esm2020 → esm2022}/src/commands/ServerToClient/AddRangeCommand.mjs +62 -62
- package/{esm2020 → esm2022}/src/commands/ServerToClient/AddSortCommand.mjs +33 -33
- package/esm2022/src/commands/ServerToClient/ClientRefreshCommand.mjs +25 -0
- package/esm2022/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +24 -0
- package/esm2022/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +45 -0
- package/esm2022/src/commands/ServerToClient/OpenURLCommand.mjs +221 -0
- package/{esm2020 → esm2022}/src/commands/ServerToClient/ResetLocateCommand.mjs +14 -14
- package/{esm2020 → esm2022}/src/commands/ServerToClient/ResetRangeCommand.mjs +14 -14
- package/{esm2020 → esm2022}/src/commands/ServerToClient/ResetSortCommand.mjs +14 -14
- package/esm2022/src/commands/ServerToClient/ResultCommand.mjs +37 -0
- package/esm2022/src/commands/ServerToClient/VerifyCommand.mjs +83 -0
- package/{esm2020 → esm2022}/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs +132 -132
- package/{esm2020 → esm2022}/src/communications/IConnectionStateManager.mjs +1 -1
- package/esm2022/src/communications/InteractiveCommunicationsFailureHandler.mjs +15 -0
- package/{esm2020 → esm2022}/src/data/DataSourceIdKey.mjs +2 -2
- package/esm2022/src/data/DataView.mjs +1613 -0
- package/{esm2020 → esm2022}/src/data/DataViewBase.mjs +3 -3
- package/esm2022/src/data/DataviewManager.mjs +28 -0
- package/esm2022/src/data/DataviewManagerBase.mjs +15 -0
- package/esm2022/src/data/DvCache.mjs +67 -0
- package/esm2022/src/data/Field.mjs +646 -0
- package/esm2022/src/data/FieldBase.mjs +15 -0
- package/esm2022/src/data/FieldsTable.mjs +103 -0
- package/{esm2020 → esm2022}/src/data/IRecordsTable.mjs +1 -1
- package/{esm2020 → esm2022}/src/data/Key.mjs +88 -88
- package/esm2022/src/data/Record.mjs +880 -0
- package/{esm2020 → esm2022}/src/data/RecordOutOfDataViewException.mjs +15 -15
- package/esm2022/src/data/RecordsTable.mjs +267 -0
- package/{esm2020 → esm2022}/src/data/TaskTransactionManager.mjs +107 -103
- package/{esm2020 → esm2022}/src/data/XMLBasedDcValuesBuilder.mjs +74 -74
- package/{esm2020 → esm2022}/src/enums.mjs +23 -23
- package/esm2022/src/env/EnvVariablesTable.mjs +340 -0
- package/esm2022/src/env/Environment.mjs +487 -0
- package/{esm2020 → esm2022}/src/env/ILanguageData.mjs +1 -1
- package/esm2022/src/env/LanguageData.mjs +227 -0
- package/{esm2020 → esm2022}/src/env/MirrorString.mjs +65 -65
- package/esm2022/src/event/ActionManager.mjs +91 -0
- package/esm2022/src/event/Event.mjs +1333 -0
- package/esm2022/src/event/EventHandler.mjs +766 -0
- package/esm2022/src/event/EventHandlerPosition.mjs +204 -0
- package/esm2022/src/event/EventsManager.mjs +2988 -0
- package/{esm2020 → esm2022}/src/event/IEventsManager.mjs +6 -6
- package/esm2022/src/event/RunTimeEvent.mjs +399 -0
- package/{esm2020 → esm2022}/src/event/RunTimeEventBase.mjs +3 -3
- package/esm2022/src/event/UserEventsTable.mjs +47 -0
- package/esm2022/src/exp/ExpTable.mjs +57 -0
- package/esm2022/src/exp/Expression.mjs +200 -0
- package/esm2022/src/exp/ExpressionDict.mjs +727 -0
- package/esm2022/src/exp/ExpressionEvaluator.mjs +4206 -0
- package/esm2022/src/exp/ExpressionLocalJpn.mjs +314 -0
- package/{esm2020 → esm2022}/src/exp/GlobalParamsTable.mjs +85 -85
- package/esm2022/src/exp/YesNoExp.mjs +36 -0
- package/esm2022/src/gui/CreatedFormVector.mjs +23 -0
- package/esm2022/src/gui/FormsTable.mjs +66 -0
- package/esm2022/src/gui/MgControl.mjs +363 -0
- package/esm2022/src/gui/MgForm.mjs +1224 -0
- package/esm2022/src/http/HttpManager.mjs +97 -0
- package/esm2022/src/http/client/HttpClientAsync.mjs +68 -0
- package/{esm2020 → esm2022}/src/http/client/HttpClientBase.mjs +132 -132
- package/esm2022/src/http/client/HttpClientEvents.mjs +39 -0
- package/esm2022/src/http/client/HttpClientSync.mjs +42 -0
- package/esm2022/src/http/client/HttpUtility.mjs +84 -0
- package/{esm2020 → esm2022}/src/http/client/ICommunicationsFailureHandler.mjs +1 -1
- package/{esm2020 → esm2022}/src/remote/AddUserLocateRemoteDataViewCommand.mjs +18 -18
- package/{esm2020 → esm2022}/src/remote/AddUserRangeRemoteDataViewCommand.mjs +18 -18
- package/{esm2020 → esm2022}/src/remote/AddUserSortRemoteDataViewCommand.mjs +18 -18
- package/esm2022/src/remote/RemoteCommandsProcessor.mjs +883 -0
- package/{esm2020 → esm2022}/src/remote/RemoteControlItemsRefreshCommand.mjs +25 -25
- package/{esm2020 → esm2022}/src/remote/RemoteDataViewCommandBase.mjs +24 -24
- package/{esm2020 → esm2022}/src/remote/RemoteDataViewCommandFactory.mjs +60 -60
- package/{esm2020 → esm2022}/src/remote/RemoteDataViewCommandUpdateNonModifiable.mjs +15 -15
- package/{esm2020 → esm2022}/src/remote/RemoteDataviewManager.mjs +17 -17
- package/{esm2020 → esm2022}/src/remote/RemoteInitDataViewCommand.mjs +10 -10
- package/{esm2020 → esm2022}/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +16 -16
- package/{esm2020 → esm2022}/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +12 -12
- package/{esm2020 → esm2022}/src/remote/ResetUserSortRemoteDataviewCommand.mjs +15 -15
- package/esm2022/src/remote/ServerError.mjs +40 -0
- package/{esm2020 → esm2022}/src/remote/SetTransactionStateRemoteDataViewCommand.mjs +19 -19
- package/esm2022/src/rt/Argument.mjs +265 -0
- package/esm2022/src/rt/ArgumentsList.mjs +103 -0
- package/esm2022/src/rt/Boundary.mjs +152 -0
- package/esm2022/src/rt/CompMainPrgTable.mjs +63 -0
- package/esm2022/src/rt/DataviewHeaderBase.mjs +98 -0
- package/{esm2020 → esm2022}/src/rt/DataviewHeaderFactory.mjs +6 -6
- package/esm2022/src/rt/DataviewHeaders.mjs +53 -0
- package/{esm2020 → esm2022}/src/rt/DataviewHeadersSaxHandler.mjs +38 -38
- package/{esm2020 → esm2022}/src/rt/ExecutionStack.mjs +94 -94
- package/{esm2020 → esm2022}/src/rt/ExecutionStackEntry.mjs +17 -17
- package/{esm2020 → esm2022}/src/rt/HandlersTable.mjs +96 -96
- package/{esm2020 → esm2022}/src/rt/IDataSourceViewDefinition.mjs +1 -1
- package/{esm2020 → esm2022}/src/rt/IDataviewHeader.mjs +1 -1
- package/{esm2020 → esm2022}/src/rt/IResultValue.mjs +1 -1
- package/esm2022/src/rt/LastFocusedManager.mjs +65 -0
- package/esm2022/src/rt/Operation.mjs +735 -0
- package/esm2022/src/rt/OperationTable.mjs +67 -0
- package/esm2022/src/rt/Recompute.mjs +355 -0
- package/{esm2020 → esm2022}/src/rt/RecomputeTable.mjs +62 -62
- package/{esm2020 → esm2022}/src/rt/RemoteDataviewHeader.mjs +108 -108
- package/esm2022/src/rt/ResultValue.mjs +10 -0
- package/esm2022/src/rt/TableCache.mjs +177 -0
- package/esm2022/src/rt/TableCacheManager.mjs +67 -0
- package/esm2022/src/rt/Transaction.mjs +53 -0
- package/esm2022/src/security/UserDetails.mjs +71 -0
- package/{esm2020 → esm2022}/src/tasks/IMGDataCollection.mjs +1 -1
- package/esm2022/src/tasks/MGData.mjs +552 -0
- package/esm2022/src/tasks/MGDataCollection.mjs +252 -0
- package/esm2022/src/tasks/RCTimer.mjs +63 -0
- package/{esm2020 → esm2022}/src/tasks/RemoteTaskService.mjs +44 -44
- package/esm2022/src/tasks/Task.mjs +2499 -0
- package/esm2022/src/tasks/TaskBase.mjs +83 -0
- package/{esm2020 → esm2022}/src/tasks/TaskServiceBase.mjs +24 -24
- package/esm2022/src/tasks/TasksTable.mjs +80 -0
- package/esm2022/src/tasks/sort/Sort.mjs +5 -0
- package/{esm2020 → esm2022}/src/tasks/sort/SortCollection.mjs +67 -67
- package/{esm2020 → esm2022}/src/util/ConstUtils.mjs +13 -13
- package/esm2022/src/util/FlowMonitorQueue.mjs +451 -0
- package/{esm2020 → esm2022}/src/util/HeapSort.mjs +69 -69
- package/{esm2020 → esm2022}/src/util/IMirrorXML.mjs +1 -1
- package/{esm2020 → esm2022}/src/util/IServerConfig.mjs +1 -1
- package/{esm2020 → esm2022}/src/util/MgBlockingQueue.mjs +1 -1
- package/esm2022/src/util/MgPriorityBlockingQueue.mjs +74 -0
- package/esm2022/src/util/MgPriorityQueue.mjs +66 -0
- package/{esm2020 → esm2022}/src/util/ParamParseResult.mjs +7 -7
- package/esm2022/src/util/PrmMap.mjs +152 -0
- package/esm2022/src/util/ReturnResult.mjs +46 -0
- package/esm2022/src/util/ReturnResultBase.mjs +18 -0
- package/esm2022/src/util/Scrambler.mjs +89 -0
- package/esm2022/src/util/UniqueIDUtils.mjs +13 -0
- package/{esm2020 → esm2022}/src/util/cookie.service.mjs +92 -92
- package/{fesm2020 → fesm2022}/magic-xpa-engine.mjs +29888 -29690
- package/fesm2022/magic-xpa-engine.mjs.map +1 -0
- package/index.d.ts +187 -187
- package/package.json +8 -14
- package/src/AccessHelper.d.ts +20 -20
- package/src/ClientManager.d.ts +35 -32
- package/src/CommandsProcessorBase.d.ts +23 -23
- package/src/CommandsProcessorManager.d.ts +6 -6
- package/src/CommandsTable.d.ts +22 -22
- package/src/ConstInterface.d.ts +516 -515
- package/src/CurrentClientVersion.d.ts +1 -1
- package/src/FlowMonitorInterface.d.ts +15 -15
- package/src/GUIManager.d.ts +17 -17
- package/src/GlobalCommandsManager.d.ts +17 -17
- package/src/GuiEventsProcessor.d.ts +24 -24
- package/src/ICommandsTable.d.ts +9 -9
- package/src/ServerConfig.d.ts +35 -34
- package/src/bridge/IGuiEvent.d.ts +19 -19
- package/src/bridge/MagicBridge.d.ts +16 -16
- package/src/commands/ClientOriginatedCommandTaskTag.d.ts +8 -8
- package/src/commands/ClientToServer/AddUserLocateDataViewCommand.d.ts +4 -4
- package/src/commands/ClientToServer/AddUserRangeDataviewCommand.d.ts +6 -6
- package/src/commands/ClientToServer/AddUserSortDataViewCommand.d.ts +6 -6
- package/src/commands/ClientToServer/BrowserEscEventCommand.d.ts +9 -8
- package/src/commands/ClientToServer/ClientOriginatedCommand.d.ts +8 -8
- package/src/commands/ClientToServer/ClientOriginatedCommandSerializer.d.ts +6 -6
- package/src/commands/ClientToServer/ColumnSortEventCommand.d.ts +11 -10
- package/src/commands/ClientToServer/CommandFactory.d.ts +64 -64
- package/src/commands/ClientToServer/CommandSerializationHelper.d.ts +20 -20
- package/src/commands/ClientToServer/ComputeEventCommand.d.ts +9 -8
- package/src/commands/ClientToServer/ContextTerminationEventCommand.d.ts +8 -7
- package/src/commands/ClientToServer/ContextTimeoutResetCommand.d.ts +8 -7
- package/src/commands/ClientToServer/ControlItemsRefreshCommand.d.ts +6 -6
- package/src/commands/ClientToServer/DataViewOutputCommand.d.ts +9 -9
- package/src/commands/ClientToServer/DataviewCommand.d.ts +32 -32
- package/src/commands/ClientToServer/EvaluateCommand.d.ts +16 -15
- package/src/commands/ClientToServer/EventCommand.d.ts +16 -15
- package/src/commands/ClientToServer/ExecOperCommand.d.ts +24 -23
- package/src/commands/ClientToServer/FetchDataControlValuesEventCommand.d.ts +9 -8
- package/src/commands/ClientToServer/GlobalParamsQueryCommand.d.ts +5 -5
- package/src/commands/ClientToServer/ICommandTaskTag.d.ts +3 -3
- package/src/commands/ClientToServer/IndexChangeEventCommand.d.ts +9 -8
- package/src/commands/ClientToServer/IniputForceWriteCommand.d.ts +11 -10
- package/src/commands/ClientToServer/NonReversibleExitEventCommand.d.ts +9 -8
- package/src/commands/ClientToServer/QueryCommand.d.ts +8 -8
- package/src/commands/ClientToServer/RecomputeCommand.d.ts +12 -11
- package/src/commands/ClientToServer/RefreshEventCommand.d.ts +13 -12
- package/src/commands/ClientToServer/RefreshScreenEventCommand.d.ts +11 -10
- package/src/commands/ClientToServer/RollbackEventCommand.d.ts +15 -14
- package/src/commands/ClientToServer/SelectProgramCommand.d.ts +7 -6
- package/src/commands/ClientToServer/SetTransactionStateDataviewCommand.d.ts +5 -5
- package/src/commands/ClientToServer/SubformOpenEventCommand.d.ts +9 -8
- package/src/commands/ClientToServer/SubformRefreshEventCommand.d.ts +10 -9
- package/src/commands/ClientToServer/TransactionCommand.d.ts +14 -12
- package/src/commands/ClientToServer/UnloadCommand.d.ts +8 -7
- package/src/commands/ClientToServer/WriteMessageToServerLogCommand.d.ts +6 -6
- package/src/commands/DataViewCommandBase.d.ts +6 -6
- package/src/commands/IClientCommand.d.ts +2 -2
- package/src/commands/IClientTargetedCommand.d.ts +12 -12
- package/src/commands/IClientToServerCommandInfo.d.ts +4 -3
- package/src/commands/ServerToClient/AbortCommand.d.ts +11 -11
- package/src/commands/ServerToClient/AddLocateCommand.d.ts +6 -6
- package/src/commands/ServerToClient/AddRangeCommand.d.ts +10 -10
- package/src/commands/ServerToClient/AddSortCommand.d.ts +9 -9
- package/src/commands/ServerToClient/ClientRefreshCommand.d.ts +7 -7
- package/src/commands/ServerToClient/ClientTargetedCommandBase.d.ts +12 -12
- package/src/commands/ServerToClient/EnhancedVerifyCommand.d.ts +13 -13
- package/src/commands/ServerToClient/OpenURLCommand.d.ts +21 -21
- package/src/commands/ServerToClient/ResetLocateCommand.d.ts +6 -6
- package/src/commands/ServerToClient/ResetRangeCommand.d.ts +6 -6
- package/src/commands/ServerToClient/ResetSortCommand.d.ts +6 -6
- package/src/commands/ServerToClient/ResultCommand.d.ts +10 -10
- package/src/commands/ServerToClient/VerifyCommand.d.ts +17 -17
- package/src/commands/ServerToClient/XMLBasedCommandBuilder.d.ts +11 -11
- package/src/communications/IConnectionStateManager.d.ts +4 -4
- package/src/communications/InteractiveCommunicationsFailureHandler.d.ts +6 -6
- package/src/data/DataSourceIdKey.d.ts +2 -2
- package/src/data/DataView.d.ts +162 -162
- package/src/data/DataViewBase.d.ts +12 -12
- package/src/data/DataviewManager.d.ts +14 -14
- package/src/data/DataviewManagerBase.d.ts +11 -11
- package/src/data/DvCache.d.ts +15 -15
- package/src/data/Field.d.ts +103 -103
- package/src/data/FieldBase.d.ts +23 -23
- package/src/data/FieldsTable.d.ts +27 -27
- package/src/data/IRecordsTable.d.ts +7 -7
- package/src/data/Key.d.ts +15 -15
- package/src/data/Record.d.ts +157 -156
- package/src/data/RecordOutOfDataViewException.d.ts +10 -10
- package/src/data/RecordsTable.d.ts +38 -38
- package/src/data/TaskTransactionManager.d.ts +17 -17
- package/src/data/XMLBasedDcValuesBuilder.d.ts +11 -11
- package/src/enums.d.ts +21 -21
- package/src/env/EnvVariablesTable.d.ts +17 -17
- package/src/env/Environment.d.ts +118 -118
- package/src/env/ILanguageData.d.ts +3 -3
- package/src/env/LanguageData.d.ts +20 -20
- package/src/env/MirrorString.d.ts +15 -15
- package/src/event/ActionManager.d.ts +14 -14
- package/src/event/Event.d.ts +79 -79
- package/src/event/EventHandler.d.ts +66 -66
- package/src/event/EventHandlerPosition.d.ts +25 -25
- package/src/event/EventsManager.d.ts +205 -204
- package/src/event/IEventsManager.d.ts +77 -77
- package/src/event/RunTimeEvent.d.ts +126 -123
- package/src/event/RunTimeEventBase.d.ts +5 -5
- package/src/event/UserEventsTable.d.ts +11 -11
- package/src/exp/ExpTable.d.ts +11 -11
- package/src/exp/Expression.d.ts +37 -37
- package/src/exp/ExpressionDict.d.ts +12 -12
- package/src/exp/ExpressionEvaluator.d.ts +198 -198
- package/src/exp/ExpressionLocalJpn.d.ts +18 -18
- package/src/exp/GlobalParamsTable.d.ts +19 -19
- package/src/exp/YesNoExp.d.ts +9 -9
- package/src/gui/CreatedFormVector.d.ts +10 -10
- package/src/gui/FormsTable.d.ts +15 -15
- package/src/gui/MgControl.d.ts +60 -60
- package/src/gui/MgForm.d.ts +96 -93
- package/src/http/HttpManager.d.ts +25 -25
- package/src/http/client/HttpClientAsync.d.ts +16 -16
- package/src/http/client/HttpClientBase.d.ts +30 -30
- package/src/http/client/HttpClientEvents.d.ts +18 -18
- package/src/http/client/HttpClientSync.d.ts +17 -17
- package/src/http/client/HttpUtility.d.ts +10 -10
- package/src/http/client/ICommunicationsFailureHandler.d.ts +5 -5
- package/src/remote/AddUserLocateRemoteDataViewCommand.d.ts +8 -8
- package/src/remote/AddUserRangeRemoteDataViewCommand.d.ts +8 -8
- package/src/remote/AddUserSortRemoteDataViewCommand.d.ts +8 -8
- package/src/remote/RemoteCommandsProcessor.d.ts +51 -51
- package/src/remote/RemoteControlItemsRefreshCommand.d.ts +8 -8
- package/src/remote/RemoteDataViewCommandBase.d.ts +10 -10
- package/src/remote/RemoteDataViewCommandFactory.d.ts +6 -6
- package/src/remote/RemoteDataViewCommandUpdateNonModifiable.d.ts +8 -8
- package/src/remote/RemoteDataviewManager.d.ts +9 -9
- package/src/remote/RemoteInitDataViewCommand.d.ts +7 -7
- package/src/remote/ResetUserLocateRemoteDataviewCommand.d.ts +7 -7
- package/src/remote/ResetUserRangeRemoteDataviewCommand.d.ts +7 -7
- package/src/remote/ResetUserSortRemoteDataviewCommand.d.ts +7 -7
- package/src/remote/ServerError.d.ts +16 -16
- package/src/remote/SetTransactionStateRemoteDataViewCommand.d.ts +8 -8
- package/src/rt/Argument.d.ts +36 -36
- package/src/rt/ArgumentsList.d.ts +24 -24
- package/src/rt/Boundary.d.ts +27 -27
- package/src/rt/CompMainPrgTable.d.ts +10 -10
- package/src/rt/DataviewHeaderBase.d.ts +34 -34
- package/src/rt/DataviewHeaderFactory.d.ts +5 -5
- package/src/rt/DataviewHeaders.d.ts +12 -12
- package/src/rt/DataviewHeadersSaxHandler.d.ts +10 -10
- package/src/rt/ExecutionStack.d.ts +22 -22
- package/src/rt/ExecutionStackEntry.d.ts +7 -7
- package/src/rt/HandlersTable.d.ts +19 -19
- package/src/rt/IDataSourceViewDefinition.d.ts +6 -6
- package/src/rt/IDataviewHeader.d.ts +10 -10
- package/src/rt/IResultValue.d.ts +4 -4
- package/src/rt/LastFocusedManager.d.ts +23 -23
- package/src/rt/Operation.d.ts +97 -97
- package/src/rt/OperationTable.d.ts +15 -15
- package/src/rt/Recompute.d.ts +41 -41
- package/src/rt/RecomputeTable.d.ts +9 -9
- package/src/rt/RemoteDataviewHeader.d.ts +14 -14
- package/src/rt/ResultValue.d.ts +7 -7
- package/src/rt/TableCache.d.ts +29 -29
- package/src/rt/TableCacheManager.d.ts +10 -10
- package/src/rt/Transaction.d.ts +23 -23
- package/src/security/UserDetails.d.ts +16 -16
- package/src/tasks/IMGDataCollection.d.ts +26 -26
- package/src/tasks/MGData.d.ts +63 -63
- package/src/tasks/MGDataCollection.d.ts +42 -42
- package/src/tasks/RCTimer.d.ts +13 -13
- package/src/tasks/RemoteTaskService.d.ts +16 -16
- package/src/tasks/Task.d.ts +312 -312
- package/src/tasks/TaskBase.d.ts +123 -123
- package/src/tasks/TaskServiceBase.d.ts +16 -16
- package/src/tasks/TasksTable.d.ts +21 -21
- package/src/tasks/sort/Sort.d.ts +4 -4
- package/src/tasks/sort/SortCollection.d.ts +11 -11
- package/src/util/ConstUtils.d.ts +3 -3
- package/src/util/FlowMonitorQueue.d.ts +70 -70
- package/src/util/HeapSort.d.ts +6 -6
- package/src/util/IMirrorXML.d.ts +6 -6
- package/src/util/IServerConfig.d.ts +11 -11
- package/src/util/MgBlockingQueue.d.ts +5 -5
- package/src/util/MgPriorityBlockingQueue.d.ts +17 -17
- package/src/util/MgPriorityQueue.d.ts +13 -13
- package/src/util/ParamParseResult.d.ts +6 -6
- package/src/util/PrmMap.d.ts +28 -28
- package/src/util/ReturnResult.d.ts +18 -18
- package/src/util/ReturnResultBase.d.ts +11 -11
- package/src/util/Scrambler.d.ts +10 -10
- package/src/util/UniqueIDUtils.d.ts +4 -4
- package/src/util/cookie.service.d.ts +8 -8
- package/esm2020/src/AccessHelper.mjs +0 -9
- package/esm2020/src/ClientManager.mjs +0 -399
- package/esm2020/src/CommandsProcessorBase.mjs +0 -58
- package/esm2020/src/CommandsTable.mjs +0 -162
- package/esm2020/src/ConstInterface.mjs +0 -516
- package/esm2020/src/FlowMonitorInterface.mjs +0 -16
- package/esm2020/src/GUIManager.mjs +0 -62
- package/esm2020/src/GlobalCommandsManager.mjs +0 -34
- package/esm2020/src/GuiEventsProcessor.mjs +0 -154
- package/esm2020/src/ServerConfig.mjs +0 -117
- package/esm2020/src/bridge/MagicBridge.mjs +0 -41
- package/esm2020/src/commands/ClientOriginatedCommandTaskTag.mjs +0 -11
- package/esm2020/src/commands/ClientToServer/BrowserEscEventCommand.mjs +0 -23
- package/esm2020/src/commands/ClientToServer/ColumnSortEventCommand.mjs +0 -26
- package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +0 -260
- package/esm2020/src/commands/ClientToServer/CommandSerializationHelper.mjs +0 -69
- package/esm2020/src/commands/ClientToServer/ComputeEventCommand.mjs +0 -23
- package/esm2020/src/commands/ClientToServer/DataViewOutputCommand.mjs +0 -13
- package/esm2020/src/commands/ClientToServer/EvaluateCommand.mjs +0 -36
- package/esm2020/src/commands/ClientToServer/ExecOperCommand.mjs +0 -67
- package/esm2020/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +0 -22
- package/esm2020/src/commands/ClientToServer/IndexChangeEventCommand.mjs +0 -21
- package/esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs +0 -23
- package/esm2020/src/commands/ClientToServer/RecomputeCommand.mjs +0 -27
- package/esm2020/src/commands/ClientToServer/RefreshEventCommand.mjs +0 -27
- package/esm2020/src/commands/ClientToServer/RefreshScreenEventCommand.mjs +0 -24
- package/esm2020/src/commands/ClientToServer/RollbackEventCommand.mjs +0 -39
- package/esm2020/src/commands/ClientToServer/SelectProgramCommand.mjs +0 -15
- package/esm2020/src/commands/ClientToServer/SubformOpenEventCommand.mjs +0 -21
- package/esm2020/src/commands/ClientToServer/SubformRefreshEventCommand.mjs +0 -24
- package/esm2020/src/commands/ClientToServer/TransactionCommand.mjs +0 -28
- package/esm2020/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs +0 -18
- package/esm2020/src/commands/DataViewCommandBase.mjs +0 -10
- package/esm2020/src/commands/IClientTargetedCommand.mjs +0 -9
- package/esm2020/src/commands/ServerToClient/AbortCommand.mjs +0 -65
- package/esm2020/src/commands/ServerToClient/ClientRefreshCommand.mjs +0 -25
- package/esm2020/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +0 -27
- package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +0 -45
- package/esm2020/src/commands/ServerToClient/OpenURLCommand.mjs +0 -221
- package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +0 -37
- package/esm2020/src/commands/ServerToClient/VerifyCommand.mjs +0 -83
- package/esm2020/src/communications/InteractiveCommunicationsFailureHandler.mjs +0 -17
- package/esm2020/src/data/DataView.mjs +0 -1610
- package/esm2020/src/data/DataviewManager.mjs +0 -28
- package/esm2020/src/data/DataviewManagerBase.mjs +0 -15
- package/esm2020/src/data/DvCache.mjs +0 -67
- package/esm2020/src/data/Field.mjs +0 -646
- package/esm2020/src/data/FieldBase.mjs +0 -18
- package/esm2020/src/data/FieldsTable.mjs +0 -103
- package/esm2020/src/data/Record.mjs +0 -846
- package/esm2020/src/data/RecordsTable.mjs +0 -267
- package/esm2020/src/env/EnvVariablesTable.mjs +0 -340
- package/esm2020/src/env/Environment.mjs +0 -489
- package/esm2020/src/env/LanguageData.mjs +0 -226
- package/esm2020/src/event/ActionManager.mjs +0 -91
- package/esm2020/src/event/Event.mjs +0 -1333
- package/esm2020/src/event/EventHandler.mjs +0 -766
- package/esm2020/src/event/EventHandlerPosition.mjs +0 -204
- package/esm2020/src/event/EventsManager.mjs +0 -2975
- package/esm2020/src/event/RunTimeEvent.mjs +0 -392
- package/esm2020/src/event/UserEventsTable.mjs +0 -47
- package/esm2020/src/exp/ExpTable.mjs +0 -59
- package/esm2020/src/exp/Expression.mjs +0 -200
- package/esm2020/src/exp/ExpressionDict.mjs +0 -727
- package/esm2020/src/exp/ExpressionEvaluator.mjs +0 -4208
- package/esm2020/src/exp/ExpressionLocalJpn.mjs +0 -314
- package/esm2020/src/exp/YesNoExp.mjs +0 -36
- package/esm2020/src/gui/CreatedFormVector.mjs +0 -23
- package/esm2020/src/gui/FormsTable.mjs +0 -66
- package/esm2020/src/gui/MgControl.mjs +0 -353
- package/esm2020/src/gui/MgForm.mjs +0 -1181
- package/esm2020/src/http/HttpManager.mjs +0 -97
- package/esm2020/src/http/client/HttpClientAsync.mjs +0 -67
- package/esm2020/src/http/client/HttpClientEvents.mjs +0 -39
- package/esm2020/src/http/client/HttpClientSync.mjs +0 -42
- package/esm2020/src/http/client/HttpUtility.mjs +0 -84
- package/esm2020/src/remote/RemoteCommandsProcessor.mjs +0 -880
- package/esm2020/src/remote/ServerError.mjs +0 -40
- package/esm2020/src/rt/Argument.mjs +0 -265
- package/esm2020/src/rt/ArgumentsList.mjs +0 -103
- package/esm2020/src/rt/Boundary.mjs +0 -152
- package/esm2020/src/rt/CompMainPrgTable.mjs +0 -65
- package/esm2020/src/rt/DataviewHeaderBase.mjs +0 -96
- package/esm2020/src/rt/DataviewHeaders.mjs +0 -53
- package/esm2020/src/rt/LastFocusedManager.mjs +0 -67
- package/esm2020/src/rt/Operation.mjs +0 -735
- package/esm2020/src/rt/OperationTable.mjs +0 -67
- package/esm2020/src/rt/Recompute.mjs +0 -355
- package/esm2020/src/rt/ResultValue.mjs +0 -12
- package/esm2020/src/rt/TableCache.mjs +0 -177
- package/esm2020/src/rt/TableCacheManager.mjs +0 -67
- package/esm2020/src/rt/Transaction.mjs +0 -53
- package/esm2020/src/security/UserDetails.mjs +0 -71
- package/esm2020/src/tasks/MGData.mjs +0 -552
- package/esm2020/src/tasks/MGDataCollection.mjs +0 -252
- package/esm2020/src/tasks/RCTimer.mjs +0 -63
- package/esm2020/src/tasks/Task.mjs +0 -2496
- package/esm2020/src/tasks/TaskBase.mjs +0 -87
- package/esm2020/src/tasks/TasksTable.mjs +0 -80
- package/esm2020/src/tasks/sort/Sort.mjs +0 -7
- package/esm2020/src/util/FlowMonitorQueue.mjs +0 -453
- package/esm2020/src/util/MgPriorityBlockingQueue.mjs +0 -74
- package/esm2020/src/util/MgPriorityQueue.mjs +0 -66
- package/esm2020/src/util/PrmMap.mjs +0 -151
- package/esm2020/src/util/ReturnResult.mjs +0 -46
- package/esm2020/src/util/ReturnResultBase.mjs +0 -18
- package/esm2020/src/util/Scrambler.mjs +0 -89
- package/esm2020/src/util/UniqueIDUtils.mjs +0 -12
- package/fesm2015/magic-xpa-engine.mjs +0 -30837
- package/fesm2015/magic-xpa-engine.mjs.map +0 -1
- package/fesm2020/magic-xpa-engine.mjs.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
|
+
_keys = null;
|
12
|
+
_records = null;
|
13
|
+
_currSortDir = '\0';
|
14
|
+
_currSortKey = 0;
|
15
|
+
FldsTab = null;
|
16
|
+
_isLoaded = false;
|
17
|
+
_tableIdent = null;
|
18
|
+
_tableUId = null;
|
19
|
+
constructor(tableId) {
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVDYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcnQvVGFibGVDYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDaEMsT0FBTyxFQUFDLGNBQWMsSUFBSSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUt4RCxNQUFNLE9BQU8sVUFBVTtJQUNiLEtBQUssR0FBYyxJQUFJLENBQUM7SUFDeEIsUUFBUSxHQUFpQixJQUFJLENBQUM7SUFDOUIsWUFBWSxHQUFXLElBQUksQ0FBQztJQUM1QixZQUFZLEdBQVcsQ0FBQyxDQUFDO0lBRWpDLE9BQU8sR0FBZ0IsSUFBSSxDQUFDO0lBRXBCLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDM0IsV0FBVyxHQUFXLElBQUksQ0FBQztJQUMzQixTQUFTLEdBQVcsSUFBSSxDQUFDO0lBTWpDLFlBQVksT0FBZTtRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLElBQUksRUFBVSxDQUFDO1FBQ25DLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFLRCxhQUFhLENBQUMsS0FBYTtRQUN6QixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSTtZQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQzthQUN0QixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssS0FBSyxFQUFFO1lBQ25DLE1BQU0sQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsZ0ZBQWdGLENBQUMsQ0FBQztTQUM5SDtJQUNILENBQUM7SUFLRCxRQUFRO1FBQ04sSUFBSSxNQUFNLEdBQWMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUMzRCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRTtTQUMxRDtJQUNILENBQUM7SUFLTyxjQUFjLENBQUMsTUFBaUI7UUFDdEMsSUFBSSxVQUFVLEdBQVcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBRXBHLElBQUksVUFBVSxLQUFLLENBQUMsQ0FBQyxJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFO1lBRWhFLElBQUksR0FBRyxHQUFXLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDckQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVsSCxJQUFJLFlBQVksR0FBaUIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUd0SCxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN2RCxJQUFJLFNBQVMsR0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxRQUFRLEdBQVcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUV0RCxRQUFRLFNBQVMsRUFBRTtvQkFDakIsS0FBSyxZQUFZLENBQUMsVUFBVTt3QkFJMUIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTs0QkFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7NEJBQzFCLE1BQU0sQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsK0RBQStELENBQUMsQ0FBQzt5QkFDN0c7d0JBQ0QsTUFBTTtvQkFFUixLQUFLLFlBQVksQ0FBQyxZQUFZO3dCQUM1QixNQUFNO29CQUVSLEtBQUssY0FBYyxDQUFDLGFBQWE7d0JBQy9CLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxRQUFRLEVBQUU7NEJBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDOzRCQUM1QixNQUFNLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDLG1FQUFtRSxDQUFDLENBQUM7eUJBQ2pIO3dCQUNELE1BQU07b0JBQ1I7d0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLCtCQUErQixFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7d0JBQ3ZHLE1BQU07aUJBQ1Q7YUFDRjtZQUNELE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNsQyxPQUFPO1NBQ1I7UUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDLHFEQUFxRCxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUtPLGdCQUFnQixDQUFDLE1BQWlCLEVBQUUsWUFBb0I7UUFDOUQsSUFBSSxZQUFZLElBQUksSUFBSTtZQUN0QixPQUFPLEtBQUssQ0FBQztRQUVmLFFBQVEsWUFBWSxFQUFFO1lBQ3BCLEtBQUssWUFBWSxDQUFDLFdBQVc7Z0JBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlCLE1BQU07WUFFUixLQUFLLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDL0IsSUFBSSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVCLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN6QixNQUFNO2FBQ1A7WUFFRCxLQUFLLGNBQWMsQ0FBQyxjQUFjO2dCQUNoQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFFcEcsTUFBTTtZQUNSLEtBQUssY0FBYyxDQUFDLGtCQUFrQjtnQkFDcEMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBQy9CLE1BQU07WUFDUixLQUFLLGNBQWMsQ0FBQyx1QkFBdUI7Z0JBQ3pDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2dCQUMvQixPQUFPLEtBQUssQ0FBQztZQUNmLEtBQUssY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM5QixJQUFJLE9BQU8sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNyQixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDNUIsTUFBTTthQUNQO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFLRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUtELHdCQUF3QjtRQUN0QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUtELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUtELFVBQVUsQ0FBQyxLQUFhO1FBQ3RCLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4RCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUs7Z0JBQzdDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFLTyxLQUFLLENBQUMsSUFBSTtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixNQUFNLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQU9ELEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBaUIsRUFBRSxPQUFlO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUNqQixNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUdwQixJQUFJLFNBQVMsS0FBSyxJQUFJLENBQUMsWUFBWSxJQUFJLE9BQU8sS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDO1lBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1lBRTlCLElBQUksVUFBVSxHQUFhLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkQsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUUxQixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssR0FBRztnQkFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUVqQyxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzNELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxQztTQUNGO0lBQ0gsQ0FBQztJQU1ELEtBQUssQ0FBQyxHQUFtQjtRQUl2QixJQUFJLFFBQVEsR0FBWSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUV2QyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFFbEIsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFFYixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzFFO1lBR0QsS0FBSyxJQUFJLENBQUMsR0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMzRCxJQUFJLE9BQU8sR0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFHaEQsSUFBSSxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRTtvQkFDeEMsT0FBTyxPQUFPLENBQUM7aUJBQ2hCO2FBQ0Y7U0FDRjtRQUdELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUtPLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBZSxFQUFFLFNBQXlCO1FBQ25FLElBQUksTUFBTSxHQUFZLElBQUksQ0FBQztRQUczQixLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2RCxJQUFJLE9BQU8sR0FBYSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTlDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsRUFBRTtnQkFDMUgsTUFBTSxHQUFHLEtBQUssQ0FBQztnQkFDZixNQUFNO2FBQ1A7U0FDRjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFNUyxhQUFhLENBQUMsS0FBZTtRQUNyQyxJQUFJLEtBQUssR0FBVyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNyQyxLQUFLLElBQUksSUFBSSxHQUFXLENBQUMsRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUcsS0FBSyxFQUFFLEVBQUU7WUFDdEYsSUFBSSxHQUFHLEdBQVcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUNwQjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TGlzdCwgTlN0cmluZ30gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7S2V5fSBmcm9tIFwiLi4vZGF0YS9LZXlcIjtcclxuaW1wb3J0IHtGaWVsZHNUYWJsZUV4dCBhcyBGaWVsZHNUYWJsZSB9IGZyb20gXCIuLi9kYXRhL0ZpZWxkc1RhYmxlXCI7XHJcbmltcG9ydCB7TG9nZ2VyLCBYTUxDb25zdGFudHMsIFhtbFBhcnNlcn0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtSdW50aW1lQ29udGV4dEJhc2V9IGZyb20gXCJAbWFnaWMteHBhL2d1aVwiO1xyXG5pbXBvcnQge1JlY29yZH0gZnJvbSBcIi4uL2RhdGEvUmVjb3JkXCI7XHJcbmltcG9ydCB7SGVhcFNvcnR9IGZyb20gXCIuLi91dGlsL0hlYXBTb3J0XCI7XHJcbmltcG9ydCB7Qm91bmRhcnl9IGZyb20gXCIuL0JvdW5kYXJ5XCI7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gXCIuLi9Db25zdEludGVyZmFjZVwiO1xyXG5pbXBvcnQgeyBUYWJsZUNhY2hlTWFuYWdlciB9IGZyb20gXCIuL1RhYmxlQ2FjaGVNYW5hZ2VyXCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyAgIHJlc2lkZW50IHRhYmxlIG9uIGNsaWVudFxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgVGFibGVDYWNoZSB7XHJcbiAgcHJpdmF0ZSBfa2V5czogTGlzdDxLZXk+ID0gbnVsbDtcclxuICBwcml2YXRlIF9yZWNvcmRzOiBMaXN0PFJlY29yZD4gPSBudWxsO1xyXG4gIHByaXZhdGUgX2N1cnJTb3J0RGlyOiBzdHJpbmcgPSAnXFwwJztcclxuICBwcml2YXRlIF9jdXJyU29ydEtleTogbnVtYmVyID0gMDtcclxuXHJcbiAgRmxkc1RhYjogRmllbGRzVGFibGUgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIF9pc0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3RhYmxlSWRlbnQ6IHN0cmluZyA9IG51bGw7IC8vIGEgdGFibGUgaWRlbnRpZmllciB0aGlzIGlkIGlmIHNoYXJlIGJldHdlZW4gYWxsIGluc3RhbmNlcyBvZiBhIHJlc2lkZW50IHRhYmxlIHVzZWQgdG8gZGVsZXRlIG9sZCBpbnN0bmNlcyBvZiBhIHJlbG9hZGVkIHRhYmxlO1xyXG4gIHByaXZhdGUgX3RhYmxlVUlkOiBzdHJpbmcgPSBudWxsOyAvLyB0aGUgdGFibGUgdW5pcXVlIGlkIHVzZWQgdG8gbG9hZCB0aGUgdGFibGUgLSBpdCBpcyBhbHNvIHRoZSBpZCBvZiB0aGUgZGF0YS1pc2xhbmQgY29udGFpbmluZyB0aGUgdGFibGUgeG1sXHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgY29uc3RydWN0cyBhbiBlbXB0eSB0YWJsZSBjYWNoZSB3aXRob3V0IGxvYWRpbmcgdGhlIHRhYmxlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBjb25zdHJ1Y3Rvcih0YWJsZUlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3RhYmxlVUlkID0gdGFibGVJZDtcclxuICAgIHRoaXMuX2tleXMgPSBuZXcgTGlzdDxLZXk+KCk7XHJcbiAgICB0aGlzLl9yZWNvcmRzID0gbmV3IExpc3Q8UmVjb3JkPigpO1xyXG4gICAgdGhpcy5faXNMb2FkZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzZXQgdGhlIHRhYmxlIHNoYXJlZCBpZGVudGlmaWVyIHdpbGwgYmUgY2FsbGVkIGRpcmVjdGx5IGJlZm9yZSB0aGUgY29uc3RydWN0b3IgYW5kIGJlZm9yZSBwYXJzaW5nXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBTZXRUYWJsZUlkZW50KGlkZW50OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl90YWJsZUlkZW50ID09PSBudWxsKVxyXG4gICAgICB0aGlzLl90YWJsZUlkZW50ID0gaWRlbnQ7XHJcbiAgICBlbHNlIGlmICh0aGlzLl90YWJsZUlkZW50ICE9PSBpZGVudCkge1xyXG4gICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZ1dpdGhNc2coXCJpbiBUYWJsZUNhY2hlLnNldFRhYmxlSWRlbnQoKSBhbHJlYWR5IHNldCBhbmQgdGFibGUgaWRlbnRpZmllciAgZG9lcyBub3QgbWF0Y2hcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcGFyc2VzIHRoZSB4bWwgZGF0YSBvZiB0aGUgdGFibGUgY2FjaGUgYXMgcGFydCBvZiB0aGUgbG9hZCBwcm9jZXNzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBGaWxsRGF0YSgpOiB2b2lkIHtcclxuICAgIGxldCBwYXJzZXI6IFhtbFBhcnNlciA9IFJ1bnRpbWVDb250ZXh0QmFzZS5JbnN0YW5jZS5QYXJzZXI7XHJcbiAgICB0aGlzLkZpbGxBdHRyaWJ1dGVzKHBhcnNlcik7XHJcbiAgICB3aGlsZSAodGhpcy5Jbml0SW5uZXJPYmplY3RzKHBhcnNlciwgcGFyc2VyLmdldE5leHRUYWcoKSkpIHtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBwYXJzZXMgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGNhY2hlZFRhYmxlIHRhZ1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBGaWxsQXR0cmlidXRlcyhwYXJzZXI6IFhtbFBhcnNlcik6IHZvaWQge1xyXG4gICAgbGV0IGVuZENvbnRleHQ6IG51bWJlciA9IHBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihYTUxDb25zdGFudHMuVEFHX0NMT1NFLCBwYXJzZXIuZ2V0Q3VyckluZGV4KCkpO1xyXG5cclxuICAgIGlmIChlbmRDb250ZXh0ICE9PSAtMSAmJiBlbmRDb250ZXh0IDwgcGFyc2VyLmdldFhNTGRhdGEoKS5sZW5ndGgpIHtcclxuICAgICAgLy8gbGFzdCBwb3NpdGlvbiBvZiBpdHMgdGFnXHJcbiAgICAgIGxldCB0YWc6IHN0cmluZyA9IHBhcnNlci5nZXRYTUxzdWJzdHJpbmcoZW5kQ29udGV4dCk7XHJcbiAgICAgIHBhcnNlci5hZGQyQ3VyckluZGV4KHRhZy5pbmRleE9mKENvbnN0SW50ZXJmYWNlLk1HX1RBR19DQUNIRURfVEFCTEUpICsgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX0NBQ0hFRF9UQUJMRS5sZW5ndGgpO1xyXG5cclxuICAgICAgbGV0IHRva2Vuc1ZlY3RvcjogTGlzdDxzdHJpbmc+ID0gWG1sUGFyc2VyLmdldFRva2VucyhwYXJzZXIuZ2V0WE1Mc3Vic3RyaW5nKGVuZENvbnRleHQpLCBYTUxDb25zdGFudHMuWE1MX0FUVFJfREVMSU0pO1xyXG5cclxuICAgICAgLy8gcGFyc2UgdGhlIGNhY2hlZFRhYmxlIGF0dHJpYnV0ZXNcclxuICAgICAgZm9yIChsZXQgajogbnVtYmVyID0gMDsgaiA8IHRva2Vuc1ZlY3Rvci5sZW5ndGg7IGogKz0gMikge1xyXG4gICAgICAgIGxldCBhdHRyaWJ1dGU6IHN0cmluZyA9ICh0b2tlbnNWZWN0b3IuZ2V0X0l0ZW0oaikpO1xyXG4gICAgICAgIGxldCB2YWx1ZVN0cjogc3RyaW5nID0gKHRva2Vuc1ZlY3Rvci5nZXRfSXRlbShqICsgMSkpO1xyXG5cclxuICAgICAgICBzd2l0Y2ggKGF0dHJpYnV0ZSkge1xyXG4gICAgICAgICAgY2FzZSBYTUxDb25zdGFudHMuTUdfQVRUUl9JRDpcclxuXHJcbiAgICAgICAgICAgIC8vIHRoZSBpZCBvZiB0aGUgdGFibGUgaXMgcmVjaXZlZCBhdCB0aGUgY29uc3RydWN0b3IgYW5kIGRvZXMgbm90IG5lZWQgdG8gYmUgcGFyc2VkXHJcbiAgICAgICAgICAgIC8vIGhvd2V2ZXIgaXNzdWUgYSB3YXJubmluZyBpZiB0aGUgcGFyc2VkIHZhbHVlIGlzIGRpZmZlcmVudCB0aGFuIHRoZSBjdXJyZW50IHZhbHVlXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl90YWJsZVVJZC5pbmRleE9mKHZhbHVlU3RyKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgICB0aGlzLl90YWJsZVVJZCA9IHZhbHVlU3RyO1xyXG4gICAgICAgICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhcImluIFRhYmxlQ2FjaGUuZmlsbEF0dHJpYnV0ZXMoKSB0YWJsZSB1bmlxdWUgaWQgZG9lcyBub3QgbWF0Y2hcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgY2FzZSBYTUxDb25zdGFudHMuTUdfQVRUUl9OQU1FOlxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfSURFTlQ6XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl90YWJsZUlkZW50ICE9PSB2YWx1ZVN0cikge1xyXG4gICAgICAgICAgICAgIHRoaXMuX3RhYmxlSWRlbnQgPSB2YWx1ZVN0cjtcclxuICAgICAgICAgICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZ1dpdGhNc2coXCJpbiBUYWJsZUNhY2hlLmZpbGxBdHRyaWJ1dGVzKCkgdGFibGUgaWRlbnRpZmllciBpZCBkb2VzIG5vdCBtYXRjaFwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhOU3RyaW5nLkZvcm1hdChcIlVucmVjb2duaXplZCBhdHRyaWJ1dGU6ICd7MH0nXCIsIGF0dHJpYnV0ZSkpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcGFyc2VyLnNldEN1cnJJbmRleCgrK2VuZENvbnRleHQpOyAgLy8gdG8gZGVsZXRlIFwiPlwiIHRvb1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZ1dpdGhNc2coXCJpbiBUYWJsZUNhY2hlLmZpbGxBdHRyaWJ1dGVzKCkgb3V0IG9mIHN0cmluZyBib3VuZHNcIik7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYWxsb2NhdGVzIGFuZCBpbml0aWFsaXplIGlubmVyIG9iamVjdCBhY2NvcmRpbmcgdG8gdGhlIGZvdW5kIHhtbCBkYXRhXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIEluaXRJbm5lck9iamVjdHMocGFyc2VyOiBYbWxQYXJzZXIsIGZvdW5kVGFnTmFtZTogU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoZm91bmRUYWdOYW1lID09IG51bGwpXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBzd2l0Y2ggKGZvdW5kVGFnTmFtZSkge1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19UQUdfRkxESDpcclxuICAgICAgICB0aGlzLkZsZHNUYWIgPSBuZXcgRmllbGRzVGFibGUoKTtcclxuICAgICAgICB0aGlzLkZsZHNUYWIuZmlsbERhdGEocGFyc2VyKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9LRVk6IHtcclxuICAgICAgICBsZXQgY3VycmVudCA9IG5ldyBLZXkodGhpcyk7XHJcbiAgICAgICAgY3VycmVudC5GaWxsRGF0YShwYXJzZXIpO1xyXG4gICAgICAgIHRoaXMuX2tleXMucHVzaChjdXJyZW50KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19UQUdfUkVDT1JEUzpcclxuICAgICAgICBwYXJzZXIuc2V0Q3VyckluZGV4KHBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihYTUxDb25zdGFudHMuVEFHX0NMT1NFLCBwYXJzZXIuZ2V0Q3VyckluZGV4KCkpICsgMSk7XHJcbiAgICAgICAgLy8gZW5kIG9mIG91dGVyIHRhZCBhbmQgaXRzIFwiPlwiXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX1JFQ09SRFNfRU5EOlxyXG4gICAgICAgIHBhcnNlci5zZXRDdXJySW5kZXgyRW5kT2ZUYWcoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19UQUdfQ0FDSEVEX1RBQkxFX0VORDpcclxuICAgICAgICBwYXJzZXIuc2V0Q3VyckluZGV4MkVuZE9mVGFnKCk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX1RBR19SRUM6IHtcclxuICAgICAgICBsZXQgY3VycmVudCA9IG5ldyBSZWNvcmQodGhpcyk7XHJcbiAgICAgICAgY3VycmVudC5Jbml0aWFsaXplKCk7XHJcbiAgICAgICAgY3VycmVudC5maWxsRGF0YShwYXJzZXIpO1xyXG4gICAgICAgIHRoaXMuX3JlY29yZHMucHVzaChjdXJyZW50KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgdW5pcXVlIGlkIG9mIHRoZSBjdXJyZW50IGNhY2hlZCB0YWJsZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgR2V0VGFibGVVbmlxdWVJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYmxlVUlkO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgdGFibGUgY29tbW9uIGlkZW50aWZpZXJcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIEdldFRhYmxlQ29tbW9uSWRlbnRpZmllcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYmxlSWRlbnQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUga2V5IGJ5IHdoaWMgd2UgYXJlIGN1cnJlbnRseSBzb3J0aW5nIChvciBjdXJyZW50bHkgc29ydGVkKSB0aGUgdGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIEdldEN1cnJTb3J0S2V5KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fY3VyclNvcnRLZXk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUga2V5IGJ5IGlkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBHZXRLZXlCeUlkKGtleUlkOiBudW1iZXIpOiBLZXkge1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHRoaXMuX2tleXMubGVuZ3RoOyBpID0gaSArIDEpIHtcclxuICAgICAgaWYgKHRoaXMuX2tleXMuZ2V0X0l0ZW0oaSkuR2V0S2V5SWQoKSA9PT0ga2V5SWQpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2tleXMuZ2V0X0l0ZW0oaSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBsb2FkcyBhIHRhYmxlIGZyb20gdGhlIGRhdGFJc2xhbmQgYWNjb3JkaW5nIHRvIGlzIHVuaXF1ZSBpZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBhc3luYyBMb2FkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLl9pc0xvYWRlZCkge1xyXG4gICAgICBhd2FpdCBUYWJsZUNhY2hlTWFuYWdlci5JbnN0YW5jZS5Mb2FkVGFibGUodGhpcy5fdGFibGVVSWQpO1xyXG4gICAgICB0aGlzLl9pc0xvYWRlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgc29ydCB0aGUgY3VycmVudCB0YWJsZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic29ydEtleUlkXCI+dGhlIGlkIG9mIHRoZSBrZXkgdG8gc29ydCBieSA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInNvcnREaXJcIj48L3BhcmFtPlxyXG4gIGFzeW5jIFNvcnRUYWJsZShzb3J0S2V5SWQ6IG51bWJlciwgc29ydERpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuX2lzTG9hZGVkKVxyXG4gICAgICBhd2FpdCB0aGlzLkxvYWQoKTtcclxuXHJcbiAgICAvLyBpZiB0aGUgdGFibGUgaXMgYWxyZWFkeSBzb3J0ZWQgdGhlIHdheSB3ZSB3YW50IGl0XHJcbiAgICBpZiAoc29ydEtleUlkICE9PSB0aGlzLl9jdXJyU29ydEtleSB8fCBzb3J0RGlyICE9PSB0aGlzLl9jdXJyU29ydERpcikge1xyXG4gICAgICB0aGlzLl9jdXJyU29ydERpciA9IHNvcnREaXI7XHJcbiAgICAgIHRoaXMuX2N1cnJTb3J0S2V5ID0gc29ydEtleUlkO1xyXG5cclxuICAgICAgbGV0IHJlY29yZHNBcnI6IFJlY29yZFtdID0gdGhpcy5fcmVjb3Jkcy5Ub0FycmF5KCk7XHJcbiAgICAgIEhlYXBTb3J0LnNvcnQocmVjb3Jkc0Fycik7XHJcblxyXG4gICAgICBpZiAodGhpcy5fY3VyclNvcnREaXIgPT09ICdEJylcclxuICAgICAgICB0aGlzLlJldmVyc2VWZWN0b3IocmVjb3Jkc0Fycik7XHJcblxyXG4gICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgdGhpcy5fcmVjb3Jkcy5sZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICAgIHRoaXMuX3JlY29yZHMuc2V0X0l0ZW0oaSwgcmVjb3Jkc0FycltpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBleGVjdXRlcyB0aGUgdGhlIGxpbmsgb3BlcmF0aW9uIHdlIGFzc3VtZSB0aGUgdGFibGUgaXMgYWxyZWFkeSBzb3J0ZWQgYnkgdGhlIGNvcnJlY3Qga2V5IGFuZCBkaXJlY3Rpb25cclxuICAvLy8gICB0aGUgbWV0aG9kIHJldHVybnMgdGhlIHJlcXVlc3RlZCByZWNvcmQgYWNjb3JkaW5nIHRoZSBsb2NhdGVzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBGZXRjaChsb2M6IExpc3Q8Qm91bmRhcnk+KTogUmVjb3JkIHtcclxuXHJcbiAgICAvLyBpZiB0aGVyZSBhcmUgbm90IGFueSBsb2NhdGUgZXhwcmVzc2lvbiB0aGVuIGVpdGhlciB3ZSByZXR1cm4gdGhlIGZmaXJzdCByZWNvcmQgdGhhdCBhY2NlcHRzXHJcbiAgICAvLyBhbCB0aGUgcmFuZ2UgY29uZGl0aW9uIG9yIHdlIHJldHVybiB0aGUgZmlyc3QgcmVjb3JkIGluIHRoZSB0YWJsZSBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgc29ydFxyXG4gICAgbGV0IGNoZWNrTG9jOiBib29sZWFuID0gbG9jLmxlbmd0aCA+IDA7XHJcblxyXG4gICAgaWYgKHRoaXMuX2lzTG9hZGVkKSB7XHJcbiAgICAgIC8vIHNob3VsZCBiZSBsb2FkZWQgYXQgc29ydCB0aW1lIHRoZSB0aW1lIG11c3QgYmUgYWxyZWFkeSBzb3J0ZWQgYXQgdGhpcyBzdGFnZVxyXG4gICAgICBpZiAoIWNoZWNrTG9jKSB7XHJcbiAgICAgICAgLy8gaWYgdGhlcmUgYXJlIG5vIGxvY2F0ZXMgcmV0dXJuIHRoZSBmaXJzdCByZWNvcmRcclxuICAgICAgICByZXR1cm4gKCh0aGlzLl9yZWNvcmRzLmxlbmd0aCAhPT0gMCkgPyB0aGlzLl9yZWNvcmRzLmdldF9JdGVtKDApIDogbnVsbCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGZpbmQgdGhlIGZpcnN0IHJlY29yZCB0aGF0IGFncmVlcyB3aXRoIHRoZSBsb2NhdGVzIGFudCByZXR1cm4gaXRcclxuICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHRoaXMuX3JlY29yZHMubGVuZ3RoOyBpID0gaSArIDEpIHtcclxuICAgICAgICBsZXQgY3VyclJlYzogUmVjb3JkID0gdGhpcy5fcmVjb3Jkcy5nZXRfSXRlbShpKTtcclxuXHJcbiAgICAgICAgLy8gY2hlY2sgaWYgdGhpcyByZWNvcmQgYWdyZWVzIHdpdGggYWxsIHRoZSBsb2NhdGUgY29uZGl0aW9uc1xyXG4gICAgICAgIGlmIChUYWJsZUNhY2hlLnZhbGlkYXRlUmVjKGN1cnJSZWMsIGxvYykpIHtcclxuICAgICAgICAgIHJldHVybiBjdXJyUmVjO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gaWYgd2UgZ290IGhlcmUgdGhlbiBlaXRoZXIgdGhlIHRhYmxlIHdhcyBub3QgbG9hZGVkIGFuZCBzb3J0ZWQgb3Igd2UgZGlkIG5vdCBmaW5kIGFueSByZWNvcmRcclxuICAgIC8vIHRoYXQgYWdyZWVzIHdpdGggdGhlIGxvY2F0ZSBleHByZXNzaW9ucyAtIGluIGVpdGhlciBjYXNlIHJldHVybiBudWxsXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICB2YWxpZGF0ZSBhIHJlY29yZCBkYXRhIGFnYWluc3QgYSBzZXJpZXMgb2YgbG9jYXRlIGV4cHJlc3Npb25zXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZVJlYyhjdXJyUmVjOiBSZWNvcmQsIHJhbmdlQ29uZDogTGlzdDxCb3VuZGFyeT4pOiBib29sZWFuIHtcclxuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8vIGdvIG92ZXIgYWxsIHRoZSBjb25kaXRpb25zXHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgcmFuZ2VDb25kLmxlbmd0aDsgaSA9IGkgKyAxKSB7XHJcbiAgICAgIGxldCBjdXJyQ25kOiBCb3VuZGFyeSA9IHJhbmdlQ29uZC5nZXRfSXRlbShpKTtcclxuICAgICAgLy8gaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGZpbGVkIHRoYXQgZG9lcyBub3QgYWdyZWUgYWxsIHRoZSByZWNvcmQgZGllcyBub3QgYWdyZWVcclxuICAgICAgaWYgKCFjdXJyQ25kLmNoZWNrUmFuZ2UoY3VyclJlYy5HZXRGaWVsZFZhbHVlKGN1cnJDbmQuZ2V0Q2FjaGVUYWJsZUZsZElkKCkpLCBjdXJyUmVjLklzTnVsbChjdXJyQ25kLmdldENhY2hlVGFibGVGbGRJZCgpKSkpIHtcclxuICAgICAgICByZXN1bHQgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy9cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImFycmF5XCI+PC9wYXJhbT5cclxuICBwcm90ZWN0ZWQgUmV2ZXJzZVZlY3RvcihhcnJheTogT2JqZWN0W10pOiB2b2lkIHtcclxuICAgIGxldCByaWdodDogbnVtYmVyID0gYXJyYXkubGVuZ3RoIC0gMTtcclxuICAgIGZvciAobGV0IGxlZnQ6IG51bWJlciA9IDA7IGxlZnQgPCBNYXRoLmZsb29yKChhcnJheS5sZW5ndGggLSAxKSAvIDIpOyBsZWZ0KysgLCByaWdodC0tKSB7XHJcbiAgICAgIGxldCB0bXA6IE9iamVjdCA9IGFycmF5W2xlZnRdO1xyXG4gICAgICBhcnJheVtsZWZ0XSA9IGFycmF5W3JpZ2h0XTtcclxuICAgICAgYXJyYXlbcmlnaHRdID0gdG1wO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -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
|
+
_tables = null;
|
7
|
+
static Instance = new TableCacheManager();
|
8
|
+
constructor() {
|
9
|
+
this._tables = new Hashtable();
|
10
|
+
}
|
11
|
+
GetTableById(tableUId) {
|
12
|
+
return this._tables.get_Item(tableUId);
|
13
|
+
}
|
14
|
+
TableExists(tableUId) {
|
15
|
+
let result = true;
|
16
|
+
if (this.GetTableById(tableUId) === null)
|
17
|
+
result = false;
|
18
|
+
return result;
|
19
|
+
}
|
20
|
+
InsertTable(table) {
|
21
|
+
let result = false;
|
22
|
+
if (!this.TableExists(table.GetTableUniqueId())) {
|
23
|
+
this._tables.set_Item(table.GetTableUniqueId(), table);
|
24
|
+
result = true;
|
25
|
+
}
|
26
|
+
return result;
|
27
|
+
}
|
28
|
+
async LoadTable(tableUId) {
|
29
|
+
let server = RemoteCommandsProcessor.GetInstance();
|
30
|
+
if (this.TableExists(tableUId)) {
|
31
|
+
let current = this._tables.get_Item(tableUId);
|
32
|
+
try {
|
33
|
+
let residentTableContentStr = await server.GetContent(tableUId, true);
|
34
|
+
try {
|
35
|
+
RuntimeContextBase.Instance.Parser.loadTableCacheData(residentTableContentStr);
|
36
|
+
}
|
37
|
+
catch (innerException) {
|
38
|
+
if (innerException instanceof Exception) {
|
39
|
+
throw new ApplicationException("Unable to parse resident table " + tableUId + ", due to unsupported encoding.", innerException);
|
40
|
+
}
|
41
|
+
else
|
42
|
+
throw innerException;
|
43
|
+
}
|
44
|
+
}
|
45
|
+
catch (throwable) {
|
46
|
+
if (throwable instanceof Exception) {
|
47
|
+
Misc.WriteStackTrace(throwable);
|
48
|
+
}
|
49
|
+
else
|
50
|
+
throw throwable;
|
51
|
+
}
|
52
|
+
current.FillData();
|
53
|
+
let deletedUids = new List();
|
54
|
+
let enumerator = this._tables.Values;
|
55
|
+
while (enumerator.MoveNext()) {
|
56
|
+
let tbl = enumerator.Current;
|
57
|
+
let currIdent = tbl.GetTableCommonIdentifier();
|
58
|
+
if (currIdent === current.GetTableCommonIdentifier() && tbl.GetTableUniqueId() !== tableUId)
|
59
|
+
deletedUids.push(tbl.GetTableUniqueId());
|
60
|
+
}
|
61
|
+
for (let i = 0; i < deletedUids.length; i = i + 1) {
|
62
|
+
this._tables.Remove(deletedUids.get_Item(i));
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVDYWNoZU1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3J0L1RhYmxlQ2FjaGVNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsb0JBQW9CLEVBQW9CLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFLNUUsTUFBTSxPQUFPLGlCQUFpQjtJQUNwQixPQUFPLEdBQWtDLElBQUksQ0FBQztJQUV0RCxNQUFNLENBQUMsUUFBUSxHQUFzQixJQUFJLGlCQUFpQixFQUFFLENBQUM7SUFFN0Q7UUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksU0FBUyxFQUFzQixDQUFDO0lBQ3JELENBQUM7SUFLRCxZQUFZLENBQUMsUUFBZ0I7UUFDM0IsT0FBbUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUtELFdBQVcsQ0FBQyxRQUFnQjtRQUMxQixJQUFJLE1BQU0sR0FBWSxJQUFJLENBQUM7UUFFM0IsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUk7WUFDdEMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVqQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBTUQsV0FBVyxDQUFDLEtBQWlCO1FBQzNCLElBQUksTUFBTSxHQUFZLEtBQUssQ0FBQztRQUU1QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDZjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFNRCxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQWdCO1FBQzlCLElBQUksTUFBTSxHQUEwQix1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUcxRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFFOUIsSUFBSSxPQUFPLEdBQTJCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RFLElBQUk7Z0JBQ0YsSUFBSSx1QkFBdUIsR0FBVyxNQUFNLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUM5RSxJQUFJO29CQUNGLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztpQkFDaEY7Z0JBQ0QsT0FBTyxjQUFjLEVBQUU7b0JBQ3JCLElBQUksY0FBYyxZQUFZLFNBQVMsRUFBRTt3QkFDdkMsTUFBTSxJQUFJLG9CQUFvQixDQUFDLGlDQUFpQyxHQUFHLFFBQVEsR0FBRyxnQ0FBZ0MsRUFBRSxjQUFjLENBQUMsQ0FBQztxQkFDakk7O3dCQUVDLE1BQU0sY0FBYyxDQUFDO2lCQUN4QjthQUNGO1lBQ0QsT0FBTyxTQUFTLEVBQUU7Z0JBQ2hCLElBQUksU0FBUyxZQUFZLFNBQVMsRUFBRTtvQkFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDakM7O29CQUVDLE1BQU0sU0FBUyxDQUFDO2FBQ25CO1lBR0QsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBR25CLElBQUksV0FBVyxHQUFpQixJQUFJLElBQUksRUFBVSxDQUFDO1lBQ25ELElBQUksVUFBVSxHQUFpQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUNuRSxPQUFPLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDNUIsSUFBSSxHQUFHLEdBQTJCLFVBQVUsQ0FBQyxPQUFPLENBQUM7Z0JBQ3JELElBQUksU0FBUyxHQUFXLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO2dCQUN2RCxJQUFJLFNBQVMsS0FBSyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxRQUFRO29CQUN6RixXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7YUFDNUM7WUFFRCxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDekQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlDO1NBQ0Y7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWlzYyB9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvbkV4Y2VwdGlvbiwgQXJyYXlfRW51bWVyYXRvciwgRXhjZXB0aW9uLCBIYXNodGFibGUsIExpc3QgfSBmcm9tICdAbWFnaWMteHBhL21zY29yZWxpYic7XHJcbmltcG9ydCB7IFJ1bnRpbWVDb250ZXh0QmFzZSB9IGZyb20gJ0BtYWdpYy14cGEvZ3VpJztcclxuaW1wb3J0IHsgVGFibGVDYWNoZSB9IGZyb20gJy4vVGFibGVDYWNoZSc7XHJcbmltcG9ydCB7IENvbW1hbmRzUHJvY2Vzc29yQmFzZSB9IGZyb20gJy4uL0NvbW1hbmRzUHJvY2Vzc29yQmFzZSc7XHJcbmltcG9ydCB7IFJlbW90ZUNvbW1hbmRzUHJvY2Vzc29yIH0gZnJvbSAnLi4vcmVtb3RlL1JlbW90ZUNvbW1hbmRzUHJvY2Vzc29yJztcclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vICAgaGFuZGxlcyB0aGUgbG9hZGluZyBhbmQgbWFuYWdpbmcgb2YgYWxsIGNhY2hlIHRhYmxlcyBpbiB0aGUgY29udGV4dFxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgVGFibGVDYWNoZU1hbmFnZXIge1xyXG4gIHByaXZhdGUgX3RhYmxlczogSGFzaHRhYmxlPHN0cmluZywgVGFibGVDYWNoZT4gPSBudWxsO1xyXG5cclxuICBzdGF0aWMgSW5zdGFuY2U6IFRhYmxlQ2FjaGVNYW5hZ2VyID0gbmV3IFRhYmxlQ2FjaGVNYW5hZ2VyKCk7XHJcblxyXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLl90YWJsZXMgPSBuZXcgSGFzaHRhYmxlPHN0cmluZywgVGFibGVDYWNoZT4oKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdGhlIHRhYmxlQ2FjaGUgb2JqZWN0ICBhY2NvcmRpbmcgdG8gaXRzIHVuaXF1ZSBpZCBvciBudWxsIGlmIGRvZXMgbm90IGV4aXN0IGluIHRoZSBtYW5hZ2VyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBHZXRUYWJsZUJ5SWQodGFibGVVSWQ6IHN0cmluZyk6IFRhYmxlQ2FjaGUge1xyXG4gICAgcmV0dXJuIDxUYWJsZUNhY2hlPnRoaXMuX3RhYmxlcy5nZXRfSXRlbSh0YWJsZVVJZCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgY2hlY2tzIGlmIGEgZ2l2ZW4gdGFibGUgZXhpc3RzIGluIHRoZSBtYW5hZ2VyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBUYWJsZUV4aXN0cyh0YWJsZVVJZDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBpZiAodGhpcy5HZXRUYWJsZUJ5SWQodGFibGVVSWQpID09PSBudWxsKVxyXG4gICAgICByZXN1bHQgPSBmYWxzZTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGluc2VydHMgYSB0YWJsZSBpbnRvIHRoZSBtYW5hZ2VyIGlzIG5vdCBhbHJlYWR5IGV4aXN0c1xyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpcyBpbnNlcnQgc3VjY2VlZGVkIGZhbHNlIG90aGVyd2lzZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgSW5zZXJ0VGFibGUodGFibGU6IFRhYmxlQ2FjaGUpOiBib29sZWFuIHtcclxuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoIXRoaXMuVGFibGVFeGlzdHModGFibGUuR2V0VGFibGVVbmlxdWVJZCgpKSkge1xyXG4gICAgICB0aGlzLl90YWJsZXMuc2V0X0l0ZW0odGFibGUuR2V0VGFibGVVbmlxdWVJZCgpLCB0YWJsZSk7XHJcbiAgICAgIHJlc3VsdCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBsb2FkcyBhIG5ldyB0YWJsZSBzdGFydCB0aGUgdGFibGUgcGFyc2luZyBwcm9jZXNzXHJcbiAgLy8vICAgZGVsZXRlIGFueSBvbGQgaW5zdGFuY2VzIG9mIHRoZSBzYW1lIHRhYmxlIChldmVuIGlmIHRoZXkgb3RoZXIgdW5pcXVlIGlkc1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgYXN5bmMgTG9hZFRhYmxlKHRhYmxlVUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCBzZXJ2ZXI6IENvbW1hbmRzUHJvY2Vzc29yQmFzZSA9IFJlbW90ZUNvbW1hbmRzUHJvY2Vzc29yLkdldEluc3RhbmNlKCk7XHJcblxyXG4gICAgLy8gdGhlIHRhYmxlIG11c3QgZXhpc3QgaW4gdGhlIGhhc2hUYWJsZSBhdCB0aGlzIHN0YWdlIGVsc2UgaXQgaXMgYW4gZXJyb3JcclxuICAgIGlmICh0aGlzLlRhYmxlRXhpc3RzKHRhYmxlVUlkKSkge1xyXG4gICAgICAvLyBnZXQgdGhlIHRhYmxlXHJcbiAgICAgIGxldCBjdXJyZW50OiBUYWJsZUNhY2hlID0gPFRhYmxlQ2FjaGU+dGhpcy5fdGFibGVzLmdldF9JdGVtKHRhYmxlVUlkKTtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBsZXQgcmVzaWRlbnRUYWJsZUNvbnRlbnRTdHI6IHN0cmluZyA9IGF3YWl0IHNlcnZlci5HZXRDb250ZW50KHRhYmxlVUlkLCB0cnVlKTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgUnVudGltZUNvbnRleHRCYXNlLkluc3RhbmNlLlBhcnNlci5sb2FkVGFibGVDYWNoZURhdGEocmVzaWRlbnRUYWJsZUNvbnRlbnRTdHIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoaW5uZXJFeGNlcHRpb24pIHtcclxuICAgICAgICAgIGlmIChpbm5lckV4Y2VwdGlvbiBpbnN0YW5jZW9mIEV4Y2VwdGlvbikge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgQXBwbGljYXRpb25FeGNlcHRpb24oXCJVbmFibGUgdG8gcGFyc2UgcmVzaWRlbnQgdGFibGUgXCIgKyB0YWJsZVVJZCArIFwiLCBkdWUgdG8gdW5zdXBwb3J0ZWQgZW5jb2RpbmcuXCIsIGlubmVyRXhjZXB0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhyb3cgaW5uZXJFeGNlcHRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNhdGNoICh0aHJvd2FibGUpIHtcclxuICAgICAgICBpZiAodGhyb3dhYmxlIGluc3RhbmNlb2YgRXhjZXB0aW9uKSB7XHJcbiAgICAgICAgICBNaXNjLldyaXRlU3RhY2tUcmFjZSh0aHJvd2FibGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aHJvdyB0aHJvd2FibGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIHN0YXJ0IHBhcnNpbmdcclxuICAgICAgY3VycmVudC5GaWxsRGF0YSgpO1xyXG5cclxuICAgICAgLy8gZGVsZXRlIG9sZCB0YWJsZXNcclxuICAgICAgbGV0IGRlbGV0ZWRVaWRzOiBMaXN0PHN0cmluZz4gPSBuZXcgTGlzdDxzdHJpbmc+KCk7XHJcbiAgICAgIGxldCBlbnVtZXJhdG9yOiBBcnJheV9FbnVtZXJhdG9yPFRhYmxlQ2FjaGU+ID0gdGhpcy5fdGFibGVzLlZhbHVlcztcclxuICAgICAgd2hpbGUgKGVudW1lcmF0b3IuTW92ZU5leHQoKSkge1xyXG4gICAgICAgIGxldCB0Ymw6IFRhYmxlQ2FjaGUgPSA8VGFibGVDYWNoZT5lbnVtZXJhdG9yLkN1cnJlbnQ7XHJcbiAgICAgICAgbGV0IGN1cnJJZGVudDogc3RyaW5nID0gdGJsLkdldFRhYmxlQ29tbW9uSWRlbnRpZmllcigpO1xyXG4gICAgICAgIGlmIChjdXJySWRlbnQgPT09IGN1cnJlbnQuR2V0VGFibGVDb21tb25JZGVudGlmaWVyKCkgJiYgdGJsLkdldFRhYmxlVW5pcXVlSWQoKSAhPT0gdGFibGVVSWQpXHJcbiAgICAgICAgICBkZWxldGVkVWlkcy5wdXNoKHRibC5HZXRUYWJsZVVuaXF1ZUlkKCkpO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGRlbGV0ZVxyXG4gICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgZGVsZXRlZFVpZHMubGVuZ3RoOyBpID0gaSArIDEpIHtcclxuICAgICAgICB0aGlzLl90YWJsZXMuUmVtb3ZlKGRlbGV0ZWRVaWRzLmdldF9JdGVtKGkpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -0,0 +1,53 @@
|
|
1
|
+
import { ConstInterface } from "../ConstInterface";
|
2
|
+
export class Transaction {
|
3
|
+
_transId = null;
|
4
|
+
_afterTransRetry = ConstInterface.RECOVERY_NONE;
|
5
|
+
_transBegin = '\0';
|
6
|
+
Opened = false;
|
7
|
+
OwnerTask = null;
|
8
|
+
constructor(task, setTransId) {
|
9
|
+
this.OwnerTask = task;
|
10
|
+
this._transId = setTransId;
|
11
|
+
this._transBegin = ConstInterface.TRANS_TASK_PREFIX;
|
12
|
+
}
|
13
|
+
isOwner(task) {
|
14
|
+
return task === this.OwnerTask;
|
15
|
+
}
|
16
|
+
close() {
|
17
|
+
this.Opened = false;
|
18
|
+
}
|
19
|
+
open() {
|
20
|
+
this.Opened = true;
|
21
|
+
}
|
22
|
+
isOpened() {
|
23
|
+
return this.Opened;
|
24
|
+
}
|
25
|
+
setAfterRetry(val) {
|
26
|
+
this._afterTransRetry = val;
|
27
|
+
}
|
28
|
+
getAfterRetry(recovery) {
|
29
|
+
if (arguments.length === 0) {
|
30
|
+
return this.getAfterRetry_0();
|
31
|
+
}
|
32
|
+
return this.getAfterRetry_1(recovery);
|
33
|
+
}
|
34
|
+
getAfterRetry_0() {
|
35
|
+
return this._afterTransRetry !== ConstInterface.RECOVERY_NONE;
|
36
|
+
}
|
37
|
+
getAfterRetry_1(recovery) {
|
38
|
+
return this._afterTransRetry === recovery;
|
39
|
+
}
|
40
|
+
getLevel() {
|
41
|
+
return this._transBegin;
|
42
|
+
}
|
43
|
+
setTransBegin(val) {
|
44
|
+
this._transBegin = val;
|
45
|
+
}
|
46
|
+
getTransId() {
|
47
|
+
return this._transId;
|
48
|
+
}
|
49
|
+
setOwnerTask(task) {
|
50
|
+
this.OwnerTask = task;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3J0L1RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUdqRCxNQUFNLE9BQU8sV0FBVztJQUNkLFFBQVEsR0FBVyxJQUFJLENBQUM7SUFHeEIsZ0JBQWdCLEdBQVcsY0FBYyxDQUFDLGFBQWEsQ0FBQztJQUV4RCxXQUFXLEdBQVcsSUFBSSxDQUFDO0lBQ25DLE1BQU0sR0FBWSxLQUFLLENBQUM7SUFDeEIsU0FBUyxHQUFTLElBQUksQ0FBQztJQVF2QixZQUFZLElBQWMsRUFBRSxVQUFrQjtRQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFTLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBUztJQUM5RCxDQUFDO0lBTUQsT0FBTyxDQUFDLElBQVU7UUFDaEIsT0FBTyxJQUFJLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNqQyxDQUFDO0lBS0QsS0FBSztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFLRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUtELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUtELGFBQWEsQ0FBQyxHQUFXO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7SUFDOUIsQ0FBQztJQUlELGFBQWEsQ0FBQyxRQUFpQjtRQUM3QixJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQy9CO1FBQ0QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFLTyxlQUFlO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixLQUFLLGNBQWMsQ0FBQyxhQUFhLENBQVM7SUFDeEUsQ0FBQztJQUtPLGVBQWUsQ0FBQyxRQUFnQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxRQUFRLENBQUM7SUFDNUMsQ0FBQztJQUtELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUtELGFBQWEsQ0FBQyxHQUFXO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFLRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFLRCxZQUFZLENBQUMsSUFBVTtRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1Rhc2t9IGZyb20gXCIuLi90YXNrcy9UYXNrXCI7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gXCIuLi9Db25zdEludGVyZmFjZVwiO1xyXG5pbXBvcnQge1Rhc2tCYXNlfSBmcm9tIFwiLi4vdGFza3MvVGFza0Jhc2VcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiB7XHJcbiAgcHJpdmF0ZSBfdHJhbnNJZDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLy8gaG9sZHMgdGhlIHJlY292ZXJ5IHR5cGUgb2YgYSBmYWlsZWQgdHJhbnNhY3Rpb24gc28gd2UgY2FuIGFzayBpZiB3ZSBhcmUgYWZ0ZXIgcmV0cnkuXHJcbiAgcHJpdmF0ZSBfYWZ0ZXJUcmFuc1JldHJ5OiBzdHJpbmcgPSBDb25zdEludGVyZmFjZS5SRUNPVkVSWV9OT05FO1xyXG5cclxuICBwcml2YXRlIF90cmFuc0JlZ2luOiBzdHJpbmcgPSAnXFwwJztcclxuICBPcGVuZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBPd25lclRhc2s6IFRhc2sgPSBudWxsO1xyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGFza1wiPnRoZSB0YXNrIHdobyBvd25zIHRoaXMgdHJhbnNhY3Rpb24gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJzZXRUcmFuc0lkXCI+PC9wYXJhbT5cclxuICBjb25zdHJ1Y3Rvcih0YXNrOiBUYXNrQmFzZSwgc2V0VHJhbnNJZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLk93bmVyVGFzayA9IDxUYXNrPnRhc2s7XHJcbiAgICB0aGlzLl90cmFuc0lkID0gc2V0VHJhbnNJZDtcclxuICAgIHRoaXMuX3RyYW5zQmVnaW4gPSBDb25zdEludGVyZmFjZS5UUkFOU19UQVNLX1BSRUZJWCAvKidUJyovO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gdGFzayBpcyB0aGUgb3duZXIgb2YgdGhpcyB0cmFuc2FjdGlvblxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0YXNrXCI+dGhlIHRhc2sgdG8gY2hlY2sgPC9wYXJhbT5cclxuICBpc093bmVyKHRhc2s6IFRhc2spOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0YXNrID09PSB0aGlzLk93bmVyVGFzaztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBjbG9zZSB0aGUgdHJhbnNhY3Rpb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGNsb3NlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5PcGVuZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBvcGVucyB0aGUgdHJhbnNhY3Rpb24gLSBzaG91bGQgYmUgY2FsbGVkIHdoZW4gYW4gdXBkYXRlIG9jY3VyZWRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIG9wZW4oKTogdm9pZCB7XHJcbiAgICB0aGlzLk9wZW5lZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0cnVlIGlmIHRoZSB0cmFuc2FjdGlvbiB3YXMgb3BlbmVkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBpc09wZW5lZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLk9wZW5lZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzaWduYWxscyB3aGVhdGhlciB3ZSBhcmUgbm93IGluIHRoZSBwcm9jZXNzIG9mIHJldHJ5aW5nIGEgZmFpbGVkIHRyYW5zYWN0aW9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzZXRBZnRlclJldHJ5KHZhbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9hZnRlclRyYW5zUmV0cnkgPSB2YWw7XHJcbiAgfVxyXG5cclxuICBnZXRBZnRlclJldHJ5KCk6IGJvb2xlYW47XHJcbiAgZ2V0QWZ0ZXJSZXRyeShyZWNvdmVyeTogc3RyaW5nKTogYm9vbGVhbjtcclxuICBnZXRBZnRlclJldHJ5KHJlY292ZXJ5Pzogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRBZnRlclJldHJ5XzAoKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldEFmdGVyUmV0cnlfMShyZWNvdmVyeSk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRydWUgaWYgd2UgYXJlIGFmdGVyIGEgdHJhbnNhY3Rpb24gcmV0cnlcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByaXZhdGUgZ2V0QWZ0ZXJSZXRyeV8wKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FmdGVyVHJhbnNSZXRyeSAhPT0gQ29uc3RJbnRlcmZhY2UuUkVDT1ZFUllfTk9ORSAvKidcdTAwMDAnKi87XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRydWUgaWYgd2UgYXJlIGFmdGVyIGEgdHJhbnNhY3Rpb24gd2l0aCByZWNvdmVyeSBSRUNPVkVSWV9SRVRSWVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBnZXRBZnRlclJldHJ5XzEocmVjb3Zlcnk6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FmdGVyVHJhbnNSZXRyeSA9PT0gcmVjb3Zlcnk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgdHJhbnNhY3Rpb24gbGV2ZWwgKFRhc2svUmVjb3JkKVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0TGV2ZWwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc0JlZ2luO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldHMgdGhlIGxldmVsIG9mIHRoZSBUcmFuc2FjdGlvblxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc2V0VHJhbnNCZWdpbih2YWw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fdHJhbnNCZWdpbiA9IHZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXRzIHRyYW5zSWRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldFRyYW5zSWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc0lkO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldHMgT3duZXIgdGFza1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc2V0T3duZXJUYXNrKHRhc2s6IFRhc2spOiB2b2lkIHtcclxuICAgIHRoaXMuT3duZXJUYXNrID0gdGFzaztcclxuICB9XHJcbn1cclxuIl19
|
@@ -0,0 +1,71 @@
|
|
1
|
+
import { NString } from '@magic-xpa/mscorelib';
|
2
|
+
import { Logger, XMLConstants, XmlParser } from '@magic-xpa/utils';
|
3
|
+
import { ConstInterface } from '../ConstInterface';
|
4
|
+
import { Commands } from '@magic-xpa/gui';
|
5
|
+
export class UserDetails {
|
6
|
+
static _instance = null;
|
7
|
+
UserName = null;
|
8
|
+
UserID = null;
|
9
|
+
UserInfo = null;
|
10
|
+
Password = null;
|
11
|
+
IsLoggedIn = false;
|
12
|
+
setIsLoggedIn(value) {
|
13
|
+
this.IsLoggedIn = value;
|
14
|
+
}
|
15
|
+
getIsLoggedIn() {
|
16
|
+
return this.IsLoggedIn;
|
17
|
+
}
|
18
|
+
setUserID(userId) {
|
19
|
+
this.UserID = userId;
|
20
|
+
if (this.UserID.length == 0 || this.UserID === NString.Empty) {
|
21
|
+
this.setIsLoggedIn(false);
|
22
|
+
}
|
23
|
+
else
|
24
|
+
this.setIsLoggedIn(true);
|
25
|
+
}
|
26
|
+
static get Instance() {
|
27
|
+
if (UserDetails._instance === null)
|
28
|
+
UserDetails._instance = new UserDetails();
|
29
|
+
return UserDetails._instance;
|
30
|
+
}
|
31
|
+
constructor() {
|
32
|
+
this.UserName = NString.Empty;
|
33
|
+
this.UserInfo = NString.Empty;
|
34
|
+
this.IsLoggedIn = false;
|
35
|
+
this.setUserID(NString.Empty);
|
36
|
+
}
|
37
|
+
fillData(parser) {
|
38
|
+
let tokensVector;
|
39
|
+
let endContext = parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, parser.getCurrIndex());
|
40
|
+
if (endContext !== -1 && endContext < parser.getXMLdata().length) {
|
41
|
+
let tag = parser.getXMLsubstring(endContext);
|
42
|
+
parser.add2CurrIndex(tag.indexOf(ConstInterface.MG_TAG_USER_DETAILS) + ConstInterface.MG_TAG_USER_DETAILS.length);
|
43
|
+
tokensVector = XmlParser.getTokens(parser.getXMLsubstring(endContext), XMLConstants.XML_ATTR_DELIM);
|
44
|
+
this.initElements(tokensVector);
|
45
|
+
parser.setCurrIndex(endContext + XMLConstants.TAG_TERM.length);
|
46
|
+
}
|
47
|
+
else
|
48
|
+
Logger.Instance.WriteExceptionToLogWithMsg("in UserDetails.fillData(): out of bounds");
|
49
|
+
}
|
50
|
+
initElements(tokensVector) {
|
51
|
+
let attribute, valueStr;
|
52
|
+
let isSuccess = true;
|
53
|
+
let j;
|
54
|
+
for (j = 0; j < tokensVector.length; j += 2) {
|
55
|
+
attribute = tokensVector.get_Item(j);
|
56
|
+
valueStr = tokensVector.get_Item(j + 1);
|
57
|
+
switch (attribute) {
|
58
|
+
case ConstInterface.MG_TAG_IS_LOGGED_IN:
|
59
|
+
this.setIsLoggedIn(valueStr[0] === '1');
|
60
|
+
Commands.addIsLoggedIn(this.getIsLoggedIn());
|
61
|
+
break;
|
62
|
+
default:
|
63
|
+
Logger.Instance.WriteExceptionToLogWithMsg("in UserDetails.initElements(): unknown attribute: " + attribute);
|
64
|
+
isSuccess = false;
|
65
|
+
break;
|
66
|
+
}
|
67
|
+
}
|
68
|
+
return isSuccess;
|
69
|
+
}
|
70
|
+
}
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlckRldGFpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3NlY3VyaXR5L1VzZXJEZXRhaWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBUSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSzFDLE1BQU0sT0FBTyxXQUFXO0lBQ2QsTUFBTSxDQUFDLFNBQVMsR0FBaUIsSUFBSSxDQUFDO0lBQzlDLFFBQVEsR0FBVyxJQUFJLENBQUM7SUFDeEIsTUFBTSxHQUFXLElBQUksQ0FBQztJQUN0QixRQUFRLEdBQVcsSUFBSSxDQUFDO0lBQ3hCLFFBQVEsR0FBVyxJQUFJLENBQUM7SUFDeEIsVUFBVSxHQUFXLEtBQUssQ0FBQztJQUVuQixhQUFhLENBQUMsS0FBYztRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRU8sU0FBUyxDQUFDLE1BQWU7UUFFL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsS0FBSyxFQUFDO1lBQzVELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0I7O1lBRUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsTUFBTSxLQUFLLFFBQVE7UUFDakIsSUFBSSxXQUFXLENBQUMsU0FBUyxLQUFLLElBQUk7WUFDaEMsV0FBVyxDQUFDLFNBQVMsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQzVDLE9BQU8sV0FBVyxDQUFDLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBR0Q7UUFDRSxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFLTSxRQUFRLENBQUMsTUFBaUI7UUFFL0IsSUFBSSxZQUEwQixDQUFDO1FBRS9CLElBQUksVUFBVSxHQUFXLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNuRyxJQUFJLFVBQVUsS0FBSyxDQUFDLENBQUMsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRTtZQUVoRSxJQUFJLEdBQUcsR0FBVyxNQUFNLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsR0FBRyxjQUFjLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEgsWUFBWSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsRUFBRSxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDcEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNoQyxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2hFOztZQUVDLE1BQU0sQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsMENBQTBDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBT08sWUFBWSxDQUFDLFlBQTBCO1FBQzdDLElBQUksU0FBaUIsRUFBRSxRQUFRLENBQUM7UUFDaEMsSUFBSSxTQUFTLEdBQVksSUFBSSxDQUFDO1FBQzlCLElBQUksQ0FBUyxDQUFDO1FBRWQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0MsU0FBUyxHQUFZLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFFLENBQUM7WUFDL0MsUUFBUSxHQUFZLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBRSxDQUFDO1lBRWxELFFBQVEsU0FBUyxFQUFFO2dCQUNqQixLQUFLLGNBQWMsQ0FBQyxtQkFBbUI7b0JBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO29CQUN4QyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO29CQUU3QyxNQUFNO2dCQTBCUjtvQkFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDLG9EQUFvRCxHQUFHLFNBQVMsQ0FBQyxDQUFDO29CQUM3RyxTQUFTLEdBQUcsS0FBSyxDQUFDO29CQUNsQixNQUFNO2FBQ1Q7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaXN0LCBOU3RyaW5nIH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQgeyBMb2dnZXIsIFhNTENvbnN0YW50cywgWG1sUGFyc2VyIH0gZnJvbSAnQG1hZ2ljLXhwYS91dGlscyc7XHJcbmltcG9ydCB7IENvbnN0SW50ZXJmYWNlIH0gZnJvbSAnLi4vQ29uc3RJbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDb21tYW5kcyB9IGZyb20gJ0BtYWdpYy14cGEvZ3VpJztcclxuXHJcbi8vIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBtYW5hZ2UgdGhlIHVzZXIgZGV0YWlscyBvbiB0aGUgY2xpZW50IHNpZGUuXHJcbi8vIFRoZSB1c2VyIGRldGFpbHMgYXJlIHNlbnQgZnJvbSB0aGUgc2VydmVyLlxyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgVXNlckRldGFpbHMge1xyXG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogVXNlckRldGFpbHMgID0gbnVsbDtcclxuICBVc2VyTmFtZTogc3RyaW5nID0gbnVsbDsgIC8vIHVzZXIgbmFtZSBvYnRhaW5lZCBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgVXNlcklEOiBzdHJpbmcgPSBudWxsOyAvLyB1c2VySUQgb2J0YWluZWQgZnJvbSB0aGUgc2VydmVyXHJcbiAgVXNlckluZm86IHN0cmluZyA9IG51bGw7IC8vIHVzZXIgaW5mbyBvYnRhaW5lZCBmcm9tIHRoZSBzZXJ2ZXJcclxuICBQYXNzd29yZDogc3RyaW5nID0gbnVsbDsgLy8gUGFzc3dvcmQgb2J0YWluZWQgZnJvbSBzZXJ2ZXIuXHJcbiAgSXNMb2dnZWRJbjogYm9vbGVhbj0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgc2V0SXNMb2dnZWRJbih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5Jc0xvZ2dlZEluID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXRJc0xvZ2dlZEluKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuSXNMb2dnZWRJbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VXNlcklEKHVzZXJJZCA6IHN0cmluZylcclxuICB7XHJcbiAgICB0aGlzLlVzZXJJRCA9IHVzZXJJZDtcclxuICAgIGlmICggdGhpcy5Vc2VySUQubGVuZ3RoID09IDAgfHwgdGhpcy5Vc2VySUQgPT09IE5TdHJpbmcuRW1wdHkpe1xyXG4gICAgICB0aGlzLnNldElzTG9nZ2VkSW4oZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLnNldElzTG9nZ2VkSW4odHJ1ZSk7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXQgSW5zdGFuY2UoKTogVXNlckRldGFpbHMge1xyXG4gICAgaWYgKFVzZXJEZXRhaWxzLl9pbnN0YW5jZSA9PT0gbnVsbClcclxuICAgICAgVXNlckRldGFpbHMuX2luc3RhbmNlID0gbmV3IFVzZXJEZXRhaWxzKCk7XHJcbiAgICByZXR1cm4gVXNlckRldGFpbHMuX2luc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlByaXZhdGUgQ1RPUiBhcyBwYXJ0IG9mIG1ha2luZyB0aGlzIGNsYXNzIGEgc2luZ2xldG9uLy8vIDwvc3VtbWFyeT5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuVXNlck5hbWUgPSBOU3RyaW5nLkVtcHR5O1xyXG4gICAgdGhpcy5Vc2VySW5mbyA9IE5TdHJpbmcuRW1wdHk7XHJcbiAgICB0aGlzLklzTG9nZ2VkSW4gPSBmYWxzZTtcclxuICAgIHRoaXMuc2V0VXNlcklEKE5TdHJpbmcuRW1wdHkpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBUaGlzIGZ1bmN0aW9uIGdldHMgdGhlIHhtbCB0YWcgY29udGFpbmluZyB1c2VyIGluZm8uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwdWJsaWMgZmlsbERhdGEocGFyc2VyOiBYbWxQYXJzZXIpOiB2b2lkIHtcclxuICAgIC8vbGV0IHBhcnNlcjogWG1sUGFyc2VyID0gQ2xpZW50TWFuYWdlci5JbnN0YW5jZS5SdW50aW1lQ3R4LlBhcnNlcjtcclxuICAgIGxldCB0b2tlbnNWZWN0b3I6IExpc3Q8c3RyaW5nPjtcclxuXHJcbiAgICBsZXQgZW5kQ29udGV4dDogbnVtYmVyID0gcGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKFhNTENvbnN0YW50cy5UQUdfVEVSTSwgcGFyc2VyLmdldEN1cnJJbmRleCgpKTtcclxuICAgIGlmIChlbmRDb250ZXh0ICE9PSAtMSAmJiBlbmRDb250ZXh0IDwgcGFyc2VyLmdldFhNTGRhdGEoKS5sZW5ndGgpIHtcclxuICAgICAgLy8gbGFzdCBwb3NpdGlvbiBvZiBpdHMgdGFnXHJcbiAgICAgIGxldCB0YWc6IFN0cmluZyA9IHBhcnNlci5nZXRYTUxzdWJzdHJpbmcoZW5kQ29udGV4dCk7XHJcbiAgICAgIHBhcnNlci5hZGQyQ3VyckluZGV4KHRhZy5pbmRleE9mKENvbnN0SW50ZXJmYWNlLk1HX1RBR19VU0VSX0RFVEFJTFMpICsgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX1VTRVJfREVUQUlMUy5sZW5ndGgpO1xyXG4gICAgICB0b2tlbnNWZWN0b3IgPSBYbWxQYXJzZXIuZ2V0VG9rZW5zKHBhcnNlci5nZXRYTUxzdWJzdHJpbmcoZW5kQ29udGV4dCksIFhNTENvbnN0YW50cy5YTUxfQVRUUl9ERUxJTSk7XHJcbiAgICAgIHRoaXMuaW5pdEVsZW1lbnRzKHRva2Vuc1ZlY3Rvcik7XHJcbiAgICAgIHBhcnNlci5zZXRDdXJySW5kZXgoZW5kQ29udGV4dCArIFhNTENvbnN0YW50cy5UQUdfVEVSTS5sZW5ndGgpOyAvLyB0byBkZWxldGUgXCI+XCIgdG9vXHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhcImluIFVzZXJEZXRhaWxzLmZpbGxEYXRhKCk6IG91dCBvZiBib3VuZHNcIik7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0b2tlbnNWZWN0b3JcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBpbml0RWxlbWVudHModG9rZW5zVmVjdG9yOiBMaXN0PFN0cmluZz4pOiBib29sZWFuIHtcclxuICAgIGxldCBhdHRyaWJ1dGU6IFN0cmluZywgdmFsdWVTdHI7XHJcbiAgICBsZXQgaXNTdWNjZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGxldCBqOiBudW1iZXI7XHJcblxyXG4gICAgZm9yIChqID0gMDsgaiA8IHRva2Vuc1ZlY3Rvci5sZW5ndGg7IGogKz0gMikge1xyXG4gICAgICBhdHRyaWJ1dGUgPSAoPFN0cmluZz50b2tlbnNWZWN0b3IuZ2V0X0l0ZW0oaikpO1xyXG4gICAgICB2YWx1ZVN0ciA9ICg8U3RyaW5nPnRva2Vuc1ZlY3Rvci5nZXRfSXRlbShqICsgMSkpO1xyXG5cclxuICAgICAgc3dpdGNoIChhdHRyaWJ1dGUpIHtcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX1RBR19JU19MT0dHRURfSU46XHJcbiAgICAgICAgICB0aGlzLnNldElzTG9nZ2VkSW4odmFsdWVTdHJbMF0gPT09ICcxJyk7XHJcbiAgICAgICAgICBDb21tYW5kcy5hZGRJc0xvZ2dlZEluKHRoaXMuZ2V0SXNMb2dnZWRJbigpKTtcclxuICAgICAgICAgIC8vdGhpcy5zZXRJc0xvZ2dlZEluKFhtbFBhcnNlci5nZXRCb29sZWFuKHZhbHVlU3RyKSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvLyBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX1RBR19VU0VSTkFNRTpcclxuICAgICAgICAvLyAgIHRoaXMuVXNlck5hbWUgPSB2YWx1ZVN0cjtcclxuICAgICAgICAvLyAgIGJyZWFrO1xyXG4gICAgICAgIC8vIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9VU0VSSUQ6XHJcbiAgICAgICAgLy8gICB2YWx1ZVN0ciA9IFN0clV0aWwucnRyaW0odmFsdWVTdHIpO1xyXG4gICAgICAgIC8vICAgdGhpcy5zZXRVc2VySUQodmFsdWVTdHIpO1xyXG4gICAgICAgIC8vICAgLy9DbGllbnRNYW5hZ2VyLkluc3RhbmNlLnNldFVzZXJuYW1lKHRoaXMuVXNlcklEKTtcclxuICAgICAgICAvLyAgIGJyZWFrO1xyXG4gICAgICAgIC8vIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9VU0VSSU5GTzpcclxuICAgICAgICAvLyAgIHRoaXMuVXNlckluZm8gPSB2YWx1ZVN0cjtcclxuICAgICAgICAvLyAgIGJyZWFrO1xyXG4gICAgICAgIC8vIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX1BBU1NXT1JEOlxyXG4gICAgICAgIC8vICAgdGhpcy5QYXNzd29yZCA9IHZhbHVlU3RyO1xyXG4gICAgICAgIC8vICAgbGV0IHBhc3N3b3JkRGVjb2RlZDogVWludDhBcnJheSA9IEJhc2U2NC5kZWNvZGVUb0J5dGUodGhpcy5QYXNzd29yZCk7XHJcbiAgICAgICAgLy8gICBsZXQgZW5jcnlwdGVkUGFzc3dvcmQ6IHN0cmluZyA9IEVuY29kaW5nLlVURjguR2V0U3RyaW5nKHBhc3N3b3JkRGVjb2RlZCwgMCwgcGFzc3dvcmREZWNvZGVkLmxlbmd0aCk7XHJcbiAgICAgICAgLy8gICBsZXQgZGVjcnlwdGVkUGFzc3dvcmQ6IHN0cmluZyA9IFNjcmFtYmxlci5VblNjcmFtYmxlKGVuY3J5cHRlZFBhc3N3b3JkLCAwLCBlbmNyeXB0ZWRQYXNzd29yZC5sZW5ndGggLSAxKTtcclxuICAgICAgICAvLyAgIC8vIEF0IHNlcnZlciBzaWRlIHNwYWNlcyBhcmUgYWRkZWQgYXQgdGhlIGVuZCBpZiB0aGUgbGVuZ3RoIG9mIHBhc3N3b3JkIGlzIGxlc3MgdGhhbiA0IGNoYXJhY3RlcnMuXHJcbiAgICAgICAgLy8gICAvLyBSZW1vdmUgdGhlc2UgZXh0cmEgc3BhY2VzIGJlZm9yZSBzZXR0aW5nIHRoZSBwYXNzd29yZC5cclxuICAgICAgICAvLyAgIGRlY3J5cHRlZFBhc3N3b3JkID0gU3RyVXRpbC5ydHJpbShkZWNyeXB0ZWRQYXNzd29yZCk7XHJcbiAgICAgICAgLy8gICAvLyBpZiB0aGUgcGFzc3dvcmQgaXMgZW1wdHkgc2V0IGEgcGFzc3dvcmQgY29udGFpbmluZyBvbmUgXCIgXCIsIGFzIGZvciB1c2VySWQsIHdoZXJlIGlmIG5vIHVzZXJJZFxyXG4gICAgICAgIC8vICAgLy8gdGhlbiBhIFwiIFwiIHNldCB0byB1c2VySWQuXHJcbiAgICAgICAgLy8gICBpZiAoTlN0cmluZy5Jc051bGxPckVtcHR5KGRlY3J5cHRlZFBhc3N3b3JkKSlcclxuICAgICAgICAvLyAgICAgZGVjcnlwdGVkUGFzc3dvcmQgPSBcIiBcIjtcclxuICAgICAgICAvLyAgIC8vQ2xpZW50TWFuYWdlci5JbnN0YW5jZS5zZXRQYXNzd29yZChkZWNyeXB0ZWRQYXNzd29yZCk7XHJcbiAgICAgICAgLy8gICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2dXaXRoTXNnKFwiaW4gVXNlckRldGFpbHMuaW5pdEVsZW1lbnRzKCk6IHVua25vd24gYXR0cmlidXRlOiBcIiArIGF0dHJpYnV0ZSk7XHJcbiAgICAgICAgICBpc1N1Y2Nlc3MgPSBmYWxzZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNTdWNjZXNzO1xyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -1,2 +1,2 @@
|
|
1
|
-
export {};
|
1
|
+
export {};
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSU1HRGF0YUNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3Rhc2tzL0lNR0RhdGFDb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaXN0LCBTdHJpbmdCdWlsZGVyIH0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7IElNR0RhdGFUYWJsZSwgSVRhc2ssIE1nRm9ybUJhc2UgfSBmcm9tIFwiQG1hZ2ljLXhwYS9ndWlcIjtcclxuaW1wb3J0IHsgTUdEYXRhIH0gZnJvbSBcIi4vTUdEYXRhXCI7XHJcbmltcG9ydCB7IFRhc2tCYXNlIH0gZnJvbSBcIi4vVGFza0Jhc2VcIjtcclxuaW1wb3J0IHsgSUNsaWVudENvbW1hbmQgfSBmcm9tIFwiLi4vY29tbWFuZHMvSUNsaWVudENvbW1hbmRcIjtcclxuaW1wb3J0IHsgQ29tbWFuZHNUYWJsZSB9IGZyb20gXCIuLi9Db21tYW5kc1RhYmxlXCI7XHJcbmltcG9ydCB7IEV4cHJlc3Npb24gfSBmcm9tIFwiLi4vZXhwL0V4cHJlc3Npb25cIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU1HRGF0YUNvbGxlY3Rpb24gZXh0ZW5kcyBJTUdEYXRhVGFibGUge1xyXG4gIGN1cnJNZ2RJRDogbnVtYmVyO1xyXG4gIFN0YXJ0dXBNZ0RhdGE6IE1HRGF0YTtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgTUdEYXRhIG9iamVjdCBieSBpdHMgaW5kZXhcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldE1HRGF0YShpZHg6IG51bWJlcik6IE1HRGF0YTtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGN1cnJlbnQgaWQgb2YgYSB0YXNrIGFjY29yZGluZyB0byBpdHMgb3JpZ2luYWwgaWRcclxuICAvLy8gICBpdCB3aWxsIHVzdWFsbHkgcmV0dXJuIHRoZSBzYW1lIGlkIGFzIHNlbnQgdG8gaXQsIGJ1dCBmb3Igc3ViZm9ybSBhZnRlciBlcnJvciBhbmQgcmV0cnkgaXQgd2lsbFxyXG4gIC8vLyAgIGNvbnZlcnQgdGhlIG9yaWdpbmFsIGlkIHRvIHRoZSBjdXJyZW50LlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0YXNrSWRcIj4tIG9yaWdpbmFsIHRhc2sgaWQ8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gdGhlIGN1cnJlbnQgdGFza2lkIGZvciB0aGlzIHRhc2s8L3JldHVybnM+XHJcbiAgZ2V0VGFza0lkQnlJZCh0YXNrSWQ6IHN0cmluZyk6IHN0cmluZztcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCBzaXplIG9mIE1HRGF0YSB0YWJsZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiBzaXplIG9mIHRhYmxlPC9yZXR1cm5zPlxyXG4gIGdldFNpemUoKTogbnVtYmVyO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyBNR0RhdGEgb2JqZWN0IGJ5IGl0cyBpbmRleFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0TUdEYXRhKGlkeDogbnVtYmVyKTogTUdEYXRhO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgc3RhcnQgdGhlIHRhc2tzIGl0ZXJhdG9yXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzdGFydFRhc2tzSXRlcmF0aW9uKCk6IHZvaWQ7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgdGhlIG5leHQgdGFzayB1c2luZyB0aGUgdGFza3MgaXRlcmF0b3JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldE5leHRUYXNrKCk6IElUYXNrO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIGFsbCB0b3AgbGV2ZWwgZm9ybXMgdGhhdCBleGlzdFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgR2V0VG9wTW9zdEZvcm1zKCk6IExpc3Q8TWdGb3JtQmFzZT47XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgdGhlIGN1cnJlbnQgTUdEYXRhXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IE1HRGF0YSBvYmplY3Q8L3JldHVybnM+XHJcbiAgZ2V0Q3Vyck1HRGF0YSgpOiBNR0RhdGE7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gR2V0cyB0aGUgTUdEYXRhIHRoYXQgaG9sZHMvc2hvdWxkIGhvbGQgdGhlIHN0YXJ0dXAgcHJvZ3JhbS5cclxuICAvLy8gVGhlIG1ldGhvZCB0YWtlcyBpbnRvIGNvbnNpZGVyYXRpb24gd2hldGhlciB0aGUgYXBwbGljYXRpb24gdXNlcyBNREkgb3Igbm90LlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBHZXRNR0RhdGFGb3JTdGFydHVwUHJvZ3JhbSgpOiBNR0RhdGE7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBmaW5kIGFsbCB0YXNrcyB3aGljaCB3ZXJlIHRyaWdnZXJlZCBieSBhIHNwZWNpZmljIHRhc2tcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidHJpZ2dlcmluZ1Rhc2tcIj50aGUgdGFzayB3aG8gdHJpZ2dlcmVkIGFsbCBvdGhlciB0YXNrcy48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gdmVjdG9yIGNvbnRhaW5pbmcgYWxsIHRhc2tzIHdoaWNoIHdlcmUgdHJpZ2dlcmVkIGJ5IHRoZSBwYXJhbWV0ZXIgdGFzazwvcmV0dXJucz5cclxuICBnZXRUcmlnZ2VyZWRUYXNrcyh0cmlnZ2VyaW5nVGFzazogVGFza0Jhc2UpOiBMaXN0PFRhc2tCYXNlPjtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgYXZhaWxhYmxlIGluZGV4XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRBdmFpbGFibGVJZHgoKTogbnVtYmVyO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYWRkIE1HRGF0YSBvYmplY3QgdG8gdGhlIHRhYmxlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm1nZFwiPnRoZSBNR0RhdGEgb2JqZWN0IHRvIGFkZDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpZHhcIj50aGUgaW5kZXggd2l0aGluIHRoZSB0YWJsZSBmb3IgdGhlIG5ldyBNR0RhdGE8L3BhcmFtPlxyXG4gIGFkZE1HRGF0YShtZ2Q6IE1HRGF0YSwgaWR4OiBudW1iZXIsIGlzU3RhcnR1cDogYm9vbGVhbik6IHZvaWQ7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBidWlsZCBYTUwgc3RyaW5nIG9mIHRoZSBNR0RhdGFUQUJMRSBvYmplY3QsXHJcbiAgLy8vICAgQUxMIE1HRGF0YSBpbiB0aGUgdGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIm1lc3NhZ2VcIj5hIG1lc3NhZ2UgYmVpbmcgcHJlcGFyZWQuPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJzZXJpYWxpemVUYXNrc1wiPmlmIHRydWUsIHRhc2tzIGluIHRoZSBjdXJyZW50IGV4ZWN1dGlvbiB3aWxsIGFsc28gYmUgc2VyaWFsaXplZC48L3BhcmFtPlxyXG4gIGJ1aWxkWE1MKG1lc3NhZ2U6IFN0cmluZ0J1aWxkZXIsIHNlcmlhbGl6ZVRhc2tzOiBib29sZWFuKTogdm9pZDtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHBlcmZvcm0gYW55IGRhdGEgZXJyb3IgcmVjb3ZlcnkgYWN0aW9uIG9uIGFsbCBkYXRhdmlld3NcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByb2Nlc3NSZWNvdmVyeSgpOiB2b2lkO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIEFkZCBjb21tYW5kLCBleGVjdXRlIHJlcXVlc3QgYW5kIGRvIHJlY29yZCBjeWNsZSBmb3Igc3ViZm9ybXMgdGhhdCB0aGUgc2VydmVyIHNlbnQgdGhlaXIgbmV3IGRhdGF2aWV3XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjbWRzVG9TZXJ2ZXJcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImNtZFRvU2VydmVyXCI+YWRkaXRpb25hbCBjb21tYW5kIHRvIHRoZSBTZXJ2ZXI8L3BhcmFtPlxyXG4gIGV4ZWNSZXF1ZXN0V2l0aFN1YmZvcm1SZWNvcmRDeWNsZShjbWRzVG9TZXJ2ZXI6IENvbW1hbmRzVGFibGUsIGNtZFRvU2VydmVyOiBJQ2xpZW50Q29tbWFuZCwgZXhwOiBFeHByZXNzaW9uKTogUHJvbWlzZTx2b2lkPjtcclxufVxyXG4iXX0=
|