@magic-xpa/engine 4.800.0 → 4.801.0-dev000.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/esm2020/index.mjs +190 -0
  2. package/{esm2015/magic-xpa-engine.js → esm2020/magic-xpa-engine.mjs} +0 -0
  3. package/esm2020/src/AccessHelper.mjs +3 -0
  4. package/esm2020/src/ClientManager.mjs +403 -0
  5. package/esm2020/src/CommandsProcessorBase.mjs +58 -0
  6. package/esm2020/src/CommandsProcessorManager.mjs +26 -0
  7. package/esm2020/src/CommandsTable.mjs +163 -0
  8. package/{esm2015/src/ConstInterface.js → esm2020/src/ConstInterface.mjs} +0 -0
  9. package/{esm2015/src/CurrentClientVersion.js → esm2020/src/CurrentClientVersion.mjs} +2 -2
  10. package/{esm2015/src/FlowMonitorInterface.js → esm2020/src/FlowMonitorInterface.mjs} +0 -0
  11. package/esm2020/src/GUIManager.mjs +63 -0
  12. package/{esm2015/src/GlobalCommandsManager.js → esm2020/src/GlobalCommandsManager.mjs} +0 -0
  13. package/esm2020/src/GuiEventsProcessor.mjs +171 -0
  14. package/{esm2015/src/ICommandsTable.js → esm2020/src/ICommandsTable.mjs} +1 -0
  15. package/{esm2015/src/ServerConfig.js → esm2020/src/ServerConfig.mjs} +0 -0
  16. package/{esm2015/src/bridge/IGuiEvent.js → esm2020/src/bridge/IGuiEvent.mjs} +0 -0
  17. package/esm2020/src/bridge/MagicBridge.mjs +41 -0
  18. package/{esm2015/src/commands/ClientOriginatedCommandTaskTag.js → esm2020/src/commands/ClientOriginatedCommandTaskTag.mjs} +0 -0
  19. package/{esm2015/src/commands/ClientToServer/AddUserLocateDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserLocateDataViewCommand.mjs} +0 -0
  20. package/{esm2015/src/commands/ClientToServer/AddUserRangeDataviewCommand.js → esm2020/src/commands/ClientToServer/AddUserRangeDataviewCommand.mjs} +0 -0
  21. package/{esm2015/src/commands/ClientToServer/AddUserSortDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserSortDataViewCommand.mjs} +0 -0
  22. package/esm2020/src/commands/ClientToServer/BrowserEscEventCommand.mjs +23 -0
  23. package/esm2020/src/commands/ClientToServer/ClientOriginatedCommand.mjs +15 -0
  24. package/esm2020/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs +60 -0
  25. package/esm2020/src/commands/ClientToServer/ColumnSortEventCommand.mjs +26 -0
  26. package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +278 -0
  27. package/{esm2015/src/commands/ClientToServer/CommandSerializationHelper.js → esm2020/src/commands/ClientToServer/CommandSerializationHelper.mjs} +0 -0
  28. package/esm2020/src/commands/ClientToServer/ComputeEventCommand.mjs +23 -0
  29. package/esm2020/src/commands/ClientToServer/ContextTerminationEventCommand.mjs +21 -0
  30. package/esm2020/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs +20 -0
  31. package/{esm2015/src/commands/ClientToServer/ControlItemsRefreshCommand.js → esm2020/src/commands/ClientToServer/ControlItemsRefreshCommand.mjs} +0 -0
  32. package/{esm2015/src/commands/ClientToServer/DataViewOutputCommand.js → esm2020/src/commands/ClientToServer/DataViewOutputCommand.mjs} +0 -0
  33. package/{esm2015/src/commands/ClientToServer/DataviewCommand.js → esm2020/src/commands/ClientToServer/DataviewCommand.mjs} +2 -2
  34. package/esm2020/src/commands/ClientToServer/EvaluateCommand.mjs +36 -0
  35. package/esm2020/src/commands/ClientToServer/EventCommand.mjs +40 -0
  36. package/esm2020/src/commands/ClientToServer/ExecOperCommand.mjs +67 -0
  37. package/esm2020/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +22 -0
  38. package/{esm2015/src/commands/ClientToServer/GlobalParamsQueryCommand.js → esm2020/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs} +0 -0
  39. package/{esm2015/src/commands/ClientToServer/ICommandTaskTag.js → esm2020/src/commands/ClientToServer/ICommandTaskTag.mjs} +1 -0
  40. package/esm2020/src/commands/ClientToServer/IndexChangeEventCommand.mjs +21 -0
  41. package/esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs +23 -0
  42. package/esm2020/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs +23 -0
  43. package/esm2020/src/commands/ClientToServer/QueryCommand.mjs +21 -0
  44. package/esm2020/src/commands/ClientToServer/RecomputeCommand.mjs +27 -0
  45. package/esm2020/src/commands/ClientToServer/RefreshEventCommand.mjs +27 -0
  46. package/esm2020/src/commands/ClientToServer/RefreshScreenEventCommand.mjs +24 -0
  47. package/esm2020/src/commands/ClientToServer/RollbackEventCommand.mjs +39 -0
  48. package/{esm2015/src/commands/ClientToServer/SelectProgramCommand.js → esm2020/src/commands/ClientToServer/SelectProgramCommand.mjs} +0 -0
  49. package/{esm2015/src/commands/ClientToServer/SetTransactionStateDataviewCommand.js → esm2020/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs} +0 -0
  50. package/esm2020/src/commands/ClientToServer/SubformOpenEventCommand.mjs +21 -0
  51. package/esm2020/src/commands/ClientToServer/SubformRefreshEventCommand.mjs +24 -0
  52. package/esm2020/src/commands/ClientToServer/TransactionCommand.mjs +28 -0
  53. package/{esm2015/src/commands/ClientToServer/UnloadCommand.js → esm2020/src/commands/ClientToServer/UnloadCommand.mjs} +0 -0
  54. package/esm2020/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs +18 -0
  55. package/esm2020/src/commands/DataViewCommandBase.mjs +10 -0
  56. package/{esm2015/src/commands/IClientCommand.js → esm2020/src/commands/IClientCommand.mjs} +1 -0
  57. package/esm2020/src/commands/IClientTargetedCommand.mjs +9 -0
  58. package/{esm2015/src/commands/IClientToServerCommandInfo.js → esm2020/src/commands/IClientToServerCommandInfo.mjs} +1 -0
  59. package/esm2020/src/commands/ServerToClient/AbortCommand.mjs +65 -0
  60. package/esm2020/src/commands/ServerToClient/AddLocateCommand.mjs +22 -0
  61. package/esm2020/src/commands/ServerToClient/AddRangeCommand.mjs +62 -0
  62. package/esm2020/src/commands/ServerToClient/AddSortCommand.mjs +33 -0
  63. package/{esm2015/src/commands/ServerToClient/ClientRefreshCommand.js → esm2020/src/commands/ServerToClient/ClientRefreshCommand.mjs} +14 -17
  64. package/esm2020/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +27 -0
  65. package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +45 -0
  66. package/esm2020/src/commands/ServerToClient/OpenURLCommand.mjs +222 -0
  67. package/esm2020/src/commands/ServerToClient/ResetLocateCommand.mjs +15 -0
  68. package/esm2020/src/commands/ServerToClient/ResetRangeCommand.mjs +15 -0
  69. package/esm2020/src/commands/ServerToClient/ResetSortCommand.mjs +15 -0
  70. package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +37 -0
  71. package/esm2020/src/commands/ServerToClient/VerifyCommand.mjs +85 -0
  72. package/{esm2015/src/commands/ServerToClient/XMLBasedCommandBuilder.js → esm2020/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs} +0 -0
  73. package/{esm2015/src/communications/IConnectionStateManager.js → esm2020/src/communications/IConnectionStateManager.mjs} +1 -0
  74. package/esm2020/src/communications/InteractiveCommunicationsFailureHandler.mjs +17 -0
  75. package/{esm2015/src/data/DataSourceIdKey.js → esm2020/src/data/DataSourceIdKey.mjs} +0 -0
  76. package/esm2020/src/data/DataView.mjs +1634 -0
  77. package/{esm2015/src/data/DataViewBase.js → esm2020/src/data/DataViewBase.mjs} +0 -0
  78. package/esm2020/src/data/DataviewManager.mjs +28 -0
  79. package/esm2020/src/data/DataviewManagerBase.mjs +15 -0
  80. package/{esm2015/src/data/DvCache.js → esm2020/src/data/DvCache.mjs} +0 -0
  81. package/esm2020/src/data/Field.mjs +645 -0
  82. package/esm2020/src/data/FieldBase.mjs +18 -0
  83. package/{esm2015/src/data/FieldsTable.js → esm2020/src/data/FieldsTable.mjs} +0 -0
  84. package/{esm2015/src/data/IRecordsTable.js → esm2020/src/data/IRecordsTable.mjs} +1 -0
  85. package/{esm2015/src/data/Key.js → esm2020/src/data/Key.mjs} +0 -0
  86. package/esm2020/src/data/Record.mjs +846 -0
  87. package/{esm2015/src/data/RecordOutOfDataViewException.js → esm2020/src/data/RecordOutOfDataViewException.mjs} +0 -0
  88. package/esm2020/src/data/RecordsTable.mjs +267 -0
  89. package/esm2020/src/data/TaskTransactionManager.mjs +103 -0
  90. package/esm2020/src/data/XMLBasedDcValuesBuilder.mjs +74 -0
  91. package/{esm2015/src/enums.js → esm2020/src/enums.mjs} +0 -0
  92. package/esm2020/src/env/EnvVariablesTable.mjs +340 -0
  93. package/esm2020/src/env/Environment.mjs +554 -0
  94. package/{esm2015/src/env/ILanguageData.js → esm2020/src/env/ILanguageData.mjs} +1 -0
  95. package/esm2020/src/env/LanguageData.mjs +222 -0
  96. package/esm2020/src/env/MirrorString.mjs +66 -0
  97. package/{esm2015/src/event/ActionManager.js → esm2020/src/event/ActionManager.mjs} +0 -0
  98. package/esm2020/src/event/Event.mjs +1436 -0
  99. package/esm2020/src/event/EventHandler.mjs +773 -0
  100. package/esm2020/src/event/EventHandlerPosition.mjs +201 -0
  101. package/esm2020/src/event/EventsManager.mjs +2983 -0
  102. package/esm2020/src/event/IEventsManager.mjs +7 -0
  103. package/esm2020/src/event/RunTimeEvent.mjs +406 -0
  104. package/{esm2015/src/event/RunTimeEventBase.js → esm2020/src/event/RunTimeEventBase.mjs} +0 -0
  105. package/{esm2015/src/event/UserEventsTable.js → esm2020/src/event/UserEventsTable.mjs} +0 -0
  106. package/{esm2015/src/exp/ExpTable.js → esm2020/src/exp/ExpTable.mjs} +0 -0
  107. package/esm2020/src/exp/Expression.mjs +200 -0
  108. package/{esm2015/src/exp/ExpressionDict.js → esm2020/src/exp/ExpressionDict.mjs} +0 -0
  109. package/esm2020/src/exp/ExpressionEvaluator.mjs +4373 -0
  110. package/esm2020/src/exp/ExpressionLocalJpn.mjs +314 -0
  111. package/esm2020/src/exp/GlobalParamsTable.mjs +85 -0
  112. package/esm2020/src/exp/YesNoExp.mjs +41 -0
  113. package/{esm2015/src/gui/CreatedFormVector.js → esm2020/src/gui/CreatedFormVector.mjs} +0 -0
  114. package/esm2020/src/gui/FormsTable.mjs +66 -0
  115. package/esm2020/src/gui/MgControl.mjs +357 -0
  116. package/esm2020/src/gui/MgForm.mjs +1195 -0
  117. package/esm2020/src/http/HttpManager.mjs +97 -0
  118. package/esm2020/src/http/client/HttpClientAsync.mjs +67 -0
  119. package/esm2020/src/http/client/HttpClientBase.mjs +148 -0
  120. package/{esm2015/src/http/client/HttpClientEvents.js → esm2020/src/http/client/HttpClientEvents.mjs} +0 -0
  121. package/esm2020/src/http/client/HttpClientSync.mjs +42 -0
  122. package/{esm2015/src/http/client/HttpUtility.js → esm2020/src/http/client/HttpUtility.mjs} +0 -0
  123. package/{esm2015/src/http/client/ICommunicationsFailureHandler.js → esm2020/src/http/client/ICommunicationsFailureHandler.mjs} +1 -0
  124. package/esm2020/src/remote/AddUserLocateRemoteDataViewCommand.mjs +18 -0
  125. package/esm2020/src/remote/AddUserRangeRemoteDataViewCommand.mjs +18 -0
  126. package/esm2020/src/remote/AddUserSortRemoteDataViewCommand.mjs +18 -0
  127. package/esm2020/src/remote/RemoteCommandsProcessor.mjs +872 -0
  128. package/esm2020/src/remote/RemoteControlItemsRefreshCommand.mjs +25 -0
  129. package/esm2020/src/remote/RemoteDataViewCommandBase.mjs +24 -0
  130. package/{esm2015/src/remote/RemoteDataViewCommandFactory.js → esm2020/src/remote/RemoteDataViewCommandFactory.mjs} +0 -0
  131. package/esm2020/src/remote/RemoteDataViewCommandUpdateNonModifiable.mjs +16 -0
  132. package/esm2020/src/remote/RemoteDataviewManager.mjs +17 -0
  133. package/esm2020/src/remote/RemoteInitDataViewCommand.mjs +11 -0
  134. package/esm2020/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +17 -0
  135. package/esm2020/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +13 -0
  136. package/esm2020/src/remote/ResetUserSortRemoteDataviewCommand.mjs +16 -0
  137. package/esm2020/src/remote/ServerError.mjs +44 -0
  138. package/{esm2015/src/remote/SetTransactionStateRemoteDataViewCommand.js → esm2020/src/remote/SetTransactionStateRemoteDataViewCommand.mjs} +8 -11
  139. package/esm2020/src/rt/Argument.mjs +274 -0
  140. package/esm2020/src/rt/ArgumentsList.mjs +103 -0
  141. package/esm2020/src/rt/Boundary.mjs +158 -0
  142. package/{esm2015/src/rt/CompMainPrgTable.js → esm2020/src/rt/CompMainPrgTable.mjs} +0 -0
  143. package/esm2020/src/rt/DataviewHeaderBase.mjs +96 -0
  144. package/esm2020/src/rt/DataviewHeaderFactory.mjs +7 -0
  145. package/{esm2015/src/rt/DataviewHeaders.js → esm2020/src/rt/DataviewHeaders.mjs} +0 -0
  146. package/esm2020/src/rt/DataviewHeadersSaxHandler.mjs +39 -0
  147. package/{esm2015/src/rt/ExecutionStack.js → esm2020/src/rt/ExecutionStack.mjs} +0 -0
  148. package/{esm2015/src/rt/ExecutionStackEntry.js → esm2020/src/rt/ExecutionStackEntry.mjs} +0 -0
  149. package/{esm2015/src/rt/HandlersTable.js → esm2020/src/rt/HandlersTable.mjs} +0 -0
  150. package/{esm2015/src/rt/IDataSourceViewDefinition.js → esm2020/src/rt/IDataSourceViewDefinition.mjs} +1 -0
  151. package/{esm2015/src/rt/IDataviewHeader.js → esm2020/src/rt/IDataviewHeader.mjs} +1 -0
  152. package/{esm2015/src/rt/IResultValue.js → esm2020/src/rt/IResultValue.mjs} +1 -0
  153. package/{esm2015/src/rt/LastFocusedManager.js → esm2020/src/rt/LastFocusedManager.mjs} +0 -0
  154. package/esm2020/src/rt/Operation.mjs +745 -0
  155. package/{esm2015/src/rt/OperationTable.js → esm2020/src/rt/OperationTable.mjs} +0 -0
  156. package/esm2020/src/rt/Recompute.mjs +355 -0
  157. package/{esm2015/src/rt/RecomputeTable.js → esm2020/src/rt/RecomputeTable.mjs} +0 -0
  158. package/esm2020/src/rt/RemoteDataviewHeader.mjs +105 -0
  159. package/{esm2015/src/rt/ResultValue.js → esm2020/src/rt/ResultValue.mjs} +0 -0
  160. package/esm2020/src/rt/TableCache.mjs +177 -0
  161. package/esm2020/src/rt/TableCacheManager.mjs +67 -0
  162. package/esm2020/src/rt/Transaction.mjs +54 -0
  163. package/{esm2015/src/security/UserDetails.js → esm2020/src/security/UserDetails.mjs} +0 -0
  164. package/{esm2015/src/tasks/IMGDataCollection.js → esm2020/src/tasks/IMGDataCollection.mjs} +1 -0
  165. package/esm2020/src/tasks/MGData.mjs +552 -0
  166. package/esm2020/src/tasks/MGDataCollection.mjs +259 -0
  167. package/{esm2015/src/tasks/MenusDeserializer.js → esm2020/src/tasks/MenusDeserializer.mjs} +0 -0
  168. package/{esm2015/src/tasks/RCTimer.js → esm2020/src/tasks/RCTimer.mjs} +0 -0
  169. package/esm2020/src/tasks/RemoteTaskService.mjs +45 -0
  170. package/esm2020/src/tasks/Task.mjs +2501 -0
  171. package/{esm2015/src/tasks/TaskBase.js → esm2020/src/tasks/TaskBase.mjs} +22 -1
  172. package/esm2020/src/tasks/TaskServiceBase.mjs +25 -0
  173. package/esm2020/src/tasks/TasksTable.mjs +80 -0
  174. package/{esm2015/src/tasks/sort/Sort.js → esm2020/src/tasks/sort/Sort.mjs} +0 -0
  175. package/esm2020/src/tasks/sort/SortCollection.mjs +72 -0
  176. package/{esm2015/src/util/ConstUtils.js → esm2020/src/util/ConstUtils.mjs} +0 -0
  177. package/{esm2015/src/util/FlowMonitorQueue.js → esm2020/src/util/FlowMonitorQueue.mjs} +15 -18
  178. package/{esm2015/src/util/HeapSort.js → esm2020/src/util/HeapSort.mjs} +0 -0
  179. package/{esm2015/src/util/IMirrorXML.js → esm2020/src/util/IMirrorXML.mjs} +2 -1
  180. package/{esm2015/src/util/IServerConfig.js → esm2020/src/util/IServerConfig.mjs} +1 -0
  181. package/{esm2015/src/util/MgBlockingQueue.js → esm2020/src/util/MgBlockingQueue.mjs} +1 -0
  182. package/esm2020/src/util/MgPriorityBlockingQueue.mjs +76 -0
  183. package/{esm2015/src/util/MgPriorityQueue.js → esm2020/src/util/MgPriorityQueue.mjs} +0 -0
  184. package/esm2020/src/util/ParamParseResult.mjs +8 -0
  185. package/esm2020/src/util/PrmMap.mjs +151 -0
  186. package/esm2020/src/util/Process.mjs +7 -0
  187. package/esm2020/src/util/ReturnResult.mjs +46 -0
  188. package/{esm2015/src/util/ReturnResultBase.js → esm2020/src/util/ReturnResultBase.mjs} +0 -0
  189. package/{esm2015/src/util/Scrambler.js → esm2020/src/util/Scrambler.mjs} +0 -0
  190. package/{esm2015/src/util/UniqueIDUtils.js → esm2020/src/util/UniqueIDUtils.mjs} +0 -0
  191. package/{esm2015/src/util/cookie.service.js → esm2020/src/util/cookie.service.mjs} +0 -0
  192. package/fesm2015/{magic-xpa-engine.js → magic-xpa-engine.mjs} +267 -254
  193. package/fesm2015/magic-xpa-engine.mjs.map +1 -0
  194. package/fesm2020/magic-xpa-engine.mjs +30705 -0
  195. package/fesm2020/magic-xpa-engine.mjs.map +1 -0
  196. package/index.d.ts +2 -0
  197. package/package.json +27 -13
  198. package/src/AccessHelper.d.ts +1 -1
  199. package/src/CommandsProcessorBase.d.ts +3 -3
  200. package/src/GuiEventsProcessor.d.ts +1 -1
  201. package/src/commands/ClientToServer/BrowserEscEventCommand.d.ts +1 -2
  202. package/src/commands/ClientToServer/ClientOriginatedCommand.d.ts +1 -2
  203. package/src/commands/ClientToServer/ColumnSortEventCommand.d.ts +1 -2
  204. package/src/commands/ClientToServer/ComputeEventCommand.d.ts +1 -2
  205. package/src/commands/ClientToServer/ContextTerminationEventCommand.d.ts +1 -2
  206. package/src/commands/ClientToServer/ContextTimeoutResetCommand.d.ts +1 -2
  207. package/src/commands/ClientToServer/DataviewCommand.d.ts +1 -2
  208. package/src/commands/ClientToServer/EvaluateCommand.d.ts +1 -2
  209. package/src/commands/ClientToServer/EventCommand.d.ts +1 -2
  210. package/src/commands/ClientToServer/ExecOperCommand.d.ts +1 -2
  211. package/src/commands/ClientToServer/FetchDataControlValuesEventCommand.d.ts +1 -2
  212. package/src/commands/ClientToServer/IndexChangeEventCommand.d.ts +1 -2
  213. package/src/commands/ClientToServer/IniputForceWriteCommand.d.ts +1 -2
  214. package/src/commands/ClientToServer/NonReversibleExitEventCommand.d.ts +1 -2
  215. package/src/commands/ClientToServer/QueryCommand.d.ts +1 -2
  216. package/src/commands/ClientToServer/RecomputeCommand.d.ts +1 -2
  217. package/src/commands/ClientToServer/RefreshEventCommand.d.ts +1 -2
  218. package/src/commands/ClientToServer/RefreshScreenEventCommand.d.ts +1 -2
  219. package/src/commands/ClientToServer/RollbackEventCommand.d.ts +1 -2
  220. package/src/commands/ClientToServer/SubformOpenEventCommand.d.ts +1 -2
  221. package/src/commands/ClientToServer/SubformRefreshEventCommand.d.ts +1 -2
  222. package/src/commands/ClientToServer/TransactionCommand.d.ts +1 -2
  223. package/src/commands/ClientToServer/WriteMessageToServerLogCommand.d.ts +1 -2
  224. package/src/commands/DataViewCommandBase.d.ts +2 -2
  225. package/src/commands/IClientTargetedCommand.d.ts +1 -1
  226. package/src/commands/ServerToClient/ClientTargetedCommandBase.d.ts +1 -1
  227. package/src/data/FieldBase.d.ts +3 -3
  228. package/src/data/Record.d.ts +2 -9
  229. package/src/data/RecordsTable.d.ts +1 -2
  230. package/src/data/XMLBasedDcValuesBuilder.d.ts +1 -1
  231. package/src/env/EnvVariablesTable.d.ts +2 -15
  232. package/src/env/Environment.d.ts +0 -3
  233. package/src/env/MirrorString.d.ts +15 -0
  234. package/src/event/Event.d.ts +0 -3
  235. package/src/event/EventsManager.d.ts +7 -8
  236. package/src/event/IEventsManager.d.ts +5 -6
  237. package/src/exp/ExpressionEvaluator.d.ts +2 -2
  238. package/src/exp/ExpressionLocalJpn.d.ts +2 -2
  239. package/src/exp/GlobalParamsTable.d.ts +2 -1
  240. package/src/gui/MgControl.d.ts +0 -2
  241. package/src/gui/MgForm.d.ts +4 -4
  242. package/src/http/client/HttpClientAsync.d.ts +2 -2
  243. package/src/http/client/HttpClientBase.d.ts +3 -3
  244. package/src/http/client/HttpClientSync.d.ts +2 -2
  245. package/src/remote/RemoteCommandsProcessor.d.ts +1 -1
  246. package/src/rt/DataviewHeaderBase.d.ts +2 -2
  247. package/src/rt/DataviewHeaderFactory.d.ts +1 -1
  248. package/src/rt/Operation.d.ts +3 -1
  249. package/src/rt/RemoteDataviewHeader.d.ts +1 -2
  250. package/src/rt/Transaction.d.ts +1 -1
  251. package/src/tasks/RemoteTaskService.d.ts +2 -3
  252. package/src/tasks/Task.d.ts +1 -1
  253. package/src/tasks/TaskBase.d.ts +7 -7
  254. package/src/tasks/TaskServiceBase.d.ts +2 -4
  255. package/src/tasks/sort/SortCollection.d.ts +2 -3
  256. package/src/util/FlowMonitorQueue.d.ts +1 -1
  257. package/src/util/IMirrorXML.d.ts +1 -1
  258. package/src/util/ParamParseResult.d.ts +6 -0
  259. package/src/util/PrmMap.d.ts +0 -6
  260. package/src/util/Process.d.ts +1 -1
  261. package/bundles/magic-xpa-engine.umd.js +0 -38066
  262. package/bundles/magic-xpa-engine.umd.js.map +0 -1
  263. package/bundles/magic-xpa-engine.umd.min.js +0 -16
  264. package/bundles/magic-xpa-engine.umd.min.js.map +0 -1
  265. package/esm2015/index.js +0 -188
  266. package/esm2015/src/AccessHelper.js +0 -3
  267. package/esm2015/src/ClientManager.js +0 -412
  268. package/esm2015/src/CommandsProcessorBase.js +0 -54
  269. package/esm2015/src/CommandsProcessorManager.js +0 -31
  270. package/esm2015/src/CommandsTable.js +0 -166
  271. package/esm2015/src/GUIManager.js +0 -72
  272. package/esm2015/src/GuiEventsProcessor.js +0 -171
  273. package/esm2015/src/bridge/MagicBridge.js +0 -44
  274. package/esm2015/src/commands/ClientToServer/BrowserEscEventCommand.js +0 -24
  275. package/esm2015/src/commands/ClientToServer/ClientOriginatedCommand.js +0 -15
  276. package/esm2015/src/commands/ClientToServer/ClientOriginatedCommandSerializer.js +0 -60
  277. package/esm2015/src/commands/ClientToServer/ColumnSortEventCommand.js +0 -26
  278. package/esm2015/src/commands/ClientToServer/CommandFactory.js +0 -283
  279. package/esm2015/src/commands/ClientToServer/ComputeEventCommand.js +0 -23
  280. package/esm2015/src/commands/ClientToServer/ContextTerminationEventCommand.js +0 -21
  281. package/esm2015/src/commands/ClientToServer/ContextTimeoutResetCommand.js +0 -20
  282. package/esm2015/src/commands/ClientToServer/EvaluateCommand.js +0 -36
  283. package/esm2015/src/commands/ClientToServer/EventCommand.js +0 -40
  284. package/esm2015/src/commands/ClientToServer/ExecOperCommand.js +0 -67
  285. package/esm2015/src/commands/ClientToServer/FetchDataControlValuesEventCommand.js +0 -22
  286. package/esm2015/src/commands/ClientToServer/IndexChangeEventCommand.js +0 -21
  287. package/esm2015/src/commands/ClientToServer/IniputForceWriteCommand.js +0 -23
  288. package/esm2015/src/commands/ClientToServer/NonReversibleExitEventCommand.js +0 -23
  289. package/esm2015/src/commands/ClientToServer/QueryCommand.js +0 -21
  290. package/esm2015/src/commands/ClientToServer/RecomputeCommand.js +0 -27
  291. package/esm2015/src/commands/ClientToServer/RefreshEventCommand.js +0 -27
  292. package/esm2015/src/commands/ClientToServer/RefreshScreenEventCommand.js +0 -24
  293. package/esm2015/src/commands/ClientToServer/RollbackEventCommand.js +0 -39
  294. package/esm2015/src/commands/ClientToServer/SubformOpenEventCommand.js +0 -21
  295. package/esm2015/src/commands/ClientToServer/SubformRefreshEventCommand.js +0 -24
  296. package/esm2015/src/commands/ClientToServer/TransactionCommand.js +0 -28
  297. package/esm2015/src/commands/ClientToServer/WriteMessageToServerLogCommand.js +0 -18
  298. package/esm2015/src/commands/DataViewCommandBase.js +0 -6
  299. package/esm2015/src/commands/IClientTargetedCommand.js +0 -6
  300. package/esm2015/src/commands/ServerToClient/AbortCommand.js +0 -68
  301. package/esm2015/src/commands/ServerToClient/AddLocateCommand.js +0 -25
  302. package/esm2015/src/commands/ServerToClient/AddRangeCommand.js +0 -65
  303. package/esm2015/src/commands/ServerToClient/AddSortCommand.js +0 -36
  304. package/esm2015/src/commands/ServerToClient/ClientTargetedCommandBase.js +0 -24
  305. package/esm2015/src/commands/ServerToClient/EnhancedVerifyCommand.js +0 -48
  306. package/esm2015/src/commands/ServerToClient/OpenURLCommand.js +0 -225
  307. package/esm2015/src/commands/ServerToClient/ResetLocateCommand.js +0 -18
  308. package/esm2015/src/commands/ServerToClient/ResetRangeCommand.js +0 -18
  309. package/esm2015/src/commands/ServerToClient/ResetSortCommand.js +0 -18
  310. package/esm2015/src/commands/ServerToClient/ResultCommand.js +0 -40
  311. package/esm2015/src/commands/ServerToClient/VerifyCommand.js +0 -88
  312. package/esm2015/src/communications/InteractiveCommunicationsFailureHandler.js +0 -20
  313. package/esm2015/src/data/DataView.js +0 -1693
  314. package/esm2015/src/data/DataviewManager.js +0 -31
  315. package/esm2015/src/data/DataviewManagerBase.js +0 -18
  316. package/esm2015/src/data/Field.js +0 -672
  317. package/esm2015/src/data/FieldBase.js +0 -9
  318. package/esm2015/src/data/Record.js +0 -914
  319. package/esm2015/src/data/RecordsTable.js +0 -267
  320. package/esm2015/src/data/TaskTransactionManager.js +0 -110
  321. package/esm2015/src/data/XMLBasedDcValuesBuilder.js +0 -74
  322. package/esm2015/src/env/EnvVariablesTable.js +0 -408
  323. package/esm2015/src/env/Environment.js +0 -563
  324. package/esm2015/src/env/LanguageData.js +0 -230
  325. package/esm2015/src/event/Event.js +0 -1449
  326. package/esm2015/src/event/EventHandler.js +0 -787
  327. package/esm2015/src/event/EventHandlerPosition.js +0 -201
  328. package/esm2015/src/event/EventsManager.js +0 -3107
  329. package/esm2015/src/event/IEventsManager.js +0 -7
  330. package/esm2015/src/event/RunTimeEvent.js +0 -406
  331. package/esm2015/src/exp/Expression.js +0 -209
  332. package/esm2015/src/exp/ExpressionEvaluator.js +0 -4441
  333. package/esm2015/src/exp/ExpressionLocalJpn.js +0 -314
  334. package/esm2015/src/exp/GlobalParamsTable.js +0 -84
  335. package/esm2015/src/exp/YesNoExp.js +0 -44
  336. package/esm2015/src/gui/FormsTable.js +0 -73
  337. package/esm2015/src/gui/MgControl.js +0 -438
  338. package/esm2015/src/gui/MgForm.js +0 -1292
  339. package/esm2015/src/http/HttpManager.js +0 -100
  340. package/esm2015/src/http/client/HttpClientAsync.js +0 -72
  341. package/esm2015/src/http/client/HttpClientBase.js +0 -148
  342. package/esm2015/src/http/client/HttpClientSync.js +0 -47
  343. package/esm2015/src/remote/AddUserLocateRemoteDataViewCommand.js +0 -21
  344. package/esm2015/src/remote/AddUserRangeRemoteDataViewCommand.js +0 -21
  345. package/esm2015/src/remote/AddUserSortRemoteDataViewCommand.js +0 -21
  346. package/esm2015/src/remote/RemoteCommandsProcessor.js +0 -903
  347. package/esm2015/src/remote/RemoteControlItemsRefreshCommand.js +0 -28
  348. package/esm2015/src/remote/RemoteDataViewCommandBase.js +0 -27
  349. package/esm2015/src/remote/RemoteDataViewCommandUpdateNonModifiable.js +0 -19
  350. package/esm2015/src/remote/RemoteDataviewManager.js +0 -23
  351. package/esm2015/src/remote/RemoteInitDataViewCommand.js +0 -14
  352. package/esm2015/src/remote/ResetUserLocateRemoteDataviewCommand.js +0 -20
  353. package/esm2015/src/remote/ResetUserRangeRemoteDataviewCommand.js +0 -16
  354. package/esm2015/src/remote/ResetUserSortRemoteDataviewCommand.js +0 -19
  355. package/esm2015/src/remote/ServerError.js +0 -45
  356. package/esm2015/src/rt/Argument.js +0 -281
  357. package/esm2015/src/rt/ArgumentsList.js +0 -108
  358. package/esm2015/src/rt/Boundary.js +0 -161
  359. package/esm2015/src/rt/DataviewHeaderBase.js +0 -96
  360. package/esm2015/src/rt/DataviewHeaderFactory.js +0 -7
  361. package/esm2015/src/rt/DataviewHeadersSaxHandler.js +0 -40
  362. package/esm2015/src/rt/Operation.js +0 -769
  363. package/esm2015/src/rt/Recompute.js +0 -372
  364. package/esm2015/src/rt/RemoteDataviewHeader.js +0 -114
  365. package/esm2015/src/rt/TableCache.js +0 -182
  366. package/esm2015/src/rt/TableCacheManager.js +0 -70
  367. package/esm2015/src/rt/Transaction.js +0 -54
  368. package/esm2015/src/tasks/MGData.js +0 -561
  369. package/esm2015/src/tasks/MGDataCollection.js +0 -270
  370. package/esm2015/src/tasks/RemoteTaskService.js +0 -45
  371. package/esm2015/src/tasks/Task.js +0 -2593
  372. package/esm2015/src/tasks/TaskServiceBase.js +0 -30
  373. package/esm2015/src/tasks/TasksTable.js +0 -87
  374. package/esm2015/src/tasks/sort/SortCollection.js +0 -72
  375. package/esm2015/src/util/MgPriorityBlockingQueue.js +0 -79
  376. package/esm2015/src/util/PrmMap.js +0 -157
  377. package/esm2015/src/util/Process.js +0 -7
  378. package/esm2015/src/util/ReturnResult.js +0 -46
  379. package/fesm2015/magic-xpa-engine.js.map +0 -1
@@ -1,314 +0,0 @@
1
- import { StringBuilder } from "@magic-xpa/mscorelib";
2
- import { StrUtil, StorageAttribute, UtilDateJpn } from "@magic-xpa/utils";
3
- import { Manager } from "@magic-xpa/gui";
4
- export class ExpressionLocalJpn {
5
- constructor(expressionEvaluator) {
6
- this._expressionEvaluator = null;
7
- this._expressionEvaluator = expressionEvaluator;
8
- }
9
- eval_op_han(strVal) {
10
- let strbufZenkaku = new StringBuilder(StrUtil.rtrim(strVal));
11
- let strbufHankaku = new StringBuilder(0);
12
- let strRet = null;
13
- for (let i = 0; i < strbufZenkaku.Length; i = i + 1) {
14
- let cLetter = strbufZenkaku.get_Item(i);
15
- if (0xff01 <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0xff5e && cLetter.charCodeAt(0) !== 0xff3c && cLetter.charCodeAt(0) !== 0xff40) {
16
- strbufHankaku.Append(String.fromCharCode(cLetter.charCodeAt(0) - 0xfee0));
17
- }
18
- else if (0x309b <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0x30f6) {
19
- strbufHankaku.Append(ExpressionLocalJpn.tableZen2Han[cLetter.charCodeAt(0) - 0x309b][0]);
20
- if (ExpressionLocalJpn.tableZen2Han[cLetter.charCodeAt(0) - 0x309b][1].charCodeAt(0) > 0x0000) {
21
- strbufHankaku.Append(ExpressionLocalJpn.tableZen2Han[cLetter.charCodeAt(0) - 0x309b][1]);
22
- }
23
- }
24
- else {
25
- let j;
26
- for (j = 0; j < ExpressionLocalJpn.tableExceptZen2Han.length; j++) {
27
- if (cLetter === ExpressionLocalJpn.tableExceptZen2Han[j][0]) {
28
- strbufHankaku.Append(ExpressionLocalJpn.tableExceptZen2Han[j][1]);
29
- break;
30
- }
31
- }
32
- if (j === ExpressionLocalJpn.tableExceptZen2Han.length)
33
- strbufHankaku.Append(cLetter);
34
- }
35
- }
36
- strRet = strbufHankaku.ToString();
37
- strbufZenkaku = null;
38
- strbufHankaku = null;
39
- return strRet;
40
- }
41
- eval_op_zens(strVal, mode) {
42
- let strbufHankaku = new StringBuilder(StrUtil.rtrim(strVal));
43
- let strbufZenkaku = new StringBuilder(0);
44
- let strRet = null;
45
- for (let i = 0; i < strbufHankaku.Length; i = i + 1) {
46
- let cLetter = strbufHankaku.get_Item(i);
47
- if (0x0020 <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0x007e) {
48
- switch (cLetter) {
49
- case String.fromCharCode(0x0020):
50
- if (mode === 1) {
51
- strbufZenkaku.Append(String.fromCharCode(0x3000));
52
- }
53
- else if (mode === 2) {
54
- strbufZenkaku.Append(String.fromCharCode(0x0020));
55
- strbufZenkaku.Append(String.fromCharCode(0x0020));
56
- }
57
- else {
58
- strbufZenkaku.Append(String.fromCharCode(0x0020));
59
- }
60
- break;
61
- case String.fromCharCode(0x0022):
62
- strbufZenkaku.Append(String.fromCharCode(0x201d));
63
- break;
64
- case String.fromCharCode(0x0027):
65
- strbufZenkaku.Append(String.fromCharCode(0x2019));
66
- break;
67
- case String.fromCharCode(0x005c):
68
- strbufZenkaku.Append(String.fromCharCode(0xffe5));
69
- break;
70
- case String.fromCharCode(0x0060):
71
- strbufZenkaku.Append(String.fromCharCode(0x2018));
72
- break;
73
- default:
74
- strbufZenkaku.Append(String.fromCharCode(cLetter.charCodeAt(0) + 0xfee0));
75
- break;
76
- }
77
- }
78
- else if (0xff61 <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0xff9f) {
79
- let cCombine = String.fromCharCode(0x0000);
80
- if ((i + 1) < strbufHankaku.Length) {
81
- cCombine = strbufHankaku.get_Item(i + 1);
82
- if (cCombine.charCodeAt(0) !== 0xff9e && cCombine.charCodeAt(0) !== 0xff9f)
83
- cCombine = String.fromCharCode(0x0000);
84
- }
85
- if (cCombine.charCodeAt(0) === 0xff9e) {
86
- if (0xff76 <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0xff84 || 0xff8a <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0xff8e)
87
- strbufZenkaku.Append((ExpressionLocalJpn.tableHan2Zen[cLetter.charCodeAt(0) - 0xff61] + 0x001));
88
- else if (cLetter.charCodeAt(0) === 0xff73)
89
- strbufZenkaku.Append(String.fromCharCode(0x30f4));
90
- else
91
- cCombine = String.fromCharCode(0x0000);
92
- }
93
- else if (cCombine.charCodeAt(0) === 0xff9f) {
94
- if (0xff8a <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0xff8e)
95
- strbufZenkaku.Append((ExpressionLocalJpn.tableHan2Zen[cLetter.charCodeAt(0) - 0xff61] + 0x002));
96
- else
97
- cCombine = String.fromCharCode(0x0000);
98
- }
99
- if (cCombine.charCodeAt(0) !== 0x0000)
100
- i++;
101
- else
102
- strbufZenkaku.Append(ExpressionLocalJpn.tableHan2Zen[cLetter.charCodeAt(0) - 0xff61]);
103
- }
104
- else {
105
- strbufZenkaku.Append(cLetter);
106
- }
107
- }
108
- strRet = strbufZenkaku.ToString();
109
- strbufHankaku = null;
110
- strbufZenkaku = null;
111
- return strRet;
112
- }
113
- eval_op_zimeread(dummy) {
114
- let strRet = null;
115
- let utilImeJpn = Manager.UtilImeJpn;
116
- if (utilImeJpn !== null)
117
- strRet = utilImeJpn.StrImeRead;
118
- return strRet;
119
- }
120
- eval_op_zkana(strVal, mode) {
121
- let strbufConverted = new StringBuilder(StrUtil.rtrim(strVal));
122
- let strRet = null;
123
- for (let i = 0; i < strbufConverted.Length; i = i + 1) {
124
- let cLetter = strbufConverted.get_Item(i);
125
- if (mode === 0) {
126
- if (0x3041 <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0x3093)
127
- strbufConverted.set_Item(i, String.fromCharCode(cLetter.charCodeAt(0) + 0x0060));
128
- }
129
- else {
130
- if (0x30A1 <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0x30f3)
131
- strbufConverted.set_Item(i, String.fromCharCode(cLetter.charCodeAt(0) - 0x0060));
132
- }
133
- }
134
- strRet = strbufConverted.ToString();
135
- strbufConverted = null;
136
- return strRet;
137
- }
138
- eval_op_jcdow(resVal, val1, displayConvertor) {
139
- this._expressionEvaluator.eval_op_date_str(resVal, val1, "SSSSSST", displayConvertor);
140
- }
141
- eval_op_jmonth(resVal, val1) {
142
- if (val1.MgNumVal === null) {
143
- this._expressionEvaluator.SetNULL(resVal, StorageAttribute.ALPHA);
144
- return;
145
- }
146
- val1.MgNumVal = this._expressionEvaluator.mul_add(val1.MgNumVal, 31, -30);
147
- this._expressionEvaluator.eval_op_month(resVal, val1);
148
- let month = resVal.MgNumVal.NUM_2_LONG();
149
- resVal.Attr = StorageAttribute.ALPHA;
150
- resVal.StrVal = UtilDateJpn.convertStrMonth(month);
151
- }
152
- eval_op_jndow(resVal, val1, displayConvertor) {
153
- if (val1.MgNumVal === null) {
154
- this._expressionEvaluator.SetNULL(resVal, StorageAttribute.ALPHA);
155
- return;
156
- }
157
- val1.MgNumVal = this._expressionEvaluator.mul_add(val1.MgNumVal, 0, 6);
158
- this.eval_op_jcdow(resVal, val1.MgNumVal, displayConvertor);
159
- }
160
- eval_op_jyear(resVal, val1) {
161
- this._expressionEvaluator.eval_op_date_brk(resVal, val1.MgNumVal, 4);
162
- }
163
- eval_op_jgengo(resVal, val1, val2, displayConvertor) {
164
- let strFormat;
165
- resVal.Attr = StorageAttribute.ALPHA;
166
- if (val1 === null || val2 === null) {
167
- this._expressionEvaluator.SetNULL(resVal, StorageAttribute.ALPHA);
168
- return;
169
- }
170
- let intType = val2.NUM_2_LONG();
171
- if (intType >= 4)
172
- strFormat = "JJJJ";
173
- else if (intType >= 2)
174
- strFormat = "JJ";
175
- else if (intType >= 1)
176
- strFormat = "J";
177
- else {
178
- resVal.StrVal = "";
179
- return;
180
- }
181
- this._expressionEvaluator.eval_op_date_str(resVal, val1, strFormat, displayConvertor);
182
- }
183
- }
184
- ExpressionLocalJpn.tableZen2Han = [
185
- [String.fromCharCode(0xff9e), String.fromCharCode(0x0000)],
186
- [String.fromCharCode(0xff9f), String.fromCharCode(0x0000)],
187
- [String.fromCharCode(0x309d), String.fromCharCode(0x0000)],
188
- [String.fromCharCode(0x309e), String.fromCharCode(0x0000)],
189
- [String.fromCharCode(0x309f), String.fromCharCode(0x0000)],
190
- [String.fromCharCode(0x30a0), String.fromCharCode(0x0000)],
191
- [String.fromCharCode(0xff67), String.fromCharCode(0x0000)],
192
- [String.fromCharCode(0xff71), String.fromCharCode(0x0000)],
193
- [String.fromCharCode(0xff68), String.fromCharCode(0x0000)],
194
- [String.fromCharCode(0xff72), String.fromCharCode(0x0000)],
195
- [String.fromCharCode(0xff69), String.fromCharCode(0x0000)],
196
- [String.fromCharCode(0xff73), String.fromCharCode(0x0000)],
197
- [String.fromCharCode(0xff6a), String.fromCharCode(0x0000)],
198
- [String.fromCharCode(0xff74), String.fromCharCode(0x0000)],
199
- [String.fromCharCode(0xff6b), String.fromCharCode(0x0000)],
200
- [String.fromCharCode(0xff75), String.fromCharCode(0x0000)],
201
- [String.fromCharCode(0xff76), String.fromCharCode(0x0000)],
202
- [String.fromCharCode(0xff76), String.fromCharCode(0xff9e)],
203
- [String.fromCharCode(0xff77), String.fromCharCode(0x0000)],
204
- [String.fromCharCode(0xff77), String.fromCharCode(0xff9e)],
205
- [String.fromCharCode(0xff78), String.fromCharCode(0x0000)],
206
- [String.fromCharCode(0xff78), String.fromCharCode(0xff9e)],
207
- [String.fromCharCode(0xff79), String.fromCharCode(0x0000)],
208
- [String.fromCharCode(0xff79), String.fromCharCode(0xff9e)],
209
- [String.fromCharCode(0xff7a), String.fromCharCode(0x0000)],
210
- [String.fromCharCode(0xff7a), String.fromCharCode(0xff9e)],
211
- [String.fromCharCode(0xff7b), String.fromCharCode(0x0000)],
212
- [String.fromCharCode(0xff7b), String.fromCharCode(0xff9e)],
213
- [String.fromCharCode(0xff7c), String.fromCharCode(0x0000)],
214
- [String.fromCharCode(0xff7c), String.fromCharCode(0xff9e)],
215
- [String.fromCharCode(0xff7d), String.fromCharCode(0x0000)],
216
- [String.fromCharCode(0xff7d), String.fromCharCode(0xff9e)],
217
- [String.fromCharCode(0xff7e), String.fromCharCode(0x0000)],
218
- [String.fromCharCode(0xff7e), String.fromCharCode(0xff9e)],
219
- [String.fromCharCode(0xff7f), String.fromCharCode(0x0000)],
220
- [String.fromCharCode(0xff7f), String.fromCharCode(0xff9e)],
221
- [String.fromCharCode(0xff80), String.fromCharCode(0x0000)],
222
- [String.fromCharCode(0xff80), String.fromCharCode(0xff9e)],
223
- [String.fromCharCode(0xff81), String.fromCharCode(0x0000)],
224
- [String.fromCharCode(0xff81), String.fromCharCode(0xff9e)],
225
- [String.fromCharCode(0xff6f), String.fromCharCode(0x0000)],
226
- [String.fromCharCode(0xff82), String.fromCharCode(0x0000)],
227
- [String.fromCharCode(0xff82), String.fromCharCode(0xff9e)],
228
- [String.fromCharCode(0xff83), String.fromCharCode(0x0000)],
229
- [String.fromCharCode(0xff83), String.fromCharCode(0xff9e)],
230
- [String.fromCharCode(0xff84), String.fromCharCode(0x0000)],
231
- [String.fromCharCode(0xff84), String.fromCharCode(0xff9e)],
232
- [String.fromCharCode(0xff85), String.fromCharCode(0x0000)],
233
- [String.fromCharCode(0xff86), String.fromCharCode(0x0000)],
234
- [String.fromCharCode(0xff87), String.fromCharCode(0x0000)],
235
- [String.fromCharCode(0xff88), String.fromCharCode(0x0000)],
236
- [String.fromCharCode(0xff89), String.fromCharCode(0x0000)],
237
- [String.fromCharCode(0xff8a), String.fromCharCode(0x0000)],
238
- [String.fromCharCode(0xff8a), String.fromCharCode(0xff9e)],
239
- [String.fromCharCode(0xff8a), String.fromCharCode(0xff9f)],
240
- [String.fromCharCode(0xff8b), String.fromCharCode(0x0000)],
241
- [String.fromCharCode(0xff8b), String.fromCharCode(0xff9e)],
242
- [String.fromCharCode(0xff8b), String.fromCharCode(0xff9f)],
243
- [String.fromCharCode(0xff8c), String.fromCharCode(0x0000)],
244
- [String.fromCharCode(0xff8c), String.fromCharCode(0xff9e)],
245
- [String.fromCharCode(0xff8c), String.fromCharCode(0xff9f)],
246
- [String.fromCharCode(0xff8d), String.fromCharCode(0x0000)],
247
- [String.fromCharCode(0xff8d), String.fromCharCode(0xff9e)],
248
- [String.fromCharCode(0xff8d), String.fromCharCode(0xff9f)],
249
- [String.fromCharCode(0xff8e), String.fromCharCode(0x0000)],
250
- [String.fromCharCode(0xff8e), String.fromCharCode(0xff9e)],
251
- [String.fromCharCode(0xff8e), String.fromCharCode(0xff9f)],
252
- [String.fromCharCode(0xff8f), String.fromCharCode(0x0000)],
253
- [String.fromCharCode(0xff90), String.fromCharCode(0x0000)],
254
- [String.fromCharCode(0xff91), String.fromCharCode(0x0000)],
255
- [String.fromCharCode(0xff92), String.fromCharCode(0x0000)],
256
- [String.fromCharCode(0xff93), String.fromCharCode(0x0000)],
257
- [String.fromCharCode(0xff6c), String.fromCharCode(0x0000)],
258
- [String.fromCharCode(0xff94), String.fromCharCode(0x0000)],
259
- [String.fromCharCode(0xff6d), String.fromCharCode(0x0000)],
260
- [String.fromCharCode(0xff95), String.fromCharCode(0x0000)],
261
- [String.fromCharCode(0xff6e), String.fromCharCode(0x0000)],
262
- [String.fromCharCode(0xff96), String.fromCharCode(0x0000)],
263
- [String.fromCharCode(0xff97), String.fromCharCode(0x0000)],
264
- [String.fromCharCode(0xff98), String.fromCharCode(0x0000)],
265
- [String.fromCharCode(0xff99), String.fromCharCode(0x0000)],
266
- [String.fromCharCode(0xff9a), String.fromCharCode(0x0000)],
267
- [String.fromCharCode(0xff9b), String.fromCharCode(0x0000)],
268
- [String.fromCharCode(0x30ee), String.fromCharCode(0x0000)],
269
- [String.fromCharCode(0xff9c), String.fromCharCode(0x0000)],
270
- [String.fromCharCode(0x30f0), String.fromCharCode(0x0000)],
271
- [String.fromCharCode(0x30f1), String.fromCharCode(0x0000)],
272
- [String.fromCharCode(0xff66), String.fromCharCode(0x0000)],
273
- [String.fromCharCode(0xff9d), String.fromCharCode(0x0000)],
274
- [String.fromCharCode(0xff73), String.fromCharCode(0xff9e)],
275
- [String.fromCharCode(0xff76), String.fromCharCode(0x0000)],
276
- [String.fromCharCode(0xff79), String.fromCharCode(0x0000)]
277
- ];
278
- ExpressionLocalJpn.tableExceptZen2Han = [
279
- [String.fromCharCode(0x2018), String.fromCharCode(0x0060)],
280
- [String.fromCharCode(0x2019), String.fromCharCode(0x0027)],
281
- [String.fromCharCode(0x201D), String.fromCharCode(0x0022)],
282
- [String.fromCharCode(0x3000), String.fromCharCode(0x0020)],
283
- [String.fromCharCode(0x3001), String.fromCharCode(0xFF64)],
284
- [String.fromCharCode(0x3002), String.fromCharCode(0xFF61)],
285
- [String.fromCharCode(0x300C), String.fromCharCode(0xFF62)],
286
- [String.fromCharCode(0x300D), String.fromCharCode(0xFF63)],
287
- [String.fromCharCode(0x30FB), String.fromCharCode(0xFF65)],
288
- [String.fromCharCode(0x30FC), String.fromCharCode(0xFF70)],
289
- [String.fromCharCode(0xFFE5), String.fromCharCode(0x005C)]
290
- ];
291
- ExpressionLocalJpn.tableHan2Zen = [
292
- String.fromCharCode(0x3002), String.fromCharCode(0x300c), String.fromCharCode(0x300d),
293
- String.fromCharCode(0x3001), String.fromCharCode(0x30fb), String.fromCharCode(0x30f2),
294
- String.fromCharCode(0x30a1), String.fromCharCode(0x30a3), String.fromCharCode(0x30a5),
295
- String.fromCharCode(0x30a7), String.fromCharCode(0x30a9), String.fromCharCode(0x30e3),
296
- String.fromCharCode(0x30e5), String.fromCharCode(0x30e7), String.fromCharCode(0x30c3),
297
- String.fromCharCode(0x30fc), String.fromCharCode(0x30a2), String.fromCharCode(0x30a4),
298
- String.fromCharCode(0x30a6), String.fromCharCode(0x30a8), String.fromCharCode(0x30aa),
299
- String.fromCharCode(0x30ab), String.fromCharCode(0x30ad), String.fromCharCode(0x30af),
300
- String.fromCharCode(0x30b1), String.fromCharCode(0x30b3), String.fromCharCode(0x30b5),
301
- String.fromCharCode(0x30b7), String.fromCharCode(0x30b9), String.fromCharCode(0x30bb),
302
- String.fromCharCode(0x30bd), String.fromCharCode(0x30bf), String.fromCharCode(0x30c1),
303
- String.fromCharCode(0x30c4), String.fromCharCode(0x30c6), String.fromCharCode(0x30c8),
304
- String.fromCharCode(0x30ca), String.fromCharCode(0x30cb), String.fromCharCode(0x30cc),
305
- String.fromCharCode(0x30cd), String.fromCharCode(0x30ce), String.fromCharCode(0x30cf),
306
- String.fromCharCode(0x30d2), String.fromCharCode(0x30d5), String.fromCharCode(0x30d8),
307
- String.fromCharCode(0x30db), String.fromCharCode(0x30de), String.fromCharCode(0x30df),
308
- String.fromCharCode(0x30e0), String.fromCharCode(0x30e1), String.fromCharCode(0x30e2),
309
- String.fromCharCode(0x30e4), String.fromCharCode(0x30e6), String.fromCharCode(0x30e8),
310
- String.fromCharCode(0x30e9), String.fromCharCode(0x30ea), String.fromCharCode(0x30eb),
311
- String.fromCharCode(0x30ec), String.fromCharCode(0x30ed), String.fromCharCode(0x30ef),
312
- String.fromCharCode(0x30f3), String.fromCharCode(0x309b), String.fromCharCode(0x309c)
313
- ];
314
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwcmVzc2lvbkxvY2FsSnBuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9leHAvRXhwcmVzc2lvbkxvY2FsSnBuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsT0FBTyxFQUFjLGdCQUFnQixFQUFFLFdBQVcsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3BGLE9BQU8sRUFBUyxPQUFPLEVBQTZCLE1BQU0sZ0JBQWdCLENBQUM7QUFRM0UsTUFBTSxPQUFPLGtCQUFrQjtJQTZKN0IsWUFBWSxtQkFBd0M7UUFGNUMseUJBQW9CLEdBQXdCLElBQUksQ0FBQztRQUd2RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsbUJBQW1CLENBQUM7SUFDbEQsQ0FBQztJQVNELFdBQVcsQ0FBQyxNQUFjO1FBQ3hCLElBQUksYUFBYSxHQUFrQixJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxhQUFhLEdBQWtCLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksTUFBTSxHQUFXLElBQUksQ0FBQztRQUUxQixLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMzRCxJQUFJLE9BQU8sR0FBVyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBR2hELElBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FB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QUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUMzRCxDQUFDO0FBV0cscUNBQWtCLEdBQ3ZCO0lBQ0UsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7Q0FDM0QsQ0FBQztBQVVHLCtCQUFZLEdBQ2pCO0lBQ0UsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNyRixNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDckYsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNyRixNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDckYsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNyRixNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDckYsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNyRixNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDckYsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNyRixNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDckYsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNyRixNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDckYsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNyRixNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7Q0FDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3RyaW5nQnVpbGRlcn0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7U3RyVXRpbCwgVXRpbEltZUpwbiwgU3RvcmFnZUF0dHJpYnV0ZSwgVXRpbERhdGVKcG59IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7RXhwVmFsLCBNYW5hZ2VyLCBOVU1fVFlQRSwgRGlzcGxheUNvbnZlcnRvcn0gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcbmltcG9ydCB7RXhwcmVzc2lvbkV2YWx1YXRvcn0gZnJvbSBcIi4vRXhwcmVzc2lvbkV2YWx1YXRvclwiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gICBKUE46IENsYXNzIGZvciBKYXBhbmVzZSBleHRlbmRlZCBmdW5jdGlvbnNcclxuLy8vIDwvc3VtbWFyeT5cclxuLy8vIDxhdXRob3I+ICBUb3NoaXJvIE5ha2F5b3NoaSAoTVNKKVxyXG4vLy8gPC9hdXRob3I+XHJcbmV4cG9ydCBjbGFzcyBFeHByZXNzaW9uTG9jYWxKcG4ge1xyXG4gIHN0YXRpYyB0YWJsZVplbjJIYW46IHN0cmluZ1tdW10gPVxyXG4gICAgW1xyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOWUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOWYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwOWQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwOWUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwOWYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYTApLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNjcpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNjgpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNjkpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNmEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNmIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzcpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzcpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzgpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzgpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzkpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzkpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2EpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2EpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2IpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2IpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2MpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2MpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2QpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2QpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2UpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2UpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2YpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2YpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODApLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODApLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNmYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODcpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODgpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODkpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZildLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZildLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZildLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZildLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZildLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTApLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNmMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNmQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNmUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTcpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTgpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTkpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOWEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOWIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZWUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOWMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZjApLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZjEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNjYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOWQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzkpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldXHJcbiAgICBdO1xyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIG1hcHBpbmcgdGFibGUgb2YgSmFwYW5lc2UgY2hhcmFjdGVycyAjMlxyXG4gIC8vLyAgIGNvbnZlcnQgZnJvbSB6ZW5rYWt1IChleGNlcHRpb25hbCkgdG8gaGFua2FrdVxyXG4gIC8vL1xyXG4gIC8vLyAgIHJvdyBpbmRleDogbm8gc3BlY2lhbCBtZWFuaW5nXHJcbiAgLy8vICAgY29sdW1uICMxOiB6ZW5rYWt1KGZ1bGwtd2lkdGgpIGNvZGVcclxuICAvLy8gICBjb2x1bW4gIzI6IGhhbmtha3UoaGFsZi13aWR0aCkgY29kZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc3RhdGljIHRhYmxlRXhjZXB0WmVuMkhhbjogc3RyaW5nW11bXSA9XHJcbiAgICBbXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjAxOCksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDYwKV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjAxOSksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDI3KV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjAxRCksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDIyKV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzAwMCksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDIwKV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzAwMSksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHhGRjY0KV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzAwMiksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHhGRjYxKV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzAwQyksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHhGRjYyKV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzAwRCksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHhGRjYzKV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBGQiksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHhGRjY1KV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBGQyksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHhGRjcwKV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4RkZFNSksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDVDKV1cclxuICAgIF07XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgbWFwcGluZyB0YWJsZSBvZiBKYXBhbmVzZSBjaGFyYWN0ZXJzICMzXHJcbiAgLy8vICAgY29udmVydCBmcm9tIGhhbmtha3UgKDB4ZmY2MSB+IDB4ZmY5ZikgdG8gemVua2FrdVxyXG4gIC8vL1xyXG4gIC8vLyAgIHJvdyBpbmRleDogaGFua2FrdShoYWxmLXdpZHRoKSBjb2RlIC0obWludXMpIDB4ZmY2MVxyXG4gIC8vLyAgIGNvbHVtbjogICAgemVua2FrdShmdWxsLXdpZHRoKSBjb2RlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzdGF0aWMgdGFibGVIYW4yWmVuOiBzdHJpbmdbXSA9XHJcbiAgICBbXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMDAyKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwMGMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzAwZCksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMDAxKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZmIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBmMiksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGExKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYTMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBhNSksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGE3KSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYTkpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBlMyksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGU1KSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZTcpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBjMyksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGZjKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYTIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBhNCksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGE2KSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYTgpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBhYSksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGFiKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYWQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBhZiksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGIxKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYjMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBiNSksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGI3KSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYjkpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBiYiksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGJkKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYmYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBjMSksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGM0KSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYzYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBjOCksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGNhKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwY2IpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBjYyksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGNkKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwY2UpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBjZiksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGQyKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZDUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBkOCksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGRiKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZGUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBkZiksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGUwKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZTEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBlMiksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGU0KSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZTYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBlOCksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGU5KSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZWEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBlYiksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGVjKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZWQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBlZiksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGYzKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwOWIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzA5YylcclxuICAgIF07XHJcblxyXG5cclxuICBwcml2YXRlIF9leHByZXNzaW9uRXZhbHVhdG9yOiBFeHByZXNzaW9uRXZhbHVhdG9yID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoZXhwcmVzc2lvbkV2YWx1YXRvcjogRXhwcmVzc2lvbkV2YWx1YXRvcikge1xyXG4gICAgdGhpcy5fZXhwcmVzc2lvbkV2YWx1YXRvciA9IGV4cHJlc3Npb25FdmFsdWF0b3I7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgSEFOOiBDb252ZXJ0IGEgc3RyaW5nIGZyb20gemVua2FrdShmdWxsLXdpZHRoKSB0byBoYW5rYWt1KGhhbGYtd2lkdGgpXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0clZhbDpcIj56ZW5rYWt1IHN0cmluZ1xyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gaGFuYWtha3Ugc3RyaW5nXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBldmFsX29wX2hhbihzdHJWYWw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgc3RyYnVmWmVua2FrdTogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKFN0clV0aWwucnRyaW0oc3RyVmFsKSk7XHJcbiAgICBsZXQgc3RyYnVmSGFua2FrdTogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKDApO1xyXG4gICAgbGV0IHN0clJldDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgc3RyYnVmWmVua2FrdS5MZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICBsZXQgY0xldHRlcjogc3RyaW5nID0gc3RyYnVmWmVua2FrdS5nZXRfSXRlbShpKTtcclxuXHJcbiAgICAgIC8vIGRpZ2l0LCBhbHBoYWJldCBhbmQgZXRjLlxyXG4gICAgICBpZiAoMHhmZjAxIDw9IGNMZXR0ZXIuY2hhckNvZGVBdCgwKSAmJiBjTGV0dGVyLmNoYXJDb2RlQXQoMCkgPD0gMHhmZjVlICYmIGNMZXR0ZXIuY2hhckNvZGVBdCgwKSAhPT0gMHhmZjNjICYmIGNMZXR0ZXIuY2hhckNvZGVBdCgwKSAhPT0gMHhmZjQwKSB7XHJcbiAgICAgICAgc3RyYnVmSGFua2FrdS5BcHBlbmQoU3RyaW5nLmZyb21DaGFyQ29kZShjTGV0dGVyLmNoYXJDb2RlQXQoMCkgLSAweGZlZTApKTtcclxuICAgICAgfVxyXG4gICAgICAvLyBrYXRha2FuYVxyXG4gICAgICBlbHNlIGlmICgweDMwOWIgPD0gY0xldHRlci5jaGFyQ29kZUF0KDApICYmIGNMZXR0ZXIuY2hhckNvZGVBdCgwKSA8PSAweDMwZjYpIHtcclxuICAgICAgICBzdHJidWZIYW5rYWt1LkFwcGVuZChFeHByZXNzaW9uTG9jYWxKcG4udGFibGVaZW4ySGFuW2NMZXR0ZXIuY2hhckNvZGVBdCgwKSAtIDB4MzA5Yl1bMF0pO1xyXG5cclxuICAgICAgICBpZiAoRXhwcmVzc2lvbkxvY2FsSnBuLnRhYmxlWmVuMkhhbltjTGV0dGVyLmNoYXJDb2RlQXQoMCkgLSAweDMwOWJdWzFdLmNoYXJDb2RlQXQoMCkgPiAweDAwMDApIHtcclxuICAgICAgICAgIHN0cmJ1Zkhhbmtha3UuQXBwZW5kKEV4cHJlc3Npb25Mb2NhbEpwbi50YWJsZVplbjJIYW5bY0xldHRlci5jaGFyQ29kZUF0KDApIC0gMHgzMDliXVsxXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIG90aGVyc1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBsZXQgajogbnVtYmVyO1xyXG4gICAgICAgIGZvciAoaiA9IDA7IGogPCBFeHByZXNzaW9uTG9jYWxKcG4udGFibGVFeGNlcHRaZW4ySGFuLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICBpZiAoY0xldHRlciA9PT0gRXhwcmVzc2lvbkxvY2FsSnBuLnRhYmxlRXhjZXB0WmVuMkhhbltqXVswXSkge1xyXG4gICAgICAgICAgICBzdHJidWZIYW5rYWt1LkFwcGVuZChFeHByZXNzaW9uTG9jYWxKcG4udGFibGVFeGNlcHRaZW4ySGFuW2pdWzFdKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChqID09PSBFeHByZXNzaW9uTG9jYWxKcG4udGFibGVFeGNlcHRaZW4ySGFuLmxlbmd0aClcclxuICAgICAgICAgIHN0cmJ1Zkhhbmtha3UuQXBwZW5kKGNMZXR0ZXIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RyUmV0ID0gc3RyYnVmSGFua2FrdS5Ub1N0cmluZygpO1xyXG5cclxuICAgIHN0cmJ1Zlplbmtha3UgPSBudWxsO1xyXG4gICAgc3RyYnVmSGFua2FrdSA9IG51bGw7XHJcblxyXG4gICAgcmV0dXJuIHN0clJldDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBaRU4vWkVOUzogQ29udmVydCBhIHN0cmluZyBmcm9tIGhhbmtha3UoaGFsZi13aWR0aCkgdG8gemVua2FrdShmdWxsLXdpZHRoKVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzdHJWYWw6XCI+aGFua2FrdSBzdHJpbmdcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm1vZGU6XCI+c3BlY2lmeSBob3cgdG8gY29udmVydCBhIGhhbmtha3Ugc3BhY2VcclxuICAvLy8gICAwID0gdG8gaGFua2FrdSBzcGFjZSB4IDFcclxuICAvLy8gICAxID0gdG8gemVua2FrdSBzcGFjZSB4IDFcclxuICAvLy8gICAyID0gdG8gaGFua2FrdSBzcGFjZSB4IDJcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IHplbmtha3Ugc3RyaW5nXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBldmFsX29wX3plbnMoc3RyVmFsOiBzdHJpbmcsIG1vZGU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgc3RyYnVmSGFua2FrdTogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKFN0clV0aWwucnRyaW0oc3RyVmFsKSk7XHJcbiAgICBsZXQgc3RyYnVmWmVua2FrdTogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKDApO1xyXG4gICAgbGV0IHN0clJldDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgc3RyYnVmSGFua2FrdS5MZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICBsZXQgY0xldHRlcjogc3RyaW5nID0gc3RyYnVmSGFua2FrdS5nZXRfSXRlbShpKTtcclxuXHJcbiAgICAgIC8vIHNwYWNlLCBkaWdpdCwgYWxwaGFiZXQgYW5kIGV0Yy5cclxuICAgICAgaWYgKDB4MDAyMCA8PSBjTGV0dGVyLmNoYXJDb2RlQXQoMCkgJiYgY0xldHRlci5jaGFyQ29kZUF0KDApIDw9IDB4MDA3ZSkge1xyXG5cclxuICAgICAgICBzd2l0Y2ggKGNMZXR0ZXIpIHtcclxuICAgICAgICAgIGNhc2UgU3RyaW5nLmZyb21DaGFyQ29kZSgweDAwMjApOiAvLyBzcGFjZVxyXG4gICAgICAgICAgICBpZiAobW9kZSA9PT0gMSkge1xyXG4gICAgICAgICAgICAgIHN0cmJ1Zlplbmtha3UuQXBwZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMDAwKSk7IC8vIHplbmtha3Ugc3BhY2UgeCAxL0Jyb3dzZXJDbGllbnQvXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAobW9kZSA9PT0gMikge1xyXG4gICAgICAgICAgICAgIHN0cmJ1Zlplbmtha3UuQXBwZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDIwKSk7IC8vIGhhbmtha3Ugc3BhY2UgeCAyXHJcbiAgICAgICAgICAgICAgc3RyYnVmWmVua2FrdS5BcHBlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSgweDAwMjApKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKiBtb2RlID09IDAgKi9cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgc3RyYnVmWmVua2FrdS5BcHBlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSgweDAwMjApKTsgLy8gaGFua2FrdSBzcGFjZSB4IDFcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcblxyXG4gICAgICAgICAgY2FzZSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAyMik6IC8vIFwiXHJcbiAgICAgICAgICAgIHN0cmJ1Zlplbmtha3UuQXBwZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMHgyMDFkKSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuXHJcbiAgICAgICAgICBjYXNlIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDI3KTogLy8gJ1xyXG4gICAgICAgICAgICBzdHJidWZaZW5rYWt1LkFwcGVuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjAxOSkpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcblxyXG4gICAgICAgICAgY2FzZSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDA1Yyk6IC8vIFxcXHJcbiAgICAgICAgICAgIHN0cmJ1Zlplbmtha3UuQXBwZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMHhmZmU1KSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuXHJcbiAgICAgICAgICBjYXNlIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDYwKTogLy8gYFxyXG4gICAgICAgICAgICBzdHJidWZaZW5rYWt1LkFwcGVuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjAxOCkpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcblxyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgc3RyYnVmWmVua2FrdS5BcHBlbmQoU3RyaW5nLmZyb21DaGFyQ29kZShjTGV0dGVyLmNoYXJDb2RlQXQoMCkgKyAweGZlZTApKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIGt1dG91dGVuLCBrYXRha2FuYSBhbmQgZXRjLlxyXG4gICAgICBlbHNlIGlmICgweGZmNjEgPD0gY0xldHRlci5jaGFyQ29kZUF0KDApICYmIGNMZXR0ZXIuY2hhckNvZGVBdCgwKSA8PSAweGZmOWYpIHtcclxuICAgICAgICBsZXQgY0NvbWJpbmU6IHN0cmluZyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDAwKTsgLy8gZmxhZyBvZiBkYWt1b24gb3IgaGFuLWRha3VvblxyXG5cclxuICAgICAgICBpZiAoKGkgKyAxKSA8IHN0cmJ1Zkhhbmtha3UuTGVuZ3RoKSB7XHJcbiAgICAgICAgICAvLyBjaGVjayB0aGUgbmV4dCBsZXR0ZXJcclxuICAgICAgICAgIGNDb21iaW5lID0gc3RyYnVmSGFua2FrdS5nZXRfSXRlbShpICsgMSk7XHJcbiAgICAgICAgICBpZiAoY0NvbWJpbmUuY2hhckNvZGVBdCgwKSAhPT0gMHhmZjllICYmIGNDb21iaW5lLmNoYXJDb2RlQXQoMCkgIT09IDB4ZmY5ZilcclxuICAgICAgICAgICAgY0NvbWJpbmUgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY0NvbWJpbmUuY2hhckNvZGVBdCgwKSA9PT0gMHhmZjllKVxyXG4gICAgICAgIC8vIHN5bWJvbCBvZiBkYWt1b25cclxuICAgICAgICB7XHJcbiAgICAgICAgICBpZiAoMHhmZjc2IDw9IGNMZXR0ZXIuY2hhckNvZGVBdCgwKSAmJiBjTGV0dGVyLmNoYXJDb2RlQXQoMCkgPD0gMHhmZjg0IHx8IDB4ZmY4YSA8PSBjTGV0dGVyLmNoYXJDb2RlQXQoMCkgJiYgY0xldHRlci5jaGFyQ29kZUF0KDApIDw9IDB4ZmY4ZSlcclxuICAgICAgICAgICAgc3RyYnVmWmVua2FrdS5BcHBlbmQoKEV4cHJlc3Npb25Mb2NhbEpwbi50YWJsZUhhbjJaZW5bY0xldHRlci5jaGFyQ29kZUF0KDApIC0gMHhmZjYxXSArIDB4MDAxKSk7XHJcbiAgICAgICAgICBlbHNlIGlmIChjTGV0dGVyLmNoYXJDb2RlQXQoMCkgPT09IDB4ZmY3MylcclxuICAgICAgICAgICAgc3RyYnVmWmVua2FrdS5BcHBlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZjQpKTtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY0NvbWJpbmUgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCk7IC8vIHRoZSBzeW1ib2wgaXMgaW5kZXBlbmRlbnRcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoY0NvbWJpbmUuY2hhckNvZGVBdCgwKSA9PT0gMHhmZjlmKVxyXG4gICAgICAgIC8vIHN5bWJvbCBvZiBoYW4tZGFrdW9uXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWYgKDB4ZmY4YSA8PSBjTGV0dGVyLmNoYXJDb2RlQXQoMCkgJiYgY0xldHRlci5jaGFyQ29kZUF0KDApIDw9IDB4ZmY4ZSlcclxuICAgICAgICAgICAgc3RyYnVmWmVua2FrdS5BcHBlbmQoKEV4cHJlc3Npb25Mb2NhbEpwbi50YWJsZUhhbjJaZW5bY0xldHRlci5jaGFyQ29kZUF0KDApIC0gMHhmZjYxXSArIDB4MDAyKSk7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGNDb21iaW5lID0gU3RyaW5nLmZyb21DaGFyQ29kZSgweDAwMDApOyAvLyB0aGUgc3ltYm9sIGlzIGluZGVwZW5kZW50XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY0NvbWJpbmUuY2hhckNvZGVBdCgwKSAhPT0gMHgwMDAwKVxyXG4gICAgICAgICAgaSsrO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHN0cmJ1Zlplbmtha3UuQXBwZW5kKEV4cHJlc3Npb25Mb2NhbEpwbi50YWJsZUhhbjJaZW5bY0xldHRlci5jaGFyQ29kZUF0KDApIC0gMHhmZjYxXSk7XHJcbiAgICAgIH1cclxuICAgICAgLy8gb3RoZXJzXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHN0cmJ1Zlplbmtha3UuQXBwZW5kKGNMZXR0ZXIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RyUmV0ID0gc3RyYnVmWmVua2FrdS5Ub1N0cmluZygpO1xyXG5cclxuICAgIHN0cmJ1Zkhhbmtha3UgPSBudWxsO1xyXG4gICAgc3RyYnVmWmVua2FrdSA9IG51bGw7XHJcblxyXG4gICAgcmV0dXJuIHN0clJldDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBaSU1FUmVhZDogcmV0dXJuIGNvbXBvc2l0aW9uIHN0cmluZyBpbiBJTUVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGV2YWxfb3BfemltZXJlYWQoZHVtbXk6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgc3RyUmV0OiBzdHJpbmcgPSBudWxsO1xyXG4gICAgbGV0IHV0aWxJbWVKcG46IFV0aWxJbWVKcG4gPSBNYW5hZ2VyLlV0aWxJbWVKcG47XHJcblxyXG4gICAgaWYgKHV0aWxJbWVKcG4gIT09IG51bGwpXHJcbiAgICAgIHN0clJldCA9IHV0aWxJbWVKcG4uU3RySW1lUmVhZDtcclxuXHJcbiAgICByZXR1cm4gc3RyUmV0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFpLQU5BOiBDb252ZXJ0IGEgc3RyaW5nIGZyb20gaGlyYWdhbmEgdG8ga2F0YWthbmEgKGFuZCB2aWNlIHZlcnNhKVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzdHJWYWw6XCI+aGFua2FrdShvciBrYXRha2FuYSkgc3RyaW5nXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJtb2RlOlwiPnNwZWNpZnkgdGhlIGRpcmVjdGlvbiBvZiBjb252ZXJzaW9uXHJcbiAgLy8vICAgMCA9IGZyb20gaGlyYWdhbmEgdG8ga2F0YWthbmFcclxuICAvLy8gICAxID0gZnJvbSBrYXRha2FuYSB0byBoaXJhZ2FuYVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4ga2F0YWthbmEob3IgaGlyYWdhbmEpIHN0cmluZ1xyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgZXZhbF9vcF96a2FuYShzdHJWYWw6IHN0cmluZywgbW9kZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGxldCBzdHJidWZDb252ZXJ0ZWQ6IFN0cmluZ0J1aWxkZXIgPSBuZXcgU3RyaW5nQnVpbGRlcihTdHJVdGlsLnJ0cmltKHN0clZhbCkpO1xyXG4gICAgbGV0IHN0clJldDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgc3RyYnVmQ29udmVydGVkLkxlbmd0aDsgaSA9IGkgKyAxKSB7XHJcbiAgICAgIGxldCBjTGV0dGVyOiBzdHJpbmcgPSBzdHJidWZDb252ZXJ0ZWQuZ2V0X0l0ZW0oaSk7XHJcblxyXG4gICAgICBpZiAobW9kZSA9PT0gMCkge1xyXG4gICAgICAgIC8vIGhpcmFnYW5hIC0tPiBrYXRha2FuYVxyXG4gICAgICAgIGlmICgweDMwNDEgPD0gY0xldHRlci5jaGFyQ29kZUF0KDApICYmIGNMZXR0ZXIuY2hhckNvZGVBdCgwKSA8PSAweDMwOTMpXHJcbiAgICAgICAgICBzdHJidWZDb252ZXJ0ZWQuc2V0X0l0ZW0oaSwgU3RyaW5nLmZyb21DaGFyQ29kZShjTGV0dGVyLmNoYXJDb2RlQXQoMCkgKyAweDAwNjApKTtcclxuICAgICAgfVxyXG4gICAgICAvLyBrYXRha2FuYSAtLT4gaGlyYWdhbmFcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKDB4MzBBMSA8PSBjTGV0dGVyLmNoYXJDb2RlQXQoMCkgJiYgY0xldHRlci5jaGFyQ29kZUF0KDApIDw9IDB4MzBmMylcclxuICAgICAgICAgIHN0cmJ1ZkNvbnZlcnRlZC5zZXRfSXRlbShpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKGNMZXR0ZXIuY2hhckNvZGVBdCgwKSAtIDB4MDA2MCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBzdHJSZXQgPSBzdHJidWZDb252ZXJ0ZWQuVG9TdHJpbmcoKTtcclxuICAgIHN0cmJ1ZkNvbnZlcnRlZCA9IG51bGw7XHJcblxyXG4gICAgcmV0dXJuIHN0clJldDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBKQ0RPVzogSmFwYW5lc2UgdmVyc2lvbiBvZiBDRE9XXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBldmFsX29wX2pjZG93KHJlc1ZhbDogRXhwVmFsLCB2YWwxOiBOVU1fVFlQRSwgZGlzcGxheUNvbnZlcnRvcjogRGlzcGxheUNvbnZlcnRvcik6IHZvaWQge1xyXG4gICAgdGhpcy5fZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsX29wX2RhdGVfc3RyKHJlc1ZhbCwgdmFsMSwgXCJTU1NTU1NUXCIsIGRpc3BsYXlDb252ZXJ0b3IpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEpNT05USDogSmFwYW5lc2UgdmVyc2lvbiBvZiBOTU9OVEhcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGV2YWxfb3Bfam1vbnRoKHJlc1ZhbDogRXhwVmFsLCB2YWwxOiBFeHBWYWwpOiB2b2lkIHtcclxuICAgIGlmICh2YWwxLk1nTnVtVmFsID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuX2V4cHJlc3Npb25FdmFsdWF0b3IuU2V0TlVMTChyZXNWYWwsIFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEEpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdmFsMS5NZ051bVZhbCA9IHRoaXMuX2V4cHJlc3Npb25FdmFsdWF0b3IubXVsX2FkZCh2YWwxLk1nTnVtVmFsLCAzMSwgLTMwKTtcclxuICAgIHRoaXMuX2V4cHJlc3Npb25FdmFsdWF0b3IuZXZhbF9vcF9tb250aChyZXNWYWwsIHZhbDEpO1xyXG4gICAgbGV0IG1vbnRoOiBudW1iZXIgPSByZXNWYWwuTWdOdW1WYWwuTlVNXzJfTE9ORygpO1xyXG5cclxuICAgIHJlc1ZhbC5BdHRyID0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQTtcclxuICAgIHJlc1ZhbC5TdHJWYWwgPSBVdGlsRGF0ZUpwbi5jb252ZXJ0U3RyTW9udGgobW9udGgpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEpORE9XOiBKYXBhbmVzZSB2ZXJzaW9uIG9mIE5ET1dcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGV2YWxfb3Bfam5kb3cocmVzVmFsOiBFeHBWYWwsIHZhbDE6IEV4cFZhbCwgZGlzcGxheUNvbnZlcnRvcjogRGlzcGxheUNvbnZlcnRvcik6IHZvaWQge1xyXG4gICAgaWYgKHZhbDEuTWdOdW1WYWwgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5fZXhwcmVzc2lvbkV2YWx1YXRvci5TZXROVUxMKHJlc1ZhbCwgU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB2YWwxLk1nTnVtVmFsID0gdGhpcy5fZXhwcmVzc2lvbkV2YWx1YXRvci5tdWxfYWRkKHZhbDEuTWdOdW1WYWwsIDAsIDYpO1xyXG4gICAgdGhpcy5ldmFsX29wX2pjZG93KHJlc1ZhbCwgdmFsMS5NZ051bVZhbCwgZGlzcGxheUNvbnZlcnRvcik7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgSllFQVI6IFJldHVybiBKYXBhbmVzZSB5ZWFyIG9mIGFuIGVyYVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZXZhbF9vcF9qeWVhcihyZXNWYWw6IEV4cFZhbCwgdmFsMTogRXhwVmFsKTogdm9pZCB7XHJcbiAgICB0aGlzLl9leHByZXNzaW9uRXZhbHVhdG9yLmV2YWxfb3BfZGF0ZV9icmsocmVzVmFsLCB2YWwxLk1nTnVtVmFsLCA0KTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBKR0VOR086IFJldHVybiBKYXBhbmVzZSBnZW5nbyAodGhlIG5hbWUgb2YgYW4gZXJhKVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZXZhbF9vcF9qZ2VuZ28ocmVzVmFsOiBFeHBWYWwsIHZhbDE6IE5VTV9UWVBFLCB2YWwyOiBOVU1fVFlQRSwgZGlzcGxheUNvbnZlcnRvcjogRGlzcGxheUNvbnZlcnRvcik6IHZvaWQge1xyXG4gICAgbGV0IHN0ckZvcm1hdDogc3RyaW5nO1xyXG5cclxuICAgIHJlc1ZhbC5BdHRyID0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQTtcclxuXHJcbiAgICBpZiAodmFsMSA9PT0gbnVsbCB8fCB2YWwyID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuX2V4cHJlc3Npb25FdmFsdWF0b3IuU2V0TlVMTChyZXNWYWwsIFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEEpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGludFR5cGU6IG51bWJlciA9IHZhbDIuTlVNXzJfTE9ORygpO1xyXG5cclxuICAgIGlmIChpbnRUeXBlID49IDQpXHJcbiAgICAgIHN0ckZvcm1hdCA9IFwiSkpKSlwiO1xyXG4gICAgZWxzZSBpZiAoaW50VHlwZSA+PSAyKVxyXG4gICAgICBzdHJGb3JtYXQgPSBcIkpKXCI7XHJcbiAgICBlbHNlIGlmIChpbnRUeXBlID49IDEpXHJcbiAgICAgIHN0ckZvcm1hdCA9IFwiSlwiO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJlc1ZhbC5TdHJWYWwgPSBcIlwiO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsX29wX2RhdGVfc3RyKHJlc1ZhbCwgdmFsMSwgc3RyRm9ybWF0LCBkaXNwbGF5Q29udmVydG9yKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,84 +0,0 @@
1
- import { NString } from "@magic-xpa/mscorelib";
2
- import { StorageAttribute, XMLConstants, XmlParser } from "@magic-xpa/utils";
3
- import { ExpVal, RecordUtils } from "@magic-xpa/gui";
4
- import { MirrorPrmMap, ParamParseResult } from "../util/PrmMap";
5
- import { ConstInterface } from "../ConstInterface";
6
- import { Environment } from "../env/Environment";
7
- export class MirrorExpVal extends ExpVal {
8
- constructor(val) {
9
- if (arguments.length === 0) {
10
- super();
11
- this.constructor_2();
12
- return;
13
- }
14
- super();
15
- this.constructor_3(val);
16
- }
17
- constructor_2() {
18
- }
19
- constructor_3(val) {
20
- super.Copy(val);
21
- }
22
- mirrorToXML() {
23
- let toBase64 = (Environment.Instance.GetDebugLevel() <= 1);
24
- let cellAttr = (this.Attr === StorageAttribute.BLOB_VECTOR ? this.VectorField.getCellsType() : StorageAttribute.SKIP);
25
- let value = "";
26
- value = RecordUtils.itemValToXML(super.ToMgVal(), this.Attr, cellAttr, toBase64);
27
- return ConstInterface.MG_ATTR_PAR_ATTRS + "=\"" + this.Attr + "\" " + ConstInterface.MG_ATTR_LEN + "=" +
28
- value.length + " " + ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + value + "\"";
29
- }
30
- init(name, xmlParser) {
31
- let valueOffset, attrOffset, lenOffset, valueLen, lenOffsetEnd, count;
32
- let currType;
33
- let isNull;
34
- let paramAttr, paramValue, correctValue = null;
35
- count = xmlParser.getXMLdata().indexOf(XMLConstants.TAG_TERM, xmlParser.getCurrIndex()) - xmlParser.getCurrIndex();
36
- attrOffset = NString.IndexOf(xmlParser.getXMLdata(), ConstInterface.MG_ATTR_PAR_ATTRS, xmlParser.getCurrIndex(), count);
37
- if (attrOffset !== -1) {
38
- attrOffset += ConstInterface.MG_ATTR_PAR_ATTRS.length + 2;
39
- paramAttr = xmlParser.getXMLdata().substr(attrOffset, 1);
40
- lenOffset = xmlParser.getXMLdata().indexOf(ConstInterface.MG_ATTR_LEN, attrOffset);
41
- lenOffset += ConstInterface.MG_ATTR_LEN.length + 1;
42
- lenOffsetEnd = xmlParser.getXMLdata().indexOf(" ", lenOffset);
43
- valueLen = XmlParser.getInt(xmlParser.getXMLdata().substr(lenOffset, lenOffsetEnd - lenOffset));
44
- valueOffset = xmlParser.getXMLdata().indexOf(ConstInterface.MG_ATTR_ENV_VALUE, lenOffset);
45
- valueOffset += ConstInterface.MG_ATTR_ENV_VALUE.length + 2;
46
- paramValue = xmlParser.getXMLdata().substr(valueOffset, valueLen);
47
- currType = paramAttr[0];
48
- correctValue = RecordUtils.getString(paramValue, currType);
49
- isNull = false;
50
- xmlParser.setCurrIndex(valueOffset + valueLen);
51
- }
52
- else if (xmlParser.getXMLdata().indexOf(ConstInterface.MG_ATTR_ENV_REMOVED, xmlParser.getCurrIndex()) !== -1) {
53
- return ParamParseResult.DELETE;
54
- }
55
- else {
56
- currType = StorageAttribute.NONE;
57
- isNull = true;
58
- }
59
- super.Init(currType, isNull, correctValue);
60
- return ParamParseResult.TOUPPER;
61
- }
62
- }
63
- export class GlobalParams extends MirrorPrmMap {
64
- constructor() {
65
- super(MirrorExpVal);
66
- this.mirroredID = ConstInterface.MG_TAG_GLOBALPARAMSCHANGES;
67
- }
68
- set(s, v) {
69
- if (v.IsNull || v.isEmptyString())
70
- super.remove(s.trim().toUpperCase());
71
- else
72
- super.setValue(s.trim().toUpperCase(), new MirrorExpVal(v));
73
- }
74
- get(s) {
75
- try {
76
- return super.getvalue(s.trim().toUpperCase());
77
- }
78
- catch (err) {
79
- return null;
80
- }
81
- }
82
- }
83
- GlobalParams.Instance = new GlobalParams();
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2xvYmFsUGFyYW1zVGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2V4cC9HbG9iYWxQYXJhbXNUYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpELE1BQU0sT0FBTyxZQUFhLFNBQVEsTUFBTTtJQUd0QyxZQUFZLEdBQVk7UUFDdEIsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxQixLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixPQUFPO1NBQ1I7UUFDRCxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLGFBQWE7SUFDckIsQ0FBQztJQUtPLGFBQWEsQ0FBQyxHQUFXO1FBQy9CLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxRQUFRLEdBQVksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXBFLElBQUksUUFBUSxHQUFxQixDQUFDLElBQUksQ0FB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O0FBN0JNLHFCQUFRLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05TdHJpbmd9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge1N0b3JhZ2VBdHRyaWJ1dGUsIFhNTENvbnN0YW50cywgWG1sUGFyc2VyfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQgeyBFeHBWYWwsIFJlY29yZFV0aWxzIH0gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcbmltcG9ydCB7SU1pcnJvclhNTH0gZnJvbSBcIi4uL3V0aWwvSU1pcnJvclhNTFwiO1xyXG5pbXBvcnQge01pcnJvclBybU1hcCwgUGFyYW1QYXJzZVJlc3VsdH0gZnJvbSBcIi4uL3V0aWwvUHJtTWFwXCI7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gXCIuLi9Db25zdEludGVyZmFjZVwiO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gXCIuLi9lbnYvRW52aXJvbm1lbnRcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBNaXJyb3JFeHBWYWwgZXh0ZW5kcyBFeHBWYWwgaW1wbGVtZW50cyBJTWlycm9yWE1MIHtcclxuICBjb25zdHJ1Y3RvcigpO1xyXG4gIGNvbnN0cnVjdG9yKHZhbDogRXhwVmFsKTtcclxuICBjb25zdHJ1Y3Rvcih2YWw/OiBFeHBWYWwpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHN1cGVyKCk7XHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfMigpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5jb25zdHJ1Y3Rvcl8zKHZhbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzIoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8zKHZhbDogRXhwVmFsKTogdm9pZCB7XHJcbiAgICBzdXBlci5Db3B5KHZhbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbWlycm9yVG9YTUwoKTogc3RyaW5nIHtcclxuICAgIGxldCB0b0Jhc2U2NDogYm9vbGVhbiA9IChFbnZpcm9ubWVudC5JbnN0YW5jZS5HZXREZWJ1Z0xldmVsKCkgPD0gMSk7XHJcblxyXG4gICAgbGV0IGNlbGxBdHRyOiBTdG9yYWdlQXR0cmlidXRlID0gKHRoaXMuQXR0ciA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CX1ZFQ1RPUiA/IHRoaXMuVmVjdG9yRmllbGQuZ2V0Q2VsbHNUeXBlKCkgOiBTdG9yYWdlQXR0cmlidXRlLlNLSVApO1xyXG5cclxuICAgIC8vIFN0b3J5IDEzMTk2MSA6IERvIG5vdCBzZXJpYWxpemUgZG90bmV0IHBhcmFtc1xyXG4gICAgbGV0IHZhbHVlOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgdmFsdWUgPSBSZWNvcmRVdGlscy5pdGVtVmFsVG9YTUwoc3VwZXIuVG9NZ1ZhbCgpLCB0aGlzLkF0dHIsIGNlbGxBdHRyLCB0b0Jhc2U2NCk7XHJcblxyXG4gICAgcmV0dXJuIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfUEFSX0FUVFJTICsgXCI9XFxcIlwiICsgdGhpcy5BdHRyICsgXCJcXFwiIFwiICsgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9MRU4gKyBcIj1cIiArXHJcbiAgICAgIHZhbHVlLmxlbmd0aCArIFwiIFwiICsgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTlZfVkFMVUUgKyBcIj1cXFwiXCIgKyB2YWx1ZSArIFwiXFxcIlwiO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGluaXRpYWxpemUgdGhlIG9iamVjdCBmcm9tIHRoZSBYTUwgYnVmZmVyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInhtbFBhcnNlclwiPjwvcGFyYW0+XHJcbiAgcHVibGljIGluaXQobmFtZTogU3RyaW5nLCB4bWxQYXJzZXI6IFhtbFBhcnNlcik6IFBhcmFtUGFyc2VSZXN1bHQge1xyXG4gICAgbGV0IHZhbHVlT2Zmc2V0OiBudW1iZXIsIGF0dHJPZmZzZXQ6IG51bWJlciwgbGVuT2Zmc2V0OiBudW1iZXIsIHZhbHVlTGVuOiBudW1iZXIsIGxlbk9mZnNldEVuZDogbnVtYmVyLFxyXG4gICAgICBjb3VudDogbnVtYmVyO1xyXG4gICAgbGV0IGN1cnJUeXBlOiBTdG9yYWdlQXR0cmlidXRlO1xyXG4gICAgbGV0IGlzTnVsbDogYm9vbGVhbjtcclxuICAgIGxldCBwYXJhbUF0dHI6IHN0cmluZywgcGFyYW1WYWx1ZTogc3RyaW5nLCBjb3JyZWN0VmFsdWU6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgLy8gTG9vayBmb3IgcGFyYW1ldGVyIGF0dHJpYnV0ZXMuIFhtbCBwYXJzZXIncyBjdXJyZW50IGluZGV4IGlzIHNldCB0byBlbmQgb2YgTmFtZS5cclxuICAgIC8vIFNvIGxvb2sgZm9yIGF0dHJpYnV0ZSAoaS5lLiBcImF0dHJcIikgZnJvbSBjdXJyZW50IGluZGV4IHRvIHRoZSBlbmQgb2YgdGFnIChpLmUuIFwiLz5cIilcclxuICAgIGNvdW50ID0geG1sUGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKFhNTENvbnN0YW50cy5UQUdfVEVSTSwgeG1sUGFyc2VyLmdldEN1cnJJbmRleCgpKSAtIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKTtcclxuICAgIGF0dHJPZmZzZXQgPSBOU3RyaW5nLkluZGV4T2YoeG1sUGFyc2VyLmdldFhNTGRhdGEoKSwgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9QQVJfQVRUUlMsIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKSwgY291bnQpO1xyXG4gICAgaWYgKGF0dHJPZmZzZXQgIT09IC0xKSB7XHJcbiAgICAgIC8vIGFkZCB0YWcgbGVuZ3RoIGFuZCBnZXQgdGhlIGF0dHJpYnV0ZVxyXG4gICAgICBhdHRyT2Zmc2V0ICs9IENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfUEFSX0FUVFJTLmxlbmd0aCArIDI7XHJcbiAgICAgIHBhcmFtQXR0ciA9IHhtbFBhcnNlci5nZXRYTUxkYXRhKCkuc3Vic3RyKGF0dHJPZmZzZXQsIDEpO1xyXG5cclxuICAgICAgLy8gbGVuZ3RoIG9mIHZhbHVlXHJcbiAgICAgIGxlbk9mZnNldCA9IHhtbFBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihDb25zdEludGVyZmFjZS5NR19BVFRSX0xFTiwgYXR0ck9mZnNldCk7XHJcbiAgICAgIGxlbk9mZnNldCArPSBDb25zdEludGVyZmFjZS5NR19BVFRSX0xFTi5sZW5ndGggKyAxO1xyXG4gICAgICBsZW5PZmZzZXRFbmQgPSB4bWxQYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoXCIgXCIsIGxlbk9mZnNldCk7XHJcbiAgICAgIHZhbHVlTGVuID0gWG1sUGFyc2VyLmdldEludCh4bWxQYXJzZXIuZ2V0WE1MZGF0YSgpLnN1YnN0cihsZW5PZmZzZXQsIGxlbk9mZnNldEVuZCAtIGxlbk9mZnNldCkpO1xyXG5cclxuICAgICAgLy8gcGFyYW0gdmFsdWVcclxuICAgICAgdmFsdWVPZmZzZXQgPSB4bWxQYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTlZfVkFMVUUsIGxlbk9mZnNldCk7XHJcbiAgICAgIHZhbHVlT2Zmc2V0ICs9IENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfRU5WX1ZBTFVFLmxlbmd0aCArIDI7XHJcbiAgICAgIHBhcmFtVmFsdWUgPSB4bWxQYXJzZXIuZ2V0WE1MZGF0YSgpLnN1YnN0cih2YWx1ZU9mZnNldCwgdmFsdWVMZW4pO1xyXG5cclxuICAgICAgLy8gZ2V0IGRhdGEgZm9yIHRoaXMgb2JqZWN0XHJcbiAgICAgIGN1cnJUeXBlID0gPFN0b3JhZ2VBdHRyaWJ1dGU+cGFyYW1BdHRyWzBdO1xyXG4gICAgICBjb3JyZWN0VmFsdWUgPSBSZWNvcmRVdGlscy5nZXRTdHJpbmcocGFyYW1WYWx1ZSwgY3VyclR5cGUpO1xyXG4gICAgICBpc051bGwgPSBmYWxzZTtcclxuXHJcbiAgICAgIC8vIHNraXAgdG8gYWZ0ZXIgdGhpcyBwYXJhbVxyXG4gICAgICB4bWxQYXJzZXIuc2V0Q3VyckluZGV4KHZhbHVlT2Zmc2V0ICsgdmFsdWVMZW4pO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoeG1sUGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfRU5WX1JFTU9WRUQsIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKSkgIT09IC0xKSB7XHJcbiAgICAgIHJldHVybiBQYXJhbVBhcnNlUmVzdWx0LkRFTEVURTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjdXJyVHlwZSA9IFN0b3JhZ2VBdHRyaWJ1dGUuTk9ORTtcclxuICAgICAgaXNOdWxsID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBzdXBlci5Jbml0KGN1cnJUeXBlLCBpc051bGwsIGNvcnJlY3RWYWx1ZSk7XHJcblxyXG4gICAgcmV0dXJuIFBhcmFtUGFyc2VSZXN1bHQuVE9VUFBFUjtcclxuICB9XHJcbn1cclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vICAgbWFuYWdlciBmb3IgZ2xvYmFsIHBhcmFtZXRlcnNcclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGNsYXNzIEdsb2JhbFBhcmFtcyBleHRlbmRzIE1pcnJvclBybU1hcDxNaXJyb3JFeHBWYWw+IHtcclxuXHJcbiAgc3RhdGljIEluc3RhbmNlOiBHbG9iYWxQYXJhbXMgPSBuZXcgR2xvYmFsUGFyYW1zKCk7XHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKE1pcnJvckV4cFZhbCk7XHJcbiAgICB0aGlzLm1pcnJvcmVkSUQgPSBDb25zdEludGVyZmFjZS5NR19UQUdfR0xPQkFMUEFSQU1TQ0hBTkdFUztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBjcmVhdGUgYSBuZXcgTWlycm9yRXhwVmFsIGFuZCBhZGQgaXQgdG8gdGhlIG1hcFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZcIj48L3BhcmFtPlxyXG4gIHB1YmxpYyBzZXQoczogc3RyaW5nLCB2OiBFeHBWYWwpOiB2b2lkIHtcclxuICAgIGlmICh2LklzTnVsbCB8fCB2LmlzRW1wdHlTdHJpbmcoKSlcclxuICAgICAgc3VwZXIucmVtb3ZlKHMudHJpbSgpLnRvVXBwZXJDYXNlKCkpO1xyXG4gICAgZWxzZVxyXG4gICAgICBzdXBlci5zZXRWYWx1ZShzLnRyaW0oKS50b1VwcGVyQ2FzZSgpLCBuZXcgTWlycm9yRXhwVmFsKHYpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQoczogc3RyaW5nKTogTWlycm9yRXhwVmFsIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiBzdXBlci5nZXR2YWx1ZShzLnRyaW0oKS50b1VwcGVyQ2FzZSgpKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,44 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { XmlParser, StorageAttribute } from "@magic-xpa/utils";
3
- import { DisplayConvertor } from "@magic-xpa/gui";
4
- export class YesNoExp {
5
- constructor(defaultVal) {
6
- this._exp = null;
7
- this._val = false;
8
- this._val = defaultVal;
9
- this._exp = null;
10
- }
11
- setVal(task, strVal) {
12
- switch (strVal[0]) {
13
- case 'Y':
14
- this._val = true;
15
- break;
16
- case 'N':
17
- this._val = false;
18
- break;
19
- default:
20
- let expId = XmlParser.getInt(strVal);
21
- if (task != null)
22
- this._exp = task.getExpById(expId);
23
- break;
24
- }
25
- }
26
- getVal() {
27
- return __awaiter(this, void 0, void 0, function* () {
28
- if (this._exp !== null)
29
- return yield DisplayConvertor.toBoolean(yield this._exp.evaluateWithResultTypeAndLength(StorageAttribute.BOOLEAN, 0));
30
- return this._val;
31
- });
32
- }
33
- isServerExp() {
34
- if (this._exp != null)
35
- return this._exp.computedByServerOnly();
36
- return false;
37
- }
38
- isClientExp() {
39
- if (this._exp != null)
40
- return this._exp.computedByClientOnly();
41
- return false;
42
- }
43
- }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWWVzTm9FeHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2V4cC9ZZXNOb0V4cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzdELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBT2hELE1BQU0sT0FBTyxRQUFRO0lBSW5CLFlBQVksVUFBbUI7UUFIdkIsU0FBSSxHQUFlLElBQUksQ0FBQztRQUN4QixTQUFJLEdBQVksS0FBSyxDQUFDO1FBRzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFPRCxNQUFNLENBQUMsSUFBVSxFQUFFLE1BQWM7UUFFL0IsUUFBUSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDakIsS0FBSyxHQUFHO2dCQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixNQUFNO1lBRVIsS0FBSyxHQUFHO2dCQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2dCQUNsQixNQUFNO1lBRVI7Z0JBQ0UsSUFBSSxLQUFLLEdBQVcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxJQUFJLElBQUksSUFBSTtvQkFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JDLE1BQU07U0FDVDtJQUNILENBQUM7SUFLSyxNQUFNOztZQUNWLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJO2dCQUNwQixPQUFPLE1BQU0sZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV4SCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbkIsQ0FBQztLQUFBO0lBS0QsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJO1lBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzFDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUtELFdBQVc7UUFFVCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSTtZQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUMxQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7WG1sUGFyc2VyLCBTdG9yYWdlQXR0cmlidXRlfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge0Rpc3BsYXlDb252ZXJ0b3J9IGZyb20gXCJAbWFnaWMteHBhL2d1aVwiO1xyXG5pbXBvcnQge0V4cHJlc3Npb259IGZyb20gXCIuL0V4cHJlc3Npb25cIjtcclxuaW1wb3J0IHtUYXNrfSBmcm9tIFwiLi4vdGFza3MvVGFza1wiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gICBZZXNOb0V4cCBjbGFzcyByZXByZXNlbnQgYSBZZXMvTm8vRXhwcmVzc2lvbiBjb21iaW5hdGlvblxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgWWVzTm9FeHAge1xyXG4gIHByaXZhdGUgX2V4cDogRXhwcmVzc2lvbiA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfdmFsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGRlZmF1bHRWYWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3ZhbCA9IGRlZmF1bHRWYWw7XHJcbiAgICB0aGlzLl9leHAgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldCB0aGUgdmFsdWUgb2YgdGhlIFllcy9Oby9FeHByZXNzaW9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRhc2tcIj50aGUgdGFzayB0byBsb29rIGZvciBleHByZXNzaW9uPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0clZhbFwiPnRoZSBzdHJpbmcgdGhhdCBjb250YWlucyB0aGUgWWVzL05vL0V4cHJlc3Npb248L3BhcmFtPlxyXG4gIHNldFZhbCh0YXNrOiBUYXNrLCBzdHJWYWw6IHN0cmluZyk6IHZvaWQge1xyXG5cclxuICAgIHN3aXRjaCAoc3RyVmFsWzBdKSB7XHJcbiAgICAgIGNhc2UgJ1knOlxyXG4gICAgICAgIHRoaXMuX3ZhbCA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdOJzpcclxuICAgICAgICB0aGlzLl92YWwgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgbGV0IGV4cElkOiBudW1iZXIgPSBYbWxQYXJzZXIuZ2V0SW50KHN0clZhbCk7XHJcbiAgICAgICAgaWYgKHRhc2sgIT0gbnVsbClcclxuICAgICAgICAgIHRoaXMuX2V4cCA9IHRhc2suZ2V0RXhwQnlJZChleHBJZCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIFllcy9Oby9FeHByZXNzaW9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBhc3luYyBnZXRWYWwoKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAodGhpcy5fZXhwICE9PSBudWxsKVxyXG4gICAgICByZXR1cm4gYXdhaXQgRGlzcGxheUNvbnZlcnRvci50b0Jvb2xlYW4oYXdhaXQgdGhpcy5fZXhwLmV2YWx1YXRlV2l0aFJlc3VsdFR5cGVBbmRMZW5ndGgoU3RvcmFnZUF0dHJpYnV0ZS5CT09MRUFOLCAwKSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRydWUgaWYgYW4gZXhwcmVzc2lvbiBleGlzdHMgYW5kIGl0IGlzIGEgc2VydmVyIHNpZGUgb25lXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBpc1NlcnZlckV4cCgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLl9leHAgIT0gbnVsbClcclxuICAgICAgcmV0dXJuIHRoaXMuX2V4cC5jb21wdXRlZEJ5U2VydmVyT25seSgpO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiBhbiBleHByZXNzaW9uIGV4aXN0cyBhbmQgaXQgaXMgYSBjbGllbnQgc2lkZSBvbmVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGlzQ2xpZW50RXhwKCk6IGJvb2xlYW4ge1xyXG5cclxuICAgIGlmICh0aGlzLl9leHAgIT0gbnVsbClcclxuICAgICAgcmV0dXJuIHRoaXMuX2V4cC5jb21wdXRlZEJ5Q2xpZW50T25seSgpO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=