@kontur.candy/tools 2.210.1-cgroupv2.0 → 2.210.1-cgroupv2.1

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 (625) hide show
  1. package/distr/Common/AsyncUtils.js +18 -0
  2. package/distr/Common/AsyncUtils.js.map +1 -0
  3. package/distr/Common/AutoValidationUtils.js +8 -0
  4. package/distr/Common/AutoValidationUtils.js.map +1 -0
  5. package/distr/Common/CandyApiClient/CandyApiClient.js +578 -0
  6. package/distr/Common/CandyApiClient/CandyApiClient.js.map +1 -0
  7. package/distr/Common/CandyApiClient/CandyApiClientContext.js +18 -0
  8. package/distr/Common/CandyApiClient/CandyApiClientContext.js.map +1 -0
  9. package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js +6 -0
  10. package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js.map +1 -0
  11. package/distr/Common/CandyApiClient/ClientDraftInfo/FnsFormInfo.js +6 -0
  12. package/distr/Common/CandyApiClient/ClientDraftInfo/FnsFormInfo.js.map +1 -0
  13. package/distr/Common/CandyApiClient/ClientDraftInfo/GetClientDraftInfoUrl.js +12 -0
  14. package/distr/Common/CandyApiClient/ClientDraftInfo/GetClientDraftInfoUrl.js.map +1 -0
  15. package/distr/Common/CandyApiClient/ClientDraftInfo/PrintInfo.js +6 -0
  16. package/distr/Common/CandyApiClient/ClientDraftInfo/PrintInfo.js.map +1 -0
  17. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js +33 -0
  18. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js.map +1 -0
  19. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js +35 -0
  20. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js.map +1 -0
  21. package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js +20 -0
  22. package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js.map +1 -0
  23. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js +89 -0
  24. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js.map +1 -0
  25. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js +42 -0
  26. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js.map +1 -0
  27. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js +9 -0
  28. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js.map +1 -0
  29. package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js +6 -0
  30. package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js.map +1 -0
  31. package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js +18 -0
  32. package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js.map +1 -0
  33. package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js +15 -0
  34. package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js.map +1 -0
  35. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js +19 -0
  36. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js.map +1 -0
  37. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestRequest.js +6 -0
  38. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestRequest.js.map +1 -0
  39. package/distr/Common/CandyApiClient/FakeCandyApiClient.js +248 -0
  40. package/distr/Common/CandyApiClient/FakeCandyApiClient.js.map +1 -0
  41. package/distr/Common/CandyApiClient/ICandyApiClient.js +6 -0
  42. package/distr/Common/CandyApiClient/ICandyApiClient.js.map +1 -0
  43. package/distr/Common/CandyApiClient/IsBuffer.js +15 -0
  44. package/distr/Common/CandyApiClient/IsBuffer.js.map +1 -0
  45. package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js +6 -0
  46. package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js.map +1 -0
  47. package/distr/Common/CandyApiClient/Types/Attachments/GetAttachmentsResponse.js +6 -0
  48. package/distr/Common/CandyApiClient/Types/Attachments/GetAttachmentsResponse.js.map +1 -0
  49. package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js +6 -0
  50. package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js.map +1 -0
  51. package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftResponse.js +6 -0
  52. package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftResponse.js.map +1 -0
  53. package/distr/Common/CandyApiClient/Types/DiagResourcesResponse.js +6 -0
  54. package/distr/Common/CandyApiClient/Types/DiagResourcesResponse.js.map +1 -0
  55. package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js +24 -0
  56. package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js.map +1 -0
  57. package/distr/Common/CandyApiClient/Types/DraftActions/ConvertDraftRequest.js +6 -0
  58. package/distr/Common/CandyApiClient/Types/DraftActions/ConvertDraftRequest.js.map +1 -0
  59. package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js +6 -0
  60. package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js.map +1 -0
  61. package/distr/Common/CandyApiClient/Types/DraftActions/FufSizeTooLargeError.js +9 -0
  62. package/distr/Common/CandyApiClient/Types/DraftActions/FufSizeTooLargeError.js.map +1 -0
  63. package/distr/Common/CandyApiClient/Types/DraftFullId.js +6 -0
  64. package/distr/Common/CandyApiClient/Types/DraftFullId.js.map +1 -0
  65. package/distr/Common/CandyApiClient/Types/ErrorLog/CandyPopdProtocol.js +12 -0
  66. package/distr/Common/CandyApiClient/Types/ErrorLog/CandyPopdProtocol.js.map +1 -0
  67. package/distr/Common/CandyApiClient/Types/ErrorLog/ResolveInnerPathRequest.js +6 -0
  68. package/distr/Common/CandyApiClient/Types/ErrorLog/ResolveInnerPathRequest.js.map +1 -0
  69. package/distr/Common/CandyApiClient/Types/ErrorLog/ResolvePathResponse.js +6 -0
  70. package/distr/Common/CandyApiClient/Types/ErrorLog/ResolvePathResponse.js.map +1 -0
  71. package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js +17 -0
  72. package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js.map +1 -0
  73. package/distr/Common/CandyApiClient/Types/ExplanatoryNote/CreateExplanatoryNoteResponse.js +13 -0
  74. package/distr/Common/CandyApiClient/Types/ExplanatoryNote/CreateExplanatoryNoteResponse.js.map +1 -0
  75. package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js +6 -0
  76. package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js.map +1 -0
  77. package/distr/Common/CandyApiClient/Types/Focus/FocusServerResponse.js +6 -0
  78. package/distr/Common/CandyApiClient/Types/Focus/FocusServerResponse.js.map +1 -0
  79. package/distr/Common/CandyApiClient/Types/Focus/FocusTypes.js +15 -0
  80. package/distr/Common/CandyApiClient/Types/Focus/FocusTypes.js.map +1 -0
  81. package/distr/Common/CandyApiClient/Types/GetInner/ServerInnerResponse.js +6 -0
  82. package/distr/Common/CandyApiClient/Types/GetInner/ServerInnerResponse.js.map +1 -0
  83. package/distr/Common/CandyApiClient/Types/GetInner/ServerRawResponse.js +9 -0
  84. package/distr/Common/CandyApiClient/Types/GetInner/ServerRawResponse.js.map +1 -0
  85. package/distr/Common/CandyApiClient/Types/GetInner/ServerRequisitesResponse.js +6 -0
  86. package/distr/Common/CandyApiClient/Types/GetInner/ServerRequisitesResponse.js.map +1 -0
  87. package/distr/Common/CandyApiClient/Types/Guid.js +6 -0
  88. package/distr/Common/CandyApiClient/Types/Guid.js.map +1 -0
  89. package/distr/Common/CandyApiClient/Types/InstancesDeleting/InstancesDeletingRule.js +6 -0
  90. package/distr/Common/CandyApiClient/Types/InstancesDeleting/InstancesDeletingRule.js.map +1 -0
  91. package/distr/Common/CandyApiClient/Types/MassActions/MassActionParameters.js +6 -0
  92. package/distr/Common/CandyApiClient/Types/MassActions/MassActionParameters.js.map +1 -0
  93. package/distr/Common/CandyApiClient/Types/MassActions/ValueForInstancesSettingRule.js +6 -0
  94. package/distr/Common/CandyApiClient/Types/MassActions/ValueForInstancesSettingRule.js.map +1 -0
  95. package/distr/Common/CandyApiClient/Types/Presentations/DraftPresentationType.js +24 -0
  96. package/distr/Common/CandyApiClient/Types/Presentations/DraftPresentationType.js.map +1 -0
  97. package/distr/Common/CandyApiClient/Types/Presentations/PresentationContent.js +6 -0
  98. package/distr/Common/CandyApiClient/Types/Presentations/PresentationContent.js.map +1 -0
  99. package/distr/Common/CandyApiClient/Types/Print/PrintResponse.js +6 -0
  100. package/distr/Common/CandyApiClient/Types/Print/PrintResponse.js.map +1 -0
  101. package/distr/Common/CandyApiClient/Types/Print/PrintType.js +12 -0
  102. package/distr/Common/CandyApiClient/Types/Print/PrintType.js.map +1 -0
  103. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/AndExpression.js +15 -0
  104. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/AndExpression.js.map +1 -0
  105. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CompareExpression.js +19 -0
  106. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CompareExpression.js.map +1 -0
  107. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CountCallExpression.js +15 -0
  108. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CountCallExpression.js.map +1 -0
  109. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/DecimalConstantExpression.js +15 -0
  110. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/DecimalConstantExpression.js.map +1 -0
  111. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/InstanceIdCallExpression.js +13 -0
  112. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/InstanceIdCallExpression.js.map +1 -0
  113. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/NotExpression.js +15 -0
  114. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/NotExpression.js.map +1 -0
  115. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/OrExpression.js +15 -0
  116. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/OrExpression.js.map +1 -0
  117. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringConstantExpression.js +15 -0
  118. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringConstantExpression.js.map +1 -0
  119. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringMatchExpression.js +21 -0
  120. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringMatchExpression.js.map +1 -0
  121. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/SumCallExpression.js +15 -0
  122. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/SumCallExpression.js.map +1 -0
  123. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/TernaryExpression.js +19 -0
  124. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/TernaryExpression.js.map +1 -0
  125. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/ValueReferenceExpression.js +15 -0
  126. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/ValueReferenceExpression.js.map +1 -0
  127. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryExpression.js +6 -0
  128. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryExpression.js.map +1 -0
  129. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryRequest.js +26 -0
  130. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryRequest.js.map +1 -0
  131. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryResponse.js +6 -0
  132. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryResponse.js.map +1 -0
  133. package/distr/Common/CandyApiClient/Types/QueryCollecton/SelectClause.js +16 -0
  134. package/distr/Common/CandyApiClient/Types/QueryCollecton/SelectClause.js.map +1 -0
  135. package/distr/Common/CandyApiClient/Types/QueryCollecton/SortingRule.js +16 -0
  136. package/distr/Common/CandyApiClient/Types/QueryCollecton/SortingRule.js.map +1 -0
  137. package/distr/Common/CandyApiClient/Types/Staff/EmployeeInfo.js +6 -0
  138. package/distr/Common/CandyApiClient/Types/Staff/EmployeeInfo.js.map +1 -0
  139. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesOptions.js +6 -0
  140. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesOptions.js.map +1 -0
  141. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesRequest.js +6 -0
  142. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesRequest.js.map +1 -0
  143. package/distr/Common/CandyApiClient/Types/Staff/StaffInfo.js +6 -0
  144. package/distr/Common/CandyApiClient/Types/Staff/StaffInfo.js.map +1 -0
  145. package/distr/Common/CandyApiClient/Types/Tasks/GetTasksServerResponse.js +6 -0
  146. package/distr/Common/CandyApiClient/Types/Tasks/GetTasksServerResponse.js.map +1 -0
  147. package/distr/Common/CandyApiClient/Types/Tasks/Tasks.js +14 -0
  148. package/distr/Common/CandyApiClient/Types/Tasks/Tasks.js.map +1 -0
  149. package/distr/Common/CollectionUtils.js +15 -0
  150. package/distr/Common/CollectionUtils.js.map +1 -0
  151. package/distr/Common/CommonConstants/SectionNames.js +11 -0
  152. package/distr/Common/CommonConstants/SectionNames.js.map +1 -0
  153. package/distr/Common/Comparers.js +63 -0
  154. package/distr/Common/Comparers.js.map +1 -0
  155. package/distr/Common/EmotionStorybookWorkaroundViaAliases.js +22 -0
  156. package/distr/Common/EmotionStorybookWorkaroundViaAliases.js.map +1 -0
  157. package/distr/Common/EndPoints.js +16 -0
  158. package/distr/Common/EndPoints.js.map +1 -0
  159. package/distr/Common/Enums/ButtonSettingsTypeEnum.js +12 -0
  160. package/distr/Common/Enums/ButtonSettingsTypeEnum.js.map +1 -0
  161. package/distr/Common/Errors.js +44 -0
  162. package/distr/Common/Errors.js.map +1 -0
  163. package/distr/Common/ExtractGFVPath/ExtractGFVPath.js +31 -0
  164. package/distr/Common/ExtractGFVPath/ExtractGFVPath.js.map +1 -0
  165. package/distr/Common/FSPrinterClient/FSPrinterClient.js +153 -0
  166. package/distr/Common/FSPrinterClient/FSPrinterClient.js.map +1 -0
  167. package/distr/Common/FSPrinterClient/FakeFSPrinterClient.js +19 -0
  168. package/distr/Common/FSPrinterClient/FakeFSPrinterClient.js.map +1 -0
  169. package/distr/Common/FSPrinterClient/IFSPrinterClient.js +39 -0
  170. package/distr/Common/FSPrinterClient/IFSPrinterClient.js.map +1 -0
  171. package/distr/Common/FormActionHandlers/ContextualActionNames.js +14 -0
  172. package/distr/Common/FormActionHandlers/ContextualActionNames.js.map +1 -0
  173. package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js +6 -0
  174. package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js.map +1 -0
  175. package/distr/Common/FormPathUtils.js +21 -0
  176. package/distr/Common/FormPathUtils.js.map +1 -0
  177. package/distr/Common/Funcs.js +11 -0
  178. package/distr/Common/Funcs.js.map +1 -0
  179. package/distr/Common/GFV.js +6 -0
  180. package/distr/Common/GFV.js.map +1 -0
  181. package/distr/Common/GetRngSchemaFileExtension.js +26 -0
  182. package/distr/Common/GetRngSchemaFileExtension.js.map +1 -0
  183. package/distr/Common/Hooks/UseLocalStorage.js +35 -0
  184. package/distr/Common/Hooks/UseLocalStorage.js.map +1 -0
  185. package/distr/Common/HttpClient/AuthenticationMode.js +31 -0
  186. package/distr/Common/HttpClient/AuthenticationMode.js.map +1 -0
  187. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithOptionalPolyfill.js +9 -0
  188. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithOptionalPolyfill.js.map +1 -0
  189. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithPolyfill.js +9 -0
  190. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithPolyfill.js.map +1 -0
  191. package/distr/Common/HttpClient/FetchImplementation/Fetch.js +6 -0
  192. package/distr/Common/HttpClient/FetchImplementation/Fetch.js.map +1 -0
  193. package/distr/Common/HttpClient/FetchImplementation/NativeBrowserFetch.js +8 -0
  194. package/distr/Common/HttpClient/FetchImplementation/NativeBrowserFetch.js.map +1 -0
  195. package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js +36 -0
  196. package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js.map +1 -0
  197. package/distr/Common/HttpClient/HttpClient.js +313 -0
  198. package/distr/Common/HttpClient/HttpClient.js.map +1 -0
  199. package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js +6 -0
  200. package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js.map +1 -0
  201. package/distr/Common/HttpClient/IHttpClient.js +6 -0
  202. package/distr/Common/HttpClient/IHttpClient.js.map +1 -0
  203. package/distr/Common/IndentString.js +16 -0
  204. package/distr/Common/IndentString.js.map +1 -0
  205. package/distr/Common/IntRangeUtils.js +32 -0
  206. package/distr/Common/IntRangeUtils.js.map +1 -0
  207. package/distr/Common/IterableUtils.js +288 -0
  208. package/distr/Common/IterableUtils.js.map +1 -0
  209. package/distr/Common/KCLangRuntimeUtils.js +266 -0
  210. package/distr/Common/KCLangRuntimeUtils.js.map +1 -0
  211. package/distr/Common/ModelPath/AbsoluteModelFieldPath.js +55 -0
  212. package/distr/Common/ModelPath/AbsoluteModelFieldPath.js.map +1 -0
  213. package/distr/Common/ModelPath/BuildIterationSequence.js +41 -0
  214. package/distr/Common/ModelPath/BuildIterationSequence.js.map +1 -0
  215. package/distr/Common/ModelPath/EachCurrentCollision.js +12 -0
  216. package/distr/Common/ModelPath/EachCurrentCollision.js.map +1 -0
  217. package/distr/Common/ModelPath/IEquatable.js +6 -0
  218. package/distr/Common/ModelPath/IEquatable.js.map +1 -0
  219. package/distr/Common/ModelPath/Map/AbsoluteModelPathMap.js +23 -0
  220. package/distr/Common/ModelPath/Map/AbsoluteModelPathMap.js.map +1 -0
  221. package/distr/Common/ModelPath/Map/Map2.js +99 -0
  222. package/distr/Common/ModelPath/Map/Map2.js.map +1 -0
  223. package/distr/Common/ModelPath/Map/ModelPathMap.js +23 -0
  224. package/distr/Common/ModelPath/Map/ModelPathMap.js.map +1 -0
  225. package/distr/Common/ModelPath/ModelPath.js +476 -0
  226. package/distr/Common/ModelPath/ModelPath.js.map +1 -0
  227. package/distr/Common/ModelPath/ModelPathBuilder.js +42 -0
  228. package/distr/Common/ModelPath/ModelPathBuilder.js.map +1 -0
  229. package/distr/Common/ModelPath/ModelPathHelper.js +34 -0
  230. package/distr/Common/ModelPath/ModelPathHelper.js.map +1 -0
  231. package/distr/Common/ModelPath/PathMatcher.js +95 -0
  232. package/distr/Common/ModelPath/PathMatcher.js.map +1 -0
  233. package/distr/Common/ModelPath/PathSplitHelper.js +21 -0
  234. package/distr/Common/ModelPath/PathSplitHelper.js.map +1 -0
  235. package/distr/Common/ModelPath/Set/AbsoluteModelPathSet.js +31 -0
  236. package/distr/Common/ModelPath/Set/AbsoluteModelPathSet.js.map +1 -0
  237. package/distr/Common/ModelPath/Set/AbsoluteResolvedModelPathSet.js +31 -0
  238. package/distr/Common/ModelPath/Set/AbsoluteResolvedModelPathSet.js.map +1 -0
  239. package/distr/Common/ModelPath/Set/ModelPathSet.js +31 -0
  240. package/distr/Common/ModelPath/Set/ModelPathSet.js.map +1 -0
  241. package/distr/Common/ModelPath/Set/Set2.js +59 -0
  242. package/distr/Common/ModelPath/Set/Set2.js.map +1 -0
  243. package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js +33 -0
  244. package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js.map +1 -0
  245. package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js +6 -0
  246. package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js.map +1 -0
  247. package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js +11 -0
  248. package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js.map +1 -0
  249. package/distr/Common/NidusClient/Fakes/FakeNidusClient.js +66 -0
  250. package/distr/Common/NidusClient/Fakes/FakeNidusClient.js.map +1 -0
  251. package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js +108 -0
  252. package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js.map +1 -0
  253. package/distr/Common/NidusClient/INidusClient.js +14 -0
  254. package/distr/Common/NidusClient/INidusClient.js.map +1 -0
  255. package/distr/Common/NidusClient/NidusClientContext.js +34 -0
  256. package/distr/Common/NidusClient/NidusClientContext.js.map +1 -0
  257. package/distr/Common/NidusClient/NidusClientImpl.js +55 -0
  258. package/distr/Common/NidusClient/NidusClientImpl.js.map +1 -0
  259. package/distr/Common/PathConstants.js +11 -0
  260. package/distr/Common/PathConstants.js.map +1 -0
  261. package/distr/Common/PicklistApiClient/IPicklistApiClient.js +6 -0
  262. package/distr/Common/PicklistApiClient/IPicklistApiClient.js.map +1 -0
  263. package/distr/Common/PicklistApiClient/PicklistApiClient.js +31 -0
  264. package/distr/Common/PicklistApiClient/PicklistApiClient.js.map +1 -0
  265. package/distr/Common/PicklistApiClient/PicklistRequestV2Builder.js +36 -0
  266. package/distr/Common/PicklistApiClient/PicklistRequestV2Builder.js.map +1 -0
  267. package/distr/Common/PicklistApiClient/Serializers/DigestFilterColumnSerializer.js +53 -0
  268. package/distr/Common/PicklistApiClient/Serializers/DigestFilterColumnSerializer.js.map +1 -0
  269. package/distr/Common/PicklistApiClient/Serializers/DigestLogicalFilterSerializer.js +37 -0
  270. package/distr/Common/PicklistApiClient/Serializers/DigestLogicalFilterSerializer.js.map +1 -0
  271. package/distr/Common/PicklistApiClient/Types/PicklistRequestV2.js +6 -0
  272. package/distr/Common/PicklistApiClient/Types/PicklistRequestV2.js.map +1 -0
  273. package/distr/Common/PicklistApiClient/Types/PicklistResultV2.js +6 -0
  274. package/distr/Common/PicklistApiClient/Types/PicklistResultV2.js.map +1 -0
  275. package/distr/Common/RngSchemeTypes/types.js +6 -0
  276. package/distr/Common/RngSchemeTypes/types.js.map +1 -0
  277. package/distr/Common/StringArrayKey.js +26 -0
  278. package/distr/Common/StringArrayKey.js.map +1 -0
  279. package/distr/Common/TextExtractor/TextExtractorTypes.js +6 -0
  280. package/distr/Common/TextExtractor/TextExtractorTypes.js.map +1 -0
  281. package/distr/Common/TypingUtils.js +118 -0
  282. package/distr/Common/TypingUtils.js.map +1 -0
  283. package/distr/Common/UUID.js +14 -0
  284. package/distr/Common/UUID.js.map +1 -0
  285. package/distr/Common/UseAsyncEffect.js +20 -0
  286. package/distr/Common/UseAsyncEffect.js.map +1 -0
  287. package/distr/Common/UseShowOnce.js +60 -0
  288. package/distr/Common/UseShowOnce.js.map +1 -0
  289. package/distr/Common/UseTypedSelector.js +10 -0
  290. package/distr/Common/UseTypedSelector.js.map +1 -0
  291. package/distr/Common/WellKnownDirectories.js +14 -0
  292. package/distr/Common/WellKnownDirectories.js.map +1 -0
  293. package/distr/Common/hashUtils.js +14 -0
  294. package/distr/Common/hashUtils.js.map +1 -0
  295. package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js +77 -0
  296. package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js.map +1 -0
  297. package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js +14 -0
  298. package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js.map +1 -0
  299. package/distr/Tools/src/BuildTasks/Engine/AcquireFormEngine.js +22 -0
  300. package/distr/Tools/src/BuildTasks/Engine/AcquireFormEngine.js.map +1 -0
  301. package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js +88 -0
  302. package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js.map +1 -0
  303. package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js +82 -0
  304. package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js.map +1 -0
  305. package/distr/Tools/src/BuildTasks/Engine/EngineSource.js +10 -0
  306. package/distr/Tools/src/BuildTasks/Engine/EngineSource.js.map +1 -0
  307. package/distr/Tools/src/BuildTasks/EngineStructureUtils.js +42 -0
  308. package/distr/Tools/src/BuildTasks/EngineStructureUtils.js.map +1 -0
  309. package/distr/Tools/src/BuildTasks/EngineVersionUtils.js +30 -0
  310. package/distr/Tools/src/BuildTasks/EngineVersionUtils.js.map +1 -0
  311. package/distr/Tools/src/BuildTasks/FSTask.js +67 -0
  312. package/distr/Tools/src/BuildTasks/FSTask.js.map +1 -0
  313. package/distr/Tools/src/BuildTasks/Form/CompileForm.js +52 -0
  314. package/distr/Tools/src/BuildTasks/Form/CompileForm.js.map +1 -0
  315. package/distr/Tools/src/BuildTasks/Form/GenerateForm.js +44 -0
  316. package/distr/Tools/src/BuildTasks/Form/GenerateForm.js.map +1 -0
  317. package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js +37 -0
  318. package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js.map +1 -0
  319. package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js +25 -0
  320. package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js.map +1 -0
  321. package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js +31 -0
  322. package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js.map +1 -0
  323. package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js +27 -0
  324. package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js.map +1 -0
  325. package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js +95 -0
  326. package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js.map +1 -0
  327. package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js +126 -0
  328. package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js.map +1 -0
  329. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js +174 -0
  330. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js.map +1 -0
  331. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js +121 -0
  332. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js.map +1 -0
  333. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js +45 -0
  334. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js.map +1 -0
  335. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js +52 -0
  336. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js.map +1 -0
  337. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js +49 -0
  338. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js.map +1 -0
  339. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js +19 -0
  340. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js.map +1 -0
  341. package/distr/Tools/src/BuildTasks/ProcessUtils/ProcessUtils.js +64 -0
  342. package/distr/Tools/src/BuildTasks/ProcessUtils/ProcessUtils.js.map +1 -0
  343. package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js +84 -0
  344. package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js.map +1 -0
  345. package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js +174 -0
  346. package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js.map +1 -0
  347. package/distr/Tools/src/BuildTasks/ReadFormSource.js +112 -0
  348. package/distr/Tools/src/BuildTasks/ReadFormSource.js.map +1 -0
  349. package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +107 -0
  350. package/distr/Tools/src/BuildTasks/ResolveFormInfo.js.map +1 -0
  351. package/distr/Tools/src/BuildTasks/Version.js +41 -0
  352. package/distr/Tools/src/BuildTasks/Version.js.map +1 -0
  353. package/distr/Tools/src/BuildTasks/WriteFormMeta.js +27 -0
  354. package/distr/Tools/src/BuildTasks/WriteFormMeta.js.map +1 -0
  355. package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js +28 -0
  356. package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js.map +1 -0
  357. package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js +169 -0
  358. package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js.map +1 -0
  359. package/distr/Tools/src/CLICommands/BuildForms/ClearSourceMapForProduction.js +24 -0
  360. package/distr/Tools/src/CLICommands/BuildForms/ClearSourceMapForProduction.js.map +1 -0
  361. package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +234 -0
  362. package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js.map +1 -0
  363. package/distr/Tools/src/CLICommands/BuildServer/BuildLogsWebsocketController.js +36 -0
  364. package/distr/Tools/src/CLICommands/BuildServer/BuildLogsWebsocketController.js.map +1 -0
  365. package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js +112 -0
  366. package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js.map +1 -0
  367. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +158 -0
  368. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js.map +1 -0
  369. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +94 -0
  370. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js.map +1 -0
  371. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +129 -0
  372. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js.map +1 -0
  373. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerCandyWidgetController.js +45 -0
  374. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerCandyWidgetController.js.map +1 -0
  375. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsController.js +76 -0
  376. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsController.js.map +1 -0
  377. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js +67 -0
  378. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js.map +1 -0
  379. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js +65 -0
  380. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js.map +1 -0
  381. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js +117 -0
  382. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js.map +1 -0
  383. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js +22 -0
  384. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js.map +1 -0
  385. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js +96 -0
  386. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js.map +1 -0
  387. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +231 -0
  388. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js.map +1 -0
  389. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/CandyWidgetDevServer.js +70 -0
  390. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/CandyWidgetDevServer.js.map +1 -0
  391. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js +57 -0
  392. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js.map +1 -0
  393. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js +67 -0
  394. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js.map +1 -0
  395. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ReportGeneratorErrorToPageBody.js +21 -0
  396. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ReportGeneratorErrorToPageBody.js.map +1 -0
  397. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js +52 -0
  398. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js.map +1 -0
  399. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js +80 -0
  400. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js.map +1 -0
  401. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js +31 -0
  402. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js.map +1 -0
  403. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IInputFileSystem.js +6 -0
  404. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IInputFileSystem.js.map +1 -0
  405. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js +6 -0
  406. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js.map +1 -0
  407. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js +184 -0
  408. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js.map +1 -0
  409. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js +213 -0
  410. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js.map +1 -0
  411. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js +28 -0
  412. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js.map +1 -0
  413. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.js +6 -0
  414. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.js.map +1 -0
  415. package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js +110 -0
  416. package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js.map +1 -0
  417. package/distr/Tools/src/CLICommands/BuildServer/StdStreamsIntercepter.js +50 -0
  418. package/distr/Tools/src/CLICommands/BuildServer/StdStreamsIntercepter.js.map +1 -0
  419. package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js +19 -0
  420. package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js.map +1 -0
  421. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptionDefintions.js +30 -0
  422. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptionDefintions.js.map +1 -0
  423. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptions.js +6 -0
  424. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptions.js.map +1 -0
  425. package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js +163 -0
  426. package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js.map +1 -0
  427. package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +112 -0
  428. package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js.map +1 -0
  429. package/distr/Tools/src/CLICommands/FormStats/FormStatsOptions.js +34 -0
  430. package/distr/Tools/src/CLICommands/FormStats/FormStatsOptions.js.map +1 -0
  431. package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js +50 -0
  432. package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js.map +1 -0
  433. package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js +54 -0
  434. package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js.map +1 -0
  435. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/autocalc/{gfv}./320/232/320/241.candy.js.kclang +0 -0
  436. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.AfterMerge.xslt +11 -0
  437. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.BeforePreload.xslt +11 -0
  438. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.fufPatcher.xslt +11 -0
  439. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.outer.inner.json +1 -0
  440. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/fetchfunctions/{gfv}.fetchfunctions.js +2 -0
  441. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/fetchfunctions/{gfv}.fetchfunctions.js.map +1 -0
  442. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/form.json +12 -0
  443. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/helpers/addPril1.txt +6 -0
  444. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/presentations.json +8 -0
  445. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/schemas/{gfv}.0.rng.xml +20 -0
  446. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/sugar/index.sugar.xml +10 -0
  447. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js +16 -0
  448. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js.map +1 -0
  449. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js +23 -0
  450. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js.map +1 -0
  451. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/validations/validations.KC.kclang +0 -0
  452. package/distr/Tools/src/CLICommands/InitForm/InitFormOptions.js +34 -0
  453. package/distr/Tools/src/CLICommands/InitForm/InitFormOptions.js.map +1 -0
  454. package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js +117 -0
  455. package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js.map +1 -0
  456. package/distr/Tools/src/CLICommands/Localization/LocalizationOptions.js +44 -0
  457. package/distr/Tools/src/CLICommands/Localization/LocalizationOptions.js.map +1 -0
  458. package/distr/Tools/src/CLICommands/Localization/RunLocalization.js +73 -0
  459. package/distr/Tools/src/CLICommands/Localization/RunLocalization.js.map +1 -0
  460. package/distr/Tools/src/CLICommands/RenameFiles/RenameFilesOptions.js +25 -0
  461. package/distr/Tools/src/CLICommands/RenameFiles/RenameFilesOptions.js.map +1 -0
  462. package/distr/Tools/src/CLICommands/RenameFiles/RunRenameFiles.js +38 -0
  463. package/distr/Tools/src/CLICommands/RenameFiles/RunRenameFiles.js.map +1 -0
  464. package/distr/Tools/src/CLICommands/SugarExtractor/ExtractTextsFromSugarController.js +36 -0
  465. package/distr/Tools/src/CLICommands/SugarExtractor/ExtractTextsFromSugarController.js.map +1 -0
  466. package/distr/Tools/src/CLICommands/SugarExtractor/Utils.js +50 -0
  467. package/distr/Tools/src/CLICommands/SugarExtractor/Utils.js.map +1 -0
  468. package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js +144 -0
  469. package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js.map +1 -0
  470. package/distr/Tools/src/CLICommands/UpgradeForm/UpgradeFormOptions.js +78 -0
  471. package/distr/Tools/src/CLICommands/UpgradeForm/UpgradeFormOptions.js.map +1 -0
  472. package/distr/Tools/src/CandyCLI.js +144 -0
  473. package/distr/Tools/src/CandyCLI.js.map +1 -0
  474. package/distr/Tools/src/CheckNodeJsVersion.js +32 -0
  475. package/distr/Tools/src/CheckNodeJsVersion.js.map +1 -0
  476. package/distr/Tools/src/Commons/ApiClient/ToolsApiClient.js +28 -0
  477. package/distr/Tools/src/Commons/ApiClient/ToolsApiClient.js.map +1 -0
  478. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js +93 -0
  479. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js.map +1 -0
  480. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplicationContext.js +24 -0
  481. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplicationContext.js.map +1 -0
  482. package/distr/Tools/src/Commons/ErrorUntyped.js +6 -0
  483. package/distr/Tools/src/Commons/ErrorUntyped.js.map +1 -0
  484. package/distr/Tools/src/Commons/EventObject.js +74 -0
  485. package/distr/Tools/src/Commons/EventObject.js.map +1 -0
  486. package/distr/Tools/src/Commons/ExecUtils.js +38 -0
  487. package/distr/Tools/src/Commons/ExecUtils.js.map +1 -0
  488. package/distr/Tools/src/Commons/ExtractGfvsFromFileName.js +21 -0
  489. package/distr/Tools/src/Commons/ExtractGfvsFromFileName.js.map +1 -0
  490. package/distr/Tools/src/Commons/FormGlobsUtils.js +137 -0
  491. package/distr/Tools/src/Commons/FormGlobsUtils.js.map +1 -0
  492. package/distr/Tools/src/Commons/FormLocationInfo.js +6 -0
  493. package/distr/Tools/src/Commons/FormLocationInfo.js.map +1 -0
  494. package/distr/Tools/src/Commons/FsUtils.js +35 -0
  495. package/distr/Tools/src/Commons/FsUtils.js.map +1 -0
  496. package/distr/Tools/src/Commons/GetCpuLimits.js +64 -0
  497. package/distr/Tools/src/Commons/GetCpuLimits.js.map +1 -0
  498. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js +38 -0
  499. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js.map +1 -0
  500. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js +57 -0
  501. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js.map +1 -0
  502. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/NotFoundWebError.js +15 -0
  503. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/NotFoundWebError.js.map +1 -0
  504. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js +18 -0
  505. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js.map +1 -0
  506. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/IParamBinder.js +6 -0
  507. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/IParamBinder.js.map +1 -0
  508. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js +14 -0
  509. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js.map +1 -0
  510. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js +17 -0
  511. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js.map +1 -0
  512. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js +22 -0
  513. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js.map +1 -0
  514. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js +20 -0
  515. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js.map +1 -0
  516. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js +46 -0
  517. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js.map +1 -0
  518. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomActionResultHandler.js +13 -0
  519. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomActionResultHandler.js.map +1 -0
  520. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomContentResultHandler.js +18 -0
  521. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomContentResultHandler.js.map +1 -0
  522. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/EmptyResultHandler.js +13 -0
  523. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/EmptyResultHandler.js.map +1 -0
  524. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/HtmlResultHandler.js +13 -0
  525. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/HtmlResultHandler.js.map +1 -0
  526. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/IResultHandler.js +6 -0
  527. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/IResultHandler.js.map +1 -0
  528. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/JsonResultHandler.js +13 -0
  529. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/JsonResultHandler.js.map +1 -0
  530. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/PlainTextResultHandler.js +13 -0
  531. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/PlainTextResultHandler.js.map +1 -0
  532. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js +113 -0
  533. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js.map +1 -0
  534. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results.js +24 -0
  535. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results.js.map +1 -0
  536. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/ExpressServerWrapper.js +106 -0
  537. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/ExpressServerWrapper.js.map +1 -0
  538. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/SingletonController.js +22 -0
  539. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/SingletonController.js.map +1 -0
  540. package/distr/Tools/src/Commons/Locks/Lock.js +24 -0
  541. package/distr/Tools/src/Commons/Locks/Lock.js.map +1 -0
  542. package/distr/Tools/src/Commons/Locks/LockHandle.js +17 -0
  543. package/distr/Tools/src/Commons/Locks/LockHandle.js.map +1 -0
  544. package/distr/Tools/src/Commons/Locks/ReadWriteLockCollection.js +31 -0
  545. package/distr/Tools/src/Commons/Locks/ReadWriteLockCollection.js.map +1 -0
  546. package/distr/Tools/src/Commons/Logging/ELKLogger.js +56 -0
  547. package/distr/Tools/src/Commons/Logging/ELKLogger.js.map +1 -0
  548. package/distr/Tools/src/Commons/Logging/ILogger.js +25 -0
  549. package/distr/Tools/src/Commons/Logging/ILogger.js.map +1 -0
  550. package/distr/Tools/src/Commons/Logging/InMemoryLogger.js +61 -0
  551. package/distr/Tools/src/Commons/Logging/InMemoryLogger.js.map +1 -0
  552. package/distr/Tools/src/Commons/Logging/Logger.js +78 -0
  553. package/distr/Tools/src/Commons/Logging/Logger.js.map +1 -0
  554. package/distr/Tools/src/Commons/Logging/StaticLogger.js +37 -0
  555. package/distr/Tools/src/Commons/Logging/StaticLogger.js.map +1 -0
  556. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js +2 -0
  557. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js.map +1 -0
  558. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js +152 -0
  559. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js.map +1 -0
  560. package/distr/Tools/src/Commons/PathPattern.js +42 -0
  561. package/distr/Tools/src/Commons/PathPattern.js.map +1 -0
  562. package/distr/Tools/src/Commons/TasksCore/AggregatedError.js +16 -0
  563. package/distr/Tools/src/Commons/TasksCore/AggregatedError.js.map +1 -0
  564. package/distr/Tools/src/Commons/TasksCore/BuildTask.js +6 -0
  565. package/distr/Tools/src/Commons/TasksCore/BuildTask.js.map +1 -0
  566. package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js +668 -0
  567. package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js.map +1 -0
  568. package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js +77 -0
  569. package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js.map +1 -0
  570. package/distr/Tools/src/Commons/TasksCore/EmptyProducer.js +20 -0
  571. package/distr/Tools/src/Commons/TasksCore/EmptyProducer.js.map +1 -0
  572. package/distr/Tools/src/Commons/TasksCore/FileSystemEntriesProducer.js +48 -0
  573. package/distr/Tools/src/Commons/TasksCore/FileSystemEntriesProducer.js.map +1 -0
  574. package/distr/Tools/src/Commons/TasksCore/FileValueProducer.js +45 -0
  575. package/distr/Tools/src/Commons/TasksCore/FileValueProducer.js.map +1 -0
  576. package/distr/Tools/src/Commons/TasksCore/FixedDirectoryEntriesProducer.js +25 -0
  577. package/distr/Tools/src/Commons/TasksCore/FixedDirectoryEntriesProducer.js.map +1 -0
  578. package/distr/Tools/src/Commons/TasksCore/Observe.js +35 -0
  579. package/distr/Tools/src/Commons/TasksCore/Observe.js.map +1 -0
  580. package/distr/Tools/src/Commons/TasksCore/SingleValueProducer.js +29 -0
  581. package/distr/Tools/src/Commons/TasksCore/SingleValueProducer.js.map +1 -0
  582. package/distr/Tools/src/Commons/TimingUtils.js +13 -0
  583. package/distr/Tools/src/Commons/TimingUtils.js.map +1 -0
  584. package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js +180 -0
  585. package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js.map +1 -0
  586. package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +145 -0
  587. package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js.map +1 -0
  588. package/distr/Tools/src/FormWebpackConfiguration/variables.less +132 -0
  589. package/distr/Tools/src/GenerateReadMe.js +54 -0
  590. package/distr/Tools/src/GenerateReadMe.js.map +1 -0
  591. package/distr/Tools/src/Keys/localhost-key.pem +116 -0
  592. package/distr/Tools/src/Keys/localhost.pem +35 -0
  593. package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +2 -0
  594. package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js.LICENSE.txt +49 -0
  595. package/distr/Tools/src/LocalServerFrontEndDist/favicon-16x16.png +0 -0
  596. package/distr/Tools/src/LocalServerFrontEndDist/favicon-32x32.png +0 -0
  597. package/distr/Tools/src/LocalServerFrontEndDist/favicon.ico +0 -0
  598. package/distr/Tools/src/LocalServerFrontEndDist/index.html +1 -0
  599. package/distr/Tools/src/LocalServerFrontEndDist/index.js +3 -0
  600. package/distr/Tools/src/LocalServerFrontEndDist/index.js.LICENSE.txt +60 -0
  601. package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -0
  602. package/distr/Tools/src/Options/CandyToolOptions.js +20 -0
  603. package/distr/Tools/src/Options/CandyToolOptions.js.map +1 -0
  604. package/distr/Tools/src/ReadFarmConfig.js +18 -0
  605. package/distr/Tools/src/ReadFarmConfig.js.map +1 -0
  606. package/distr/Tools/src/SelfUpdate.js +121 -0
  607. package/distr/Tools/src/SelfUpdate.js.map +1 -0
  608. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +1722 -0
  609. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.LICENSE.txt +1 -0
  610. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -0
  611. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +1076 -0
  612. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -0
  613. package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js +3328 -0
  614. package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js.map +1 -0
  615. package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js +6517 -0
  616. package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js.map +1 -0
  617. package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js +222 -0
  618. package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js.map +1 -0
  619. package/distr/Tools/src/StaticFilesForResourcesDir/jquery-1.11.3.min.js +3328 -0
  620. package/distr/Tools/src/StaticFilesForResourcesDir/jquery-1.11.3.min.js.map +1 -0
  621. package/distr/Tools/src/StaticFilesForResourcesDir/polyfill.min.js +6517 -0
  622. package/distr/Tools/src/StaticFilesForResourcesDir/polyfill.min.js.map +1 -0
  623. package/distr/Tools/src/StaticFilesForResourcesDir/testing.min.js +222 -0
  624. package/distr/Tools/src/StaticFilesForResourcesDir/testing.min.js.map +1 -0
  625. package/package.json +1 -1
@@ -0,0 +1,1722 @@
1
+ "use strict";
2
+
3
+ /*! For license information please see client.js.LICENSE.txt */
4
+ (function () {
5
+ "use strict";
6
+
7
+ var __webpack_modules__ = {
8
+ 750: function (e, t, r) {
9
+ var o, n, i;
10
+ function a(e) {
11
+ return "v1/ns/".concat(e.ns, "/drafts/").concat(e.draftId, "/client-draft-info");
12
+ }
13
+ r.d(t, {
14
+ I: function () {
15
+ return a;
16
+ }
17
+ }), e = r.hmd(e), (o = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.enterModule : void 0) && o(e), "undefined" != typeof reactHotLoaderGlobal && reactHotLoaderGlobal.default.signature, (n = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default : void 0) && n.register(a, "getClientDraftInfoUrl", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\CandyApiClient\\ClientDraftInfo\\GetClientDraftInfoUrl.ts"), (i = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.leaveModule : void 0) && i(e);
18
+ },
19
+ 336: function (module, __webpack_exports__, __webpack_require__) {
20
+ function _typeof(e) {
21
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
22
+ return typeof e;
23
+ } : function (e) {
24
+ return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
25
+ }, _typeof(e);
26
+ }
27
+ var enterModule;
28
+ function _classCallCheck(e, t) {
29
+ if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
30
+ }
31
+ function _defineProperties(e, t) {
32
+ for (var r = 0; r < t.length; r++) {
33
+ var o = t[r];
34
+ o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);
35
+ }
36
+ }
37
+ function _createClass(e, t, r) {
38
+ return t && _defineProperties(e.prototype, t), r && _defineProperties(e, r), Object.defineProperty(e, "prototype", {
39
+ writable: !1
40
+ }), e;
41
+ }
42
+ function _toPropertyKey(e) {
43
+ var t = _toPrimitive(e, "string");
44
+ return "symbol" == _typeof(t) ? t : t + "";
45
+ }
46
+ function _toPrimitive(e, t) {
47
+ if ("object" != _typeof(e) || !e) return e;
48
+ var r = e[Symbol.toPrimitive];
49
+ if (void 0 !== r) {
50
+ var o = r.call(e, t || "default");
51
+ if ("object" != _typeof(o)) return o;
52
+ throw new TypeError("@@toPrimitive must return a primitive value.");
53
+ }
54
+ return ("string" === t ? String : Number)(e);
55
+ }
56
+ function _callSuper(e, t, r) {
57
+ return t = _getPrototypeOf(t), _possibleConstructorReturn(e, _isNativeReflectConstruct() ? Reflect.construct(t, r || [], _getPrototypeOf(e).constructor) : t.apply(e, r));
58
+ }
59
+ function _possibleConstructorReturn(e, t) {
60
+ if (t && ("object" == _typeof(t) || "function" == typeof t)) return t;
61
+ if (void 0 !== t) throw new TypeError("Derived constructors may only return object or undefined");
62
+ return _assertThisInitialized(e);
63
+ }
64
+ function _assertThisInitialized(e) {
65
+ if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
66
+ return e;
67
+ }
68
+ function _inherits(e, t) {
69
+ if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function");
70
+ e.prototype = Object.create(t && t.prototype, {
71
+ constructor: {
72
+ value: e,
73
+ writable: !0,
74
+ configurable: !0
75
+ }
76
+ }), Object.defineProperty(e, "prototype", {
77
+ writable: !1
78
+ }), t && _setPrototypeOf(e, t);
79
+ }
80
+ function _wrapNativeSuper(e) {
81
+ var t = "function" == typeof Map ? new Map() : void 0;
82
+ return _wrapNativeSuper = function (e) {
83
+ if (null === e || !_isNativeFunction(e)) return e;
84
+ if ("function" != typeof e) throw new TypeError("Super expression must either be null or a function");
85
+ if (void 0 !== t) {
86
+ if (t.has(e)) return t.get(e);
87
+ t.set(e, r);
88
+ }
89
+ function r() {
90
+ return _construct(e, arguments, _getPrototypeOf(this).constructor);
91
+ }
92
+ return r.prototype = Object.create(e.prototype, {
93
+ constructor: {
94
+ value: r,
95
+ enumerable: !1,
96
+ writable: !0,
97
+ configurable: !0
98
+ }
99
+ }), _setPrototypeOf(r, e);
100
+ }, _wrapNativeSuper(e);
101
+ }
102
+ function _construct(e, t, r) {
103
+ if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
104
+ var o = [null];
105
+ o.push.apply(o, t);
106
+ var n = new (e.bind.apply(e, o))();
107
+ return r && _setPrototypeOf(n, r.prototype), n;
108
+ }
109
+ function _isNativeReflectConstruct() {
110
+ try {
111
+ var e = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
112
+ } catch (e) {}
113
+ return (_isNativeReflectConstruct = function () {
114
+ return !!e;
115
+ })();
116
+ }
117
+ function _isNativeFunction(e) {
118
+ try {
119
+ return -1 !== Function.toString.call(e).indexOf("[native code]");
120
+ } catch (t) {
121
+ return "function" == typeof e;
122
+ }
123
+ }
124
+ function _setPrototypeOf(e, t) {
125
+ return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (e, t) {
126
+ return e.__proto__ = t, e;
127
+ }, _setPrototypeOf(e, t);
128
+ }
129
+ function _getPrototypeOf(e) {
130
+ return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (e) {
131
+ return e.__proto__ || Object.getPrototypeOf(e);
132
+ }, _getPrototypeOf(e);
133
+ }
134
+ __webpack_require__.d(__webpack_exports__, {
135
+ EH: function () {
136
+ return NotImplementedError;
137
+ }
138
+ }), module = __webpack_require__.hmd(module), enterModule = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.enterModule : void 0, enterModule && enterModule(module);
139
+ var __signature__ = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default.signature : function (e) {
140
+ return e;
141
+ },
142
+ ApplicationError = function (_Error) {
143
+ function ApplicationError(e) {
144
+ var t;
145
+ return _classCallCheck(this, ApplicationError), (t = _callSuper(this, ApplicationError, [e])).name = t.constructor.name, t;
146
+ }
147
+ return _inherits(ApplicationError, _Error), _createClass(ApplicationError, [{
148
+ key: "__reactstandin__regenerateByEval",
149
+ value: function __reactstandin__regenerateByEval(key, code) {
150
+ this[key] = eval(code);
151
+ }
152
+ }]);
153
+ }(_wrapNativeSuper(Error)),
154
+ NotImplementedError = function (_ApplicationError) {
155
+ function NotImplementedError() {
156
+ return _classCallCheck(this, NotImplementedError), _callSuper(this, NotImplementedError, ["Operation not implemented"]);
157
+ }
158
+ return _inherits(NotImplementedError, _ApplicationError), _createClass(NotImplementedError, [{
159
+ key: "__reactstandin__regenerateByEval",
160
+ value: function __reactstandin__regenerateByEval(key, code) {
161
+ this[key] = eval(code);
162
+ }
163
+ }]);
164
+ }(ApplicationError),
165
+ NotSupportedError = function (_ApplicationError2) {
166
+ function NotSupportedError(e) {
167
+ return _classCallCheck(this, NotSupportedError), _callSuper(this, NotSupportedError, [null != e ? e : "Operation not supported"]);
168
+ }
169
+ return _inherits(NotSupportedError, _ApplicationError2), _createClass(NotSupportedError, [{
170
+ key: "__reactstandin__regenerateByEval",
171
+ value: function __reactstandin__regenerateByEval(key, code) {
172
+ this[key] = eval(code);
173
+ }
174
+ }]);
175
+ }(ApplicationError),
176
+ InvalidProgramStateError = function (_ApplicationError3) {
177
+ function InvalidProgramStateError(e) {
178
+ return _classCallCheck(this, InvalidProgramStateError), _callSuper(this, InvalidProgramStateError, ["Invalid program state" + (null != e ? ": " + e : "")]);
179
+ }
180
+ return _inherits(InvalidProgramStateError, _ApplicationError3), _createClass(InvalidProgramStateError, [{
181
+ key: "__reactstandin__regenerateByEval",
182
+ value: function __reactstandin__regenerateByEval(key, code) {
183
+ this[key] = eval(code);
184
+ }
185
+ }]);
186
+ }(ApplicationError),
187
+ InvalidArgumentError = function (_ApplicationError4) {
188
+ function InvalidArgumentError(e, t) {
189
+ return _classCallCheck(this, InvalidArgumentError), _callSuper(this, InvalidArgumentError, [null != t ? "".concat(t, " (argument: ").concat(e, ")") : "Invalid argument value: ".concat(e)]);
190
+ }
191
+ return _inherits(InvalidArgumentError, _ApplicationError4), _createClass(InvalidArgumentError, [{
192
+ key: "__reactstandin__regenerateByEval",
193
+ value: function __reactstandin__regenerateByEval(key, code) {
194
+ this[key] = eval(code);
195
+ }
196
+ }]);
197
+ }(ApplicationError),
198
+ TypingError = function (_ApplicationError5) {
199
+ function TypingError() {
200
+ return _classCallCheck(this, TypingError), _callSuper(this, TypingError, ["Invalid typing"]);
201
+ }
202
+ return _inherits(TypingError, _ApplicationError5), _createClass(TypingError, [{
203
+ key: "__reactstandin__regenerateByEval",
204
+ value: function __reactstandin__regenerateByEval(key, code) {
205
+ this[key] = eval(code);
206
+ }
207
+ }]);
208
+ }(ApplicationError),
209
+ reactHotLoader,
210
+ leaveModule;
211
+ reactHotLoader = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default : void 0, reactHotLoader && (reactHotLoader.register(ApplicationError, "ApplicationError", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\Errors.ts"), reactHotLoader.register(NotImplementedError, "NotImplementedError", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\Errors.ts"), reactHotLoader.register(NotSupportedError, "NotSupportedError", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\Errors.ts"), reactHotLoader.register(InvalidProgramStateError, "InvalidProgramStateError", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\Errors.ts"), reactHotLoader.register(InvalidArgumentError, "InvalidArgumentError", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\Errors.ts"), reactHotLoader.register(TypingError, "TypingError", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\Errors.ts")), leaveModule = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.leaveModule : void 0, leaveModule && leaveModule(module);
212
+ },
213
+ 163: function (e, t, r) {
214
+ var o, n, i;
215
+ function a(e) {
216
+ return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
217
+ return typeof e;
218
+ } : function (e) {
219
+ return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
220
+ }, a(e);
221
+ }
222
+ function u(e) {
223
+ return null != e;
224
+ }
225
+ function c(e) {
226
+ throw "string" == typeof e || null == e ? new Error(null != e ? e : "Undefined is not allowed") : e;
227
+ }
228
+ function l(e, t) {
229
+ return e.length >= t;
230
+ }
231
+ function s(e, t) {
232
+ return e.length === t;
233
+ }
234
+ function d(e) {
235
+ return e.length > 0;
236
+ }
237
+ function f(e) {
238
+ return null == e || "" === e;
239
+ }
240
+ r.d(t, {
241
+ ku: function () {
242
+ return c;
243
+ }
244
+ }), e = r.hmd(e), (o = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.enterModule : void 0) && o(e), "undefined" != typeof reactHotLoaderGlobal && reactHotLoaderGlobal.default.signature, (n = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default : void 0) && (n.register(u, "isNotNullOrUndefined", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
245
+ return "object" === a(e) && (null == e ? void 0 : e.message);
246
+ }, "stringifyUnknownError", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
247
+ if (!u(e)) throw new Error("Value must be defined");
248
+ }, "ensureNotNullOrUndefined", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function () {}, "noop", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(c, "reject", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(l, "isLengthGreaterThenOrEqual", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e, t) {
249
+ if (l(e, t)) return e;
250
+ }, "minLengthOrUndefined", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
251
+ if (!Array.isArray(e)) throw new Error("Must be an array!");
252
+ return e;
253
+ }, "ensureIsArray", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(s, "arrayHasLength", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(d, "arrayIsNotEmpty", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
254
+ return e.length > 0;
255
+ }, "arrayHasAtLeastOneItem", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
256
+ if (!d(e)) throw new Error("Array must be not empty");
257
+ }, "ensureArrayIsNotEmpty", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e, t) {
258
+ if (!s(e, t)) throw new Error("Array should has length ".concat(t));
259
+ }, "ensureArrayHasLength", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e, t) {
260
+ if (!l(e, t)) throw new Error("Array must have minimal length ".concat(t));
261
+ }, "ensureArrayLengthGreaterThenOrEqual", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {}, "ensureNever", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
262
+ return "".concat(e);
263
+ }, "ensureAndGetString", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
264
+ e();
265
+ }, "runAsyncAction", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(f, "isNullOrEmpty", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
266
+ return !f(e);
267
+ }, "isNotNullOrEmpty", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
268
+ return null == e || "" === e.trim();
269
+ }, "isNullOrWhiteSpace", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
270
+ return "/" === e.slice(-1) ? e.slice(0, -1) : e;
271
+ }, "trimLastSlash", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {}, "assertIs", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts")), (i = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.leaveModule : void 0) && i(e);
272
+ },
273
+ 591: function (e, t, r) {
274
+ var o = "undefined" != typeof globalThis && globalThis || "undefined" != typeof self && self || void 0 !== r.g && r.g || {},
275
+ n = {
276
+ searchParams: "URLSearchParams" in o,
277
+ iterable: "Symbol" in o && "iterator" in Symbol,
278
+ blob: "FileReader" in o && "Blob" in o && function () {
279
+ try {
280
+ return new Blob(), !0;
281
+ } catch (e) {
282
+ return !1;
283
+ }
284
+ }(),
285
+ formData: "FormData" in o,
286
+ arrayBuffer: "ArrayBuffer" in o
287
+ };
288
+ if (n.arrayBuffer) var i = ["[object Int8Array]", "[object Uint8Array]", "[object Uint8ClampedArray]", "[object Int16Array]", "[object Uint16Array]", "[object Int32Array]", "[object Uint32Array]", "[object Float32Array]", "[object Float64Array]"],
289
+ a = ArrayBuffer.isView || function (e) {
290
+ return e && i.indexOf(Object.prototype.toString.call(e)) > -1;
291
+ };
292
+ function u(e) {
293
+ if ("string" != typeof e && (e = String(e)), /[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e) || "" === e) throw new TypeError('Invalid character in header field name: "' + e + '"');
294
+ return e.toLowerCase();
295
+ }
296
+ function c(e) {
297
+ return "string" != typeof e && (e = String(e)), e;
298
+ }
299
+ function l(e) {
300
+ var t = {
301
+ next: function () {
302
+ var t = e.shift();
303
+ return {
304
+ done: void 0 === t,
305
+ value: t
306
+ };
307
+ }
308
+ };
309
+ return n.iterable && (t[Symbol.iterator] = function () {
310
+ return t;
311
+ }), t;
312
+ }
313
+ function s(e) {
314
+ this.map = {}, e instanceof s ? e.forEach(function (e, t) {
315
+ this.append(t, e);
316
+ }, this) : Array.isArray(e) ? e.forEach(function (e) {
317
+ if (2 != e.length) throw new TypeError("Headers constructor: expected name/value pair to be length 2, found" + e.length);
318
+ this.append(e[0], e[1]);
319
+ }, this) : e && Object.getOwnPropertyNames(e).forEach(function (t) {
320
+ this.append(t, e[t]);
321
+ }, this);
322
+ }
323
+ function d(e) {
324
+ if (!e._noBody) return e.bodyUsed ? Promise.reject(new TypeError("Already read")) : void (e.bodyUsed = !0);
325
+ }
326
+ function f(e) {
327
+ return new Promise(function (t, r) {
328
+ e.onload = function () {
329
+ t(e.result);
330
+ }, e.onerror = function () {
331
+ r(e.error);
332
+ };
333
+ });
334
+ }
335
+ function y(e) {
336
+ var t = new FileReader(),
337
+ r = f(t);
338
+ return t.readAsArrayBuffer(e), r;
339
+ }
340
+ function p(e) {
341
+ if (e.slice) return e.slice(0);
342
+ var t = new Uint8Array(e.byteLength);
343
+ return t.set(new Uint8Array(e)), t.buffer;
344
+ }
345
+ function h() {
346
+ return this.bodyUsed = !1, this._initBody = function (e) {
347
+ var t;
348
+ this.bodyUsed = this.bodyUsed, this._bodyInit = e, e ? "string" == typeof e ? this._bodyText = e : n.blob && Blob.prototype.isPrototypeOf(e) ? this._bodyBlob = e : n.formData && FormData.prototype.isPrototypeOf(e) ? this._bodyFormData = e : n.searchParams && URLSearchParams.prototype.isPrototypeOf(e) ? this._bodyText = e.toString() : n.arrayBuffer && n.blob && (t = e) && DataView.prototype.isPrototypeOf(t) ? (this._bodyArrayBuffer = p(e.buffer), this._bodyInit = new Blob([this._bodyArrayBuffer])) : n.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(e) || a(e)) ? this._bodyArrayBuffer = p(e) : this._bodyText = e = Object.prototype.toString.call(e) : (this._noBody = !0, this._bodyText = ""), this.headers.get("content-type") || ("string" == typeof e ? this.headers.set("content-type", "text/plain;charset=UTF-8") : this._bodyBlob && this._bodyBlob.type ? this.headers.set("content-type", this._bodyBlob.type) : n.searchParams && URLSearchParams.prototype.isPrototypeOf(e) && this.headers.set("content-type", "application/x-www-form-urlencoded;charset=UTF-8"));
349
+ }, n.blob && (this.blob = function () {
350
+ var e = d(this);
351
+ if (e) return e;
352
+ if (this._bodyBlob) return Promise.resolve(this._bodyBlob);
353
+ if (this._bodyArrayBuffer) return Promise.resolve(new Blob([this._bodyArrayBuffer]));
354
+ if (this._bodyFormData) throw new Error("could not read FormData body as blob");
355
+ return Promise.resolve(new Blob([this._bodyText]));
356
+ }), this.arrayBuffer = function () {
357
+ if (this._bodyArrayBuffer) return d(this) || (ArrayBuffer.isView(this._bodyArrayBuffer) ? Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset, this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength)) : Promise.resolve(this._bodyArrayBuffer));
358
+ if (n.blob) return this.blob().then(y);
359
+ throw new Error("could not read as ArrayBuffer");
360
+ }, this.text = function () {
361
+ var e,
362
+ t,
363
+ r,
364
+ o,
365
+ n,
366
+ i = d(this);
367
+ if (i) return i;
368
+ if (this._bodyBlob) return e = this._bodyBlob, r = f(t = new FileReader()), n = (o = /charset=([A-Za-z0-9_-]+)/.exec(e.type)) ? o[1] : "utf-8", t.readAsText(e, n), r;
369
+ if (this._bodyArrayBuffer) return Promise.resolve(function (e) {
370
+ for (var t = new Uint8Array(e), r = new Array(t.length), o = 0; o < t.length; o++) r[o] = String.fromCharCode(t[o]);
371
+ return r.join("");
372
+ }(this._bodyArrayBuffer));
373
+ if (this._bodyFormData) throw new Error("could not read FormData body as text");
374
+ return Promise.resolve(this._bodyText);
375
+ }, n.formData && (this.formData = function () {
376
+ return this.text().then(g);
377
+ }), this.json = function () {
378
+ return this.text().then(JSON.parse);
379
+ }, this;
380
+ }
381
+ s.prototype.append = function (e, t) {
382
+ e = u(e), t = c(t);
383
+ var r = this.map[e];
384
+ this.map[e] = r ? r + ", " + t : t;
385
+ }, s.prototype.delete = function (e) {
386
+ delete this.map[u(e)];
387
+ }, s.prototype.get = function (e) {
388
+ return e = u(e), this.has(e) ? this.map[e] : null;
389
+ }, s.prototype.has = function (e) {
390
+ return this.map.hasOwnProperty(u(e));
391
+ }, s.prototype.set = function (e, t) {
392
+ this.map[u(e)] = c(t);
393
+ }, s.prototype.forEach = function (e, t) {
394
+ for (var r in this.map) this.map.hasOwnProperty(r) && e.call(t, this.map[r], r, this);
395
+ }, s.prototype.keys = function () {
396
+ var e = [];
397
+ return this.forEach(function (t, r) {
398
+ e.push(r);
399
+ }), l(e);
400
+ }, s.prototype.values = function () {
401
+ var e = [];
402
+ return this.forEach(function (t) {
403
+ e.push(t);
404
+ }), l(e);
405
+ }, s.prototype.entries = function () {
406
+ var e = [];
407
+ return this.forEach(function (t, r) {
408
+ e.push([r, t]);
409
+ }), l(e);
410
+ }, n.iterable && (s.prototype[Symbol.iterator] = s.prototype.entries);
411
+ var m = ["CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT", "TRACE"];
412
+ function _(e, t) {
413
+ if (!(this instanceof _)) throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');
414
+ var r,
415
+ n,
416
+ i = (t = t || {}).body;
417
+ if (e instanceof _) {
418
+ if (e.bodyUsed) throw new TypeError("Already read");
419
+ this.url = e.url, this.credentials = e.credentials, t.headers || (this.headers = new s(e.headers)), this.method = e.method, this.mode = e.mode, this.signal = e.signal, i || null == e._bodyInit || (i = e._bodyInit, e.bodyUsed = !0);
420
+ } else this.url = String(e);
421
+ if (this.credentials = t.credentials || this.credentials || "same-origin", !t.headers && this.headers || (this.headers = new s(t.headers)), this.method = (n = (r = t.method || this.method || "GET").toUpperCase(), m.indexOf(n) > -1 ? n : r), this.mode = t.mode || this.mode || null, this.signal = t.signal || this.signal || function () {
422
+ if ("AbortController" in o) return new AbortController().signal;
423
+ }(), this.referrer = null, ("GET" === this.method || "HEAD" === this.method) && i) throw new TypeError("Body not allowed for GET or HEAD requests");
424
+ if (this._initBody(i), !("GET" !== this.method && "HEAD" !== this.method || "no-store" !== t.cache && "no-cache" !== t.cache)) {
425
+ var a = /([?&])_=[^&]*/;
426
+ a.test(this.url) ? this.url = this.url.replace(a, "$1_=" + new Date().getTime()) : this.url += (/\?/.test(this.url) ? "&" : "?") + "_=" + new Date().getTime();
427
+ }
428
+ }
429
+ function g(e) {
430
+ var t = new FormData();
431
+ return e.trim().split("&").forEach(function (e) {
432
+ if (e) {
433
+ var r = e.split("="),
434
+ o = r.shift().replace(/\+/g, " "),
435
+ n = r.join("=").replace(/\+/g, " ");
436
+ t.append(decodeURIComponent(o), decodeURIComponent(n));
437
+ }
438
+ }), t;
439
+ }
440
+ function v(e, t) {
441
+ if (!(this instanceof v)) throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');
442
+ if (t || (t = {}), this.type = "default", this.status = void 0 === t.status ? 200 : t.status, this.status < 200 || this.status > 599) throw new RangeError("Failed to construct 'Response': The status provided (0) is outside the range [200, 599].");
443
+ this.ok = this.status >= 200 && this.status < 300, this.statusText = void 0 === t.statusText ? "" : "" + t.statusText, this.headers = new s(t.headers), this.url = t.url || "", this._initBody(e);
444
+ }
445
+ _.prototype.clone = function () {
446
+ return new _(this, {
447
+ body: this._bodyInit
448
+ });
449
+ }, h.call(_.prototype), h.call(v.prototype), v.prototype.clone = function () {
450
+ return new v(this._bodyInit, {
451
+ status: this.status,
452
+ statusText: this.statusText,
453
+ headers: new s(this.headers),
454
+ url: this.url
455
+ });
456
+ }, v.error = function () {
457
+ var e = new v(null, {
458
+ status: 200,
459
+ statusText: ""
460
+ });
461
+ return e.ok = !1, e.status = 0, e.type = "error", e;
462
+ };
463
+ var b = [301, 302, 303, 307, 308];
464
+ v.redirect = function (e, t) {
465
+ if (-1 === b.indexOf(t)) throw new RangeError("Invalid status code");
466
+ return new v(null, {
467
+ status: t,
468
+ headers: {
469
+ location: e
470
+ }
471
+ });
472
+ };
473
+ var E = o.DOMException;
474
+ try {
475
+ new E();
476
+ } catch (e) {
477
+ (E = function (e, t) {
478
+ this.message = e, this.name = t;
479
+ var r = Error(e);
480
+ this.stack = r.stack;
481
+ }).prototype = Object.create(Error.prototype), E.prototype.constructor = E;
482
+ }
483
+ function w(e, t) {
484
+ return new Promise(function (r, i) {
485
+ var a = new _(e, t);
486
+ if (a.signal && a.signal.aborted) return i(new E("Aborted", "AbortError"));
487
+ var l = new XMLHttpRequest();
488
+ function d() {
489
+ l.abort();
490
+ }
491
+ if (l.onload = function () {
492
+ var e,
493
+ t,
494
+ o = {
495
+ statusText: l.statusText,
496
+ headers: (e = l.getAllResponseHeaders() || "", t = new s(), e.replace(/\r?\n[\t ]+/g, " ").split("\r").map(function (e) {
497
+ return 0 === e.indexOf("\n") ? e.substr(1, e.length) : e;
498
+ }).forEach(function (e) {
499
+ var r = e.split(":"),
500
+ o = r.shift().trim();
501
+ if (o) {
502
+ var n = r.join(":").trim();
503
+ try {
504
+ t.append(o, n);
505
+ } catch (e) {
506
+ console.warn("Response " + e.message);
507
+ }
508
+ }
509
+ }), t)
510
+ };
511
+ 0 === a.url.indexOf("file://") && (l.status < 200 || l.status > 599) ? o.status = 200 : o.status = l.status, o.url = "responseURL" in l ? l.responseURL : o.headers.get("X-Request-URL");
512
+ var n = "response" in l ? l.response : l.responseText;
513
+ setTimeout(function () {
514
+ r(new v(n, o));
515
+ }, 0);
516
+ }, l.onerror = function () {
517
+ setTimeout(function () {
518
+ i(new TypeError("Network request failed"));
519
+ }, 0);
520
+ }, l.ontimeout = function () {
521
+ setTimeout(function () {
522
+ i(new TypeError("Network request timed out"));
523
+ }, 0);
524
+ }, l.onabort = function () {
525
+ setTimeout(function () {
526
+ i(new E("Aborted", "AbortError"));
527
+ }, 0);
528
+ }, l.open(a.method, function (e) {
529
+ try {
530
+ return "" === e && o.location.href ? o.location.href : e;
531
+ } catch (t) {
532
+ return e;
533
+ }
534
+ }(a.url), !0), "include" === a.credentials ? l.withCredentials = !0 : "omit" === a.credentials && (l.withCredentials = !1), "responseType" in l && (n.blob ? l.responseType = "blob" : n.arrayBuffer && (l.responseType = "arraybuffer")), t && "object" == typeof t.headers && !(t.headers instanceof s || o.Headers && t.headers instanceof o.Headers)) {
535
+ var f = [];
536
+ Object.getOwnPropertyNames(t.headers).forEach(function (e) {
537
+ f.push(u(e)), l.setRequestHeader(e, c(t.headers[e]));
538
+ }), a.headers.forEach(function (e, t) {
539
+ -1 === f.indexOf(t) && l.setRequestHeader(t, e);
540
+ });
541
+ } else a.headers.forEach(function (e, t) {
542
+ l.setRequestHeader(t, e);
543
+ });
544
+ a.signal && (a.signal.addEventListener("abort", d), l.onreadystatechange = function () {
545
+ 4 === l.readyState && a.signal.removeEventListener("abort", d);
546
+ }), l.send(void 0 === a._bodyInit ? null : a._bodyInit);
547
+ });
548
+ }
549
+ w.polyfill = !0, o.fetch || (o.fetch = w, o.Headers = s, o.Request = _, o.Response = v);
550
+ var C,
551
+ k = r(163),
552
+ A = r(500),
553
+ P = r(750),
554
+ O = r(171),
555
+ L = r(768);
556
+ function S(e) {
557
+ return S = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
558
+ return typeof e;
559
+ } : function (e) {
560
+ return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
561
+ }, S(e);
562
+ }
563
+ function B(e, t) {
564
+ var r = Object.keys(e);
565
+ if (Object.getOwnPropertySymbols) {
566
+ var o = Object.getOwnPropertySymbols(e);
567
+ t && (o = o.filter(function (t) {
568
+ return Object.getOwnPropertyDescriptor(e, t).enumerable;
569
+ })), r.push.apply(r, o);
570
+ }
571
+ return r;
572
+ }
573
+ function T(e) {
574
+ for (var t = 1; t < arguments.length; t++) {
575
+ var r = null != arguments[t] ? arguments[t] : {};
576
+ t % 2 ? B(Object(r), !0).forEach(function (t) {
577
+ I(e, t, r[t]);
578
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : B(Object(r)).forEach(function (t) {
579
+ Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));
580
+ });
581
+ }
582
+ return e;
583
+ }
584
+ function I(e, t, r) {
585
+ return (t = function (e) {
586
+ var t = function (e, t) {
587
+ if ("object" != S(e) || !e) return e;
588
+ var r = e[Symbol.toPrimitive];
589
+ if (void 0 !== r) {
590
+ var o = r.call(e, "string");
591
+ if ("object" != S(o)) return o;
592
+ throw new TypeError("@@toPrimitive must return a primitive value.");
593
+ }
594
+ return String(e);
595
+ }(e);
596
+ return "symbol" == S(t) ? t : t + "";
597
+ }(t)) in e ? Object.defineProperty(e, t, {
598
+ value: r,
599
+ enumerable: !0,
600
+ configurable: !0,
601
+ writable: !0
602
+ }) : e[t] = r, e;
603
+ }
604
+ function j(e, t) {
605
+ (null == t || t > e.length) && (t = e.length);
606
+ for (var r = 0, o = Array(t); r < t; r++) o[r] = e[r];
607
+ return o;
608
+ }
609
+ function H() {}
610
+ function M(e) {
611
+ return "string" == typeof e ? "false" !== e && "true" === e : Boolean(e);
612
+ }
613
+ function F() {
614
+ var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "",
615
+ t = r.g.CF.keformsUrl || "";
616
+ return "".concat(t, "/").concat(e).replace(/([^:])\/{2,}/g, "$1/");
617
+ }
618
+ function U(e, t) {
619
+ if (void 0 === t) return e;
620
+ for (var r = [], o = 0, n = Object.keys(t); o < n.length; o++) {
621
+ var i = n[o],
622
+ a = t[i];
623
+ null != a && r.push("".concat(i, "=").concat(encodeURIComponent(a)));
624
+ }
625
+ return 0 === r.length ? e : e + "?" + r.join("&");
626
+ }
627
+ function D(e) {
628
+ return new RegExp("^(?:".concat(e.replace(/\./g, "\\.").replace(/\*/g, "[a-z0-9-._]+"), ")$")).test(r.g.location.host);
629
+ }
630
+ function G(e) {
631
+ return (r.g.location.search.trim().replace(/^(\?|#|&)/, "").split("&").map(function (e) {
632
+ return e.replace(/\+/g, " ").split("=").map(decodeURIComponent);
633
+ }).find(function (t) {
634
+ return (r = t, o = 1, function (e) {
635
+ if (Array.isArray(e)) return e;
636
+ }(r) || function (e, t) {
637
+ var r = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
638
+ if (null != r) {
639
+ var o,
640
+ n,
641
+ i,
642
+ a,
643
+ u = [],
644
+ c = !0,
645
+ l = !1;
646
+ try {
647
+ if (i = (r = r.call(e)).next, 0 === t) {
648
+ if (Object(r) !== r) return;
649
+ c = !1;
650
+ } else for (; !(c = (o = i.call(r)).done) && (u.push(o.value), u.length !== t); c = !0);
651
+ } catch (e) {
652
+ l = !0, n = e;
653
+ } finally {
654
+ try {
655
+ if (!c && null != r.return && (a = r.return(), Object(a) !== a)) return;
656
+ } finally {
657
+ if (l) throw n;
658
+ }
659
+ }
660
+ return u;
661
+ }
662
+ }(r, o) || function (e, t) {
663
+ if (e) {
664
+ if ("string" == typeof e) return j(e, t);
665
+ var r = {}.toString.call(e).slice(8, -1);
666
+ return "Object" === r && e.constructor && (r = e.constructor.name), "Map" === r || "Set" === r ? Array.from(e) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? j(e, t) : void 0;
667
+ }
668
+ }(r, o) || function () {
669
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
670
+ }())[0] == e;
671
+ var r, o;
672
+ }) || [])[1];
673
+ }
674
+ function x(e, t) {
675
+ var r = 0;
676
+ e.forEach(function (o) {
677
+ o(function (o) {
678
+ if (r !== e.length) {
679
+ if (o) return r = e.length, void t(o);
680
+ (r += 1) === e.length && t();
681
+ }
682
+ });
683
+ });
684
+ }
685
+ function R(e, t) {
686
+ var o = e.gfv,
687
+ n = e.engineVersion;
688
+ if (r.g.CF.entryPoint[o]) t();else {
689
+ var i = n && !r.g[n],
690
+ a = "true" === G("debug") ? "" : ".min",
691
+ u = [],
692
+ c = {
693
+ resourceZone: e.resourceZone
694
+ };
695
+ u.push(function (e) {
696
+ return A.q.styleSheet(F(U("static/public/styles/".concat(o).concat(a, ".css"), c)), !0, e);
697
+ }), u.push(function (e) {
698
+ return A.q.script(F(U("static/public/scripts/".concat(o).concat(a, ".js"), c)), e);
699
+ }), i && u.push(function (e) {
700
+ return A.q.styleSheet(F(U("static/public/styles/candy_".concat(n).concat(a, ".css"), c)), !1, e);
701
+ }, function (e) {
702
+ return A.q.script(F(U("static/public/scripts/candy_".concat(n).concat(a, ".js"), c)), e);
703
+ }), x(u, t);
704
+ }
705
+ }
706
+ function N(e, t, o) {
707
+ var n;
708
+ (null !== (n = r.g.CF.entryPoint[t.gfv]) && void 0 !== n ? n : (0, k.ku)("Form entry point ".concat(t.gfv, " not found.")))(e, t).then(function (e) {
709
+ var t = e.publicForm || (0, L.v)(e);
710
+ o(null, t);
711
+ }).catch(o);
712
+ }
713
+ function q(e) {
714
+ if (null != e) return r.g[e] && r.g[e].default;
715
+ }
716
+ function K(e, t) {
717
+ var o,
718
+ n,
719
+ i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : H,
720
+ a = null,
721
+ u = t.ns,
722
+ c = t.draftId;
723
+ if (D(O.r.konturDomains) ? O.r.authorized ? c ? u || (a = new Error("options.ns is required")) : a = new Error("options.draftId is required") : a = new Error("user.unauthenticated") : a = new Error("domain.untrusted"), a) i(a);else {
724
+ var l = null !== (o = t.resourceZone) && void 0 !== o ? o : G("resourceZone"),
725
+ s = U(F((0, P.I)({
726
+ ns: u,
727
+ draftId: c
728
+ })), {
729
+ resourceZone: l
730
+ }),
731
+ d = {
732
+ method: "GET"
733
+ };
734
+ if (null == t.authentication || "browser-credentials-include" === t.authentication) d.credentials = "include";else if ("authSid" in t.authentication && null != t.authentication.authSid) {
735
+ var f;
736
+ d.credentials = "omit", d.headers = null !== (f = d.headers) && void 0 !== f ? f : {}, d.headers.Authorization = "AUTH.SID ".concat(t.authentication.authSid);
737
+ } else d.credentials = "omit";
738
+ (null !== (n = t.fetch) && void 0 !== n ? n : w)(s, d).then(function (e) {
739
+ return e.json();
740
+ }).then(function (o) {
741
+ var n,
742
+ a,
743
+ u,
744
+ c,
745
+ s,
746
+ d = o.gfv,
747
+ f = o.engineVersion,
748
+ y = T(T(T({
749
+ authorized: O.r.authorized,
750
+ cauldronApiUrl: O.r.cauldronApiUrl,
751
+ isTestServer: O.r.isTestServer,
752
+ renderCachingForIE8: O.r.renderCachingForIE8,
753
+ normalizationOnServer: O.r.normalizationOnServer,
754
+ normativeUrl: O.r.normativeUrl,
755
+ konturDomains: O.r.konturDomains,
756
+ showNavigationSidebar: null === (n = t.showNavigationSidebar) || void 0 === n || n,
757
+ onRemoveAttachment: t.onRemoveAttachment
758
+ }, t), o), {}, {
759
+ gfv: d,
760
+ engineVersion: f,
761
+ feedbackEnabled: null !== (a = t.feedbackEnabled) && void 0 !== a ? a : o.feedbackEnabled,
762
+ isDisabledCleanForm: null !== (u = t.isDisabledCleanForm) && void 0 !== u && u,
763
+ isDisabledCloseButton: null !== (c = t.isDisabledCloseButton) && void 0 !== c && c,
764
+ isDisabledCloseAndSaveButton: null !== (s = t.isDisabledCloseAndSaveButton) && void 0 !== s && s,
765
+ resourceZone: l
766
+ });
767
+ R({
768
+ gfv: y.gfv,
769
+ engineVersion: y.engineVersion,
770
+ resourceZone: y.resourceZone,
771
+ theme: y.theme
772
+ }, function (o) {
773
+ if (!o && r.g.CF.entryPoint[d]) {
774
+ var n = q(f);
775
+ N(e, T(T({}, y), {}, {
776
+ templatesApi: t.templatesApi,
777
+ renderForm: n
778
+ }), i);
779
+ } else i(new Error("dynamic loading is not supported for gfv ".concat(d)));
780
+ });
781
+ }).catch(i);
782
+ }
783
+ }
784
+ e = r.hmd(e), (C = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.enterModule : void 0) && C(e), "undefined" != typeof reactHotLoaderGlobal && reactHotLoaderGlobal.default.signature;
785
+ var V,
786
+ W,
787
+ z = {
788
+ start: K,
789
+ entryPoint: {},
790
+ partialRenderingForIE8: M("{partialRenderingForIE8}"),
791
+ keformsUrl: "{keformsUrl}"
792
+ };
793
+ r.g.CF = z, (V = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default : void 0) && (V.register(H, "defaultCallback", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(M, "parseBool", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(F, "url", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(U, "buildUrl", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(D, "isAllowed", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(G, "getParameterByName", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(x, "runParallel", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(function (e, t) {
794
+ try {
795
+ var r,
796
+ o,
797
+ n,
798
+ i,
799
+ a,
800
+ u,
801
+ c,
802
+ l,
803
+ s,
804
+ d,
805
+ f = e.split(".").slice(0, 3).map(function (e) {
806
+ return parseInt(e, 10);
807
+ }),
808
+ y = t.split(".").slice(0, 3).map(function (e) {
809
+ return parseInt(e, 10);
810
+ });
811
+ return (null !== (r = f[0]) && void 0 !== r ? r : 0) > (null !== (o = y[0]) && void 0 !== o ? o : 0) || (null !== (n = f[0]) && void 0 !== n ? n : 0) === (null !== (i = y[0]) && void 0 !== i ? i : 0) && ((null !== (a = f[1]) && void 0 !== a ? a : 0) > (null !== (u = y[1]) && void 0 !== u ? u : 0) || (null !== (c = f[1]) && void 0 !== c ? c : 0) === (null !== (l = y[1]) && void 0 !== l ? l : 0) && (null !== (s = f[2]) && void 0 !== s ? s : 0) >= (null !== (d = y[2]) && void 0 !== d ? d : 0));
812
+ } catch (e) {
813
+ return !1;
814
+ }
815
+ }, "isEngineVersionGreaterThanOrEqual", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(R, "loadForm", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(N, "renderForm", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(q, "getEngineEntryPoint", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(K, "start", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(z, "CandyClientExports", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts")), (W = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.leaveModule : void 0) && W(e);
816
+ },
817
+ 171: function (e, t, r) {
818
+ var o;
819
+ function n(e) {
820
+ return "string" == typeof e ? "false" !== e && "true" === e : Boolean(e);
821
+ }
822
+ r.d(t, {
823
+ r: function () {
824
+ return u;
825
+ }
826
+ }), e = r.hmd(e), (o = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.enterModule : void 0) && o(e), "undefined" != typeof reactHotLoaderGlobal && reactHotLoaderGlobal.default.signature;
827
+ var i,
828
+ a,
829
+ u = {
830
+ authorized: n("{authorized}"),
831
+ cauldronApiUrl: "{cauldronApiUrl}",
832
+ isTestServer: n("{isTestServer}"),
833
+ renderCachingForIE8: n("{renderCachingForIE8}"),
834
+ normalizationOnServer: n("{normalizationOnServer}"),
835
+ normativeUrl: "{normativeUrl}",
836
+ konturDomains: "{konturDomains}"
837
+ };
838
+ (i = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default : void 0) && (i.register(n, "parseBool", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\ClientSettings.ts"), i.register(u, "clientSettings", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\ClientSettings.ts")), (a = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.leaveModule : void 0) && a(e);
839
+ },
840
+ 768: function (module, __webpack_exports__, __webpack_require__) {
841
+ __webpack_require__.d(__webpack_exports__, {
842
+ v: function () {
843
+ return createLegacyPublicForm;
844
+ }
845
+ });
846
+ var _Common_Errors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(336),
847
+ enterModule;
848
+ function _typeof(e) {
849
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
850
+ return typeof e;
851
+ } : function (e) {
852
+ return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
853
+ }, _typeof(e);
854
+ }
855
+ function _regeneratorRuntime() {
856
+ _regeneratorRuntime = function () {
857
+ return t;
858
+ };
859
+ var e,
860
+ t = {},
861
+ r = Object.prototype,
862
+ o = r.hasOwnProperty,
863
+ n = Object.defineProperty || function (e, t, r) {
864
+ e[t] = r.value;
865
+ },
866
+ i = "function" == typeof Symbol ? Symbol : {},
867
+ a = i.iterator || "@@iterator",
868
+ u = i.asyncIterator || "@@asyncIterator",
869
+ c = i.toStringTag || "@@toStringTag";
870
+ function l(e, t, r) {
871
+ return Object.defineProperty(e, t, {
872
+ value: r,
873
+ enumerable: !0,
874
+ configurable: !0,
875
+ writable: !0
876
+ }), e[t];
877
+ }
878
+ try {
879
+ l({}, "");
880
+ } catch (e) {
881
+ l = function (e, t, r) {
882
+ return e[t] = r;
883
+ };
884
+ }
885
+ function s(e, t, r, o) {
886
+ var i = t && t.prototype instanceof _ ? t : _,
887
+ a = Object.create(i.prototype),
888
+ u = new B(o || []);
889
+ return n(a, "_invoke", {
890
+ value: P(e, r, u)
891
+ }), a;
892
+ }
893
+ function d(e, t, r) {
894
+ try {
895
+ return {
896
+ type: "normal",
897
+ arg: e.call(t, r)
898
+ };
899
+ } catch (e) {
900
+ return {
901
+ type: "throw",
902
+ arg: e
903
+ };
904
+ }
905
+ }
906
+ t.wrap = s;
907
+ var f = "suspendedStart",
908
+ y = "suspendedYield",
909
+ p = "executing",
910
+ h = "completed",
911
+ m = {};
912
+ function _() {}
913
+ function g() {}
914
+ function v() {}
915
+ var b = {};
916
+ l(b, a, function () {
917
+ return this;
918
+ });
919
+ var E = Object.getPrototypeOf,
920
+ w = E && E(E(T([])));
921
+ w && w !== r && o.call(w, a) && (b = w);
922
+ var C = v.prototype = _.prototype = Object.create(b);
923
+ function k(e) {
924
+ ["next", "throw", "return"].forEach(function (t) {
925
+ l(e, t, function (e) {
926
+ return this._invoke(t, e);
927
+ });
928
+ });
929
+ }
930
+ function A(e, t) {
931
+ function r(n, i, a, u) {
932
+ var c = d(e[n], e, i);
933
+ if ("throw" !== c.type) {
934
+ var l = c.arg,
935
+ s = l.value;
936
+ return s && "object" == _typeof(s) && o.call(s, "__await") ? t.resolve(s.__await).then(function (e) {
937
+ r("next", e, a, u);
938
+ }, function (e) {
939
+ r("throw", e, a, u);
940
+ }) : t.resolve(s).then(function (e) {
941
+ l.value = e, a(l);
942
+ }, function (e) {
943
+ return r("throw", e, a, u);
944
+ });
945
+ }
946
+ u(c.arg);
947
+ }
948
+ var i;
949
+ n(this, "_invoke", {
950
+ value: function (e, o) {
951
+ function n() {
952
+ return new t(function (t, n) {
953
+ r(e, o, t, n);
954
+ });
955
+ }
956
+ return i = i ? i.then(n, n) : n();
957
+ }
958
+ });
959
+ }
960
+ function P(t, r, o) {
961
+ var n = f;
962
+ return function (i, a) {
963
+ if (n === p) throw Error("Generator is already running");
964
+ if (n === h) {
965
+ if ("throw" === i) throw a;
966
+ return {
967
+ value: e,
968
+ done: !0
969
+ };
970
+ }
971
+ for (o.method = i, o.arg = a;;) {
972
+ var u = o.delegate;
973
+ if (u) {
974
+ var c = O(u, o);
975
+ if (c) {
976
+ if (c === m) continue;
977
+ return c;
978
+ }
979
+ }
980
+ if ("next" === o.method) o.sent = o._sent = o.arg;else if ("throw" === o.method) {
981
+ if (n === f) throw n = h, o.arg;
982
+ o.dispatchException(o.arg);
983
+ } else "return" === o.method && o.abrupt("return", o.arg);
984
+ n = p;
985
+ var l = d(t, r, o);
986
+ if ("normal" === l.type) {
987
+ if (n = o.done ? h : y, l.arg === m) continue;
988
+ return {
989
+ value: l.arg,
990
+ done: o.done
991
+ };
992
+ }
993
+ "throw" === l.type && (n = h, o.method = "throw", o.arg = l.arg);
994
+ }
995
+ };
996
+ }
997
+ function O(t, r) {
998
+ var o = r.method,
999
+ n = t.iterator[o];
1000
+ if (n === e) return r.delegate = null, "throw" === o && t.iterator.return && (r.method = "return", r.arg = e, O(t, r), "throw" === r.method) || "return" !== o && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + o + "' method")), m;
1001
+ var i = d(n, t.iterator, r.arg);
1002
+ if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, m;
1003
+ var a = i.arg;
1004
+ return a ? a.done ? (r[t.resultName] = a.value, r.next = t.nextLoc, "return" !== r.method && (r.method = "next", r.arg = e), r.delegate = null, m) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, m);
1005
+ }
1006
+ function L(e) {
1007
+ var t = {
1008
+ tryLoc: e[0]
1009
+ };
1010
+ 1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), this.tryEntries.push(t);
1011
+ }
1012
+ function S(e) {
1013
+ var t = e.completion || {};
1014
+ t.type = "normal", delete t.arg, e.completion = t;
1015
+ }
1016
+ function B(e) {
1017
+ this.tryEntries = [{
1018
+ tryLoc: "root"
1019
+ }], e.forEach(L, this), this.reset(!0);
1020
+ }
1021
+ function T(t) {
1022
+ if (t || "" === t) {
1023
+ var r = t[a];
1024
+ if (r) return r.call(t);
1025
+ if ("function" == typeof t.next) return t;
1026
+ if (!isNaN(t.length)) {
1027
+ var n = -1,
1028
+ i = function r() {
1029
+ for (; ++n < t.length;) if (o.call(t, n)) return r.value = t[n], r.done = !1, r;
1030
+ return r.value = e, r.done = !0, r;
1031
+ };
1032
+ return i.next = i;
1033
+ }
1034
+ }
1035
+ throw new TypeError(_typeof(t) + " is not iterable");
1036
+ }
1037
+ return g.prototype = v, n(C, "constructor", {
1038
+ value: v,
1039
+ configurable: !0
1040
+ }), n(v, "constructor", {
1041
+ value: g,
1042
+ configurable: !0
1043
+ }), g.displayName = l(v, c, "GeneratorFunction"), t.isGeneratorFunction = function (e) {
1044
+ var t = "function" == typeof e && e.constructor;
1045
+ return !!t && (t === g || "GeneratorFunction" === (t.displayName || t.name));
1046
+ }, t.mark = function (e) {
1047
+ return Object.setPrototypeOf ? Object.setPrototypeOf(e, v) : (e.__proto__ = v, l(e, c, "GeneratorFunction")), e.prototype = Object.create(C), e;
1048
+ }, t.awrap = function (e) {
1049
+ return {
1050
+ __await: e
1051
+ };
1052
+ }, k(A.prototype), l(A.prototype, u, function () {
1053
+ return this;
1054
+ }), t.AsyncIterator = A, t.async = function (e, r, o, n, i) {
1055
+ void 0 === i && (i = Promise);
1056
+ var a = new A(s(e, r, o, n), i);
1057
+ return t.isGeneratorFunction(r) ? a : a.next().then(function (e) {
1058
+ return e.done ? e.value : a.next();
1059
+ });
1060
+ }, k(C), l(C, c, "Generator"), l(C, a, function () {
1061
+ return this;
1062
+ }), l(C, "toString", function () {
1063
+ return "[object Generator]";
1064
+ }), t.keys = function (e) {
1065
+ var t = Object(e),
1066
+ r = [];
1067
+ for (var o in t) r.push(o);
1068
+ return r.reverse(), function e() {
1069
+ for (; r.length;) {
1070
+ var o = r.pop();
1071
+ if (o in t) return e.value = o, e.done = !1, e;
1072
+ }
1073
+ return e.done = !0, e;
1074
+ };
1075
+ }, t.values = T, B.prototype = {
1076
+ constructor: B,
1077
+ reset: function (t) {
1078
+ if (this.prev = 0, this.next = 0, this.sent = this._sent = e, this.done = !1, this.delegate = null, this.method = "next", this.arg = e, this.tryEntries.forEach(S), !t) for (var r in this) "t" === r.charAt(0) && o.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = e);
1079
+ },
1080
+ stop: function () {
1081
+ this.done = !0;
1082
+ var e = this.tryEntries[0].completion;
1083
+ if ("throw" === e.type) throw e.arg;
1084
+ return this.rval;
1085
+ },
1086
+ dispatchException: function (t) {
1087
+ if (this.done) throw t;
1088
+ var r = this;
1089
+ function n(o, n) {
1090
+ return u.type = "throw", u.arg = t, r.next = o, n && (r.method = "next", r.arg = e), !!n;
1091
+ }
1092
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
1093
+ var a = this.tryEntries[i],
1094
+ u = a.completion;
1095
+ if ("root" === a.tryLoc) return n("end");
1096
+ if (a.tryLoc <= this.prev) {
1097
+ var c = o.call(a, "catchLoc"),
1098
+ l = o.call(a, "finallyLoc");
1099
+ if (c && l) {
1100
+ if (this.prev < a.catchLoc) return n(a.catchLoc, !0);
1101
+ if (this.prev < a.finallyLoc) return n(a.finallyLoc);
1102
+ } else if (c) {
1103
+ if (this.prev < a.catchLoc) return n(a.catchLoc, !0);
1104
+ } else {
1105
+ if (!l) throw Error("try statement without catch or finally");
1106
+ if (this.prev < a.finallyLoc) return n(a.finallyLoc);
1107
+ }
1108
+ }
1109
+ }
1110
+ },
1111
+ abrupt: function (e, t) {
1112
+ for (var r = this.tryEntries.length - 1; r >= 0; --r) {
1113
+ var n = this.tryEntries[r];
1114
+ if (n.tryLoc <= this.prev && o.call(n, "finallyLoc") && this.prev < n.finallyLoc) {
1115
+ var i = n;
1116
+ break;
1117
+ }
1118
+ }
1119
+ i && ("break" === e || "continue" === e) && i.tryLoc <= t && t <= i.finallyLoc && (i = null);
1120
+ var a = i ? i.completion : {};
1121
+ return a.type = e, a.arg = t, i ? (this.method = "next", this.next = i.finallyLoc, m) : this.complete(a);
1122
+ },
1123
+ complete: function (e, t) {
1124
+ if ("throw" === e.type) throw e.arg;
1125
+ return "break" === e.type || "continue" === e.type ? this.next = e.arg : "return" === e.type ? (this.rval = this.arg = e.arg, this.method = "return", this.next = "end") : "normal" === e.type && t && (this.next = t), m;
1126
+ },
1127
+ finish: function (e) {
1128
+ for (var t = this.tryEntries.length - 1; t >= 0; --t) {
1129
+ var r = this.tryEntries[t];
1130
+ if (r.finallyLoc === e) return this.complete(r.completion, r.afterLoc), S(r), m;
1131
+ }
1132
+ },
1133
+ catch: function (e) {
1134
+ for (var t = this.tryEntries.length - 1; t >= 0; --t) {
1135
+ var r = this.tryEntries[t];
1136
+ if (r.tryLoc === e) {
1137
+ var o = r.completion;
1138
+ if ("throw" === o.type) {
1139
+ var n = o.arg;
1140
+ S(r);
1141
+ }
1142
+ return n;
1143
+ }
1144
+ }
1145
+ throw Error("illegal catch attempt");
1146
+ },
1147
+ delegateYield: function (t, r, o) {
1148
+ return this.delegate = {
1149
+ iterator: T(t),
1150
+ resultName: r,
1151
+ nextLoc: o
1152
+ }, "next" === this.method && (this.arg = e), m;
1153
+ }
1154
+ }, t;
1155
+ }
1156
+ function asyncGeneratorStep(e, t, r, o, n, i, a) {
1157
+ try {
1158
+ var u = e[i](a),
1159
+ c = u.value;
1160
+ } catch (e) {
1161
+ return void r(e);
1162
+ }
1163
+ u.done ? t(c) : Promise.resolve(c).then(o, n);
1164
+ }
1165
+ function _asyncToGenerator(e) {
1166
+ return function () {
1167
+ var t = this,
1168
+ r = arguments;
1169
+ return new Promise(function (o, n) {
1170
+ var i = e.apply(t, r);
1171
+ function a(e) {
1172
+ asyncGeneratorStep(i, o, n, a, u, "next", e);
1173
+ }
1174
+ function u(e) {
1175
+ asyncGeneratorStep(i, o, n, a, u, "throw", e);
1176
+ }
1177
+ a(void 0);
1178
+ });
1179
+ };
1180
+ }
1181
+ function _classCallCheck(e, t) {
1182
+ if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
1183
+ }
1184
+ function _defineProperties(e, t) {
1185
+ for (var r = 0; r < t.length; r++) {
1186
+ var o = t[r];
1187
+ o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);
1188
+ }
1189
+ }
1190
+ function _createClass(e, t, r) {
1191
+ return t && _defineProperties(e.prototype, t), r && _defineProperties(e, r), Object.defineProperty(e, "prototype", {
1192
+ writable: !1
1193
+ }), e;
1194
+ }
1195
+ function ownKeys(e, t) {
1196
+ var r = Object.keys(e);
1197
+ if (Object.getOwnPropertySymbols) {
1198
+ var o = Object.getOwnPropertySymbols(e);
1199
+ t && (o = o.filter(function (t) {
1200
+ return Object.getOwnPropertyDescriptor(e, t).enumerable;
1201
+ })), r.push.apply(r, o);
1202
+ }
1203
+ return r;
1204
+ }
1205
+ function _objectSpread(e) {
1206
+ for (var t = 1; t < arguments.length; t++) {
1207
+ var r = null != arguments[t] ? arguments[t] : {};
1208
+ t % 2 ? ownKeys(Object(r), !0).forEach(function (t) {
1209
+ _defineProperty(e, t, r[t]);
1210
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : ownKeys(Object(r)).forEach(function (t) {
1211
+ Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));
1212
+ });
1213
+ }
1214
+ return e;
1215
+ }
1216
+ function _defineProperty(e, t, r) {
1217
+ return (t = _toPropertyKey(t)) in e ? Object.defineProperty(e, t, {
1218
+ value: r,
1219
+ enumerable: !0,
1220
+ configurable: !0,
1221
+ writable: !0
1222
+ }) : e[t] = r, e;
1223
+ }
1224
+ function _toPropertyKey(e) {
1225
+ var t = _toPrimitive(e, "string");
1226
+ return "symbol" == _typeof(t) ? t : t + "";
1227
+ }
1228
+ function _toPrimitive(e, t) {
1229
+ if ("object" != _typeof(e) || !e) return e;
1230
+ var r = e[Symbol.toPrimitive];
1231
+ if (void 0 !== r) {
1232
+ var o = r.call(e, t || "default");
1233
+ if ("object" != _typeof(o)) return o;
1234
+ throw new TypeError("@@toPrimitive must return a primitive value.");
1235
+ }
1236
+ return ("string" === t ? String : Number)(e);
1237
+ }
1238
+ module = __webpack_require__.hmd(module), enterModule = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.enterModule : void 0, enterModule && enterModule(module);
1239
+ var __signature__ = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default.signature : function (e) {
1240
+ return e;
1241
+ };
1242
+ function modelChangeEventPath(e, t) {
1243
+ if (null != t) {
1244
+ if (null == e) throw new Error("Path must be defined");
1245
+ return ["model", "change", e, t];
1246
+ }
1247
+ return null != e ? ["model", "change", e] : ["model", "change"];
1248
+ }
1249
+ function mapChunkValues(e) {
1250
+ return Object.keys(e).filter(function (t) {
1251
+ return e[t] && Object.prototype.hasOwnProperty.call(e[t], "value");
1252
+ }).map(function (t) {
1253
+ var r = e[t];
1254
+ return null == r ? {} : _defineProperty({}, t, r.value);
1255
+ });
1256
+ }
1257
+ function reduceChunkValues(e) {
1258
+ return e.reduce(function (e, t) {
1259
+ return _objectSpread(_objectSpread({}, e), t);
1260
+ }, {});
1261
+ }
1262
+ var LegacyPublicForm = function () {
1263
+ function LegacyPublicForm(e) {
1264
+ _classCallCheck(this, LegacyPublicForm), this.form = void 0, this.form = e;
1265
+ }
1266
+ return _createClass(LegacyPublicForm, [{
1267
+ key: "navigateByHighlanderPaths",
1268
+ value: function (e) {
1269
+ throw new Error("Method not implemented.");
1270
+ }
1271
+ }, {
1272
+ key: "cancelSelectRelative",
1273
+ value: function () {
1274
+ throw new Error("Method not implemented.");
1275
+ }
1276
+ }, {
1277
+ key: "getNavigationPathMapper",
1278
+ value: function () {
1279
+ throw new Error("Method not implemented.");
1280
+ }
1281
+ }, {
1282
+ key: "batchUpdate",
1283
+ value: function (e) {
1284
+ throw new Error("Method not implemented.");
1285
+ }
1286
+ }, {
1287
+ key: "runCheck",
1288
+ value: function () {
1289
+ throw new Error("Method not implemented.");
1290
+ }
1291
+ }, {
1292
+ key: "setErrorLog",
1293
+ value: function (e) {
1294
+ throw new Error("Method not implemented.");
1295
+ }
1296
+ }, {
1297
+ key: "validateChildrenByPath",
1298
+ value: (_validateChildrenByPath = _asyncToGenerator(_regeneratorRuntime().mark(function e(t) {
1299
+ return _regeneratorRuntime().wrap(function (e) {
1300
+ for (;;) switch (e.prev = e.next) {
1301
+ case 0:
1302
+ throw new Error("Method not implemented.");
1303
+ case 1:
1304
+ case "end":
1305
+ return e.stop();
1306
+ }
1307
+ }, e);
1308
+ })), function (e) {
1309
+ return _validateChildrenByPath.apply(this, arguments);
1310
+ })
1311
+ }, {
1312
+ key: "__INTERNAL__importFromEmployeeService",
1313
+ value: function () {
1314
+ throw new Error("Method not implemented.");
1315
+ }
1316
+ }, {
1317
+ key: "__INTERNAL__getSelectFunctionForDisableEmployeeInSS",
1318
+ value: (_INTERNAL__getSelectFunctionForDisableEmployeeInSS = _asyncToGenerator(_regeneratorRuntime().mark(function e(t) {
1319
+ return _regeneratorRuntime().wrap(function (e) {
1320
+ for (;;) switch (e.prev = e.next) {
1321
+ case 0:
1322
+ throw new Error("Method not implemented.");
1323
+ case 1:
1324
+ case "end":
1325
+ return e.stop();
1326
+ }
1327
+ }, e);
1328
+ })), function (e) {
1329
+ return _INTERNAL__getSelectFunctionForDisableEmployeeInSS.apply(this, arguments);
1330
+ })
1331
+ }, {
1332
+ key: "getModalUnitOpenedInstance",
1333
+ value: function (e) {
1334
+ throw new Error("Method not implemented.");
1335
+ }
1336
+ }, {
1337
+ key: "getTabsState",
1338
+ value: function () {
1339
+ throw new Error("Method not implemented.");
1340
+ }
1341
+ }, {
1342
+ key: "navigate",
1343
+ value: function (e) {
1344
+ throw new Error("Method not implemented.");
1345
+ }
1346
+ }, {
1347
+ key: "importEmployerDocuments",
1348
+ value: function (e) {
1349
+ throw new Error("Method not implemented.");
1350
+ }
1351
+ }, {
1352
+ key: "importEmployees",
1353
+ value: function (e, t) {
1354
+ throw new Error("Method not implemented.");
1355
+ }
1356
+ }, {
1357
+ key: "print",
1358
+ value: function (e, t) {
1359
+ throw new Error("Method not implemented.");
1360
+ }
1361
+ }, {
1362
+ key: "runMassAction",
1363
+ value: function (e, t) {
1364
+ throw new Error("Method not implemented.");
1365
+ }
1366
+ }, {
1367
+ key: "getByGId",
1368
+ value: function (e, t) {
1369
+ return this.form.picklistsProvider.getDigestApiPicklist(e).query(t);
1370
+ }
1371
+ }, {
1372
+ key: "on",
1373
+ value: function (e, t) {
1374
+ this.form.eventManager.on(["form", e], t);
1375
+ }
1376
+ }, {
1377
+ key: "off",
1378
+ value: function (e, t) {
1379
+ this.form.eventManager.off(["form", e], t);
1380
+ }
1381
+ }, {
1382
+ key: "onModelChange",
1383
+ value: function (e, t) {
1384
+ throw Error("form.onModelChange() is not supported yet");
1385
+ }
1386
+ }, {
1387
+ key: "save",
1388
+ value: function () {
1389
+ return this.form.changeSet.send();
1390
+ }
1391
+ }, {
1392
+ key: "close",
1393
+ value: function () {
1394
+ return this.form.changeSet.stopAutosend(), this.form.unmount && this.form.unmount(), this.form.changeSet.send();
1395
+ }
1396
+ }, {
1397
+ key: "getTourSteps",
1398
+ value: function () {
1399
+ return [];
1400
+ }
1401
+ }, {
1402
+ key: "validate",
1403
+ value: function () {
1404
+ var e = Object.keys(this.form.model.getChunk(this.form.settings.formRoot));
1405
+ return this.form.validator.validateAll(e);
1406
+ }
1407
+ }, {
1408
+ key: "getAdditionalEmployeeInfo",
1409
+ value: function (e) {
1410
+ throw new Error("not implemented");
1411
+ }
1412
+ }, {
1413
+ key: "getEmployees",
1414
+ value: function () {
1415
+ throw new Error("not implemented");
1416
+ }
1417
+ }, {
1418
+ key: "mergeRelative",
1419
+ value: function () {
1420
+ throw new Error("not implemented");
1421
+ }
1422
+ }, {
1423
+ key: "patchRelative",
1424
+ value: function () {
1425
+ throw new Error("not implemented");
1426
+ }
1427
+ }, {
1428
+ key: "sendMetrics",
1429
+ value: function (e, t) {}
1430
+ }, {
1431
+ key: "matchEmployee",
1432
+ value: function (e) {
1433
+ throw new Error("not implemented");
1434
+ }
1435
+ }, {
1436
+ key: "reloadInner",
1437
+ value: (_reloadInner = _asyncToGenerator(_regeneratorRuntime().mark(function e() {
1438
+ return _regeneratorRuntime().wrap(function (e) {
1439
+ for (;;) switch (e.prev = e.next) {
1440
+ case 0:
1441
+ throw new Error("not implemented");
1442
+ case 1:
1443
+ case "end":
1444
+ return e.stop();
1445
+ }
1446
+ }, e);
1447
+ })), function () {
1448
+ return _reloadInner.apply(this, arguments);
1449
+ })
1450
+ }, {
1451
+ key: "getWorkingEventsForEmployee",
1452
+ value: function (e) {
1453
+ throw new Error("not implemented");
1454
+ }
1455
+ }, {
1456
+ key: "hasErrors",
1457
+ value: function () {
1458
+ var e = this.form.model.get(this.form.settings.formRoot, "errorsCount");
1459
+ return null != e && e > 0;
1460
+ }
1461
+ }, {
1462
+ key: "onErrorsCountChanged",
1463
+ value: function (e) {
1464
+ this.form.eventManager.on(modelChangeEventPath(this.form.settings.formRoot, "errorsCount"), e);
1465
+ }
1466
+ }, {
1467
+ key: "offErrorsCountChanged",
1468
+ value: function (e) {
1469
+ this.form.eventManager.off(modelChangeEventPath(this.form.settings.formRoot, "errorsCount"), e);
1470
+ }
1471
+ }, {
1472
+ key: "set",
1473
+ value: function (e, t) {
1474
+ if (null === e || "string" == typeof e || "object" !== _typeof(e) || Array.isArray(e)) {
1475
+ if ("string" != typeof e) throw new Error("form.set() parameter should be string path or object with path-value pairs");
1476
+ this.form.model.set(e, "value", t);
1477
+ } else {
1478
+ var r = Object.keys(e).reduce(function (t, r) {
1479
+ return _objectSpread(_defineProperty({}, r, {
1480
+ value: e[r]
1481
+ }), t);
1482
+ }, {});
1483
+ this.form.model.fill(r);
1484
+ }
1485
+ }
1486
+ }, {
1487
+ key: "get",
1488
+ value: function (e) {
1489
+ var t = this;
1490
+ if (Array.isArray(e)) return reduceChunkValues(e.map(function (e) {
1491
+ return mapChunkValues(t.form.model.getChunk(e));
1492
+ }).reduce(function (e, t) {
1493
+ return e.concat(t);
1494
+ }, []));
1495
+ if ("string" == typeof e) return reduceChunkValues(mapChunkValues(this.form.model.getChunk(e)));
1496
+ if (void 0 === e) return reduceChunkValues(mapChunkValues(this.form.model.getChunk(this.form.settings.formRoot)));
1497
+ throw new Error("form.get() parameter should be string path or array of paths");
1498
+ }
1499
+ }, {
1500
+ key: "getValue",
1501
+ value: function (e) {
1502
+ return this.form.model.get(e, "value");
1503
+ }
1504
+ }, {
1505
+ key: "copySubtree",
1506
+ value: function (e, t, r) {
1507
+ throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
1508
+ }
1509
+ }, {
1510
+ key: "addInstance",
1511
+ value: function (e) {
1512
+ throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
1513
+ }
1514
+ }, {
1515
+ key: "getChildren",
1516
+ value: function (e) {
1517
+ throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
1518
+ }
1519
+ }, {
1520
+ key: "uuidGenerate",
1521
+ value: function () {
1522
+ throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
1523
+ }
1524
+ }, {
1525
+ key: "showModal",
1526
+ value: function (e) {
1527
+ throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
1528
+ }
1529
+ }, {
1530
+ key: "addSection",
1531
+ value: function (e) {
1532
+ throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
1533
+ }
1534
+ }, {
1535
+ key: "callInitSection",
1536
+ value: function (e) {
1537
+ throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
1538
+ }
1539
+ }, {
1540
+ key: "preferredInterdocumentTransfer",
1541
+ value: function (e) {
1542
+ throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
1543
+ }
1544
+ }, {
1545
+ key: "createFiasApiClient",
1546
+ value: function (e) {
1547
+ throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
1548
+ }
1549
+ }, {
1550
+ key: "openEmployeeEditor",
1551
+ value: function (e) {
1552
+ throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
1553
+ }
1554
+ }, {
1555
+ key: "removeInstance",
1556
+ value: function (e, t) {
1557
+ throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
1558
+ }
1559
+ }, {
1560
+ key: "removeInstances",
1561
+ value: function (e, t) {
1562
+ throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
1563
+ }
1564
+ }, {
1565
+ key: "focusOnControlIfExist",
1566
+ value: function (e) {
1567
+ throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
1568
+ }
1569
+ }, {
1570
+ key: "setAutoFieldsToAutoValue",
1571
+ value: function (e) {
1572
+ return Promise.resolve(void 0);
1573
+ }
1574
+ }, {
1575
+ key: "ensureInstanceFullyLoaded",
1576
+ value: function (e) {
1577
+ throw new Error("Method not implemented.");
1578
+ }
1579
+ }, {
1580
+ key: "customNormalize",
1581
+ value: function (e, t) {
1582
+ throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
1583
+ }
1584
+ }, {
1585
+ key: "removeInstancesByRules",
1586
+ value: function (e) {
1587
+ throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
1588
+ }
1589
+ }, {
1590
+ key: "createDnp",
1591
+ value: function () {
1592
+ throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
1593
+ }
1594
+ }, {
1595
+ key: "getSelectedInstances",
1596
+ value: function (e, t, r) {
1597
+ return Promise.resolve([]);
1598
+ }
1599
+ }, {
1600
+ key: "__reactstandin__regenerateByEval",
1601
+ value: function __reactstandin__regenerateByEval(key, code) {
1602
+ this[key] = eval(code);
1603
+ }
1604
+ }]);
1605
+ var _reloadInner, _INTERNAL__getSelectFunctionForDisableEmployeeInSS, _validateChildrenByPath;
1606
+ }(),
1607
+ reactHotLoader,
1608
+ leaveModule;
1609
+ function createLegacyPublicForm(e) {
1610
+ return new LegacyPublicForm(e);
1611
+ }
1612
+ reactHotLoader = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default : void 0, reactHotLoader && (reactHotLoader.register(modelChangeEventPath, "modelChangeEventPath", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\LegacyPublicForm\\CreateLegacyPublicForm.ts"), reactHotLoader.register(mapChunkValues, "mapChunkValues", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\LegacyPublicForm\\CreateLegacyPublicForm.ts"), reactHotLoader.register(reduceChunkValues, "reduceChunkValues", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\LegacyPublicForm\\CreateLegacyPublicForm.ts"), reactHotLoader.register(LegacyPublicForm, "LegacyPublicForm", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\LegacyPublicForm\\CreateLegacyPublicForm.ts"), reactHotLoader.register(createLegacyPublicForm, "createLegacyPublicForm", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\LegacyPublicForm\\CreateLegacyPublicForm.ts")), leaveModule = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.leaveModule : void 0, leaveModule && leaveModule(module);
1613
+ },
1614
+ 500: function (e, t, r) {
1615
+ var o;
1616
+ function n(e) {
1617
+ return n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
1618
+ return typeof e;
1619
+ } : function (e) {
1620
+ return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
1621
+ }, n(e);
1622
+ }
1623
+ function i(e, t) {
1624
+ for (var r = 0; r < t.length; r++) {
1625
+ var o = t[r];
1626
+ o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, a(o.key), o);
1627
+ }
1628
+ }
1629
+ function a(e) {
1630
+ var t = function (e, t) {
1631
+ if ("object" != n(e) || !e) return e;
1632
+ var r = e[Symbol.toPrimitive];
1633
+ if (void 0 !== r) {
1634
+ var o = r.call(e, "string");
1635
+ if ("object" != n(o)) return o;
1636
+ throw new TypeError("@@toPrimitive must return a primitive value.");
1637
+ }
1638
+ return String(e);
1639
+ }(e);
1640
+ return "symbol" == n(t) ? t : t + "";
1641
+ }
1642
+ r.d(t, {
1643
+ q: function () {
1644
+ return l;
1645
+ }
1646
+ }), e = r.hmd(e), (o = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.enterModule : void 0) && o(e), "undefined" != typeof reactHotLoaderGlobal && reactHotLoaderGlobal.default.signature;
1647
+ var u,
1648
+ c,
1649
+ l = function () {
1650
+ return e = function e() {
1651
+ !function (e, t) {
1652
+ if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
1653
+ }(this, e);
1654
+ }, t = [{
1655
+ key: "script",
1656
+ value: function (e, t) {
1657
+ var r = !1,
1658
+ o = document.getElementsByTagName("head")[0] || document.documentElement,
1659
+ n = document.createElement("script");
1660
+ function i() {
1661
+ r || n.readyState && "loaded" !== n.readyState && "complete" !== n.readyState || (r = !0, t());
1662
+ }
1663
+ n.onload = i, n.onreadystatechange = i, n.onerror = function () {
1664
+ n.parentNode && n.parentNode.removeChild(n), t(new Error("Error while loading script."));
1665
+ }, n.src = e, n.setAttribute("crossorigin", "use-credentials"), o.appendChild(n);
1666
+ }
1667
+ }, {
1668
+ key: "styleSheet",
1669
+ value: function (e, t, r) {
1670
+ var o,
1671
+ n = null !== (o = document.getElementsByTagName("head")[0]) && void 0 !== o ? o : document.documentElement,
1672
+ i = document.createElement("link");
1673
+ i.setAttribute("rel", "stylesheet"), i.setAttribute("type", "text/css"), i.addEventListener("load", function () {
1674
+ return r(void 0);
1675
+ }), i.addEventListener("error", function () {
1676
+ r(t ? void 0 : new Error("Error while loading stylesheet."));
1677
+ }), n.appendChild(i), i.setAttribute("href", e);
1678
+ }
1679
+ }], null && i(e.prototype, null), t && i(e, t), Object.defineProperty(e, "prototype", {
1680
+ writable: !1
1681
+ }), e;
1682
+ var e, t;
1683
+ }();
1684
+ (u = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default : void 0) && u.register(l, "LoadIntoDocument", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Helpers\\LoadIntoDocument.ts"), (c = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.leaveModule : void 0) && c(e);
1685
+ }
1686
+ },
1687
+ __webpack_module_cache__ = {};
1688
+ function __webpack_require__(e) {
1689
+ var t = __webpack_module_cache__[e];
1690
+ if (void 0 !== t) return t.exports;
1691
+ var r = __webpack_module_cache__[e] = {
1692
+ id: e,
1693
+ loaded: !1,
1694
+ exports: {}
1695
+ };
1696
+ return __webpack_modules__[e](r, r.exports, __webpack_require__), r.loaded = !0, r.exports;
1697
+ }
1698
+ __webpack_require__.d = function (e, t) {
1699
+ for (var r in t) __webpack_require__.o(t, r) && !__webpack_require__.o(e, r) && Object.defineProperty(e, r, {
1700
+ enumerable: !0,
1701
+ get: t[r]
1702
+ });
1703
+ }, __webpack_require__.g = function () {
1704
+ if ("object" == typeof globalThis) return globalThis;
1705
+ try {
1706
+ return this || new Function("return this")();
1707
+ } catch (e) {
1708
+ if ("object" == typeof window) return window;
1709
+ }
1710
+ }(), __webpack_require__.hmd = function (e) {
1711
+ return (e = Object.create(e)).children || (e.children = []), Object.defineProperty(e, "exports", {
1712
+ enumerable: !0,
1713
+ set: function () {
1714
+ throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: " + e.id);
1715
+ }
1716
+ }), e;
1717
+ }, __webpack_require__.o = function (e, t) {
1718
+ return Object.prototype.hasOwnProperty.call(e, t);
1719
+ };
1720
+ var __webpack_exports__ = __webpack_require__(591);
1721
+ })();
1722
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJuIiwiaSIsImEiLCJlIiwiY29uY2F0IiwibnMiLCJkcmFmdElkIiwiciIsImQiLCJ0IiwiSSIsImhtZCIsIm8iLCJyZWFjdEhvdExvYWRlckdsb2JhbCIsImVudGVyTW9kdWxlIiwiZGVmYXVsdCIsInNpZ25hdHVyZSIsInJlZ2lzdGVyIiwibGVhdmVNb2R1bGUiLCJtb2R1bGUiLCJfX3dlYnBhY2tfZXhwb3J0c19fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIl90eXBlb2YiLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiX2NsYXNzQ2FsbENoZWNrIiwiVHlwZUVycm9yIiwiX2RlZmluZVByb3BlcnRpZXMiLCJsZW5ndGgiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5Iiwia2V5IiwiX2NyZWF0ZUNsYXNzIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiU3RyaW5nIiwiTnVtYmVyIiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJhcHBseSIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJSZWZlcmVuY2VFcnJvciIsIl9pbmhlcml0cyIsImNyZWF0ZSIsInZhbHVlIiwiX3NldFByb3RvdHlwZU9mIiwiX3dyYXBOYXRpdmVTdXBlciIsIk1hcCIsIl9pc05hdGl2ZUZ1bmN0aW9uIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX2NvbnN0cnVjdCIsImFyZ3VtZW50cyIsInB1c2giLCJiaW5kIiwiQm9vbGVhbiIsInZhbHVlT2YiLCJGdW5jdGlvbiIsInRvU3RyaW5nIiwiaW5kZXhPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZ2V0UHJvdG90eXBlT2YiLCJFSCIsIk5vdEltcGxlbWVudGVkRXJyb3IiLCJfX3NpZ25hdHVyZV9fIiwiQXBwbGljYXRpb25FcnJvciIsIl9FcnJvciIsIm5hbWUiLCJfX3JlYWN0c3RhbmRpbl9fcmVnZW5lcmF0ZUJ5RXZhbCIsImNvZGUiLCJldmFsIiwiRXJyb3IiLCJfQXBwbGljYXRpb25FcnJvciIsIk5vdFN1cHBvcnRlZEVycm9yIiwiX0FwcGxpY2F0aW9uRXJyb3IyIiwiSW52YWxpZFByb2dyYW1TdGF0ZUVycm9yIiwiX0FwcGxpY2F0aW9uRXJyb3IzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJfQXBwbGljYXRpb25FcnJvcjQiLCJUeXBpbmdFcnJvciIsIl9BcHBsaWNhdGlvbkVycm9yNSIsInJlYWN0SG90TG9hZGVyIiwidSIsImMiLCJsIiwicyIsImYiLCJrdSIsIm1lc3NhZ2UiLCJBcnJheSIsImlzQXJyYXkiLCJ0cmltIiwic2xpY2UiLCJnbG9iYWxUaGlzIiwic2VsZiIsImciLCJzZWFyY2hQYXJhbXMiLCJpdGVyYWJsZSIsImJsb2IiLCJCbG9iIiwiZm9ybURhdGEiLCJhcnJheUJ1ZmZlciIsIkFycmF5QnVmZmVyIiwiaXNWaWV3IiwidGVzdCIsInRvTG93ZXJDYXNlIiwibmV4dCIsInNoaWZ0IiwiZG9uZSIsIm1hcCIsImZvckVhY2giLCJhcHBlbmQiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiX25vQm9keSIsImJvZHlVc2VkIiwiUHJvbWlzZSIsInJlamVjdCIsIm9ubG9hZCIsInJlc3VsdCIsIm9uZXJyb3IiLCJlcnJvciIsInkiLCJGaWxlUmVhZGVyIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJwIiwiVWludDhBcnJheSIsImJ5dGVMZW5ndGgiLCJidWZmZXIiLCJoIiwiX2luaXRCb2R5IiwiX2JvZHlJbml0IiwiX2JvZHlUZXh0IiwiaXNQcm90b3R5cGVPZiIsIl9ib2R5QmxvYiIsIkZvcm1EYXRhIiwiX2JvZHlGb3JtRGF0YSIsIlVSTFNlYXJjaFBhcmFtcyIsIkRhdGFWaWV3IiwiX2JvZHlBcnJheUJ1ZmZlciIsImhlYWRlcnMiLCJ0eXBlIiwicmVzb2x2ZSIsImJ5dGVPZmZzZXQiLCJ0aGVuIiwidGV4dCIsImV4ZWMiLCJyZWFkQXNUZXh0IiwiZnJvbUNoYXJDb2RlIiwiam9pbiIsImpzb24iLCJKU09OIiwicGFyc2UiLCJkZWxldGUiLCJoYXNPd25Qcm9wZXJ0eSIsImtleXMiLCJ2YWx1ZXMiLCJlbnRyaWVzIiwibSIsIl8iLCJib2R5IiwidXJsIiwiY3JlZGVudGlhbHMiLCJtZXRob2QiLCJtb2RlIiwic2lnbmFsIiwidG9VcHBlckNhc2UiLCJBYm9ydENvbnRyb2xsZXIiLCJyZWZlcnJlciIsImNhY2hlIiwicmVwbGFjZSIsIkRhdGUiLCJnZXRUaW1lIiwic3BsaXQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJ2Iiwic3RhdHVzIiwiUmFuZ2VFcnJvciIsIm9rIiwic3RhdHVzVGV4dCIsImNsb25lIiwiYiIsInJlZGlyZWN0IiwibG9jYXRpb24iLCJFIiwiRE9NRXhjZXB0aW9uIiwic3RhY2siLCJ3IiwiYWJvcnRlZCIsIlhNTEh0dHBSZXF1ZXN0IiwiYWJvcnQiLCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiLCJzdWJzdHIiLCJjb25zb2xlIiwid2FybiIsInJlc3BvbnNlVVJMIiwicmVzcG9uc2UiLCJyZXNwb25zZVRleHQiLCJzZXRUaW1lb3V0Iiwib250aW1lb3V0Iiwib25hYm9ydCIsIm9wZW4iLCJocmVmIiwid2l0aENyZWRlbnRpYWxzIiwicmVzcG9uc2VUeXBlIiwiSGVhZGVycyIsInNldFJlcXVlc3RIZWFkZXIiLCJhZGRFdmVudExpc3RlbmVyIiwib25yZWFkeXN0YXRlY2hhbmdlIiwicmVhZHlTdGF0ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJzZW5kIiwicG9seWZpbGwiLCJmZXRjaCIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkMiLCJrIiwiQSIsIlAiLCJPIiwiTCIsIlMiLCJCIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiVCIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiaiIsIkgiLCJNIiwiRiIsIkNGIiwia2Vmb3Jtc1VybCIsIlUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJEIiwiUmVnRXhwIiwiaG9zdCIsIkciLCJzZWFyY2giLCJmaW5kIiwicmV0dXJuIiwiZnJvbSIsIngiLCJSIiwiZ2Z2IiwiZW5naW5lVmVyc2lvbiIsImVudHJ5UG9pbnQiLCJyZXNvdXJjZVpvbmUiLCJxIiwic3R5bGVTaGVldCIsInNjcmlwdCIsIk4iLCJwdWJsaWNGb3JtIiwiY2F0Y2giLCJLIiwia29udHVyRG9tYWlucyIsImF1dGhvcml6ZWQiLCJhdXRoZW50aWNhdGlvbiIsImF1dGhTaWQiLCJBdXRob3JpemF0aW9uIiwiY2F1bGRyb25BcGlVcmwiLCJpc1Rlc3RTZXJ2ZXIiLCJyZW5kZXJDYWNoaW5nRm9ySUU4Iiwibm9ybWFsaXphdGlvbk9uU2VydmVyIiwibm9ybWF0aXZlVXJsIiwic2hvd05hdmlnYXRpb25TaWRlYmFyIiwib25SZW1vdmVBdHRhY2htZW50IiwiZmVlZGJhY2tFbmFibGVkIiwiaXNEaXNhYmxlZENsZWFuRm9ybSIsImlzRGlzYWJsZWRDbG9zZUJ1dHRvbiIsImlzRGlzYWJsZWRDbG9zZUFuZFNhdmVCdXR0b24iLCJ0aGVtZSIsInRlbXBsYXRlc0FwaSIsInJlbmRlckZvcm0iLCJWIiwiVyIsInoiLCJzdGFydCIsInBhcnRpYWxSZW5kZXJpbmdGb3JJRTgiLCJwYXJzZUludCIsImNyZWF0ZUxlZ2FjeVB1YmxpY0Zvcm0iLCJfQ29tbW9uX0Vycm9yc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsImFzeW5jSXRlcmF0b3IiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImFyZyIsIndyYXAiLCJfaW52b2tlIiwiX19hd2FpdCIsImRlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJyZXN1bHROYW1lIiwibmV4dExvYyIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwibWFyayIsImF3cmFwIiwiQXN5bmNJdGVyYXRvciIsImFzeW5jIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzdG9wIiwicnZhbCIsImNvbXBsZXRlIiwiZmluaXNoIiwiZGVsZWdhdGVZaWVsZCIsImFzeW5jR2VuZXJhdG9yU3RlcCIsIl9hc3luY1RvR2VuZXJhdG9yIiwib3duS2V5cyIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJtb2RlbENoYW5nZUV2ZW50UGF0aCIsIm1hcENodW5rVmFsdWVzIiwicmVkdWNlQ2h1bmtWYWx1ZXMiLCJyZWR1Y2UiLCJMZWdhY3lQdWJsaWNGb3JtIiwiZm9ybSIsIl92YWxpZGF0ZUNoaWxkcmVuQnlQYXRoIiwiX0lOVEVSTkFMX19nZXRTZWxlY3RGdW5jdGlvbkZvckRpc2FibGVFbXBsb3llZUluU1MiLCJwaWNrbGlzdHNQcm92aWRlciIsImdldERpZ2VzdEFwaVBpY2tsaXN0IiwicXVlcnkiLCJldmVudE1hbmFnZXIiLCJvbiIsIm9mZiIsImNoYW5nZVNldCIsInN0b3BBdXRvc2VuZCIsInVubW91bnQiLCJtb2RlbCIsImdldENodW5rIiwic2V0dGluZ3MiLCJmb3JtUm9vdCIsInZhbGlkYXRvciIsInZhbGlkYXRlQWxsIiwiX3JlbG9hZElubmVyIiwiZmlsbCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJkb2N1bWVudEVsZW1lbnQiLCJjcmVhdGVFbGVtZW50IiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIiwic3JjIiwic2V0QXR0cmlidXRlIiwiYXBwZW5kQ2hpbGQiLCJfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18iLCJleHBvcnRzIiwiaWQiLCJsb2FkZWQiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwid2luZG93IiwiY2hpbGRyZW4iXSwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2UvQ29tbW9uL0NhbmR5QXBpQ2xpZW50L0NsaWVudERyYWZ0SW5mby9HZXRDbGllbnREcmFmdEluZm9VcmwudHMiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2UvQ29tbW9uL0Vycm9ycy50cyIsIndlYnBhY2s6Ly9Aa29udHVyLmNhbmR5L3dvcmtzcGFjZS9Db21tb24vVHlwaW5nVXRpbHMudHMiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2Uvbm9kZV9tb2R1bGVzL3doYXR3Zy1mZXRjaC9mZXRjaC5qcyIsIndlYnBhY2s6Ly9Aa29udHVyLmNhbmR5L3dvcmtzcGFjZS9FbmdpbmUvc3JjL0Zvcm1zL0NsaWVudC9DbGllbnQudHMiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2UvRW5naW5lL3NyYy9Gb3Jtcy9DbGllbnQvQ2xpZW50U2V0dGluZ3MudHMiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2UvRW5naW5lL3NyYy9Gb3Jtcy9DbGllbnQvTGVnYWN5UHVibGljRm9ybS9DcmVhdGVMZWdhY3lQdWJsaWNGb3JtLnRzIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL0VuZ2luZS9zcmMvSGVscGVycy9Mb2FkSW50b0RvY3VtZW50LnRzIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9Aa29udHVyLmNhbmR5L3dvcmtzcGFjZS93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL3dlYnBhY2svcnVudGltZS9oYXJtb255IG1vZHVsZSBkZWNvcmF0b3IiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2Uvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9Aa29udHVyLmNhbmR5L3dvcmtzcGFjZS93ZWJwYWNrL3N0YXJ0dXAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhZnRGdWxsSWQgfSBmcm9tIFwiLi4vVHlwZXMvRHJhZnRGdWxsSWRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENsaWVudERyYWZ0SW5mb1VybChkcmFmdElkOiBEcmFmdEZ1bGxJZCkge1xuICAgIC8vIE5PVEUg0K3RgtCwINGE0YPQvdC60YbQuNGPINC+0LHRitGP0LLQu9C10L3QsCDQvtGC0LTQtdC70YzQvdC+LCDQuNCx0L4g0L7QvdCwINCy0YXQvtC00LjRgiDQsiDRgdC+0YHRgtCw0LIgY2xpZW50LmpzINC4XG4gICAgLy8g0L3QtSDQtNC+0LvQttC90L4g0L/RgNC+0LjRgdGF0L7QtNC40YLRjCDRg9GC0LXQttC10LvQtdC90LjRjyBjbGllbnQuanMt0LBcbiAgICByZXR1cm4gYHYxL25zLyR7ZHJhZnRJZC5uc30vZHJhZnRzLyR7ZHJhZnRJZC5kcmFmdElkfS9jbGllbnQtZHJhZnQtaW5mb2A7XG59XG4iLCJleHBvcnQgY2xhc3MgQXBwbGljYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm5hbWUgPSB0aGlzLmNvbnN0cnVjdG9yLm5hbWU7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTm90SW1wbGVtZW50ZWRFcnJvciBleHRlbmRzIEFwcGxpY2F0aW9uRXJyb3Ige1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoXCJPcGVyYXRpb24gbm90IGltcGxlbWVudGVkXCIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE5vdFN1cHBvcnRlZEVycm9yIGV4dGVuZHMgQXBwbGljYXRpb25FcnJvciB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSA/PyBcIk9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkXCIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludmFsaWRQcm9ncmFtU3RhdGVFcnJvciBleHRlbmRzIEFwcGxpY2F0aW9uRXJyb3Ige1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKFwiSW52YWxpZCBwcm9ncmFtIHN0YXRlXCIgKyAobWVzc2FnZSAhPSB1bmRlZmluZWQgPyBcIjogXCIgKyBtZXNzYWdlIDogXCJcIikpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludmFsaWRBcmd1bWVudEVycm9yIGV4dGVuZHMgQXBwbGljYXRpb25FcnJvciB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGFyZ3VtZW50TmFtZTogc3RyaW5nLCBtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKFxuICAgICAgICAgICAgbWVzc2FnZSAhPSB1bmRlZmluZWQgPyBgJHttZXNzYWdlfSAoYXJndW1lbnQ6ICR7YXJndW1lbnROYW1lfSlgIDogYEludmFsaWQgYXJndW1lbnQgdmFsdWU6ICR7YXJndW1lbnROYW1lfWBcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUeXBpbmdFcnJvciBleHRlbmRzIEFwcGxpY2F0aW9uRXJyb3Ige1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoXCJJbnZhbGlkIHR5cGluZ1wiKTtcbiAgICB9XG59XG4iLCIvKioqXG4gKiDQodGC0YDQvtCz0L7RgtC40L/QuNC30LjRgNC+0LLQsNC90L3QsNGPINC30LDQvNC10L3QsCDQtNC70Y8gQm9vbGVhbiguLi4pXG4gKiDQntCx0YvRh9C90L4g0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyBbLi4uXS5maWx0ZXIoaXNOb3ROdWxsT3JVbmRlZmluZWQpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc05vdE51bGxPclVuZGVmaW5lZDxUPihpbnB1dDogVCk6IGlucHV0IGlzIE5vbk51bGxhYmxlPFQ+IHtcbiAgICByZXR1cm4gaW5wdXQgIT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5VW5rbm93bkVycm9yKGVycm9yOiB1bmtub3duKTogdW5kZWZpbmVkIHwgc3RyaW5nIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm5cbiAgICByZXR1cm4gdHlwZW9mIGVycm9yID09PSBcIm9iamVjdFwiICYmIGVycm9yPy5bXCJtZXNzYWdlXCJdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlTm90TnVsbE9yVW5kZWZpbmVkPFQ+KGlucHV0OiBUKTogYXNzZXJ0cyBpbnB1dCBpcyBOb25OdWxsYWJsZTxUPiB7XG4gICAgaWYgKCFpc05vdE51bGxPclVuZGVmaW5lZChpbnB1dCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBWYWx1ZSBtdXN0IGJlIGRlZmluZWRgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub29wKCk6IHZvaWQge1xuICAgIC8vIG5vb3Bcbn1cblxuZXhwb3J0IHR5cGUgRXJyb3JGaXJzdENhbGxiYWNrPFQ+ID0gKC4uLmFyZ3M6IFtFcnJvciwgbnVsbCB8IHVuZGVmaW5lZF0gfCBbbnVsbCB8IHVuZGVmaW5lZCwgVF0gfCBbRXJyb3JdKSA9PiB2b2lkO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVqZWN0KG1lc3NhZ2U/OiBzdHJpbmcgfCBFcnJvcik6IG5ldmVyIHtcbiAgICBpZiAodHlwZW9mIG1lc3NhZ2UgPT09IFwic3RyaW5nXCIgfHwgbWVzc2FnZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UgPz8gXCJVbmRlZmluZWQgaXMgbm90IGFsbG93ZWRcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbWVzc2FnZTtcbiAgICB9XG59XG5cbnR5cGUgQXJyYXlPZkxlbmd0aDxUSXRlbSwgVExlbmd0aCBleHRlbmRzIG51bWJlciwgVFJlc3QgZXh0ZW5kcyBUSXRlbVtdID0gW10+ID0gVFJlc3QgZXh0ZW5kcyB7IGxlbmd0aDogVExlbmd0aCB9XG4gICAgPyBUUmVzdFxuICAgIDogQXJyYXlPZkxlbmd0aDxUSXRlbSwgVExlbmd0aCwgW1RJdGVtLCAuLi5UUmVzdF0+O1xuXG5leHBvcnQgdHlwZSBNaW5MZW5ndGhBcnJheTxUSXRlbSwgVExlbmd0aCBleHRlbmRzIG51bWJlciwgVFJlc3QgZXh0ZW5kcyBUSXRlbVtdID0gW10+ID0gVFJlc3QgZXh0ZW5kcyB7XG4gICAgbGVuZ3RoOiBUTGVuZ3RoO1xufVxuICAgID8gWy4uLlRSZXN0LCAuLi5USXRlbVtdXVxuICAgIDogTWluTGVuZ3RoQXJyYXk8VEl0ZW0sIFRMZW5ndGgsIFsuLi5UUmVzdCwgVEl0ZW1dPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTGVuZ3RoR3JlYXRlclRoZW5PckVxdWFsPFQsIFROdW0gZXh0ZW5kcyBudW1iZXI+KFxuICAgIGl0ZW1zOiByZWFkb25seSBUW10sXG4gICAgbWluTGVuZ3RoOiBUTnVtXG4pOiBpdGVtcyBpcyBNaW5MZW5ndGhBcnJheTxULCBUTnVtPiB7XG4gICAgcmV0dXJuIGl0ZW1zLmxlbmd0aCA+PSBtaW5MZW5ndGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW5MZW5ndGhPclVuZGVmaW5lZDxULCBUTnVtIGV4dGVuZHMgbnVtYmVyPihcbiAgICBpdGVtczogVFtdLFxuICAgIG1pbkxlbmd0aDogVE51bVxuKTogdW5kZWZpbmVkIHwgTWluTGVuZ3RoQXJyYXk8VCwgVE51bT4ge1xuICAgIGlmIChpc0xlbmd0aEdyZWF0ZXJUaGVuT3JFcXVhbChpdGVtcywgbWluTGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVJc0FycmF5PFQ+KGl0ZW1zOiB1bmtub3duKTogVFtdIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTXVzdCBiZSBhbiBhcnJheSFgKTtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW1zIGFzIFRbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5SGFzTGVuZ3RoPFQsIFROdW0gZXh0ZW5kcyBudW1iZXI+KFxuICAgIGl0ZW1zOiByZWFkb25seSBUW10sXG4gICAgbGVuZ3RoOiBUTnVtXG4pOiBpdGVtcyBpcyBBcnJheU9mTGVuZ3RoPFQsIFROdW0+IHtcbiAgICByZXR1cm4gaXRlbXMubGVuZ3RoID09PSBsZW5ndGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcnJheUlzTm90RW1wdHk8VD4oaXRlbXM6IHJlYWRvbmx5IFRbXSk6IGl0ZW1zIGlzIE1pbkxlbmd0aEFycmF5PFQsIDE+IHtcbiAgICByZXR1cm4gaXRlbXMubGVuZ3RoID4gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5SGFzQXRMZWFzdE9uZUl0ZW08VD4oaXRlbXM6IHJlYWRvbmx5IFRbXSk6IGl0ZW1zIGlzIE1pbkxlbmd0aEFycmF5PFQsIDE+IHtcbiAgICByZXR1cm4gaXRlbXMubGVuZ3RoID4gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUFycmF5SXNOb3RFbXB0eTxUPihpdGVtczogcmVhZG9ubHkgVFtdKTogYXNzZXJ0cyBpdGVtcyBpcyBNaW5MZW5ndGhBcnJheTxULCAxPiB7XG4gICAgaWYgKCFhcnJheUlzTm90RW1wdHkoaXRlbXMpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQXJyYXkgbXVzdCBiZSBub3QgZW1wdHlgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVBcnJheUhhc0xlbmd0aDxULCBUTnVtIGV4dGVuZHMgbnVtYmVyPihcbiAgICBpdGVtczogcmVhZG9ubHkgVFtdLFxuICAgIGxlbmd0aDogVE51bVxuKTogYXNzZXJ0cyBpdGVtcyBpcyBBcnJheU9mTGVuZ3RoPFQsIFROdW0+IHtcbiAgICBpZiAoIWFycmF5SGFzTGVuZ3RoKGl0ZW1zLCBsZW5ndGgpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQXJyYXkgc2hvdWxkIGhhcyBsZW5ndGggJHtsZW5ndGh9YCk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlQXJyYXlMZW5ndGhHcmVhdGVyVGhlbk9yRXF1YWw8VCwgVE51bSBleHRlbmRzIG51bWJlcj4oXG4gICAgaXRlbXM6IHJlYWRvbmx5IFRbXSxcbiAgICBsZW5ndGg6IFROdW1cbik6IGFzc2VydHMgaXRlbXMgaXMgQXJyYXlPZkxlbmd0aDxULCBUTnVtPiB7XG4gICAgaWYgKCFpc0xlbmd0aEdyZWF0ZXJUaGVuT3JFcXVhbChpdGVtcywgbGVuZ3RoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFycmF5IG11c3QgaGF2ZSBtaW5pbWFsIGxlbmd0aCAke2xlbmd0aH1gKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVOZXZlcihuZXZlckFyZ3VtZW50OiBuZXZlcik6IHZvaWQge1xuICAgIC8vIG5vb3Bcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUFuZEdldFN0cmluZyhuZXZlckFyZ3VtZW50OiBuZXZlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke25ldmVyQXJndW1lbnR9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bkFzeW5jQWN0aW9uKGFjdGlvbjogKCkgPT4gUHJvbWlzZTx2b2lkPik6IHZvaWQge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZmxvYXRpbmctcHJvbWlzZXNcbiAgICBhY3Rpb24oKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbE9yRW1wdHkoaW5wdXQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGlucHV0IGlzIHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGlucHV0ID09IHVuZGVmaW5lZCB8fCBpbnB1dCA9PT0gXCJcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTm90TnVsbE9yRW1wdHkoaW5wdXQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGlucHV0IGlzIHN0cmluZyB7XG4gICAgcmV0dXJuICFpc051bGxPckVtcHR5KGlucHV0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbE9yV2hpdGVTcGFjZShpbnB1dDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCk6IGlucHV0IGlzIHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiBpbnB1dCA9PSB1bmRlZmluZWQgfHwgaW5wdXQudHJpbSgpID09PSBcIlwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJpbUxhc3RTbGFzaCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVybC5zbGljZSgtMSkgPT09IFwiL1wiID8gdXJsLnNsaWNlKDAsIC0xKSA6IHVybDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydElzPFQ+KHZhbHVlOiBUKTogdm9pZCB7XG4gICAgLy8gbm9vcFxufVxuIiwiLyogZXNsaW50LWRpc2FibGUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zICovXG52YXIgZyA9XG4gICh0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gJ3VuZGVmaW5lZCcgJiYgZ2xvYmFsVGhpcykgfHxcbiAgKHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyAmJiBzZWxmKSB8fFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgKHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnICYmIGdsb2JhbCkgfHxcbiAge31cblxudmFyIHN1cHBvcnQgPSB7XG4gIHNlYXJjaFBhcmFtczogJ1VSTFNlYXJjaFBhcmFtcycgaW4gZyxcbiAgaXRlcmFibGU6ICdTeW1ib2wnIGluIGcgJiYgJ2l0ZXJhdG9yJyBpbiBTeW1ib2wsXG4gIGJsb2I6XG4gICAgJ0ZpbGVSZWFkZXInIGluIGcgJiZcbiAgICAnQmxvYicgaW4gZyAmJlxuICAgIChmdW5jdGlvbigpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIG5ldyBCbG9iKClcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfSkoKSxcbiAgZm9ybURhdGE6ICdGb3JtRGF0YScgaW4gZyxcbiAgYXJyYXlCdWZmZXI6ICdBcnJheUJ1ZmZlcicgaW4gZ1xufVxuXG5mdW5jdGlvbiBpc0RhdGFWaWV3KG9iaikge1xuICByZXR1cm4gb2JqICYmIERhdGFWaWV3LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKG9iailcbn1cblxuaWYgKHN1cHBvcnQuYXJyYXlCdWZmZXIpIHtcbiAgdmFyIHZpZXdDbGFzc2VzID0gW1xuICAgICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgICdbb2JqZWN0IFVpbnQ4QXJyYXldJyxcbiAgICAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICAnW29iamVjdCBVaW50MzJBcnJheV0nLFxuICAgICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nXG4gIF1cblxuICB2YXIgaXNBcnJheUJ1ZmZlclZpZXcgPVxuICAgIEFycmF5QnVmZmVyLmlzVmlldyB8fFxuICAgIGZ1bmN0aW9uKG9iaikge1xuICAgICAgcmV0dXJuIG9iaiAmJiB2aWV3Q2xhc3Nlcy5pbmRleE9mKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopKSA+IC0xXG4gICAgfVxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVOYW1lKG5hbWUpIHtcbiAgaWYgKHR5cGVvZiBuYW1lICE9PSAnc3RyaW5nJykge1xuICAgIG5hbWUgPSBTdHJpbmcobmFtZSlcbiAgfVxuICBpZiAoL1teYS16MC05XFwtIyQlJicqKy5eX2B8fiFdL2kudGVzdChuYW1lKSB8fCBuYW1lID09PSAnJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgY2hhcmFjdGVyIGluIGhlYWRlciBmaWVsZCBuYW1lOiBcIicgKyBuYW1lICsgJ1wiJylcbiAgfVxuICByZXR1cm4gbmFtZS50b0xvd2VyQ2FzZSgpXG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVZhbHVlKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgdmFsdWUgPSBTdHJpbmcodmFsdWUpXG4gIH1cbiAgcmV0dXJuIHZhbHVlXG59XG5cbi8vIEJ1aWxkIGEgZGVzdHJ1Y3RpdmUgaXRlcmF0b3IgZm9yIHRoZSB2YWx1ZSBsaXN0XG5mdW5jdGlvbiBpdGVyYXRvckZvcihpdGVtcykge1xuICB2YXIgaXRlcmF0b3IgPSB7XG4gICAgbmV4dDogZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgdmFsdWUgPSBpdGVtcy5zaGlmdCgpXG4gICAgICByZXR1cm4ge2RvbmU6IHZhbHVlID09PSB1bmRlZmluZWQsIHZhbHVlOiB2YWx1ZX1cbiAgICB9XG4gIH1cblxuICBpZiAoc3VwcG9ydC5pdGVyYWJsZSkge1xuICAgIGl0ZXJhdG9yW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBpdGVyYXRvclxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpdGVyYXRvclxufVxuXG5leHBvcnQgZnVuY3Rpb24gSGVhZGVycyhoZWFkZXJzKSB7XG4gIHRoaXMubWFwID0ge31cblxuICBpZiAoaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpIHtcbiAgICBoZWFkZXJzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHtcbiAgICAgIHRoaXMuYXBwZW5kKG5hbWUsIHZhbHVlKVxuICAgIH0sIHRoaXMpXG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShoZWFkZXJzKSkge1xuICAgIGhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbihoZWFkZXIpIHtcbiAgICAgIGlmIChoZWFkZXIubGVuZ3RoICE9IDIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSGVhZGVycyBjb25zdHJ1Y3RvcjogZXhwZWN0ZWQgbmFtZS92YWx1ZSBwYWlyIHRvIGJlIGxlbmd0aCAyLCBmb3VuZCcgKyBoZWFkZXIubGVuZ3RoKVxuICAgICAgfVxuICAgICAgdGhpcy5hcHBlbmQoaGVhZGVyWzBdLCBoZWFkZXJbMV0pXG4gICAgfSwgdGhpcylcbiAgfSBlbHNlIGlmIChoZWFkZXJzKSB7XG4gICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoaGVhZGVycykuZm9yRWFjaChmdW5jdGlvbihuYW1lKSB7XG4gICAgICB0aGlzLmFwcGVuZChuYW1lLCBoZWFkZXJzW25hbWVdKVxuICAgIH0sIHRoaXMpXG4gIH1cbn1cblxuSGVhZGVycy5wcm90b3R5cGUuYXBwZW5kID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgbmFtZSA9IG5vcm1hbGl6ZU5hbWUobmFtZSlcbiAgdmFsdWUgPSBub3JtYWxpemVWYWx1ZSh2YWx1ZSlcbiAgdmFyIG9sZFZhbHVlID0gdGhpcy5tYXBbbmFtZV1cbiAgdGhpcy5tYXBbbmFtZV0gPSBvbGRWYWx1ZSA/IG9sZFZhbHVlICsgJywgJyArIHZhbHVlIDogdmFsdWVcbn1cblxuSGVhZGVycy5wcm90b3R5cGVbJ2RlbGV0ZSddID0gZnVuY3Rpb24obmFtZSkge1xuICBkZWxldGUgdGhpcy5tYXBbbm9ybWFsaXplTmFtZShuYW1lKV1cbn1cblxuSGVhZGVycy5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24obmFtZSkge1xuICBuYW1lID0gbm9ybWFsaXplTmFtZShuYW1lKVxuICByZXR1cm4gdGhpcy5oYXMobmFtZSkgPyB0aGlzLm1hcFtuYW1lXSA6IG51bGxcbn1cblxuSGVhZGVycy5wcm90b3R5cGUuaGFzID0gZnVuY3Rpb24obmFtZSkge1xuICByZXR1cm4gdGhpcy5tYXAuaGFzT3duUHJvcGVydHkobm9ybWFsaXplTmFtZShuYW1lKSlcbn1cblxuSGVhZGVycy5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgdGhpcy5tYXBbbm9ybWFsaXplTmFtZShuYW1lKV0gPSBub3JtYWxpemVWYWx1ZSh2YWx1ZSlcbn1cblxuSGVhZGVycy5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uKGNhbGxiYWNrLCB0aGlzQXJnKSB7XG4gIGZvciAodmFyIG5hbWUgaW4gdGhpcy5tYXApIHtcbiAgICBpZiAodGhpcy5tYXAuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdGhpcy5tYXBbbmFtZV0sIG5hbWUsIHRoaXMpXG4gICAgfVxuICB9XG59XG5cbkhlYWRlcnMucHJvdG90eXBlLmtleXMgPSBmdW5jdGlvbigpIHtcbiAgdmFyIGl0ZW1zID0gW11cbiAgdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBuYW1lKSB7XG4gICAgaXRlbXMucHVzaChuYW1lKVxuICB9KVxuICByZXR1cm4gaXRlcmF0b3JGb3IoaXRlbXMpXG59XG5cbkhlYWRlcnMucHJvdG90eXBlLnZhbHVlcyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgaXRlbXMgPSBbXVxuICB0aGlzLmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHtcbiAgICBpdGVtcy5wdXNoKHZhbHVlKVxuICB9KVxuICByZXR1cm4gaXRlcmF0b3JGb3IoaXRlbXMpXG59XG5cbkhlYWRlcnMucHJvdG90eXBlLmVudHJpZXMgPSBmdW5jdGlvbigpIHtcbiAgdmFyIGl0ZW1zID0gW11cbiAgdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBuYW1lKSB7XG4gICAgaXRlbXMucHVzaChbbmFtZSwgdmFsdWVdKVxuICB9KVxuICByZXR1cm4gaXRlcmF0b3JGb3IoaXRlbXMpXG59XG5cbmlmIChzdXBwb3J0Lml0ZXJhYmxlKSB7XG4gIEhlYWRlcnMucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0gPSBIZWFkZXJzLnByb3RvdHlwZS5lbnRyaWVzXG59XG5cbmZ1bmN0aW9uIGNvbnN1bWVkKGJvZHkpIHtcbiAgaWYgKGJvZHkuX25vQm9keSkgcmV0dXJuXG4gIGlmIChib2R5LmJvZHlVc2VkKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBUeXBlRXJyb3IoJ0FscmVhZHkgcmVhZCcpKVxuICB9XG4gIGJvZHkuYm9keVVzZWQgPSB0cnVlXG59XG5cbmZ1bmN0aW9uIGZpbGVSZWFkZXJSZWFkeShyZWFkZXIpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJlc29sdmUocmVhZGVyLnJlc3VsdClcbiAgICB9XG4gICAgcmVhZGVyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJlamVjdChyZWFkZXIuZXJyb3IpXG4gICAgfVxuICB9KVxufVxuXG5mdW5jdGlvbiByZWFkQmxvYkFzQXJyYXlCdWZmZXIoYmxvYikge1xuICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKVxuICB2YXIgcHJvbWlzZSA9IGZpbGVSZWFkZXJSZWFkeShyZWFkZXIpXG4gIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihibG9iKVxuICByZXR1cm4gcHJvbWlzZVxufVxuXG5mdW5jdGlvbiByZWFkQmxvYkFzVGV4dChibG9iKSB7XG4gIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpXG4gIHZhciBwcm9taXNlID0gZmlsZVJlYWRlclJlYWR5KHJlYWRlcilcbiAgdmFyIG1hdGNoID0gL2NoYXJzZXQ9KFtBLVphLXowLTlfLV0rKS8uZXhlYyhibG9iLnR5cGUpXG4gIHZhciBlbmNvZGluZyA9IG1hdGNoID8gbWF0Y2hbMV0gOiAndXRmLTgnXG4gIHJlYWRlci5yZWFkQXNUZXh0KGJsb2IsIGVuY29kaW5nKVxuICByZXR1cm4gcHJvbWlzZVxufVxuXG5mdW5jdGlvbiByZWFkQXJyYXlCdWZmZXJBc1RleHQoYnVmKSB7XG4gIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmKVxuICB2YXIgY2hhcnMgPSBuZXcgQXJyYXkodmlldy5sZW5ndGgpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB2aWV3Lmxlbmd0aDsgaSsrKSB7XG4gICAgY2hhcnNbaV0gPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHZpZXdbaV0pXG4gIH1cbiAgcmV0dXJuIGNoYXJzLmpvaW4oJycpXG59XG5cbmZ1bmN0aW9uIGJ1ZmZlckNsb25lKGJ1Zikge1xuICBpZiAoYnVmLnNsaWNlKSB7XG4gICAgcmV0dXJuIGJ1Zi5zbGljZSgwKVxuICB9IGVsc2Uge1xuICAgIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmLmJ5dGVMZW5ndGgpXG4gICAgdmlldy5zZXQobmV3IFVpbnQ4QXJyYXkoYnVmKSlcbiAgICByZXR1cm4gdmlldy5idWZmZXJcbiAgfVxufVxuXG5mdW5jdGlvbiBCb2R5KCkge1xuICB0aGlzLmJvZHlVc2VkID0gZmFsc2VcblxuICB0aGlzLl9pbml0Qm9keSA9IGZ1bmN0aW9uKGJvZHkpIHtcbiAgICAvKlxuICAgICAgZmV0Y2gtbW9jayB3cmFwcyB0aGUgUmVzcG9uc2Ugb2JqZWN0IGluIGFuIEVTNiBQcm94eSB0b1xuICAgICAgcHJvdmlkZSB1c2VmdWwgdGVzdCBoYXJuZXNzIGZlYXR1cmVzIHN1Y2ggYXMgZmx1c2guIEhvd2V2ZXIsIG9uXG4gICAgICBFUzUgYnJvd3NlcnMgd2l0aG91dCBmZXRjaCBvciBQcm94eSBzdXBwb3J0IHBvbGx5ZmlsbHMgbXVzdCBiZSB1c2VkO1xuICAgICAgdGhlIHByb3h5LXBvbGx5ZmlsbCBpcyB1bmFibGUgdG8gcHJveHkgYW4gYXR0cmlidXRlIHVubGVzcyBpdCBleGlzdHNcbiAgICAgIG9uIHRoZSBvYmplY3QgYmVmb3JlIHRoZSBQcm94eSBpcyBjcmVhdGVkLiBUaGlzIGNoYW5nZSBlbnN1cmVzXG4gICAgICBSZXNwb25zZS5ib2R5VXNlZCBleGlzdHMgb24gdGhlIGluc3RhbmNlLCB3aGlsZSBtYWludGFpbmluZyB0aGVcbiAgICAgIHNlbWFudGljIG9mIHNldHRpbmcgUmVxdWVzdC5ib2R5VXNlZCBpbiB0aGUgY29uc3RydWN0b3IgYmVmb3JlXG4gICAgICBfaW5pdEJvZHkgaXMgY2FsbGVkLlxuICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtYXNzaWduXG4gICAgdGhpcy5ib2R5VXNlZCA9IHRoaXMuYm9keVVzZWRcbiAgICB0aGlzLl9ib2R5SW5pdCA9IGJvZHlcbiAgICBpZiAoIWJvZHkpIHtcbiAgICAgIHRoaXMuX25vQm9keSA9IHRydWU7XG4gICAgICB0aGlzLl9ib2R5VGV4dCA9ICcnXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYm9keSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuX2JvZHlUZXh0ID0gYm9keVxuICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5ibG9iICYmIEJsb2IucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYm9keSkpIHtcbiAgICAgIHRoaXMuX2JvZHlCbG9iID0gYm9keVxuICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5mb3JtRGF0YSAmJiBGb3JtRGF0YS5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihib2R5KSkge1xuICAgICAgdGhpcy5fYm9keUZvcm1EYXRhID0gYm9keVxuICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5zZWFyY2hQYXJhbXMgJiYgVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGJvZHkpKSB7XG4gICAgICB0aGlzLl9ib2R5VGV4dCA9IGJvZHkudG9TdHJpbmcoKVxuICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5hcnJheUJ1ZmZlciAmJiBzdXBwb3J0LmJsb2IgJiYgaXNEYXRhVmlldyhib2R5KSkge1xuICAgICAgdGhpcy5fYm9keUFycmF5QnVmZmVyID0gYnVmZmVyQ2xvbmUoYm9keS5idWZmZXIpXG4gICAgICAvLyBJRSAxMC0xMSBjYW4ndCBoYW5kbGUgYSBEYXRhVmlldyBib2R5LlxuICAgICAgdGhpcy5fYm9keUluaXQgPSBuZXcgQmxvYihbdGhpcy5fYm9keUFycmF5QnVmZmVyXSlcbiAgICB9IGVsc2UgaWYgKHN1cHBvcnQuYXJyYXlCdWZmZXIgJiYgKEFycmF5QnVmZmVyLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGJvZHkpIHx8IGlzQXJyYXlCdWZmZXJWaWV3KGJvZHkpKSkge1xuICAgICAgdGhpcy5fYm9keUFycmF5QnVmZmVyID0gYnVmZmVyQ2xvbmUoYm9keSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fYm9keVRleHQgPSBib2R5ID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGJvZHkpXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKSkge1xuICAgICAgaWYgKHR5cGVvZiBib2R5ID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLmhlYWRlcnMuc2V0KCdjb250ZW50LXR5cGUnLCAndGV4dC9wbGFpbjtjaGFyc2V0PVVURi04JylcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fYm9keUJsb2IgJiYgdGhpcy5fYm9keUJsb2IudHlwZSkge1xuICAgICAgICB0aGlzLmhlYWRlcnMuc2V0KCdjb250ZW50LXR5cGUnLCB0aGlzLl9ib2R5QmxvYi50eXBlKVxuICAgICAgfSBlbHNlIGlmIChzdXBwb3J0LnNlYXJjaFBhcmFtcyAmJiBVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYm9keSkpIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzLnNldCgnY29udGVudC10eXBlJywgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04JylcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoc3VwcG9ydC5ibG9iKSB7XG4gICAgdGhpcy5ibG9iID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgcmVqZWN0ZWQgPSBjb25zdW1lZCh0aGlzKVxuICAgICAgaWYgKHJlamVjdGVkKSB7XG4gICAgICAgIHJldHVybiByZWplY3RlZFxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5fYm9keUJsb2IpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QmxvYilcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fYm9keUFycmF5QnVmZmVyKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pKVxuICAgICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5Rm9ybURhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIGJsb2InKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXcgQmxvYihbdGhpcy5fYm9keVRleHRdKSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0aGlzLmFycmF5QnVmZmVyID0gZnVuY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikge1xuICAgICAgdmFyIGlzQ29uc3VtZWQgPSBjb25zdW1lZCh0aGlzKVxuICAgICAgaWYgKGlzQ29uc3VtZWQpIHtcbiAgICAgICAgcmV0dXJuIGlzQ29uc3VtZWRcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShcbiAgICAgICAgICB0aGlzLl9ib2R5QXJyYXlCdWZmZXIuYnVmZmVyLnNsaWNlKFxuICAgICAgICAgICAgdGhpcy5fYm9keUFycmF5QnVmZmVyLmJ5dGVPZmZzZXQsXG4gICAgICAgICAgICB0aGlzLl9ib2R5QXJyYXlCdWZmZXIuYnl0ZU9mZnNldCArIHRoaXMuX2JvZHlBcnJheUJ1ZmZlci5ieXRlTGVuZ3RoXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcilcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHN1cHBvcnQuYmxvYikge1xuICAgICAgcmV0dXJuIHRoaXMuYmxvYigpLnRoZW4ocmVhZEJsb2JBc0FycmF5QnVmZmVyKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvdWxkIG5vdCByZWFkIGFzIEFycmF5QnVmZmVyJylcbiAgICB9XG4gIH1cblxuICB0aGlzLnRleHQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgcmVqZWN0ZWQgPSBjb25zdW1lZCh0aGlzKVxuICAgIGlmIChyZWplY3RlZCkge1xuICAgICAgcmV0dXJuIHJlamVjdGVkXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2JvZHlCbG9iKSB7XG4gICAgICByZXR1cm4gcmVhZEJsb2JBc1RleHQodGhpcy5fYm9keUJsb2IpXG4gICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVhZEFycmF5QnVmZmVyQXNUZXh0KHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikpXG4gICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5Rm9ybURhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IHJlYWQgRm9ybURhdGEgYm9keSBhcyB0ZXh0JylcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5VGV4dClcbiAgICB9XG4gIH1cblxuICBpZiAoc3VwcG9ydC5mb3JtRGF0YSkge1xuICAgIHRoaXMuZm9ybURhdGEgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLnRleHQoKS50aGVuKGRlY29kZSlcbiAgICB9XG4gIH1cblxuICB0aGlzLmpzb24gPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50ZXh0KCkudGhlbihKU09OLnBhcnNlKVxuICB9XG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuLy8gSFRUUCBtZXRob2RzIHdob3NlIGNhcGl0YWxpemF0aW9uIHNob3VsZCBiZSBub3JtYWxpemVkXG52YXIgbWV0aG9kcyA9IFsnQ09OTkVDVCcsICdERUxFVEUnLCAnR0VUJywgJ0hFQUQnLCAnT1BUSU9OUycsICdQQVRDSCcsICdQT1NUJywgJ1BVVCcsICdUUkFDRSddXG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZU1ldGhvZChtZXRob2QpIHtcbiAgdmFyIHVwY2FzZWQgPSBtZXRob2QudG9VcHBlckNhc2UoKVxuICByZXR1cm4gbWV0aG9kcy5pbmRleE9mKHVwY2FzZWQpID4gLTEgPyB1cGNhc2VkIDogbWV0aG9kXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBSZXF1ZXN0KGlucHV0LCBvcHRpb25zKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBSZXF1ZXN0KSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1BsZWFzZSB1c2UgdGhlIFwibmV3XCIgb3BlcmF0b3IsIHRoaXMgRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uJylcbiAgfVxuXG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9XG4gIHZhciBib2R5ID0gb3B0aW9ucy5ib2R5XG5cbiAgaWYgKGlucHV0IGluc3RhbmNlb2YgUmVxdWVzdCkge1xuICAgIGlmIChpbnB1dC5ib2R5VXNlZCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQWxyZWFkeSByZWFkJylcbiAgICB9XG4gICAgdGhpcy51cmwgPSBpbnB1dC51cmxcbiAgICB0aGlzLmNyZWRlbnRpYWxzID0gaW5wdXQuY3JlZGVudGlhbHNcbiAgICBpZiAoIW9wdGlvbnMuaGVhZGVycykge1xuICAgICAgdGhpcy5oZWFkZXJzID0gbmV3IEhlYWRlcnMoaW5wdXQuaGVhZGVycylcbiAgICB9XG4gICAgdGhpcy5tZXRob2QgPSBpbnB1dC5tZXRob2RcbiAgICB0aGlzLm1vZGUgPSBpbnB1dC5tb2RlXG4gICAgdGhpcy5zaWduYWwgPSBpbnB1dC5zaWduYWxcbiAgICBpZiAoIWJvZHkgJiYgaW5wdXQuX2JvZHlJbml0ICE9IG51bGwpIHtcbiAgICAgIGJvZHkgPSBpbnB1dC5fYm9keUluaXRcbiAgICAgIGlucHV0LmJvZHlVc2VkID0gdHJ1ZVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aGlzLnVybCA9IFN0cmluZyhpbnB1dClcbiAgfVxuXG4gIHRoaXMuY3JlZGVudGlhbHMgPSBvcHRpb25zLmNyZWRlbnRpYWxzIHx8IHRoaXMuY3JlZGVudGlhbHMgfHwgJ3NhbWUtb3JpZ2luJ1xuICBpZiAob3B0aW9ucy5oZWFkZXJzIHx8ICF0aGlzLmhlYWRlcnMpIHtcbiAgICB0aGlzLmhlYWRlcnMgPSBuZXcgSGVhZGVycyhvcHRpb25zLmhlYWRlcnMpXG4gIH1cbiAgdGhpcy5tZXRob2QgPSBub3JtYWxpemVNZXRob2Qob3B0aW9ucy5tZXRob2QgfHwgdGhpcy5tZXRob2QgfHwgJ0dFVCcpXG4gIHRoaXMubW9kZSA9IG9wdGlvbnMubW9kZSB8fCB0aGlzLm1vZGUgfHwgbnVsbFxuICB0aGlzLnNpZ25hbCA9IG9wdGlvbnMuc2lnbmFsIHx8IHRoaXMuc2lnbmFsIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCdBYm9ydENvbnRyb2xsZXInIGluIGcpIHtcbiAgICAgIHZhciBjdHJsID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgcmV0dXJuIGN0cmwuc2lnbmFsO1xuICAgIH1cbiAgfSgpKTtcbiAgdGhpcy5yZWZlcnJlciA9IG51bGxcblxuICBpZiAoKHRoaXMubWV0aG9kID09PSAnR0VUJyB8fCB0aGlzLm1ldGhvZCA9PT0gJ0hFQUQnKSAmJiBib2R5KSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQm9keSBub3QgYWxsb3dlZCBmb3IgR0VUIG9yIEhFQUQgcmVxdWVzdHMnKVxuICB9XG4gIHRoaXMuX2luaXRCb2R5KGJvZHkpXG5cbiAgaWYgKHRoaXMubWV0aG9kID09PSAnR0VUJyB8fCB0aGlzLm1ldGhvZCA9PT0gJ0hFQUQnKSB7XG4gICAgaWYgKG9wdGlvbnMuY2FjaGUgPT09ICduby1zdG9yZScgfHwgb3B0aW9ucy5jYWNoZSA9PT0gJ25vLWNhY2hlJykge1xuICAgICAgLy8gU2VhcmNoIGZvciBhICdfJyBwYXJhbWV0ZXIgaW4gdGhlIHF1ZXJ5IHN0cmluZ1xuICAgICAgdmFyIHJlUGFyYW1TZWFyY2ggPSAvKFs/Jl0pXz1bXiZdKi9cbiAgICAgIGlmIChyZVBhcmFtU2VhcmNoLnRlc3QodGhpcy51cmwpKSB7XG4gICAgICAgIC8vIElmIGl0IGFscmVhZHkgZXhpc3RzIHRoZW4gc2V0IHRoZSB2YWx1ZSB3aXRoIHRoZSBjdXJyZW50IHRpbWVcbiAgICAgICAgdGhpcy51cmwgPSB0aGlzLnVybC5yZXBsYWNlKHJlUGFyYW1TZWFyY2gsICckMV89JyArIG5ldyBEYXRlKCkuZ2V0VGltZSgpKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gT3RoZXJ3aXNlIGFkZCBhIG5ldyAnXycgcGFyYW1ldGVyIHRvIHRoZSBlbmQgd2l0aCB0aGUgY3VycmVudCB0aW1lXG4gICAgICAgIHZhciByZVF1ZXJ5U3RyaW5nID0gL1xcPy9cbiAgICAgICAgdGhpcy51cmwgKz0gKHJlUXVlcnlTdHJpbmcudGVzdCh0aGlzLnVybCkgPyAnJicgOiAnPycpICsgJ189JyArIG5ldyBEYXRlKCkuZ2V0VGltZSgpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblJlcXVlc3QucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBuZXcgUmVxdWVzdCh0aGlzLCB7Ym9keTogdGhpcy5fYm9keUluaXR9KVxufVxuXG5mdW5jdGlvbiBkZWNvZGUoYm9keSkge1xuICB2YXIgZm9ybSA9IG5ldyBGb3JtRGF0YSgpXG4gIGJvZHlcbiAgICAudHJpbSgpXG4gICAgLnNwbGl0KCcmJylcbiAgICAuZm9yRWFjaChmdW5jdGlvbihieXRlcykge1xuICAgICAgaWYgKGJ5dGVzKSB7XG4gICAgICAgIHZhciBzcGxpdCA9IGJ5dGVzLnNwbGl0KCc9JylcbiAgICAgICAgdmFyIG5hbWUgPSBzcGxpdC5zaGlmdCgpLnJlcGxhY2UoL1xcKy9nLCAnICcpXG4gICAgICAgIHZhciB2YWx1ZSA9IHNwbGl0LmpvaW4oJz0nKS5yZXBsYWNlKC9cXCsvZywgJyAnKVxuICAgICAgICBmb3JtLmFwcGVuZChkZWNvZGVVUklDb21wb25lbnQobmFtZSksIGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkpXG4gICAgICB9XG4gICAgfSlcbiAgcmV0dXJuIGZvcm1cbn1cblxuZnVuY3Rpb24gcGFyc2VIZWFkZXJzKHJhd0hlYWRlcnMpIHtcbiAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpXG4gIC8vIFJlcGxhY2UgaW5zdGFuY2VzIG9mIFxcclxcbiBhbmQgXFxuIGZvbGxvd2VkIGJ5IGF0IGxlYXN0IG9uZSBzcGFjZSBvciBob3Jpem9udGFsIHRhYiB3aXRoIGEgc3BhY2VcbiAgLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzAjc2VjdGlvbi0zLjJcbiAgdmFyIHByZVByb2Nlc3NlZEhlYWRlcnMgPSByYXdIZWFkZXJzLnJlcGxhY2UoL1xccj9cXG5bXFx0IF0rL2csICcgJylcbiAgLy8gQXZvaWRpbmcgc3BsaXQgdmlhIHJlZ2V4IHRvIHdvcmsgYXJvdW5kIGEgY29tbW9uIElFMTEgYnVnIHdpdGggdGhlIGNvcmUtanMgMy42LjAgcmVnZXggcG9seWZpbGxcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi9mZXRjaC9pc3N1ZXMvNzQ4XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy83NTFcbiAgcHJlUHJvY2Vzc2VkSGVhZGVyc1xuICAgIC5zcGxpdCgnXFxyJylcbiAgICAubWFwKGZ1bmN0aW9uKGhlYWRlcikge1xuICAgICAgcmV0dXJuIGhlYWRlci5pbmRleE9mKCdcXG4nKSA9PT0gMCA/IGhlYWRlci5zdWJzdHIoMSwgaGVhZGVyLmxlbmd0aCkgOiBoZWFkZXJcbiAgICB9KVxuICAgIC5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgIHZhciBwYXJ0cyA9IGxpbmUuc3BsaXQoJzonKVxuICAgICAgdmFyIGtleSA9IHBhcnRzLnNoaWZ0KCkudHJpbSgpXG4gICAgICBpZiAoa2V5KSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IHBhcnRzLmpvaW4oJzonKS50cmltKClcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBoZWFkZXJzLmFwcGVuZChrZXksIHZhbHVlKVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUud2FybignUmVzcG9uc2UgJyArIGVycm9yLm1lc3NhZ2UpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICByZXR1cm4gaGVhZGVyc1xufVxuXG5Cb2R5LmNhbGwoUmVxdWVzdC5wcm90b3R5cGUpXG5cbmV4cG9ydCBmdW5jdGlvbiBSZXNwb25zZShib2R5SW5pdCwgb3B0aW9ucykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgUmVzcG9uc2UpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignUGxlYXNlIHVzZSB0aGUgXCJuZXdcIiBvcGVyYXRvciwgdGhpcyBET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4nKVxuICB9XG4gIGlmICghb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSB7fVxuICB9XG5cbiAgdGhpcy50eXBlID0gJ2RlZmF1bHQnXG4gIHRoaXMuc3RhdHVzID0gb3B0aW9ucy5zdGF0dXMgPT09IHVuZGVmaW5lZCA/IDIwMCA6IG9wdGlvbnMuc3RhdHVzXG4gIGlmICh0aGlzLnN0YXR1cyA8IDIwMCB8fCB0aGlzLnN0YXR1cyA+IDU5OSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFwiRmFpbGVkIHRvIGNvbnN0cnVjdCAnUmVzcG9uc2UnOiBUaGUgc3RhdHVzIHByb3ZpZGVkICgwKSBpcyBvdXRzaWRlIHRoZSByYW5nZSBbMjAwLCA1OTldLlwiKVxuICB9XG4gIHRoaXMub2sgPSB0aGlzLnN0YXR1cyA+PSAyMDAgJiYgdGhpcy5zdGF0dXMgPCAzMDBcbiAgdGhpcy5zdGF0dXNUZXh0ID0gb3B0aW9ucy5zdGF0dXNUZXh0ID09PSB1bmRlZmluZWQgPyAnJyA6ICcnICsgb3B0aW9ucy5zdGF0dXNUZXh0XG4gIHRoaXMuaGVhZGVycyA9IG5ldyBIZWFkZXJzKG9wdGlvbnMuaGVhZGVycylcbiAgdGhpcy51cmwgPSBvcHRpb25zLnVybCB8fCAnJ1xuICB0aGlzLl9pbml0Qm9keShib2R5SW5pdClcbn1cblxuQm9keS5jYWxsKFJlc3BvbnNlLnByb3RvdHlwZSlcblxuUmVzcG9uc2UucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBuZXcgUmVzcG9uc2UodGhpcy5fYm9keUluaXQsIHtcbiAgICBzdGF0dXM6IHRoaXMuc3RhdHVzLFxuICAgIHN0YXR1c1RleHQ6IHRoaXMuc3RhdHVzVGV4dCxcbiAgICBoZWFkZXJzOiBuZXcgSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgIHVybDogdGhpcy51cmxcbiAgfSlcbn1cblxuUmVzcG9uc2UuZXJyb3IgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKG51bGwsIHtzdGF0dXM6IDIwMCwgc3RhdHVzVGV4dDogJyd9KVxuICByZXNwb25zZS5vayA9IGZhbHNlXG4gIHJlc3BvbnNlLnN0YXR1cyA9IDBcbiAgcmVzcG9uc2UudHlwZSA9ICdlcnJvcidcbiAgcmV0dXJuIHJlc3BvbnNlXG59XG5cbnZhciByZWRpcmVjdFN0YXR1c2VzID0gWzMwMSwgMzAyLCAzMDMsIDMwNywgMzA4XVxuXG5SZXNwb25zZS5yZWRpcmVjdCA9IGZ1bmN0aW9uKHVybCwgc3RhdHVzKSB7XG4gIGlmIChyZWRpcmVjdFN0YXR1c2VzLmluZGV4T2Yoc3RhdHVzKSA9PT0gLTEpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW52YWxpZCBzdGF0dXMgY29kZScpXG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3BvbnNlKG51bGwsIHtzdGF0dXM6IHN0YXR1cywgaGVhZGVyczoge2xvY2F0aW9uOiB1cmx9fSlcbn1cblxuZXhwb3J0IHZhciBET01FeGNlcHRpb24gPSBnLkRPTUV4Y2VwdGlvblxudHJ5IHtcbiAgbmV3IERPTUV4Y2VwdGlvbigpXG59IGNhdGNoIChlcnIpIHtcbiAgRE9NRXhjZXB0aW9uID0gZnVuY3Rpb24obWVzc2FnZSwgbmFtZSkge1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2VcbiAgICB0aGlzLm5hbWUgPSBuYW1lXG4gICAgdmFyIGVycm9yID0gRXJyb3IobWVzc2FnZSlcbiAgICB0aGlzLnN0YWNrID0gZXJyb3Iuc3RhY2tcbiAgfVxuICBET01FeGNlcHRpb24ucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpXG4gIERPTUV4Y2VwdGlvbi5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBET01FeGNlcHRpb25cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZldGNoKGlucHV0LCBpbml0KSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGlucHV0LCBpbml0KVxuXG4gICAgaWYgKHJlcXVlc3Quc2lnbmFsICYmIHJlcXVlc3Quc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgIHJldHVybiByZWplY3QobmV3IERPTUV4Y2VwdGlvbignQWJvcnRlZCcsICdBYm9ydEVycm9yJykpXG4gICAgfVxuXG4gICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpXG5cbiAgICBmdW5jdGlvbiBhYm9ydFhocigpIHtcbiAgICAgIHhoci5hYm9ydCgpXG4gICAgfVxuXG4gICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICAgIHN0YXR1c1RleHQ6IHhoci5zdGF0dXNUZXh0LFxuICAgICAgICBoZWFkZXJzOiBwYXJzZUhlYWRlcnMoeGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycygpIHx8ICcnKVxuICAgICAgfVxuICAgICAgLy8gVGhpcyBjaGVjayBpZiBzcGVjaWZpY2FsbHkgZm9yIHdoZW4gYSB1c2VyIGZldGNoZXMgYSBmaWxlIGxvY2FsbHkgZnJvbSB0aGUgZmlsZSBzeXN0ZW1cbiAgICAgIC8vIE9ubHkgaWYgdGhlIHN0YXR1cyBpcyBvdXQgb2YgYSBub3JtYWwgcmFuZ2VcbiAgICAgIGlmIChyZXF1ZXN0LnVybC5pbmRleE9mKCdmaWxlOi8vJykgPT09IDAgJiYgKHhoci5zdGF0dXMgPCAyMDAgfHwgeGhyLnN0YXR1cyA+IDU5OSkpIHtcbiAgICAgICAgb3B0aW9ucy5zdGF0dXMgPSAyMDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvcHRpb25zLnN0YXR1cyA9IHhoci5zdGF0dXM7XG4gICAgICB9XG4gICAgICBvcHRpb25zLnVybCA9ICdyZXNwb25zZVVSTCcgaW4geGhyID8geGhyLnJlc3BvbnNlVVJMIDogb3B0aW9ucy5oZWFkZXJzLmdldCgnWC1SZXF1ZXN0LVVSTCcpXG4gICAgICB2YXIgYm9keSA9ICdyZXNwb25zZScgaW4geGhyID8geGhyLnJlc3BvbnNlIDogeGhyLnJlc3BvbnNlVGV4dFxuICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgcmVzb2x2ZShuZXcgUmVzcG9uc2UoYm9keSwgb3B0aW9ucykpXG4gICAgICB9LCAwKVxuICAgIH1cblxuICAgIHhoci5vbmVycm9yID0gZnVuY3Rpb24oKSB7XG4gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICByZWplY3QobmV3IFR5cGVFcnJvcignTmV0d29yayByZXF1ZXN0IGZhaWxlZCcpKVxuICAgICAgfSwgMClcbiAgICB9XG5cbiAgICB4aHIub250aW1lb3V0ID0gZnVuY3Rpb24oKSB7XG4gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICByZWplY3QobmV3IFR5cGVFcnJvcignTmV0d29yayByZXF1ZXN0IHRpbWVkIG91dCcpKVxuICAgICAgfSwgMClcbiAgICB9XG5cbiAgICB4aHIub25hYm9ydCA9IGZ1bmN0aW9uKCkge1xuICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgcmVqZWN0KG5ldyBET01FeGNlcHRpb24oJ0Fib3J0ZWQnLCAnQWJvcnRFcnJvcicpKVxuICAgICAgfSwgMClcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmaXhVcmwodXJsKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdXJsID09PSAnJyAmJiBnLmxvY2F0aW9uLmhyZWYgPyBnLmxvY2F0aW9uLmhyZWYgOiB1cmxcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIHVybFxuICAgICAgfVxuICAgIH1cblxuICAgIHhoci5vcGVuKHJlcXVlc3QubWV0aG9kLCBmaXhVcmwocmVxdWVzdC51cmwpLCB0cnVlKVxuXG4gICAgaWYgKHJlcXVlc3QuY3JlZGVudGlhbHMgPT09ICdpbmNsdWRlJykge1xuICAgICAgeGhyLndpdGhDcmVkZW50aWFscyA9IHRydWVcbiAgICB9IGVsc2UgaWYgKHJlcXVlc3QuY3JlZGVudGlhbHMgPT09ICdvbWl0Jykge1xuICAgICAgeGhyLndpdGhDcmVkZW50aWFscyA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKCdyZXNwb25zZVR5cGUnIGluIHhocikge1xuICAgICAgaWYgKHN1cHBvcnQuYmxvYikge1xuICAgICAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2Jsb2InXG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBzdXBwb3J0LmFycmF5QnVmZmVyXG4gICAgICApIHtcbiAgICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9ICdhcnJheWJ1ZmZlcidcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaW5pdCAmJiB0eXBlb2YgaW5pdC5oZWFkZXJzID09PSAnb2JqZWN0JyAmJiAhKGluaXQuaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMgfHwgKGcuSGVhZGVycyAmJiBpbml0LmhlYWRlcnMgaW5zdGFuY2VvZiBnLkhlYWRlcnMpKSkge1xuICAgICAgdmFyIG5hbWVzID0gW107XG4gICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhpbml0LmhlYWRlcnMpLmZvckVhY2goZnVuY3Rpb24obmFtZSkge1xuICAgICAgICBuYW1lcy5wdXNoKG5vcm1hbGl6ZU5hbWUobmFtZSkpXG4gICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKG5hbWUsIG5vcm1hbGl6ZVZhbHVlKGluaXQuaGVhZGVyc1tuYW1lXSkpXG4gICAgICB9KVxuICAgICAgcmVxdWVzdC5oZWFkZXJzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHtcbiAgICAgICAgaWYgKG5hbWVzLmluZGV4T2YobmFtZSkgPT09IC0xKSB7XG4gICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIobmFtZSwgdmFsdWUpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcXVlc3QuaGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBuYW1lKSB7XG4gICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKG5hbWUsIHZhbHVlKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAocmVxdWVzdC5zaWduYWwpIHtcbiAgICAgIHJlcXVlc3Quc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgYWJvcnRYaHIpXG5cbiAgICAgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgLy8gRE9ORSAoc3VjY2VzcyBvciBmYWlsdXJlKVxuICAgICAgICBpZiAoeGhyLnJlYWR5U3RhdGUgPT09IDQpIHtcbiAgICAgICAgICByZXF1ZXN0LnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIGFib3J0WGhyKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgeGhyLnNlbmQodHlwZW9mIHJlcXVlc3QuX2JvZHlJbml0ID09PSAndW5kZWZpbmVkJyA/IG51bGwgOiByZXF1ZXN0Ll9ib2R5SW5pdClcbiAgfSlcbn1cblxuZmV0Y2gucG9seWZpbGwgPSB0cnVlXG5cbmlmICghZy5mZXRjaCkge1xuICBnLmZldGNoID0gZmV0Y2hcbiAgZy5IZWFkZXJzID0gSGVhZGVyc1xuICBnLlJlcXVlc3QgPSBSZXF1ZXN0XG4gIGcuUmVzcG9uc2UgPSBSZXNwb25zZVxufVxuIiwiLyogdHNsaW50OmRpc2FibGU6bm8tbnVsbC1rZXl3b3JkIG5vLWFueSBuby11bnNhZmUtYW55ICovXG5pbXBvcnQgeyBmZXRjaCB9IGZyb20gXCJ3aGF0d2ctZmV0Y2hcIjtcbmltcG9ydCB7IEFsbEljb25OYW1lcyB9IGZyb20gXCJyZWFjdC11aVwiO1xuXG5pbXBvcnQgeyBFcnJvckZpcnN0Q2FsbGJhY2ssIHJlamVjdCB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vVHlwaW5nVXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgSUZvcm0gfSBmcm9tIFwiLi4vLi4vRW5naW5lL0Zvcm0vSUZvcm1cIjtcbmltcG9ydCB7IExvYWRJbnRvRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vSGVscGVycy9Mb2FkSW50b0RvY3VtZW50XCI7XG5pbXBvcnQgdHlwZSB7IElQdWJsaWNGb3JtIH0gZnJvbSBcIi4uL1B1YmxpY0Zvcm0vSVB1YmxpY0Zvcm1cIjtcbmltcG9ydCB0eXBlIHsgSUtlV2ViVGVtcGxhdGVzQXBpQ2xpZW50IH0gZnJvbSBcIi4uL1R5cGVzL0lLZVdlYlRlbXBsYXRlc0FwaUNsaWVudFwiO1xuaW1wb3J0IHR5cGUgeyBDbGllbnREcmFmdEluZm9SZXNwb25zZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vQ2FuZHlBcGlDbGllbnQvQ2xpZW50RHJhZnRJbmZvL0NsaWVudERyYWZ0SW5mb1Jlc3BvbnNlXCI7XG5pbXBvcnQgeyBnZXRDbGllbnREcmFmdEluZm9VcmwgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L0NsaWVudERyYWZ0SW5mby9HZXRDbGllbnREcmFmdEluZm9VcmxcIjtcbmltcG9ydCB7IEFVT09wdGlvbnMgfSBmcm9tIFwiLi4vVHlwZXMvQVVPT3B0aW9uc1wiO1xuaW1wb3J0IHR5cGUgeyBMYXlvdXRFdmVudHNTdGF0aWMgfSBmcm9tIFwiLi4vLi4vQ29udHJvbHMvSW50ZXJuYWxzL0xheW91dEV2ZW50cy9MYXlvdXRFdmVudHNcIjtcblxuaW1wb3J0IHsgY2xpZW50U2V0dGluZ3MgfSBmcm9tIFwiLi9DbGllbnRTZXR0aW5nc1wiO1xuaW1wb3J0IHsgY3JlYXRlTGVnYWN5UHVibGljRm9ybSB9IGZyb20gXCIuL0xlZ2FjeVB1YmxpY0Zvcm0vQ3JlYXRlTGVnYWN5UHVibGljRm9ybVwiO1xuXG50eXBlIEZvcm1Db250YWluZXIgPSBzdHJpbmcgfCBIVE1MRWxlbWVudDtcblxudHlwZSBFbmdpbmVFbnRyeVBvaW50ID0gKCkgPT4gdm9pZDtcblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25EZXNjcmlwdGlvbiB7XG4gICAgaWNvbjogQWxsSWNvbk5hbWVzO1xuICAgIHRleHQ/OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nKTtcbiAgICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xuICAgIGhpbnQ/OiB1bmRlZmluZWQgfCBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0aWQ/OiBzdHJpbmc7XG4gICAgd2VpZ2h0OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBSZW5kZXJGb3JtU2V0dGluZ3Mge1xuICAgIGdmdjogc3RyaW5nO1xuICAgIGVuZ2luZVZlcnNpb24/OiB1bmRlZmluZWQgfCBudWxsIHwgc3RyaW5nO1xuICAgIHRoZW1lPzogdW5kZWZpbmVkIHwgbnVsbCB8IHN0cmluZztcbiAgICByZXNvdXJjZVpvbmU/OiBzdHJpbmc7XG4gICAgcmVuZGVyRm9ybTogdW5kZWZpbmVkIHwgRW5naW5lRW50cnlQb2ludDtcbiAgICB0ZW1wbGF0ZXNBcGk/OiBJS2VXZWJUZW1wbGF0ZXNBcGlDbGllbnQ7XG4gICAgcGFuZWxBY3Rpb25zPzogQWN0aW9uRGVzY3JpcHRpb25bXTtcbn1cblxudHlwZSBTdGFydEZvcm1GdW5jID0gKHBhZ2VDb250ZW50OiBGb3JtQ29udGFpbmVyLCBleHRlbmRlZFNldHRpbmdzOiBSZW5kZXJGb3JtU2V0dGluZ3MpID0+IFByb21pc2U8SUZvcm0+O1xuXG5pbnRlcmZhY2UgQ2FuZHlHbG9iYWxJbmplY3RlZFZhciB7XG4gICAgc3RhcnQ6IChwYWdlQ29udGVudDogRm9ybUNvbnRhaW5lciwgb3B0aW9uczogU3RhcnRGb3JtT3B0aW9ucywgY2FsbGJhY2s/OiBFcnJvckZpcnN0Q2FsbGJhY2s8SVB1YmxpY0Zvcm0+KSA9PiB2b2lkO1xuICAgIGtlZm9ybXNVcmw/OiBzdHJpbmc7XG4gICAgcGFydGlhbFJlbmRlcmluZ0ZvcklFODogYm9vbGVhbjtcbiAgICBlbnRyeVBvaW50OiB7IFtrZXk6IHN0cmluZ106IFN0YXJ0Rm9ybUZ1bmMgfTtcbiAgICBsb2FkRXJyb3I/OiB1bmtub3duO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gICAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgICAgIENGOiBDYW5keUdsb2JhbEluamVjdGVkVmFyO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gICAgbmFtZXNwYWNlIE5vZGVKUyB7XG4gICAgICAgIGludGVyZmFjZSBHbG9iYWwge1xuICAgICAgICAgICAgQ0Y6IENhbmR5R2xvYmFsSW5qZWN0ZWRWYXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmRlY2xhcmUgY29uc3QgZ2xvYmFsOiBXaW5kb3c7XG5cbmZ1bmN0aW9uIGRlZmF1bHRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAvKiBlbXB0eSAqL1xufVxuXG5mdW5jdGlvbiBwYXJzZUJvb2wodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gXCJmYWxzZVwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBcInRydWVcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gQm9vbGVhbih2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHVybChyZWxhdGl2ZVVybDogc3RyaW5nID0gXCJcIik6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZVVybCA9IGdsb2JhbC5DRi5rZWZvcm1zVXJsIHx8IFwiXCI7XG5cbiAgICByZXR1cm4gYCR7YmFzZVVybH0vJHtyZWxhdGl2ZVVybH1gLnJlcGxhY2UoLyhbXjpdKVxcL3syLH0vZywgXCIkMS9cIik7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkVXJsKHBhdGg6IHN0cmluZywgcGFyYW1zOiB7IFtwYXJhbU5hbWU6IHN0cmluZ106IHVuZGVmaW5lZCB8IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICBpZiAocGFyYW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuICAgIGNvbnN0IHF1ZXJ5UGFydHM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChjb25zdCBwYXJhbU5hbWUgb2YgT2JqZWN0LmtleXMocGFyYW1zKSkge1xuICAgICAgICBjb25zdCBwYXJhbVZhbHVlID0gcGFyYW1zW3BhcmFtTmFtZV07XG4gICAgICAgIGlmIChwYXJhbVZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcXVlcnlQYXJ0cy5wdXNoKGAke3BhcmFtTmFtZX09JHtlbmNvZGVVUklDb21wb25lbnQocGFyYW1WYWx1ZSl9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHF1ZXJ5UGFydHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aCArIFwiP1wiICsgcXVlcnlQYXJ0cy5qb2luKFwiJlwiKTtcbn1cblxuZnVuY3Rpb24gaXNBbGxvd2VkKGRvbWFpbnM6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBuZXcgUmVnRXhwKGBeKD86JHtkb21haW5zLnJlcGxhY2UoL1xcLi9nLCBcIlxcXFwuXCIpLnJlcGxhY2UoL1xcKi9nLCBcIlthLXowLTktLl9dK1wiKX0pJGApLnRlc3QoXG4gICAgICAgIGdsb2JhbC5sb2NhdGlvbi5ob3N0XG4gICAgKTtcbn1cblxuZnVuY3Rpb24gZ2V0UGFyYW1ldGVyQnlOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgKGdsb2JhbC5sb2NhdGlvbi5zZWFyY2hcbiAgICAgICAgICAgIC50cmltKClcbiAgICAgICAgICAgIC5yZXBsYWNlKC9eKFxcP3wjfCYpLywgXCJcIilcbiAgICAgICAgICAgIC5zcGxpdChcIiZcIilcbiAgICAgICAgICAgIC5tYXAocGFyYW0gPT4gcGFyYW0ucmVwbGFjZSgvXFwrL2csIFwiIFwiKS5zcGxpdChcIj1cIikubWFwKGRlY29kZVVSSUNvbXBvbmVudCkpXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dHJpcGxlLWVxdWFsc1xuICAgICAgICAgICAgLmZpbmQoKFtrZXldKSA9PiBrZXkgPT0gbmFtZSkgfHwgW10pWzFdXG4gICAgKTtcbn1cblxudHlwZSBUYXNrID0gKGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvcikgPT4gdm9pZCkgPT4gdm9pZDtcblxuZnVuY3Rpb24gcnVuUGFyYWxsZWwodGFza3M6IFRhc2tbXSwgY2FsbGJhY2s6IChlcnJvcj86IEVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgbGV0IGNvbXBsZXRlZCA9IDA7XG5cbiAgICB0YXNrcy5mb3JFYWNoKHRhc2sgPT4ge1xuICAgICAgICB0YXNrKGVycm9yID0+IHtcbiAgICAgICAgICAgIGlmIChjb21wbGV0ZWQgPT09IHRhc2tzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbXBsZXRlZCA9IHRhc2tzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnJvcik7XG5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb21wbGV0ZWQgKz0gMTtcbiAgICAgICAgICAgIGlmIChjb21wbGV0ZWQgPT09IHRhc2tzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuXG5pbnRlcmZhY2UgU3RhcnRGb3JtU2V0dGluZyB7XG4gICAgZ2Z2OiBzdHJpbmc7XG4gICAgZW5naW5lVmVyc2lvbj86IHVuZGVmaW5lZCB8IG51bGwgfCBzdHJpbmc7XG4gICAgcmVzb3VyY2Vab25lPzogc3RyaW5nO1xuICAgIHRoZW1lPzogdW5kZWZpbmVkIHwgbnVsbCB8IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW5naW5lVmVyc2lvbkdyZWF0ZXJUaGFuT3JFcXVhbChsZWZ0OiBzdHJpbmcsIHJpZ2h0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBsZWZ0TnVtYmVycyA9IGxlZnRcbiAgICAgICAgICAgIC5zcGxpdChcIi5cIilcbiAgICAgICAgICAgIC5zbGljZSgwLCAzKVxuICAgICAgICAgICAgLm1hcCh4ID0+IHBhcnNlSW50KHgsIDEwKSk7XG4gICAgICAgIGNvbnN0IHJpZ2h0TnVtYmVycyA9IHJpZ2h0XG4gICAgICAgICAgICAuc3BsaXQoXCIuXCIpXG4gICAgICAgICAgICAuc2xpY2UoMCwgMylcbiAgICAgICAgICAgIC5tYXAoeCA9PiBwYXJzZUludCh4LCAxMCkpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKGxlZnROdW1iZXJzWzBdID8/IDApID4gKHJpZ2h0TnVtYmVyc1swXSA/PyAwKSB8fFxuICAgICAgICAgICAgKChsZWZ0TnVtYmVyc1swXSA/PyAwKSA9PT0gKHJpZ2h0TnVtYmVyc1swXSA/PyAwKSAmJlxuICAgICAgICAgICAgICAgICgobGVmdE51bWJlcnNbMV0gPz8gMCkgPiAocmlnaHROdW1iZXJzWzFdID8/IDApIHx8XG4gICAgICAgICAgICAgICAgICAgICgobGVmdE51bWJlcnNbMV0gPz8gMCkgPT09IChyaWdodE51bWJlcnNbMV0gPz8gMCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIChsZWZ0TnVtYmVyc1syXSA/PyAwKSA+PSAocmlnaHROdW1iZXJzWzJdID8/IDApKSkpXG4gICAgICAgICk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGxvYWRGb3JtKHNldHRpbmdzOiBTdGFydEZvcm1TZXR0aW5nLCBjYWxsYmFjazogKGVycm9yPzogbnVsbCB8IHVuZGVmaW5lZCB8IEVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgY29uc3QgeyBnZnYsIGVuZ2luZVZlcnNpb24gfSA9IHNldHRpbmdzO1xuXG4gICAgaWYgKGdsb2JhbC5DRi5lbnRyeVBvaW50W2dmdl0pIHtcbiAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpc05lZWRFbmdpbmUgPSBlbmdpbmVWZXJzaW9uICYmICFnbG9iYWxbZW5naW5lVmVyc2lvbl07XG4gICAgY29uc3Qgbm9TdHlsZXNGb3JHZnYgPSBmYWxzZTsgLy8gZW5naW5lVmVyc2lvbiAhPSB1bmRlZmluZWQgJiYgKGlzRW5naW5lVmVyc2lvbkdyZWF0ZXJUaGFuT3JFcXVhbChlbmdpbmVWZXJzaW9uLCBcIjQuMjE0LjBcIikgfHwgZW5naW5lVmVyc2lvbiA9PT0gXCJsb2NhbFwiKTtcbiAgICBjb25zdCBuZWVkTG9hZFN0eWxlc0ZvckdmdiA9ICFub1N0eWxlc0ZvckdmdjtcbiAgICBjb25zdCBtaW4gPSBnZXRQYXJhbWV0ZXJCeU5hbWUoXCJkZWJ1Z1wiKSA9PT0gXCJ0cnVlXCIgPyBcIlwiIDogXCIubWluXCI7XG4gICAgY29uc3QgdGFza3M6IFRhc2tbXSA9IFtdO1xuXG4gICAgY29uc3QgcGFyYW1zID0geyByZXNvdXJjZVpvbmU6IHNldHRpbmdzLnJlc291cmNlWm9uZSB9O1xuICAgIGlmIChuZWVkTG9hZFN0eWxlc0Zvckdmdikge1xuICAgICAgICB0YXNrcy5wdXNoKGNiID0+XG4gICAgICAgICAgICBMb2FkSW50b0RvY3VtZW50LnN0eWxlU2hlZXQodXJsKGJ1aWxkVXJsKGBzdGF0aWMvcHVibGljL3N0eWxlcy8ke2dmdn0ke21pbn0uY3NzYCwgcGFyYW1zKSksIHRydWUsIGNiKVxuICAgICAgICApO1xuICAgIH1cbiAgICB0YXNrcy5wdXNoKGNiID0+IExvYWRJbnRvRG9jdW1lbnQuc2NyaXB0KHVybChidWlsZFVybChgc3RhdGljL3B1YmxpYy9zY3JpcHRzLyR7Z2Z2fSR7bWlufS5qc2AsIHBhcmFtcykpLCBjYikpO1xuXG4gICAgaWYgKGlzTmVlZEVuZ2luZSkge1xuICAgICAgICB0YXNrcy5wdXNoKFxuICAgICAgICAgICAgY2IgPT5cbiAgICAgICAgICAgICAgICBMb2FkSW50b0RvY3VtZW50LnN0eWxlU2hlZXQoXG4gICAgICAgICAgICAgICAgICAgIHVybChidWlsZFVybChgc3RhdGljL3B1YmxpYy9zdHlsZXMvY2FuZHlfJHtlbmdpbmVWZXJzaW9ufSR7bWlufS5jc3NgLCBwYXJhbXMpKSxcbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNiXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGNiID0+XG4gICAgICAgICAgICAgICAgTG9hZEludG9Eb2N1bWVudC5zY3JpcHQoXG4gICAgICAgICAgICAgICAgICAgIHVybChidWlsZFVybChgc3RhdGljL3B1YmxpYy9zY3JpcHRzL2NhbmR5XyR7ZW5naW5lVmVyc2lvbn0ke21pbn0uanNgLCBwYXJhbXMpKSxcbiAgICAgICAgICAgICAgICAgICAgY2JcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcnVuUGFyYWxsZWwodGFza3MsIGNhbGxiYWNrKTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyRm9ybShcbiAgICBwYWdlQ29udGVudDogRm9ybUNvbnRhaW5lcixcbiAgICBleHRlbmRlZFNldHRpbmdzOiBSZW5kZXJGb3JtU2V0dGluZ3MsXG4gICAgY2FsbGJhY2s6IEVycm9yRmlyc3RDYWxsYmFjazxJUHVibGljRm9ybT5cbik6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1FbnRyeVBvaW50ID1cbiAgICAgICAgZ2xvYmFsLkNGLmVudHJ5UG9pbnRbZXh0ZW5kZWRTZXR0aW5ncy5nZnZdID8/IHJlamVjdChgRm9ybSBlbnRyeSBwb2ludCAke2V4dGVuZGVkU2V0dGluZ3MuZ2Z2fSBub3QgZm91bmQuYCk7XG4gICAgZm9ybUVudHJ5UG9pbnQocGFnZUNvbnRlbnQsIGV4dGVuZGVkU2V0dGluZ3MpXG4gICAgICAgIC50aGVuKGZvcm0gPT4ge1xuICAgICAgICAgICAgY29uc3QgcHVibGljRm9ybSA9IGZvcm0ucHVibGljRm9ybSB8fCBjcmVhdGVMZWdhY3lQdWJsaWNGb3JtKGZvcm0pO1xuXG4gICAgICAgICAgICBjYWxsYmFjayhudWxsLCBwdWJsaWNGb3JtKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGNhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFydEZvcm1PcHRpb25zIGV4dGVuZHMgUGFydGlhbDxBVU9PcHRpb25zPiB7XG4gICAgbnM6IHN0cmluZztcbiAgICBkcmFmdElkOiBzdHJpbmc7XG4gICAgZ2Z2Pzogc3RyaW5nO1xuICAgIHJlc291cmNlWm9uZT86IHN0cmluZztcbiAgICB0ZW1wbGF0ZXNBcGk/OiBJS2VXZWJUZW1wbGF0ZXNBcGlDbGllbnQ7XG4gICAgZmVlZGJhY2tFbmFibGVkPzogYm9vbGVhbjtcbiAgICBpc0Rpc2FibGVkQ2xvc2VCdXR0b24/OiBib29sZWFuO1xuICAgIGlzRGlzYWJsZWRDbG9zZUFuZFNhdmVCdXR0b24/OiBib29sZWFuO1xuICAgIGlzRGlzYWJsZWRDbGVhbkZvcm0/OiBib29sZWFuO1xuICAgIHRoZW1lPzogdW5kZWZpbmVkIHwgbnVsbCB8IHN0cmluZztcbiAgICBhdXRoZW50aWNhdGlvbj86IFwiYnJvd3Nlci1jcmVkZW50aWFscy1pbmNsdWRlXCIgfCB7IGF1dGhTaWQ6IHN0cmluZyB9O1xuICAgIGZldGNoPzogdHlwZW9mIGZldGNoO1xuICAgIG1vZGVsPzogeyBbcGF0aDogc3RyaW5nXTogdW5rbm93biB9O1xuICAgIHBhbmVsQWN0aW9ucz86IEFjdGlvbkRlc2NyaXB0aW9uW107XG4gICAgZXZlbnRFbWl0dGVyPzogTGF5b3V0RXZlbnRzU3RhdGljO1xuICAgIGVtcGxveWVySWQ/OiBzdHJpbmc7XG4gICAgc2hvd05hdmlnYXRpb25TaWRlYmFyPzogYm9vbGVhbjtcbiAgICBvblJlbW92ZUF0dGFjaG1lbnQ/OiAoKSA9PiB2b2lkO1xufVxuXG5mdW5jdGlvbiBnZXRFbmdpbmVFbnRyeVBvaW50KGVuZ2luZVZlcnNpb246IHVuZGVmaW5lZCB8IG51bGwgfCBzdHJpbmcpOiB1bmRlZmluZWQgfCBFbmdpbmVFbnRyeVBvaW50IHtcbiAgICBpZiAoZW5naW5lVmVyc2lvbiA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgcmV0dXJuIGdsb2JhbFtlbmdpbmVWZXJzaW9uXSAmJiBnbG9iYWxbZW5naW5lVmVyc2lvbl0uZGVmYXVsdDtcbn1cblxuZnVuY3Rpb24gc3RhcnQoXG4gICAgcGFnZUNvbnRlbnQ6IEZvcm1Db250YWluZXIsXG4gICAgb3B0aW9uczogU3RhcnRGb3JtT3B0aW9ucyxcbiAgICBjYWxsYmFjazogRXJyb3JGaXJzdENhbGxiYWNrPElQdWJsaWNGb3JtPiA9IGRlZmF1bHRDYWxsYmFja1xuKTogdm9pZCB7XG4gICAgbGV0IGVycm9yID0gbnVsbDtcbiAgICBjb25zdCB7IG5zLCBkcmFmdElkIH0gPSBvcHRpb25zO1xuXG4gICAgaWYgKCFpc0FsbG93ZWQoY2xpZW50U2V0dGluZ3Mua29udHVyRG9tYWlucykpIHtcbiAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoXCJkb21haW4udW50cnVzdGVkXCIpO1xuICAgIH0gZWxzZSBpZiAoIWNsaWVudFNldHRpbmdzLmF1dGhvcml6ZWQpIHtcbiAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoXCJ1c2VyLnVuYXV0aGVudGljYXRlZFwiKTtcbiAgICB9IGVsc2UgaWYgKCFkcmFmdElkKSB7XG4gICAgICAgIGVycm9yID0gbmV3IEVycm9yKFwib3B0aW9ucy5kcmFmdElkIGlzIHJlcXVpcmVkXCIpO1xuICAgIH0gZWxzZSBpZiAoIW5zKSB7XG4gICAgICAgIGVycm9yID0gbmV3IEVycm9yKFwib3B0aW9ucy5ucyBpcyByZXF1aXJlZFwiKTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgY2FsbGJhY2soZXJyb3IpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb3VyY2Vab25lID0gb3B0aW9ucy5yZXNvdXJjZVpvbmUgPz8gZ2V0UGFyYW1ldGVyQnlOYW1lKFwicmVzb3VyY2Vab25lXCIpO1xuICAgIGNvbnN0IGNsaWVudERyYWZ0VXJsID0gYnVpbGRVcmwodXJsKGdldENsaWVudERyYWZ0SW5mb1VybCh7IG5zOiBucywgZHJhZnRJZDogZHJhZnRJZCB9KSksIHtcbiAgICAgICAgcmVzb3VyY2Vab25lOiByZXNvdXJjZVpvbmUsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXF1ZXN0T3B0aW9uczogUmVxdWVzdEluaXQgPSB7IG1ldGhvZDogXCJHRVRcIiB9O1xuICAgIGlmIChvcHRpb25zLmF1dGhlbnRpY2F0aW9uID09IHVuZGVmaW5lZCB8fCBvcHRpb25zLmF1dGhlbnRpY2F0aW9uID09PSBcImJyb3dzZXItY3JlZGVudGlhbHMtaW5jbHVkZVwiKSB7XG4gICAgICAgIHJlcXVlc3RPcHRpb25zLmNyZWRlbnRpYWxzID0gXCJpbmNsdWRlXCI7XG4gICAgfSBlbHNlIGlmIChcImF1dGhTaWRcIiBpbiBvcHRpb25zLmF1dGhlbnRpY2F0aW9uICYmIG9wdGlvbnMuYXV0aGVudGljYXRpb24uYXV0aFNpZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVxdWVzdE9wdGlvbnMuY3JlZGVudGlhbHMgPSBcIm9taXRcIjtcbiAgICAgICAgcmVxdWVzdE9wdGlvbnMuaGVhZGVycyA9IHJlcXVlc3RPcHRpb25zLmhlYWRlcnMgPz8ge307XG4gICAgICAgIHJlcXVlc3RPcHRpb25zLmhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdID0gYEFVVEguU0lEICR7b3B0aW9ucy5hdXRoZW50aWNhdGlvbi5hdXRoU2lkfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmVxdWVzdE9wdGlvbnMuY3JlZGVudGlhbHMgPSBcIm9taXRcIjtcbiAgICB9XG4gICAgY29uc3QgZmV0Y2hJbXBsID0gb3B0aW9ucy5mZXRjaCA/PyBmZXRjaDtcblxuICAgIGZldGNoSW1wbChjbGllbnREcmFmdFVybCwgcmVxdWVzdE9wdGlvbnMpXG4gICAgICAgIC50aGVuKHggPT4geC5qc29uKCkpXG4gICAgICAgIC50aGVuKChjbGllbnREcmFmdEluZm86IENsaWVudERyYWZ0SW5mb1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBnZnYgPSBjbGllbnREcmFmdEluZm8uZ2Z2O1xuICAgICAgICAgICAgY29uc3QgZW5naW5lVmVyc2lvbiA9IGNsaWVudERyYWZ0SW5mby5lbmdpbmVWZXJzaW9uO1xuICAgICAgICAgICAgY29uc3QgZXh0ZW5kZWRTZXR0aW5ncyA9IHtcbiAgICAgICAgICAgICAgICBhdXRob3JpemVkOiBjbGllbnRTZXR0aW5ncy5hdXRob3JpemVkLFxuICAgICAgICAgICAgICAgIGNhdWxkcm9uQXBpVXJsOiBjbGllbnRTZXR0aW5ncy5jYXVsZHJvbkFwaVVybCxcbiAgICAgICAgICAgICAgICBpc1Rlc3RTZXJ2ZXI6IGNsaWVudFNldHRpbmdzLmlzVGVzdFNlcnZlcixcbiAgICAgICAgICAgICAgICByZW5kZXJDYWNoaW5nRm9ySUU4OiBjbGllbnRTZXR0aW5ncy5yZW5kZXJDYWNoaW5nRm9ySUU4LFxuICAgICAgICAgICAgICAgIG5vcm1hbGl6YXRpb25PblNlcnZlcjogY2xpZW50U2V0dGluZ3Mubm9ybWFsaXphdGlvbk9uU2VydmVyLFxuICAgICAgICAgICAgICAgIG5vcm1hdGl2ZVVybDogY2xpZW50U2V0dGluZ3Mubm9ybWF0aXZlVXJsLFxuICAgICAgICAgICAgICAgIGtvbnR1ckRvbWFpbnM6IGNsaWVudFNldHRpbmdzLmtvbnR1ckRvbWFpbnMsXG4gICAgICAgICAgICAgICAgc2hvd05hdmlnYXRpb25TaWRlYmFyOiBvcHRpb25zLnNob3dOYXZpZ2F0aW9uU2lkZWJhciA/PyB0cnVlLFxuICAgICAgICAgICAgICAgIG9uUmVtb3ZlQXR0YWNobWVudDogb3B0aW9ucy5vblJlbW92ZUF0dGFjaG1lbnQsXG4gICAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgICAgICAuLi5jbGllbnREcmFmdEluZm8sXG4gICAgICAgICAgICAgICAgZ2Z2OiBnZnYsXG4gICAgICAgICAgICAgICAgZW5naW5lVmVyc2lvbjogZW5naW5lVmVyc2lvbixcbiAgICAgICAgICAgICAgICBmZWVkYmFja0VuYWJsZWQ6IG9wdGlvbnMuZmVlZGJhY2tFbmFibGVkID8/IGNsaWVudERyYWZ0SW5mby5mZWVkYmFja0VuYWJsZWQsXG4gICAgICAgICAgICAgICAgaXNEaXNhYmxlZENsZWFuRm9ybTogb3B0aW9ucy5pc0Rpc2FibGVkQ2xlYW5Gb3JtID8/IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzRGlzYWJsZWRDbG9zZUJ1dHRvbjogb3B0aW9ucy5pc0Rpc2FibGVkQ2xvc2VCdXR0b24gPz8gZmFsc2UsXG4gICAgICAgICAgICAgICAgaXNEaXNhYmxlZENsb3NlQW5kU2F2ZUJ1dHRvbjogb3B0aW9ucy5pc0Rpc2FibGVkQ2xvc2VBbmRTYXZlQnV0dG9uID8/IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc291cmNlWm9uZTogcmVzb3VyY2Vab25lLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgbG9hZEZvcm0oXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBnZnY6IGV4dGVuZGVkU2V0dGluZ3MuZ2Z2LFxuICAgICAgICAgICAgICAgICAgICBlbmdpbmVWZXJzaW9uOiBleHRlbmRlZFNldHRpbmdzLmVuZ2luZVZlcnNpb24sXG4gICAgICAgICAgICAgICAgICAgIHJlc291cmNlWm9uZTogZXh0ZW5kZWRTZXR0aW5ncy5yZXNvdXJjZVpvbmUsXG4gICAgICAgICAgICAgICAgICAgIHRoZW1lOiBleHRlbmRlZFNldHRpbmdzLnRoZW1lLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbG9hZEVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvYWRFcnJvciB8fCAhZ2xvYmFsLkNGLmVudHJ5UG9pbnRbZ2Z2XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKGBkeW5hbWljIGxvYWRpbmcgaXMgbm90IHN1cHBvcnRlZCBmb3IgZ2Z2ICR7Z2Z2fWApKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZW5kZXIgPSBnZXRFbmdpbmVFbnRyeVBvaW50KGVuZ2luZVZlcnNpb24pO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlckZvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlQ29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5leHRlbmRlZFNldHRpbmdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlc0FwaTogb3B0aW9ucy50ZW1wbGF0ZXNBcGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyRm9ybTogcmVuZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGNhbGxiYWNrKTtcbn1cblxuY29uc3QgQ2FuZHlDbGllbnRFeHBvcnRzOiBDYW5keUdsb2JhbEluamVjdGVkVmFyID0ge1xuICAgIHN0YXJ0OiBzdGFydCxcbiAgICBlbnRyeVBvaW50OiB7fSxcbiAgICBwYXJ0aWFsUmVuZGVyaW5nRm9ySUU4OiBwYXJzZUJvb2woXCJ7cGFydGlhbFJlbmRlcmluZ0ZvcklFOH1cIiksXG4gICAga2Vmb3Jtc1VybDogXCJ7a2Vmb3Jtc1VybH1cIixcbn07XG5cbmdsb2JhbC5DRiA9IENhbmR5Q2xpZW50RXhwb3J0cztcblxuZXhwb3J0IHsgQ2FuZHlDbGllbnRFeHBvcnRzIH07XG4iLCJmdW5jdGlvbiBwYXJzZUJvb2wodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gXCJmYWxzZVwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBcInRydWVcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gQm9vbGVhbih2YWx1ZSk7XG59XG5cbmV4cG9ydCBjb25zdCBjbGllbnRTZXR0aW5ncyA9IHtcbiAgICBhdXRob3JpemVkOiBwYXJzZUJvb2woXCJ7YXV0aG9yaXplZH1cIiksXG4gICAgY2F1bGRyb25BcGlVcmw6IFwie2NhdWxkcm9uQXBpVXJsfVwiLFxuICAgIGlzVGVzdFNlcnZlcjogcGFyc2VCb29sKFwie2lzVGVzdFNlcnZlcn1cIiksXG4gICAgcmVuZGVyQ2FjaGluZ0ZvcklFODogcGFyc2VCb29sKFwie3JlbmRlckNhY2hpbmdGb3JJRTh9XCIpLFxuICAgIG5vcm1hbGl6YXRpb25PblNlcnZlcjogcGFyc2VCb29sKFwie25vcm1hbGl6YXRpb25PblNlcnZlcn1cIiksXG4gICAgbm9ybWF0aXZlVXJsOiBcIntub3JtYXRpdmVVcmx9XCIsXG4gICAga29udHVyRG9tYWluczogXCJ7a29udHVyRG9tYWluc31cIixcbn07XG4iLCJpbXBvcnQge1xuICAgIEVtcGxveWVlLFxuICAgIEVtcGxveWVlTGlzdCxcbiAgICBHZXRFbXBsb3llZXNXaXRoQWN0aXZlUGVyaW9kUXVlcnksXG4gICAgR2V0V29ya2luZ0V2ZW50TGlzdFJlcXVlc3QsXG4gICAgTWF0Y2hFbXBsb3llZVJlcXVlc3QsXG4gICAgTWF0Y2hFbXBsb3llZVJlc3BvbnNlLFxuICAgIE1lcmdlUmVsYXRpdmVSZXNwb25zZSxcbiAgICBQYXRjaFJlbGF0aXZlUmVzcG9uc2UsXG4gICAgV29ya2luZ0V2ZW50TGlzdCxcbn0gZnJvbSBcIkBza2Jrb250dXIvc3RhZmYtc2VsZWN0b3Itd2lkZ2V0XCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwiRW5naW5lL3NyYy9FbmdpbmUvRm9ybS9Nb2RlbENoYW5nZUV2ZW50TGlzdGVuZXJcIjtcblxuaW1wb3J0IHsgTm90SW1wbGVtZW50ZWRFcnJvciB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9Db21tb24vRXJyb3JzXCI7XG5pbXBvcnQgdHlwZSB7IFN0ZXAgfSBmcm9tIFwiLi4vLi4vLi4vQ29udHJvbHMvRm9ybVBhcnRzL1RvdXIvVG91clR5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IFNlcnZlckVycm9yTG9nIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL0NvbW1vbi9DYW5keUFwaUNsaWVudC9UeXBlcy9FcnJvckxvZy9TZXJ2ZXJFcnJvckxvZ1wiO1xuaW1wb3J0IHR5cGUgeyBCaW5kaW5nUGF0aCwgTW9kZWxWYWx1ZSB9IGZyb20gXCIuLi8uLi8uLi9FbmdpbmUvQ29yZS9Db3JlVHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgRXh0ZXJuYWxIb29rRnVuY3Rpb24gfSBmcm9tIFwiLi4vLi4vLi4vRW5naW5lL0NvcmUvRXZlbnRNYW5hZ2VtZW50L0V4dGVybmFsRXZlbnRzL0V4dGVybmFsSG9va0Z1bmN0aW9uXCI7XG5pbXBvcnQgdHlwZSB7IFJlYWRvbmx5TW9kZWxDaHVuayB9IGZyb20gXCIuLi8uLi8uLi9FbmdpbmUvQ29yZS9Nb2RlbFN0b3JpbmcvTW9kZWxDaHVua1wiO1xuaW1wb3J0IHR5cGUgeyBQaWNrbGlzdFF1ZXJ5UmVzcG9uc2UgfSBmcm9tIFwiLi4vLi4vLi4vRW5naW5lL0NvcmUvUGlja2xpc3RzL1BpY2tsaXN0VHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgSUZvcm0gfSBmcm9tIFwiLi4vLi4vLi4vRW5naW5lL0Zvcm0vSUZvcm1cIjtcbmltcG9ydCB0eXBlIHsgSVB1YmxpY0Zvcm0gfSBmcm9tIFwiLi4vLi4vUHVibGljRm9ybS9JUHVibGljRm9ybVwiO1xuaW1wb3J0IHsgTW9kZWxFdmVudHNMaXN0ZW5lciB9IGZyb20gXCIuLi8uLi8uLi9FbmdpbmUvQ29yZS9FdmVudE1hbmFnZW1lbnQvTW9kZWxFdmVudHMvTW9kZWxFdmVudFwiO1xuaW1wb3J0IHsgRGlnZXN0UXVlcnlGaWx0ZXIgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L0RpZ2VzdEFwaUNsaWVudC9UeXBlcy9EaWdlc3RRdWVyeUZpbHRlclwiO1xuaW1wb3J0IHsgSVVwZGF0ZUZvcm1Nb2RlbEFjY2Vzc29yIH0gZnJvbSBcIi4uLy4uLy4uL0VuZ2luZS9Gb3JtL0lGb3JtTW9kZWxBY2Nlc3NvclwiO1xuaW1wb3J0IHsgTW9kYWxPcHRpb25zIH0gZnJvbSBcIi4uLy4uLy4uL0VuZ2luZS9Db3JlL01vZGFsTWFuYWdlci9JTW9kYWxTdGF0ZVwiO1xuaW1wb3J0IHsgQWJzb2x1dGVSZXNvbHZlZE1vZGVsUGF0aCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9Db21tb24vTW9kZWxQYXRoL01vZGVsUGF0aFwiO1xuaW1wb3J0IHtcbiAgICBDYWxsSW5pdFNlY3Rpb25MaWdodGJveFByb3BzLFxuICAgIEluaXRTZWN0aW9uRm9ybUxpZ2h0Ym94T3B0aW9ucyxcbiAgICBQcmVmZXJyZWRJbnRlcmRvY3VtZW50VHJhbnNmZXJQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL1B1YmxpY0Zvcm0vSW5pdFNlY3Rpb25MaWdodGJveFwiO1xuaW1wb3J0IHsgTWFzc0FjdGlvblBhcmFtZXRlcnMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L1R5cGVzL01hc3NBY3Rpb25zL01hc3NBY3Rpb25QYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBQcmludFR5cGUgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L1R5cGVzL1ByaW50L1ByaW50VHlwZVwiO1xuaW1wb3J0IHsgRmlhc0FwaSwgRmlhc0NsaWVudEluaXRPcHRpb25zIH0gZnJvbSBcIi4uLy4uLy4uL0NvbnRyb2xzL1ZhbHVlRWRpdG9ycy9GaWFzL0ZpYXNJbnB1dC9GaWFzQXBpXCI7XG5pbXBvcnQgeyBJbnN0YW5jZXNEZWxldGluZ1J1bGUgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L1R5cGVzL0luc3RhbmNlc0RlbGV0aW5nL0luc3RhbmNlc0RlbGV0aW5nUnVsZVwiO1xuaW1wb3J0IHsgQ29tYmluZUZ1ZlJlc3VsdCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9Db21tb24vQ2FuZHlBcGlDbGllbnQvVHlwZXMvRHJhZnRBY3Rpb25zL0NvbWJpbmVGdWZSZXN1bHRcIjtcbmltcG9ydCB7IElDYW5keUNvbXBvbmVudEhhbmRsZSB9IGZyb20gXCIuLi8uLi8uLi9FbmdpbmUvQ29yZS9Db21wb25lbnRIYW5kbGVSZWdpc3RyeS9JQ2FuZHlDb21wb25lbnRIYW5kbGVcIjtcbmltcG9ydCB7IE5hdmlnYXRpb25QYXRoTWFwcGVyIH0gZnJvbSBcIi4uLy4uL0luamVjdGFibGVNb2R1bGVzL0luamVjdGFibGVFbmdpbmVNb2R1bGVzXCI7XG5pbXBvcnQge1xuICAgIEVtcGxveWVyTm9ybWFsaXplZFRhZyxcbiAgICBJbXBvcnRFbXBsb3llckRvY3VtZW50c09wdGlvbnMsXG59IGZyb20gXCIuLi8uLi8uLi9TdGFmZlNlcnZpY2VJbnRlZ3JhdGlvbi9FbXBsb3llZVNlcnZpY2VUeXBlc1wiO1xuaW1wb3J0IHsgVGFiSW5mb3NTdGF0ZSB9IGZyb20gXCIuLi8uLi8uLi9Db250cm9scy9NdWx0aUNvbnRyb2xzL1RhYnMvU3RvcmUvVGFiSW5mb3NTdGF0ZVwiO1xuaW1wb3J0IHsgTWV0cmljc1BheWxvYWQgfSBmcm9tIFwiLi4vLi4vLi4vQ29udHJvbHMvSW50ZXJuYWxzL01ldHJpY3MvTWV0cmljc1Byb3ZpZGVyXCI7XG5cbmltcG9ydCB7IElMZWdhY3lGb3JtIH0gZnJvbSBcIi4vSUxlZ2FjeUZvcm1cIjtcblxuZXhwb3J0IHR5cGUgTW9kZWxFdmVudFBhdGggPVxuICAgIHwgW1wibW9kZWxcIiwgXCJjaGFuZ2VcIiwgc3RyaW5nLCBzdHJpbmddXG4gICAgfCBbXCJtb2RlbFwiLCBcInJlbW92ZVwiLCBzdHJpbmcsIHN0cmluZ11cbiAgICB8IFtcIm1vZGVsXCIsIFwiY2hhbmdlXCIsIHN0cmluZ11cbiAgICB8IFtcIm1vZGVsXCIsIFwicmVtb3ZlXCIsIHN0cmluZ11cbiAgICB8IFtcIm1vZGVsXCIsIFwiY2hhbmdlXCJdXG4gICAgfCBbXCJtb2RlbFwiLCBcInJlbW92ZVwiXTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsQ2hhbmdlRXZlbnRQYXRoKHBhdGg/OiBzdHJpbmcsIGZpZWxkTmFtZT86IHN0cmluZyk6IE1vZGVsRXZlbnRQYXRoIHtcbiAgICBpZiAoZmllbGROYW1lICE9IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAocGF0aCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhdGggbXVzdCBiZSBkZWZpbmVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXCJtb2RlbFwiLCBcImNoYW5nZVwiLCBwYXRoLCBmaWVsZE5hbWVdO1xuICAgIH1cbiAgICBpZiAocGF0aCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIFtcIm1vZGVsXCIsIFwiY2hhbmdlXCIsIHBhdGhdO1xuICAgIH1cbiAgICByZXR1cm4gW1wibW9kZWxcIiwgXCJjaGFuZ2VcIl07XG59XG5cbmZ1bmN0aW9uIG1hcENodW5rVmFsdWVzKGNodW5rOiBSZWFkb25seU1vZGVsQ2h1bmspOiBBcnJheTx7IFtwYXRoOiBzdHJpbmddOiBNb2RlbFZhbHVlIH0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoY2h1bmspXG4gICAgICAgIC5maWx0ZXIocGF0aCA9PiBjaHVua1twYXRoXSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2h1bmtbcGF0aF0sIFwidmFsdWVcIikpXG4gICAgICAgIC5tYXAocGF0aCA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBjaHVua1twYXRoXTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgW3BhdGhdOiByZXN1bHQudmFsdWUgfTtcbiAgICAgICAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlZHVjZUNodW5rVmFsdWVzKGNodW5rczogQXJyYXk8eyBbcGF0aDogc3RyaW5nXTogTW9kZWxWYWx1ZSB9Pik6IHsgW3BhdGg6IHN0cmluZ106IE1vZGVsVmFsdWUgfSB7XG4gICAgcmV0dXJuIGNodW5rcy5yZWR1Y2UoXG4gICAgICAgIChyZXN1bHQsIGNodW5rKSA9PiAoe1xuICAgICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgICAgLi4uY2h1bmssXG4gICAgICAgIH0pLFxuICAgICAgICB7fVxuICAgICk7XG59XG5cbmNsYXNzIExlZ2FjeVB1YmxpY0Zvcm0gaW1wbGVtZW50cyBJUHVibGljRm9ybSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtOiBJTGVnYWN5Rm9ybTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihmb3JtOiBJTGVnYWN5Rm9ybSkge1xuICAgICAgICB0aGlzLmZvcm0gPSBmb3JtO1xuICAgIH1cblxuICAgIHB1YmxpYyBuYXZpZ2F0ZUJ5SGlnaGxhbmRlclBhdGhzKHBhdGhzOiBzdHJpbmdbXSk6IFByb21pc2U8SUNhbmR5Q29tcG9uZW50SGFuZGxlIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5jZWxTZWxlY3RSZWxhdGl2ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE5hdmlnYXRpb25QYXRoTWFwcGVyKCk6IE5hdmlnYXRpb25QYXRoTWFwcGVyIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGJhdGNoVXBkYXRlKHVwZGF0ZVByb2M6ICh1cGRhdGVBY2Nlc3NvcjogSVVwZGF0ZUZvcm1Nb2RlbEFjY2Vzc29yKSA9PiB2b2lkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBydW5DaGVjaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEVycm9yTG9nKGVycm9yTG9nOiBQYXJ0aWFsPFNlcnZlckVycm9yTG9nPik6IHZvaWQge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgdmFsaWRhdGVDaGlsZHJlbkJ5UGF0aChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIF9fSU5URVJOQUxfX2ltcG9ydEZyb21FbXBsb3llZVNlcnZpY2UoKTogUHJvbWlzZTxFbXBsb3llZVtdIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBfX0lOVEVSTkFMX19nZXRTZWxlY3RGdW5jdGlvbkZvckRpc2FibGVFbXBsb3llZUluU1MoXG4gICAgICAgIHBhdGhTcGVjOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPChlbXBsb3llZTogRW1wbG95ZWUpID0+IGJvb2xlYW4+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE1vZGFsVW5pdE9wZW5lZEluc3RhbmNlKHBhZ2VJZDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUYWJzU3RhdGUoKTogVGFiSW5mb3NTdGF0ZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuYXZpZ2F0ZShuYXZpZ2F0aW9uUGF0aDogc3RyaW5nKTogUHJvbWlzZTxJQ2FuZHlDb21wb25lbnRIYW5kbGUgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGltcG9ydEVtcGxveWVyRG9jdW1lbnRzKFxuICAgICAgICBvcHRpb25zOiBJbXBvcnRFbXBsb3llckRvY3VtZW50c09wdGlvbnNcbiAgICApOiBQcm9taXNlPEVtcGxveWVyTm9ybWFsaXplZFRhZyB8IHVuZGVmaW5lZCB8IG51bGw+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGltcG9ydEVtcGxveWVlcyhlbXBsb3llZXM6IEVtcGxveWVlW10sIG9wdGlvbnM/OiB7IHNjZW5hcmlvPzogc3RyaW5nIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIHByaW50KHByaW50VHlwZTogUHJpbnRUeXBlLCBib2R5Pzogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuICAgIHB1YmxpYyBydW5NYXNzQWN0aW9uKGFjdGlvbklkOiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBNYXNzQWN0aW9uUGFyYW1ldGVycyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QnlHSWQoZ0lkOiBzdHJpbmcsIGZpbHRlcj86IERpZ2VzdFF1ZXJ5RmlsdGVyKTogUHJvbWlzZTxQaWNrbGlzdFF1ZXJ5UmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5waWNrbGlzdHNQcm92aWRlci5nZXREaWdlc3RBcGlQaWNrbGlzdChnSWQpLnF1ZXJ5KGZpbHRlcik7XG4gICAgfVxuXG4gICAgcHVibGljIG9uKGV2ZW50TmFtZTogc3RyaW5nLCBsaXN0ZW5lcjogRXh0ZXJuYWxIb29rRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtLmV2ZW50TWFuYWdlci5vbihbXCJmb3JtXCIsIGV2ZW50TmFtZV0sIGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb2ZmKGV2ZW50TmFtZTogc3RyaW5nLCBsaXN0ZW5lcjogRXh0ZXJuYWxIb29rRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtLmV2ZW50TWFuYWdlci5vZmYoW1wiZm9ybVwiLCBldmVudE5hbWVdLCBsaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTW9kZWxDaGFuZ2UocGF0aDogc3RyaW5nIHwgc3RyaW5nW10sIGxpc3RlbmVyOiB1bmtub3duKTogU3Vic2NyaXB0aW9uIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJmb3JtLm9uTW9kZWxDaGFuZ2UoKSBpcyBub3Qgc3VwcG9ydGVkIHlldFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2F2ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5jaGFuZ2VTZXQuc2VuZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5mb3JtLmNoYW5nZVNldC5zdG9wQXV0b3NlbmQoKTtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS51bm1vdW50KSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0udW5tb3VudCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5jaGFuZ2VTZXQuc2VuZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUb3VyU3RlcHMoKTogU3RlcFtdIHtcbiAgICAgICAgLy8gRm9yIG9sZCBrZXdlYlxuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcHVibGljIHZhbGlkYXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModGhpcy5mb3JtLm1vZGVsLmdldENodW5rKHRoaXMuZm9ybS5zZXR0aW5ncy5mb3JtUm9vdCkpO1xuICAgICAgICAvLyBAdHMtaWdub3JlINCt0YLQviDQsiDRgdGC0LDRgNGL0YUg0LTQstC40LbQutCw0YUg0YLRg9GCINGC0LDQutC+0Lkg0LLRi9C30L7QslxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS52YWxpZGF0b3IudmFsaWRhdGVBbGwoa2V5cyk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXRBZGRpdGlvbmFsRW1wbG95ZWVJbmZvKGZpbHRlcnM6IEdldEVtcGxveWVlc1dpdGhBY3RpdmVQZXJpb2RRdWVyeSk6IFByb21pc2U8RW1wbG95ZWVMaXN0IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIm5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RW1wbG95ZWVzKCk6IFByb21pc2U8RW1wbG95ZWVMaXN0PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIm5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWVyZ2VSZWxhdGl2ZSgpOiBQcm9taXNlPE1lcmdlUmVsYXRpdmVSZXNwb25zZSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJub3QgaW1wbGVtZW50ZWRcIik7XG4gICAgfVxuXG4gICAgcHVibGljIHBhdGNoUmVsYXRpdmUoKTogUHJvbWlzZTxQYXRjaFJlbGF0aXZlUmVzcG9uc2U+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwibm90IGltcGxlbWVudGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZW5kTWV0cmljcyhhY3Rpb246IHN0cmluZywgcGF5bG9hZD86IE1ldHJpY3NQYXlsb2FkKTogdm9pZCB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG1hdGNoRW1wbG95ZWUocXVlcnk6IE1hdGNoRW1wbG95ZWVSZXF1ZXN0KTogUHJvbWlzZTxNYXRjaEVtcGxveWVlUmVzcG9uc2U+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwibm90IGltcGxlbWVudGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZWxvYWRJbm5lcigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwibm90IGltcGxlbWVudGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRXb3JraW5nRXZlbnRzRm9yRW1wbG95ZWUoZmlsdGVyczogR2V0V29ya2luZ0V2ZW50TGlzdFJlcXVlc3QpOiBQcm9taXNlPFdvcmtpbmdFdmVudExpc3QgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwibm90IGltcGxlbWVudGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGVycm9yQ291bnQgPSB0aGlzLmZvcm0ubW9kZWwuZ2V0KHRoaXMuZm9ybS5zZXR0aW5ncy5mb3JtUm9vdCwgXCJlcnJvcnNDb3VudFwiKTtcbiAgICAgICAgcmV0dXJuIGVycm9yQ291bnQgIT0gdW5kZWZpbmVkICYmIGVycm9yQ291bnQgPiAwO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkVycm9yc0NvdW50Q2hhbmdlZChsaXN0ZW5lcjogTW9kZWxFdmVudHNMaXN0ZW5lcik6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm0uZXZlbnRNYW5hZ2VyLm9uKG1vZGVsQ2hhbmdlRXZlbnRQYXRoKHRoaXMuZm9ybS5zZXR0aW5ncy5mb3JtUm9vdCwgXCJlcnJvcnNDb3VudFwiKSwgbGlzdGVuZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvZmZFcnJvcnNDb3VudENoYW5nZWQobGlzdGVuZXI6IE1vZGVsRXZlbnRzTGlzdGVuZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtLmV2ZW50TWFuYWdlci5vZmYobW9kZWxDaGFuZ2VFdmVudFBhdGgodGhpcy5mb3JtLnNldHRpbmdzLmZvcm1Sb290LCBcImVycm9yc0NvdW50XCIpLCBsaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgcHVibGljIHNldChwYXRoT3JNb2RlbENodW5rOiB7IFtwYXRoOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuICAgIHB1YmxpYyBzZXQocGF0aE9yTW9kZWxDaHVuazogc3RyaW5nLCB2YWx1ZTogTW9kZWxWYWx1ZSk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuICAgIHB1YmxpYyBzZXQoXG4gICAgICAgIHBhdGhPck1vZGVsQ2h1bms6IHN0cmluZyB8IHsgW3BhdGg6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9LFxuICAgICAgICB2YWx1ZT86IE1vZGVsVmFsdWVcbiAgICApOiB2b2lkIHwgUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHBhdGhPck1vZGVsQ2h1bmsgIT09IG51bGwgJiZcbiAgICAgICAgICAgIHR5cGVvZiBwYXRoT3JNb2RlbENodW5rICE9PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICB0eXBlb2YgcGF0aE9yTW9kZWxDaHVuayA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICAgICAgIUFycmF5LmlzQXJyYXkocGF0aE9yTW9kZWxDaHVuaylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBpbm5lckNodW5rID0gT2JqZWN0LmtleXMocGF0aE9yTW9kZWxDaHVuaykucmVkdWNlPFJlYWRvbmx5TW9kZWxDaHVuaz4oXG4gICAgICAgICAgICAgICAgKHJlc3VsdCwgcGF0aCkgPT4gKHsgW3BhdGhdOiB7IHZhbHVlOiBwYXRoT3JNb2RlbENodW5rW3BhdGhdIH0sIC4uLnJlc3VsdCB9KSxcbiAgICAgICAgICAgICAgICB7fVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgdGhpcy5mb3JtLm1vZGVsLmZpbGwoaW5uZXJDaHVuayk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHBhdGhPck1vZGVsQ2h1bmsgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5tb2RlbC5zZXQocGF0aE9yTW9kZWxDaHVuaywgXCJ2YWx1ZVwiLCB2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJmb3JtLnNldCgpIHBhcmFtZXRlciBzaG91bGQgYmUgc3RyaW5nIHBhdGggb3Igb2JqZWN0IHdpdGggcGF0aC12YWx1ZSBwYWlyc1wiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0KHBhdGhPckFycmF5OiBzdHJpbmcgfCBzdHJpbmdbXSk6IHsgW3BhdGg6IHN0cmluZ106IE1vZGVsVmFsdWUgfSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhdGhPckFycmF5KSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlZHVjZUNodW5rVmFsdWVzKFxuICAgICAgICAgICAgICAgIHBhdGhPckFycmF5XG4gICAgICAgICAgICAgICAgICAgIC5tYXAocGF0aCA9PiBtYXBDaHVua1ZhbHVlcyh0aGlzLmZvcm0ubW9kZWwuZ2V0Q2h1bmsocGF0aCkpKVxuICAgICAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XG4gICAgICAgICAgICAgICAgICAgIC5yZWR1Y2U8QXJyYXk8eyBbcGF0aDogc3RyaW5nXTogTW9kZWxWYWx1ZSB9Pj4oKHJlc3VsdCwgYXJyYXkpID0+IHJlc3VsdC5jb25jYXQoYXJyYXkpLCBbXSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHBhdGhPckFycmF5ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVkdWNlQ2h1bmtWYWx1ZXMobWFwQ2h1bmtWYWx1ZXModGhpcy5mb3JtLm1vZGVsLmdldENodW5rKHBhdGhPckFycmF5KSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhdGhPckFycmF5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiByZWR1Y2VDaHVua1ZhbHVlcyhtYXBDaHVua1ZhbHVlcyh0aGlzLmZvcm0ubW9kZWwuZ2V0Q2h1bmsodGhpcy5mb3JtLnNldHRpbmdzLmZvcm1Sb290KSkpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImZvcm0uZ2V0KCkgcGFyYW1ldGVyIHNob3VsZCBiZSBzdHJpbmcgcGF0aCBvciBhcnJheSBvZiBwYXRoc1wiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VmFsdWUocGF0aDogc3RyaW5nKTogTW9kZWxWYWx1ZSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXJldHVyblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLm1vZGVsLmdldChwYXRoLCBcInZhbHVlXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5U3VidHJlZShcbiAgICAgICAgc291cmNlQmluZGluZ1BhdGg6IEJpbmRpbmdQYXRoIHwgQWJzb2x1dGVSZXNvbHZlZE1vZGVsUGF0aCxcbiAgICAgICAgdGFyZ2V0QmluZGluZ1BhdGg6IEJpbmRpbmdQYXRoIHwgQWJzb2x1dGVSZXNvbHZlZE1vZGVsUGF0aCxcbiAgICAgICAgZG9Ob3RDb3B5UGF0aHM/OiBzdHJpbmdbXVxuICAgICk6IHZvaWQge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRJbnN0YW5jZShwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDaGlsZHJlbihwYXRoOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHV1aWRHZW5lcmF0ZSgpOiBzdHJpbmcge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93TW9kYWwob3B0aW9uczogTW9kYWxPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFNlY3Rpb24ob3B0aW9uczogSW5pdFNlY3Rpb25Gb3JtTGlnaHRib3hPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbGxJbml0U2VjdGlvbihvcHRpb25zOiBDYWxsSW5pdFNlY3Rpb25MaWdodGJveFByb3BzKTogdm9pZCB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHByZWZlcnJlZEludGVyZG9jdW1lbnRUcmFuc2ZlcihvcHRpb25zOiBQcmVmZXJyZWRJbnRlcmRvY3VtZW50VHJhbnNmZXJQcm9wcyk6IHZvaWQge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cbiAgICBwdWJsaWMgY3JlYXRlRmlhc0FwaUNsaWVudChvcHRpb25zOiBGaWFzQ2xpZW50SW5pdE9wdGlvbnMpOiBGaWFzQXBpIHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlbkVtcGxveWVlRWRpdG9yKGVtcGxveWVlSWQ6IHN0cmluZykge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVJbnN0YW5jZShwYXRoOiBzdHJpbmcsIGluc3RhbmNlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlSW5zdGFuY2VzKHBhdGg6IHN0cmluZywgaW5zdGFuY2VzOiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmb2N1c09uQ29udHJvbElmRXhpc3QocGF0aDogQmluZGluZ1BhdGgpOiB2b2lkIHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QXV0b0ZpZWxkc1RvQXV0b1ZhbHVlKHBhdGhQcmVmaXhlczogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbnN1cmVJbnN0YW5jZUZ1bGx5TG9hZGVkKFxuICAgICAgICBiaW5kaW5nUGF0aDogc3RyaW5nIHwgQWJzb2x1dGVSZXNvbHZlZE1vZGVsUGF0aCxcbiAgICAgICAgLi4uaW5zdGFuY2VzOiBzdHJpbmdbXVxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3VzdG9tTm9ybWFsaXplKG5vcm1hbGl6ZXJJZDogc3RyaW5nLCBwYXRoUHJlZml4ZXM6IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuICAgIHB1YmxpYyByZW1vdmVJbnN0YW5jZXNCeVJ1bGVzKHJ1bGVzOiBJbnN0YW5jZXNEZWxldGluZ1J1bGVbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVEbnAoKTogUHJvbWlzZTxDb21iaW5lRnVmUmVzdWx0IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlbGVjdGVkSW5zdGFuY2VzKFxuICAgICAgICBtdWx0aXBsaWNpdHlQYXRoOiBCaW5kaW5nUGF0aCB8IEFic29sdXRlUmVzb2x2ZWRNb2RlbFBhdGgsXG4gICAgICAgIHRhYmxlVW5pcUlkOiBzdHJpbmcsXG4gICAgICAgIHBhdGhUb0NoZWNrZWQ6IHN0cmluZ1xuICAgICk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGVnYWN5UHVibGljRm9ybShmb3JtOiBJRm9ybSk6IElQdWJsaWNGb3JtIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcmV0dXJuIG5ldyBMZWdhY3lQdWJsaWNGb3JtKGZvcm0gYXMgSUxlZ2FjeUZvcm0pO1xufVxuIiwiLy8gdHNsaW50OmRpc2FibGUgbm8tdW5zYWZlLWFueVxuZXhwb3J0IGNsYXNzIExvYWRJbnRvRG9jdW1lbnQge1xuICAgIHB1YmxpYyBzdGF0aWMgc2NyaXB0KHVyaTogc3RyaW5nLCBjYWxsYmFjazogKGVycm9yPzogRXJyb3IpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgbGV0IHNjcmlwdExvYWRlZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgY29uc3Qgc2NyaXB0OiBhbnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuXG4gICAgICAgIGZ1bmN0aW9uIGxvYWRIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICAgICAgaWYgKHNjcmlwdExvYWRlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFzY3JpcHQucmVhZHlTdGF0ZSB8fCBzY3JpcHQucmVhZHlTdGF0ZSA9PT0gXCJsb2FkZWRcIiB8fCBzY3JpcHQucmVhZHlTdGF0ZSA9PT0gXCJjb21wbGV0ZVwiKSB7XG4gICAgICAgICAgICAgICAgc2NyaXB0TG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGFuZyB0aGUgdXNlciBjYWxsYmFjayB0byBiZSBjYWxsZWQgd2hlbiB0aGUgc2NyaXB0IGNvbXBsZXRlcyB0byBsb2FkLlxuICAgICAgICAvLyBOT1RFKHVzZXIpOiBUaGlzIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIGluIElFIGV2ZW4gdXBvbiBlcnJvci4gSW4gYW55XG4gICAgICAgIC8vIGNhc2UgaXQgaXMgdGhlIGNsaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIHZlcmlmeSB0aGF0IHRoZSBzY3JpcHQgcmFuXG4gICAgICAgIC8vIHN1Y2Nlc3NmdWxseS5cbiAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IGxvYWRIYW5kbGVyO1xuICAgICAgICBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gbG9hZEhhbmRsZXI7XG5cbiAgICAgICAgLy8gQWRkIGFuIGVycm9yIGNhbGxiYWNrLlxuICAgICAgICAvLyBOT1RFKHVzZXIpOiBOb3Qgc3VwcG9ydGVkIGluIElFLlxuICAgICAgICBzY3JpcHQub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChzY3JpcHQucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgIHNjcmlwdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHNjcmlwdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoXCJFcnJvciB3aGlsZSBsb2FkaW5nIHNjcmlwdC5cIikpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIEFkZCB0aGUgc2NyaXB0IGVsZW1lbnQgdG8gdGhlIGRvY3VtZW50LlxuICAgICAgICAvLyBOT1RFKHVzZXIpOiBTYWZhcmkgbmV2ZXIgbG9hZHMgdGhlIHNjcmlwdCBpZiB3ZSBkb24ndCBzZXRcbiAgICAgICAgLy8gdGhlIHNyYyBhdHRyaWJ1dGUgYmVmb3JlIGFwcGVuZGluZy5cbiAgICAgICAgc2NyaXB0LnNyYyA9IHVyaTtcbiAgICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZShcImNyb3Nzb3JpZ2luXCIsIFwidXNlLWNyZWRlbnRpYWxzXCIpO1xuICAgICAgICBoZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBzdHlsZVNoZWV0KHVyaTogc3RyaW5nLCBpZ25vcmVFcnJvcjogYm9vbGVhbiwgY2FsbGJhY2s6IChlcnJvcj86IEVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlc29sdmUgPSAoKSA9PiBjYWxsYmFjayh1bmRlZmluZWQpO1xuICAgICAgICBjb25zdCByZWplY3QgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaWdub3JlRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayh1bmRlZmluZWQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoXCJFcnJvciB3aGlsZSBsb2FkaW5nIHN0eWxlc2hlZXQuXCIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdID8/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpO1xuXG4gICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKFwicmVsXCIsIFwic3R5bGVzaGVldFwiKTtcbiAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsIFwidGV4dC9jc3NcIik7XG4gICAgICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgcmVzb2x2ZSk7XG4gICAgICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsIHJlamVjdCk7XG4gICAgICAgIGhlYWQuYXBwZW5kQ2hpbGQobGluayk7XG4gICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKFwiaHJlZlwiLCB1cmkpO1xuICAgIH1cbn1cbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0aWQ6IG1vZHVsZUlkLFxuXHRcdGxvYWRlZDogZmFsc2UsXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuXHRtb2R1bGUubG9hZGVkID0gdHJ1ZTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIGRlZmluaXRpb24pIHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmhtZCA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuXHRtb2R1bGUgPSBPYmplY3QuY3JlYXRlKG1vZHVsZSk7XG5cdGlmICghbW9kdWxlLmNoaWxkcmVuKSBtb2R1bGUuY2hpbGRyZW4gPSBbXTtcblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgJ2V4cG9ydHMnLCB7XG5cdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRzZXQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdFUyBNb2R1bGVzIG1heSBub3QgYXNzaWduIG1vZHVsZS5leHBvcnRzIG9yIGV4cG9ydHMuKiwgVXNlIEVTTSBleHBvcnQgc3ludGF4LCBpbnN0ZWFkOiAnICsgbW9kdWxlLmlkKTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gbW9kdWxlO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmosIHByb3ApIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApOyB9IiwiLy8gc3RhcnR1cFxuLy8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vLyBUaGlzIGVudHJ5IG1vZHVsZSBpcyByZWZlcmVuY2VkIGJ5IG90aGVyIG1vZHVsZXMgc28gaXQgY2FuJ3QgYmUgaW5saW5lZFxudmFyIF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDU5MSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O2VBTUNBLENBQUEsRUFKb0NDLENBQUE7UUFBOUIsU0FBU0MsRUFBc0JDLENBQUE7VUFHbEMsT0FBTyxTQUFQQyxNQUFBLENBQWdCRCxDQUFBLENBQVFFLEVBQUEsRUFBRSxZQUFBRCxNQUFBLENBQVdELENBQUEsQ0FBUUcsT0FBQSxFQUFPLHFCQUN4RDtRQUFBO1FBQUFDLENBQUEsQ0FBQUMsQ0FBQSxDQUFBQyxDQUFBO1VBQUFDLENBQUEsV0FBQUEsQ0FBQTtZQUFBLE9BQUFSLENBQUE7VUFBQTtRQUFBLElBQUFDLENBQUEsR0FBQUksQ0FBQSxDQUFBSSxHQUFBLENBQUFSLENBQUEsSUFBQVMsQ0FBQSx5QkFBQUMsb0JBQUEsR0FBQUEsb0JBQUEsQ0FBQUMsV0FBQSxjQUFBRixDQUFBLENBQUFULENBQUEseUJBQUFVLG9CQUFBLElBQUFBLG9CQUFBLENBQUFFLE9BQUEsQ0FBQUMsU0FBQSxHQUFDaEIsQ0FBQSx5QkFBQWEsb0JBQUEsR0FBQUEsb0JBQUEsQ0FBQUUsT0FBQSxjQUFBZixDQUFBLENBQUFpQixRQUFBLENBSmVmLENBQUEsRUFBcUIsK0lBQUFELENB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