@magic-xpa/engine 4.1100.0-dev4110.24 → 4.1100.0-dev4110.241
Sign up to get free protection for your applications and to get access to all the features.
- 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 +416 -0
- package/esm2022/src/CommandsProcessorBase.mjs +56 -0
- package/esm2022/src/CommandsProcessorManager.mjs +26 -0
- 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/{esm2020 → esm2022}/src/commands/ClientToServer/BrowserEscEventCommand.mjs +23 -23
- package/{esm2020 → esm2022}/src/commands/ClientToServer/ClientOriginatedCommand.mjs +14 -14
- package/esm2022/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs +60 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/ColumnSortEventCommand.mjs +26 -26
- package/esm2022/src/commands/ClientToServer/CommandFactory.mjs +260 -0
- package/esm2022/src/commands/ClientToServer/CommandSerializationHelper.mjs +67 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/ComputeEventCommand.mjs +23 -23
- package/{esm2020 → esm2022}/src/commands/ClientToServer/ContextTerminationEventCommand.mjs +20 -20
- package/{esm2020 → esm2022}/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs +19 -19
- 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 +37 -0
- package/esm2022/src/commands/ClientToServer/EventCommand.mjs +40 -0
- package/esm2022/src/commands/ClientToServer/ExecOperCommand.mjs +67 -0
- package/esm2022/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +22 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs +10 -10
- package/{esm2020 → esm2022}/src/commands/ClientToServer/ICommandTaskTag.mjs +1 -1
- package/{esm2020 → esm2022}/src/commands/ClientToServer/IndexChangeEventCommand.mjs +21 -21
- package/esm2022/src/commands/ClientToServer/IniputForceWriteCommand.mjs +23 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs +23 -23
- package/{esm2020 → esm2022}/src/commands/ClientToServer/QueryCommand.mjs +20 -20
- package/esm2022/src/commands/ClientToServer/RecomputeCommand.mjs +27 -0
- package/esm2022/src/commands/ClientToServer/RefreshEventCommand.mjs +27 -0
- package/esm2022/src/commands/ClientToServer/RefreshScreenEventCommand.mjs +24 -0
- package/esm2022/src/commands/ClientToServer/RollbackEventCommand.mjs +40 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/SelectProgramCommand.mjs +14 -14
- package/{esm2020 → esm2022}/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs +9 -9
- package/{esm2020 → esm2022}/src/commands/ClientToServer/SubformOpenEventCommand.mjs +21 -21
- package/esm2022/src/commands/ClientToServer/SubformRefreshEventCommand.mjs +24 -0
- package/esm2022/src/commands/ClientToServer/TransactionCommand.mjs +30 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/UnloadCommand.mjs +14 -14
- 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 +1 -1
- package/esm2022/src/commands/ServerToClient/AbortCommand.mjs +65 -0
- package/{esm2020 → esm2022}/src/commands/ServerToClient/AddLocateCommand.mjs +21 -21
- package/esm2022/src/commands/ServerToClient/AddRangeCommand.mjs +62 -0
- package/esm2022/src/commands/ServerToClient/AddSortCommand.mjs +33 -0
- 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/esm2022/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs +132 -0
- 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/esm2022/src/data/Key.mjs +88 -0
- package/esm2022/src/data/Record.mjs +866 -0
- package/{esm2020 → esm2022}/src/data/RecordOutOfDataViewException.mjs +15 -15
- package/esm2022/src/data/RecordsTable.mjs +267 -0
- package/esm2022/src/data/TaskTransactionManager.mjs +103 -0
- package/esm2022/src/data/XMLBasedDcValuesBuilder.mjs +74 -0
- 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/esm2022/src/env/MirrorString.mjs +65 -0
- 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/esm2022/src/exp/GlobalParamsTable.mjs +85 -0
- 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/esm2022/src/http/client/HttpClientBase.mjs +132 -0
- 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/esm2022/src/remote/AddUserLocateRemoteDataViewCommand.mjs +18 -0
- package/esm2022/src/remote/AddUserRangeRemoteDataViewCommand.mjs +18 -0
- package/esm2022/src/remote/AddUserSortRemoteDataViewCommand.mjs +18 -0
- package/esm2022/src/remote/RemoteCommandsProcessor.mjs +880 -0
- package/esm2022/src/remote/RemoteControlItemsRefreshCommand.mjs +25 -0
- package/esm2022/src/remote/RemoteDataViewCommandBase.mjs +24 -0
- package/esm2022/src/remote/RemoteDataViewCommandFactory.mjs +61 -0
- 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/esm2022/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +17 -0
- package/{esm2020 → esm2022}/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +12 -12
- package/esm2022/src/remote/ResetUserSortRemoteDataviewCommand.mjs +16 -0
- package/esm2022/src/remote/ServerError.mjs +40 -0
- package/esm2022/src/remote/SetTransactionStateRemoteDataViewCommand.mjs +20 -0
- 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/{esm2020 → esm2022}/src/rt/DataviewHeaderBase.mjs +98 -96
- package/{esm2020 → esm2022}/src/rt/DataviewHeaderFactory.mjs +6 -6
- package/esm2022/src/rt/DataviewHeaders.mjs +53 -0
- package/esm2022/src/rt/DataviewHeadersSaxHandler.mjs +38 -0
- package/esm2022/src/rt/ExecutionStack.mjs +94 -0
- package/{esm2020 → esm2022}/src/rt/ExecutionStackEntry.mjs +17 -17
- package/esm2022/src/rt/HandlersTable.mjs +96 -0
- 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/esm2022/src/rt/RecomputeTable.mjs +63 -0
- package/esm2022/src/rt/RemoteDataviewHeader.mjs +108 -0
- 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/esm2022/src/tasks/RemoteTaskService.mjs +45 -0
- package/esm2022/src/tasks/Task.mjs +2499 -0
- package/esm2022/src/tasks/TaskBase.mjs +83 -0
- package/esm2022/src/tasks/TaskServiceBase.mjs +25 -0
- package/esm2022/src/tasks/TasksTable.mjs +80 -0
- package/esm2022/src/tasks/sort/Sort.mjs +5 -0
- package/esm2022/src/tasks/sort/SortCollection.mjs +67 -0
- package/esm2022/src/util/ConstUtils.mjs +14 -0
- package/esm2022/src/util/FlowMonitorQueue.mjs +451 -0
- package/esm2022/src/util/HeapSort.mjs +70 -0
- 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/esm2022/src/util/cookie.service.mjs +92 -0
- package/{fesm2020 → fesm2022}/magic-xpa-engine.mjs +29797 -29693
- 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 +8 -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 +10 -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 +8 -8
- package/src/commands/ClientToServer/ContextTerminationEventCommand.d.ts +7 -7
- package/src/commands/ClientToServer/ContextTimeoutResetCommand.d.ts +7 -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 +15 -15
- package/src/commands/ClientToServer/EventCommand.d.ts +15 -15
- package/src/commands/ClientToServer/ExecOperCommand.d.ts +23 -23
- package/src/commands/ClientToServer/FetchDataControlValuesEventCommand.d.ts +8 -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 +8 -8
- package/src/commands/ClientToServer/IniputForceWriteCommand.d.ts +10 -10
- package/src/commands/ClientToServer/NonReversibleExitEventCommand.d.ts +8 -8
- package/src/commands/ClientToServer/QueryCommand.d.ts +8 -8
- package/src/commands/ClientToServer/RecomputeCommand.d.ts +11 -11
- package/src/commands/ClientToServer/RefreshEventCommand.d.ts +12 -12
- package/src/commands/ClientToServer/RefreshScreenEventCommand.d.ts +10 -10
- package/src/commands/ClientToServer/RollbackEventCommand.d.ts +14 -14
- package/src/commands/ClientToServer/SelectProgramCommand.d.ts +6 -6
- package/src/commands/ClientToServer/SetTransactionStateDataviewCommand.d.ts +5 -5
- package/src/commands/ClientToServer/SubformOpenEventCommand.d.ts +8 -8
- package/src/commands/ClientToServer/SubformRefreshEventCommand.d.ts +9 -9
- package/src/commands/ClientToServer/TransactionCommand.d.ts +12 -12
- package/src/commands/ClientToServer/UnloadCommand.d.ts +7 -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 +3 -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 +156 -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/CommandsProcessorManager.mjs +0 -26
- 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/ClientOriginatedCommandSerializer.mjs +0 -60
- package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +0 -260
- package/esm2020/src/commands/ClientToServer/CommandSerializationHelper.mjs +0 -69
- package/esm2020/src/commands/ClientToServer/DataViewOutputCommand.mjs +0 -13
- package/esm2020/src/commands/ClientToServer/EvaluateCommand.mjs +0 -36
- package/esm2020/src/commands/ClientToServer/EventCommand.mjs +0 -40
- package/esm2020/src/commands/ClientToServer/ExecOperCommand.mjs +0 -67
- package/esm2020/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +0 -22
- 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/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/AddRangeCommand.mjs +0 -62
- package/esm2020/src/commands/ServerToClient/AddSortCommand.mjs +0 -33
- 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/commands/ServerToClient/XMLBasedCommandBuilder.mjs +0 -132
- 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/Key.mjs +0 -88
- package/esm2020/src/data/Record.mjs +0 -846
- package/esm2020/src/data/RecordsTable.mjs +0 -267
- package/esm2020/src/data/TaskTransactionManager.mjs +0 -103
- package/esm2020/src/data/XMLBasedDcValuesBuilder.mjs +0 -74
- 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/env/MirrorString.mjs +0 -65
- 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 -4212
- package/esm2020/src/exp/ExpressionLocalJpn.mjs +0 -314
- package/esm2020/src/exp/GlobalParamsTable.mjs +0 -85
- 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/HttpClientBase.mjs +0 -132
- 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/AddUserLocateRemoteDataViewCommand.mjs +0 -18
- package/esm2020/src/remote/AddUserRangeRemoteDataViewCommand.mjs +0 -18
- package/esm2020/src/remote/AddUserSortRemoteDataViewCommand.mjs +0 -18
- package/esm2020/src/remote/RemoteCommandsProcessor.mjs +0 -880
- package/esm2020/src/remote/RemoteControlItemsRefreshCommand.mjs +0 -25
- package/esm2020/src/remote/RemoteDataViewCommandBase.mjs +0 -24
- package/esm2020/src/remote/RemoteDataViewCommandFactory.mjs +0 -61
- package/esm2020/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +0 -17
- package/esm2020/src/remote/ResetUserSortRemoteDataviewCommand.mjs +0 -16
- package/esm2020/src/remote/ServerError.mjs +0 -40
- package/esm2020/src/remote/SetTransactionStateRemoteDataViewCommand.mjs +0 -20
- 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/DataviewHeaders.mjs +0 -53
- package/esm2020/src/rt/DataviewHeadersSaxHandler.mjs +0 -38
- package/esm2020/src/rt/ExecutionStack.mjs +0 -94
- package/esm2020/src/rt/HandlersTable.mjs +0 -96
- 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/RecomputeTable.mjs +0 -63
- package/esm2020/src/rt/RemoteDataviewHeader.mjs +0 -108
- 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/RemoteTaskService.mjs +0 -45
- package/esm2020/src/tasks/Task.mjs +0 -2495
- package/esm2020/src/tasks/TaskBase.mjs +0 -87
- package/esm2020/src/tasks/TaskServiceBase.mjs +0 -25
- package/esm2020/src/tasks/TasksTable.mjs +0 -80
- package/esm2020/src/tasks/sort/Sort.mjs +0 -7
- package/esm2020/src/tasks/sort/SortCollection.mjs +0 -67
- package/esm2020/src/util/ConstUtils.mjs +0 -14
- package/esm2020/src/util/FlowMonitorQueue.mjs +0 -453
- package/esm2020/src/util/HeapSort.mjs +0 -70
- 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/esm2020/src/util/cookie.service.mjs +0 -92
- package/fesm2015/magic-xpa-engine.mjs +0 -30835
- package/fesm2015/magic-xpa-engine.mjs.map +0 -1
- package/fesm2020/magic-xpa-engine.mjs.map +0 -1
@@ -1,7 +1,7 @@
|
|
1
|
-
export var EventsAllowedType;
|
2
|
-
(function (EventsAllowedType) {
|
3
|
-
EventsAllowedType[EventsAllowedType["NONE"] = 0] = "NONE";
|
4
|
-
EventsAllowedType[EventsAllowedType["NON_INTERACTIVE"] = 1] = "NON_INTERACTIVE";
|
5
|
-
EventsAllowedType[EventsAllowedType["ALL"] = 2] = "ALL";
|
6
|
-
})(EventsAllowedType || (EventsAllowedType = {}));
|
1
|
+
export var EventsAllowedType;
|
2
|
+
(function (EventsAllowedType) {
|
3
|
+
EventsAllowedType[EventsAllowedType["NONE"] = 0] = "NONE";
|
4
|
+
EventsAllowedType[EventsAllowedType["NON_INTERACTIVE"] = 1] = "NON_INTERACTIVE";
|
5
|
+
EventsAllowedType[EventsAllowedType["ALL"] = 2] = "ALL";
|
6
|
+
})(EventsAllowedType || (EventsAllowedType = {}));
|
7
7
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUV2ZW50c01hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2V2ZW50L0lFdmVudHNNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdCQSxNQUFNLENBQU4sSUFBWSxpQkFJWDtBQUpELFdBQVksaUJBQWlCO0lBQzNCLHlEQUFJLENBQUE7SUFDSiwrRUFBZSxDQUFBO0lBQ2YsdURBQUcsQ0FBQTtBQUNMLENBQUMsRUFKVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBSTVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcHBsaWNhdGlvbkV4Y2VwdGlvbiwgUmVmUGFyYW19IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge0d1aVRhc2tCYXNlLCBJR3VpRXZlbnRzTWFuYWdlciwgSVRhc2ssIEtleWJvYXJkSXRlbSwgTWdDb250cm9sQmFzZX0gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcbmltcG9ydCB7UnVuVGltZUV2ZW50fSBmcm9tIFwiLi9SdW5UaW1lRXZlbnRcIjtcclxuaW1wb3J0IHtFeGVjdXRpb25TdGFja0VudHJ5fSBmcm9tIFwiLi4vcnQvRXhlY3V0aW9uU3RhY2tFbnRyeVwiO1xyXG5pbXBvcnQge0V4ZWN1dGlvblN0YWNrfSBmcm9tIFwiLi4vcnQvRXhlY3V0aW9uU3RhY2tcIjtcclxuaW1wb3J0IHtDb21wTWFpblByZ1RhYmxlfSBmcm9tIFwiLi4vcnQvQ29tcE1haW5QcmdUYWJsZVwiO1xyXG5pbXBvcnQge0ZpZWxkfSBmcm9tIFwiLi4vZGF0YS9GaWVsZFwiO1xyXG5pbXBvcnQge1Rhc2t9IGZyb20gXCIuLi90YXNrcy9UYXNrXCI7XHJcbmltcG9ydCB7TWdDb250cm9sfSBmcm9tIFwiLi4vZ3VpL01nQ29udHJvbFwiO1xyXG5pbXBvcnQge0V2ZW50U3ViVHlwZX0gZnJvbSBcIi4uL2VudW1zXCI7XHJcbmltcG9ydCB7SGFuZGxlcnNUYWJsZX0gZnJvbSBcIi4uL3J0L0hhbmRsZXJzVGFibGVcIjtcclxuaW1wb3J0IHtNR0RhdGF9IGZyb20gXCIuLi90YXNrcy9NR0RhdGFcIjtcclxuaW1wb3J0IHtUYXNrQmFzZX0gZnJvbSBcIi4uL3Rhc2tzL1Rhc2tCYXNlXCI7XHJcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcy9pbnRlcm5hbC9TdWJqZWN0JztcclxuaW1wb3J0IHsgQ2xlYXJFdmVudHNPblN0b3BFeGVjdXRpb24gfSBmcm9tICcuLi9BY2Nlc3NIZWxwZXInO1xyXG5cclxuZXhwb3J0IGVudW0gRXZlbnRzQWxsb3dlZFR5cGUge1xyXG4gIE5PTkUsXHJcbiAgTk9OX0lOVEVSQUNUSVZFLFxyXG4gIEFMTFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElFdmVudHNNYW5hZ2VyIGV4dGVuZHMgSUd1aUV2ZW50c01hbmFnZXIge1xyXG5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRhc2tcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwia2JJdG1cIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gdGhlIGxhc3QgZW5hYmxlZCBhY3Rpb24gZm9yIHRoZSBzcGVjaWZpYyBrZXkgKGluIGtiSXRlbSk8L3JldHVybnM+XHJcbiAgLy8vIDxjaGVja0FjY2Vzc0tleUluTWVudXM6PiAgaWYgdG8gY2hlY2sgdGhlIGtleWJvYXJkIGluIHRoZSBtZW51IDwvY2hlY2tBY2Nlc3NLZXlJbk1lbnVzOj5cclxuICBnZXRNYXRjaGluZ0FjdGlvbiggIGtiSXRtOiBLZXlib2FyZEl0ZW0pOiBudW1iZXI7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgXCJpZ25vcmUgdW5rbm93biBhYm9ydFwiIGZsYWdcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGlnbm9yZVVua25vd25BYm9ydCgpOiBib29sZWFuO1xyXG5cclxuICBnZXRMYXN0UnRFdmVudCgpOiBSdW5UaW1lRXZlbnQ7XHJcblxyXG4gIGdldE5leHRPcGVySWR4KG9wZXI6IGFueSwgY2xlYXJXaGVuRm91bmQ6IGJvb2xlYW4pOiBudW1iZXI7XHJcblxyXG4gIHB1c2hFeGVjU3RhY2sodGFza0lkOiBzdHJpbmcsIGhhbmRsZXJJZDogc3RyaW5nLCBvcGVySWR4OiBudW1iZXIpOiB2b2lkO1xyXG5cclxuICBwZXJmb3JtU3ViZm9ybUNsb3NlIChzdWJmb3JtQ3RybDogTWdDb250cm9sKTogUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgaGFuZGxlRXZlbnQocnRFdnQ6IGFueSwgcmV0dXJuZWRGcm9tU2VydmVyOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgcG9wRXhlY1N0YWNrKCk6IEV4ZWN1dGlvblN0YWNrRW50cnk7XHJcblxyXG4gIGFkZFRvVGFpbChydEV2dDogUnVuVGltZUV2ZW50KTogdm9pZDtcclxuXHJcbiAgZ2V0RXhlY1N0YWNrKCk6IEV4ZWN1dGlvblN0YWNrO1xyXG5cclxuICBnZXRDb21wTWFpblByZ1RhYigpOiBDb21wTWFpblByZ1RhYmxlO1xyXG5cclxuICBoYW5kbGVJbnRlcm5hbEV2ZW50V2l0aFRhc2soaXRhc2s6IElUYXNrLCBldmVudENvZGU6IG51bWJlcik6IFByb21pc2U8dm9pZD47XHJcblxyXG4gIGdldEN1cnJGaWVsZCgpOiBGaWVsZDtcclxuXHJcbiAgZ2V0Q3VyclRhc2soKTogVGFzaztcclxuXHJcbiAgcHVzaE5ld0V4ZWNTdGFja3MoKTogdm9pZDtcclxuXHJcbiAgcG9wTmV3RXhlY1N0YWNrcygpOiB2b2lkO1xyXG5cclxuICBHZXRTdG9wRXhlY3V0aW9uRmxhZygpOiBib29sZWFuO1xyXG5cclxuICBnZXRDdXJyQ3RybCgpOiBNZ0NvbnRyb2w7XHJcblxyXG4gIHNldFN0b3BFeGVjdXRpb24oc3RvcDogYm9vbGVhbik6IHZvaWQ7XHJcblxyXG4gIHNldFN0b3BFeGVjdXRpb24oc3RvcDogYm9vbGVhbiwgY2xlYXJFdmVudHNPblN0b3BFeGVjdXRpb246IENsZWFyRXZlbnRzT25TdG9wRXhlY3V0aW9uKTogdm9pZDtcclxuXHJcbiAgaGFuZGxlSW50ZXJuYWxFdmVudFdpdGhUYXNrQW5kU3ViZm9ybVJlZnJlc2goaXRhc2s6IElUYXNrLCBldmVudENvZGU6IG51bWJlciwgc3ViZm9ybVJlZnJlc2g6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+O1xyXG5cclxuICByZXZlcnNlU2VydmVyRXhlY1N0YWNrKCk6IHZvaWQ7XHJcblxyXG4gIHB1c2hTZXJ2ZXJFeGVjU3RhY2sodGFza0lkOiBzdHJpbmcsIGhhbmRsZXJJZDogc3RyaW5nLCBvcGVySWR4OiBudW1iZXIpOiB2b2lkO1xyXG5cclxuICBpc0ZvcmNlRXhpdFByZVJlY29yZFVwZGF0ZSh0YXNrOiBHdWlUYXNrQmFzZSk6IGJvb2xlYW47XHJcblxyXG4gIGhhbmRsZUludGVybmFsRXZlbnRXaXRoVGFza0FuZEV2ZW50U3VidHlwZSh0YXNrOiBHdWlUYXNrQmFzZSwgZXZlbnRDb2RlOiBudW1iZXIsIGV2ZW50U3ViVHlwZTogRXZlbnRTdWJUeXBlKTogUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgaGFuZGxlSW50ZXJuYWxFdmVudFdpdGhNZ0NvbnRyb2xCYXNlKGN0cmw6IE1nQ29udHJvbEJhc2UsIGV2ZW50Q29kZTogbnVtYmVyKTogUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgRG9UYXNrTGV2ZWxSZWNvcmRTdWZmaXgodGFzazogVGFza0Jhc2UsIHJlZkRvU3VmZml4OiBSZWZQYXJhbTxib29sZWFuPik6IFByb21pc2U8Ym9vbGVhbj4gO1xyXG5cclxuICBIYW5kbGVOb25QYXJrYWJsZUNvbnRyb2xzKGl0YXNrOiBJVGFzayk6IFByb21pc2U8dm9pZD47XHJcblxyXG4gIEhhbmRsZVBhcmthYmlsaXR5T25Sb3dDaGFuZ2UoaXRhc2s6IElUYXNrKTogUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgRG9UYXNrTGV2ZWxSZWNvcmRQcmVmaXgodGFzazogR3VpVGFza0Jhc2UgKTogUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgZ2V0UHJvY2Vzc2luZ1RvcE1vc3RFbmRUYXNrKCk6IGJvb2xlYW47XHJcblxyXG4gIGhhbmRsZU5vblJldmVyc2libGVFdmVudCh0YXNrOiBHdWlUYXNrQmFzZSwgZXZlbnRDb2RlOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+O1xyXG5cclxuICBoYW5kbGVFdmVudHMoYmFzZU1nRGF0YTogTUdEYXRhLCBldmVudHNUb0hhbmRsZUNudDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgaGFuZGxlRXZlbnRzKGhhbmRsZXJzVGFiOiBIYW5kbGVyc1RhYmxlLCBydEV2dDogUnVuVGltZUV2ZW50KTogUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgaGFuZGxlRXZlbnRzKGJhc2VNZ0RhdGFPckhhbmRsZXJzVGFiOiBhbnksIGV2ZW50c1RvSGFuZGxlQ250T3JSdEV2dDogYW55KTogUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgc2V0RXZlbnRTY29wZVRyYW5zKCk6IHZvaWQ7XHJcblxyXG4gIGlzRXZlbnRTY29wZVRyYW5zKCk6IGJvb2xlYW47XHJcblxyXG4gIGNsZWFyRXZlbnRTY29wZSgpOiB2b2lkO1xyXG5cclxuICBhZGRJbnRlcm5hbEV2ZW50V2l0aEl0YXNrQW5kQ29kZShpdGFzazogSVRhc2ssIGNvZGU6IG51bWJlcik6IHZvaWQ7XHJcblxyXG4gIHNldFByb2Nlc3NpbmdUb3BNb3N0RW5kVGFzayhpblByb2Nlc3NpbmdUb3BNb3N0RW5kVGFzazogYm9vbGVhbik6IHZvaWQ7XHJcblxyXG4gIE5vbkludGVyYWN0aXZlRXZlbnRzTG9vcChtZ0RhdGE6IE1HRGF0YSwgdGFza0Jhc2U6IEd1aVRhc2tCYXNlKTogUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgRXZlbnRzTG9vcChtZ0RhdGE6IE1HRGF0YSk6IFByb21pc2U8dm9pZD47XHJcblxyXG4gIHNldElnbm9yZVVua25vd25BYm9ydCh2YWw6IGJvb2xlYW4pOiB2b2lkO1xyXG5cclxuICBzZXRDb21wTWFpblByZ1RhYihjb21wTWFpblByZ1RhYmxlOiBDb21wTWFpblByZ1RhYmxlKTogdm9pZDtcclxuXHJcbiAgUHJvY2Vzc0Fib3J0aW5nRXJyb3IoZXg6IEFwcGxpY2F0aW9uRXhjZXB0aW9uKTogUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgZ2V0QWxsb3dFdmVudHMoKTogRXZlbnRzQWxsb3dlZFR5cGU7XHJcblxyXG4gIHNldEFsbG93RXZlbnRzKEFsbG93RXZlbnRzOiBFdmVudHNBbGxvd2VkVHlwZSk6IHZvaWQ7XHJcblxyXG4gIHNldE5vbkludGVyYWN0aXZlQWxsb3dFdmVudHMoQWxsb3dFdmVudHM6IGJvb2xlYW4pOiB2b2lkO1xyXG5cclxuICBnZXRQZW5kaW5nR3VpRXZlbnQoKTogYW55O1xyXG4gIHNldFBlbmRpbmdHdWlFdmVudChndWlFdmVudDogYW55ICk6IHZvaWQ7XHJcbiAgY2hlY2tBbmRTYXZlUm91dGVFdmVudElmQ3R4UmVtb3ZlZEZyb21TcnZyIChydEV2ZW50OiBhbnkpOiB2b2lkO1xyXG4gIENoZWNrQW5kU2hvd1NwaW5uZXIoc2hvdzogYm9vbGVhbik6IFByb21pc2U8dm9pZD47XHJcblxyXG4gIFNwaW5uZXJTdG9wcGVkIDogU3ViamVjdDxudW1iZXI+O1xyXG5cclxuICBnZXRJc0luVmlld1JlZnJlc2goKTogYm9vbGVhbjtcclxuICBzZXRJc0luVmlld1JlZnJlc2goaW5WaWV3UmVmcmVzaDogYm9vbGVhbik6IHZvaWQ7XHJcbn1cclxuIl19
|
@@ -0,0 +1,399 @@
|
|
1
|
+
import { Char, Int32, List, NString } from "@magic-xpa/mscorelib";
|
2
|
+
import { ForceExit, InternalInterface, Priority, XMLConstants, XmlParser } from "@magic-xpa/utils";
|
3
|
+
import { GuiFieldBase, MgControlBase, Modifiers, PropInterface, } from "@magic-xpa/gui";
|
4
|
+
import { EventSubType } from "../enums";
|
5
|
+
import { Event } from "./Event";
|
6
|
+
import { ConstInterface } from "../ConstInterface";
|
7
|
+
import { ArgumentsList } from "../rt/ArgumentsList";
|
8
|
+
import { TaskBase } from "../tasks/TaskBase";
|
9
|
+
import { RunTimeEventBase } from "./RunTimeEventBase";
|
10
|
+
import { AccessHelper } from "../AccessHelper";
|
11
|
+
export class RunTimeEvent extends RunTimeEventBase {
|
12
|
+
_controlsList = null;
|
13
|
+
_direction = 0;
|
14
|
+
_displayLine = Int32.MinValue;
|
15
|
+
_eventSubType = EventSubType.Normal;
|
16
|
+
_actEnableList = null;
|
17
|
+
_argList = null;
|
18
|
+
_ctrl = null;
|
19
|
+
_dotNetObject = null;
|
20
|
+
_eventFld = null;
|
21
|
+
_fromServer = false;
|
22
|
+
_guiTriggeredEvent = false;
|
23
|
+
_immediate = false;
|
24
|
+
_isIdleTimer = false;
|
25
|
+
_isRealRefresh = true;
|
26
|
+
_mgdId = 0;
|
27
|
+
_routeParams = null;
|
28
|
+
_mprgCreator = null;
|
29
|
+
_priority = Priority.HIGH;
|
30
|
+
_produceClick = false;
|
31
|
+
_reversibleExit = true;
|
32
|
+
_selectionEnd = 0;
|
33
|
+
_selectionStart = 0;
|
34
|
+
_sendAll = false;
|
35
|
+
_task = null;
|
36
|
+
_taskTag = null;
|
37
|
+
_val = null;
|
38
|
+
_shouldHandleZoom = false;
|
39
|
+
set ShouldHandleZoom(value) {
|
40
|
+
this._shouldHandleZoom = value;
|
41
|
+
}
|
42
|
+
get ShouldHandleZoom() {
|
43
|
+
return this._shouldHandleZoom;
|
44
|
+
}
|
45
|
+
set Control(value) {
|
46
|
+
this._ctrl = value;
|
47
|
+
}
|
48
|
+
set DisplayLine(value) {
|
49
|
+
this._displayLine = value;
|
50
|
+
}
|
51
|
+
get Control() {
|
52
|
+
return this._ctrl;
|
53
|
+
}
|
54
|
+
IgnoreSpecifiedControl = false;
|
55
|
+
LastFocusedVal = null;
|
56
|
+
get ControlsList() {
|
57
|
+
return this._controlsList;
|
58
|
+
}
|
59
|
+
get Direction() {
|
60
|
+
return this._direction;
|
61
|
+
}
|
62
|
+
constructor(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt, ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask, ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame, yOrCtlIdx, width, height) {
|
63
|
+
super();
|
64
|
+
if (arguments.length === 1 && (taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt === null || taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof TaskBase))
|
65
|
+
this.constructor_5(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt);
|
66
|
+
else if (arguments.length === 2 && (taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt === null || taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof TaskBase) && (ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask === null || ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask instanceof MgControlBase))
|
67
|
+
this.constructor_6(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt, ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask);
|
68
|
+
else if (arguments.length === 1 && (taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt === null || taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof MgControlBase))
|
69
|
+
this.constructor_7(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt);
|
70
|
+
else if (arguments.length === 2 && (taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt === null || taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof MgControlBase) && (ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask === null || ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask.constructor === Boolean))
|
71
|
+
this.constructor_8(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt, ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask);
|
72
|
+
else if (arguments.length === 3 && (taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt === null || taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof MgControlBase) && (ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask === null || ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask.constructor === Boolean) && (ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame === null || ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame.constructor === Boolean))
|
73
|
+
this.constructor_9(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt, ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask, ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame);
|
74
|
+
else if (arguments.length === 2 && (taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt === null || taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof TaskBase) && (ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask === null || ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask.constructor === Boolean))
|
75
|
+
this.constructor_10(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt, ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask);
|
76
|
+
else if (arguments.length === 1 && (taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt === null || taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof GuiFieldBase))
|
77
|
+
this.constructor_11(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt);
|
78
|
+
else if (arguments.length === 2 && (taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt === null || taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof MgControlBase) && (ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask === null || ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask.constructor === Number))
|
79
|
+
this.constructor_12(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt, ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask);
|
80
|
+
else if (arguments.length === 3 && (taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt === null || taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof MgControlBase) && (ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask === null || ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask.constructor === Number) && (ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame === null || ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame.constructor === Boolean))
|
81
|
+
this.constructor_13(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt, ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask, ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame);
|
82
|
+
else if (arguments.length === 3 && (taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt === null || taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof MgControlBase) && (ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask === null || ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask instanceof List) && (ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame === null || ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame.constructor === Boolean))
|
83
|
+
this.constructor_14(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt, ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask, ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame);
|
84
|
+
else if (arguments.length === 3 && (taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt === null || taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof MgControlBase) && (ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask === null || ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask.constructor === Number) && (ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame === null || ignoreSpecifiedControlOrGuiTriggeredEventOrLineOrXOrControlOrActivatedFromMDIFrame.constructor === Number))
|
85
|
+
this.constructor_15(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt, ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask);
|
86
|
+
else if (arguments.length === 6)
|
87
|
+
this.constructor_16(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt);
|
88
|
+
else if (arguments.length === 2 && (taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt === null || taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof Event) && (ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask === null || ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask instanceof RunTimeEvent)) {
|
89
|
+
super.constructor_1(taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt);
|
90
|
+
this.constructor_17(ctrlRefOrGuiTriggeredEventOrLineOrControlsListOrDirectionOrColumnHeaderOrRtEvtOrCurrentTask);
|
91
|
+
}
|
92
|
+
else if (arguments.length === 1 && taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt instanceof RunTimeEvent)
|
93
|
+
Object.assign(this, taskRefOrCtrlRefOrTaskrefOrFldRefOrEvt);
|
94
|
+
}
|
95
|
+
constructor_5(taskRef) {
|
96
|
+
this.init(taskRef);
|
97
|
+
}
|
98
|
+
constructor_6(taskRef, ctrlRef) {
|
99
|
+
this.constructor_5((ctrlRef !== null) ? ctrlRef.getForm().getTask() : taskRef);
|
100
|
+
this.Control = ctrlRef;
|
101
|
+
}
|
102
|
+
constructor_7(ctrlRef) {
|
103
|
+
this.constructor_6(null, ctrlRef);
|
104
|
+
if (ctrlRef !== null && super.getType() === Char.MinValue) {
|
105
|
+
let prop = ctrlRef.GetComputedProperty(PropInterface.PROP_TYPE_TRIGGER);
|
106
|
+
if (prop !== null) {
|
107
|
+
let xmlParser = new XmlParser(prop.GetComputedValue());
|
108
|
+
super.fillData(xmlParser, ctrlRef.getForm().getTask());
|
109
|
+
}
|
110
|
+
}
|
111
|
+
}
|
112
|
+
constructor_8(ctrlRef, guiTriggeredEvent) {
|
113
|
+
this.constructor_7(ctrlRef);
|
114
|
+
this._guiTriggeredEvent = guiTriggeredEvent;
|
115
|
+
if (guiTriggeredEvent) {
|
116
|
+
this._priority = Priority.LOW;
|
117
|
+
}
|
118
|
+
}
|
119
|
+
constructor_9(ctrlRef, guiTriggeredEvent, ignoreSpecifiedControl) {
|
120
|
+
this.constructor_8(ctrlRef, guiTriggeredEvent);
|
121
|
+
this.IgnoreSpecifiedControl = ignoreSpecifiedControl;
|
122
|
+
}
|
123
|
+
constructor_10(taskref, guiTriggeredEvent) {
|
124
|
+
this.constructor_5(taskref);
|
125
|
+
this._guiTriggeredEvent = guiTriggeredEvent;
|
126
|
+
if (guiTriggeredEvent) {
|
127
|
+
this._priority = Priority.LOW;
|
128
|
+
}
|
129
|
+
}
|
130
|
+
constructor_11(fldRef) {
|
131
|
+
this._eventFld = fldRef;
|
132
|
+
this.init((fldRef !== null) ? fldRef.getTask() : null);
|
133
|
+
}
|
134
|
+
constructor_12(ctrlRef, line) {
|
135
|
+
this.constructor_7(ctrlRef);
|
136
|
+
this._displayLine = line;
|
137
|
+
}
|
138
|
+
constructor_13(ctrlRef, line, guiTriggeredEvent) {
|
139
|
+
this.constructor_8(ctrlRef, guiTriggeredEvent);
|
140
|
+
this._displayLine = line;
|
141
|
+
}
|
142
|
+
constructor_14(ctrlRef, controlsList, guiTriggeredEvent) {
|
143
|
+
this.constructor_8(ctrlRef, guiTriggeredEvent);
|
144
|
+
this._controlsList = controlsList;
|
145
|
+
}
|
146
|
+
constructor_15(ctrlRef, direction) {
|
147
|
+
this.constructor_8(ctrlRef, true);
|
148
|
+
this._direction = direction;
|
149
|
+
}
|
150
|
+
constructor_16(ctrlRef) {
|
151
|
+
this.constructor_8(ctrlRef, true);
|
152
|
+
}
|
153
|
+
constructor_17(rtEvt) {
|
154
|
+
this._taskTag = rtEvt._taskTag;
|
155
|
+
this._task = rtEvt._task;
|
156
|
+
this.Control = rtEvt.Control;
|
157
|
+
this._eventFld = rtEvt._eventFld;
|
158
|
+
this._mgdId = rtEvt._mgdId;
|
159
|
+
this._displayLine = rtEvt._displayLine;
|
160
|
+
this._reversibleExit = rtEvt._reversibleExit;
|
161
|
+
this._argList = rtEvt._argList;
|
162
|
+
this._immediate = rtEvt._immediate;
|
163
|
+
this._mprgCreator = rtEvt._mprgCreator;
|
164
|
+
this._priority = rtEvt._priority;
|
165
|
+
this._guiTriggeredEvent = rtEvt._guiTriggeredEvent;
|
166
|
+
this._isIdleTimer = rtEvt._isIdleTimer;
|
167
|
+
this._val = rtEvt._val;
|
168
|
+
this._selectionStart = rtEvt._selectionStart;
|
169
|
+
this._selectionEnd = rtEvt._selectionEnd;
|
170
|
+
this._controlsList = rtEvt._controlsList;
|
171
|
+
this._direction = rtEvt._direction;
|
172
|
+
this._dotNetObject = rtEvt._dotNetObject;
|
173
|
+
this.LastFocusedVal = rtEvt.LastFocusedVal;
|
174
|
+
this._routeParams = rtEvt._routeParams;
|
175
|
+
}
|
176
|
+
CompareTo(obj) {
|
177
|
+
let otherTimeEvent = obj;
|
178
|
+
let otherPriority = otherTimeEvent._priority;
|
179
|
+
let result = otherPriority - this._priority;
|
180
|
+
if (result === 0)
|
181
|
+
result = (this._timestamp - otherTimeEvent._timestamp);
|
182
|
+
return result;
|
183
|
+
}
|
184
|
+
replicate() {
|
185
|
+
let runTimeEvent = new RunTimeEvent(this);
|
186
|
+
runTimeEvent.setTimestamp();
|
187
|
+
return runTimeEvent;
|
188
|
+
}
|
189
|
+
init(taskRef) {
|
190
|
+
this._task = (taskRef || AccessHelper.mgDataTable.getCurrMGData().getFirstTask());
|
191
|
+
this._taskTag = ((this._task === null) ? "" : this._task.getTaskTag());
|
192
|
+
this._mprgCreator = null;
|
193
|
+
}
|
194
|
+
convertParamsToArgs() {
|
195
|
+
this._argList = new ArgumentsList();
|
196
|
+
this._argList.buildListFromParams(this._parameters, this._paramAttrs, this._paramVals, this._paramNulls);
|
197
|
+
this._parameters = 0;
|
198
|
+
this._paramAttrs = null;
|
199
|
+
this._paramVals = null;
|
200
|
+
this._paramNulls = null;
|
201
|
+
}
|
202
|
+
getTask() {
|
203
|
+
super.findUserEvent();
|
204
|
+
return this._task;
|
205
|
+
}
|
206
|
+
setTask(taskRef) {
|
207
|
+
this._task = taskRef;
|
208
|
+
if (this._task !== null)
|
209
|
+
this._taskTag = this._task.getTaskTag();
|
210
|
+
else
|
211
|
+
this._taskTag = null;
|
212
|
+
}
|
213
|
+
setTimer(sec, mgdID, isIdle) {
|
214
|
+
this._type = ConstInterface.EVENT_TYPE_TIMER;
|
215
|
+
this._seconds = sec;
|
216
|
+
this._mgdId = mgdID;
|
217
|
+
this._isIdleTimer = isIdle;
|
218
|
+
}
|
219
|
+
getDisplayLine() {
|
220
|
+
return this._displayLine;
|
221
|
+
}
|
222
|
+
getMgdID() {
|
223
|
+
return this._mgdId;
|
224
|
+
}
|
225
|
+
getBrkLevel(flowMonitor) {
|
226
|
+
if (arguments.length === 0) {
|
227
|
+
return this.getBrkLevel_00();
|
228
|
+
}
|
229
|
+
return this.getBrkLevel_01(flowMonitor);
|
230
|
+
}
|
231
|
+
getBrkLevel_00() {
|
232
|
+
let level = super.getBrkLevel();
|
233
|
+
if (this._type === ConstInterface.EVENT_TYPE_INTERNAL) {
|
234
|
+
switch (this.InternalEvent) {
|
235
|
+
case InternalInterface.MG_ACT_CTRL_PREFIX:
|
236
|
+
case InternalInterface.MG_ACT_CTRL_SUFFIX:
|
237
|
+
case InternalInterface.MG_ACT_CTRL_VERIFICATION:
|
238
|
+
level += this.Control.Name;
|
239
|
+
break;
|
240
|
+
case InternalInterface.MG_ACT_VARIABLE:
|
241
|
+
level += this._eventFld.getVarName();
|
242
|
+
break;
|
243
|
+
}
|
244
|
+
}
|
245
|
+
return level;
|
246
|
+
}
|
247
|
+
getBrkLevel_01(flowMonitor) {
|
248
|
+
return super.getBrkLevel(flowMonitor);
|
249
|
+
}
|
250
|
+
setCtrl(newCtrl) {
|
251
|
+
this._ctrl = newCtrl;
|
252
|
+
}
|
253
|
+
setNonReversibleExit() {
|
254
|
+
this._reversibleExit = false;
|
255
|
+
}
|
256
|
+
reversibleExit() {
|
257
|
+
return this._reversibleExit;
|
258
|
+
}
|
259
|
+
buildXML(message) {
|
260
|
+
message.Append("\n " + XMLConstants.TAG_OPEN + ConstInterface.MG_TAG_EVENT);
|
261
|
+
if (this._type !== Char.MinValue)
|
262
|
+
message.Append(" " + ConstInterface.MG_ATTR_EVENTTYPE + "=\"" + this._type + "\"");
|
263
|
+
if (this._type === ConstInterface.EVENT_TYPE_SYSTEM && this.kbdItm != null) {
|
264
|
+
let modifier = this.kbdItm.getModifier();
|
265
|
+
if (modifier !== Modifiers.MODIFIER_NONE)
|
266
|
+
message.Append(" " + ConstInterface.MG_ATTR_MODIFIER + "=\"" + modifier + "\"");
|
267
|
+
message.Append(" " + ConstInterface.MG_ATTR_KEYCODE + "=\"" + this.kbdItm.getKeyCode() + "\"");
|
268
|
+
}
|
269
|
+
if (this.InternalEvent !== Int32.MinValue)
|
270
|
+
message.Append(" " + ConstInterface.MG_ATTR_INTERNALEVENT + "=\"" + this.InternalEvent + "\"");
|
271
|
+
if (this._seconds !== Int32.MinValue)
|
272
|
+
message.Append(" " + ConstInterface.MG_ATTR_SECONDS + "=\"" + this._seconds + "\"");
|
273
|
+
if (this.Exp != null)
|
274
|
+
message.Append(" " + XMLConstants.MG_ATTR_EXP + "=\"" + this.Exp.getId() + "\"");
|
275
|
+
if (this._forceExit !== ForceExit.None)
|
276
|
+
message.Append(" " + XMLConstants.MG_ATTR_EXP + "=\"" + this._forceExit + "\"");
|
277
|
+
if (this.UserEvt != null)
|
278
|
+
message.Append(" " + ConstInterface.MG_ATTR_USER + "=\"" + this.UserEvtTaskTag + "," + this._userEvtIdx + "\"");
|
279
|
+
message.Append(XMLConstants.TAG_TERM);
|
280
|
+
}
|
281
|
+
getArgList() {
|
282
|
+
return this._argList;
|
283
|
+
}
|
284
|
+
setArgList(aArgList) {
|
285
|
+
let result = this._argList === null;
|
286
|
+
this._argList = aArgList;
|
287
|
+
return result;
|
288
|
+
}
|
289
|
+
setRouteParamList(routeParams) {
|
290
|
+
this._routeParams = routeParams;
|
291
|
+
}
|
292
|
+
getRouteParamList() {
|
293
|
+
return this._routeParams;
|
294
|
+
}
|
295
|
+
setImmediate(val) {
|
296
|
+
this._immediate = val;
|
297
|
+
}
|
298
|
+
isImmediate() {
|
299
|
+
return this._immediate;
|
300
|
+
}
|
301
|
+
setMainPrgCreator(src) {
|
302
|
+
this._mprgCreator = src;
|
303
|
+
}
|
304
|
+
getMainPrgCreator() {
|
305
|
+
return this._mprgCreator;
|
306
|
+
}
|
307
|
+
setIsRealRefresh(val) {
|
308
|
+
this._isRealRefresh = val;
|
309
|
+
}
|
310
|
+
getRefreshType() {
|
311
|
+
return this._isRealRefresh;
|
312
|
+
}
|
313
|
+
setFromServer() {
|
314
|
+
this._fromServer = true;
|
315
|
+
}
|
316
|
+
resetFromServer() {
|
317
|
+
this._fromServer = false;
|
318
|
+
}
|
319
|
+
isFromServer() {
|
320
|
+
return this._fromServer;
|
321
|
+
}
|
322
|
+
isQuit() {
|
323
|
+
return this._eventSubType === EventSubType.CancelIsQuit;
|
324
|
+
}
|
325
|
+
RollbackInCancel() {
|
326
|
+
return this._eventSubType !== EventSubType.CancelWithNoRollback;
|
327
|
+
}
|
328
|
+
ExitDueToError() {
|
329
|
+
return this._eventSubType === EventSubType.ExitDueToError;
|
330
|
+
}
|
331
|
+
RtViewRefreshUseCurrentRow() {
|
332
|
+
return this._eventSubType === EventSubType.RtRefreshViewUseCurrentRow;
|
333
|
+
}
|
334
|
+
SetEventSubType(eventSubType) {
|
335
|
+
this._eventSubType = eventSubType;
|
336
|
+
}
|
337
|
+
getFld() {
|
338
|
+
return this._eventFld;
|
339
|
+
}
|
340
|
+
isGuiTriggeredEvent() {
|
341
|
+
return this._guiTriggeredEvent;
|
342
|
+
}
|
343
|
+
getPriority() {
|
344
|
+
return this._priority;
|
345
|
+
}
|
346
|
+
setPriority(priority) {
|
347
|
+
this._priority = priority;
|
348
|
+
}
|
349
|
+
isIdleTimer() {
|
350
|
+
return this._isIdleTimer;
|
351
|
+
}
|
352
|
+
getValue() {
|
353
|
+
return this._val;
|
354
|
+
}
|
355
|
+
setValue(val) {
|
356
|
+
this._val = val;
|
357
|
+
}
|
358
|
+
getStartSelection() {
|
359
|
+
return this._selectionStart;
|
360
|
+
}
|
361
|
+
getEndSelection() {
|
362
|
+
return this._selectionEnd;
|
363
|
+
}
|
364
|
+
setEditParms(start, end, text) {
|
365
|
+
this._selectionStart = start;
|
366
|
+
this._selectionEnd = end;
|
367
|
+
this.setValue(text);
|
368
|
+
}
|
369
|
+
isProduceClick() {
|
370
|
+
return this._produceClick;
|
371
|
+
}
|
372
|
+
setProduceClick(produceClick) {
|
373
|
+
this._produceClick = produceClick;
|
374
|
+
}
|
375
|
+
getActEnableList() {
|
376
|
+
return this._actEnableList;
|
377
|
+
}
|
378
|
+
isSendAll() {
|
379
|
+
return this._sendAll;
|
380
|
+
}
|
381
|
+
setSendAll(sendAll) {
|
382
|
+
this._sendAll = sendAll;
|
383
|
+
}
|
384
|
+
isBlockedByModalWindow(activeWindowData) {
|
385
|
+
if (activeWindowData.IsModal) {
|
386
|
+
let eventTask = this.getTask();
|
387
|
+
let baseTask = activeWindowData.getTask(0);
|
388
|
+
if (eventTask !== baseTask && baseTask.isDescendentOf(eventTask))
|
389
|
+
return true;
|
390
|
+
}
|
391
|
+
return false;
|
392
|
+
}
|
393
|
+
toString() {
|
394
|
+
return NString.Format("{{RTEvent {0} ({1}), type {2}{3}}}", [
|
395
|
+
this.getBrkLevel(), this.InternalEvent, this._type, (this._task === null) ? "" : (" on " + this._task)
|
396
|
+
]);
|
397
|
+
}
|
398
|
+
}
|
399
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnVuVGltZUV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9ldmVudC9SdW5UaW1lRXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBZSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RixPQUFPLEVBQUMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDakcsT0FBTyxFQUFDLFlBQVksRUFBa0IsYUFBYSxFQUFFLFNBQVMsRUFBWSxhQUFhLEdBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoSCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBSzdDLE1BQU0sT0FBTyxZQUFhLFNBQVEsZ0JBQWdCO0lBTXhDLGFBQWEsR0FBd0IsSUFBSSxDQUFDO0lBQzFDLFVBQVUsR0FBVyxDQUFDLENBQUM7SUFDdkIsWUFBWSxHQUFXLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFFdEMsYUFBYSxHQUFpQixZQUFZLENBQUMsTUFBTSxDQUFDO0lBRWxELGNBQWMsR0FBYSxJQUFJLENBQUM7SUFDaEMsUUFBUSxHQUFrQixJQUFJLENBQUM7SUFDL0Is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TUFBTSxDQUFDLG9DQUFvQyxFQUFFO1lBQzFELElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDdkcsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFyLCBJQ29tcGFyYWJsZSwgSW50MzIsIExpc3QsIE5TdHJpbmcsIFN0cmluZ0J1aWxkZXJ9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge0ZvcmNlRXhpdCwgSW50ZXJuYWxJbnRlcmZhY2UsIFByaW9yaXR5LCBYTUxDb25zdGFudHMsIFhtbFBhcnNlcn0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtHdWlGaWVsZEJhc2UsIExhc3RGb2N1c2VkVmFsLCBNZ0NvbnRyb2xCYXNlLCBNb2RpZmllcnMsIFByb3BlcnR5LCBQcm9wSW50ZXJmYWNlLH0gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcbmltcG9ydCB7RXZlbnRTdWJUeXBlfSBmcm9tIFwiLi4vZW51bXNcIjtcclxuaW1wb3J0IHtFdmVudH0gZnJvbSBcIi4vRXZlbnRcIjtcclxuaW1wb3J0IHtDb25zdEludGVyZmFjZX0gZnJvbSBcIi4uL0NvbnN0SW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7QXJndW1lbnRzTGlzdH0gZnJvbSBcIi4uL3J0L0FyZ3VtZW50c0xpc3RcIjtcclxuaW1wb3J0IHtNR0RhdGF9IGZyb20gXCIuLi90YXNrcy9NR0RhdGFcIjtcclxuaW1wb3J0IHtUYXNrQmFzZX0gZnJvbSBcIi4uL3Rhc2tzL1Rhc2tCYXNlXCI7XHJcbmltcG9ydCB7UnVuVGltZUV2ZW50QmFzZX0gZnJvbSBcIi4vUnVuVGltZUV2ZW50QmFzZVwiO1xyXG5pbXBvcnQge0FjY2Vzc0hlbHBlcn0gZnJvbSBcIi4uL0FjY2Vzc0hlbHBlclwiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gICB0aGlzIGNsYXNzIHJlcHJlc2VudHMgdGhlIHJ1bnRpbWUgZXZlbnRzXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBSdW5UaW1lRXZlbnQgZXh0ZW5kcyBSdW5UaW1lRXZlbnRCYXNlIGltcGxlbWVudHMgSUNvbXBhcmFibGUge1xyXG5cclxuICAvLyBBVFRFTlRJT04gIVxyXG4gIC8vIGFueSBjaGFuZ2UgdG8gdGhlIG1lbWJlciB2YXJpYWJsZXMgbXVzdCBiZSBmb2xsb3dlZCBieSBhIGNoYW5nZSB0byB0aGUgQ1RPUiB0aGF0XHJcbiAgLy8gZ2V0cyBvbmUgYXJndW1lbnQgb2YgdGhlIHR5cGUgJ0V2ZW50JyBhbmQgb25lIGFyZ3VtZW50IG9mIHRoZSB0eXBlICdSdW5UaW1lRXZlbnQnLlxyXG5cclxuICBwcml2YXRlIF9jb250cm9sc0xpc3Q6IExpc3Q8TWdDb250cm9sQmFzZT4gPSBudWxsOyAvLyBsaXN0IG9mIGNvbnRyb2xzXHJcbiAgcHJpdmF0ZSBfZGlyZWN0aW9uOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX2Rpc3BsYXlMaW5lOiBudW1iZXIgPSBJbnQzMi5NaW5WYWx1ZTtcclxuXHJcbiAgcHJpdmF0ZSBfZXZlbnRTdWJUeXBlOiBFdmVudFN1YlR5cGUgPSBFdmVudFN1YlR5cGUuTm9ybWFsO1xyXG5cclxuICBwcml2YXRlIF9hY3RFbmFibGVMaXN0OiBudW1iZXJbXSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfYXJnTGlzdDogQXJndW1lbnRzTGlzdCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfY3RybDogTWdDb250cm9sQmFzZSA9IG51bGw7IC8vIHRoZSBjb250cm9sIG9uIHdoaWNoIHRoZSBldmVudCB3YXMgdHJpZ2dlcmVkXHJcbiAgcHJpdmF0ZSBfZG90TmV0T2JqZWN0OiBhbnkgPSBudWxsOyAvLyBvYmplY3Qga2V5IG9mIGEgY29udHJvbFxyXG4gIHByaXZhdGUgX2V2ZW50RmxkOiBHdWlGaWVsZEJhc2UgPSBudWxsOyAvLyBGb3IgdmFyaWFibGUgZXZlbnRzIC0gdGhlIGZpZWxkIG9uIHdoaWNoIHRoZSBjb250cm9sIHdhcyB0cmlnZ2VyZWRcclxuICBwcml2YXRlIF9mcm9tU2VydmVyOiBib29sZWFuID0gZmFsc2U7ICAvLyBpZiBUUlVFLCB0aGUgZXZlbnQgd2FzIGNyZWF0ZWQgb24gdGhlIHNlcnZlciBhbmQgc2VudCB0byB0aGUgY2xpZW50XHJcbiAgcHJpdmF0ZSBfZ3VpVHJpZ2dlcmVkRXZlbnQ6IGJvb2xlYW4gPSBmYWxzZTsgLy8gaWYgdHJ1ZSwgdGhlIGV2ZW50IHdhcyB0cmlnZ2VyZWQgYnkgR1VJIGxldmVsIChpbmNsdWRlcyB0aW1lciBldmVudHMpXHJcbiAgcHJpdmF0ZSBfaW1tZWRpYXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfaXNJZGxlVGltZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9pc1JlYWxSZWZyZXNoOiBib29sZWFuID0gdHJ1ZTsgLy8gdXNlZCBvbmx5IGluIE1HX0FDVF9WSUVXX1JFRlJFU0ggZXZlbnRzIHRvIGluZGljYXRlIGEgcmVmcmVzaCBpbnZva2VkIFNwZWNpZmljYWxseSBieSB0aGUgdXNlclxyXG4gIHByaXZhdGUgX21nZElkOiBudW1iZXIgPSAwOyAvLyBtZ2RhdGEgaWQgdGhhdCBzZW50IHRpbWVyIGV2ZW50XHJcbiAgcHJpdmF0ZSBfcm91dGVQYXJhbXM6IExpc3Q8YW55PiA9IG51bGw7XHJcblxyXG4gIC8vIFVzZWQgb25seSBpZiAndGFzaycgaXMgYSBtYWluIHByZy4gQSByZWZlcmVuY2UgdG8gdGhlIHRhc2sgd2hpY2hcclxuICAvLyBjYXVzZWQgdGhlIG1haW4gcHJnIHRvIGJlY29tZSBhY3RpdmUgaW4gdGhlIHJ1bnRpbWUuXHJcbiAgcHJpdmF0ZSBfbXByZ0NyZWF0b3I6IFRhc2tCYXNlID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBfcHJpb3JpdHk6IFByaW9yaXR5ID0gUHJpb3JpdHkuSElHSDsgLy8gcHJpb3JpdHkgb2YgZXZlbnQgZm9yIGV2ZW50cyBxdWV1ZVxyXG5cclxuICBwcml2YXRlIF9wcm9kdWNlQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZTsgLy8gaWYgVFJVRSwgdGhlIGV2ZW50IHNob3VsZCBwcm9kdWNlIGNsaWNrXHJcbiAgcHJpdmF0ZSBfcmV2ZXJzaWJsZUV4aXQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIF9zZWxlY3Rpb25FbmQ6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBfc2VsZWN0aW9uU3RhcnQ6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBfc2VuZEFsbDogYm9vbGVhbiA9IGZhbHNlOyAgLy8gdGhpcyBmbGFnIGlzIHNldCBmb3Igc2VuZGluZyBhbGwgcmVjb3Jkc1xyXG4gIHByaXZhdGUgX3Rhc2s6IFRhc2tCYXNlID0gbnVsbDsgLy8gYSByZWZlcmVuY2UgdG8gdGhlIHRhc2tcclxuICBwcml2YXRlIF90YXNrVGFnOiBzdHJpbmcgPSBudWxsOyAvLyB0aGUgdGFzayBpZCBvbiB3aGljaCB0aGUgZXZlbnQgd2FzIHRyaWdnZXJlZFxyXG4gIHByaXZhdGUgX3ZhbDogYW55ID0gbnVsbDtcclxuICBwcml2YXRlIF9zaG91bGRIYW5kbGVab29tOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHNldCBTaG91bGRIYW5kbGVab29tKHZhbHVlOiBib29sZWFuKSB7IFxyXG4gICAgICB0aGlzLl9zaG91bGRIYW5kbGVab29tID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgU2hvdWxkSGFuZGxlWm9vbSgpOiBib29sZWFuIHsgXHJcbiAgICAgIHJldHVybiB0aGlzLl9zaG91bGRIYW5kbGVab29tO1xyXG4gIH1cclxuXHJcbiAgc2V0IENvbnRyb2wodmFsdWU6IE1nQ29udHJvbEJhc2UpIHtcclxuICAgIHRoaXMuX2N0cmwgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHNldCBEaXNwbGF5TGluZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9kaXNwbGF5TGluZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IENvbnRyb2woKTogTWdDb250cm9sQmFzZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY3RybDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gU2hvdWxkIHRoZSBjb250cm9sIHNldCBvbiB0aGUgZXZlbnQgYmUgaWdub3JlZC4gaWYgdHJ1ZSwgd2hlbiBwcm9jZXNzaW5nIHRoZSBldmVudCB3ZSBzaG91bGRcclxuICAvLy8gdXNlIHRoZSBjdXJyZW50IGZvY3VzZWQgY29udHJvbCBpbnN0ZWFkIG9mIHRoZSBvbmUgc2V0IG9uIHRoZSBldmVudC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIElnbm9yZVNwZWNpZmllZENvbnRyb2w6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgTGFzdEZvY3VzZWRWYWw6IExhc3RGb2N1c2VkVmFsID0gbnVsbDsgLy8gdmFsdWUgb2YgbGFzdCBlZGl0ZWQgY29udHJvbFxyXG5cclxuICBnZXQgQ29udHJvbHNMaXN0KCk6IExpc3Q8TWdDb250cm9sQmFzZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbnRyb2xzTGlzdDtcclxuICB9XHJcblxyXG4gIGdldCBEaXJlY3Rpb24oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXJlY3Rpb247XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcih0YXNrUmVmOiBUYXNrQmFzZSk7XHJcbiAgY29uc3RydWN0b3IodGFza1JlZjogVGFza0Jhc2UsIGN0cmxSZWY6IE1nQ29udHJvbEJhc2UpO1xyXG4gIGNvbnN0cnVjdG9yKGN0cmxSZWY6IE1nQ29udHJvbEJhc2UpO1xyXG4gIGNvbnN0cnVjdG9yKGN0cmxSZWY6IE1nQ29udHJvbEJhc2UsIGd1aVRyaWdnZXJlZEV2ZW50OiBib29sZWFuKTtcclxuICBjb25zdHJ1Y3RvcihjdHJsUmVmOiBNZ0NvbnRyb2xCYXNlLCBndWlUcmlnZ2VyZWRFdmVudDogYm9vbGVhbiwgaWdub3JlU3BlY2lmaWVkQ29udHJvbDogYm9vbGVhbik7XHJcbiAgY29uc3RydWN0b3IodGFza3JlZjogVGFza0Jhc2UsIGd1aVRyaWdnZXJlZEV2ZW50OiBib29sZWFuKTtcclxuICBjb25zdHJ1Y3RvcihmbGRSZWY6IEd1aUZpZWxkQmFzZSk7XHJcbiAgY29uc3RydWN0b3IoY3RybFJlZjogTWdDb250cm9sQmFzZSwgbGluZTogbnVtYmVyKTtcclxuICBjb25zdHJ1Y3RvcihjdHJsUmVmOiBNZ0NvbnRyb2xCYXNlLCBsaW5lOiBudW1iZXIsIGd1aVRyaWdnZXJlZEV2ZW50OiBib29sZWFuKTtcclxuICBjb25zdHJ1Y3RvcihjdHJsUmVmOiBNZ0NvbnRyb2xCYXNlLCBjb250cm9sc0xpc3Q6IExpc3Q8TWdDb250cm9sQmFzZT4sIGd1aVRyaWdnZXJlZEV2ZW50OiBib29sZWFuKTtcclxuICBjb25zdHJ1Y3RvcihjdHJsUmVmOiBNZ0NvbnRyb2xCYXNlLCBkaXJlY3Rpb246IG51bWJlciwgbGluZTogbnVtYmVyKTtcclxuICBjb25zdHJ1Y3RvcihjdHJsUmVmOiBNZ0NvbnRyb2xCYXNlLCBjb2x1bW5IZWFkZXI6IHN0cmluZywgeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTtcclxuICBjb25zdHJ1Y3RvcihldnQ6IEV2ZW50LCBydEV2dDogUnVuVGltZUV2ZW50KTtcclxuICBjb25zdHJ1Y3RvcihydEV2dDogUnVuVGltZUV2ZW50KTtcclxuICBjb25zdHJ1Y3Rvcih0YXNrUmVmT3JDdHJsUmVmT3JUYXNrcmVmT3JGbGRSZWZPckV2dDogYW55LCBjdHJsUmVmT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yQ29udHJvbHNMaXN0T3JEaXJlY3Rpb25PckNvbHVtbkhlYWRlck9yUnRFdnRPckN1cnJlbnRUYXNrPzogYW55LCBpZ25vcmVTcGVjaWZpZWRDb250cm9sT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yWE9yQ29udHJvbE9yQWN0aXZhdGVkRnJvbU1ESUZyYW1lPzogYW55LCB5T3JDdGxJZHg/OiBudW1iZXIsIHdpZHRoPzogbnVtYmVyLCBoZWlnaHQ/OiBudW1iZXIpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAodGFza1JlZk9yQ3RybFJlZk9yVGFza3JlZk9yRmxkUmVmT3JFdnQgPT09IG51bGwgfHwgdGFza1JlZk9yQ3RybFJlZk9yVGFza3JlZk9yRmxkUmVmT3JFdnQgaW5zdGFuY2VvZiBUYXNrQmFzZSkpXHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfNSh0YXNrUmVmT3JDdHJsUmVmT3JUYXNrcmVmT3JGbGRSZWZPckV2dCk7XHJcblxyXG4gICAgZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMiAmJiAodGFza1JlZk9yQ3RybFJlZk9yVGFza3JlZk9yRmxkUmVmT3JFdnQgPT09IG51bGwgfHwgdGFza1JlZk9yQ3RybFJlZk9yVGFza3JlZk9yRmxkUmVmT3JFdnQgaW5zdGFuY2VvZiBUYXNrQmFzZSkgJiYgKGN0cmxSZWZPckd1aVRyaWdnZXJlZEV2ZW50T3JMaW5lT3JDb250cm9sc0xpc3RPckRpcmVjdGlvbk9yQ29sdW1uSGVhZGVyT3JSdEV2dE9yQ3VycmVudFRhc2sgPT09IG51bGwgfHwgY3RybFJlZk9yR3VpVHJpZ2dlcmVkRXZlbnRPckxpbmVPckNvbnRyb2xzTGlzdE9yRGlyZWN0aW9uT3JDb2x1bW5IZWFkZXJPclJ0RXZ0T3JDdXJyZW50VGFzayBpbnN0YW5jZW9mIE1nQ29udHJvbEJhc2UpKVxyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzYodGFza1JlZk9yQ3RybFJlZk9yVGFza3JlZk9yRmxkUmVmT3JFdnQsIGN0cmxSZWZPckd1aVRyaWdnZXJlZEV2ZW50T3JMaW5lT3JDb250cm9sc0xpc3RPckRpcmVjdGlvbk9yQ29sdW1uSGVhZGVyT3JSdEV2dE9yQ3VycmVudFRhc2spO1xyXG5cclxuICAgIGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEgJiYgKHRhc2tSZWZPckN0cmxSZWZPclRhc2tyZWZPckZsZFJlZk9yRXZ0ID09PSBudWxsIHx8IHRhc2tSZWZPckN0cmxSZWZPclRhc2tyZWZPckZsZFJlZk9yRXZ0IGluc3RhbmNlb2YgTWdDb250cm9sQmFzZSkpXHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfNyh0YXNrUmVmT3JDdHJsUmVmT3JUYXNrcmVmT3JGbGRSZWZPckV2dCk7XHJcblxyXG4gICAgZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMiAmJiAodGFza1JlZk9yQ3RybFJlZk9yVGFza3JlZk9yRmxkUmVmT3JFdnQgPT09IG51bGwgfHwgdGFza1JlZk9yQ3RybFJlZk9yVGFza3JlZk9yRmxkUmVmT3JFdnQgaW5zdGFuY2VvZiBNZ0NvbnRyb2xCYXNlKSAmJiAoY3RybFJlZk9yR3VpVHJpZ2dlcmVkRXZlbnRPckxpbmVPckNvbnRyb2xzTGlzdE9yRGlyZWN0aW9uT3JDb2x1bW5IZWFkZXJPclJ0RXZ0T3JDdXJyZW50VGFzayA9PT0gbnVsbCB8fCBjdHJsUmVmT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yQ29udHJvbHNMaXN0T3JEaXJlY3Rpb25PckNvbHVtbkhlYWRlck9yUnRFdnRPckN1cnJlbnRUYXNrLmNvbnN0cnVjdG9yID09PSBCb29sZWFuKSlcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl84KHRhc2tSZWZPckN0cmxSZWZPclRhc2tyZWZPckZsZFJlZk9yRXZ0LCBjdHJsUmVmT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yQ29udHJvbHNMaXN0T3JEaXJlY3Rpb25PckNvbHVtbkhlYWRlck9yUnRFdnRPckN1cnJlbnRUYXNrKTtcclxuXHJcbiAgICBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAzICYmICh0YXNrUmVmT3JDdHJsUmVmT3JUYXNrcmVmT3JGbGRSZWZPckV2dCA9PT0gbnVsbCB8fCB0YXNrUmVmT3JDdHJsUmVmT3JUYXNrcmVmT3JGbGRSZWZPckV2dCBpbnN0YW5jZW9mIE1nQ29udHJvbEJhc2UpICYmIChjdHJsUmVmT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yQ29udHJvbHNMaXN0T3JEaXJlY3Rpb25PckNvbHVtbkhlYWRlck9yUnRFdnRPckN1cnJlbnRUYXNrID09PSBudWxsIHx8IGN0cmxSZWZPckd1aVRyaWdnZXJlZEV2ZW50T3JMaW5lT3JDb250cm9sc0xpc3RPckRpcmVjdGlvbk9yQ29sdW1uSGVhZGVyT3JSdEV2dE9yQ3VycmVudFRhc2suY29uc3RydWN0b3IgPT09IEJvb2xlYW4pICYmIChpZ25vcmVTcGVjaWZpZWRDb250cm9sT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yWE9yQ29udHJvbE9yQWN0aXZhdGVkRnJvbU1ESUZyYW1lID09PSBudWxsIHx8IGlnbm9yZVNwZWNpZmllZENvbnRyb2xPckd1aVRyaWdnZXJlZEV2ZW50T3JMaW5lT3JYT3JDb250cm9sT3JBY3RpdmF0ZWRGcm9tTURJRnJhbWUuY29uc3RydWN0b3IgPT09IEJvb2xlYW4pKVxyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzkodGFza1JlZk9yQ3RybFJlZk9yVGFza3JlZk9yRmxkUmVmT3JFdnQsIGN0cmxSZWZPckd1aVRyaWdnZXJlZEV2ZW50T3JMaW5lT3JDb250cm9sc0xpc3RPckRpcmVjdGlvbk9yQ29sdW1uSGVhZGVyT3JSdEV2dE9yQ3VycmVudFRhc2ssIGlnbm9yZVNwZWNpZmllZENvbnRyb2xPckd1aVRyaWdnZXJlZEV2ZW50T3JMaW5lT3JYT3JDb250cm9sT3JBY3RpdmF0ZWRGcm9tTURJRnJhbWUpO1xyXG5cclxuICAgIGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIgJiYgKHRhc2tSZWZPckN0cmxSZWZPclRhc2tyZWZPckZsZFJlZk9yRXZ0ID09PSBudWxsIHx8IHRhc2tSZWZPckN0cmxSZWZPclRhc2tyZWZPckZsZFJlZk9yRXZ0IGluc3RhbmNlb2YgVGFza0Jhc2UpICYmIChjdHJsUmVmT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yQ29udHJvbHNMaXN0T3JEaXJlY3Rpb25PckNvbHVtbkhlYWRlck9yUnRFdnRPckN1cnJlbnRUYXNrID09PSBudWxsIHx8IGN0cmxSZWZPckd1aVRyaWdnZXJlZEV2ZW50T3JMaW5lT3JDb250cm9sc0xpc3RPckRpcmVjdGlvbk9yQ29sdW1uSGVhZGVyT3JSdEV2dE9yQ3VycmVudFRhc2suY29uc3RydWN0b3IgPT09IEJvb2xlYW4pKVxyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzEwKHRhc2tSZWZPckN0cmxSZWZPclRhc2tyZWZPckZsZFJlZk9yRXZ0LCBjdHJsUmVmT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yQ29udHJvbHNMaXN0T3JEaXJlY3Rpb25PckNvbHVtbkhlYWRlck9yUnRFdnRPckN1cnJlbnRUYXNrKTtcclxuXHJcbiAgICBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxICYmICh0YXNrUmVmT3JDdHJsUmVmT3JUYXNrcmVmT3JGbGRSZWZPckV2dCA9PT0gbnVsbCB8fCB0YXNrUmVmT3JDdHJsUmVmT3JUYXNrcmVmT3JGbGRSZWZPckV2dCBpbnN0YW5jZW9mIEd1aUZpZWxkQmFzZSkpXHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfMTEodGFza1JlZk9yQ3RybFJlZk9yVGFza3JlZk9yRmxkUmVmT3JFdnQpO1xyXG5cclxuICAgIGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIgJiYgKHRhc2tSZWZPckN0cmxSZWZPclRhc2tyZWZPckZsZFJlZk9yRXZ0ID09PSBudWxsIHx8IHRhc2tSZWZPckN0cmxSZWZPclRhc2tyZWZPckZsZFJlZk9yRXZ0IGluc3RhbmNlb2YgTWdDb250cm9sQmFzZSkgJiYgKGN0cmxSZWZPckd1aVRyaWdnZXJlZEV2ZW50T3JMaW5lT3JDb250cm9sc0xpc3RPckRpcmVjdGlvbk9yQ29sdW1uSGVhZGVyT3JSdEV2dE9yQ3VycmVudFRhc2sgPT09IG51bGwgfHwgY3RybFJlZk9yR3VpVHJpZ2dlcmVkRXZlbnRPckxpbmVPckNvbnRyb2xzTGlzdE9yRGlyZWN0aW9uT3JDb2x1bW5IZWFkZXJPclJ0RXZ0T3JDdXJyZW50VGFzay5jb25zdHJ1Y3RvciA9PT0gTnVtYmVyKSlcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl8xMih0YXNrUmVmT3JDdHJsUmVmT3JUYXNrcmVmT3JGbGRSZWZPckV2dCwgY3RybFJlZk9yR3VpVHJpZ2dlcmVkRXZlbnRPckxpbmVPckNvbnRyb2xzTGlzdE9yRGlyZWN0aW9uT3JDb2x1bW5IZWFkZXJPclJ0RXZ0T3JDdXJyZW50VGFzayk7XHJcblxyXG4gICAgZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMyAmJiAodGFza1JlZk9yQ3RybFJlZk9yVGFza3JlZk9yRmxkUmVmT3JFdnQgPT09IG51bGwgfHwgdGFza1JlZk9yQ3RybFJlZk9yVGFza3JlZk9yRmxkUmVmT3JFdnQgaW5zdGFuY2VvZiBNZ0NvbnRyb2xCYXNlKSAmJiAoY3RybFJlZk9yR3VpVHJpZ2dlcmVkRXZlbnRPckxpbmVPckNvbnRyb2xzTGlzdE9yRGlyZWN0aW9uT3JDb2x1bW5IZWFkZXJPclJ0RXZ0T3JDdXJyZW50VGFzayA9PT0gbnVsbCB8fCBjdHJsUmVmT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yQ29udHJvbHNMaXN0T3JEaXJlY3Rpb25PckNvbHVtbkhlYWRlck9yUnRFdnRPckN1cnJlbnRUYXNrLmNvbnN0cnVjdG9yID09PSBOdW1iZXIpICYmIChpZ25vcmVTcGVjaWZpZWRDb250cm9sT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yWE9yQ29udHJvbE9yQWN0aXZhdGVkRnJvbU1ESUZyYW1lID09PSBudWxsIHx8IGlnbm9yZVNwZWNpZmllZENvbnRyb2xPckd1aVRyaWdnZXJlZEV2ZW50T3JMaW5lT3JYT3JDb250cm9sT3JBY3RpdmF0ZWRGcm9tTURJRnJhbWUuY29uc3RydWN0b3IgPT09IEJvb2xlYW4pKVxyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzEzKHRhc2tSZWZPckN0cmxSZWZPclRhc2tyZWZPckZsZFJlZk9yRXZ0LCBjdHJsUmVmT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yQ29udHJvbHNMaXN0T3JEaXJlY3Rpb25PckNvbHVtbkhlYWRlck9yUnRFdnRPckN1cnJlbnRUYXNrLCBpZ25vcmVTcGVjaWZpZWRDb250cm9sT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yWE9yQ29udHJvbE9yQWN0aXZhdGVkRnJvbU1ESUZyYW1lKTtcclxuXHJcbiAgICBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAzICYmICh0YXNrUmVmT3JDdHJsUmVmT3JUYXNrcmVmT3JGbGRSZWZPckV2dCA9PT0gbnVsbCB8fCB0YXNrUmVmT3JDdHJsUmVmT3JUYXNrcmVmT3JGbGRSZWZPckV2dCBpbnN0YW5jZW9mIE1nQ29udHJvbEJhc2UpICYmIChjdHJsUmVmT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yQ29udHJvbHNMaXN0T3JEaXJlY3Rpb25PckNvbHVtbkhlYWRlck9yUnRFdnRPckN1cnJlbnRUYXNrID09PSBudWxsIHx8IGN0cmxSZWZPckd1aVRyaWdnZXJlZEV2ZW50T3JMaW5lT3JDb250cm9sc0xpc3RPckRpcmVjdGlvbk9yQ29sdW1uSGVhZGVyT3JSdEV2dE9yQ3VycmVudFRhc2sgaW5zdGFuY2VvZiBMaXN0KSAmJiAoaWdub3JlU3BlY2lmaWVkQ29udHJvbE9yR3VpVHJpZ2dlcmVkRXZlbnRPckxpbmVPclhPckNvbnRyb2xPckFjdGl2YXRlZEZyb21NRElGcmFtZSA9PT0gbnVsbCB8fCBpZ25vcmVTcGVjaWZpZWRDb250cm9sT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yWE9yQ29udHJvbE9yQWN0aXZhdGVkRnJvbU1ESUZyYW1lLmNvbnN0cnVjdG9yID09PSBCb29sZWFuKSlcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl8xNCh0YXNrUmVmT3JDdHJsUmVmT3JUYXNrcmVmT3JGbGRSZWZPckV2dCwgY3RybFJlZk9yR3VpVHJpZ2dlcmVkRXZlbnRPckxpbmVPckNvbnRyb2xzTGlzdE9yRGlyZWN0aW9uT3JDb2x1bW5IZWFkZXJPclJ0RXZ0T3JDdXJyZW50VGFzaywgaWdub3JlU3BlY2lmaWVkQ29udHJvbE9yR3VpVHJpZ2dlcmVkRXZlbnRPckxpbmVPclhPckNvbnRyb2xPckFjdGl2YXRlZEZyb21NRElGcmFtZSk7XHJcblxyXG4gICAgZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMyAmJiAodGFza1JlZk9yQ3RybFJlZk9yVGFza3JlZk9yRmxkUmVmT3JFdnQgPT09IG51bGwgfHwgdGFza1JlZk9yQ3RybFJlZk9yVGFza3JlZk9yRmxkUmVmT3JFdnQgaW5zdGFuY2VvZiBNZ0NvbnRyb2xCYXNlKSAmJiAoY3RybFJlZk9yR3VpVHJpZ2dlcmVkRXZlbnRPckxpbmVPckNvbnRyb2xzTGlzdE9yRGlyZWN0aW9uT3JDb2x1bW5IZWFkZXJPclJ0RXZ0T3JDdXJyZW50VGFzayA9PT0gbnVsbCB8fCBjdHJsUmVmT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yQ29udHJvbHNMaXN0T3JEaXJlY3Rpb25PckNvbHVtbkhlYWRlck9yUnRFdnRPckN1cnJlbnRUYXNrLmNvbnN0cnVjdG9yID09PSBOdW1iZXIpICYmIChpZ25vcmVTcGVjaWZpZWRDb250cm9sT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yWE9yQ29udHJvbE9yQWN0aXZhdGVkRnJvbU1ESUZyYW1lID09PSBudWxsIHx8IGlnbm9yZVNwZWNpZmllZENvbnRyb2xPckd1aVRyaWdnZXJlZEV2ZW50T3JMaW5lT3JYT3JDb250cm9sT3JBY3RpdmF0ZWRGcm9tTURJRnJhbWUuY29uc3RydWN0b3IgPT09IE51bWJlcikpXHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfMTUodGFza1JlZk9yQ3RybFJlZk9yVGFza3JlZk9yRmxkUmVmT3JFdnQsIGN0cmxSZWZPckd1aVRyaWdnZXJlZEV2ZW50T3JMaW5lT3JDb250cm9sc0xpc3RPckRpcmVjdGlvbk9yQ29sdW1uSGVhZGVyT3JSdEV2dE9yQ3VycmVudFRhc2spO1xyXG5cclxuICAgIGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDYpXHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfMTYodGFza1JlZk9yQ3RybFJlZk9yVGFza3JlZk9yRmxkUmVmT3JFdnQpO1xyXG5cclxuICAgIGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIgJiYgKHRhc2tSZWZPckN0cmxSZWZPclRhc2tyZWZPckZsZFJlZk9yRXZ0ID09PSBudWxsIHx8IHRhc2tSZWZPckN0cmxSZWZPclRhc2tyZWZPckZsZFJlZk9yRXZ0IGluc3RhbmNlb2YgRXZlbnQpICYmIChjdHJsUmVmT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yQ29udHJvbHNMaXN0T3JEaXJlY3Rpb25PckNvbHVtbkhlYWRlck9yUnRFdnRPckN1cnJlbnRUYXNrID09PSBudWxsIHx8IGN0cmxSZWZPckd1aVRyaWdnZXJlZEV2ZW50T3JMaW5lT3JDb250cm9sc0xpc3RPckRpcmVjdGlvbk9yQ29sdW1uSGVhZGVyT3JSdEV2dE9yQ3VycmVudFRhc2sgaW5zdGFuY2VvZiBSdW5UaW1lRXZlbnQpKSB7XHJcbiAgICAgIC8vIENhbGwgYmFzZSBjbGFzcyBjb25zdHJ1Y3RvciB0byBpbml0aWFsaXplIHRoZSBldmVudCB0eXBlIGFuZCB0aGUgb3RoZXIgZmllbGRzXHJcbiAgICAgIHN1cGVyLmNvbnN0cnVjdG9yXzEodGFza1JlZk9yQ3RybFJlZk9yVGFza3JlZk9yRmxkUmVmT3JFdnQpO1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzE3KCBjdHJsUmVmT3JHdWlUcmlnZ2VyZWRFdmVudE9yTGluZU9yQ29udHJvbHNMaXN0T3JEaXJlY3Rpb25PckNvbHVtbkhlYWRlck9yUnRFdnRPckN1cnJlbnRUYXNrKTtcclxuICAgIH1cclxuXHJcbiAgICBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxICYmIHRhc2tSZWZPckN0cmxSZWZPclRhc2tyZWZPckZsZFJlZk9yRXZ0IGluc3RhbmNlb2YgUnVuVGltZUV2ZW50KVxyXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMsIHRhc2tSZWZPckN0cmxSZWZPclRhc2tyZWZPckZsZFJlZk9yRXZ0KTtcclxuXHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0YXNrUmVmXCI+YSByZWZlcmVuY2UgdG8gdGhlIHRhc2s8L3BhcmFtPlxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfNSh0YXNrUmVmOiBUYXNrQmFzZSk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0KHRhc2tSZWYpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGFza1JlZlwiPnJlZmVyZW5jZSB0byB0YXNrPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImN0cmxSZWZcIj5yZWZlcmVuY2UgdG8gY29udHJvbDwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl82KHRhc2tSZWY6IFRhc2tCYXNlLCBjdHJsUmVmOiBNZ0NvbnRyb2xCYXNlKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnN0cnVjdG9yXzUoKGN0cmxSZWYgIT09IG51bGwpID8gKDxUYXNrQmFzZT5jdHJsUmVmLmdldEZvcm0oKS5nZXRUYXNrKCkpIDogdGFza1JlZik7XHJcbiAgICB0aGlzLkNvbnRyb2wgPSBjdHJsUmVmO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY3RybFJlZlwiPmEgcmVmZXJlbmNlIHRvIHRoZSBjb250cm9sIDwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl83KGN0cmxSZWY6IE1nQ29udHJvbEJhc2UpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uc3RydWN0b3JfNihudWxsLCBjdHJsUmVmKTtcclxuICAgIGlmIChjdHJsUmVmICE9PSBudWxsICYmIHN1cGVyLmdldFR5cGUoKSA9PT0gQ2hhci5NaW5WYWx1ZSkgLy8gbm90IGluaXRpYWxpemVkIHlldFxyXG4gICAge1xyXG4gICAgICAvLyBvbiB0aGUgZmlyc3QgdGltZSwgaWYgYSBUUklHR0VSIHByb3BlcnR5IGV4aXN0cywgcGFyc2UgdGhlIGV2ZW50IGFuZCBhZGQgaXQgdG8gdGhlIGNvbnRyb2xcclxuICAgICAgbGV0IHByb3A6IFByb3BlcnR5ID0gY3RybFJlZi5HZXRDb21wdXRlZFByb3BlcnR5KFByb3BJbnRlcmZhY2UuUFJPUF9UWVBFX1RSSUdHRVIpO1xyXG4gICAgICBpZiAocHJvcCAhPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCB4bWxQYXJzZXI6IFhtbFBhcnNlciA9IG5ldyBYbWxQYXJzZXIocHJvcC5HZXRDb21wdXRlZFZhbHVlKCkpO1xyXG4gICAgICAgIHN1cGVyLmZpbGxEYXRhKHhtbFBhcnNlciwgPFRhc2tCYXNlPmN0cmxSZWYuZ2V0Rm9ybSgpLmdldFRhc2soKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy9cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImN0cmxSZWZcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImd1aVRyaWdnZXJlZEV2ZW50XCI+PC9wYXJhbT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzgoY3RybFJlZjogTWdDb250cm9sQmFzZSwgZ3VpVHJpZ2dlcmVkRXZlbnQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuY29uc3RydWN0b3JfNyhjdHJsUmVmKTtcclxuICAgIHRoaXMuX2d1aVRyaWdnZXJlZEV2ZW50ID0gZ3VpVHJpZ2dlcmVkRXZlbnQ7XHJcbiAgICBpZiAoZ3VpVHJpZ2dlcmVkRXZlbnQpIHtcclxuICAgICAgLy8gRXZlbnRzIHRoYXQgYXJlIHRyaWdnZXJlZCBieSBHVUkgbGV2ZWwsIG11c3QgYmUgZXhlY3V0ZWQgYWZ0ZXIgYWxsXHJcbiAgICAgIC8vIG90aGVyIGV2ZW50cywgdGh1cyB0aGF5IGhhdmUgbG93IHByaW9yaXR5O1xyXG4gICAgICB0aGlzLl9wcmlvcml0eSA9IFByaW9yaXR5LkxPVztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy9cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImN0cmxSZWZcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImd1aVRyaWdnZXJlZEV2ZW50XCI+PC9wYXJhbT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzkoY3RybFJlZjogTWdDb250cm9sQmFzZSwgZ3VpVHJpZ2dlcmVkRXZlbnQ6IGJvb2xlYW4sIGlnbm9yZVNwZWNpZmllZENvbnRyb2w6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuY29uc3RydWN0b3JfOChjdHJsUmVmLCBndWlUcmlnZ2VyZWRFdmVudCk7XHJcbiAgICB0aGlzLklnbm9yZVNwZWNpZmllZENvbnRyb2wgPSBpZ25vcmVTcGVjaWZpZWRDb250cm9sO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGFza3JlZlwiPnJlZmVyZW5jZSB0byB0YXNrPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImd1aVRyaWdnZXJlZEV2ZW50XCI+PC9wYXJhbT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzEwKHRhc2tyZWY6IFRhc2tCYXNlLCBndWlUcmlnZ2VyZWRFdmVudDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5jb25zdHJ1Y3Rvcl81KHRhc2tyZWYpO1xyXG4gICAgdGhpcy5fZ3VpVHJpZ2dlcmVkRXZlbnQgPSBndWlUcmlnZ2VyZWRFdmVudDtcclxuICAgIGlmIChndWlUcmlnZ2VyZWRFdmVudCkge1xyXG4gICAgICB0aGlzLl9wcmlvcml0eSA9IFByaW9yaXR5LkxPVztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBDVE9SXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImZsZFJlZlwiPmEgcmVmZXJlbmNlIHRvIHRoZSBmaWVsZDwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8xMShmbGRSZWY6IEd1aUZpZWxkQmFzZSk6IHZvaWQge1xyXG4gICAgdGhpcy5fZXZlbnRGbGQgPSBmbGRSZWY7XHJcbiAgICB0aGlzLmluaXQoKGZsZFJlZiAhPT0gbnVsbCkgPyAoPFRhc2tCYXNlPmZsZFJlZi5nZXRUYXNrKCkpIDogbnVsbCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjdHJsUmVmXCI+YSByZWZlcmVuY2UgdG8gdGhlIGNvbnRyb2wgb24gd2hpY2ggdGhlIGV2ZW50IG9jY3VyZWQgPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImxpbmVcIj50aGUgbGluZSBvZiB0aGUgdGFibGUgaW4gd2hpY2ggdGhlIGNvbnRyb2wgaXMgbG9jYXRlZCA8L3BhcmFtPlxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMTIoY3RybFJlZjogTWdDb250cm9sQmFzZSwgbGluZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnN0cnVjdG9yXzcoY3RybFJlZik7XHJcbiAgICB0aGlzLl9kaXNwbGF5TGluZSA9IGxpbmU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzEzKGN0cmxSZWY6IE1nQ29udHJvbEJhc2UsIGxpbmU6IG51bWJlciwgZ3VpVHJpZ2dlcmVkRXZlbnQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuY29uc3RydWN0b3JfOChjdHJsUmVmLCBndWlUcmlnZ2VyZWRFdmVudCk7XHJcbiAgICB0aGlzLl9kaXNwbGF5TGluZSA9IGxpbmU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzE0KGN0cmxSZWY6IE1nQ29udHJvbEJhc2UsIGNvbnRyb2xzTGlzdDogTGlzdDxNZ0NvbnRyb2xCYXNlPiwgZ3VpVHJpZ2dlcmVkRXZlbnQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuY29uc3RydWN0b3JfOChjdHJsUmVmLCBndWlUcmlnZ2VyZWRFdmVudCk7XHJcbiAgICB0aGlzLl9jb250cm9sc0xpc3QgPSBjb250cm9sc0xpc3Q7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzE1KGN0cmxSZWY6IE1nQ29udHJvbEJhc2UsIGRpcmVjdGlvbjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnN0cnVjdG9yXzgoY3RybFJlZiwgdHJ1ZSk7XHJcbiAgICB0aGlzLl9kaXJlY3Rpb24gPSBkaXJlY3Rpb247XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzE2KGN0cmxSZWY6IE1nQ29udHJvbEJhc2UgKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnN0cnVjdG9yXzgoY3RybFJlZiwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ1RPUiAtIGNyZWF0ZXMgYSBuZXcgcnVuIHRpbWUgZXZlbnQgYnkgY29weWluZyB0aGUgbWVtYmVyIHZhcmlhYmxlcyBvZiBhIGdpdmVuXHJcbiAgLy8vICAgZXZlbnQgYW5kIHRoZSBtZW1iZXIgdmFyaWFibGVzIG9mIGEgZ2l2ZW4gcnVuIHRpbWUgZXZlbnRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZXZ0XCI+YSByZWZlcmVuY2UgdG8gdGhlIGV2ZW50IHRvIGJlIHVzZWQgPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInJ0RXZ0XCI+YSByZWZlcmVuY2UgdG8gdGhlIHJ1biB0aW1lIGV2ZW50IHRvIGJlIHVzZWQgPC9wYXJhbT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzE3KCBydEV2dDogUnVuVGltZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLl90YXNrVGFnID0gcnRFdnQuX3Rhc2tUYWc7XHJcbiAgICB0aGlzLl90YXNrID0gcnRFdnQuX3Rhc2s7XHJcbiAgICB0aGlzLkNvbnRyb2wgPSBydEV2dC5Db250cm9sO1xyXG4gICAgdGhpcy5fZXZlbnRGbGQgPSBydEV2dC5fZXZlbnRGbGQ7XHJcbiAgICB0aGlzLl9tZ2RJZCA9IHJ0RXZ0Ll9tZ2RJZDtcclxuICAgIHRoaXMuX2Rpc3BsYXlMaW5lID0gcnRFdnQuX2Rpc3BsYXlMaW5lO1xyXG4gICAgdGhpcy5fcmV2ZXJzaWJsZUV4aXQgPSBydEV2dC5fcmV2ZXJzaWJsZUV4aXQ7XHJcbiAgICB0aGlzLl9hcmdMaXN0ID0gcnRFdnQuX2FyZ0xpc3Q7XHJcbiAgICB0aGlzLl9pbW1lZGlhdGUgPSBydEV2dC5faW1tZWRpYXRlO1xyXG4gICAgdGhpcy5fbXByZ0NyZWF0b3IgPSBydEV2dC5fbXByZ0NyZWF0b3I7XHJcbiAgICB0aGlzLl9wcmlvcml0eSA9IHJ0RXZ0Ll9wcmlvcml0eTtcclxuICAgIHRoaXMuX2d1aVRyaWdnZXJlZEV2ZW50ID0gcnRFdnQuX2d1aVRyaWdnZXJlZEV2ZW50O1xyXG4gICAgdGhpcy5faXNJZGxlVGltZXIgPSBydEV2dC5faXNJZGxlVGltZXI7XHJcbiAgICB0aGlzLl92YWwgPSBydEV2dC5fdmFsO1xyXG4gICAgdGhpcy5fc2VsZWN0aW9uU3RhcnQgPSBydEV2dC5fc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICB0aGlzLl9zZWxlY3Rpb25FbmQgPSBydEV2dC5fc2VsZWN0aW9uRW5kO1xyXG4gICAgdGhpcy5fY29udHJvbHNMaXN0ID0gcnRFdnQuX2NvbnRyb2xzTGlzdDtcclxuICAgIHRoaXMuX2RpcmVjdGlvbiA9IHJ0RXZ0Ll9kaXJlY3Rpb247XHJcbiAgICB0aGlzLl9kb3ROZXRPYmplY3QgPSBydEV2dC5fZG90TmV0T2JqZWN0O1xyXG4gICAgdGhpcy5MYXN0Rm9jdXNlZFZhbCA9IHJ0RXZ0Lkxhc3RGb2N1c2VkVmFsO1xyXG4gICAgdGhpcy5fcm91dGVQYXJhbXMgPSBydEV2dC5fcm91dGVQYXJhbXM7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGltcGxlbWVudGluZyBjb21wYXJhdG9yLCB0aGUgZXZlbnRzIGFyZSBjb21wYXJlZCBieSBwcmlvcml0eVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgQ29tcGFyZVRvKG9iajogYW55KTogbnVtYmVyIHtcclxuICAgIGxldCBvdGhlclRpbWVFdmVudDogUnVuVGltZUV2ZW50ID0gPFJ1blRpbWVFdmVudD5vYmo7XHJcbiAgICBsZXQgb3RoZXJQcmlvcml0eTogUHJpb3JpdHkgPSBvdGhlclRpbWVFdmVudC5fcHJpb3JpdHk7XHJcbiAgICBsZXQgcmVzdWx0OiBudW1iZXIgPSBvdGhlclByaW9yaXR5IC0gdGhpcy5fcHJpb3JpdHk7XHJcbiAgICBpZiAocmVzdWx0ID09PSAwKVxyXG4gICAgICByZXN1bHQgPSA8bnVtYmVyPih0aGlzLl90aW1lc3RhbXAgLSBvdGhlclRpbWVFdmVudC5fdGltZXN0YW1wKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyBhIHJlcGxpY2Egb2YgdGhpcyBydW50aW1lIGV2ZW50XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICByZXBsaWNhdGUoKTogUnVuVGltZUV2ZW50IHtcclxuICAgIGxldCBydW5UaW1lRXZlbnQ6IFJ1blRpbWVFdmVudCA9IG5ldyBSdW5UaW1lRXZlbnQodGhpcyk7XHJcbiAgICBydW5UaW1lRXZlbnQuc2V0VGltZXN0YW1wKCk7XHJcbiAgICByZXR1cm4gcnVuVGltZUV2ZW50O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGEgaGVscGVyIG1ldGhvZCB0aGF0IGRvZXMgc29tZSBjb21tb24gaW5pdGlhbGl6YXRpb24gZm9yIHNvbWUgb2YgdGhlIGNvbnN0cnVjdG9yc1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBpbml0KHRhc2tSZWY6IFRhc2tCYXNlKTogdm9pZCB7XHJcbiAgICB0aGlzLl90YXNrID0gKHRhc2tSZWYgfHwgKDxNR0RhdGE+QWNjZXNzSGVscGVyLm1nRGF0YVRhYmxlLmdldEN1cnJNR0RhdGEoKSkuZ2V0Rmlyc3RUYXNrKCkpO1xyXG4gICAgdGhpcy5fdGFza1RhZyA9ICgodGhpcy5fdGFzayA9PT0gbnVsbCkgPyBcIlwiIDogdGhpcy5fdGFzay5nZXRUYXNrVGFnKCkpO1xyXG4gICAgdGhpcy5fbXByZ0NyZWF0b3IgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGNvbnZlcnRzIHBhcmFtZXRlcnMgdG8gYXJndW1lbnQgbGlzdFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgY29udmVydFBhcmFtc1RvQXJncygpOiB2b2lkIHtcclxuICAgIHRoaXMuX2FyZ0xpc3QgPSBuZXcgQXJndW1lbnRzTGlzdCgpO1xyXG4gICAgdGhpcy5fYXJnTGlzdC5idWlsZExpc3RGcm9tUGFyYW1zKHRoaXMuX3BhcmFtZXRlcnMsIHRoaXMuX3BhcmFtQXR0cnMsIHRoaXMuX3BhcmFtVmFscywgdGhpcy5fcGFyYW1OdWxscyk7XHJcbiAgICB0aGlzLl9wYXJhbWV0ZXJzID0gMDtcclxuICAgIHRoaXMuX3BhcmFtQXR0cnMgPSBudWxsO1xyXG4gICAgdGhpcy5fcGFyYW1WYWxzID0gbnVsbDtcclxuICAgIHRoaXMuX3BhcmFtTnVsbHMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCBhIHJlZmVyZW5jZSB0byB0aGUgdGFza1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0VGFzaygpOiBUYXNrQmFzZSB7XHJcbiAgICBzdXBlci5maW5kVXNlckV2ZW50KCk7XHJcbiAgICByZXR1cm4gdGhpcy5fdGFzaztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzZXQgdGhlIHRhc2tcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiYVRhc2tcIj4tIHJlZmVyZW5jZSB0byBhIHRhc2s8L3BhcmFtPlxyXG4gIHNldFRhc2sodGFza1JlZjogVGFza0Jhc2UpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Rhc2sgPSB0YXNrUmVmO1xyXG5cclxuICAgIGlmICh0aGlzLl90YXNrICE9PSBudWxsKVxyXG4gICAgICB0aGlzLl90YXNrVGFnID0gdGhpcy5fdGFzay5nZXRUYXNrVGFnKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX3Rhc2tUYWcgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldCBhIFRpbWVyIGV2ZW50XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInNlY29uZHNcIj50aGUgbnVtYmVyIG9mIHNlY29uZHMgZm9yIHRoaXMgZXZlbnRzPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm51bWJlclduZFwiPnRoZSBtZ2RhdGEgSUQgZm9yIHRoZSBldmVudDwvcGFyYW0+XHJcbiAgc2V0VGltZXIoc2VjOiBudW1iZXIsIG1nZElEOiBudW1iZXIsIGlzSWRsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5fdHlwZSA9IENvbnN0SW50ZXJmYWNlLkVWRU5UX1RZUEVfVElNRVIgLyonVCcqLztcclxuICAgIHRoaXMuX3NlY29uZHMgPSBzZWM7XHJcbiAgICB0aGlzLl9tZ2RJZCA9IG1nZElEO1xyXG4gICAgdGhpcy5faXNJZGxlVGltZXIgPSBpc0lkbGU7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCB0aGUgbGluZSBpbiB0YWJsZSBvZiBjb250cm9sIGluIGEgdGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gdGhlIGxpbmUgbnVtYmVyPC9yZXR1cm5zPlxyXG4gIGdldERpc3BsYXlMaW5lKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGxheUxpbmU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IG51bWJlciBvZiB3aW5kb3cgKGZvciB0aW1lciBldmVudHMpXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRNZ2RJRCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21nZElkO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCB0aGUgYnJlYWsgbGV2ZWwgb2YgRXZlbnRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldEJya0xldmVsKCk6IHN0cmluZztcclxuICBnZXRCcmtMZXZlbChmbG93TW9uaXRvcjogYm9vbGVhbik6IHN0cmluZztcclxuICBnZXRCcmtMZXZlbChmbG93TW9uaXRvcj86IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0QnJrTGV2ZWxfMDAoKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldEJya0xldmVsXzAxKGZsb3dNb25pdG9yKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QnJrTGV2ZWxfMDAoKTogc3RyaW5nIHtcclxuICAgIGxldCBsZXZlbDogc3RyaW5nID0gc3VwZXIuZ2V0QnJrTGV2ZWwoKTtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSBDb25zdEludGVyZmFjZS5FVkVOVF9UWVBFX0lOVEVSTkFMKSB7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5JbnRlcm5hbEV2ZW50KSB7XHJcbiAgICAgICAgY2FzZSBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfQ1RSTF9QUkVGSVg6XHJcbiAgICAgICAgY2FzZSBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfQ1RSTF9TVUZGSVg6XHJcbiAgICAgICAgY2FzZSBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfQ1RSTF9WRVJJRklDQVRJT046XHJcbiAgICAgICAgICBsZXZlbCArPSB0aGlzLkNvbnRyb2wuTmFtZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1ZBUklBQkxFOlxyXG4gICAgICAgICAgbGV2ZWwgKz0gdGhpcy5fZXZlbnRGbGQuZ2V0VmFyTmFtZSgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBsZXZlbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QnJrTGV2ZWxfMDEoZmxvd01vbml0b3I6IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHN1cGVyLmdldEJya0xldmVsKGZsb3dNb25pdG9yKTtcclxuICB9XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgc2V0IGEgbmV3IGNvbnRyb2wgZm9yIHRoZSBydW50aW1lIGV2ZW50XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm5ld0N0cmxcIj5hIHJlZmVyZW5jZSB0byB0aGUgbmV3IGNvbnRyb2wgPC9wYXJhbT5cclxuICBzZXRDdHJsKG5ld0N0cmw6IE1nQ29udHJvbEJhc2UpOiB2b2lkIHtcclxuICAgIHRoaXMuX2N0cmwgPSBuZXdDdHJsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldCB0aGUgcmV2ZXJzaWJsZSBleGl0IGZsYWcgdG8gZmFsc2VcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHNldE5vblJldmVyc2libGVFeGl0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmV2ZXJzaWJsZUV4aXQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgcmV2ZXJzaWJsZSBleGl0IGZsYWdcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHJldmVyc2libGVFeGl0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JldmVyc2libGVFeGl0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGJ1aWxkIFhNTCBFdmVudCBzdHJpbmcgZm9yIFNlcnZlclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHVibGljIGJ1aWxkWE1MKG1lc3NhZ2U6IFN0cmluZ0J1aWxkZXIpOiB2b2lkIHtcclxuICAgIG1lc3NhZ2UuQXBwZW5kKFwiXFxuICAgXCIgKyBYTUxDb25zdGFudHMuVEFHX09QRU4gKyBDb25zdEludGVyZmFjZS5NR19UQUdfRVZFTlQpO1xyXG5cclxuICAgIGlmICh0aGlzLl90eXBlICE9PSBDaGFyLk1pblZhbHVlKVxyXG4gICAgICBtZXNzYWdlLkFwcGVuZChcIiBcIiArIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfRVZFTlRUWVBFICsgXCI9XFxcIlwiICsgdGhpcy5fdHlwZSArIFwiXFxcIlwiKTtcclxuXHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gQ29uc3RJbnRlcmZhY2UuRVZFTlRfVFlQRV9TWVNURU0gJiYgdGhpcy5rYmRJdG0gIT0gbnVsbCkge1xyXG4gICAgICBsZXQgbW9kaWZpZXI6IE1vZGlmaWVycyA9IHRoaXMua2JkSXRtLmdldE1vZGlmaWVyKCk7XHJcbiAgICAgIGlmIChtb2RpZmllciAhPT0gTW9kaWZpZXJzLk1PRElGSUVSX05PTkUpXHJcbiAgICAgICAgbWVzc2FnZS5BcHBlbmQoXCIgXCIgKyBDb25zdEludGVyZmFjZS5NR19BVFRSX01PRElGSUVSICsgXCI9XFxcIlwiICsgbW9kaWZpZXIgKyBcIlxcXCJcIik7XHJcbiAgICAgIG1lc3NhZ2UuQXBwZW5kKFwiIFwiICsgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9LRVlDT0RFICsgXCI9XFxcIlwiICsgdGhpcy5rYmRJdG0uZ2V0S2V5Q29kZSgpICsgXCJcXFwiXCIpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuSW50ZXJuYWxFdmVudCAhPT0gSW50MzIuTWluVmFsdWUpXHJcbiAgICAgIG1lc3NhZ2UuQXBwZW5kKFwiIFwiICsgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9JTlRFUk5BTEVWRU5UICsgXCI9XFxcIlwiICsgdGhpcy5JbnRlcm5hbEV2ZW50ICsgXCJcXFwiXCIpO1xyXG4gICAgaWYgKHRoaXMuX3NlY29uZHMgIT09IEludDMyLk1pblZhbHVlKVxyXG4gICAgICBtZXNzYWdlLkFwcGVuZChcIiBcIiArIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU0VDT05EUyArIFwiPVxcXCJcIiArIHRoaXMuX3NlY29uZHMgKyBcIlxcXCJcIik7XHJcbiAgICBpZiAodGhpcy5FeHAgIT0gbnVsbClcclxuICAgICAgbWVzc2FnZS5BcHBlbmQoXCIgXCIgKyBYTUxDb25zdGFudHMuTUdfQVRUUl9FWFAgKyBcIj1cXFwiXCIgKyB0aGlzLkV4cC5nZXRJZCgpICsgXCJcXFwiXCIpO1xyXG4gICAgaWYgKHRoaXMuX2ZvcmNlRXhpdCAhPT0gRm9yY2VFeGl0Lk5vbmUpXHJcbiAgICAgIG1lc3NhZ2UuQXBwZW5kKFwiIFwiICsgWE1MQ29uc3RhbnRzLk1HX0FUVFJfRVhQICsgXCI9XFxcIlwiICsgPHN0cmluZz50aGlzLl9mb3JjZUV4aXQgKyBcIlxcXCJcIik7XHJcbiAgICBpZiAodGhpcy5Vc2VyRXZ0ICE9IG51bGwpXHJcbiAgICAgIG1lc3NhZ2UuQXBwZW5kKFwiIFwiICsgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9VU0VSICsgXCI9XFxcIlwiICsgdGhpcy5Vc2VyRXZ0VGFza1RhZyArIFwiLFwiICsgdGhpcy5fdXNlckV2dElkeCArIFwiXFxcIlwiKTtcclxuXHJcbiAgICBtZXNzYWdlLkFwcGVuZChYTUxDb25zdGFudHMuVEFHX1RFUk0pO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCB0aGUgYXJnTGlzdFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiB0aGUgYXJnTGlzdDwvcmV0dXJucz5cclxuICBnZXRBcmdMaXN0KCk6IEFyZ3VtZW50c0xpc3Qge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FyZ0xpc3Q7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgc2V0IHRoZSBhcmdMaXN0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImFBcmdMaXN0XCI+PC9wYXJhbT5cclxuICBzZXRBcmdMaXN0KGFBcmdMaXN0OiBBcmd1bWVudHNMaXN0KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gdGhpcy5fYXJnTGlzdCA9PT0gbnVsbDtcclxuICAgIHRoaXMuX2FyZ0xpc3QgPSBhQXJnTGlzdDtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgc2V0IHRoZSBhcmdMaXN0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImFBcmdMaXN0XCI+PC9wYXJhbT5cclxuICBzZXRSb3V0ZVBhcmFtTGlzdChyb3V0ZVBhcmFtczogTGlzdDxhbnk+KTogdm9pZCB7XHJcbiAgICB0aGlzLl9yb3V0ZVBhcmFtcyA9IHJvdXRlUGFyYW1zO1xyXG4gIH1cclxuXHJcbiAgZ2V0Um91dGVQYXJhbUxpc3QoKTogTGlzdDxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9yb3V0ZVBhcmFtcztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzZXQgYSB2YWx1ZSB0byB0aGUgaW1tZWRpYXRlIGZsYWdcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidmFsXCI+dGhlIHZhbHVlIHRvIHVzZTwvcGFyYW0+XHJcbiAgc2V0SW1tZWRpYXRlKHZhbDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5faW1tZWRpYXRlID0gdmFsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBpbW1lZGlhdGUgZmxhZ1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgaXNJbW1lZGlhdGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faW1tZWRpYXRlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldCB0aGUgcmVmZXJlbmNlIHRvIHRoZSB0YXNrIHdoaWNoIGlzIFwicmVzcG9uc2libGVcIiBmb3IgYSBtYWluIHByb2dyYW0gdG8gYmVjb21lIGFjdGl2ZS5cclxuICAvLy8gICBGb3IgZXhhbXBsZTogaWYgdGFzayBBIGNhbGxzIHRhc2sgQiBhbmQgQidzIGN0bElkeCBpcyBkaWZmZXJlbnQgdGhhbiBBJ3MsIHRoZW4gQidzIG1haW5cclxuICAvLy8gICBwcm9ncmFtIHdpbGwgYmUgaW5zZXJ0ZWQgaW50byB0aGUgdGFzayBoaXJhcmNoeSB0aHVzIEIgaXMgXCJyZXNwb25zaWJsZVwiIGZvciB0aGUgbWFpbiBwcmcuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInNyY1wiPnRoZSBcInJlc3BvbnNpYmxlXCIgdGFzay48L3BhcmFtPlxyXG4gIHNldE1haW5QcmdDcmVhdG9yKHNyYzogVGFza0Jhc2UpOiB2b2lkIHtcclxuICAgIHRoaXMuX21wcmdDcmVhdG9yID0gc3JjO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCB0aGUgdGFzayB3aGljaCBpcyBcInJlc3BvbnNpYmxlXCIgZm9yIGEgbWFpbiBwcm9ncmFtJ3MgZXhlY3V0aW9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IHRoZSBcInJlc3BvbnNpYmxlXCIgdGFzay48L3JldHVybnM+XHJcbiAgZ2V0TWFpblByZ0NyZWF0b3IoKTogVGFza0Jhc2Uge1xyXG4gICAgcmV0dXJuIHRoaXMuX21wcmdDcmVhdG9yO1xyXG4gIH1cclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzZXRzIHRoZSBpc1JlYWxSZWZyZXNoIGZsYWcgdG8gYSBnaXZlbiB2YWx1ZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc2V0SXNSZWFsUmVmcmVzaCh2YWw6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX2lzUmVhbFJlZnJlc2ggPSB2YWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgdHlwZSBvZiBhIHJlZnJlc2ggZXZlbnQgdHJ1ZSBpcyByZWFsIHJlZnJlc2ggZS5pLiBvbmUgaW52b2tlZCBkaXJlY3RsbHkgYnkgdGhlIHVzZXJcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldFJlZnJlc2hUeXBlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzUmVhbFJlZnJlc2g7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgbWFyayB0aGUgZXZlbnQgYXMgYW4gZXZlbnQgd2hpY2ggd2FzIGNyZWF0ZWQgYnkgdGhlIHNlcnZlclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc2V0RnJvbVNlcnZlcigpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Zyb21TZXJ2ZXIgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIG1hcmsgdGhlIGV2ZW50IGFzIGFuIGV2ZW50IHdoaWNoIHdhcyBub3QgY3JlYXRlZCBieSB0aGUgc2VydmVyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICByZXNldEZyb21TZXJ2ZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9mcm9tU2VydmVyID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHJldHVybnM+IGFuIGluZGljYXRpb24gd2hlYXRoZXIgdGhlIHNlcnZlciBjcmVhdGVkIHRoaXMgZXZlbnRcclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIGlzRnJvbVNlcnZlcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9mcm9tU2VydmVyO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxyZXR1cm5zPiBhbiBpbmRpY2F0aW9uIHdoZWF0aGVyIHRoZSBldmVudCBpcyBhIHBhcnQgb2YgcXVpdCBwcm9jZXNzXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBpc1F1aXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRTdWJUeXBlID09PSBFdmVudFN1YlR5cGUuQ2FuY2VsSXNRdWl0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEluZGljYXRlcyB0aGF0IHdlIGRvIG5vdCB3YW50IHRoZSBNR19BQ1RfQ0FOQ0VMIHRvIHBlcmZvcm0gcm9sbGJhY2suXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIFJvbGxiYWNrSW5DYW5jZWwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRTdWJUeXBlICE9PSBFdmVudFN1YlR5cGUuQ2FuY2VsV2l0aE5vUm9sbGJhY2s7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICB3aGlsZSBleGl0IHRoZSB0YXNrIGR1ZSBlcnJvciAoY2FuIGJlIG9uIGFueSBlcnJvciBpbiBkYXRhYmFzZSBpbiBub24gaW50ZXJhY3RpdmUpXHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBFeGl0RHVlVG9FcnJvcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9ldmVudFN1YlR5cGUgPT09IEV2ZW50U3ViVHlwZS5FeGl0RHVlVG9FcnJvcjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBJbmRpY2F0ZXMgdGhhdCB3ZSBkbyBub3Qgd2FudCB0aGUgTUdfQUNUX0NBTkNFTCB0byBwZXJmb3JtIHJvbGxiYWNrLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBSdFZpZXdSZWZyZXNoVXNlQ3VycmVudFJvdygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9ldmVudFN1YlR5cGUgPT09IEV2ZW50U3ViVHlwZS5SdFJlZnJlc2hWaWV3VXNlQ3VycmVudFJvdztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzZXRzIHN1YiBldmVudCB0eXBlICh1c2UgZm9yIGNhbmNlbCAmIHJ0X3ZpZXdfcmVmcmVzaCBhY3Rpb24pXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBTZXRFdmVudFN1YlR5cGUoZXZlbnRTdWJUeXBlOiBFdmVudFN1YlR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMuX2V2ZW50U3ViVHlwZSA9IGV2ZW50U3ViVHlwZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdGhlIEZpZWxkQmFzZSB3aG9zZSBjaGFuZ2UgdHJpZ2dlcmVkIHRoaXMgZXZlbnRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz5yZWZlcmVuY2UgdG8gdGhlIGZpZWxkIHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudDwvcmV0dXJucz5cclxuICBnZXRGbGQoKTogR3VpRmllbGRCYXNlIHtcclxuICAgIHJldHVybiB0aGlzLl9ldmVudEZsZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBHdWkgRXZlbnQgLSBldmVudCB0aGF0IHdlcmUgYWRkZWQgYnkgR3VpIExheWVyLCBsaWtlIGNsaWNrLCB0aW1lciwgZWN0XHJcbiAgLy8vICAgRm9yIGFsbCB0aGlzIGV2ZW50IHRoZSBwcmlvcml0eSBpcyBsb3dcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gdHJ1ZSBmb3IgR1VJIEV2ZW50cyA8L3JldHVybnM+XHJcbiAgaXNHdWlUcmlnZ2VyZWRFdmVudCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9ndWlUcmlnZ2VyZWRFdmVudDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gcHJpb3JpdHkgPC9yZXR1cm5zPlxyXG4gIGdldFByaW9yaXR5KCk6IFByaW9yaXR5IHtcclxuICAgIHJldHVybiB0aGlzLl9wcmlvcml0eTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzZXRzIHByaW9yaXR5XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInByaW9yaXR5XCI+IDwvcGFyYW0+XHJcbiAgc2V0UHJpb3JpdHkocHJpb3JpdHk6IFByaW9yaXR5KTogdm9pZCB7XHJcbiAgICB0aGlzLl9wcmlvcml0eSA9IHByaW9yaXR5O1xyXG4gIH1cclxuXHJcbiAgaXNJZGxlVGltZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNJZGxlVGltZXI7XHJcbiAgfVxyXG5cclxuICBnZXRWYWx1ZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbDtcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKHZhbDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl92YWwgPSB2YWw7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0U3RhcnRTZWxlY3Rpb24oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25TdGFydDtcclxuICB9XHJcblxyXG4gIGdldEVuZFNlbGVjdGlvbigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbkVuZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzZXRzIHNldEVkaXRQYXJtc1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzdGFydFwiPnN0YXJ0IHNlbGVjdGlvbjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJlbmRcIj5lbmQgc2VsZWN0aW9uPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRleHRcIj50aGUgdGV4dCBiZWluZyB3cml0dGVuPC9wYXJhbT5cclxuICBzZXRFZGl0UGFybXMoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIsIHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2VsZWN0aW9uU3RhcnQgPSBzdGFydDtcclxuICAgIHRoaXMuX3NlbGVjdGlvbkVuZCA9IGVuZDtcclxuICAgIHRoaXMuc2V0VmFsdWUodGV4dCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0cnVlIGZvciBwcm9kdWNlQ2xpY2sgZmxhZ1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBpc1Byb2R1Y2VDbGljaygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9wcm9kdWNlQ2xpY2s7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgc2V0IHByb2R1Y2UgY2xpY2tcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwicHJvZHVjZUNsaWNrXCI+PC9wYXJhbT5cclxuICBzZXRQcm9kdWNlQ2xpY2socHJvZHVjZUNsaWNrOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wcm9kdWNlQ2xpY2sgPSBwcm9kdWNlQ2xpY2s7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCB0aGUgYWN0aW9uIGxpc3QgdG8gZW5hYmxlL2Rpc2FibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgZ2V0QWN0RW5hYmxlTGlzdCgpOiBudW1iZXJbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0RW5hYmxlTGlzdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gc2VuZCBhbGwgZmxhZ1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBpc1NlbmRBbGwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VuZEFsbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzZXQgc2VuZGFsbCBmbGFnXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInNlbmRBbGxcIj4gPC9wYXJhbT5cclxuICBzZXRTZW5kQWxsKHNlbmRBbGw6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX3NlbmRBbGwgPSBzZW5kQWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENoZWNrIGlmIHRoaXMgZXZlbnQgaXMgYmxvY2tlZCBieSB0aGUgY3VycmVudGx5IGFjdGl2ZSB3aW5kb3cuIElmIHRoZVxyXG4gIC8vLyAgIGN1cnJlbnQgd2luZG93IGlzIG1vZGFsLCBhbmQgdGhlIGV2ZW50IGRlZmluZWQgaW4gb25lIG9mIGl0cyBhbmNlc3RvcnMsXHJcbiAgLy8vICAgdGhlIGV2ZW50IHNob3VsZCBub3QgYmUgZXhlY3V0ZWQuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImFjdGl2ZVdpbmRvd0RhdGFcIj5UaGUgTUdEYXRhIG9iamVjdCBkZXNjcmliaW5nIHRoZSBjdXJyZW50bHkgYWN0aXZlIHdpbmRvdy48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz5cclxuICAvLy8gICBUaGUgbWV0aG9kIHJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudGx5IGFjdGl2ZSB3aW5kb3cgaXMgbW9kYWwgaXMgYVxyXG4gIC8vLyAgIGRlc2NlbmRhbnQgb2YgdGhlIGV2ZW50J3MgdGFzay4gT3RoZXJ3aXNlIGl0IHJldHVybnMgZmFsc2UuXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBwdWJsaWMgaXNCbG9ja2VkQnlNb2RhbFdpbmRvdyhhY3RpdmVXaW5kb3dEYXRhOiBNR0RhdGEpOiBib29sZWFuIHtcclxuICAgIGlmIChhY3RpdmVXaW5kb3dEYXRhLklzTW9kYWwpIHtcclxuICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgZXZlbnQncyB0YXNrIGlzIGFuIGFuY2VzdG9yIG9mIHRoZSBhY3RpdmUgd2luZG93J3MgdGFzay5cclxuICAgICAgbGV0IGV2ZW50VGFzazogVGFza0Jhc2UgPSB0aGlzLmdldFRhc2soKTtcclxuICAgICAgbGV0IGJhc2VUYXNrOiBUYXNrQmFzZSA9IGFjdGl2ZVdpbmRvd0RhdGEuZ2V0VGFzaygwKTtcclxuICAgICAgaWYgKGV2ZW50VGFzayAhPT0gYmFzZVRhc2sgJiYgYmFzZVRhc2suaXNEZXNjZW5kZW50T2YoZXZlbnRUYXNrKSlcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gTlN0cmluZy5Gb3JtYXQoXCJ7e1JURXZlbnQgezB9ICh7MX0pLCB0eXBlIHsyfXszfX19XCIsIFtcclxuICAgICAgdGhpcy5nZXRCcmtMZXZlbCgpLCB0aGlzLkludGVybmFsRXZlbnQsIHRoaXMuX3R5cGUsICh0aGlzLl90YXNrID09PSBudWxsKSA/IFwiXCIgOiAoXCIgb24gXCIgKyB0aGlzLl90YXNrKVxyXG4gICAgXSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Event } from "./Event";
|
2
|
-
export class RunTimeEventBase extends Event {
|
3
|
-
}
|
1
|
+
import { Event } from "./Event";
|
2
|
+
export class RunTimeEventBase extends Event {
|
3
|
+
}
|
4
4
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnVuVGltZUV2ZW50QmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvZXZlbnQvUnVuVGltZUV2ZW50QmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBSTlCLE1BQU0sT0FBZ0IsZ0JBQWlCLFNBQVEsS0FBSztDQUVuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RXZlbnR9IGZyb20gXCIuL0V2ZW50XCI7XHJcbmltcG9ydCB7UHJpb3JpdHl9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcblxyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJ1blRpbWVFdmVudEJhc2UgZXh0ZW5kcyBFdmVudCB7XHJcbiAgYWJzdHJhY3QgZ2V0UHJpb3JpdHkoKTogUHJpb3JpdHk7XHJcbn1cclxuXHJcbiJdfQ==
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import { List } from '@magic-xpa/mscorelib';
|
2
|
+
import { Logger, XMLConstants } from '@magic-xpa/utils';
|
3
|
+
import { Event } from './Event';
|
4
|
+
import { ConstInterface } from '../ConstInterface';
|
5
|
+
export class UserEventsTable {
|
6
|
+
_userEventsTab = null;
|
7
|
+
constructor() {
|
8
|
+
this._userEventsTab = new List();
|
9
|
+
}
|
10
|
+
fillData(tsk, parser) {
|
11
|
+
while (this.initInnerObjects(parser, parser.getNextTag(), tsk)) {
|
12
|
+
}
|
13
|
+
}
|
14
|
+
initInnerObjects(parser, foundTagName, tsk) {
|
15
|
+
if (foundTagName === null)
|
16
|
+
return false;
|
17
|
+
switch (foundTagName) {
|
18
|
+
case ConstInterface.MG_TAG_EVENT: {
|
19
|
+
let evt = new Event();
|
20
|
+
evt.fillData(parser, tsk);
|
21
|
+
this._userEventsTab.push(evt);
|
22
|
+
break;
|
23
|
+
}
|
24
|
+
case ConstInterface.MG_TAG_USER_EVENTS:
|
25
|
+
parser.setCurrIndex(parser.getXMLdata().indexOf(XMLConstants.TAG_CLOSE, parser.getCurrIndex()) + 1);
|
26
|
+
break;
|
27
|
+
case ConstInterface.MG_TAG_USER_EVENTS_END:
|
28
|
+
parser.setCurrIndex2EndOfTag();
|
29
|
+
return false;
|
30
|
+
default:
|
31
|
+
Logger.Instance.WriteExceptionToLogWithMsg("There is no such tag in UserEventsTable.initInnerObjects : " + foundTagName);
|
32
|
+
return false;
|
33
|
+
}
|
34
|
+
return true;
|
35
|
+
}
|
36
|
+
getEvent(idx) {
|
37
|
+
if (idx < 0 || this._userEventsTab === null || idx >= this._userEventsTab.length)
|
38
|
+
return null;
|
39
|
+
return this._userEventsTab.get_Item(idx);
|
40
|
+
}
|
41
|
+
getSize() {
|
42
|
+
if (this._userEventsTab === null)
|
43
|
+
return 0;
|
44
|
+
return this._userEventsTab.length;
|
45
|
+
}
|
46
|
+
}
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlckV2ZW50c1RhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9ldmVudC9Vc2VyRXZlbnRzVGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFFbkUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbkQsTUFBTSxPQUFPLGVBQWU7SUFDbEIsY0FBYyxHQUFnQixJQUFJLENBQUM7SUFLM0M7UUFDRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksSUFBSSxFQUFTLENBQUM7SUFDMUMsQ0FBQztJQUtELFFBQVEsQ0FBQyxHQUFTLEVBQUMsTUFBaUI7UUFDbEMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pFLENBQUM7SUFDSCxDQUFDO0lBTU8sZ0JBQWdCLENBQUMsTUFBaUIsRUFBRSxZQUFvQixFQUFFLEdBQVM7UUFDekUsSUFBSSxZQUFZLEtBQUssSUFBSTtZQUN2QixPQUFPLEtBQUssQ0FBQztRQUVmLFFBQVEsWUFBWSxFQUFFLENBQUM7WUFDckIsS0FBSyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztnQkFDakMsSUFBSSxHQUFHLEdBQVUsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDN0IsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM5QixNQUFNO1lBQ1IsQ0FBQztZQUNELEtBQUssY0FBYyxDQUFDLGtCQUFrQjtnQkFDcEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBRXBHLE1BQU07WUFFUixLQUFLLGNBQWMsQ0FBQyxzQkFBc0I7Z0JBQ3hDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2dCQUMvQixPQUFPLEtBQUssQ0FBQztZQUVmO2dCQUNFLE1BQU0sQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsNkRBQTZELEdBQUcsWUFBWSxDQUFDLENBQUM7Z0JBQ3pILE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFNRCxRQUFRLENBQUMsR0FBVztRQUVsQixJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTTtZQUM5RSxPQUFPLElBQUksQ0FBQztRQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQU1ELE9BQU87UUFFTCxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssSUFBSTtZQUM5QixPQUFPLENBQUMsQ0FBQztRQUNYLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7SUFDcEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlzdCB9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuaW1wb3J0IHsgTG9nZ2VyLCBYTUxDb25zdGFudHMsIFhtbFBhcnNlciB9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vdGFza3MvVGFzayc7XHJcbmltcG9ydCB7IEV2ZW50IH0gZnJvbSAnLi9FdmVudCc7XHJcbmltcG9ydCB7IENvbnN0SW50ZXJmYWNlIH0gZnJvbSAnLi4vQ29uc3RJbnRlcmZhY2UnO1xyXG5cclxuLy8gVXNlciBldmVudHMgdGFibGU6PHVzZXJldmVudHM+IGV2ZW50IOKApjwvdXNlcmV2ZW50cz5cclxuZXhwb3J0IGNsYXNzIFVzZXJFdmVudHNUYWJsZSB7XHJcbiAgcHJpdmF0ZSBfdXNlckV2ZW50c1RhYjogTGlzdDxFdmVudD4gPSBudWxsO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLl91c2VyRXZlbnRzVGFiID0gbmV3IExpc3Q8RXZlbnQ+KCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcGFyc2UgaW5wdXQgc3RyaW5nIGFuZCBmaWxsIGlubmVyIGRhdGEgOiBWZWN0b3IgdXNlckV2ZW50c1RhYlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZmlsbERhdGEodHNrOiBUYXNrLHBhcnNlcjogWG1sUGFyc2VyKTogdm9pZCB7XHJcbiAgICB3aGlsZSAodGhpcy5pbml0SW5uZXJPYmplY3RzKHBhcnNlciwgcGFyc2VyLmdldE5leHRUYWcoKSwgdHNrKSkge1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGFsbG9jYXRlIGFuZCBmaWxsIGlubmVyIG9iamVjdHMgb2YgdGhlIGNsYXNzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImZvdW5kVGFnTmFtZVwiPnBvc3NpYmxlICB0YWcgbmFtZSwgbmFtZSBvZiBvYmplY3QsIHdoaWNoIG5lZWQgYmUgYWxsb2NhdGVkIDwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBpbml0SW5uZXJPYmplY3RzKHBhcnNlcjogWG1sUGFyc2VyLCBmb3VuZFRhZ05hbWU6IHN0cmluZywgdHNrOiBUYXNrKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoZm91bmRUYWdOYW1lID09PSBudWxsKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgc3dpdGNoIChmb3VuZFRhZ05hbWUpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19UQUdfRVZFTlQ6IHtcclxuICAgICAgICBsZXQgZXZ0OiBFdmVudCA9IG5ldyBFdmVudCgpO1xyXG4gICAgICAgIGV2dC5maWxsRGF0YShwYXJzZXIsIHRzayk7XHJcbiAgICAgICAgdGhpcy5fdXNlckV2ZW50c1RhYi5wdXNoKGV2dCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19UQUdfVVNFUl9FVkVOVFM6XHJcbiAgICAgICAgcGFyc2VyLnNldEN1cnJJbmRleChwYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoWE1MQ29uc3RhbnRzLlRBR19DTE9TRSwgcGFyc2VyLmdldEN1cnJJbmRleCgpKSArIDEpO1xyXG4gICAgICAgIC8vIGVuZCBvZiBvdXRlciB0YWcgYW5kIGl0cyBcIj5cIlxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19UQUdfVVNFUl9FVkVOVFNfRU5EOlxyXG4gICAgICAgIHBhcnNlci5zZXRDdXJySW5kZXgyRW5kT2ZUYWcoKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhcIlRoZXJlIGlzIG5vIHN1Y2ggdGFnIGluIFVzZXJFdmVudHNUYWJsZS5pbml0SW5uZXJPYmplY3RzIDogXCIgKyBmb3VuZFRhZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCB1c2VyIGV2ZW50IGJ5IGl0cyBpbmRleCBpbiB0aGUgdmVjdG9yXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImlkeFwiPnRoZSBpbmRleCBvZiB0aGUgcmVxdWVzdGVkIGV2ZW50IDwvcGFyYW0+XHJcbiAgZ2V0RXZlbnQoaWR4OiBudW1iZXIpOiBFdmVudCB7XHJcblxyXG4gICAgaWYgKGlkeCA8IDAgfHwgdGhpcy5fdXNlckV2ZW50c1RhYiA9PT0gbnVsbCB8fCBpZHggPj0gdGhpcy5fdXNlckV2ZW50c1RhYi5sZW5ndGgpXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIHRoaXMuX3VzZXJFdmVudHNUYWIuZ2V0X0l0ZW0oaWR4KTtcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IHNpemUgb2YgdGhlIHVzZXIgZXZlbnRzIHRhYmxlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRTaXplKCk6IG51bWJlciB7XHJcblxyXG4gICAgaWYgKHRoaXMuX3VzZXJFdmVudHNUYWIgPT09IG51bGwpXHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgcmV0dXJuIHRoaXMuX3VzZXJFdmVudHNUYWIubGVuZ3RoO1xyXG4gIH1cclxufVxyXG4iXX0=
|