@kontur.candy/tools 2.185.0 → 2.185.2

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 (599) hide show
  1. package/candy.js +0 -0
  2. package/distr/Common/AsyncUtils.js +1 -1
  3. package/distr/Common/AsyncUtils.js.map +1 -0
  4. package/distr/Common/AutoValidationUtils.js +2 -3
  5. package/distr/Common/AutoValidationUtils.js.map +1 -0
  6. package/distr/Common/CandyApiClient/CandyApiClient.js +2 -3
  7. package/distr/Common/CandyApiClient/CandyApiClient.js.map +1 -0
  8. package/distr/Common/CandyApiClient/CandyApiClientContext.js +4 -5
  9. package/distr/Common/CandyApiClient/CandyApiClientContext.js.map +1 -0
  10. package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js +1 -1
  11. package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js.map +1 -0
  12. package/distr/Common/CandyApiClient/ClientDraftInfo/FnsFormInfo.js +1 -1
  13. package/distr/Common/CandyApiClient/ClientDraftInfo/FnsFormInfo.js.map +1 -0
  14. package/distr/Common/CandyApiClient/ClientDraftInfo/GetClientDraftInfoUrl.js +1 -1
  15. package/distr/Common/CandyApiClient/ClientDraftInfo/GetClientDraftInfoUrl.js.map +1 -0
  16. package/distr/Common/CandyApiClient/ClientDraftInfo/PrintInfo.js +1 -1
  17. package/distr/Common/CandyApiClient/ClientDraftInfo/PrintInfo.js.map +1 -0
  18. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js +1 -1
  19. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js.map +1 -0
  20. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js +1 -1
  21. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js.map +1 -0
  22. package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js +1 -1
  23. package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js.map +1 -0
  24. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js +2 -3
  25. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js.map +1 -0
  26. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js +1 -1
  27. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js.map +1 -0
  28. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js +2 -3
  29. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js.map +1 -0
  30. package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js +1 -1
  31. package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js.map +1 -0
  32. package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js +4 -5
  33. package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js.map +1 -0
  34. package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js +1 -1
  35. package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js.map +1 -0
  36. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js +3 -5
  37. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js.map +1 -0
  38. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestRequest.js +1 -1
  39. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestRequest.js.map +1 -0
  40. package/distr/Common/CandyApiClient/FakeCandyApiClient.js +1 -1
  41. package/distr/Common/CandyApiClient/FakeCandyApiClient.js.map +1 -0
  42. package/distr/Common/CandyApiClient/ICandyApiClient.js +1 -1
  43. package/distr/Common/CandyApiClient/ICandyApiClient.js.map +1 -0
  44. package/distr/Common/CandyApiClient/IsBuffer.js +1 -1
  45. package/distr/Common/CandyApiClient/IsBuffer.js.map +1 -0
  46. package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js +1 -1
  47. package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js.map +1 -0
  48. package/distr/Common/CandyApiClient/Types/Attachments/GetAttachmentsResponse.js +1 -1
  49. package/distr/Common/CandyApiClient/Types/Attachments/GetAttachmentsResponse.js.map +1 -0
  50. package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js +1 -1
  51. package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js.map +1 -0
  52. package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftResponse.js +1 -1
  53. package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftResponse.js.map +1 -0
  54. package/distr/Common/CandyApiClient/Types/DiagResourcesResponse.js +1 -1
  55. package/distr/Common/CandyApiClient/Types/DiagResourcesResponse.js.map +1 -0
  56. package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js +3 -5
  57. package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js.map +1 -0
  58. package/distr/Common/CandyApiClient/Types/DraftActions/ConvertDraftRequest.js +1 -1
  59. package/distr/Common/CandyApiClient/Types/DraftActions/ConvertDraftRequest.js.map +1 -0
  60. package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js +1 -1
  61. package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js.map +1 -0
  62. package/distr/Common/CandyApiClient/Types/DraftActions/FufSizeTooLargeError.js +1 -1
  63. package/distr/Common/CandyApiClient/Types/DraftActions/FufSizeTooLargeError.js.map +1 -0
  64. package/distr/Common/CandyApiClient/Types/DraftFullId.js +1 -1
  65. package/distr/Common/CandyApiClient/Types/DraftFullId.js.map +1 -0
  66. package/distr/Common/CandyApiClient/Types/ErrorLog/CandyPopdProtocol.js +2 -3
  67. package/distr/Common/CandyApiClient/Types/ErrorLog/CandyPopdProtocol.js.map +1 -0
  68. package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js +3 -5
  69. package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js.map +1 -0
  70. package/distr/Common/CandyApiClient/Types/ExplanatoryNote/CreateExplanatoryNoteResponse.js +2 -3
  71. package/distr/Common/CandyApiClient/Types/ExplanatoryNote/CreateExplanatoryNoteResponse.js.map +1 -0
  72. package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js +1 -1
  73. package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js.map +1 -0
  74. package/distr/Common/CandyApiClient/Types/Focus/FocusServerResponse.js +1 -1
  75. package/distr/Common/CandyApiClient/Types/Focus/FocusServerResponse.js.map +1 -0
  76. package/distr/Common/CandyApiClient/Types/Focus/FocusTypes.js +2 -3
  77. package/distr/Common/CandyApiClient/Types/Focus/FocusTypes.js.map +1 -0
  78. package/distr/Common/CandyApiClient/Types/GetInner/ServerInnerResponse.js +1 -1
  79. package/distr/Common/CandyApiClient/Types/GetInner/ServerInnerResponse.js.map +1 -0
  80. package/distr/Common/CandyApiClient/Types/GetInner/ServerRawResponse.js +1 -1
  81. package/distr/Common/CandyApiClient/Types/GetInner/ServerRawResponse.js.map +1 -0
  82. package/distr/Common/CandyApiClient/Types/GetInner/ServerRequisitesResponse.js +1 -1
  83. package/distr/Common/CandyApiClient/Types/GetInner/ServerRequisitesResponse.js.map +1 -0
  84. package/distr/Common/CandyApiClient/Types/Guid.js +1 -1
  85. package/distr/Common/CandyApiClient/Types/Guid.js.map +1 -0
  86. package/distr/Common/CandyApiClient/Types/InstancesDeleting/InstancesDeletingRule.js +1 -1
  87. package/distr/Common/CandyApiClient/Types/InstancesDeleting/InstancesDeletingRule.js.map +1 -0
  88. package/distr/Common/CandyApiClient/Types/MassActions/MassActionParameters.js +1 -1
  89. package/distr/Common/CandyApiClient/Types/MassActions/MassActionParameters.js.map +1 -0
  90. package/distr/Common/CandyApiClient/Types/MassActions/ValueForInstancesSettingRule.js +1 -1
  91. package/distr/Common/CandyApiClient/Types/MassActions/ValueForInstancesSettingRule.js.map +1 -0
  92. package/distr/Common/CandyApiClient/Types/Presentations/DraftPresentationType.js +2 -3
  93. package/distr/Common/CandyApiClient/Types/Presentations/DraftPresentationType.js.map +1 -0
  94. package/distr/Common/CandyApiClient/Types/Presentations/PresentationContent.js +1 -1
  95. package/distr/Common/CandyApiClient/Types/Presentations/PresentationContent.js.map +1 -0
  96. package/distr/Common/CandyApiClient/Types/Print/PrintResponse.js +1 -1
  97. package/distr/Common/CandyApiClient/Types/Print/PrintResponse.js.map +1 -0
  98. package/distr/Common/CandyApiClient/Types/Print/PrintType.js +2 -3
  99. package/distr/Common/CandyApiClient/Types/Print/PrintType.js.map +1 -0
  100. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/AndExpression.js +1 -1
  101. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/AndExpression.js.map +1 -0
  102. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CompareExpression.js +1 -1
  103. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CompareExpression.js.map +1 -0
  104. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CountCallExpression.js +1 -1
  105. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CountCallExpression.js.map +1 -0
  106. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/DecimalConstantExpression.js +1 -1
  107. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/DecimalConstantExpression.js.map +1 -0
  108. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/InstanceIdCallExpression.js +1 -1
  109. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/InstanceIdCallExpression.js.map +1 -0
  110. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/NotExpression.js +1 -1
  111. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/NotExpression.js.map +1 -0
  112. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/OrExpression.js +1 -1
  113. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/OrExpression.js.map +1 -0
  114. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringConstantExpression.js +1 -1
  115. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringConstantExpression.js.map +1 -0
  116. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringMatchExpression.js +1 -1
  117. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringMatchExpression.js.map +1 -0
  118. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/SumCallExpression.js +1 -1
  119. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/SumCallExpression.js.map +1 -0
  120. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/TernaryExpression.js +1 -1
  121. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/TernaryExpression.js.map +1 -0
  122. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/ValueReferenceExpression.js +1 -1
  123. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/ValueReferenceExpression.js.map +1 -0
  124. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryExpression.js +1 -1
  125. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryExpression.js.map +1 -0
  126. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryRequest.js +1 -1
  127. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryRequest.js.map +1 -0
  128. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryResponse.js +1 -1
  129. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryResponse.js.map +1 -0
  130. package/distr/Common/CandyApiClient/Types/QueryCollecton/SelectClause.js +1 -1
  131. package/distr/Common/CandyApiClient/Types/QueryCollecton/SelectClause.js.map +1 -0
  132. package/distr/Common/CandyApiClient/Types/QueryCollecton/SortingRule.js +1 -1
  133. package/distr/Common/CandyApiClient/Types/QueryCollecton/SortingRule.js.map +1 -0
  134. package/distr/Common/CandyApiClient/Types/Staff/EmployeeInfo.js +1 -1
  135. package/distr/Common/CandyApiClient/Types/Staff/EmployeeInfo.js.map +1 -0
  136. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesOptions.js +1 -1
  137. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesOptions.js.map +1 -0
  138. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesRequest.js +1 -1
  139. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesRequest.js.map +1 -0
  140. package/distr/Common/CandyApiClient/Types/Staff/StaffInfo.js +1 -1
  141. package/distr/Common/CandyApiClient/Types/Staff/StaffInfo.js.map +1 -0
  142. package/distr/Common/CandyApiClient/Types/Tasks/GetTasksServerResponse.js +1 -1
  143. package/distr/Common/CandyApiClient/Types/Tasks/GetTasksServerResponse.js.map +1 -0
  144. package/distr/Common/CandyApiClient/Types/Tasks/Tasks.js +2 -3
  145. package/distr/Common/CandyApiClient/Types/Tasks/Tasks.js.map +1 -0
  146. package/distr/Common/CandyApiClient/Types/TestClassification.js +1 -1
  147. package/distr/Common/CandyApiClient/Types/TestClassification.js.map +1 -0
  148. package/distr/Common/CollectionUtils.js +1 -1
  149. package/distr/Common/CollectionUtils.js.map +1 -0
  150. package/distr/Common/CommonConstants/SectionNames.js +1 -1
  151. package/distr/Common/CommonConstants/SectionNames.js.map +1 -0
  152. package/distr/Common/Comparers.js +1 -1
  153. package/distr/Common/Comparers.js.map +1 -0
  154. package/distr/Common/EmotionStorybookWorkaroundViaAliases.js +3 -3
  155. package/distr/Common/EmotionStorybookWorkaroundViaAliases.js.map +1 -0
  156. package/distr/Common/EndPoints.js +6 -11
  157. package/distr/Common/EndPoints.js.map +1 -0
  158. package/distr/Common/Enums/ButtonSettingsTypeEnum.js +2 -3
  159. package/distr/Common/Enums/ButtonSettingsTypeEnum.js.map +1 -0
  160. package/distr/Common/Errors.js +1 -1
  161. package/distr/Common/Errors.js.map +1 -0
  162. package/distr/Common/ExtractGFVPath/ExtractGFVPath.js +1 -1
  163. package/distr/Common/ExtractGFVPath/ExtractGFVPath.js.map +1 -0
  164. package/distr/Common/FSPrinterClient/FSPrinterClient.js +2 -2
  165. package/distr/Common/FSPrinterClient/FSPrinterClient.js.map +1 -0
  166. package/distr/Common/FSPrinterClient/FakeFSPrinterClient.js +1 -1
  167. package/distr/Common/FSPrinterClient/FakeFSPrinterClient.js.map +1 -0
  168. package/distr/Common/FSPrinterClient/IFSPrinterClient.js +6 -11
  169. package/distr/Common/FSPrinterClient/IFSPrinterClient.js.map +1 -0
  170. package/distr/Common/FormActionHandlers/ContextualActionNames.js +1 -1
  171. package/distr/Common/FormActionHandlers/ContextualActionNames.js.map +1 -0
  172. package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js +1 -1
  173. package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js.map +1 -0
  174. package/distr/Common/FormPathUtils.js +2 -2
  175. package/distr/Common/FormPathUtils.js.map +1 -0
  176. package/distr/Common/Funcs.js +1 -1
  177. package/distr/Common/Funcs.js.map +1 -0
  178. package/distr/Common/GFV.js +1 -1
  179. package/distr/Common/GFV.js.map +1 -0
  180. package/distr/Common/Hooks/UseLocalStorage.js +3 -3
  181. package/distr/Common/Hooks/UseLocalStorage.js.map +1 -0
  182. package/distr/Common/HttpClient/AuthenticationMode.js +1 -1
  183. package/distr/Common/HttpClient/AuthenticationMode.js.map +1 -0
  184. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithOptionalPolyfill.js +2 -3
  185. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithOptionalPolyfill.js.map +1 -0
  186. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithPolyfill.js +2 -3
  187. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithPolyfill.js.map +1 -0
  188. package/distr/Common/HttpClient/FetchImplementation/Fetch.js +1 -1
  189. package/distr/Common/HttpClient/FetchImplementation/Fetch.js.map +1 -0
  190. package/distr/Common/HttpClient/FetchImplementation/NativeBrowserFetch.js +2 -3
  191. package/distr/Common/HttpClient/FetchImplementation/NativeBrowserFetch.js.map +1 -0
  192. package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js +1 -1
  193. package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js.map +1 -0
  194. package/distr/Common/HttpClient/HttpClient.js +2 -2
  195. package/distr/Common/HttpClient/HttpClient.js.map +1 -0
  196. package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js +1 -1
  197. package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js.map +1 -0
  198. package/distr/Common/HttpClient/IHttpClient.js +1 -1
  199. package/distr/Common/HttpClient/IHttpClient.js.map +1 -0
  200. package/distr/Common/IndentString.js +1 -1
  201. package/distr/Common/IndentString.js.map +1 -0
  202. package/distr/Common/IntRangeUtils.js +1 -1
  203. package/distr/Common/IntRangeUtils.js.map +1 -0
  204. package/distr/Common/IterableUtils.js +1 -1
  205. package/distr/Common/IterableUtils.js.map +1 -0
  206. package/distr/Common/KCLangRuntimeUtils.js +1 -1
  207. package/distr/Common/KCLangRuntimeUtils.js.map +1 -0
  208. package/distr/Common/ModelPath/AbsoluteModelFieldPath.js +4 -2
  209. package/distr/Common/ModelPath/AbsoluteModelFieldPath.js.map +1 -0
  210. package/distr/Common/ModelPath/BuildIterationSequence.js +1 -1
  211. package/distr/Common/ModelPath/BuildIterationSequence.js.map +1 -0
  212. package/distr/Common/ModelPath/EachCurrentCollision.js +2 -3
  213. package/distr/Common/ModelPath/EachCurrentCollision.js.map +1 -0
  214. package/distr/Common/ModelPath/IEquatable.js +1 -1
  215. package/distr/Common/ModelPath/IEquatable.js.map +1 -0
  216. package/distr/Common/ModelPath/Map/AbsoluteModelPathMap.js +1 -1
  217. package/distr/Common/ModelPath/Map/AbsoluteModelPathMap.js.map +1 -0
  218. package/distr/Common/ModelPath/Map/Map2.js +1 -1
  219. package/distr/Common/ModelPath/Map/Map2.js.map +1 -0
  220. package/distr/Common/ModelPath/Map/ModelPathMap.js +1 -1
  221. package/distr/Common/ModelPath/Map/ModelPathMap.js.map +1 -0
  222. package/distr/Common/ModelPath/ModelPath.js +1 -1
  223. package/distr/Common/ModelPath/ModelPath.js.map +1 -0
  224. package/distr/Common/ModelPath/ModelPathBuilder.js +1 -1
  225. package/distr/Common/ModelPath/ModelPathBuilder.js.map +1 -0
  226. package/distr/Common/ModelPath/ModelPathHelper.js +1 -1
  227. package/distr/Common/ModelPath/ModelPathHelper.js.map +1 -0
  228. package/distr/Common/ModelPath/PathMatcher.js +2 -3
  229. package/distr/Common/ModelPath/PathMatcher.js.map +1 -0
  230. package/distr/Common/ModelPath/PathSplitHelper.js +1 -1
  231. package/distr/Common/ModelPath/PathSplitHelper.js.map +1 -0
  232. package/distr/Common/ModelPath/Set/AbsoluteModelPathSet.js +1 -1
  233. package/distr/Common/ModelPath/Set/AbsoluteModelPathSet.js.map +1 -0
  234. package/distr/Common/ModelPath/Set/AbsoluteResolvedModelPathSet.js +1 -1
  235. package/distr/Common/ModelPath/Set/AbsoluteResolvedModelPathSet.js.map +1 -0
  236. package/distr/Common/ModelPath/Set/ModelPathSet.js +1 -1
  237. package/distr/Common/ModelPath/Set/ModelPathSet.js.map +1 -0
  238. package/distr/Common/ModelPath/Set/Set2.js +1 -1
  239. package/distr/Common/ModelPath/Set/Set2.js.map +1 -0
  240. package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js +1 -1
  241. package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js.map +1 -0
  242. package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js +1 -1
  243. package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js.map +1 -0
  244. package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js +1 -1
  245. package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js.map +1 -0
  246. package/distr/Common/NidusClient/Fakes/FakeNidusClient.js +1 -1
  247. package/distr/Common/NidusClient/Fakes/FakeNidusClient.js.map +1 -0
  248. package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js +1 -1
  249. package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js.map +1 -0
  250. package/distr/Common/NidusClient/INidusClient.js +1 -1
  251. package/distr/Common/NidusClient/INidusClient.js.map +1 -0
  252. package/distr/Common/NidusClient/NidusClientContext.js +3 -3
  253. package/distr/Common/NidusClient/NidusClientContext.js.map +1 -0
  254. package/distr/Common/NidusClient/NidusClientImpl.js +3 -3
  255. package/distr/Common/NidusClient/NidusClientImpl.js.map +1 -0
  256. package/distr/Common/PathConstants.js +4 -7
  257. package/distr/Common/PathConstants.js.map +1 -0
  258. package/distr/Common/PicklistApiClient/IPicklistApiClient.js +1 -1
  259. package/distr/Common/PicklistApiClient/IPicklistApiClient.js.map +1 -0
  260. package/distr/Common/PicklistApiClient/PicklistApiClient.js +1 -1
  261. package/distr/Common/PicklistApiClient/PicklistApiClient.js.map +1 -0
  262. package/distr/Common/PicklistApiClient/PicklistRequestV2Builder.js +1 -1
  263. package/distr/Common/PicklistApiClient/PicklistRequestV2Builder.js.map +1 -0
  264. package/distr/Common/PicklistApiClient/Serializers/DigestFilterColumnSerializer.js +1 -1
  265. package/distr/Common/PicklistApiClient/Serializers/DigestFilterColumnSerializer.js.map +1 -0
  266. package/distr/Common/PicklistApiClient/Serializers/DigestLogicalFilterSerializer.js +1 -1
  267. package/distr/Common/PicklistApiClient/Serializers/DigestLogicalFilterSerializer.js.map +1 -0
  268. package/distr/Common/PicklistApiClient/Types/PicklistRequestV2.js +1 -1
  269. package/distr/Common/PicklistApiClient/Types/PicklistRequestV2.js.map +1 -0
  270. package/distr/Common/PicklistApiClient/Types/PicklistResultV2.js +1 -1
  271. package/distr/Common/PicklistApiClient/Types/PicklistResultV2.js.map +1 -0
  272. package/distr/Common/RngSchemeTypes/types.js +1 -1
  273. package/distr/Common/RngSchemeTypes/types.js.map +1 -0
  274. package/distr/Common/StringArrayKey.js +1 -1
  275. package/distr/Common/StringArrayKey.js.map +1 -0
  276. package/distr/Common/TextExtractor/TextExtractorTypes.js +1 -1
  277. package/distr/Common/TextExtractor/TextExtractorTypes.js.map +1 -0
  278. package/distr/Common/TypingUtils.js +1 -1
  279. package/distr/Common/TypingUtils.js.map +1 -0
  280. package/distr/Common/UUID.js +1 -1
  281. package/distr/Common/UUID.js.map +1 -0
  282. package/distr/Common/UseAsyncEffect.js +3 -3
  283. package/distr/Common/UseAsyncEffect.js.map +1 -0
  284. package/distr/Common/UseShowOnce.js +1 -1
  285. package/distr/Common/UseShowOnce.js.map +1 -0
  286. package/distr/Common/UseTypedSelector.js +2 -3
  287. package/distr/Common/UseTypedSelector.js.map +1 -0
  288. package/distr/Common/WellKnownDirectories.js +1 -1
  289. package/distr/Common/WellKnownDirectories.js.map +1 -0
  290. package/distr/Common/getRngSchemaFilename.js +1 -1
  291. package/distr/Common/getRngSchemaFilename.js.map +1 -0
  292. package/distr/Common/hashUtils.js +1 -1
  293. package/distr/Common/hashUtils.js.map +1 -0
  294. package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js +9 -4
  295. package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js.map +1 -0
  296. package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js +6 -12
  297. package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js.map +1 -0
  298. package/distr/Tools/src/BuildTasks/Engine/AcquireFormEngine.js +1 -1
  299. package/distr/Tools/src/BuildTasks/Engine/AcquireFormEngine.js.map +1 -0
  300. package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js +3 -3
  301. package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js.map +1 -0
  302. package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js +4 -3
  303. package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js.map +1 -0
  304. package/distr/Tools/src/BuildTasks/Engine/EngineSource.js +1 -1
  305. package/distr/Tools/src/BuildTasks/Engine/EngineSource.js.map +1 -0
  306. package/distr/Tools/src/BuildTasks/EngineStructureUtils.js +1 -1
  307. package/distr/Tools/src/BuildTasks/EngineStructureUtils.js.map +1 -0
  308. package/distr/Tools/src/BuildTasks/EngineVersionUtils.js +1 -1
  309. package/distr/Tools/src/BuildTasks/EngineVersionUtils.js.map +1 -0
  310. package/distr/Tools/src/BuildTasks/FSTask.js +1 -1
  311. package/distr/Tools/src/BuildTasks/FSTask.js.map +1 -0
  312. package/distr/Tools/src/BuildTasks/Form/CompileForm.js +3 -3
  313. package/distr/Tools/src/BuildTasks/Form/CompileForm.js.map +1 -0
  314. package/distr/Tools/src/BuildTasks/Form/GenerateForm.js +3 -3
  315. package/distr/Tools/src/BuildTasks/Form/GenerateForm.js.map +1 -0
  316. package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js +1 -1
  317. package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js.map +1 -0
  318. package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js +1 -1
  319. package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js.map +1 -0
  320. package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js +3 -3
  321. package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js.map +1 -0
  322. package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js +1 -1
  323. package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js.map +1 -0
  324. package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js +3 -3
  325. package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js.map +1 -0
  326. package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js +4 -3
  327. package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js.map +1 -0
  328. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js +1 -1
  329. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js.map +1 -0
  330. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js +4 -4
  331. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js.map +1 -0
  332. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js +1 -1
  333. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js.map +1 -0
  334. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js +1 -1
  335. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js.map +1 -0
  336. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js +1 -1
  337. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js.map +1 -0
  338. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js +1 -1
  339. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js.map +1 -0
  340. package/distr/Tools/src/BuildTasks/ProcessUtils/ProcessUtils.js +1 -1
  341. package/distr/Tools/src/BuildTasks/ProcessUtils/ProcessUtils.js.map +1 -0
  342. package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js +5 -5
  343. package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js.map +1 -0
  344. package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js +3 -3
  345. package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js.map +1 -0
  346. package/distr/Tools/src/BuildTasks/ReadFormSource.js +1 -1
  347. package/distr/Tools/src/BuildTasks/ReadFormSource.js.map +1 -0
  348. package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +2 -3
  349. package/distr/Tools/src/BuildTasks/ResolveFormInfo.js.map +1 -0
  350. package/distr/Tools/src/BuildTasks/Version.js +3 -3
  351. package/distr/Tools/src/BuildTasks/Version.js.map +1 -0
  352. package/distr/Tools/src/BuildTasks/WriteFormMeta.js +1 -1
  353. package/distr/Tools/src/BuildTasks/WriteFormMeta.js.map +1 -0
  354. package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js +2 -3
  355. package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js.map +1 -0
  356. package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js +2 -3
  357. package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js.map +1 -0
  358. package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +1 -1
  359. package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js.map +1 -0
  360. package/distr/Tools/src/CLICommands/BuildServer/BuildLogsWebsocketController.js +3 -3
  361. package/distr/Tools/src/CLICommands/BuildServer/BuildLogsWebsocketController.js.map +1 -0
  362. package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js +3 -5
  363. package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js.map +1 -0
  364. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +4 -5
  365. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js.map +1 -0
  366. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +5 -6
  367. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js.map +1 -0
  368. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +4 -5
  369. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js.map +1 -0
  370. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsController.js +2 -3
  371. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsController.js.map +1 -0
  372. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js +4 -5
  373. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js.map +1 -0
  374. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js +4 -5
  375. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js.map +1 -0
  376. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js +2 -3
  377. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js.map +1 -0
  378. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js +4 -5
  379. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js.map +1 -0
  380. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js +4 -5
  381. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js.map +1 -0
  382. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +4 -4
  383. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js.map +1 -0
  384. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js +1 -1
  385. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js.map +1 -0
  386. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js +1 -1
  387. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js.map +1 -0
  388. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ReportGeneratorErrorToPageBody.js +1 -1
  389. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ReportGeneratorErrorToPageBody.js.map +1 -0
  390. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js +1 -1
  391. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js.map +1 -0
  392. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js +1 -1
  393. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js.map +1 -0
  394. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js +1 -1
  395. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js.map +1 -0
  396. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IInputFileSystem.js +1 -1
  397. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IInputFileSystem.js.map +1 -0
  398. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js +1 -1
  399. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js.map +1 -0
  400. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js +3 -3
  401. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js.map +1 -0
  402. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js +1 -1
  403. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js.map +1 -0
  404. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js +1 -1
  405. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js.map +1 -0
  406. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.js +1 -1
  407. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.js.map +1 -0
  408. package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js +1 -1
  409. package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js.map +1 -0
  410. package/distr/Tools/src/CLICommands/BuildServer/StdStreamsIntercepter.js +1 -1
  411. package/distr/Tools/src/CLICommands/BuildServer/StdStreamsIntercepter.js.map +1 -0
  412. package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js +2 -3
  413. package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js.map +1 -0
  414. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptionDefintions.js +3 -5
  415. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptionDefintions.js.map +1 -0
  416. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptions.js +1 -1
  417. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptions.js.map +1 -0
  418. package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js +2 -3
  419. package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js.map +1 -0
  420. package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +1 -1
  421. package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js.map +1 -0
  422. package/distr/Tools/src/CLICommands/FormStats/FormStatsOptions.js +2 -3
  423. package/distr/Tools/src/CLICommands/FormStats/FormStatsOptions.js.map +1 -0
  424. package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js +2 -2
  425. package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js.map +1 -0
  426. package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js +4 -5
  427. package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js.map +1 -0
  428. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/fetchfunctions/{gfv}.fetchfunctions.js +1 -1
  429. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/fetchfunctions/{gfv}.fetchfunctions.js.map +1 -0
  430. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js +2 -3
  431. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js.map +1 -0
  432. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js +2 -3
  433. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js.map +1 -0
  434. package/distr/Tools/src/CLICommands/InitForm/InitFormOptions.js +2 -3
  435. package/distr/Tools/src/CLICommands/InitForm/InitFormOptions.js.map +1 -0
  436. package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js +3 -3
  437. package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js.map +1 -0
  438. package/distr/Tools/src/CLICommands/Localization/LocalizationOptions.js +2 -3
  439. package/distr/Tools/src/CLICommands/Localization/LocalizationOptions.js.map +1 -0
  440. package/distr/Tools/src/CLICommands/Localization/RunLocalization.js +1 -1
  441. package/distr/Tools/src/CLICommands/Localization/RunLocalization.js.map +1 -0
  442. package/distr/Tools/src/CLICommands/RenameFiles/RenameFilesOptions.js +2 -3
  443. package/distr/Tools/src/CLICommands/RenameFiles/RenameFilesOptions.js.map +1 -0
  444. package/distr/Tools/src/CLICommands/RenameFiles/RunRenameFiles.js +3 -3
  445. package/distr/Tools/src/CLICommands/RenameFiles/RunRenameFiles.js.map +1 -0
  446. package/distr/Tools/src/CLICommands/SugarExtractor/ExtractTextsFromSugarController.js +2 -3
  447. package/distr/Tools/src/CLICommands/SugarExtractor/ExtractTextsFromSugarController.js.map +1 -0
  448. package/distr/Tools/src/CLICommands/SugarExtractor/Utils.js +1 -1
  449. package/distr/Tools/src/CLICommands/SugarExtractor/Utils.js.map +1 -0
  450. package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js +3 -3
  451. package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js.map +1 -0
  452. package/distr/Tools/src/CLICommands/UpgradeForm/UpgradeFormOptions.js +2 -3
  453. package/distr/Tools/src/CLICommands/UpgradeForm/UpgradeFormOptions.js.map +1 -0
  454. package/distr/Tools/src/CandyCLI.js +1 -1
  455. package/distr/Tools/src/CandyCLI.js.map +1 -0
  456. package/distr/Tools/src/CheckNodeJsVersion.js +2 -3
  457. package/distr/Tools/src/CheckNodeJsVersion.js.map +1 -0
  458. package/distr/Tools/src/Commons/ApiClient/ToolsApiClient.js +1 -1
  459. package/distr/Tools/src/Commons/ApiClient/ToolsApiClient.js.map +1 -0
  460. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js +3 -3
  461. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js.map +1 -0
  462. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplicationContext.js +1 -1
  463. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplicationContext.js.map +1 -0
  464. package/distr/Tools/src/Commons/ErrorUntyped.js +1 -1
  465. package/distr/Tools/src/Commons/ErrorUntyped.js.map +1 -0
  466. package/distr/Tools/src/Commons/EventObject.js +1 -1
  467. package/distr/Tools/src/Commons/EventObject.js.map +1 -0
  468. package/distr/Tools/src/Commons/ExecUtils.js +1 -1
  469. package/distr/Tools/src/Commons/ExecUtils.js.map +1 -0
  470. package/distr/Tools/src/Commons/ExtractGfvsFromFileName.js +1 -1
  471. package/distr/Tools/src/Commons/ExtractGfvsFromFileName.js.map +1 -0
  472. package/distr/Tools/src/Commons/FormGlobsUtils.js +1 -1
  473. package/distr/Tools/src/Commons/FormGlobsUtils.js.map +1 -0
  474. package/distr/Tools/src/Commons/FormLocationInfo.js +1 -1
  475. package/distr/Tools/src/Commons/FormLocationInfo.js.map +1 -0
  476. package/distr/Tools/src/Commons/FsUtils.js +5 -7
  477. package/distr/Tools/src/Commons/FsUtils.js.map +1 -0
  478. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js +1 -1
  479. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js.map +1 -0
  480. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js +1 -1
  481. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js.map +1 -0
  482. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/NotFoundWebError.js +1 -1
  483. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/NotFoundWebError.js.map +1 -0
  484. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js +1 -1
  485. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js.map +1 -0
  486. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/IParamBinder.js +1 -1
  487. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/IParamBinder.js.map +1 -0
  488. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js +1 -1
  489. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js.map +1 -0
  490. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js +1 -1
  491. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js.map +1 -0
  492. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js +1 -1
  493. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js.map +1 -0
  494. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js +1 -1
  495. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js.map +1 -0
  496. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js +2 -3
  497. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js.map +1 -0
  498. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomActionResultHandler.js +1 -1
  499. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomActionResultHandler.js.map +1 -0
  500. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomContentResultHandler.js +1 -1
  501. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomContentResultHandler.js.map +1 -0
  502. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/EmptyResultHandler.js +1 -1
  503. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/EmptyResultHandler.js.map +1 -0
  504. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/HtmlResultHandler.js +1 -1
  505. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/HtmlResultHandler.js.map +1 -0
  506. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/IResultHandler.js +1 -1
  507. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/IResultHandler.js.map +1 -0
  508. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/JsonResultHandler.js +1 -1
  509. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/JsonResultHandler.js.map +1 -0
  510. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/PlainTextResultHandler.js +1 -1
  511. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/PlainTextResultHandler.js.map +1 -0
  512. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js +3 -3
  513. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js.map +1 -0
  514. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results.js +2 -3
  515. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results.js.map +1 -0
  516. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/ExpressServerWrapper.js +6 -6
  517. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/ExpressServerWrapper.js.map +1 -0
  518. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/SingletonController.js +1 -1
  519. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/SingletonController.js.map +1 -0
  520. package/distr/Tools/src/Commons/Locks/Lock.js +1 -1
  521. package/distr/Tools/src/Commons/Locks/Lock.js.map +1 -0
  522. package/distr/Tools/src/Commons/Locks/LockHandle.js +1 -1
  523. package/distr/Tools/src/Commons/Locks/LockHandle.js.map +1 -0
  524. package/distr/Tools/src/Commons/Locks/ReadWriteLockCollection.js +1 -1
  525. package/distr/Tools/src/Commons/Locks/ReadWriteLockCollection.js.map +1 -0
  526. package/distr/Tools/src/Commons/Logging/ELKLogger.js +2 -3
  527. package/distr/Tools/src/Commons/Logging/ELKLogger.js.map +1 -0
  528. package/distr/Tools/src/Commons/Logging/ILogger.js +1 -1
  529. package/distr/Tools/src/Commons/Logging/ILogger.js.map +1 -0
  530. package/distr/Tools/src/Commons/Logging/InMemoryLogger.js +1 -1
  531. package/distr/Tools/src/Commons/Logging/InMemoryLogger.js.map +1 -0
  532. package/distr/Tools/src/Commons/Logging/Logger.js +1 -1
  533. package/distr/Tools/src/Commons/Logging/Logger.js.map +1 -0
  534. package/distr/Tools/src/Commons/Logging/StaticLogger.js +1 -1
  535. package/distr/Tools/src/Commons/Logging/StaticLogger.js.map +1 -0
  536. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js +1 -1
  537. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js.map +1 -0
  538. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js +3 -3
  539. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js.map +1 -0
  540. package/distr/Tools/src/Commons/PathPattern.js +1 -1
  541. package/distr/Tools/src/Commons/PathPattern.js.map +1 -0
  542. package/distr/Tools/src/Commons/TasksCore/AggregatedError.js +1 -1
  543. package/distr/Tools/src/Commons/TasksCore/AggregatedError.js.map +1 -0
  544. package/distr/Tools/src/Commons/TasksCore/BuildTask.js +1 -1
  545. package/distr/Tools/src/Commons/TasksCore/BuildTask.js.map +1 -0
  546. package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js +5 -5
  547. package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js.map +1 -0
  548. package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js +3 -3
  549. package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js.map +1 -0
  550. package/distr/Tools/src/Commons/TasksCore/EmptyProducer.js +1 -1
  551. package/distr/Tools/src/Commons/TasksCore/EmptyProducer.js.map +1 -0
  552. package/distr/Tools/src/Commons/TasksCore/FileSystemEntriesProducer.js +1 -1
  553. package/distr/Tools/src/Commons/TasksCore/FileSystemEntriesProducer.js.map +1 -0
  554. package/distr/Tools/src/Commons/TasksCore/FileValueProducer.js +1 -1
  555. package/distr/Tools/src/Commons/TasksCore/FileValueProducer.js.map +1 -0
  556. package/distr/Tools/src/Commons/TasksCore/FixedDirectoryEntriesProducer.js +1 -1
  557. package/distr/Tools/src/Commons/TasksCore/FixedDirectoryEntriesProducer.js.map +1 -0
  558. package/distr/Tools/src/Commons/TasksCore/Observe.js +1 -1
  559. package/distr/Tools/src/Commons/TasksCore/Observe.js.map +1 -0
  560. package/distr/Tools/src/Commons/TasksCore/SingleValueProducer.js +1 -1
  561. package/distr/Tools/src/Commons/TasksCore/SingleValueProducer.js.map +1 -0
  562. package/distr/Tools/src/Commons/TimingUtils.js +1 -1
  563. package/distr/Tools/src/Commons/TimingUtils.js.map +1 -0
  564. package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js +3 -3
  565. package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js.map +1 -0
  566. package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +2 -2
  567. package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js.map +1 -0
  568. package/distr/Tools/src/GenerateReadMe.js +1 -1
  569. package/distr/Tools/src/GenerateReadMe.js.map +1 -0
  570. package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +1 -1
  571. package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js.LICENSE.txt +5 -3
  572. package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
  573. package/distr/Tools/src/LocalServerFrontEndDist/index.js.LICENSE.txt +5 -3
  574. package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
  575. package/distr/Tools/src/Options/CandyToolOptions.js +2 -3
  576. package/distr/Tools/src/Options/CandyToolOptions.js.map +1 -0
  577. package/distr/Tools/src/ReadFarmConfig.js +1 -1
  578. package/distr/Tools/src/ReadFarmConfig.js.map +1 -0
  579. package/distr/Tools/src/SelfUpdate.js +3 -3
  580. package/distr/Tools/src/SelfUpdate.js.map +1 -0
  581. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +681 -686
  582. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
  583. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +581 -866
  584. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.LICENSE.txt +1 -1
  585. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
  586. package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js +1 -1
  587. package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js.map +1 -0
  588. package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js +1 -1
  589. package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js.map +1 -0
  590. package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js +1 -1
  591. package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js.map +1 -0
  592. package/distr/Tools/src/StaticFilesForResourcesDir/jquery-1.11.3.min.js +1 -1
  593. package/distr/Tools/src/StaticFilesForResourcesDir/jquery-1.11.3.min.js.map +1 -0
  594. package/distr/Tools/src/StaticFilesForResourcesDir/polyfill.min.js +1 -1
  595. package/distr/Tools/src/StaticFilesForResourcesDir/polyfill.min.js.map +1 -0
  596. package/distr/Tools/src/StaticFilesForResourcesDir/testing.min.js +1 -1
  597. package/distr/Tools/src/StaticFilesForResourcesDir/testing.min.js.map +1 -0
  598. package/package.json +24 -24
  599. package/CHANGELOG.md +0 -1659
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.WebpackHybridFileSystem = void 0;
7
7
  var path = _interopRequireWildcard(require("path"));
8
8
  var _memfs = require("memfs");
9
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
10
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
11
  /* tslint:disable:no-any */
12
12
 
13
13
  class WebpackHybridFileSystem {
@@ -181,4 +181,4 @@ class WebpackVirtualWatchFileSystemWatcher {
181
181
  this.callback(undefined, files, dirs, missing, times, times, new Set());
182
182
  }
183
183
  }
184
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX21lbWZzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIldlYnBhY2tIeWJyaWRGaWxlU3lzdGVtIiwiY29uc3RydWN0b3IiLCJwYXRoVG9WaXJ0dWFsRGlyZWN0b3J5IiwiaW5uZXJJbnB1dEZpbGVTeXN0ZW0iLCJ2aXJ0dWFsRnMiLCJ3YXRjaGVycyIsInZpcnR1YWxWb2x1bWUiLCJWb2x1bWUiLCJmcm9tSlNPTiIsImNyZWF0ZUZzRnJvbVZvbHVtZSIsInNldElubmVySW5wdXRGaWxlU3lzdGVtIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJyZWFkRmlsZSIsImZpbGVuYW1lIiwib3B0aW9ucyIsImNhbGxiYWNrIiwic3RhcnRzV2l0aCIsInJlYWRGaWxlU3luYyIsInJlYWRkaXIiLCJkaXJQYXRoIiwicmVhZGRpclN5bmMiLCJyZWFkbGluayIsInJlYWRsaW5rU3luYyIsImxpbmtQYXRoIiwic3RhdCIsImZzUGF0aCIsInN0YXRTeW5jIiwid3JpdGVCYXRjaCIsImZpbGVCYXRjaCIsImZpbGVQYXRoIiwia2V5cyIsIm1rZGlycFN5bmMiLCJwYXJzZSIsImRpciIsIndyaXRlRmlsZVN5bmMiLCJlbWl0Q2hhbmdlcyIsIndhdGNoIiwiZmlsZXMiLCJkaXJzIiwibWlzc2luZyIsInN0YXJ0VGltZSIsImNhbGxiYWNrVW5kZWxheWVkIiwicmVzdWx0IiwiV2VicGFja1ZpcnR1YWxXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyIiwidmFsdWVzIiwiZmlsdGVyIiwieCIsInB1c2giLCJ3YXRjaGVyIiwiZXhwb3J0cyIsImNsb3NlZCIsInBhdXNlZCIsImZpbGVQYXRocyIsImNoYW5nZXMiLCJTZXQiLCJEYXRlIiwibm93IiwiYWRkIiwiZW1pdEFnZ3JlZ2F0ZWRDaGFuZ2VzIiwiY2xvc2UiLCJwYXVzZSIsImdldENvbnRleHRUaW1lSW5mb0VudHJpZXMiLCJnZXRGaWxlVGltZUluZm9FbnRyaWVzIiwidGltZXMiLCJNYXAiLCJmaWxlIiwidGltZXN0YW1wIiwibXRpbWVNcyIsInNhZmVUaW1lIiwiQXJyYXkiLCJmcm9tIiwiaW5jbHVkZXMiLCJzb3J0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0RldlNlcnZlcnMvV2VicGFja0luTWVtb3J5VXRpbHMvV2VicGFja0h5YnJpZEZpbGVTeXN0ZW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXG5pbXBvcnQgeyBTdGF0cyB9IGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBjcmVhdGVGc0Zyb21Wb2x1bWUsIElGcywgVm9sdW1lIH0gZnJvbSBcIm1lbWZzXCI7XG5pbXBvcnQgeyBURW5jb2RpbmdFeHRlbmRlZCB9IGZyb20gXCJtZW1mcy9saWIvZW5jb2RpbmdcIjtcblxuaW1wb3J0IHsgSUZpbGVXcml0ZXIgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL0dlbmVyYXRlRm9ybVwiO1xuXG5pbXBvcnQgeyBJSW5wdXRGaWxlU3lzdGVtIH0gZnJvbSBcIi4vSUlucHV0RmlsZVN5c3RlbVwiO1xuaW1wb3J0IHtcbiAgICBGaWxlU3lzdGVtVGltZUluZm9FbnRyeSxcbiAgICBJV2F0Y2hGaWxlU3lzdGVtLFxuICAgIElXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyLFxuICAgIFdhdGNoRmlsZVN5c3RlbUNhbGxiYWNrLFxuICAgIFdhdGNoRmlsZVN5c3RlbUNhbGxiYWNrVW5kZWxheWVkLFxuICAgIFdhdGNoRmlsZVN5c3RlbVdhdGNoT3B0aW9ucyxcbn0gZnJvbSBcIi4vSVdhdGNoRmlsZVN5c3RlbVwiO1xuXG5leHBvcnQgY2xhc3MgV2VicGFja0h5YnJpZEZpbGVTeXN0ZW0gaW1wbGVtZW50cyBJRmlsZVdyaXRlciwgSUlucHV0RmlsZVN5c3RlbSwgSVdhdGNoRmlsZVN5c3RlbSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXRoVG9WaXJ0dWFsRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBpbm5lcklucHV0RmlsZVN5c3RlbSE6IElJbnB1dEZpbGVTeXN0ZW07XG4gICAgcHJpdmF0ZSByZWFkb25seSB2aXJ0dWFsRnM6IElGcztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdhdGNoZXJzOiBXZWJwYWNrVmlydHVhbFdhdGNoRmlsZVN5c3RlbVdhdGNoZXJbXSA9IFtdO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhdGhUb1ZpcnR1YWxEaXJlY3Rvcnk6IHN0cmluZykge1xuICAgICAgICB0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkgPSBwYXRoVG9WaXJ0dWFsRGlyZWN0b3J5O1xuICAgICAgICBjb25zdCB2aXJ0dWFsVm9sdW1lID0gVm9sdW1lLmZyb21KU09OKHt9KTtcbiAgICAgICAgdGhpcy52aXJ0dWFsRnMgPSBjcmVhdGVGc0Zyb21Wb2x1bWUodmlydHVhbFZvbHVtZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldElubmVySW5wdXRGaWxlU3lzdGVtKGlubmVySW5wdXRGaWxlU3lzdGVtOiBJSW5wdXRGaWxlU3lzdGVtKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IHNldCBpbm5lciBmaWxlIHN5c3RlbSB0d2ljZVwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtID0gaW5uZXJJbnB1dEZpbGVTeXN0ZW07XG4gICAgfVxuXG4gICAgcHVibGljIHJlYWRGaWxlKFxuICAgICAgICBmaWxlbmFtZTogc3RyaW5nLFxuICAgICAgICBvcHRpb25zOiBzdHJpbmcgfCB7IGVuY29kaW5nOiBzdHJpbmc7IGZsYWc/OiBzdHJpbmcgfSxcbiAgICAgICAgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgZGF0YTogc3RyaW5nKSA9PiB2b2lkXG4gICAgKTogdm9pZDtcbiAgICBwdWJsaWMgcmVhZEZpbGUoXG4gICAgICAgIGZpbGVuYW1lOiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM6IHsgZmxhZz86IHN0cmluZyB9LFxuICAgICAgICBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBCdWZmZXIpID0+IHZvaWRcbiAgICApOiB2b2lkO1xuICAgIHB1YmxpYyByZWFkRmlsZShmaWxlbmFtZTogc3RyaW5nLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBCdWZmZXIpID0+IHZvaWQpOiB2b2lkO1xuICAgIHB1YmxpYyByZWFkRmlsZShcbiAgICAgICAgZmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgb3B0aW9uczpcbiAgICAgICAgICAgIHwgc3RyaW5nXG4gICAgICAgICAgICB8IHsgZW5jb2Rpbmc6IFRFbmNvZGluZ0V4dGVuZGVkOyBmbGFnPzogc3RyaW5nIH1cbiAgICAgICAgICAgIHwgeyBmbGFnPzogc3RyaW5nIH1cbiAgICAgICAgICAgIHwgKChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgZGF0YTogQnVmZmVyKSA9PiB2b2lkKSxcbiAgICAgICAgY2FsbGJhY2s/OlxuICAgICAgICAgICAgfCAoKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBzdHJpbmcpID0+IHZvaWQpXG4gICAgICAgICAgICB8ICgoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGRhdGE6IEJ1ZmZlcikgPT4gdm9pZClcbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKGZpbGVuYW1lLnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMucmVhZEZpbGUoZmlsZW5hbWUsIG9wdGlvbnMsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0ucmVhZEZpbGUoZmlsZW5hbWUsIG9wdGlvbnMsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWFkRmlsZVN5bmMoZmlsZW5hbWU6IHN0cmluZywgb3B0aW9uczogc3RyaW5nIHwgeyBlbmNvZGluZzogc3RyaW5nOyBmbGFnPzogc3RyaW5nIH0pOiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRGaWxlU3luYyhmaWxlbmFtZTogc3RyaW5nLCBvcHRpb25zPzogeyBmbGFnPzogc3RyaW5nIH0pOiBCdWZmZXI7XG4gICAgcHVibGljIHJlYWRGaWxlU3luYyhcbiAgICAgICAgZmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgb3B0aW9ucz86IHN0cmluZyB8IHsgZW5jb2Rpbmc6IHN0cmluZzsgZmxhZz86IHN0cmluZyB9IHwgeyBmbGFnPzogc3RyaW5nIH1cbiAgICApOiBzdHJpbmcgfCBCdWZmZXIge1xuICAgICAgICBpZiAoZmlsZW5hbWUuc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXJ0dWFsRnMucmVhZEZpbGVTeW5jKGZpbGVuYW1lLCBvcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRGaWxlU3luYyhmaWxlbmFtZSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZGRpcihkaXJQYXRoOiBzdHJpbmcsIGNhbGxiYWNrOiAoZXJyOiBFcnJvciwgZmlsZXM6IHN0cmluZ1tdKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIGlmIChkaXJQYXRoLnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMucmVhZGRpcihkaXJQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRkaXIoZGlyUGF0aCwgY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlYWRkaXJTeW5jKGRpclBhdGg6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICAgICAgaWYgKGRpclBhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXJ0dWFsRnMucmVhZGRpclN5bmMoZGlyUGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbm5lcklucHV0RmlsZVN5c3RlbS5yZWFkZGlyU3luYyhkaXJQYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIHJlYWRsaW5rKGRpclBhdGg6IHN0cmluZywgY2FsbGJhY2s/OiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGxpbmtTdHJpbmc6IHN0cmluZykgPT4gYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChkaXJQYXRoLnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMucmVhZGxpbmsoZGlyUGF0aCwgY2FsbGJhY2spO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy5pbm5lcklucHV0RmlsZVN5c3RlbS5yZWFkbGluayhkaXJQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZGxpbmtTeW5jKGxpbmtQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAobGlua1BhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXJ0dWFsRnMucmVhZGxpbmtTeW5jKGxpbmtQYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRsaW5rU3luYyhsaW5rUGF0aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyBzdGF0KGZzUGF0aDogc3RyaW5nLCBjYWxsYmFjaz86IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgc3RhdHM6IFN0YXRzKSA9PiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGZzUGF0aC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMudmlydHVhbEZzLnN0YXQoZnNQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnN0YXQoZnNQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdFN5bmMoZnNQYXRoOiBzdHJpbmcpOiBTdGF0cyB7XG4gICAgICAgIGlmIChmc1BhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXJ0dWFsRnMuc3RhdFN5bmMoZnNQYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnN0YXRTeW5jKGZzUGF0aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgd3JpdGVCYXRjaChmaWxlQmF0Y2g6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGZvciAoY29uc3QgZmlsZVBhdGggb2YgT2JqZWN0LmtleXMoZmlsZUJhdGNoKSkge1xuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMubWtkaXJwU3luYyhwYXRoLnBhcnNlKGZpbGVQYXRoKS5kaXIpO1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSDQotCw0Lwg0LHQsNCzINCyINGC0LDQudC/0LjQvdCz0LDRhVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgZmlsZUJhdGNoW2ZpbGVQYXRoXSwgXCJ1dGY4XCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW1pdENoYW5nZXMoZmlsZUJhdGNoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2F0Y2goXG4gICAgICAgIGZpbGVzOiBJTGF6eVNldDxzdHJpbmc+LFxuICAgICAgICBkaXJzOiBJTGF6eVNldDxzdHJpbmc+LFxuICAgICAgICBtaXNzaW5nOiBJTGF6eVNldDxzdHJpbmc+LFxuICAgICAgICBzdGFydFRpbWU6IG51bWJlcixcbiAgICAgICAgb3B0aW9uczogV2F0Y2hGaWxlU3lzdGVtV2F0Y2hPcHRpb25zLFxuICAgICAgICBjYWxsYmFjazogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2ssXG4gICAgICAgIGNhbGxiYWNrVW5kZWxheWVkOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFja1VuZGVsYXllZFxuICAgICk6IElXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IFdlYnBhY2tWaXJ0dWFsV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlcihcbiAgICAgICAgICAgIHRoaXMudmlydHVhbEZzLFxuICAgICAgICAgICAgWy4uLmZpbGVzLnZhbHVlcygpXS5maWx0ZXIoeCA9PiB4LnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSksXG4gICAgICAgICAgICBbLi4uZGlycy52YWx1ZXMoKV0uZmlsdGVyKHggPT4geC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpLFxuICAgICAgICAgICAgWy4uLm1pc3NpbmcudmFsdWVzKCldLmZpbHRlcih4ID0+IHguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSxcbiAgICAgICAgICAgIGNhbGxiYWNrLFxuICAgICAgICAgICAgY2FsbGJhY2tVbmRlbGF5ZWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy53YXRjaGVycy5wdXNoKHJlc3VsdCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbWl0Q2hhbmdlcyhmaWxlQmF0Y2g6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9KTogdm9pZCB7XG4gICAgICAgIGZvciAoY29uc3Qgd2F0Y2hlciBvZiB0aGlzLndhdGNoZXJzKSB7XG4gICAgICAgICAgICB3YXRjaGVyLmVtaXRDaGFuZ2VzKE9iamVjdC5rZXlzKGZpbGVCYXRjaCkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5jbGFzcyBXZWJwYWNrVmlydHVhbFdhdGNoRmlsZVN5c3RlbVdhdGNoZXIgaW1wbGVtZW50cyBJV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB2aXJ0dWFsRnM6IElGcztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGVzOiBzdHJpbmdbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpcnM6IHN0cmluZ1tdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWlzc2luZzogc3RyaW5nW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYWxsYmFjazogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2s7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYWxsYmFja1VuZGVsYXllZDogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2tVbmRlbGF5ZWQ7XG5cbiAgICBwcml2YXRlIGNsb3NlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgcGF1c2VkID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHZpcnR1YWxGczogSUZzLFxuICAgICAgICBmaWxlczogc3RyaW5nW10sXG4gICAgICAgIGRpcnM6IHN0cmluZ1tdLFxuICAgICAgICBtaXNzaW5nOiBzdHJpbmdbXSxcbiAgICAgICAgY2FsbGJhY2s6IFdhdGNoRmlsZVN5c3RlbUNhbGxiYWNrLFxuICAgICAgICBjYWxsYmFja1VuZGVsYXllZDogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2tVbmRlbGF5ZWRcbiAgICApIHtcbiAgICAgICAgdGhpcy52aXJ0dWFsRnMgPSB2aXJ0dWFsRnM7XG4gICAgICAgIHRoaXMuZmlsZXMgPSBmaWxlcztcbiAgICAgICAgdGhpcy5kaXJzID0gZGlycztcbiAgICAgICAgdGhpcy5taXNzaW5nID0gbWlzc2luZztcbiAgICAgICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgICB0aGlzLmNhbGxiYWNrVW5kZWxheWVkID0gY2FsbGJhY2tVbmRlbGF5ZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGVtaXRDaGFuZ2VzKGZpbGVQYXRoczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGF1c2VkIHx8IHRoaXMuY2xvc2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2hhbmdlczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG4gICAgICAgIGlmIChmaWxlUGF0aHNbMF0gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNhbGxiYWNrVW5kZWxheWVkKGZpbGVQYXRoc1swXSwgRGF0ZS5ub3coKSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBmaWxlUGF0aHMpIHtcbiAgICAgICAgICAgIGNoYW5nZXMuYWRkKGZpbGVQYXRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZW1pdEFnZ3JlZ2F0ZWRDaGFuZ2VzKGNoYW5nZXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBwYXVzZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb250ZXh0VGltZUluZm9FbnRyaWVzKCk6IE1hcDxzdHJpbmcsIEZpbGVTeXN0ZW1UaW1lSW5mb0VudHJ5PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEZpbGVUaW1lSW5mb0VudHJpZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmlsZVRpbWVJbmZvRW50cmllcygpOiBNYXA8c3RyaW5nLCBGaWxlU3lzdGVtVGltZUluZm9FbnRyeT4ge1xuICAgICAgICBjb25zdCB0aW1lczogTWFwPHN0cmluZywgRmlsZVN5c3RlbVRpbWVJbmZvRW50cnk+ID0gbmV3IE1hcCgpO1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgdGhpcy5maWxlcykge1xuICAgICAgICAgICAgdGltZXMuc2V0KGZpbGUsIHtcbiAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IHRoaXMudmlydHVhbEZzLnN0YXRTeW5jKGZpbGUpLm10aW1lTXMsXG4gICAgICAgICAgICAgICAgc2FmZVRpbWU6IHRoaXMudmlydHVhbEZzLnN0YXRTeW5jKGZpbGUpLm10aW1lTXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGltZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbWl0QWdncmVnYXRlZENoYW5nZXMoY2hhbmdlczogU2V0PHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmlsZVBhdGhzID0gQXJyYXkuZnJvbShjaGFuZ2VzKTtcbiAgICAgICAgY29uc3QgZmlsZXMgPSBmaWxlUGF0aHMuZmlsdGVyKGZpbGVQYXRoID0+IHRoaXMuZmlsZXMuaW5jbHVkZXMoZmlsZVBhdGgpKS5zb3J0KCk7XG4gICAgICAgIGNvbnN0IGRpcnMgPSBmaWxlUGF0aHMuZmlsdGVyKGZpbGVQYXRoID0+IHRoaXMuZGlycy5pbmNsdWRlcyhmaWxlUGF0aCkpLnNvcnQoKTtcbiAgICAgICAgY29uc3QgbWlzc2luZyA9IGZpbGVQYXRocy5maWx0ZXIoZmlsZVBhdGggPT4gdGhpcy5taXNzaW5nLmluY2x1ZGVzKGZpbGVQYXRoKSkuc29ydCgpO1xuICAgICAgICBjb25zdCB0aW1lcyA9IHRoaXMuZ2V0RmlsZVRpbWVJbmZvRW50cmllcygpO1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMuY2FsbGJhY2sodW5kZWZpbmVkLCBmaWxlcywgZGlycywgbWlzc2luZywgdGltZXMsIHRpbWVzLCBuZXcgU2V0KCkpO1xuICAgIH1cbn1cblxuaW50ZXJmYWNlIElMYXp5U2V0PFQ+IHtcbiAgICB2YWx1ZXMoKTogSXRlcmFibGU8VD47XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLElBQUFBLElBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUF3RCxTQUFBRSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBSix3QkFBQVEsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLG9CQUFBQSxHQUFBLHdCQUFBQSxHQUFBLDRCQUFBRSxPQUFBLEVBQUFGLEdBQUEsVUFBQUcsS0FBQSxHQUFBUix3QkFBQSxDQUFBQyxXQUFBLE9BQUFPLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFKLEdBQUEsWUFBQUcsS0FBQSxDQUFBRSxHQUFBLENBQUFMLEdBQUEsU0FBQU0sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFYLEdBQUEsUUFBQVcsR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFB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
184
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX21lbWZzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiV2VicGFja0h5YnJpZEZpbGVTeXN0ZW0iLCJjb25zdHJ1Y3RvciIsInBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkiLCJpbm5lcklucHV0RmlsZVN5c3RlbSIsInZpcnR1YWxGcyIsIndhdGNoZXJzIiwidmlydHVhbFZvbHVtZSIsIlZvbHVtZSIsImZyb21KU09OIiwiY3JlYXRlRnNGcm9tVm9sdW1lIiwic2V0SW5uZXJJbnB1dEZpbGVTeXN0ZW0iLCJ1bmRlZmluZWQiLCJFcnJvciIsInJlYWRGaWxlIiwiZmlsZW5hbWUiLCJvcHRpb25zIiwiY2FsbGJhY2siLCJzdGFydHNXaXRoIiwicmVhZEZpbGVTeW5jIiwicmVhZGRpciIsImRpclBhdGgiLCJyZWFkZGlyU3luYyIsInJlYWRsaW5rIiwicmVhZGxpbmtTeW5jIiwibGlua1BhdGgiLCJzdGF0IiwiZnNQYXRoIiwic3RhdFN5bmMiLCJ3cml0ZUJhdGNoIiwiZmlsZUJhdGNoIiwiZmlsZVBhdGgiLCJrZXlzIiwibWtkaXJwU3luYyIsInBhcnNlIiwiZGlyIiwid3JpdGVGaWxlU3luYyIsImVtaXRDaGFuZ2VzIiwid2F0Y2giLCJmaWxlcyIsImRpcnMiLCJtaXNzaW5nIiwic3RhcnRUaW1lIiwiY2FsbGJhY2tVbmRlbGF5ZWQiLCJyZXN1bHQiLCJXZWJwYWNrVmlydHVhbFdhdGNoRmlsZVN5c3RlbVdhdGNoZXIiLCJ2YWx1ZXMiLCJmaWx0ZXIiLCJ4IiwicHVzaCIsIndhdGNoZXIiLCJleHBvcnRzIiwiY2xvc2VkIiwicGF1c2VkIiwiZmlsZVBhdGhzIiwiY2hhbmdlcyIsIlNldCIsIkRhdGUiLCJub3ciLCJhZGQiLCJlbWl0QWdncmVnYXRlZENoYW5nZXMiLCJjbG9zZSIsInBhdXNlIiwiZ2V0Q29udGV4dFRpbWVJbmZvRW50cmllcyIsImdldEZpbGVUaW1lSW5mb0VudHJpZXMiLCJ0aW1lcyIsIk1hcCIsImZpbGUiLCJ0aW1lc3RhbXAiLCJtdGltZU1zIiwic2FmZVRpbWUiLCJBcnJheSIsImZyb20iLCJpbmNsdWRlcyIsInNvcnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvUmVzb3VyY2VzQ29udHJvbGxlcnMvRGV2U2VydmVycy9XZWJwYWNrSW5NZW1vcnlVdGlscy9XZWJwYWNrSHlicmlkRmlsZVN5c3RlbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTpuby1hbnkgKi9cbmltcG9ydCB7IFN0YXRzIH0gZnJvbSBcImZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IGNyZWF0ZUZzRnJvbVZvbHVtZSwgSUZzLCBWb2x1bWUgfSBmcm9tIFwibWVtZnNcIjtcbmltcG9ydCB7IFRFbmNvZGluZ0V4dGVuZGVkIH0gZnJvbSBcIm1lbWZzL2xpYi9lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBJRmlsZVdyaXRlciB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9CdWlsZFRhc2tzL0Zvcm0vR2VuZXJhdGVGb3JtXCI7XG5cbmltcG9ydCB7IElJbnB1dEZpbGVTeXN0ZW0gfSBmcm9tIFwiLi9JSW5wdXRGaWxlU3lzdGVtXCI7XG5pbXBvcnQge1xuICAgIEZpbGVTeXN0ZW1UaW1lSW5mb0VudHJ5LFxuICAgIElXYXRjaEZpbGVTeXN0ZW0sXG4gICAgSVdhdGNoRmlsZVN5c3RlbVdhdGNoZXIsXG4gICAgV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2ssXG4gICAgV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2tVbmRlbGF5ZWQsXG4gICAgV2F0Y2hGaWxlU3lzdGVtV2F0Y2hPcHRpb25zLFxufSBmcm9tIFwiLi9JV2F0Y2hGaWxlU3lzdGVtXCI7XG5cbmV4cG9ydCBjbGFzcyBXZWJwYWNrSHlicmlkRmlsZVN5c3RlbSBpbXBsZW1lbnRzIElGaWxlV3JpdGVyLCBJSW5wdXRGaWxlU3lzdGVtLCBJV2F0Y2hGaWxlU3lzdGVtIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhdGhUb1ZpcnR1YWxEaXJlY3Rvcnk6IHN0cmluZztcbiAgICBwcml2YXRlIGlubmVySW5wdXRGaWxlU3lzdGVtITogSUlucHV0RmlsZVN5c3RlbTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpcnR1YWxGczogSUZzO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgd2F0Y2hlcnM6IFdlYnBhY2tWaXJ0dWFsV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlcltdID0gW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGF0aFRvVmlydHVhbERpcmVjdG9yeTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSA9IHBhdGhUb1ZpcnR1YWxEaXJlY3Rvcnk7XG4gICAgICAgIGNvbnN0IHZpcnR1YWxWb2x1bWUgPSBWb2x1bWUuZnJvbUpTT04oe30pO1xuICAgICAgICB0aGlzLnZpcnR1YWxGcyA9IGNyZWF0ZUZzRnJvbVZvbHVtZSh2aXJ0dWFsVm9sdW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0SW5uZXJJbnB1dEZpbGVTeXN0ZW0oaW5uZXJJbnB1dEZpbGVTeXN0ZW06IElJbnB1dEZpbGVTeXN0ZW0pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3Qgc2V0IGlubmVyIGZpbGUgc3lzdGVtIHR3aWNlXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0gPSBpbm5lcklucHV0RmlsZVN5c3RlbTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZEZpbGUoXG4gICAgICAgIGZpbGVuYW1lOiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM6IHN0cmluZyB8IHsgZW5jb2Rpbmc6IHN0cmluZzsgZmxhZz86IHN0cmluZyB9LFxuICAgICAgICBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBzdHJpbmcpID0+IHZvaWRcbiAgICApOiB2b2lkO1xuICAgIHB1YmxpYyByZWFkRmlsZShcbiAgICAgICAgZmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgb3B0aW9uczogeyBmbGFnPzogc3RyaW5nIH0sXG4gICAgICAgIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGRhdGE6IEJ1ZmZlcikgPT4gdm9pZFxuICAgICk6IHZvaWQ7XG4gICAgcHVibGljIHJlYWRGaWxlKGZpbGVuYW1lOiBzdHJpbmcsIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGRhdGE6IEJ1ZmZlcikgPT4gdm9pZCk6IHZvaWQ7XG4gICAgcHVibGljIHJlYWRGaWxlKFxuICAgICAgICBmaWxlbmFtZTogc3RyaW5nLFxuICAgICAgICBvcHRpb25zOlxuICAgICAgICAgICAgfCBzdHJpbmdcbiAgICAgICAgICAgIHwgeyBlbmNvZGluZzogVEVuY29kaW5nRXh0ZW5kZWQ7IGZsYWc/OiBzdHJpbmcgfVxuICAgICAgICAgICAgfCB7IGZsYWc/OiBzdHJpbmcgfVxuICAgICAgICAgICAgfCAoKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBCdWZmZXIpID0+IHZvaWQpLFxuICAgICAgICBjYWxsYmFjaz86XG4gICAgICAgICAgICB8ICgoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGRhdGE6IHN0cmluZykgPT4gdm9pZClcbiAgICAgICAgICAgIHwgKChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgZGF0YTogQnVmZmVyKSA9PiB2b2lkKVxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAoZmlsZW5hbWUuc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy5yZWFkRmlsZShmaWxlbmFtZSwgb3B0aW9ucywgY2FsbGJhY2spO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy5pbm5lcklucHV0RmlsZVN5c3RlbS5yZWFkRmlsZShmaWxlbmFtZSwgb3B0aW9ucywgY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlYWRGaWxlU3luYyhmaWxlbmFtZTogc3RyaW5nLCBvcHRpb25zOiBzdHJpbmcgfCB7IGVuY29kaW5nOiBzdHJpbmc7IGZsYWc/OiBzdHJpbmcgfSk6IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZEZpbGVTeW5jKGZpbGVuYW1lOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGZsYWc/OiBzdHJpbmcgfSk6IEJ1ZmZlcjtcbiAgICBwdWJsaWMgcmVhZEZpbGVTeW5jKFxuICAgICAgICBmaWxlbmFtZTogc3RyaW5nLFxuICAgICAgICBvcHRpb25zPzogc3RyaW5nIHwgeyBlbmNvZGluZzogc3RyaW5nOyBmbGFnPzogc3RyaW5nIH0gfCB7IGZsYWc/OiBzdHJpbmcgfVxuICAgICk6IHN0cmluZyB8IEJ1ZmZlciB7XG4gICAgICAgIGlmIChmaWxlbmFtZS5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnR1YWxGcy5yZWFkRmlsZVN5bmMoZmlsZW5hbWUsIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0ucmVhZEZpbGVTeW5jKGZpbGVuYW1lLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWFkZGlyKGRpclBhdGg6IHN0cmluZywgY2FsbGJhY2s6IChlcnI6IEVycm9yLCBmaWxlczogc3RyaW5nW10pID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRpclBhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy5yZWFkZGlyKGRpclBhdGgsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0ucmVhZGRpcihkaXJQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZGRpclN5bmMoZGlyUGF0aDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgICAgICBpZiAoZGlyUGF0aC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnR1YWxGcy5yZWFkZGlyU3luYyhkaXJQYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRkaXJTeW5jKGRpclBhdGgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgcmVhZGxpbmsoZGlyUGF0aDogc3RyaW5nLCBjYWxsYmFjaz86IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgbGlua1N0cmluZzogc3RyaW5nKSA9PiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRpclBhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy5yZWFkbGluayhkaXJQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRsaW5rKGRpclBhdGgsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWFkbGlua1N5bmMobGlua1BhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChsaW5rUGF0aC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnR1YWxGcy5yZWFkbGlua1N5bmMobGlua1BhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0ucmVhZGxpbmtTeW5jKGxpbmtQYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIHN0YXQoZnNQYXRoOiBzdHJpbmcsIGNhbGxiYWNrPzogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBzdGF0czogU3RhdHMpID0+IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoZnNQYXRoLnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMuc3RhdChmc1BhdGgsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0uc3RhdChmc1BhdGgsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0U3luYyhmc1BhdGg6IHN0cmluZyk6IFN0YXRzIHtcbiAgICAgICAgaWYgKGZzUGF0aC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnR1YWxGcy5zdGF0U3luYyhmc1BhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0uc3RhdFN5bmMoZnNQYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyB3cml0ZUJhdGNoKGZpbGVCYXRjaDogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBPYmplY3Qua2V5cyhmaWxlQmF0Y2gpKSB7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy5ta2RpcnBTeW5jKHBhdGgucGFyc2UoZmlsZVBhdGgpLmRpcik7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlINCi0LDQvCDQsdCw0LMg0LIg0YLQsNC50L/QuNC90LPQsNGFXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBmaWxlQmF0Y2hbZmlsZVBhdGhdLCBcInV0ZjhcIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlcyhmaWxlQmF0Y2gpO1xuICAgIH1cblxuICAgIHB1YmxpYyB3YXRjaChcbiAgICAgICAgZmlsZXM6IElMYXp5U2V0PHN0cmluZz4sXG4gICAgICAgIGRpcnM6IElMYXp5U2V0PHN0cmluZz4sXG4gICAgICAgIG1pc3Npbmc6IElMYXp5U2V0PHN0cmluZz4sXG4gICAgICAgIHN0YXJ0VGltZTogbnVtYmVyLFxuICAgICAgICBvcHRpb25zOiBXYXRjaEZpbGVTeXN0ZW1XYXRjaE9wdGlvbnMsXG4gICAgICAgIGNhbGxiYWNrOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFjayxcbiAgICAgICAgY2FsbGJhY2tVbmRlbGF5ZWQ6IFdhdGNoRmlsZVN5c3RlbUNhbGxiYWNrVW5kZWxheWVkXG4gICAgKTogSVdhdGNoRmlsZVN5c3RlbVdhdGNoZXIge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgV2VicGFja1ZpcnR1YWxXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyKFxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMsXG4gICAgICAgICAgICBbLi4uZmlsZXMudmFsdWVzKCldLmZpbHRlcih4ID0+IHguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSxcbiAgICAgICAgICAgIFsuLi5kaXJzLnZhbHVlcygpXS5maWx0ZXIoeCA9PiB4LnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSksXG4gICAgICAgICAgICBbLi4ubWlzc2luZy52YWx1ZXMoKV0uZmlsdGVyKHggPT4geC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpLFxuICAgICAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgICAgICBjYWxsYmFja1VuZGVsYXllZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLndhdGNoZXJzLnB1c2gocmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRDaGFuZ2VzKGZpbGVCYXRjaDogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCB3YXRjaGVyIG9mIHRoaXMud2F0Y2hlcnMpIHtcbiAgICAgICAgICAgIHdhdGNoZXIuZW1pdENoYW5nZXMoT2JqZWN0LmtleXMoZmlsZUJhdGNoKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNsYXNzIFdlYnBhY2tWaXJ0dWFsV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlciBpbXBsZW1lbnRzIElXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpcnR1YWxGczogSUZzO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsZXM6IHN0cmluZ1tdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlyczogc3RyaW5nW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBtaXNzaW5nOiBzdHJpbmdbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhbGxiYWNrOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFjaztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhbGxiYWNrVW5kZWxheWVkOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFja1VuZGVsYXllZDtcblxuICAgIHByaXZhdGUgY2xvc2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBwYXVzZWQgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgdmlydHVhbEZzOiBJRnMsXG4gICAgICAgIGZpbGVzOiBzdHJpbmdbXSxcbiAgICAgICAgZGlyczogc3RyaW5nW10sXG4gICAgICAgIG1pc3Npbmc6IHN0cmluZ1tdLFxuICAgICAgICBjYWxsYmFjazogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2ssXG4gICAgICAgIGNhbGxiYWNrVW5kZWxheWVkOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFja1VuZGVsYXllZFxuICAgICkge1xuICAgICAgICB0aGlzLnZpcnR1YWxGcyA9IHZpcnR1YWxGcztcbiAgICAgICAgdGhpcy5maWxlcyA9IGZpbGVzO1xuICAgICAgICB0aGlzLmRpcnMgPSBkaXJzO1xuICAgICAgICB0aGlzLm1pc3NpbmcgPSBtaXNzaW5nO1xuICAgICAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICAgIHRoaXMuY2FsbGJhY2tVbmRlbGF5ZWQgPSBjYWxsYmFja1VuZGVsYXllZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW1pdENoYW5nZXMoZmlsZVBhdGhzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wYXVzZWQgfHwgdGhpcy5jbG9zZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjaGFuZ2VzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcbiAgICAgICAgaWYgKGZpbGVQYXRoc1swXSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsbGJhY2tVbmRlbGF5ZWQoZmlsZVBhdGhzWzBdLCBEYXRlLm5vdygpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGZpbGVQYXRoIG9mIGZpbGVQYXRocykge1xuICAgICAgICAgICAgY2hhbmdlcy5hZGQoZmlsZVBhdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lbWl0QWdncmVnYXRlZENoYW5nZXMoY2hhbmdlcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHBhdXNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhdXNlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbnRleHRUaW1lSW5mb0VudHJpZXMoKTogTWFwPHN0cmluZywgRmlsZVN5c3RlbVRpbWVJbmZvRW50cnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RmlsZVRpbWVJbmZvRW50cmllcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaWxlVGltZUluZm9FbnRyaWVzKCk6IE1hcDxzdHJpbmcsIEZpbGVTeXN0ZW1UaW1lSW5mb0VudHJ5PiB7XG4gICAgICAgIGNvbnN0IHRpbWVzOiBNYXA8c3RyaW5nLCBGaWxlU3lzdGVtVGltZUluZm9FbnRyeT4gPSBuZXcgTWFwKCk7XG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiB0aGlzLmZpbGVzKSB7XG4gICAgICAgICAgICB0aW1lcy5zZXQoZmlsZSwge1xuICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogdGhpcy52aXJ0dWFsRnMuc3RhdFN5bmMoZmlsZSkubXRpbWVNcyxcbiAgICAgICAgICAgICAgICBzYWZlVGltZTogdGhpcy52aXJ0dWFsRnMuc3RhdFN5bmMoZmlsZSkubXRpbWVNcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aW1lcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRBZ2dyZWdhdGVkQ2hhbmdlcyhjaGFuZ2VzOiBTZXQ8c3RyaW5nPik6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlUGF0aHMgPSBBcnJheS5mcm9tKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCBmaWxlcyA9IGZpbGVQYXRocy5maWx0ZXIoZmlsZVBhdGggPT4gdGhpcy5maWxlcy5pbmNsdWRlcyhmaWxlUGF0aCkpLnNvcnQoKTtcbiAgICAgICAgY29uc3QgZGlycyA9IGZpbGVQYXRocy5maWx0ZXIoZmlsZVBhdGggPT4gdGhpcy5kaXJzLmluY2x1ZGVzKGZpbGVQYXRoKSkuc29ydCgpO1xuICAgICAgICBjb25zdCBtaXNzaW5nID0gZmlsZVBhdGhzLmZpbHRlcihmaWxlUGF0aCA9PiB0aGlzLm1pc3NpbmcuaW5jbHVkZXMoZmlsZVBhdGgpKS5zb3J0KCk7XG4gICAgICAgIGNvbnN0IHRpbWVzID0gdGhpcy5nZXRGaWxlVGltZUluZm9FbnRyaWVzKCk7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGhpcy5jYWxsYmFjayh1bmRlZmluZWQsIGZpbGVzLCBkaXJzLCBtaXNzaW5nLCB0aW1lcywgdGltZXMsIG5ldyBTZXQoKSk7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgSUxhenlTZXQ8VD4ge1xuICAgIHZhbHVlcygpOiBJdGVyYWJsZTxUPjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsSUFBQUEsSUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQXdELFNBQUFFLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFKLHdCQUFBSSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsV0FBQUssT0FBQSxFQUFBTCxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUcsQ0FB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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebpackHybridFileSystem.js","names":["path","_interopRequireWildcard","require","_memfs","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","WebpackHybridFileSystem","constructor","pathToVirtualDirectory","innerInputFileSystem","virtualFs","watchers","virtualVolume","Volume","fromJSON","createFsFromVolume","setInnerInputFileSystem","undefined","Error","readFile","filename","options","callback","startsWith","readFileSync","readdir","dirPath","readdirSync","readlink","readlinkSync","linkPath","stat","fsPath","statSync","writeBatch","fileBatch","filePath","keys","mkdirpSync","parse","dir","writeFileSync","emitChanges","watch","files","dirs","missing","startTime","callbackUndelayed","result","WebpackVirtualWatchFileSystemWatcher","values","filter","x","push","watcher","exports","closed","paused","filePaths","changes","Set","Date","now","add","emitAggregatedChanges","close","pause","getContextTimeInfoEntries","getFileTimeInfoEntries","times","Map","file","timestamp","mtimeMs","safeTime","Array","from","includes","sort"],"sources":["../../../../../../../../src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.ts"],"sourcesContent":["/* tslint:disable:no-any */\nimport { Stats } from \"fs\";\nimport * as path from \"path\";\n\nimport { createFsFromVolume, IFs, Volume } from \"memfs\";\nimport { TEncodingExtended } from \"memfs/lib/encoding\";\n\nimport { IFileWriter } from \"../../../../../BuildTasks/Form/GenerateForm\";\n\nimport { IInputFileSystem } from \"./IInputFileSystem\";\nimport {\n FileSystemTimeInfoEntry,\n IWatchFileSystem,\n IWatchFileSystemWatcher,\n WatchFileSystemCallback,\n WatchFileSystemCallbackUndelayed,\n WatchFileSystemWatchOptions,\n} from \"./IWatchFileSystem\";\n\nexport class WebpackHybridFileSystem implements IFileWriter, IInputFileSystem, IWatchFileSystem {\n private readonly pathToVirtualDirectory: string;\n private innerInputFileSystem!: IInputFileSystem;\n private readonly virtualFs: IFs;\n private readonly watchers: WebpackVirtualWatchFileSystemWatcher[] = [];\n\n public constructor(pathToVirtualDirectory: string) {\n this.pathToVirtualDirectory = pathToVirtualDirectory;\n const virtualVolume = Volume.fromJSON({});\n this.virtualFs = createFsFromVolume(virtualVolume);\n }\n\n public setInnerInputFileSystem(innerInputFileSystem: IInputFileSystem): void {\n if (this.innerInputFileSystem != undefined) {\n throw new Error(\"Cannot set inner file system twice\");\n }\n this.innerInputFileSystem = innerInputFileSystem;\n }\n\n public readFile(\n filename: string,\n options: string | { encoding: string; flag?: string },\n callback: (err: NodeJS.ErrnoException, data: string) => void\n ): void;\n public readFile(\n filename: string,\n options: { flag?: string },\n callback: (err: NodeJS.ErrnoException, data: Buffer) => void\n ): void;\n public readFile(filename: string, callback: (err: NodeJS.ErrnoException, data: Buffer) => void): void;\n public readFile(\n filename: string,\n options:\n | string\n | { encoding: TEncodingExtended; flag?: string }\n | { flag?: string }\n | ((err: NodeJS.ErrnoException, data: Buffer) => void),\n callback?:\n | ((err: NodeJS.ErrnoException, data: string) => void)\n | ((err: NodeJS.ErrnoException, data: Buffer) => void)\n ): void {\n if (filename.startsWith(this.pathToVirtualDirectory)) {\n // @ts-ignore\n this.virtualFs.readFile(filename, options, callback);\n } else {\n // @ts-ignore\n this.innerInputFileSystem.readFile(filename, options, callback);\n }\n }\n\n public readFileSync(filename: string, options: string | { encoding: string; flag?: string }): string;\n public readFileSync(filename: string, options?: { flag?: string }): Buffer;\n public readFileSync(\n filename: string,\n options?: string | { encoding: string; flag?: string } | { flag?: string }\n ): string | Buffer {\n if (filename.startsWith(this.pathToVirtualDirectory)) {\n // @ts-ignore\n return this.virtualFs.readFileSync(filename, options);\n } else {\n // @ts-ignore\n return this.innerInputFileSystem.readFileSync(filename, options);\n }\n }\n\n public readdir(dirPath: string, callback: (err: Error, files: string[]) => void): void {\n if (dirPath.startsWith(this.pathToVirtualDirectory)) {\n // @ts-ignore\n this.virtualFs.readdir(dirPath, callback);\n } else {\n // @ts-ignore\n this.innerInputFileSystem.readdir(dirPath, callback);\n }\n }\n\n public readdirSync(dirPath: string): string[] {\n if (dirPath.startsWith(this.pathToVirtualDirectory)) {\n // @ts-ignore\n return this.virtualFs.readdirSync(dirPath);\n } else {\n // @ts-ignore\n return this.innerInputFileSystem.readdirSync(dirPath);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public readlink(dirPath: string, callback?: (err: NodeJS.ErrnoException, linkString: string) => any): void {\n if (dirPath.startsWith(this.pathToVirtualDirectory)) {\n // @ts-ignore\n this.virtualFs.readlink(dirPath, callback);\n } else {\n // @ts-ignore\n this.innerInputFileSystem.readlink(dirPath, callback);\n }\n }\n\n public readlinkSync(linkPath: string): string {\n if (linkPath.startsWith(this.pathToVirtualDirectory)) {\n // @ts-ignore\n return this.virtualFs.readlinkSync(linkPath);\n } else {\n // @ts-ignore\n return this.innerInputFileSystem.readlinkSync(linkPath);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public stat(fsPath: string, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void {\n if (fsPath.startsWith(this.pathToVirtualDirectory)) {\n // @ts-ignore\n this.virtualFs.stat(fsPath, callback);\n } else {\n // @ts-ignore\n this.innerInputFileSystem.stat(fsPath, callback);\n }\n }\n\n public statSync(fsPath: string): Stats {\n if (fsPath.startsWith(this.pathToVirtualDirectory)) {\n // @ts-ignore\n return this.virtualFs.statSync(fsPath);\n } else {\n // @ts-ignore\n return this.innerInputFileSystem.statSync(fsPath);\n }\n }\n\n public async writeBatch(fileBatch: { [p: string]: string }): Promise<void> {\n for (const filePath of Object.keys(fileBatch)) {\n this.virtualFs.mkdirpSync(path.parse(filePath).dir);\n // @ts-ignore Там баг в тайпингах\n this.virtualFs.writeFileSync(filePath, fileBatch[filePath], \"utf8\");\n }\n this.emitChanges(fileBatch);\n }\n\n public watch(\n files: ILazySet<string>,\n dirs: ILazySet<string>,\n missing: ILazySet<string>,\n startTime: number,\n options: WatchFileSystemWatchOptions,\n callback: WatchFileSystemCallback,\n callbackUndelayed: WatchFileSystemCallbackUndelayed\n ): IWatchFileSystemWatcher {\n const result = new WebpackVirtualWatchFileSystemWatcher(\n this.virtualFs,\n [...files.values()].filter(x => x.startsWith(this.pathToVirtualDirectory)),\n [...dirs.values()].filter(x => x.startsWith(this.pathToVirtualDirectory)),\n [...missing.values()].filter(x => x.startsWith(this.pathToVirtualDirectory)),\n callback,\n callbackUndelayed\n );\n this.watchers.push(result);\n return result;\n }\n\n private emitChanges(fileBatch: { [p: string]: string }): void {\n for (const watcher of this.watchers) {\n watcher.emitChanges(Object.keys(fileBatch));\n }\n }\n}\n\nclass WebpackVirtualWatchFileSystemWatcher implements IWatchFileSystemWatcher {\n private readonly virtualFs: IFs;\n private readonly files: string[];\n private readonly dirs: string[];\n private readonly missing: string[];\n private readonly callback: WatchFileSystemCallback;\n private readonly callbackUndelayed: WatchFileSystemCallbackUndelayed;\n\n private closed = false;\n private paused = false;\n\n public constructor(\n virtualFs: IFs,\n files: string[],\n dirs: string[],\n missing: string[],\n callback: WatchFileSystemCallback,\n callbackUndelayed: WatchFileSystemCallbackUndelayed\n ) {\n this.virtualFs = virtualFs;\n this.files = files;\n this.dirs = dirs;\n this.missing = missing;\n this.callback = callback;\n this.callbackUndelayed = callbackUndelayed;\n }\n\n public emitChanges(filePaths: string[]): void {\n if (this.paused || this.closed) {\n return;\n }\n const changes: Set<string> = new Set();\n if (filePaths[0] != undefined) {\n this.callbackUndelayed(filePaths[0], Date.now());\n }\n for (const filePath of filePaths) {\n changes.add(filePath);\n }\n\n this.emitAggregatedChanges(changes);\n }\n\n public close(): void {\n this.closed = true;\n }\n\n public pause(): void {\n this.paused = true;\n }\n\n public getContextTimeInfoEntries(): Map<string, FileSystemTimeInfoEntry> {\n return this.getFileTimeInfoEntries();\n }\n\n public getFileTimeInfoEntries(): Map<string, FileSystemTimeInfoEntry> {\n const times: Map<string, FileSystemTimeInfoEntry> = new Map();\n for (const file of this.files) {\n times.set(file, {\n timestamp: this.virtualFs.statSync(file).mtimeMs,\n safeTime: this.virtualFs.statSync(file).mtimeMs,\n });\n }\n return times;\n }\n\n private emitAggregatedChanges(changes: Set<string>): void {\n const filePaths = Array.from(changes);\n const files = filePaths.filter(filePath => this.files.includes(filePath)).sort();\n const dirs = filePaths.filter(filePath => this.dirs.includes(filePath)).sort();\n const missing = filePaths.filter(filePath => this.missing.includes(filePath)).sort();\n const times = this.getFileTimeInfoEntries();\n // @ts-ignore\n this.callback(undefined, files, dirs, missing, times, times, new Set());\n }\n}\n\ninterface ILazySet<T> {\n values(): Iterable<T>;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -230,4 +230,4 @@ class FarmDirectory {
230
230
  }
231
231
  }
232
232
  exports.FarmDirectory = FarmDirectory;
233
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzIiwiX2ZzRXh0cmEiLCJfcExpbWl0IiwiX0Zvcm1HbG9ic1V0aWxzIiwiX0ZzVXRpbHMiLCJfVHlwaW5nVXRpbHMiLCJfRXh0cmFjdEdmdnNGcm9tRmlsZU5hbWUiLCJfV2VsbEtub3duRGlyZWN0b3JpZXMiLCJGYXJtRGlyZWN0b3J5IiwiY29uc3RydWN0b3IiLCJmYXJtRGlyZWN0b3J5IiwiZ2Z2VG9QYXRoTWFwIiwiYWxsR2Z2SW5mb3MiLCJlbnN1cmVHZnZEaXJlY3Rvcmllc1VwZGF0ZWQiLCJ1cGRhdGVHZnZEaXJlY3Rvcmllc0xpbWl0IiwicExpbWl0IiwidW5kZWZpbmVkIiwidXBkYXRlR2Z2RGlyZWN0b3JpZXMiLCJzZXRUaW1lb3V0IiwiRm9ybUdsb2JzIiwiZW51bWVyYXRlRm9ybXNJblJlcG9zaXRvcnkiLCJwYXRoIiwiam9pbiIsIk1hcCIsIm1hcCIsIngiLCJnZnYiLCJmb3JtUGF0aCIsImdldEFsbFBpY2tsaXN0cyIsImdsb2JBc3luYyIsImN3ZCIsImdldEZvcm1EaXJlY3RvcnkiLCJlbnVtZXJhdGVBbGxHZnZzIiwiX3RoaXMkYWxsR2Z2SW5mb3MiLCJyZWplY3QiLCJnZXRHZnZUb1BhdGhNYXAiLCJfdGhpcyRnZnZUb1BhdGhNYXAiLCJnZXRBbGxHZnZzIiwiZm9ybUdmdlBhdGhzIiwiZ2V0QWxsR2Z2V2l0aExvY2F0aW9ucyIsImdldEZvcm1Kc29uUGF0aCIsIl90aGlzJGdmdlRvUGF0aE1hcDIiLCJmb3JtRGlyUGF0aCIsImdldCIsImV4aXN0c1N5bmMiLCJXZWxsS25vd25EaXJlY3RvcmllcyIsIkZvcm1Kc29uRmlsZU5hbWUiLCJnZXRBbGxDb252ZXJ0ZXJGaWxlUGF0aHMiLCJyZXN1bHQiLCJnZnZJbmZvIiwicHVzaCIsImdldENvbnZlcnRlckZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZmlsZW5hbWUiLCJleHRyYWN0R2Z2c0Zyb21GaWxlTmFtZSIsImZpbGVQYXRoIiwicGF0aEV4aXN0cyIsImdldEFsbFNjaGVtYXNGaWxlUGF0aHMiLCJnZXRTY2hlbWFGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZCIsImdldEFsbE5vcm1hbGl6ZUZpbGVQYXRocyIsImdldE5vcm1hbGl6ZUZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsVW5tYXBGaWxlUGF0aHMiLCJnZXRVbm1hcEZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsTWFwRmlsZVBhdGhzIiwiZ2V0TWFwRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJnZXRBbGxQYXRjaEZpbGVQYXRocyIsImdldFBhdGNoRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJnZXRBbGxNZXJnZXJzRmlsZVBhdGhzIiwiZ2V0TWVyZ2Vyc0ZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsUHJlc2VudGF0aW9uc0ZpbGVOYW1lcyIsImdldFByZXNlbnRhdGlvbnNGaWxlUGF0aEJ5R2Z2T3JVbmRlZmluZWQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0RpcmVjdG9yaWVzL0Zhcm1EaXJlY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tIFwiZnNcIjtcblxuaW1wb3J0IHsgcGF0aEV4aXN0cyB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHBMaW1pdCBmcm9tIFwicC1saW1pdFwiO1xuXG5pbXBvcnQgeyBGb3JtR2xvYnMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9ucy9Gb3JtR2xvYnNVdGlsc1wiO1xuaW1wb3J0IHsgZ2xvYkFzeW5jIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbnMvRnNVdGlsc1wiO1xuaW1wb3J0IHsgcmVqZWN0IH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL0NvbW1vbi9UeXBpbmdVdGlsc1wiO1xuaW1wb3J0IHsgZXh0cmFjdEdmdnNGcm9tRmlsZU5hbWUgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9ucy9FeHRyYWN0R2Z2c0Zyb21GaWxlTmFtZVwiO1xuaW1wb3J0IHsgV2VsbEtub3duRGlyZWN0b3JpZXMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vQ29tbW9uL1dlbGxLbm93bkRpcmVjdG9yaWVzXCI7XG5pbXBvcnQgeyBGb3JtTG9jYXRpb25JbmZvIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbnMvRm9ybUxvY2F0aW9uSW5mb1wiO1xuXG5leHBvcnQgY2xhc3MgRmFybURpcmVjdG9yeSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYXJtRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBnZnZUb1BhdGhNYXA6IHVuZGVmaW5lZCB8IE1hcDxzdHJpbmcsIHN0cmluZz47XG4gICAgcHJpdmF0ZSBhbGxHZnZJbmZvcz86IEFycmF5PHsgZ2Z2OiBzdHJpbmc7IGZvcm1QYXRoOiBzdHJpbmc7IGZvcm1SZWxhdGl2ZVBhdGg6IHN0cmluZyB9PjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVuc3VyZUdmdkRpcmVjdG9yaWVzVXBkYXRlZDogKCkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihmYXJtRGlyZWN0b3J5OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5mYXJtRGlyZWN0b3J5ID0gZmFybURpcmVjdG9yeTtcbiAgICAgICAgY29uc3QgdXBkYXRlR2Z2RGlyZWN0b3JpZXNMaW1pdCA9IHBMaW1pdCgxKTtcbiAgICAgICAgdGhpcy5lbnN1cmVHZnZEaXJlY3Rvcmllc1VwZGF0ZWQgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5hbGxHZnZJbmZvcyA9PSB1bmRlZmluZWQgfHwgdGhpcy5nZnZUb1BhdGhNYXAgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdXBkYXRlR2Z2RGlyZWN0b3JpZXNMaW1pdChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFsbEdmdkluZm9zID09IHVuZGVmaW5lZCB8fCB0aGlzLmdmdlRvUGF0aE1hcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlR2Z2RGlyZWN0b3JpZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZmxvYXRpbmctcHJvbWlzZXNcbiAgICAgICAgICAgIHVwZGF0ZUdmdkRpcmVjdG9yaWVzTGltaXQoKCkgPT4gdGhpcy51cGRhdGVHZnZEaXJlY3RvcmllcygpKTtcbiAgICAgICAgfSwgNjAwMDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgdXBkYXRlR2Z2RGlyZWN0b3JpZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuYWxsR2Z2SW5mb3MgPSBhd2FpdCBGb3JtR2xvYnMuZW51bWVyYXRlRm9ybXNJblJlcG9zaXRvcnkocGF0aC5qb2luKHRoaXMuZmFybURpcmVjdG9yeSwgXCIuLlwiKSk7XG4gICAgICAgIHRoaXMuZ2Z2VG9QYXRoTWFwID0gbmV3IE1hcCh0aGlzLmFsbEdmdkluZm9zLm1hcCh4ID0+IFt4LmdmdiwgeC5mb3JtUGF0aF0pKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsUGlja2xpc3RzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGdsb2JBc3luYyhcIipcIiwgeyBjd2Q6IHBhdGguam9pbih0aGlzLmZhcm1EaXJlY3RvcnksIFwicGlja2xpc3RzXCIpIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRGb3JtRGlyZWN0b3J5KCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGdsb2JBc3luYyhcIipcIiwgeyBjd2Q6IHBhdGguam9pbih0aGlzLmZhcm1EaXJlY3RvcnksIFwicGlja2xpc3RzXCIpIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgZW51bWVyYXRlQWxsR2Z2cygpOiBQcm9taXNlPEFycmF5PHsgZ2Z2OiBzdHJpbmc7IGZvcm1QYXRoOiBzdHJpbmc7IGZvcm1SZWxhdGl2ZVBhdGg6IHN0cmluZyB9Pj4ge1xuICAgICAgICBhd2FpdCB0aGlzLmVuc3VyZUdmdkRpcmVjdG9yaWVzVXBkYXRlZCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5hbGxHZnZJbmZvcyA/PyByZWplY3QoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGdldEdmdlRvUGF0aE1hcCgpOiBQcm9taXNlPE1hcDxzdHJpbmcsIHN0cmluZz4+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5lbnN1cmVHZnZEaXJlY3Rvcmllc1VwZGF0ZWQoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2Z2VG9QYXRoTWFwID8/IHJlamVjdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxHZnZzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgY29uc3QgZm9ybUdmdlBhdGhzID0gYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCk7XG4gICAgICAgIHJldHVybiBmb3JtR2Z2UGF0aHMubWFwKHggPT4geC5nZnYpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxHZnZXaXRoTG9jYXRpb25zKCk6IFByb21pc2U8Rm9ybUxvY2F0aW9uSW5mb1tdPiB7XG4gICAgICAgIGNvbnN0IGZvcm1HZnZQYXRocyA9IGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpO1xuICAgICAgICByZXR1cm4gZm9ybUdmdlBhdGhzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRGb3JtSnNvblBhdGgoZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmVuc3VyZUdmdkRpcmVjdG9yaWVzVXBkYXRlZCgpO1xuICAgICAgICBjb25zdCBmb3JtRGlyUGF0aCA9ICh0aGlzLmdmdlRvUGF0aE1hcCA/PyByZWplY3QoKSkuZ2V0KGdmdik7XG4gICAgICAgIGlmIChmb3JtRGlyUGF0aCAhPSB1bmRlZmluZWQgJiYgZXhpc3RzU3luYyhwYXRoLmpvaW4oZm9ybURpclBhdGgsIFdlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWUpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhdGguam9pbihmb3JtRGlyUGF0aCwgV2VsbEtub3duRGlyZWN0b3JpZXMuRm9ybUpzb25GaWxlTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsQ29udmVydGVyRmlsZVBhdGhzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZ2Z2SW5mbyBvZiBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKSkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4uKGF3YWl0IGdsb2JBc3luYyhcImNvbnZlcnRlcnMvKlwiLCB7IGN3ZDogZ2Z2SW5mby5mb3JtUGF0aCB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldENvbnZlcnRlckZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBjb25zdCBnZnZUb1BhdGhNYXAgPSBhd2FpdCB0aGlzLmdldEdmdlRvUGF0aE1hcCgpO1xuICAgICAgICBmb3IgKGNvbnN0IGdmdiBvZiBleHRyYWN0R2Z2c0Zyb21GaWxlTmFtZShmaWxlbmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1QYXRoID0gZ2Z2VG9QYXRoTWFwLmdldChnZnYpO1xuICAgICAgICAgICAgaWYgKGZvcm1QYXRoID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZm9ybVBhdGgsIFwiY29udmVydGVyc1wiLCBmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsU2NoZW1hc0ZpbGVQYXRocygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLihhd2FpdCBnbG9iQXN5bmMoXCJzY2hlbWFzLypcIiwgeyBjd2Q6IGdmdkluZm8uZm9ybVBhdGggfSkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRTY2hlbWFGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihnZnZJbmZvLmZvcm1QYXRoLCBcInNjaGVtYXNcIiwgZmlsZW5hbWUpO1xuICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbGVQYXRoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEFsbE5vcm1hbGl6ZUZpbGVQYXRocygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLihhd2FpdCBnbG9iQXN5bmMoXCJub3JtYWxpemUvKlwiLCB7IGN3ZDogZ2Z2SW5mby5mb3JtUGF0aCB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldE5vcm1hbGl6ZUZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGdmdkluZm8uZm9ybVBhdGgsIFwibm9ybWFsaXplXCIsIGZpbGVuYW1lKTtcbiAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWxlUGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxVbm1hcEZpbGVQYXRocygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLihhd2FpdCBnbG9iQXN5bmMoXCJ1bm1hcC8qXCIsIHsgY3dkOiBnZnZJbmZvLmZvcm1QYXRoIH0pKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0VW5tYXBGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihnZnZJbmZvLmZvcm1QYXRoLCBcInVubWFwXCIsIGZpbGVuYW1lKTtcbiAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWxlUGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxNYXBGaWxlUGF0aHMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi4oYXdhaXQgZ2xvYkFzeW5jKFwibWFwLypcIiwgeyBjd2Q6IGdmdkluZm8uZm9ybVBhdGggfSkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRNYXBGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihnZnZJbmZvLmZvcm1QYXRoLCBcIm1hcFwiLCBmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsUGF0Y2hGaWxlUGF0aHMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi4oYXdhaXQgZ2xvYkFzeW5jKFwicGF0Y2gvKlwiLCB7IGN3ZDogZ2Z2SW5mby5mb3JtUGF0aCB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFBhdGNoRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGZvciAoY29uc3QgZ2Z2SW5mbyBvZiBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKSkge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZ2Z2SW5mby5mb3JtUGF0aCwgXCJwYXRjaFwiLCBmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsTWVyZ2Vyc0ZpbGVQYXRocygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLihhd2FpdCBnbG9iQXN5bmMoXCJtZXJnZXJzLypcIiwgeyBjd2Q6IGdmdkluZm8uZm9ybVBhdGggfSkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRNZXJnZXJzRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGZvciAoY29uc3QgZ2Z2SW5mbyBvZiBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKSkge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZ2Z2SW5mby5mb3JtUGF0aCwgXCJtZXJnZXJzXCIsIGZpbGVuYW1lKTtcbiAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWxlUGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxQcmVzZW50YXRpb25zRmlsZU5hbWVzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZ2Z2SW5mbyBvZiBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKSkge1xuICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMocGF0aC5qb2luKGdmdkluZm8uZm9ybVBhdGgsIFwicHJlc2VudGF0aW9ucy5qc29uXCIpKSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGAke2dmdkluZm8uZ2Z2fS5wcmVzZW50YXRpb25zLmpzb25gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRQcmVzZW50YXRpb25zRmlsZVBhdGhCeUdmdk9yVW5kZWZpbmVkKGdmdjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICBpZiAoZ2Z2SW5mby5nZnYgPT09IGdmdikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGdmdkluZm8uZm9ybVBhdGgsIFwicHJlc2VudGF0aW9ucy5qc29uXCIpO1xuICAgICAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1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
233
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzIiwiX2ZzRXh0cmEiLCJfcExpbWl0IiwiX0Zvcm1HbG9ic1V0aWxzIiwiX0ZzVXRpbHMiLCJfVHlwaW5nVXRpbHMiLCJfRXh0cmFjdEdmdnNGcm9tRmlsZU5hbWUiLCJfV2VsbEtub3duRGlyZWN0b3JpZXMiLCJGYXJtRGlyZWN0b3J5IiwiY29uc3RydWN0b3IiLCJmYXJtRGlyZWN0b3J5IiwiZ2Z2VG9QYXRoTWFwIiwiYWxsR2Z2SW5mb3MiLCJlbnN1cmVHZnZEaXJlY3Rvcmllc1VwZGF0ZWQiLCJ1cGRhdGVHZnZEaXJlY3Rvcmllc0xpbWl0IiwicExpbWl0IiwidW5kZWZpbmVkIiwidXBkYXRlR2Z2RGlyZWN0b3JpZXMiLCJzZXRUaW1lb3V0IiwiRm9ybUdsb2JzIiwiZW51bWVyYXRlRm9ybXNJblJlcG9zaXRvcnkiLCJwYXRoIiwiam9pbiIsIk1hcCIsIm1hcCIsIngiLCJnZnYiLCJmb3JtUGF0aCIsImdldEFsbFBpY2tsaXN0cyIsImdsb2JBc3luYyIsImN3ZCIsImdldEZvcm1EaXJlY3RvcnkiLCJlbnVtZXJhdGVBbGxHZnZzIiwiX3RoaXMkYWxsR2Z2SW5mb3MiLCJyZWplY3QiLCJnZXRHZnZUb1BhdGhNYXAiLCJfdGhpcyRnZnZUb1BhdGhNYXAiLCJnZXRBbGxHZnZzIiwiZm9ybUdmdlBhdGhzIiwiZ2V0QWxsR2Z2V2l0aExvY2F0aW9ucyIsImdldEZvcm1Kc29uUGF0aCIsIl90aGlzJGdmdlRvUGF0aE1hcDIiLCJmb3JtRGlyUGF0aCIsImdldCIsImV4aXN0c1N5bmMiLCJXZWxsS25vd25EaXJlY3RvcmllcyIsIkZvcm1Kc29uRmlsZU5hbWUiLCJnZXRBbGxDb252ZXJ0ZXJGaWxlUGF0aHMiLCJyZXN1bHQiLCJnZnZJbmZvIiwicHVzaCIsImdldENvbnZlcnRlckZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZmlsZW5hbWUiLCJleHRyYWN0R2Z2c0Zyb21GaWxlTmFtZSIsImZpbGVQYXRoIiwicGF0aEV4aXN0cyIsImdldEFsbFNjaGVtYXNGaWxlUGF0aHMiLCJnZXRTY2hlbWFGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZCIsImdldEFsbE5vcm1hbGl6ZUZpbGVQYXRocyIsImdldE5vcm1hbGl6ZUZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsVW5tYXBGaWxlUGF0aHMiLCJnZXRVbm1hcEZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsTWFwRmlsZVBhdGhzIiwiZ2V0TWFwRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJnZXRBbGxQYXRjaEZpbGVQYXRocyIsImdldFBhdGNoRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJnZXRBbGxNZXJnZXJzRmlsZVBhdGhzIiwiZ2V0TWVyZ2Vyc0ZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsUHJlc2VudGF0aW9uc0ZpbGVOYW1lcyIsImdldFByZXNlbnRhdGlvbnNGaWxlUGF0aEJ5R2Z2T3JVbmRlZmluZWQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0RpcmVjdG9yaWVzL0Zhcm1EaXJlY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tIFwiZnNcIjtcblxuaW1wb3J0IHsgcGF0aEV4aXN0cyB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHBMaW1pdCBmcm9tIFwicC1saW1pdFwiO1xuXG5pbXBvcnQgeyBGb3JtR2xvYnMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9ucy9Gb3JtR2xvYnNVdGlsc1wiO1xuaW1wb3J0IHsgZ2xvYkFzeW5jIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbnMvRnNVdGlsc1wiO1xuaW1wb3J0IHsgcmVqZWN0IH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL0NvbW1vbi9UeXBpbmdVdGlsc1wiO1xuaW1wb3J0IHsgZXh0cmFjdEdmdnNGcm9tRmlsZU5hbWUgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9ucy9FeHRyYWN0R2Z2c0Zyb21GaWxlTmFtZVwiO1xuaW1wb3J0IHsgV2VsbEtub3duRGlyZWN0b3JpZXMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vQ29tbW9uL1dlbGxLbm93bkRpcmVjdG9yaWVzXCI7XG5pbXBvcnQgeyBGb3JtTG9jYXRpb25JbmZvIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbnMvRm9ybUxvY2F0aW9uSW5mb1wiO1xuXG5leHBvcnQgY2xhc3MgRmFybURpcmVjdG9yeSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYXJtRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBnZnZUb1BhdGhNYXA6IHVuZGVmaW5lZCB8IE1hcDxzdHJpbmcsIHN0cmluZz47XG4gICAgcHJpdmF0ZSBhbGxHZnZJbmZvcz86IEFycmF5PHsgZ2Z2OiBzdHJpbmc7IGZvcm1QYXRoOiBzdHJpbmc7IGZvcm1SZWxhdGl2ZVBhdGg6IHN0cmluZyB9PjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVuc3VyZUdmdkRpcmVjdG9yaWVzVXBkYXRlZDogKCkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihmYXJtRGlyZWN0b3J5OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5mYXJtRGlyZWN0b3J5ID0gZmFybURpcmVjdG9yeTtcbiAgICAgICAgY29uc3QgdXBkYXRlR2Z2RGlyZWN0b3JpZXNMaW1pdCA9IHBMaW1pdCgxKTtcbiAgICAgICAgdGhpcy5lbnN1cmVHZnZEaXJlY3Rvcmllc1VwZGF0ZWQgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5hbGxHZnZJbmZvcyA9PSB1bmRlZmluZWQgfHwgdGhpcy5nZnZUb1BhdGhNYXAgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdXBkYXRlR2Z2RGlyZWN0b3JpZXNMaW1pdChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFsbEdmdkluZm9zID09IHVuZGVmaW5lZCB8fCB0aGlzLmdmdlRvUGF0aE1hcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlR2Z2RGlyZWN0b3JpZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZmxvYXRpbmctcHJvbWlzZXNcbiAgICAgICAgICAgIHVwZGF0ZUdmdkRpcmVjdG9yaWVzTGltaXQoKCkgPT4gdGhpcy51cGRhdGVHZnZEaXJlY3RvcmllcygpKTtcbiAgICAgICAgfSwgNjAwMDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgdXBkYXRlR2Z2RGlyZWN0b3JpZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuYWxsR2Z2SW5mb3MgPSBhd2FpdCBGb3JtR2xvYnMuZW51bWVyYXRlRm9ybXNJblJlcG9zaXRvcnkocGF0aC5qb2luKHRoaXMuZmFybURpcmVjdG9yeSwgXCIuLlwiKSk7XG4gICAgICAgIHRoaXMuZ2Z2VG9QYXRoTWFwID0gbmV3IE1hcCh0aGlzLmFsbEdmdkluZm9zLm1hcCh4ID0+IFt4LmdmdiwgeC5mb3JtUGF0aF0pKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsUGlja2xpc3RzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGdsb2JBc3luYyhcIipcIiwgeyBjd2Q6IHBhdGguam9pbih0aGlzLmZhcm1EaXJlY3RvcnksIFwicGlja2xpc3RzXCIpIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRGb3JtRGlyZWN0b3J5KCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGdsb2JBc3luYyhcIipcIiwgeyBjd2Q6IHBhdGguam9pbih0aGlzLmZhcm1EaXJlY3RvcnksIFwicGlja2xpc3RzXCIpIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgZW51bWVyYXRlQWxsR2Z2cygpOiBQcm9taXNlPEFycmF5PHsgZ2Z2OiBzdHJpbmc7IGZvcm1QYXRoOiBzdHJpbmc7IGZvcm1SZWxhdGl2ZVBhdGg6IHN0cmluZyB9Pj4ge1xuICAgICAgICBhd2FpdCB0aGlzLmVuc3VyZUdmdkRpcmVjdG9yaWVzVXBkYXRlZCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5hbGxHZnZJbmZvcyA/PyByZWplY3QoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGdldEdmdlRvUGF0aE1hcCgpOiBQcm9taXNlPE1hcDxzdHJpbmcsIHN0cmluZz4+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5lbnN1cmVHZnZEaXJlY3Rvcmllc1VwZGF0ZWQoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2Z2VG9QYXRoTWFwID8/IHJlamVjdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxHZnZzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgY29uc3QgZm9ybUdmdlBhdGhzID0gYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCk7XG4gICAgICAgIHJldHVybiBmb3JtR2Z2UGF0aHMubWFwKHggPT4geC5nZnYpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxHZnZXaXRoTG9jYXRpb25zKCk6IFByb21pc2U8Rm9ybUxvY2F0aW9uSW5mb1tdPiB7XG4gICAgICAgIGNvbnN0IGZvcm1HZnZQYXRocyA9IGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpO1xuICAgICAgICByZXR1cm4gZm9ybUdmdlBhdGhzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRGb3JtSnNvblBhdGgoZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmVuc3VyZUdmdkRpcmVjdG9yaWVzVXBkYXRlZCgpO1xuICAgICAgICBjb25zdCBmb3JtRGlyUGF0aCA9ICh0aGlzLmdmdlRvUGF0aE1hcCA/PyByZWplY3QoKSkuZ2V0KGdmdik7XG4gICAgICAgIGlmIChmb3JtRGlyUGF0aCAhPSB1bmRlZmluZWQgJiYgZXhpc3RzU3luYyhwYXRoLmpvaW4oZm9ybURpclBhdGgsIFdlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWUpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhdGguam9pbihmb3JtRGlyUGF0aCwgV2VsbEtub3duRGlyZWN0b3JpZXMuRm9ybUpzb25GaWxlTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsQ29udmVydGVyRmlsZVBhdGhzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZ2Z2SW5mbyBvZiBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKSkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4uKGF3YWl0IGdsb2JBc3luYyhcImNvbnZlcnRlcnMvKlwiLCB7IGN3ZDogZ2Z2SW5mby5mb3JtUGF0aCB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldENvbnZlcnRlckZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBjb25zdCBnZnZUb1BhdGhNYXAgPSBhd2FpdCB0aGlzLmdldEdmdlRvUGF0aE1hcCgpO1xuICAgICAgICBmb3IgKGNvbnN0IGdmdiBvZiBleHRyYWN0R2Z2c0Zyb21GaWxlTmFtZShmaWxlbmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1QYXRoID0gZ2Z2VG9QYXRoTWFwLmdldChnZnYpO1xuICAgICAgICAgICAgaWYgKGZvcm1QYXRoID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZm9ybVBhdGgsIFwiY29udmVydGVyc1wiLCBmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsU2NoZW1hc0ZpbGVQYXRocygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLihhd2FpdCBnbG9iQXN5bmMoXCJzY2hlbWFzLypcIiwgeyBjd2Q6IGdmdkluZm8uZm9ybVBhdGggfSkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRTY2hlbWFGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihnZnZJbmZvLmZvcm1QYXRoLCBcInNjaGVtYXNcIiwgZmlsZW5hbWUpO1xuICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbGVQYXRoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEFsbE5vcm1hbGl6ZUZpbGVQYXRocygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLihhd2FpdCBnbG9iQXN5bmMoXCJub3JtYWxpemUvKlwiLCB7IGN3ZDogZ2Z2SW5mby5mb3JtUGF0aCB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldE5vcm1hbGl6ZUZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGdmdkluZm8uZm9ybVBhdGgsIFwibm9ybWFsaXplXCIsIGZpbGVuYW1lKTtcbiAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWxlUGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxVbm1hcEZpbGVQYXRocygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLihhd2FpdCBnbG9iQXN5bmMoXCJ1bm1hcC8qXCIsIHsgY3dkOiBnZnZJbmZvLmZvcm1QYXRoIH0pKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0VW5tYXBGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihnZnZJbmZvLmZvcm1QYXRoLCBcInVubWFwXCIsIGZpbGVuYW1lKTtcbiAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWxlUGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxNYXBGaWxlUGF0aHMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi4oYXdhaXQgZ2xvYkFzeW5jKFwibWFwLypcIiwgeyBjd2Q6IGdmdkluZm8uZm9ybVBhdGggfSkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRNYXBGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihnZnZJbmZvLmZvcm1QYXRoLCBcIm1hcFwiLCBmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsUGF0Y2hGaWxlUGF0aHMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi4oYXdhaXQgZ2xvYkFzeW5jKFwicGF0Y2gvKlwiLCB7IGN3ZDogZ2Z2SW5mby5mb3JtUGF0aCB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFBhdGNoRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGZvciAoY29uc3QgZ2Z2SW5mbyBvZiBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKSkge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZ2Z2SW5mby5mb3JtUGF0aCwgXCJwYXRjaFwiLCBmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsTWVyZ2Vyc0ZpbGVQYXRocygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLihhd2FpdCBnbG9iQXN5bmMoXCJtZXJnZXJzLypcIiwgeyBjd2Q6IGdmdkluZm8uZm9ybVBhdGggfSkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRNZXJnZXJzRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGZvciAoY29uc3QgZ2Z2SW5mbyBvZiBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKSkge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZ2Z2SW5mby5mb3JtUGF0aCwgXCJtZXJnZXJzXCIsIGZpbGVuYW1lKTtcbiAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWxlUGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxQcmVzZW50YXRpb25zRmlsZU5hbWVzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZ2Z2SW5mbyBvZiBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKSkge1xuICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMocGF0aC5qb2luKGdmdkluZm8uZm9ybVBhdGgsIFwicHJlc2VudGF0aW9ucy5qc29uXCIpKSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGAke2dmdkluZm8uZ2Z2fS5wcmVzZW50YXRpb25zLmpzb25gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRQcmVzZW50YXRpb25zRmlsZVBhdGhCeUdmdk9yVW5kZWZpbmVkKGdmdjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICBpZiAoZ2Z2SW5mby5nZnYgPT09IGdmdikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGdmdkluZm8uZm9ybVBhdGgsIFwicHJlc2VudGF0aW9ucy5qc29uXCIpO1xuICAgICAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FarmDirectory.js","names":["_path","_interopRequireDefault","require","_fs","_fsExtra","_pLimit","_FormGlobsUtils","_FsUtils","_TypingUtils","_ExtractGfvsFromFileName","_WellKnownDirectories","FarmDirectory","constructor","farmDirectory","gfvToPathMap","allGfvInfos","ensureGfvDirectoriesUpdated","updateGfvDirectoriesLimit","pLimit","undefined","updateGfvDirectories","setTimeout","FormGlobs","enumerateFormsInRepository","path","join","Map","map","x","gfv","formPath","getAllPicklists","globAsync","cwd","getFormDirectory","enumerateAllGfvs","_this$allGfvInfos","reject","getGfvToPathMap","_this$gfvToPathMap","getAllGfvs","formGfvPaths","getAllGfvWithLocations","getFormJsonPath","_this$gfvToPathMap2","formDirPath","get","existsSync","WellKnownDirectories","FormJsonFileName","getAllConverterFilePaths","result","gfvInfo","push","getConverterFilePathByFileNameOrUndefined","filename","extractGfvsFromFileName","filePath","pathExists","getAllSchemasFilePaths","getSchemaFilePathByFileNameOrUndefined","getAllNormalizeFilePaths","getNormalizeFilePathByFileNameOrUndefined","getAllUnmapFilePaths","getUnmapFilePathByFileNameOrUndefined","getAllMapFilePaths","getMapFilePathByFileNameOrUndefined","getAllPatchFilePaths","getPatchFilePathByFileNameOrUndefined","getAllMergersFilePaths","getMergersFilePathByFileNameOrUndefined","getAllPresentationsFileNames","getPresentationsFilePathByGfvOrUndefined","exports"],"sources":["../../../../../../../src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.ts"],"sourcesContent":["import path from \"path\";\nimport { existsSync } from \"fs\";\n\nimport { pathExists } from \"fs-extra\";\nimport pLimit from \"p-limit\";\n\nimport { FormGlobs } from \"../../../../Commons/FormGlobsUtils\";\nimport { globAsync } from \"../../../../Commons/FsUtils\";\nimport { reject } from \"../../../../../../Common/TypingUtils\";\nimport { extractGfvsFromFileName } from \"../../../../Commons/ExtractGfvsFromFileName\";\nimport { WellKnownDirectories } from \"../../../../../../Common/WellKnownDirectories\";\nimport { FormLocationInfo } from \"../../../../Commons/FormLocationInfo\";\n\nexport class FarmDirectory {\n private readonly farmDirectory: string;\n private gfvToPathMap: undefined | Map<string, string>;\n private allGfvInfos?: Array<{ gfv: string; formPath: string; formRelativePath: string }>;\n private readonly ensureGfvDirectoriesUpdated: () => Promise<void>;\n\n public constructor(farmDirectory: string) {\n this.farmDirectory = farmDirectory;\n const updateGfvDirectoriesLimit = pLimit(1);\n this.ensureGfvDirectoriesUpdated = async () => {\n if (this.allGfvInfos == undefined || this.gfvToPathMap == undefined) {\n await updateGfvDirectoriesLimit(async () => {\n if (this.allGfvInfos == undefined || this.gfvToPathMap == undefined) {\n await this.updateGfvDirectories();\n }\n });\n }\n };\n setTimeout(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n updateGfvDirectoriesLimit(() => this.updateGfvDirectories());\n }, 60000);\n }\n\n private async updateGfvDirectories(): Promise<void> {\n this.allGfvInfos = await FormGlobs.enumerateFormsInRepository(path.join(this.farmDirectory, \"..\"));\n this.gfvToPathMap = new Map(this.allGfvInfos.map(x => [x.gfv, x.formPath]));\n }\n\n public async getAllPicklists(): Promise<string[]> {\n return await globAsync(\"*\", { cwd: path.join(this.farmDirectory, \"picklists\") });\n }\n\n public async getFormDirectory(): Promise<string[]> {\n return await globAsync(\"*\", { cwd: path.join(this.farmDirectory, \"picklists\") });\n }\n\n private async enumerateAllGfvs(): Promise<Array<{ gfv: string; formPath: string; formRelativePath: string }>> {\n await this.ensureGfvDirectoriesUpdated();\n return this.allGfvInfos ?? reject();\n }\n\n private async getGfvToPathMap(): Promise<Map<string, string>> {\n await this.ensureGfvDirectoriesUpdated();\n return this.gfvToPathMap ?? reject();\n }\n\n public async getAllGfvs(): Promise<string[]> {\n const formGfvPaths = await this.enumerateAllGfvs();\n return formGfvPaths.map(x => x.gfv);\n }\n\n public async getAllGfvWithLocations(): Promise<FormLocationInfo[]> {\n const formGfvPaths = await this.enumerateAllGfvs();\n return formGfvPaths;\n }\n\n public async getFormJsonPath(gfv: string): Promise<string | undefined> {\n await this.ensureGfvDirectoriesUpdated();\n const formDirPath = (this.gfvToPathMap ?? reject()).get(gfv);\n if (formDirPath != undefined && existsSync(path.join(formDirPath, WellKnownDirectories.FormJsonFileName))) {\n return path.join(formDirPath, WellKnownDirectories.FormJsonFileName);\n }\n return undefined;\n }\n\n public async getAllConverterFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"converters/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getConverterFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n const gfvToPathMap = await this.getGfvToPathMap();\n for (const gfv of extractGfvsFromFileName(filename)) {\n const formPath = gfvToPathMap.get(gfv);\n if (formPath == undefined) {\n continue;\n }\n const filePath = path.join(formPath, \"converters\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllSchemasFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"schemas/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getSchemaFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"schemas\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllNormalizeFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"normalize/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getNormalizeFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"normalize\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllUnmapFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"unmap/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getUnmapFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"unmap\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllMapFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"map/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getMapFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"map\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllPatchFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"patch/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getPatchFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"patch\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllMergersFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"mergers/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getMergersFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"mergers\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllPresentationsFileNames(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n if (await pathExists(path.join(gfvInfo.formPath, \"presentations.json\"))) {\n result.push(`${gfvInfo.gfv}.presentations.json`);\n }\n }\n return result;\n }\n\n public async getPresentationsFilePathByGfvOrUndefined(gfv: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n if (gfvInfo.gfv === gfv) {\n const filePath = path.join(gfvInfo.formPath, \"presentations.json\");\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n }\n return undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -25,4 +25,4 @@ function globToRegexp(inputGlob) {
25
25
  return x;
26
26
  }).join("[\\/\\\\]"));
27
27
  }
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnbG9iVG9SZWdleHAiLCJpbnB1dEdsb2IiLCJwYXRoVG9rZW5zIiwic3BsaXQiLCJSZWdFeHAiLCJtYXAiLCJ4IiwiaW5kZXgiLCJsZW5ndGgiLCJpbmNsdWRlcyIsInJlcGxhY2UiLCJqb2luIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0dsb2JUb1JlZ2V4cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2xvYlRvUmVnZXhwKGlucHV0R2xvYjogc3RyaW5nKTogUmVnRXhwIHtcbiAgICBjb25zdCBwYXRoVG9rZW5zID0gaW5wdXRHbG9iLnNwbGl0KFwiL1wiKTtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChcbiAgICAgICAgXCJeXCIgK1xuICAgICAgICAgICAgcGF0aFRva2Vuc1xuICAgICAgICAgICAgICAgIC5tYXAoKHgsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh4ID09PSBcIipcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSBwYXRoVG9rZW5zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXCIuKiRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcIlteXFxcXC9dKj9cIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoeCA9PT0gXCIqKlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IHBhdGhUb2tlbnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcIi4qJFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwiLio/XCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHguaW5jbHVkZXMoXCIqXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geC5yZXBsYWNlKFwiKlwiLCBcIlteXFxcXC9dKj9cIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuam9pbihcIltcXFxcL1xcXFxcXFxcXVwiKVxuICAgICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLFNBQVNBLFlBQVlBLENBQUNDLFNBQWlCLEVBQVU7RUFDcEQsTUFBTUMsVUFBVSxHQUFHRCxTQUFTLENBQUNFLEtBQUssQ0FBQyxHQUFHLENBQUM7RUFDdkMsT0FBTyxJQUFJQyxNQUFNLENBQ2IsR0FBRyxHQUNDRixVQUFVLENBQ0xHLEdBQUcsQ0FBQyxDQUFDQyxDQUFDLEVBQUVDLEtBQUssS0FBSztJQUNmLElBQUlELENBQUMsS0FBSyxHQUFHLEVBQUU7TUFDWCxJQUFJQyxLQUFLLEtBQUtMLFVBQVUsQ0FBQ00sTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNqQyxPQUFPLEtBQUs7TUFDaEI7TUFDQSxPQUFPLFVBQVU7SUFDckI7SUFDQSxJQUFJRixDQUFDLEtBQUssSUFBSSxFQUFFO01BQ1osSUFBSUMsS0FBSyxLQUFLTCxVQUFVLENBQUNNLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDakMsT0FBTyxLQUFLO01BQ2hCO01BQ0EsT0FBTyxLQUFLO0lBQ2hCO0lBQ0EsSUFBSUYsQ0FBQyxDQUFDRyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7TUFDakIsT0FBT0gsQ0FBQyxDQUFDSSxPQUFPLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQztJQUNyQztJQUNBLE9BQU9KLENBQUM7RUFDWixDQUFDLENBQUMsQ0FDREssSUFBSSxDQUFDLFdBQVcsQ0FDN0IsQ0FBQztBQUNMIn0=
28
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnbG9iVG9SZWdleHAiLCJpbnB1dEdsb2IiLCJwYXRoVG9rZW5zIiwic3BsaXQiLCJSZWdFeHAiLCJtYXAiLCJ4IiwiaW5kZXgiLCJsZW5ndGgiLCJpbmNsdWRlcyIsInJlcGxhY2UiLCJqb2luIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0dsb2JUb1JlZ2V4cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2xvYlRvUmVnZXhwKGlucHV0R2xvYjogc3RyaW5nKTogUmVnRXhwIHtcbiAgICBjb25zdCBwYXRoVG9rZW5zID0gaW5wdXRHbG9iLnNwbGl0KFwiL1wiKTtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChcbiAgICAgICAgXCJeXCIgK1xuICAgICAgICAgICAgcGF0aFRva2Vuc1xuICAgICAgICAgICAgICAgIC5tYXAoKHgsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh4ID09PSBcIipcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSBwYXRoVG9rZW5zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXCIuKiRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcIlteXFxcXC9dKj9cIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoeCA9PT0gXCIqKlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IHBhdGhUb2tlbnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcIi4qJFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwiLio/XCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHguaW5jbHVkZXMoXCIqXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geC5yZXBsYWNlKFwiKlwiLCBcIlteXFxcXC9dKj9cIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuam9pbihcIltcXFxcL1xcXFxcXFxcXVwiKVxuICAgICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLFNBQVNBLFlBQVlBLENBQUNDLFNBQWlCLEVBQVU7RUFDcEQsTUFBTUMsVUFBVSxHQUFHRCxTQUFTLENBQUNFLEtBQUssQ0FBQyxHQUFHLENBQUM7RUFDdkMsT0FBTyxJQUFJQyxNQUFNLENBQ2IsR0FBRyxHQUNDRixVQUFVLENBQ0xHLEdBQUcsQ0FBQyxDQUFDQyxDQUFDLEVBQUVDLEtBQUssS0FBSztJQUNmLElBQUlELENBQUMsS0FBSyxHQUFHLEVBQUU7TUFDWCxJQUFJQyxLQUFLLEtBQUtMLFVBQVUsQ0FBQ00sTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNqQyxPQUFPLEtBQUs7TUFDaEI7TUFDQSxPQUFPLFVBQVU7SUFDckI7SUFDQSxJQUFJRixDQUFDLEtBQUssSUFBSSxFQUFFO01BQ1osSUFBSUMsS0FBSyxLQUFLTCxVQUFVLENBQUNNLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDakMsT0FBTyxLQUFLO01BQ2hCO01BQ0EsT0FBTyxLQUFLO0lBQ2hCO0lBQ0EsSUFBSUYsQ0FBQyxDQUFDRyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7TUFDakIsT0FBT0gsQ0FBQyxDQUFDSSxPQUFPLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQztJQUNyQztJQUNBLE9BQU9KLENBQUM7RUFDWixDQUFDLENBQUMsQ0FDREssSUFBSSxDQUFDLFdBQVcsQ0FDN0IsQ0FBQztBQUNMIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobToRegexp.js","names":["globToRegexp","inputGlob","pathTokens","split","RegExp","map","x","index","length","includes","replace","join"],"sources":["../../../../../../src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.ts"],"sourcesContent":["export function globToRegexp(inputGlob: string): RegExp {\n const pathTokens = inputGlob.split(\"/\");\n return new RegExp(\n \"^\" +\n pathTokens\n .map((x, index) => {\n if (x === \"*\") {\n if (index === pathTokens.length - 1) {\n return \".*$\";\n }\n return \"[^\\\\/]*?\";\n }\n if (x === \"**\") {\n if (index === pathTokens.length - 1) {\n return \".*$\";\n }\n return \".*?\";\n }\n if (x.includes(\"*\")) {\n return x.replace(\"*\", \"[^\\\\/]*?\");\n }\n return x;\n })\n .join(\"[\\\\/\\\\\\\\]\")\n );\n}\n"],"mappings":";;;;;;AAAO,SAASA,YAAYA,CAACC,SAAiB,EAAU;EACpD,MAAMC,UAAU,GAAGD,SAAS,CAACE,KAAK,CAAC,GAAG,CAAC;EACvC,OAAO,IAAIC,MAAM,CACb,GAAG,GACCF,UAAU,CACLG,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,KAAK;IACf,IAAID,CAAC,KAAK,GAAG,EAAE;MACX,IAAIC,KAAK,KAAKL,UAAU,CAACM,MAAM,GAAG,CAAC,EAAE;QACjC,OAAO,KAAK;MAChB;MACA,OAAO,UAAU;IACrB;IACA,IAAIF,CAAC,KAAK,IAAI,EAAE;MACZ,IAAIC,KAAK,KAAKL,UAAU,CAACM,MAAM,GAAG,CAAC,EAAE;QACjC,OAAO,KAAK;MAChB;MACA,OAAO,KAAK;IAChB;IACA,IAAIF,CAAC,CAACG,QAAQ,CAAC,GAAG,CAAC,EAAE;MACjB,OAAOH,CAAC,CAACI,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC;IACrC;IACA,OAAOJ,CAAC;EACZ,CAAC,CAAC,CACDK,IAAI,CAAC,WAAW,CAC7B,CAAC;AACL","ignoreList":[]}
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0lHZW5lcmF0ZWRTZXJ2ZXJTaWRlU291cmNlc1Byb3ZpZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXIge1xuICAgIGdldEFsbE5vcm1hbGl6YXRpb25GaWxlTmFtZXMoKTogUHJvbWlzZTxzdHJpbmdbXT47XG4gICAgZ2V0Tm9ybWFsaXphdGlvbkZpbGVDb250ZW50KGdmdjogc3RyaW5nKTogUHJvbWlzZTxOb2RlSlMuUmVhZGFibGVTdHJlYW0+O1xuICAgIGdldEFsbEF0dGFjaG1lbnRQYXRoRmlsZU5hbWVzKCk6IFByb21pc2U8c3RyaW5nW10+O1xuICAgIGdldEF0dGFjaG1lbnRQYXRoc0ZpbGVDb250ZW50KGdmdjogc3RyaW5nKTogUHJvbWlzZTxOb2RlSlMuUmVhZGFibGVTdHJlYW0+O1xufVxuIl0sIm1hcHBpbmdzIjoiIn0=
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0lHZW5lcmF0ZWRTZXJ2ZXJTaWRlU291cmNlc1Byb3ZpZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXIge1xuICAgIGdldEFsbE5vcm1hbGl6YXRpb25GaWxlTmFtZXMoKTogUHJvbWlzZTxzdHJpbmdbXT47XG4gICAgZ2V0Tm9ybWFsaXphdGlvbkZpbGVDb250ZW50KGdmdjogc3RyaW5nKTogUHJvbWlzZTxOb2RlSlMuUmVhZGFibGVTdHJlYW0+O1xuICAgIGdldEFsbEF0dGFjaG1lbnRQYXRoRmlsZU5hbWVzKCk6IFByb21pc2U8c3RyaW5nW10+O1xuICAgIGdldEF0dGFjaG1lbnRQYXRoc0ZpbGVDb250ZW50KGdmdjogc3RyaW5nKTogUHJvbWlzZTxOb2RlSlMuUmVhZGFibGVTdHJlYW0+O1xufVxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IGeneratedServerSideSourcesProvider.js","names":[],"sources":["../../../../../../src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.ts"],"sourcesContent":["export interface IGeneratedServerSideSourcesProvider {\n getAllNormalizationFileNames(): Promise<string[]>;\n getNormalizationFileContent(gfv: string): Promise<NodeJS.ReadableStream>;\n getAllAttachmentPathFileNames(): Promise<string[]>;\n getAttachmentPathsFileContent(gfv: string): Promise<NodeJS.ReadableStream>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -98,4 +98,4 @@ async function runDevBuildServer(context, options, allFarmConfig) {
98
98
  await webServer.stop();
99
99
  await formTestingHelpersWebServer.stop();
100
100
  }
101
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVHlwaW5nVXRpbHMiLCJyZXF1aXJlIiwiX0V4cHJlc3NTZXJ2ZXJXcmFwcGVyIiwiX0Zvcm1zSGVscGVyQ29udHJvbGxlciIsIl9FeHRyYWN0VGV4dHNGcm9tU3VnYXJDb250cm9sbGVyIiwiX0J1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIiLCJfQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzQ29udHJvbGxlciIsIl9CdWlsZFNlcnZlckJhY2tlbmRSZXNvdXJjZXNVcGRhdGVzQ29udHJvbGxlciIsIl9CdWlsZFNlcnZlckJ1aWxkRm9ybXNDb250cm9sbGVyIiwiX0J1aWxkU2VydmVyQ2xpZW50SnNDb250cm9sbGVyIiwiX0J1aWxkU2VydmVyQ2xpZW50SnNGcm9tUmVzb3VyY2VzQ29udHJvbGxlciIsIl9CdWlsZFNlcnZlckZvcm1JbmZvQ29udHJvbGxlciIsIl9CdWlsZFNlcnZlckxvY2FsU291cmNlc0VuZ2luZUNvbnRyb2xsZXIiLCJfQnVpbGRTZXJ2ZXJQcmVidWlsdFJlc291cmNlc0NvbnRyb2xsZXIiLCJfQnVpbGRTZXJ2ZXJQdWJsaXNoZWRFbmdpbmVDb250cm9sbGVyIiwicnVuQnVpbGRTZXJ2ZXIiLCJjb250ZXh0Iiwib3B0aW9ucyIsImFsbEZhcm1Db25maWciLCJlbnN1cmVBcnJheUlzTm90RW1wdHkiLCJlbmdpbmVEaXJlY3RvcnkiLCJjb25mIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJjYW5keU1vZHVsZXNEaXJlY3RvcnkiLCJmb3JtVGVzdGluZ0hlbHBlcnNXZWJTZXJ2ZXIiLCJFeHByZXNzU2VydmVyV3JhcHBlciIsImxvZ2dlciIsInJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyIiwiRm9ybXNIZWxwZXJDb250cm9sbGVyIiwiZnJvbnRFbmREZXZNb2RlIiwiZGV2ZWxvcG1lbnRNb2RlIiwid2ViU2VydmVyIiwiZGlzYWJsZUNsaWVudE92ZXJyaWRlIiwiQnVpbGRMb2dzV2Vic29ja2V0Q29udHJvbGxlciIsImJ1aWxkRm9ybXNDb250cm9sbGVyIiwiQnVpbGRTZXJ2ZXJCdWlsZEZvcm1zQ29udHJvbGxlciIsImJ1aWxkRGVidWdPbmx5IiwibmlnaHRseSIsIkJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc0NvbnRyb2xsZXIiLCJFeHRyYWN0VGV4dHNGcm9tU3VnYXJDb250cm9sbGVyIiwiQnVpbGRTZXJ2ZXJGb3JtSW5mb0NvbnRyb2xsZXIiLCJCdWlsZFNlcnZlclByZWJ1aWx0UmVzb3VyY2VzQ29udHJvbGxlciIsIkJ1aWxkU2VydmVyUHVibGlzaGVkRW5naW5lQ29udHJvbGxlciIsIkJ1aWxkU2VydmVyQ2xpZW50SnNGcm9tUmVzb3VyY2VzQ29udHJvbGxlciIsIkJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc1VwZGF0ZXNDb250cm9sbGVyIiwic3RhcnQiLCJ3YWl0Rm9yRXhpdCIsInN0b3AiLCJydW5EZXZCdWlsZFNlcnZlciIsImJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIiLCJCdWlsZFNlcnZlckxvY2FsU291cmNlc0VuZ2luZUNvbnRyb2xsZXIiLCJCdWlsZFNlcnZlckNsaWVudEpzQ29udHJvbGxlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SdW5CdWlsZFNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYXJtQ29uZmlnIH0gZnJvbSBcIlRvb2xzL3NyYy9DYW5keUNMSVwiO1xuXG5pbXBvcnQgeyBlbnN1cmVBcnJheUlzTm90RW1wdHkgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL1R5cGluZ1V0aWxzXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IEV4cHJlc3NTZXJ2ZXJXcmFwcGVyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9FeHByZXNzV3JhcHBlci9FeHByZXNzU2VydmVyV3JhcHBlclwiO1xuaW1wb3J0IHsgRm9ybXNIZWxwZXJDb250cm9sbGVyIH0gZnJvbSBcIi4uL0Zvcm1zSGVscGVyL0Zvcm1zSGVscGVyQ29udHJvbGxlclwiO1xuaW1wb3J0IHsgRXh0cmFjdFRleHRzRnJvbVN1Z2FyQ29udHJvbGxlciB9IGZyb20gXCIuLi9TdWdhckV4dHJhY3Rvci9FeHRyYWN0VGV4dHNGcm9tU3VnYXJDb250cm9sbGVyXCI7XG5cbmltcG9ydCB7IEJ1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIgfSBmcm9tIFwiLi9CdWlsZExvZ3NXZWJzb2NrZXRDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBCdWlsZFNlcnZlck9wdGlvbnMsIERldkJ1aWxkU2VydmVyT3B0aW9ucyB9IGZyb20gXCIuL0J1aWxkU2VydmVyU2VydmVyT3B0aW9uc1wiO1xuaW1wb3J0IHsgQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzQ29udHJvbGxlciB9IGZyb20gXCIuL1Jlc291cmNlc0NvbnRyb2xsZXJzL0J1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc0NvbnRyb2xsZXJcIjtcbmltcG9ydCB7IEJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc1VwZGF0ZXNDb250cm9sbGVyIH0gZnJvbSBcIi4vUmVzb3VyY2VzQ29udHJvbGxlcnMvQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzVXBkYXRlc0NvbnRyb2xsZXJcIjtcbmltcG9ydCB7IEJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIgfSBmcm9tIFwiLi9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlckJ1aWxkRm9ybXNDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBCdWlsZFNlcnZlckNsaWVudEpzQ29udHJvbGxlciB9IGZyb20gXCIuL1Jlc291cmNlc0NvbnRyb2xsZXJzL0J1aWxkU2VydmVyQ2xpZW50SnNDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBCdWlsZFNlcnZlckNsaWVudEpzRnJvbVJlc291cmNlc0NvbnRyb2xsZXIgfSBmcm9tIFwiLi9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlckNsaWVudEpzRnJvbVJlc291cmNlc0NvbnRyb2xsZXJcIjtcbmltcG9ydCB7IEJ1aWxkU2VydmVyRm9ybUluZm9Db250cm9sbGVyIH0gZnJvbSBcIi4vUmVzb3VyY2VzQ29udHJvbGxlcnMvQnVpbGRTZXJ2ZXJGb3JtSW5mb0NvbnRyb2xsZXJcIjtcbmltcG9ydCB7IEJ1aWxkU2VydmVyTG9jYWxTb3VyY2VzRW5naW5lQ29udHJvbGxlciB9IGZyb20gXCIuL1Jlc291cmNlc0NvbnRyb2xsZXJzL0J1aWxkU2VydmVyTG9jYWxTb3VyY2VzRW5naW5lQ29udHJvbGxlclwiO1xuaW1wb3J0IHsgQnVpbGRTZXJ2ZXJQcmVidWlsdFJlc291cmNlc0NvbnRyb2xsZXIgfSBmcm9tIFwiLi9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlclByZWJ1aWx0UmVzb3VyY2VzQ29udHJvbGxlclwiO1xuaW1wb3J0IHsgQnVpbGRTZXJ2ZXJQdWJsaXNoZWRFbmdpbmVDb250cm9sbGVyIH0gZnJvbSBcIi4vUmVzb3VyY2VzQ29udHJvbGxlcnMvQnVpbGRTZXJ2ZXJQdWJsaXNoZWRFbmdpbmVDb250cm9sbGVyXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5CdWlsZFNlcnZlcihcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IEJ1aWxkU2VydmVyT3B0aW9ucyxcbiAgICBhbGxGYXJtQ29uZmlnOiBGYXJtQ29uZmlnW11cbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGVuc3VyZUFycmF5SXNOb3RFbXB0eShhbGxGYXJtQ29uZmlnKTtcblxuICAgIGxldCBlbmdpbmVEaXJlY3RvcnkgPSBcIlwiO1xuICAgIGZvciAoY29uc3QgY29uZiBvZiBhbGxGYXJtQ29uZmlnKSB7XG4gICAgICAgIGlmIChjb25mLmVuZ2luZURpcmVjdG9yeSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSA9IGNvbmYuZW5naW5lRGlyZWN0b3J5O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVuZ2luZURpcmVjdG9yeSA9PT0gXCJcIikge1xuICAgICAgICB0aHJvdyBFcnJvcihcIkFsbCBFbmdpbmUgZGlyZWN0b3J5IGlzIGVtcHR5XCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IGFsbEZhcm1Db25maWdbMF0uY2FuZHlNb2R1bGVzRGlyZWN0b3J5O1xuXG4gICAgY29uc3QgZm9ybVRlc3RpbmdIZWxwZXJzV2ViU2VydmVyID0gbmV3IEV4cHJlc3NTZXJ2ZXJXcmFwcGVyKDkwMTAsIHVuZGVmaW5lZCwgY29udGV4dC5sb2dnZXIsIFwiRm9ybXMgaGVscGVyc1wiKTtcbiAgICBmb3JtVGVzdGluZ0hlbHBlcnNXZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIoXG4gICAgICAgIG5ldyBGb3Jtc0hlbHBlckNvbnRyb2xsZXIoeyBmcm9udEVuZERldk1vZGU6IG9wdGlvbnMuZGV2ZWxvcG1lbnRNb2RlIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IHdlYlNlcnZlciA9IG5ldyBFeHByZXNzU2VydmVyV3JhcHBlcig5MDAwLCA5MDQzLCBjb250ZXh0LmxvZ2dlcik7XG4gICAgaWYgKCFvcHRpb25zLmRpc2FibGVDbGllbnRPdmVycmlkZSkge1xuICAgICAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIobmV3IEJ1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIoKSk7XG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkRm9ybXNDb250cm9sbGVyID0gbmV3IEJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIoXG4gICAgICAgIGFsbEZhcm1Db25maWcsXG4gICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgZmFsc2UsXG4gICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgb3B0aW9ucy5idWlsZERlYnVnT25seSxcbiAgICAgICAgb3B0aW9ucy5uaWdodGx5XG4gICAgKTtcblxuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihidWlsZEZvcm1zQ29udHJvbGxlcik7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKFxuICAgICAgICBuZXcgQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzQ29udHJvbGxlcihhbGxGYXJtQ29uZmlnLCBidWlsZEZvcm1zQ29udHJvbGxlcilcbiAgICApO1xuXG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKG5ldyBFeHRyYWN0VGV4dHNGcm9tU3VnYXJDb250cm9sbGVyKGFsbEZhcm1Db25maWcsIGJ1aWxkRm9ybXNDb250cm9sbGVyKSk7XG5cbiAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIobmV3IEJ1aWxkU2VydmVyRm9ybUluZm9Db250cm9sbGVyKGFsbEZhcm1Db25maWcsIGZhbHNlLCBvcHRpb25zLm5pZ2h0bHkpKTtcblxuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihuZXcgQnVpbGRTZXJ2ZXJQcmVidWlsdFJlc291cmNlc0NvbnRyb2xsZXIoKSk7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKG5ldyBCdWlsZFNlcnZlclB1Ymxpc2hlZEVuZ2luZUNvbnRyb2xsZXIoY2FuZHlNb2R1bGVzRGlyZWN0b3J5KSk7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKFxuICAgICAgICBuZXcgQnVpbGRTZXJ2ZXJDbGllbnRKc0Zyb21SZXNvdXJjZXNDb250cm9sbGVyKG9wdGlvbnMuZGlzYWJsZUNsaWVudE92ZXJyaWRlLCB7XG4gICAgICAgICAgICBmcm9udEVuZERldk1vZGU6IG9wdGlvbnMuZGV2ZWxvcG1lbnRNb2RlLFxuICAgICAgICB9KVxuICAgICk7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKG5ldyBCdWlsZFNlcnZlckJhY2tlbmRSZXNvdXJjZXNVcGRhdGVzQ29udHJvbGxlcihhbGxGYXJtQ29uZmlnKSk7XG4gICAgYXdhaXQgZm9ybVRlc3RpbmdIZWxwZXJzV2ViU2VydmVyLnN0YXJ0KCk7XG4gICAgYXdhaXQgd2ViU2VydmVyLnN0YXJ0KCk7XG4gICAgYXdhaXQgY29udGV4dC53YWl0Rm9yRXhpdCgpO1xuICAgIGF3YWl0IHdlYlNlcnZlci5zdG9wKCk7XG4gICAgYXdhaXQgZm9ybVRlc3RpbmdIZWxwZXJzV2ViU2VydmVyLnN0b3AoKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkRldkJ1aWxkU2VydmVyKFxuICAgIGNvbnRleHQ6IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQsXG4gICAgb3B0aW9uczogRGV2QnVpbGRTZXJ2ZXJPcHRpb25zLFxuICAgIGFsbEZhcm1Db25maWc6IEZhcm1Db25maWdbXVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGFsbEZhcm1Db25maWdbMF0gPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IEVycm9yKFwiQ29uZmlnIGNhbid0IGJlIGxlbmd0aCAwXCIpO1xuICAgIH1cblxuICAgIGxldCBlbmdpbmVEaXJlY3RvcnkgPSBcIlwiO1xuICAgIGZvciAoY29uc3QgY29uZiBvZiBhbGxGYXJtQ29uZmlnKSB7XG4gICAgICAgIGlmIChjb25mLmVuZ2luZURpcmVjdG9yeSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSA9IGNvbmYuZW5naW5lRGlyZWN0b3J5O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVuZ2luZURpcmVjdG9yeSA9PT0gXCJcIikge1xuICAgICAgICB0aHJvdyBFcnJvcihcIkFsbCBFbmdpbmUgZGlyZWN0b3J5IGlzIGVtcHR5XCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IGFsbEZhcm1Db25maWdbMF0uY2FuZHlNb2R1bGVzRGlyZWN0b3J5O1xuXG4gICAgY29uc3QgZm9ybVRlc3RpbmdIZWxwZXJzV2ViU2VydmVyID0gbmV3IEV4cHJlc3NTZXJ2ZXJXcmFwcGVyKDkwMTAsIHVuZGVmaW5lZCwgY29udGV4dC5sb2dnZXIsIFwiRm9ybXMgaGVscGVyc1wiKTtcbiAgICBmb3JtVGVzdGluZ0hlbHBlcnNXZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIoXG4gICAgICAgIG5ldyBGb3Jtc0hlbHBlckNvbnRyb2xsZXIoeyBmcm9udEVuZERldk1vZGU6IG9wdGlvbnMuZGV2ZWxvcG1lbnRNb2RlIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IHdlYlNlcnZlciA9IG5ldyBFeHByZXNzU2VydmVyV3JhcHBlcig5MDAwLCA5MDQzLCBjb250ZXh0LmxvZ2dlcik7XG4gICAgaWYgKCFvcHRpb25zLmRpc2FibGVDbGllbnRPdmVycmlkZSkge1xuICAgICAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIobmV3IEJ1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIoKSk7XG4gICAgfVxuXG4gICAgY29uc3QgYnVpbGRTZXJ2ZXJCdWlsZEZvcm1zQ29udHJvbGxlciA9IG5ldyBCdWlsZFNlcnZlckJ1aWxkRm9ybXNDb250cm9sbGVyKFxuICAgICAgICBhbGxGYXJtQ29uZmlnLFxuICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgIHRydWUsXG4gICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgb3B0aW9ucy5idWlsZERlYnVnT25seVxuICAgICk7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKGJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIpO1xuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihcbiAgICAgICAgbmV3IEJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc0NvbnRyb2xsZXIoYWxsRmFybUNvbmZpZywgYnVpbGRTZXJ2ZXJCdWlsZEZvcm1zQ29udHJvbGxlcilcbiAgICApO1xuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihcbiAgICAgICAgbmV3IEV4dHJhY3RUZXh0c0Zyb21TdWdhckNvbnRyb2xsZXIoYWxsRmFybUNvbmZpZywgYnVpbGRTZXJ2ZXJCdWlsZEZvcm1zQ29udHJvbGxlcilcbiAgICApO1xuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihuZXcgQnVpbGRTZXJ2ZXJGb3JtSW5mb0NvbnRyb2xsZXIoYWxsRmFybUNvbmZpZywgdHJ1ZSwgZmFsc2UpKTtcblxuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihuZXcgQnVpbGRTZXJ2ZXJQcmVidWlsdFJlc291cmNlc0NvbnRyb2xsZXIoKSk7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKG5ldyBCdWlsZFNlcnZlclB1Ymxpc2hlZEVuZ2luZUNvbnRyb2xsZXIoY2FuZHlNb2R1bGVzRGlyZWN0b3J5KSk7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKFxuICAgICAgICBuZXcgQnVpbGRTZXJ2ZXJMb2NhbFNvdXJjZXNFbmdpbmVDb250cm9sbGVyKGVuZ2luZURpcmVjdG9yeSwgb3B0aW9ucy5idWlsZERlYnVnT25seSlcbiAgICApO1xuXG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKFxuICAgICAgICBuZXcgQnVpbGRTZXJ2ZXJDbGllbnRKc0NvbnRyb2xsZXIoZW5naW5lRGlyZWN0b3J5LCBvcHRpb25zLmJ1aWxkRGVidWdPbmx5LCBvcHRpb25zLmRpc2FibGVDbGllbnRPdmVycmlkZSwge1xuICAgICAgICAgICAgZnJvbnRFbmREZXZNb2RlOiBvcHRpb25zLmRldmVsb3BtZW50TW9kZSxcbiAgICAgICAgfSlcbiAgICApO1xuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihuZXcgQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzVXBkYXRlc0NvbnRyb2xsZXIoYWxsRmFybUNvbmZpZykpO1xuICAgIGF3YWl0IGZvcm1UZXN0aW5nSGVscGVyc1dlYlNlcnZlci5zdGFydCgpO1xuICAgIGF3YWl0IHdlYlNlcnZlci5zdGFydCgpO1xuICAgIGF3YWl0IGNvbnRleHQud2FpdEZvckV4aXQoKTtcbiAgICBhd2FpdCB3ZWJTZXJ2ZXIuc3RvcCgpO1xuICAgIGF3YWl0IGZvcm1UZXN0aW5nSGVscGVyc1dlYlNlcnZlci5zdG9wKCk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQSxJQUFBQSxZQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxxQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsc0JBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGdDQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSw2QkFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssc0NBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLDZDQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxnQ0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsOEJBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLDJDQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSw4QkFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsd0NBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLHVDQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxxQ0FBQSxHQUFBYixPQUFBO0FBRU8sZUFBZWMsY0FBY0EsQ0FDaENDLE9BQWtDLEVBQ2xDQyxPQUEyQixFQUMzQkMsYUFBMkIsRUFDZDtFQUNiLElBQUFDLGtDQUFxQixFQUFDRCxhQUFhLENBQUM7RUFFcEMsSUFBSUUs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
101
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVHlwaW5nVXRpbHMiLCJyZXF1aXJlIiwiX0V4cHJlc3NTZXJ2ZXJXcmFwcGVyIiwiX0Zvcm1zSGVscGVyQ29udHJvbGxlciIsIl9FeHRyYWN0VGV4dHNGcm9tU3VnYXJDb250cm9sbGVyIiwiX0J1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIiLCJfQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzQ29udHJvbGxlciIsIl9CdWlsZFNlcnZlckJhY2tlbmRSZXNvdXJjZXNVcGRhdGVzQ29udHJvbGxlciIsIl9CdWlsZFNlcnZlckJ1aWxkRm9ybXNDb250cm9sbGVyIiwiX0J1aWxkU2VydmVyQ2xpZW50SnNDb250cm9sbGVyIiwiX0J1aWxkU2VydmVyQ2xpZW50SnNGcm9tUmVzb3VyY2VzQ29udHJvbGxlciIsIl9CdWlsZFNlcnZlckZvcm1JbmZvQ29udHJvbGxlciIsIl9CdWlsZFNlcnZlckxvY2FsU291cmNlc0VuZ2luZUNvbnRyb2xsZXIiLCJfQnVpbGRTZXJ2ZXJQcmVidWlsdFJlc291cmNlc0NvbnRyb2xsZXIiLCJfQnVpbGRTZXJ2ZXJQdWJsaXNoZWRFbmdpbmVDb250cm9sbGVyIiwicnVuQnVpbGRTZXJ2ZXIiLCJjb250ZXh0Iiwib3B0aW9ucyIsImFsbEZhcm1Db25maWciLCJlbnN1cmVBcnJheUlzTm90RW1wdHkiLCJlbmdpbmVEaXJlY3RvcnkiLCJjb25mIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJjYW5keU1vZHVsZXNEaXJlY3RvcnkiLCJmb3JtVGVzdGluZ0hlbHBlcnNXZWJTZXJ2ZXIiLCJFeHByZXNzU2VydmVyV3JhcHBlciIsImxvZ2dlciIsInJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyIiwiRm9ybXNIZWxwZXJDb250cm9sbGVyIiwiZnJvbnRFbmREZXZNb2RlIiwiZGV2ZWxvcG1lbnRNb2RlIiwid2ViU2VydmVyIiwiZGlzYWJsZUNsaWVudE92ZXJyaWRlIiwiQnVpbGRMb2dzV2Vic29ja2V0Q29udHJvbGxlciIsImJ1aWxkRm9ybXNDb250cm9sbGVyIiwiQnVpbGRTZXJ2ZXJCdWlsZEZvcm1zQ29udHJvbGxlciIsImJ1aWxkRGVidWdPbmx5IiwibmlnaHRseSIsIkJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc0NvbnRyb2xsZXIiLCJFeHRyYWN0VGV4dHNGcm9tU3VnYXJDb250cm9sbGVyIiwiQnVpbGRTZXJ2ZXJGb3JtSW5mb0NvbnRyb2xsZXIiLCJCdWlsZFNlcnZlclByZWJ1aWx0UmVzb3VyY2VzQ29udHJvbGxlciIsIkJ1aWxkU2VydmVyUHVibGlzaGVkRW5naW5lQ29udHJvbGxlciIsIkJ1aWxkU2VydmVyQ2xpZW50SnNGcm9tUmVzb3VyY2VzQ29udHJvbGxlciIsIkJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc1VwZGF0ZXNDb250cm9sbGVyIiwic3RhcnQiLCJ3YWl0Rm9yRXhpdCIsInN0b3AiLCJydW5EZXZCdWlsZFNlcnZlciIsImJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIiLCJCdWlsZFNlcnZlckxvY2FsU291cmNlc0VuZ2luZUNvbnRyb2xsZXIiLCJCdWlsZFNlcnZlckNsaWVudEpzQ29udHJvbGxlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SdW5CdWlsZFNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYXJtQ29uZmlnIH0gZnJvbSBcIlRvb2xzL3NyYy9DYW5keUNMSVwiO1xuXG5pbXBvcnQgeyBlbnN1cmVBcnJheUlzTm90RW1wdHkgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL1R5cGluZ1V0aWxzXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IEV4cHJlc3NTZXJ2ZXJXcmFwcGVyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9FeHByZXNzV3JhcHBlci9FeHByZXNzU2VydmVyV3JhcHBlclwiO1xuaW1wb3J0IHsgRm9ybXNIZWxwZXJDb250cm9sbGVyIH0gZnJvbSBcIi4uL0Zvcm1zSGVscGVyL0Zvcm1zSGVscGVyQ29udHJvbGxlclwiO1xuaW1wb3J0IHsgRXh0cmFjdFRleHRzRnJvbVN1Z2FyQ29udHJvbGxlciB9IGZyb20gXCIuLi9TdWdhckV4dHJhY3Rvci9FeHRyYWN0VGV4dHNGcm9tU3VnYXJDb250cm9sbGVyXCI7XG5cbmltcG9ydCB7IEJ1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIgfSBmcm9tIFwiLi9CdWlsZExvZ3NXZWJzb2NrZXRDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBCdWlsZFNlcnZlck9wdGlvbnMsIERldkJ1aWxkU2VydmVyT3B0aW9ucyB9IGZyb20gXCIuL0J1aWxkU2VydmVyU2VydmVyT3B0aW9uc1wiO1xuaW1wb3J0IHsgQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzQ29udHJvbGxlciB9IGZyb20gXCIuL1Jlc291cmNlc0NvbnRyb2xsZXJzL0J1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc0NvbnRyb2xsZXJcIjtcbmltcG9ydCB7IEJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc1VwZGF0ZXNDb250cm9sbGVyIH0gZnJvbSBcIi4vUmVzb3VyY2VzQ29udHJvbGxlcnMvQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzVXBkYXRlc0NvbnRyb2xsZXJcIjtcbmltcG9ydCB7IEJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIgfSBmcm9tIFwiLi9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlckJ1aWxkRm9ybXNDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBCdWlsZFNlcnZlckNsaWVudEpzQ29udHJvbGxlciB9IGZyb20gXCIuL1Jlc291cmNlc0NvbnRyb2xsZXJzL0J1aWxkU2VydmVyQ2xpZW50SnNDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBCdWlsZFNlcnZlckNsaWVudEpzRnJvbVJlc291cmNlc0NvbnRyb2xsZXIgfSBmcm9tIFwiLi9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlckNsaWVudEpzRnJvbVJlc291cmNlc0NvbnRyb2xsZXJcIjtcbmltcG9ydCB7IEJ1aWxkU2VydmVyRm9ybUluZm9Db250cm9sbGVyIH0gZnJvbSBcIi4vUmVzb3VyY2VzQ29udHJvbGxlcnMvQnVpbGRTZXJ2ZXJGb3JtSW5mb0NvbnRyb2xsZXJcIjtcbmltcG9ydCB7IEJ1aWxkU2VydmVyTG9jYWxTb3VyY2VzRW5naW5lQ29udHJvbGxlciB9IGZyb20gXCIuL1Jlc291cmNlc0NvbnRyb2xsZXJzL0J1aWxkU2VydmVyTG9jYWxTb3VyY2VzRW5naW5lQ29udHJvbGxlclwiO1xuaW1wb3J0IHsgQnVpbGRTZXJ2ZXJQcmVidWlsdFJlc291cmNlc0NvbnRyb2xsZXIgfSBmcm9tIFwiLi9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlclByZWJ1aWx0UmVzb3VyY2VzQ29udHJvbGxlclwiO1xuaW1wb3J0IHsgQnVpbGRTZXJ2ZXJQdWJsaXNoZWRFbmdpbmVDb250cm9sbGVyIH0gZnJvbSBcIi4vUmVzb3VyY2VzQ29udHJvbGxlcnMvQnVpbGRTZXJ2ZXJQdWJsaXNoZWRFbmdpbmVDb250cm9sbGVyXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5CdWlsZFNlcnZlcihcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IEJ1aWxkU2VydmVyT3B0aW9ucyxcbiAgICBhbGxGYXJtQ29uZmlnOiBGYXJtQ29uZmlnW11cbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGVuc3VyZUFycmF5SXNOb3RFbXB0eShhbGxGYXJtQ29uZmlnKTtcblxuICAgIGxldCBlbmdpbmVEaXJlY3RvcnkgPSBcIlwiO1xuICAgIGZvciAoY29uc3QgY29uZiBvZiBhbGxGYXJtQ29uZmlnKSB7XG4gICAgICAgIGlmIChjb25mLmVuZ2luZURpcmVjdG9yeSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSA9IGNvbmYuZW5naW5lRGlyZWN0b3J5O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVuZ2luZURpcmVjdG9yeSA9PT0gXCJcIikge1xuICAgICAgICB0aHJvdyBFcnJvcihcIkFsbCBFbmdpbmUgZGlyZWN0b3J5IGlzIGVtcHR5XCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IGFsbEZhcm1Db25maWdbMF0uY2FuZHlNb2R1bGVzRGlyZWN0b3J5O1xuXG4gICAgY29uc3QgZm9ybVRlc3RpbmdIZWxwZXJzV2ViU2VydmVyID0gbmV3IEV4cHJlc3NTZXJ2ZXJXcmFwcGVyKDkwMTAsIHVuZGVmaW5lZCwgY29udGV4dC5sb2dnZXIsIFwiRm9ybXMgaGVscGVyc1wiKTtcbiAgICBmb3JtVGVzdGluZ0hlbHBlcnNXZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIoXG4gICAgICAgIG5ldyBGb3Jtc0hlbHBlckNvbnRyb2xsZXIoeyBmcm9udEVuZERldk1vZGU6IG9wdGlvbnMuZGV2ZWxvcG1lbnRNb2RlIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IHdlYlNlcnZlciA9IG5ldyBFeHByZXNzU2VydmVyV3JhcHBlcig5MDAwLCA5MDQzLCBjb250ZXh0LmxvZ2dlcik7XG4gICAgaWYgKCFvcHRpb25zLmRpc2FibGVDbGllbnRPdmVycmlkZSkge1xuICAgICAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIobmV3IEJ1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIoKSk7XG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkRm9ybXNDb250cm9sbGVyID0gbmV3IEJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIoXG4gICAgICAgIGFsbEZhcm1Db25maWcsXG4gICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgZmFsc2UsXG4gICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgb3B0aW9ucy5idWlsZERlYnVnT25seSxcbiAgICAgICAgb3B0aW9ucy5uaWdodGx5XG4gICAgKTtcblxuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihidWlsZEZvcm1zQ29udHJvbGxlcik7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKFxuICAgICAgICBuZXcgQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzQ29udHJvbGxlcihhbGxGYXJtQ29uZmlnLCBidWlsZEZvcm1zQ29udHJvbGxlcilcbiAgICApO1xuXG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKG5ldyBFeHRyYWN0VGV4dHNGcm9tU3VnYXJDb250cm9sbGVyKGFsbEZhcm1Db25maWcsIGJ1aWxkRm9ybXNDb250cm9sbGVyKSk7XG5cbiAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIobmV3IEJ1aWxkU2VydmVyRm9ybUluZm9Db250cm9sbGVyKGFsbEZhcm1Db25maWcsIGZhbHNlLCBvcHRpb25zLm5pZ2h0bHkpKTtcblxuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihuZXcgQnVpbGRTZXJ2ZXJQcmVidWlsdFJlc291cmNlc0NvbnRyb2xsZXIoKSk7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKG5ldyBCdWlsZFNlcnZlclB1Ymxpc2hlZEVuZ2luZUNvbnRyb2xsZXIoY2FuZHlNb2R1bGVzRGlyZWN0b3J5KSk7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKFxuICAgICAgICBuZXcgQnVpbGRTZXJ2ZXJDbGllbnRKc0Zyb21SZXNvdXJjZXNDb250cm9sbGVyKG9wdGlvbnMuZGlzYWJsZUNsaWVudE92ZXJyaWRlLCB7XG4gICAgICAgICAgICBmcm9udEVuZERldk1vZGU6IG9wdGlvbnMuZGV2ZWxvcG1lbnRNb2RlLFxuICAgICAgICB9KVxuICAgICk7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKG5ldyBCdWlsZFNlcnZlckJhY2tlbmRSZXNvdXJjZXNVcGRhdGVzQ29udHJvbGxlcihhbGxGYXJtQ29uZmlnKSk7XG4gICAgYXdhaXQgZm9ybVRlc3RpbmdIZWxwZXJzV2ViU2VydmVyLnN0YXJ0KCk7XG4gICAgYXdhaXQgd2ViU2VydmVyLnN0YXJ0KCk7XG4gICAgYXdhaXQgY29udGV4dC53YWl0Rm9yRXhpdCgpO1xuICAgIGF3YWl0IHdlYlNlcnZlci5zdG9wKCk7XG4gICAgYXdhaXQgZm9ybVRlc3RpbmdIZWxwZXJzV2ViU2VydmVyLnN0b3AoKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkRldkJ1aWxkU2VydmVyKFxuICAgIGNvbnRleHQ6IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQsXG4gICAgb3B0aW9uczogRGV2QnVpbGRTZXJ2ZXJPcHRpb25zLFxuICAgIGFsbEZhcm1Db25maWc6IEZhcm1Db25maWdbXVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGFsbEZhcm1Db25maWdbMF0gPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IEVycm9yKFwiQ29uZmlnIGNhbid0IGJlIGxlbmd0aCAwXCIpO1xuICAgIH1cblxuICAgIGxldCBlbmdpbmVEaXJlY3RvcnkgPSBcIlwiO1xuICAgIGZvciAoY29uc3QgY29uZiBvZiBhbGxGYXJtQ29uZmlnKSB7XG4gICAgICAgIGlmIChjb25mLmVuZ2luZURpcmVjdG9yeSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSA9IGNvbmYuZW5naW5lRGlyZWN0b3J5O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVuZ2luZURpcmVjdG9yeSA9PT0gXCJcIikge1xuICAgICAgICB0aHJvdyBFcnJvcihcIkFsbCBFbmdpbmUgZGlyZWN0b3J5IGlzIGVtcHR5XCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IGFsbEZhcm1Db25maWdbMF0uY2FuZHlNb2R1bGVzRGlyZWN0b3J5O1xuXG4gICAgY29uc3QgZm9ybVRlc3RpbmdIZWxwZXJzV2ViU2VydmVyID0gbmV3IEV4cHJlc3NTZXJ2ZXJXcmFwcGVyKDkwMTAsIHVuZGVmaW5lZCwgY29udGV4dC5sb2dnZXIsIFwiRm9ybXMgaGVscGVyc1wiKTtcbiAgICBmb3JtVGVzdGluZ0hlbHBlcnNXZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIoXG4gICAgICAgIG5ldyBGb3Jtc0hlbHBlckNvbnRyb2xsZXIoeyBmcm9udEVuZERldk1vZGU6IG9wdGlvbnMuZGV2ZWxvcG1lbnRNb2RlIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IHdlYlNlcnZlciA9IG5ldyBFeHByZXNzU2VydmVyV3JhcHBlcig5MDAwLCA5MDQzLCBjb250ZXh0LmxvZ2dlcik7XG4gICAgaWYgKCFvcHRpb25zLmRpc2FibGVDbGllbnRPdmVycmlkZSkge1xuICAgICAgICB3ZWJTZXJ2ZXIucmVnaXN0ZXJTaWdsZXRvbkNvbnRyb2xsZXIobmV3IEJ1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIoKSk7XG4gICAgfVxuXG4gICAgY29uc3QgYnVpbGRTZXJ2ZXJCdWlsZEZvcm1zQ29udHJvbGxlciA9IG5ldyBCdWlsZFNlcnZlckJ1aWxkRm9ybXNDb250cm9sbGVyKFxuICAgICAgICBhbGxGYXJtQ29uZmlnLFxuICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgIHRydWUsXG4gICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgb3B0aW9ucy5idWlsZERlYnVnT25seVxuICAgICk7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKGJ1aWxkU2VydmVyQnVpbGRGb3Jtc0NvbnRyb2xsZXIpO1xuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihcbiAgICAgICAgbmV3IEJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc0NvbnRyb2xsZXIoYWxsRmFybUNvbmZpZywgYnVpbGRTZXJ2ZXJCdWlsZEZvcm1zQ29udHJvbGxlcilcbiAgICApO1xuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihcbiAgICAgICAgbmV3IEV4dHJhY3RUZXh0c0Zyb21TdWdhckNvbnRyb2xsZXIoYWxsRmFybUNvbmZpZywgYnVpbGRTZXJ2ZXJCdWlsZEZvcm1zQ29udHJvbGxlcilcbiAgICApO1xuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihuZXcgQnVpbGRTZXJ2ZXJGb3JtSW5mb0NvbnRyb2xsZXIoYWxsRmFybUNvbmZpZywgdHJ1ZSwgZmFsc2UpKTtcblxuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihuZXcgQnVpbGRTZXJ2ZXJQcmVidWlsdFJlc291cmNlc0NvbnRyb2xsZXIoKSk7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKG5ldyBCdWlsZFNlcnZlclB1Ymxpc2hlZEVuZ2luZUNvbnRyb2xsZXIoY2FuZHlNb2R1bGVzRGlyZWN0b3J5KSk7XG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKFxuICAgICAgICBuZXcgQnVpbGRTZXJ2ZXJMb2NhbFNvdXJjZXNFbmdpbmVDb250cm9sbGVyKGVuZ2luZURpcmVjdG9yeSwgb3B0aW9ucy5idWlsZERlYnVnT25seSlcbiAgICApO1xuXG4gICAgd2ViU2VydmVyLnJlZ2lzdGVyU2lnbGV0b25Db250cm9sbGVyKFxuICAgICAgICBuZXcgQnVpbGRTZXJ2ZXJDbGllbnRKc0NvbnRyb2xsZXIoZW5naW5lRGlyZWN0b3J5LCBvcHRpb25zLmJ1aWxkRGVidWdPbmx5LCBvcHRpb25zLmRpc2FibGVDbGllbnRPdmVycmlkZSwge1xuICAgICAgICAgICAgZnJvbnRFbmREZXZNb2RlOiBvcHRpb25zLmRldmVsb3BtZW50TW9kZSxcbiAgICAgICAgfSlcbiAgICApO1xuICAgIHdlYlNlcnZlci5yZWdpc3RlclNpZ2xldG9uQ29udHJvbGxlcihuZXcgQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzVXBkYXRlc0NvbnRyb2xsZXIoYWxsRmFybUNvbmZpZykpO1xuICAgIGF3YWl0IGZvcm1UZXN0aW5nSGVscGVyc1dlYlNlcnZlci5zdGFydCgpO1xuICAgIGF3YWl0IHdlYlNlcnZlci5zdGFydCgpO1xuICAgIGF3YWl0IGNvbnRleHQud2FpdEZvckV4aXQoKTtcbiAgICBhd2FpdCB3ZWJTZXJ2ZXIuc3RvcCgpO1xuICAgIGF3YWl0IGZvcm1UZXN0aW5nSGVscGVyc1dlYlNlcnZlci5zdG9wKCk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQSxJQUFBQSxZQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxxQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsc0JBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGdDQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSw2QkFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssc0NBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLDZDQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxnQ0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsOEJBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLDJDQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSw4QkFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsd0NBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLHVDQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxxQ0FBQSxHQUFBYixPQUFBO0FBRU8sZUFBZWMsY0FBY0EsQ0FDaENDLE9BQWtDLEVBQ2xDQyxPQUEyQixFQUMzQkMsYUFBMkIsRUFDZDtFQUNiLElBQUFDLGtDQUFxQixFQUFDRCxhQUFhLENBQUM7RUFFcEMsSUFBSUUsZUFBZSxHQUFHLEVBQUU7RUFDeEIsS0FBSyxNQUFNQyxJQUFJLElBQUlILGFBQWEsRUFBRTtJQUM5QixJQUFJRyxJQUFJLENBQUNELGVBQWUsSUFBSUUsU0FBUyxFQUFFO01BQ25DRixlQUFlLEdBQUdDLElBQUksQ0FBQ0QsZUFBZTtNQUN0QztJQUNKO0VBQ0o7RUFDQSxJQUFJQSxlQUFlLEtBQUssRUFBRSxFQUFFO0lBQ3hCLE1BQU1HLEtBQUssQ0FBQywrQkFBK0IsQ0FBQztFQUNoRDtFQUVBLE1BQU1DLHFCQUFxQixHQUFHTixhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUNNLHFCQUFxQjtFQUVwRSxNQUFNQywyQkFBMkIsR0FBRyxJQUFJQywwQ0FBb0IsQ0FBQyxJQUFJLEVBQUVKLFNBQVMsRUFBRU4sT0FBTyxDQUFDVyxNQUFNLEVBQUUsZUFBZSxDQUFDO0VBQzlHRiwyQkFBMkIsQ0FBQ0csMEJBQTBCLENBQ2xELElBQUlDLDRDQUFxQixDQUFDO0lBQUVDLGVBQWUsRUFBRWIsT0FBTyxDQUFDYztFQUFnQixDQUFDLENBQzFFLENBQUM7RUFFRCxNQUFNQyxTQUFTLEdBQUcsSUFBSU4sMENBQW9CLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRVYsT0FBTyxDQUFDVyxNQUFNLENBQUM7RUFDdEUsSUFBSSxDQUFDVixPQUFPLENBQUNnQixxQkFBcUIsRUFBRTtJQUNoQ0QsU0FBUyxDQUFDSiwwQkFBMEIsQ0FBQyxJQUFJTSwwREFBNEIsQ0FBQyxDQUFDLENBQUM7RUFDNUU7RUFDQSxNQUFNQyxvQkFBb0IsR0FBRyxJQUFJQyxnRUFBK0IsQ0FDNURsQixhQUFhLEVBQ2JNLHFCQUFxQixFQUNyQixLQUFLLEVBQ0xKLGVBQWUsRUFDZkgsT0FBTyxDQUFDb0IsY0FBYyxFQUN0QnBCLE9BQU8sQ0FBQ3FCLE9BQ1osQ0FBQztFQUVETixTQUFTLENBQUNKLDBCQUEwQixDQUFDTyxvQkFBb0IsQ0FBQztFQUMxREgsU0FBUyxDQUFDSiwwQkFBMEIsQ0FDaEMsSUFBSVcsNEVBQXFDLENBQUNyQixhQUFhLEVBQUVpQixvQkFBb0IsQ0FDakYsQ0FBQztFQUVESCxTQUFTLENBQUNKLDBCQUEwQixDQUFDLElBQUlZLGdFQUErQixDQUFDdEIsYUFBYSxFQUFFaUIsb0JBQW9CLENBQUMsQ0FBQztFQUU5R0gsU0FBUyxDQUFDSiwwQkFBMEIsQ0FBQyxJQUFJYSw0REFBNkIsQ0FBQ3ZCLGFBQWEsRUFBRSxLQUFLLEVBQUVELE9BQU8sQ0FBQ3FCLE9BQU8sQ0FBQyxDQUFDO0VBRTlHTixTQUFTLENBQUNKLDBCQUEwQixDQUFDLElBQUljLDhFQUFzQyxDQUFDLENBQUMsQ0FBQztFQUNsRlYsU0FBUyxDQUFDSiwwQkFBMEIsQ0FBQyxJQUFJZSwwRUFBb0MsQ0FBQ25CLHFCQUFxQixDQUFDLENBQUM7RUFDckdRLFNBQVMsQ0FBQ0osMEJBQTBCLENBQ2hDLElBQUlnQixzRkFBMEMsQ0FBQzNCLE9BQU8sQ0FBQ2dCLHFCQUFxQixFQUFFO0lBQzFFSCxlQUFlLEVBQUViLE9BQU8sQ0FBQ2M7RUFDN0IsQ0FBQyxDQUNMLENBQUM7RUFDREMsU0FBUyxDQUFDSiwwQkFBMEIsQ0FBQyxJQUFJaUIsMEZBQTRDLENBQUMzQixhQUFhLENBQUMsQ0FBQztFQUNyRyxNQUFNTywyQkFBMkIsQ0FBQ3FCLEtBQUssQ0FBQyxDQUFDO0VBQ3pDLE1BQU1kLFNBQVMsQ0FBQ2MsS0FBSyxDQUFDLENBQUM7RUFDdkIsTUFBTTlCLE9BQU8sQ0FBQytCLFdBQVcsQ0FBQyxDQUFDO0VBQzNCLE1BQU1mLFNBQVMsQ0FBQ2dCLElBQUksQ0FBQyxDQUFDO0VBQ3RCLE1BQU12QiwyQkFBMkIsQ0FBQ3VCLElBQUksQ0FBQyxDQUFDO0FBQzVDO0FBRU8sZUFBZUMsaUJBQWlCQSxDQUNuQ2pDLE9BQWtDLEVBQ2xDQyxPQUE4QixFQUM5QkMsYUFBMkIsRUFDZDtFQUNiLElBQUlBLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSUksU0FBUyxFQUFFO0lBQy9CLE1BQU1DLEtBQUssQ0FBQywwQkFBMEIsQ0FBQztFQUMzQztFQUVBLElBQUlILGVBQWUsR0FBRyxFQUFFO0VBQ3hCLEtBQUssTUFBTUMsSUFBSSxJQUFJSCxhQUFhLEVBQUU7SUFDOUIsSUFBSUcsSUFBSSxDQUFDRCxlQUFlLElBQUlFLFNBQVMsRUFBRTtNQUNuQ0YsZUFBZSxHQUFHQyxJQUFJLENBQUNELGVBQWU7TUFDdEM7SUFDSjtFQUNKO0VBQ0EsSUFBSUEsZUFBZSxLQUFLLEVBQUUsRUFBRTtJQUN4QixNQUFNRyxLQUFLLENBQUMsK0JBQStCLENBQUM7RUFDaEQ7RUFFQSxNQUFNQyxxQkFBcUIsR0FBR04sYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDTSxxQkFBcUI7RUFFcEUsTUFBTUMsMkJBQTJCLEdBQUcsSUFBSUMsMENBQW9CLENBQUMsSUFBSSxFQUFFSixTQUFTLEVBQUVOLE9BQU8sQ0FBQ1csTUFBTSxFQUFFLGVBQWUsQ0FBQztFQUM5R0YsMkJBQTJCLENBQUNHLDBCQUEwQixDQUNsRCxJQUFJQyw0Q0FBcUIsQ0FBQztJQUFFQyxlQUFlLEVBQUViLE9BQU8sQ0FBQ2M7RUFBZ0IsQ0FBQyxDQUMxRSxDQUFDO0VBRUQsTUFBTUMsU0FBUyxHQUFHLElBQUlOLDBDQUFvQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUVWLE9BQU8sQ0FBQ1csTUFBTSxDQUFDO0VBQ3RFLElBQUksQ0FBQ1YsT0FBTyxDQUFDZ0IscUJBQXFCLEVBQUU7SUFDaENELFNBQVMsQ0FBQ0osMEJBQTBCLENBQUMsSUFBSU0sMERBQTRCLENBQUMsQ0FBQyxDQUFDO0VBQzVFO0VBRUEsTUFBTWdCLCtCQUErQixHQUFHLElBQUlkLGdFQUErQixDQUN2RWxCLGFBQWEsRUFDYk0scUJBQXFCLEVBQ3JCLElBQUksRUFDSkosZUFBZSxFQUNmSCxPQUFPLENBQUNvQixjQUNaLENBQUM7RUFDREwsU0FBUyxDQUFDSiwwQkFBMEIsQ0FBQ3NCLCtCQUErQixDQUFDO0VBQ3JFbEIsU0FBUyxDQUFDSiwwQkFBMEIsQ0FDaEMsSUFBSVcsNEVBQXFDLENBQUNyQixhQUFhLEVBQUVnQywrQkFBK0IsQ0FDNUYsQ0FBQztFQUNEbEIsU0FBUyxDQUFDSiwwQkFBMEIsQ0FDaEMsSUFBSVksZ0VBQStCLENBQUN0QixhQUFhLEVBQUVnQywrQkFBK0IsQ0FDdEYsQ0FBQztFQUNEbEIsU0FBUyxDQUFDSiwwQkFBMEIsQ0FBQyxJQUFJYSw0REFBNkIsQ0FBQ3ZCLGFBQWEsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7RUFFbkdjLFNBQVMsQ0FBQ0osMEJBQTBCLENBQUMsSUFBSWMsOEVBQXNDLENBQUMsQ0FBQyxDQUFDO0VBQ2xGVixTQUFTLENBQUNKLDBCQUEwQixDQUFDLElBQUllLDBFQUFvQyxDQUFDbkIscUJBQXFCLENBQUMsQ0FBQztFQUNyR1EsU0FBUyxDQUFDSiwwQkFBMEIsQ0FDaEMsSUFBSXVCLGdGQUF1QyxDQUFDL0IsZUFBZSxFQUFFSCxPQUFPLENBQUNvQixjQUFjLENBQ3ZGLENBQUM7RUFFREwsU0FBUyxDQUFDSiwwQkFBMEIsQ0FDaEMsSUFBSXdCLDREQUE2QixDQUFDaEMsZUFBZSxFQUFFSCxPQUFPLENBQUNvQixjQUFjLEVBQUVwQixPQUFPLENBQUNnQixxQkFBcUIsRUFBRTtJQUN0R0gsZUFBZSxFQUFFYixPQUFPLENBQUNjO0VBQzdCLENBQUMsQ0FDTCxDQUFDO0VBQ0RDLFNBQVMsQ0FBQ0osMEJBQTBCLENBQUMsSUFBSWlCLDBGQUE0QyxDQUFDM0IsYUFBYSxDQUFDLENBQUM7RUFDckcsTUFBTU8sMkJBQTJCLENBQUNxQixLQUFLLENBQUMsQ0FBQztFQUN6QyxNQUFNZCxTQUFTLENBQUNjLEtBQUssQ0FBQyxDQUFDO0VBQ3ZCLE1BQU05QixPQUFPLENBQUMrQixXQUFXLENBQUMsQ0FBQztFQUMzQixNQUFNZixTQUFTLENBQUNnQixJQUFJLENBQUMsQ0FBQztFQUN0QixNQUFNdkIsMkJBQTJCLENBQUN1QixJQUFJLENBQUMsQ0FBQztBQUM1QyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunBuildServer.js","names":["_TypingUtils","require","_ExpressServerWrapper","_FormsHelperController","_ExtractTextsFromSugarController","_BuildLogsWebsocketController","_BuildServerBackendResourcesController","_BuildServerBackendResourcesUpdatesController","_BuildServerBuildFormsController","_BuildServerClientJsController","_BuildServerClientJsFromResourcesController","_BuildServerFormInfoController","_BuildServerLocalSourcesEngineController","_BuildServerPrebuiltResourcesController","_BuildServerPublishedEngineController","runBuildServer","context","options","allFarmConfig","ensureArrayIsNotEmpty","engineDirectory","conf","undefined","Error","candyModulesDirectory","formTestingHelpersWebServer","ExpressServerWrapper","logger","registerSigletonController","FormsHelperController","frontEndDevMode","developmentMode","webServer","disableClientOverride","BuildLogsWebsocketController","buildFormsController","BuildServerBuildFormsController","buildDebugOnly","nightly","BuildServerBackendResourcesController","ExtractTextsFromSugarController","BuildServerFormInfoController","BuildServerPrebuiltResourcesController","BuildServerPublishedEngineController","BuildServerClientJsFromResourcesController","BuildServerBackendResourcesUpdatesController","start","waitForExit","stop","runDevBuildServer","buildServerBuildFormsController","BuildServerLocalSourcesEngineController","BuildServerClientJsController"],"sources":["../../../../../src/CLICommands/BuildServer/RunBuildServer.ts"],"sourcesContent":["import { FarmConfig } from \"Tools/src/CandyCLI\";\n\nimport { ensureArrayIsNotEmpty } from \"../../../../Common/TypingUtils\";\nimport { ConsoleApplicationContext } from \"../../Commons/ConsoleApplication/ConsoleApplicationContext\";\nimport { ExpressServerWrapper } from \"../../Commons/HttpServer/ExpressWrapper/ExpressServerWrapper\";\nimport { FormsHelperController } from \"../FormsHelper/FormsHelperController\";\nimport { ExtractTextsFromSugarController } from \"../SugarExtractor/ExtractTextsFromSugarController\";\n\nimport { BuildLogsWebsocketController } from \"./BuildLogsWebsocketController\";\nimport { BuildServerOptions, DevBuildServerOptions } from \"./BuildServerServerOptions\";\nimport { BuildServerBackendResourcesController } from \"./ResourcesControllers/BuildServerBackendResourcesController\";\nimport { BuildServerBackendResourcesUpdatesController } from \"./ResourcesControllers/BuildServerBackendResourcesUpdatesController\";\nimport { BuildServerBuildFormsController } from \"./ResourcesControllers/BuildServerBuildFormsController\";\nimport { BuildServerClientJsController } from \"./ResourcesControllers/BuildServerClientJsController\";\nimport { BuildServerClientJsFromResourcesController } from \"./ResourcesControllers/BuildServerClientJsFromResourcesController\";\nimport { BuildServerFormInfoController } from \"./ResourcesControllers/BuildServerFormInfoController\";\nimport { BuildServerLocalSourcesEngineController } from \"./ResourcesControllers/BuildServerLocalSourcesEngineController\";\nimport { BuildServerPrebuiltResourcesController } from \"./ResourcesControllers/BuildServerPrebuiltResourcesController\";\nimport { BuildServerPublishedEngineController } from \"./ResourcesControllers/BuildServerPublishedEngineController\";\n\nexport async function runBuildServer(\n context: ConsoleApplicationContext,\n options: BuildServerOptions,\n allFarmConfig: FarmConfig[]\n): Promise<void> {\n ensureArrayIsNotEmpty(allFarmConfig);\n\n let engineDirectory = \"\";\n for (const conf of allFarmConfig) {\n if (conf.engineDirectory != undefined) {\n engineDirectory = conf.engineDirectory;\n break;\n }\n }\n if (engineDirectory === \"\") {\n throw Error(\"All Engine directory is empty\");\n }\n\n const candyModulesDirectory = allFarmConfig[0].candyModulesDirectory;\n\n const formTestingHelpersWebServer = new ExpressServerWrapper(9010, undefined, context.logger, \"Forms helpers\");\n formTestingHelpersWebServer.registerSigletonController(\n new FormsHelperController({ frontEndDevMode: options.developmentMode })\n );\n\n const webServer = new ExpressServerWrapper(9000, 9043, context.logger);\n if (!options.disableClientOverride) {\n webServer.registerSigletonController(new BuildLogsWebsocketController());\n }\n const buildFormsController = new BuildServerBuildFormsController(\n allFarmConfig,\n candyModulesDirectory,\n false,\n engineDirectory,\n options.buildDebugOnly,\n options.nightly\n );\n\n webServer.registerSigletonController(buildFormsController);\n webServer.registerSigletonController(\n new BuildServerBackendResourcesController(allFarmConfig, buildFormsController)\n );\n\n webServer.registerSigletonController(new ExtractTextsFromSugarController(allFarmConfig, buildFormsController));\n\n webServer.registerSigletonController(new BuildServerFormInfoController(allFarmConfig, false, options.nightly));\n\n webServer.registerSigletonController(new BuildServerPrebuiltResourcesController());\n webServer.registerSigletonController(new BuildServerPublishedEngineController(candyModulesDirectory));\n webServer.registerSigletonController(\n new BuildServerClientJsFromResourcesController(options.disableClientOverride, {\n frontEndDevMode: options.developmentMode,\n })\n );\n webServer.registerSigletonController(new BuildServerBackendResourcesUpdatesController(allFarmConfig));\n await formTestingHelpersWebServer.start();\n await webServer.start();\n await context.waitForExit();\n await webServer.stop();\n await formTestingHelpersWebServer.stop();\n}\n\nexport async function runDevBuildServer(\n context: ConsoleApplicationContext,\n options: DevBuildServerOptions,\n allFarmConfig: FarmConfig[]\n): Promise<void> {\n if (allFarmConfig[0] == undefined) {\n throw Error(\"Config can't be length 0\");\n }\n\n let engineDirectory = \"\";\n for (const conf of allFarmConfig) {\n if (conf.engineDirectory != undefined) {\n engineDirectory = conf.engineDirectory;\n break;\n }\n }\n if (engineDirectory === \"\") {\n throw Error(\"All Engine directory is empty\");\n }\n\n const candyModulesDirectory = allFarmConfig[0].candyModulesDirectory;\n\n const formTestingHelpersWebServer = new ExpressServerWrapper(9010, undefined, context.logger, \"Forms helpers\");\n formTestingHelpersWebServer.registerSigletonController(\n new FormsHelperController({ frontEndDevMode: options.developmentMode })\n );\n\n const webServer = new ExpressServerWrapper(9000, 9043, context.logger);\n if (!options.disableClientOverride) {\n webServer.registerSigletonController(new BuildLogsWebsocketController());\n }\n\n const buildServerBuildFormsController = new BuildServerBuildFormsController(\n allFarmConfig,\n candyModulesDirectory,\n true,\n engineDirectory,\n options.buildDebugOnly\n );\n webServer.registerSigletonController(buildServerBuildFormsController);\n webServer.registerSigletonController(\n new BuildServerBackendResourcesController(allFarmConfig, buildServerBuildFormsController)\n );\n webServer.registerSigletonController(\n new ExtractTextsFromSugarController(allFarmConfig, buildServerBuildFormsController)\n );\n webServer.registerSigletonController(new BuildServerFormInfoController(allFarmConfig, true, false));\n\n webServer.registerSigletonController(new BuildServerPrebuiltResourcesController());\n webServer.registerSigletonController(new BuildServerPublishedEngineController(candyModulesDirectory));\n webServer.registerSigletonController(\n new BuildServerLocalSourcesEngineController(engineDirectory, options.buildDebugOnly)\n );\n\n webServer.registerSigletonController(\n new BuildServerClientJsController(engineDirectory, options.buildDebugOnly, options.disableClientOverride, {\n frontEndDevMode: options.developmentMode,\n })\n );\n webServer.registerSigletonController(new BuildServerBackendResourcesUpdatesController(allFarmConfig));\n await formTestingHelpersWebServer.start();\n await webServer.start();\n await context.waitForExit();\n await webServer.stop();\n await formTestingHelpersWebServer.stop();\n}\n"],"mappings":";;;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,gCAAA,GAAAH,OAAA;AAEA,IAAAI,6BAAA,GAAAJ,OAAA;AAEA,IAAAK,sCAAA,GAAAL,OAAA;AACA,IAAAM,6CAAA,GAAAN,OAAA;AACA,IAAAO,gCAAA,GAAAP,OAAA;AACA,IAAAQ,8BAAA,GAAAR,OAAA;AACA,IAAAS,2CAAA,GAAAT,OAAA;AACA,IAAAU,8BAAA,GAAAV,OAAA;AACA,IAAAW,wCAAA,GAAAX,OAAA;AACA,IAAAY,uCAAA,GAAAZ,OAAA;AACA,IAAAa,qCAAA,GAAAb,OAAA;AAEO,eAAec,cAAcA,CAChCC,OAAkC,EAClCC,OAA2B,EAC3BC,aAA2B,EACd;EACb,IAAAC,kCAAqB,EAACD,aAAa,CAAC;EAEpC,IAAIE,eAAe,GAAG,EAAE;EACxB,KAAK,MAAMC,IAAI,IAAIH,aAAa,EAAE;IAC9B,IAAIG,IAAI,CAACD,eAAe,IAAIE,SAAS,EAAE;MACnCF,eAAe,GAAGC,IAAI,CAACD,eAAe;MACtC;IACJ;EACJ;EACA,IAAIA,eAAe,KAAK,EAAE,EAAE;IACxB,MAAMG,KAAK,CAAC,+BAA+B,CAAC;EAChD;EAEA,MAAMC,qBAAqB,GAAGN,aAAa,CAAC,CAAC,CAAC,CAACM,qBAAqB;EAEpE,MAAMC,2BAA2B,GAAG,IAAIC,0CAAoB,CAAC,IAAI,EAAEJ,SAAS,EAAEN,OAAO,CAACW,MAAM,EAAE,eAAe,CAAC;EAC9GF,2BAA2B,CAACG,0BAA0B,CAClD,IAAIC,4CAAqB,CAAC;IAAEC,eAAe,EAAEb,OAAO,CAACc;EAAgB,CAAC,CAC1E,CAAC;EAED,MAAMC,SAAS,GAAG,IAAIN,0CAAoB,CAAC,IAAI,EAAE,IAAI,EAAEV,OAAO,CAACW,MAAM,CAAC;EACtE,IAAI,CAACV,OAAO,CAACgB,qBAAqB,EAAE;IAChCD,SAAS,CAACJ,0BAA0B,CAAC,IAAIM,0DAA4B,CAAC,CAAC,CAAC;EAC5E;EACA,MAAMC,oBAAoB,GAAG,IAAIC,gEAA+B,CAC5DlB,aAAa,EACbM,qBAAqB,EACrB,KAAK,EACLJ,eAAe,EACfH,OAAO,CAACoB,cAAc,EACtBpB,OAAO,CAACqB,OACZ,CAAC;EAEDN,SAAS,CAACJ,0BAA0B,CAACO,oBAAoB,CAAC;EAC1DH,SAAS,CAACJ,0BAA0B,CAChC,IAAIW,4EAAqC,CAACrB,aAAa,EAAEiB,oBAAoB,CACjF,CAAC;EAEDH,SAAS,CAACJ,0BAA0B,CAAC,IAAIY,gEAA+B,CAACtB,aAAa,EAAEiB,oBAAoB,CAAC,CAAC;EAE9GH,SAAS,CAACJ,0BAA0B,CAAC,IAAIa,4DAA6B,CAACvB,aAAa,EAAE,KAAK,EAAED,OAAO,CAACqB,OAAO,CAAC,CAAC;EAE9GN,SAAS,CAACJ,0BAA0B,CAAC,IAAIc,8EAAsC,CAAC,CAAC,CAAC;EAClFV,SAAS,CAACJ,0BAA0B,CAAC,IAAIe,0EAAoC,CAACnB,qBAAqB,CAAC,CAAC;EACrGQ,SAAS,CAACJ,0BAA0B,CAChC,IAAIgB,sFAA0C,CAAC3B,OAAO,CAACgB,qBAAqB,EAAE;IAC1EH,eAAe,EAAEb,OAAO,CAACc;EAC7B,CAAC,CACL,CAAC;EACDC,SAAS,CAACJ,0BAA0B,CAAC,IAAIiB,0FAA4C,CAAC3B,aAAa,CAAC,CAAC;EACrG,MAAMO,2BAA2B,CAACqB,KAAK,CAAC,CAAC;EACzC,MAAMd,SAAS,CAACc,KAAK,CAAC,CAAC;EACvB,MAAM9B,OAAO,CAAC+B,WAAW,CAAC,CAAC;EAC3B,MAAMf,SAAS,CAACgB,IAAI,CAAC,CAAC;EACtB,MAAMvB,2BAA2B,CAACuB,IAAI,CAAC,CAAC;AAC5C;AAEO,eAAeC,iBAAiBA,CACnCjC,OAAkC,EAClCC,OAA8B,EAC9BC,aAA2B,EACd;EACb,IAAIA,aAAa,CAAC,CAAC,CAAC,IAAII,SAAS,EAAE;IAC/B,MAAMC,KAAK,CAAC,0BAA0B,CAAC;EAC3C;EAEA,IAAIH,eAAe,GAAG,EAAE;EACxB,KAAK,MAAMC,IAAI,IAAIH,aAAa,EAAE;IAC9B,IAAIG,IAAI,CAACD,eAAe,IAAIE,SAAS,EAAE;MACnCF,eAAe,GAAGC,IAAI,CAACD,eAAe;MACtC;IACJ;EACJ;EACA,IAAIA,eAAe,KAAK,EAAE,EAAE;IACxB,MAAMG,KAAK,CAAC,+BAA+B,CAAC;EAChD;EAEA,MAAMC,qBAAqB,GAAGN,aAAa,CAAC,CAAC,CAAC,CAACM,qBAAqB;EAEpE,MAAMC,2BAA2B,GAAG,IAAIC,0CAAoB,CAAC,IAAI,EAAEJ,SAAS,EAAEN,OAAO,CAACW,MAAM,EAAE,eAAe,CAAC;EAC9GF,2BAA2B,CAACG,0BAA0B,CAClD,IAAIC,4CAAqB,CAAC;IAAEC,eAAe,EAAEb,OAAO,CAACc;EAAgB,CAAC,CAC1E,CAAC;EAED,MAAMC,SAAS,GAAG,IAAIN,0CAAoB,CAAC,IAAI,EAAE,IAAI,EAAEV,OAAO,CAACW,MAAM,CAAC;EACtE,IAAI,CAACV,OAAO,CAACgB,qBAAqB,EAAE;IAChCD,SAAS,CAACJ,0BAA0B,CAAC,IAAIM,0DAA4B,CAAC,CAAC,CAAC;EAC5E;EAEA,MAAMgB,+BAA+B,GAAG,IAAId,gEAA+B,CACvElB,aAAa,EACbM,qBAAqB,EACrB,IAAI,EACJJ,eAAe,EACfH,OAAO,CAACoB,cACZ,CAAC;EACDL,SAAS,CAACJ,0BAA0B,CAACsB,+BAA+B,CAAC;EACrElB,SAAS,CAACJ,0BAA0B,CAChC,IAAIW,4EAAqC,CAACrB,aAAa,EAAEgC,+BAA+B,CAC5F,CAAC;EACDlB,SAAS,CAACJ,0BAA0B,CAChC,IAAIY,gEAA+B,CAACtB,aAAa,EAAEgC,+BAA+B,CACtF,CAAC;EACDlB,SAAS,CAACJ,0BAA0B,CAAC,IAAIa,4DAA6B,CAACvB,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;EAEnGc,SAAS,CAACJ,0BAA0B,CAAC,IAAIc,8EAAsC,CAAC,CAAC,CAAC;EAClFV,SAAS,CAACJ,0BAA0B,CAAC,IAAIe,0EAAoC,CAACnB,qBAAqB,CAAC,CAAC;EACrGQ,SAAS,CAACJ,0BAA0B,CAChC,IAAIuB,gFAAuC,CAAC/B,eAAe,EAAEH,OAAO,CAACoB,cAAc,CACvF,CAAC;EAEDL,SAAS,CAACJ,0BAA0B,CAChC,IAAIwB,4DAA6B,CAAChC,eAAe,EAAEH,OAAO,CAACoB,cAAc,EAAEpB,OAAO,CAACgB,qBAAqB,EAAE;IACtGH,eAAe,EAAEb,OAAO,CAACc;EAC7B,CAAC,CACL,CAAC;EACDC,SAAS,CAACJ,0BAA0B,CAAC,IAAIiB,0FAA4C,CAAC3B,aAAa,CAAC,CAAC;EACrG,MAAMO,2BAA2B,CAACqB,KAAK,CAAC,CAAC;EACzC,MAAMd,SAAS,CAACc,KAAK,CAAC,CAAC;EACvB,MAAM9B,OAAO,CAAC+B,WAAW,CAAC,CAAC;EAC3B,MAAMf,SAAS,CAACgB,IAAI,CAAC,CAAC;EACtB,MAAMvB,2BAA2B,CAACuB,IAAI,CAAC,CAAC;AAC5C","ignoreList":[]}
@@ -47,4 +47,4 @@ function interceptStdStreams(stdoutIntercept, stderrIntercept = stdoutIntercept)
47
47
  process.stderr.write = old_stderr_write;
48
48
  };
49
49
  }
50
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsImludGVyY2VwdFN0ZFN0cmVhbXMiLCJzdGRvdXRJbnRlcmNlcHQiLCJzdGRlcnJJbnRlcmNlcHQiLCJvbGRfc3Rkb3V0X3dyaXRlIiwicHJvY2VzcyIsInN0ZG91dCIsIndyaXRlIiwib2xkX3N0ZGVycl93cml0ZSIsInN0ZGVyciIsInN0cmluZyIsImVuY29kaW5nIiwiZmQiLCJhcmdzIiwidG9BcnJheSIsImFyZ3VtZW50cyIsImludGVyY2VwdG9yIiwiYXBwbHkiLCJzdHIiLCJjYWxsYmFjayIsInJlc3VsdCIsInJlcGxhY2UiLCJ0ZXN0IiwidW5ob29rIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1N0ZFN0cmVhbXNJbnRlcmNlcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0b0FycmF5IH0gZnJvbSBcImxvZGFzaFwiO1xuXG50eXBlIEhvb2tDYWxsYmFjayA9ICgodGV4dDogc3RyaW5nKSA9PiBzdHJpbmcpIHwgKCh0ZXh0OiBzdHJpbmcpID0+IHZvaWQpO1xuXG5leHBvcnQgZnVuY3Rpb24gaW50ZXJjZXB0U3RkU3RyZWFtcyhcbiAgICBzdGRvdXRJbnRlcmNlcHQ6IEhvb2tDYWxsYmFjayxcbiAgICBzdGRlcnJJbnRlcmNlcHQ6IEhvb2tDYWxsYmFjayA9IHN0ZG91dEludGVyY2VwdFxuKTogKCkgPT4gdm9pZCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZFxuICAgIGNvbnN0IG9sZF9zdGRvdXRfd3JpdGUgPSBwcm9jZXNzLnN0ZG91dC53cml0ZTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3VuYm91bmQtbWV0aG9kXG4gICAgY29uc3Qgb2xkX3N0ZGVycl93cml0ZSA9IHByb2Nlc3Muc3RkZXJyLndyaXRlO1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUgPSAoZnVuY3Rpb24od3JpdGUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0cmluZzogYW55LCBlbmNvZGluZzogYW55LCBmZDogYW55KTogYW55IHtcbiAgICAgICAgICAgIGNvbnN0IGFyZ3MgPSB0b0FycmF5KGFyZ3VtZW50cyk7XG4gICAgICAgICAgICBhcmdzWzBdID0gaW50ZXJjZXB0b3Ioc3RyaW5nLCBzdGRvdXRJbnRlcmNlcHQpO1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgd3JpdGUuYXBwbHkocHJvY2Vzcy5zdGRvdXQsIGFyZ3MpO1xuICAgICAgICB9O1xuICAgIH0pKHByb2Nlc3Muc3Rkb3V0LndyaXRlKTtcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBwcm9jZXNzLnN0ZGVyci53cml0ZSA9IChmdW5jdGlvbih3cml0ZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24oc3RyaW5nOiBhbnksIGVuY29kaW5nOiBhbnksIGZkOiBhbnkpIHtcbiAgICAgICAgICAgIGNvbnN0IGFyZ3MgPSB0b0FycmF5KGFyZ3VtZW50cyk7XG4gICAgICAgICAgICBhcmdzWzBdID0gaW50ZXJjZXB0b3Ioc3RyaW5nLCBzdGRlcnJJbnRlcmNlcHQpO1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgd3JpdGUuYXBwbHkocHJvY2Vzcy5zdGRlcnIsIGFyZ3MpO1xuICAgICAgICB9O1xuICAgIH0pKHByb2Nlc3Muc3RkZXJyLndyaXRlKTtcblxuICAgIC8qIGVzbGludC1lbmFibGUgKi9cblxuICAgIGZ1bmN0aW9uIGludGVyY2VwdG9yKHN0cjogc3RyaW5nLCBjYWxsYmFjazogSG9va0NhbGxiYWNrKTogc3RyaW5nIHtcbiAgICAgICAgLy8gb25seSBpbnRlcmNlcHQgdGhlIHN0cmluZ1xuICAgICAgICBjb25zdCByZXN1bHQgPSBjYWxsYmFjayhzdHIpO1xuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZXBsYWNlKC9cXG4kLywgXCJcIikgKyAocmVzdWx0ICYmIC9cXG4kLy50ZXN0KHN0cikgPyBcIlxcblwiIDogXCJcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gdW5ob29rKCk6IHZvaWQge1xuICAgICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZSA9IG9sZF9zdGRvdXRfd3JpdGU7XG4gICAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlID0gb2xkX3N0ZGVycl93cml0ZTtcbiAgICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFJTyxTQUFTQyxtQkFBbUJBLENBQy9CQyxlQUE2QixFQUM3QkMsZUFBNkIsR0FBR0QsZUFBZSxFQUNyQztFQUNWO0VBQ0EsTUFBTUUsZ0JBQWdCLEdBQUdDLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxLQUFLO0VBQzdDO0VBQ0EsTUFBTUMsZ0JBQWdCLEdBQUdILE9BQU8sQ0FBQ0ksTUFBTSxDQUFDRixLQUFLOztFQUU3QztFQUNBO0VBQ0FGLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxLQUFLLEdBQUksVUFBU0EsS0FBSyxFQUFFO0lBQ3BDLE9BQU8sVUFBU0csTUFBVyxFQUFFQyxRQUFhLEVBQUVDLEVBQU8sRUFBTztNQUN0RCxNQUFNQyxJQUFJLEdBQUcsSUFBQUMsZUFBTyxFQUFDQyxTQUFTLENBQUM7TUFDL0JGLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBR0csV0FBVyxDQUFDTixNQUFNLEVBQUVSLGVBQWUsQ0FBQztNQUM5QztNQUNBSyxLQUFLLENBQUNVLEtBQUssQ0FBQ1osT0FBTyxDQUFDQyxNQUFNLEVBQUVPLElBQUksQ0FBQztJQUNyQyxDQUFDO0VBQ0wsQ0FBQyxDQUFFUixPQUFPLENBQUNDLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDOztFQUV4QjtFQUNBRixPQUFPLENBQUNJLE1BQU0sQ0FBQ0YsS0FBSyxHQUFJLFVBQVNBLEtBQUssRUFBRTtJQUNwQyxPQUFPLFVBQVNHLE1BQVcsRUFBRUMsUUFBYSxFQUFFQyxFQUFPLEVBQUU7TUFDakQsTUFBTUMsSUFBSSxHQUFHLElBQUFDLGVBQU8sRUFBQ0MsU0FBUyxDQUFDO01BQy9CRixJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUdHLFdBQVcsQ0FBQ04sTUFBTSxFQUFFUCxlQUFlLENBQUM7TUFDOUM7TUFDQUksS0FBSyxDQUFDVSxLQUFLLENBQUNaLE9BQU8sQ0FBQ0ksTUFBTSxFQUFFSSxJQUFJLENBQUM7SUFDckMsQ0FBQztFQUNMLENBQUMsQ0FBRVIsT0FBTyxDQUFDSSxNQUFNLENBQUNGLEtBQUssQ0FBQzs7RUFFeEI7O0VBRUEsU0FBU1MsV0FBV0EsQ0FBQ0UsR0FBVyxFQUFFQyxRQUFzQixFQUFVO0lBQzlEO0lBQ0EsTUFBTUMsTUFBTSxHQUFHRCxRQUFRLENBQUNELEdBQUcsQ0FBQztJQUM1QixJQUFJLE9BQU9FLE1BQU0sS0FBSyxRQUFRLEVBQUU7TUFDNUIsT0FBT0EsTUFBTSxDQUFDQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJRCxNQUFNLElBQUksS0FBSyxDQUFDRSxJQUFJLENBQUNKLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDOUU7SUFDQSxPQUFPQSxHQUFHO0VBQ2Q7RUFFQSxPQUFPLFNBQVNLLE1BQU1BLENBQUEsRUFBUztJQUMzQmxCLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxLQUFLLEdBQUdILGdCQUFnQjtJQUN2Q0MsT0FBTyxDQUFDSSxNQUFNLENBQUNGLEtBQUssR0FBR0MsZ0JBQWdCO0VBQzNDLENBQUM7QUFDTCJ9
50
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsImludGVyY2VwdFN0ZFN0cmVhbXMiLCJzdGRvdXRJbnRlcmNlcHQiLCJzdGRlcnJJbnRlcmNlcHQiLCJvbGRfc3Rkb3V0X3dyaXRlIiwicHJvY2VzcyIsInN0ZG91dCIsIndyaXRlIiwib2xkX3N0ZGVycl93cml0ZSIsInN0ZGVyciIsInN0cmluZyIsImVuY29kaW5nIiwiZmQiLCJhcmdzIiwidG9BcnJheSIsImFyZ3VtZW50cyIsImludGVyY2VwdG9yIiwiYXBwbHkiLCJzdHIiLCJjYWxsYmFjayIsInJlc3VsdCIsInJlcGxhY2UiLCJ0ZXN0IiwidW5ob29rIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1N0ZFN0cmVhbXNJbnRlcmNlcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0b0FycmF5IH0gZnJvbSBcImxvZGFzaFwiO1xuXG50eXBlIEhvb2tDYWxsYmFjayA9ICgodGV4dDogc3RyaW5nKSA9PiBzdHJpbmcpIHwgKCh0ZXh0OiBzdHJpbmcpID0+IHZvaWQpO1xuXG5leHBvcnQgZnVuY3Rpb24gaW50ZXJjZXB0U3RkU3RyZWFtcyhcbiAgICBzdGRvdXRJbnRlcmNlcHQ6IEhvb2tDYWxsYmFjayxcbiAgICBzdGRlcnJJbnRlcmNlcHQ6IEhvb2tDYWxsYmFjayA9IHN0ZG91dEludGVyY2VwdFxuKTogKCkgPT4gdm9pZCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZFxuICAgIGNvbnN0IG9sZF9zdGRvdXRfd3JpdGUgPSBwcm9jZXNzLnN0ZG91dC53cml0ZTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3VuYm91bmQtbWV0aG9kXG4gICAgY29uc3Qgb2xkX3N0ZGVycl93cml0ZSA9IHByb2Nlc3Muc3RkZXJyLndyaXRlO1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUgPSAoZnVuY3Rpb24od3JpdGUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0cmluZzogYW55LCBlbmNvZGluZzogYW55LCBmZDogYW55KTogYW55IHtcbiAgICAgICAgICAgIGNvbnN0IGFyZ3MgPSB0b0FycmF5KGFyZ3VtZW50cyk7XG4gICAgICAgICAgICBhcmdzWzBdID0gaW50ZXJjZXB0b3Ioc3RyaW5nLCBzdGRvdXRJbnRlcmNlcHQpO1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgd3JpdGUuYXBwbHkocHJvY2Vzcy5zdGRvdXQsIGFyZ3MpO1xuICAgICAgICB9O1xuICAgIH0pKHByb2Nlc3Muc3Rkb3V0LndyaXRlKTtcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBwcm9jZXNzLnN0ZGVyci53cml0ZSA9IChmdW5jdGlvbih3cml0ZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24oc3RyaW5nOiBhbnksIGVuY29kaW5nOiBhbnksIGZkOiBhbnkpIHtcbiAgICAgICAgICAgIGNvbnN0IGFyZ3MgPSB0b0FycmF5KGFyZ3VtZW50cyk7XG4gICAgICAgICAgICBhcmdzWzBdID0gaW50ZXJjZXB0b3Ioc3RyaW5nLCBzdGRlcnJJbnRlcmNlcHQpO1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgd3JpdGUuYXBwbHkocHJvY2Vzcy5zdGRlcnIsIGFyZ3MpO1xuICAgICAgICB9O1xuICAgIH0pKHByb2Nlc3Muc3RkZXJyLndyaXRlKTtcblxuICAgIC8qIGVzbGludC1lbmFibGUgKi9cblxuICAgIGZ1bmN0aW9uIGludGVyY2VwdG9yKHN0cjogc3RyaW5nLCBjYWxsYmFjazogSG9va0NhbGxiYWNrKTogc3RyaW5nIHtcbiAgICAgICAgLy8gb25seSBpbnRlcmNlcHQgdGhlIHN0cmluZ1xuICAgICAgICBjb25zdCByZXN1bHQgPSBjYWxsYmFjayhzdHIpO1xuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZXBsYWNlKC9cXG4kLywgXCJcIikgKyAocmVzdWx0ICYmIC9cXG4kLy50ZXN0KHN0cikgPyBcIlxcblwiIDogXCJcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gdW5ob29rKCk6IHZvaWQge1xuICAgICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZSA9IG9sZF9zdGRvdXRfd3JpdGU7XG4gICAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlID0gb2xkX3N0ZGVycl93cml0ZTtcbiAgICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFJTyxTQUFTQyxtQkFBbUJBLENBQy9CQyxlQUE2QixFQUM3QkMsZUFBNkIsR0FBR0QsZUFBZSxFQUNyQztFQUNWO0VBQ0EsTUFBTUUsZ0JBQWdCLEdBQUdDLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxLQUFLO0VBQzdDO0VBQ0EsTUFBTUMsZ0JBQWdCLEdBQUdILE9BQU8sQ0FBQ0ksTUFBTSxDQUFDRixLQUFLOztFQUU3QztFQUNBO0VBQ0FGLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxLQUFLLEdBQUksVUFBU0EsS0FBSyxFQUFFO0lBQ3BDLE9BQU8sVUFBU0csTUFBVyxFQUFFQyxRQUFhLEVBQUVDLEVBQU8sRUFBTztNQUN0RCxNQUFNQyxJQUFJLEdBQUcsSUFBQUMsZUFBTyxFQUFDQyxTQUFTLENBQUM7TUFDL0JGLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBR0csV0FBVyxDQUFDTixNQUFNLEVBQUVSLGVBQWUsQ0FBQztNQUM5QztNQUNBSyxLQUFLLENBQUNVLEtBQUssQ0FBQ1osT0FBTyxDQUFDQyxNQUFNLEVBQUVPLElBQUksQ0FBQztJQUNyQyxDQUFDO0VBQ0wsQ0FBQyxDQUFFUixPQUFPLENBQUNDLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDOztFQUV4QjtFQUNBRixPQUFPLENBQUNJLE1BQU0sQ0FBQ0YsS0FBSyxHQUFJLFVBQVNBLEtBQUssRUFBRTtJQUNwQyxPQUFPLFVBQVNHLE1BQVcsRUFBRUMsUUFBYSxFQUFFQyxFQUFPLEVBQUU7TUFDakQsTUFBTUMsSUFBSSxHQUFHLElBQUFDLGVBQU8sRUFBQ0MsU0FBUyxDQUFDO01BQy9CRixJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUdHLFdBQVcsQ0FBQ04sTUFBTSxFQUFFUCxlQUFlLENBQUM7TUFDOUM7TUFDQUksS0FBSyxDQUFDVSxLQUFLLENBQUNaLE9BQU8sQ0FBQ0ksTUFBTSxFQUFFSSxJQUFJLENBQUM7SUFDckMsQ0FBQztFQUNMLENBQUMsQ0FBRVIsT0FBTyxDQUFDSSxNQUFNLENBQUNGLEtBQUssQ0FBQzs7RUFFeEI7O0VBRUEsU0FBU1MsV0FBV0EsQ0FBQ0UsR0FBVyxFQUFFQyxRQUFzQixFQUFVO0lBQzlEO0lBQ0EsTUFBTUMsTUFBTSxHQUFHRCxRQUFRLENBQUNELEdBQUcsQ0FBQztJQUM1QixJQUFJLE9BQU9FLE1BQU0sS0FBSyxRQUFRLEVBQUU7TUFDNUIsT0FBT0EsTUFBTSxDQUFDQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJRCxNQUFNLElBQUksS0FBSyxDQUFDRSxJQUFJLENBQUNKLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDOUU7SUFDQSxPQUFPQSxHQUFHO0VBQ2Q7RUFFQSxPQUFPLFNBQVNLLE1BQU1BLENBQUEsRUFBUztJQUMzQmxCLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxLQUFLLEdBQUdILGdCQUFnQjtJQUN2Q0MsT0FBTyxDQUFDSSxNQUFNLENBQUNGLEtBQUssR0FBR0MsZ0JBQWdCO0VBQzNDLENBQUM7QUFDTCIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StdStreamsIntercepter.js","names":["_lodash","require","interceptStdStreams","stdoutIntercept","stderrIntercept","old_stdout_write","process","stdout","write","old_stderr_write","stderr","string","encoding","fd","args","toArray","arguments","interceptor","apply","str","callback","result","replace","test","unhook"],"sources":["../../../../../src/CLICommands/BuildServer/StdStreamsIntercepter.ts"],"sourcesContent":["import { toArray } from \"lodash\";\n\ntype HookCallback = ((text: string) => string) | ((text: string) => void);\n\nexport function interceptStdStreams(\n stdoutIntercept: HookCallback,\n stderrIntercept: HookCallback = stdoutIntercept\n): () => void {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const old_stdout_write = process.stdout.write;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const old_stderr_write = process.stderr.write;\n\n /* eslint-disable */\n // @ts-ignore\n process.stdout.write = (function(write) {\n return function(string: any, encoding: any, fd: any): any {\n const args = toArray(arguments);\n args[0] = interceptor(string, stdoutIntercept);\n // @ts-ignore\n write.apply(process.stdout, args);\n };\n })(process.stdout.write);\n\n // @ts-ignore\n process.stderr.write = (function(write) {\n return function(string: any, encoding: any, fd: any) {\n const args = toArray(arguments);\n args[0] = interceptor(string, stderrIntercept);\n // @ts-ignore\n write.apply(process.stderr, args);\n };\n })(process.stderr.write);\n\n /* eslint-enable */\n\n function interceptor(str: string, callback: HookCallback): string {\n // only intercept the string\n const result = callback(str);\n if (typeof result === \"string\") {\n return result.replace(/\\n$/, \"\") + (result && /\\n$/.test(str) ? \"\\n\" : \"\");\n }\n return str;\n }\n\n return function unhook(): void {\n process.stdout.write = old_stdout_write;\n process.stderr.write = old_stderr_write;\n };\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAIO,SAASC,mBAAmBA,CAC/BC,eAA6B,EAC7BC,eAA6B,GAAGD,eAAe,EACrC;EACV;EACA,MAAME,gBAAgB,GAAGC,OAAO,CAACC,MAAM,CAACC,KAAK;EAC7C;EACA,MAAMC,gBAAgB,GAAGH,OAAO,CAACI,MAAM,CAACF,KAAK;;EAE7C;EACA;EACAF,OAAO,CAACC,MAAM,CAACC,KAAK,GAAI,UAASA,KAAK,EAAE;IACpC,OAAO,UAASG,MAAW,EAAEC,QAAa,EAAEC,EAAO,EAAO;MACtD,MAAMC,IAAI,GAAG,IAAAC,eAAO,EAACC,SAAS,CAAC;MAC/BF,IAAI,CAAC,CAAC,CAAC,GAAGG,WAAW,CAACN,MAAM,EAAER,eAAe,CAAC;MAC9C;MACAK,KAAK,CAACU,KAAK,CAACZ,OAAO,CAACC,MAAM,EAAEO,IAAI,CAAC;IACrC,CAAC;EACL,CAAC,CAAER,OAAO,CAACC,MAAM,CAACC,KAAK,CAAC;;EAExB;EACAF,OAAO,CAACI,MAAM,CAACF,KAAK,GAAI,UAASA,KAAK,EAAE;IACpC,OAAO,UAASG,MAAW,EAAEC,QAAa,EAAEC,EAAO,EAAE;MACjD,MAAMC,IAAI,GAAG,IAAAC,eAAO,EAACC,SAAS,CAAC;MAC/BF,IAAI,CAAC,CAAC,CAAC,GAAGG,WAAW,CAACN,MAAM,EAAEP,eAAe,CAAC;MAC9C;MACAI,KAAK,CAACU,KAAK,CAACZ,OAAO,CAACI,MAAM,EAAEI,IAAI,CAAC;IACrC,CAAC;EACL,CAAC,CAAER,OAAO,CAACI,MAAM,CAACF,KAAK,CAAC;;EAExB;;EAEA,SAASS,WAAWA,CAACE,GAAW,EAAEC,QAAsB,EAAU;IAC9D;IACA,MAAMC,MAAM,GAAGD,QAAQ,CAACD,GAAG,CAAC;IAC5B,IAAI,OAAOE,MAAM,KAAK,QAAQ,EAAE;MAC5B,OAAOA,MAAM,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAID,MAAM,IAAI,KAAK,CAACE,IAAI,CAACJ,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;IAC9E;IACA,OAAOA,GAAG;EACd;EAEA,OAAO,SAASK,MAAMA,CAAA,EAAS;IAC3BlB,OAAO,CAACC,MAAM,CAACC,KAAK,GAAGH,gBAAgB;IACvCC,OAAO,CAACI,MAAM,CAACF,KAAK,GAAGC,gBAAgB;EAC3C,CAAC;AACL","ignoreList":[]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.debugOnlyOptionDefinition = void 0;
7
- const debugOnlyOptionDefinition = {
7
+ const debugOnlyOptionDefinition = exports.debugOnlyOptionDefinition = {
8
8
  alias: "d",
9
9
  name: "debug-only",
10
10
  defaultValue: {
@@ -16,5 +16,4 @@ const debugOnlyOptionDefinition = {
16
16
  doesNotRequireValue: true,
17
17
  description: "Собирать только debug-сборки движка и форм. " + "ВНИМАНИЕ: при работе в браузере необходимо использовать параметр ?debug=true"
18
18
  };
19
- exports.debugOnlyOptionDefinition = debugOnlyOptionDefinition;
20
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWJ1Z09ubHlPcHRpb25EZWZpbml0aW9uIiwiYWxpYXMiLCJuYW1lIiwiZGVmYXVsdFZhbHVlIiwiYnVpbGREZWJ1Z09ubHkiLCJwYXJzZSIsImlucHV0IiwiZG9lc05vdFJlcXVpcmVWYWx1ZSIsImRlc2NyaXB0aW9uIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9Db21tb25PcHRpb25zL0J1aWxkRGVidWdPbmx5T3B0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wdGlvbkRlZmluaXRpb24gfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9PcHRpb25zL0NvbW1hbmRCYXNlZE9wdGlvbnNQYXJzZXJcIjtcblxuZXhwb3J0IGNvbnN0IGRlYnVnT25seU9wdGlvbkRlZmluaXRpb246IE9wdGlvbkRlZmluaXRpb248QnVpbGREZWJ1Z09ubHlPcHRpb24+ID0ge1xuICAgIGFsaWFzOiBcImRcIixcbiAgICBuYW1lOiBcImRlYnVnLW9ubHlcIixcbiAgICBkZWZhdWx0VmFsdWU6IHsgYnVpbGREZWJ1Z09ubHk6IGZhbHNlIH0sXG4gICAgcGFyc2U6IChpbnB1dDogYm9vbGVhbikgPT4gKHsgYnVpbGREZWJ1Z09ubHk6IGlucHV0IH0pLFxuICAgIGRvZXNOb3RSZXF1aXJlVmFsdWU6IHRydWUsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwi0KHQvtCx0LjRgNCw0YLRjCDRgtC+0LvRjNC60L4gZGVidWct0YHQsdC+0YDQutC4INC00LLQuNC20LrQsCDQuCDRhNC+0YDQvC4gXCIgK1xuICAgICAgICBcItCS0J3QmNCc0JDQndCY0JU6INC/0YDQuCDRgNCw0LHQvtGC0LUg0LIg0LHRgNCw0YPQt9C10YDQtSDQvdC10L7QsdGF0L7QtNC40LzQviDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0L/QsNGA0LDQvNC10YLRgCA/ZGVidWc9dHJ1ZVwiLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZERlYnVnT25seU9wdGlvbiB7XG4gICAgYnVpbGREZWJ1Z09ubHk6IGJvb2xlYW47XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVPLE1BQU1BLHlCQUFpRSxHQUFHO0VBQzdFQyxLQUFLLEVBQUUsR0FBRztFQUNWQyxJQUFJLEVBQUUsWUFBWTtFQUNsQkMsWUFBWSxFQUFFO0lBQUVDLGNBQWMsRUFBRTtFQUFNLENBQUM7RUFDdkNDLEtBQUssRUFBR0MsS0FBYyxLQUFNO0lBQUVGLGNBQWMsRUFBRUU7RUFBTSxDQUFDLENBQUM7RUFDdERDLG1CQUFtQixFQUFFLElBQUk7RUFDekJDLFdBQVcsRUFDUCw4Q0FBOEMsR0FDOUM7QUFDUixDQUFDO0FBQUNDLE9BQUEsQ0FBQVQseUJBQUEsR0FBQUEseUJBQUEifQ==
19
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWJ1Z09ubHlPcHRpb25EZWZpbml0aW9uIiwiZXhwb3J0cyIsImFsaWFzIiwibmFtZSIsImRlZmF1bHRWYWx1ZSIsImJ1aWxkRGVidWdPbmx5IiwicGFyc2UiLCJpbnB1dCIsImRvZXNOb3RSZXF1aXJlVmFsdWUiLCJkZXNjcmlwdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9Db21tb25PcHRpb25zL0J1aWxkRGVidWdPbmx5T3B0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wdGlvbkRlZmluaXRpb24gfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9PcHRpb25zL0NvbW1hbmRCYXNlZE9wdGlvbnNQYXJzZXJcIjtcblxuZXhwb3J0IGNvbnN0IGRlYnVnT25seU9wdGlvbkRlZmluaXRpb246IE9wdGlvbkRlZmluaXRpb248QnVpbGREZWJ1Z09ubHlPcHRpb24+ID0ge1xuICAgIGFsaWFzOiBcImRcIixcbiAgICBuYW1lOiBcImRlYnVnLW9ubHlcIixcbiAgICBkZWZhdWx0VmFsdWU6IHsgYnVpbGREZWJ1Z09ubHk6IGZhbHNlIH0sXG4gICAgcGFyc2U6IChpbnB1dDogYm9vbGVhbikgPT4gKHsgYnVpbGREZWJ1Z09ubHk6IGlucHV0IH0pLFxuICAgIGRvZXNOb3RSZXF1aXJlVmFsdWU6IHRydWUsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwi0KHQvtCx0LjRgNCw0YLRjCDRgtC+0LvRjNC60L4gZGVidWct0YHQsdC+0YDQutC4INC00LLQuNC20LrQsCDQuCDRhNC+0YDQvC4gXCIgK1xuICAgICAgICBcItCS0J3QmNCc0JDQndCY0JU6INC/0YDQuCDRgNCw0LHQvtGC0LUg0LIg0LHRgNCw0YPQt9C10YDQtSDQvdC10L7QsdGF0L7QtNC40LzQviDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0L/QsNGA0LDQvNC10YLRgCA/ZGVidWc9dHJ1ZVwiLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZERlYnVnT25seU9wdGlvbiB7XG4gICAgYnVpbGREZWJ1Z09ubHk6IGJvb2xlYW47XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVPLE1BQU1BLHlCQUFpRSxHQUFBQyxPQUFBLENBQUFELHlCQUFBLEdBQUc7RUFDN0VFLEtBQUssRUFBRSxHQUFHO0VBQ1ZDLElBQUksRUFBRSxZQUFZO0VBQ2xCQyxZQUFZLEVBQUU7SUFBRUMsY0FBYyxFQUFFO0VBQU0sQ0FBQztFQUN2Q0MsS0FBSyxFQUFHQyxLQUFjLEtBQU07SUFBRUYsY0FBYyxFQUFFRTtFQUFNLENBQUMsQ0FBQztFQUN0REMsbUJBQW1CLEVBQUUsSUFBSTtFQUN6QkMsV0FBVyxFQUNQLDhDQUE4QyxHQUM5QztBQUNSLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuildDebugOnlyOption.js","names":["debugOnlyOptionDefinition","exports","alias","name","defaultValue","buildDebugOnly","parse","input","doesNotRequireValue","description"],"sources":["../../../../../src/CLICommands/CommonOptions/BuildDebugOnlyOption.ts"],"sourcesContent":["import { OptionDefinition } from \"../../Commons/Options/CommandBasedOptionsParser\";\n\nexport const debugOnlyOptionDefinition: OptionDefinition<BuildDebugOnlyOption> = {\n alias: \"d\",\n name: \"debug-only\",\n defaultValue: { buildDebugOnly: false },\n parse: (input: boolean) => ({ buildDebugOnly: input }),\n doesNotRequireValue: true,\n description:\n \"Собирать только debug-сборки движка и форм. \" +\n \"ВНИМАНИЕ: при работе в браузере необходимо использовать параметр ?debug=true\",\n};\n\nexport interface BuildDebugOnlyOption {\n buildDebugOnly: boolean;\n}\n"],"mappings":";;;;;;AAEO,MAAMA,yBAAiE,GAAAC,OAAA,CAAAD,yBAAA,GAAG;EAC7EE,KAAK,EAAE,GAAG;EACVC,IAAI,EAAE,YAAY;EAClBC,YAAY,EAAE;IAAEC,cAAc,EAAE;EAAM,CAAC;EACvCC,KAAK,EAAGC,KAAc,KAAM;IAAEF,cAAc,EAAEE;EAAM,CAAC,CAAC;EACtDC,mBAAmB,EAAE,IAAI;EACzBC,WAAW,EACP,8CAA8C,GAC9C;AACR,CAAC","ignoreList":[]}