@decaf-ts/ui-decorators 0.20.7 → 0.20.9

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 (471) hide show
  1. package/dist/ui-decorators.cjs +2 -1059
  2. package/dist/ui-decorators.cjs.map +1 -0
  3. package/dist/ui-decorators.js +2 -1090
  4. package/dist/ui-decorators.js.map +1 -0
  5. package/lib/cjs/dashboard/constants.cjs +2 -2
  6. package/lib/cjs/dashboard/constants.cjs.map +1 -0
  7. package/lib/cjs/dashboard/decorators.cjs +2 -2
  8. package/lib/cjs/dashboard/decorators.cjs.map +1 -0
  9. package/lib/cjs/dashboard/index.cjs +2 -2
  10. package/lib/cjs/dashboard/index.cjs.map +1 -0
  11. package/lib/cjs/dashboard/reader.cjs +2 -2
  12. package/lib/cjs/dashboard/reader.cjs.map +1 -0
  13. package/lib/cjs/dashboard/registry.cjs +2 -2
  14. package/lib/cjs/dashboard/registry.cjs.map +1 -0
  15. package/lib/cjs/dashboard/types.cjs +2 -2
  16. package/lib/cjs/dashboard/types.cjs.map +1 -0
  17. package/lib/cjs/graph/GraphExecutionStateMapper.cjs +2 -2
  18. package/lib/cjs/graph/GraphExecutionStateMapper.cjs.map +1 -0
  19. package/lib/cjs/graph/GraphResolution.cjs +2 -2
  20. package/lib/cjs/graph/GraphResolution.cjs.map +1 -0
  21. package/lib/cjs/graph/catalog/GraphConnectionPolicy.cjs +2 -2
  22. package/lib/cjs/graph/catalog/GraphConnectionPolicy.cjs.map +1 -0
  23. package/lib/cjs/graph/catalog/GraphCredentialReference.cjs +2 -2
  24. package/lib/cjs/graph/catalog/GraphCredentialReference.cjs.map +1 -0
  25. package/lib/cjs/graph/catalog/GraphCredentialRequirement.cjs +2 -2
  26. package/lib/cjs/graph/catalog/GraphCredentialRequirement.cjs.map +1 -0
  27. package/lib/cjs/graph/catalog/GraphDynamicPortRule.cjs +2 -2
  28. package/lib/cjs/graph/catalog/GraphDynamicPortRule.cjs.map +1 -0
  29. package/lib/cjs/graph/catalog/GraphIconReference.cjs +2 -2
  30. package/lib/cjs/graph/catalog/GraphIconReference.cjs.map +1 -0
  31. package/lib/cjs/graph/catalog/GraphManifestCompiler.cjs +11 -2
  32. package/lib/cjs/graph/catalog/GraphManifestCompiler.cjs.map +1 -0
  33. package/lib/cjs/graph/catalog/GraphNodeCapability.cjs +2 -2
  34. package/lib/cjs/graph/catalog/GraphNodeCapability.cjs.map +1 -0
  35. package/lib/cjs/graph/catalog/GraphNodeDisplayManifest.cjs +2 -2
  36. package/lib/cjs/graph/catalog/GraphNodeDisplayManifest.cjs.map +1 -0
  37. package/lib/cjs/graph/catalog/GraphNodeManifest.cjs +2 -2
  38. package/lib/cjs/graph/catalog/GraphNodeManifest.cjs.map +1 -0
  39. package/lib/cjs/graph/catalog/GraphNodeManifestSerialization.cjs +2 -2
  40. package/lib/cjs/graph/catalog/GraphNodeManifestSerialization.cjs.map +1 -0
  41. package/lib/cjs/graph/catalog/GraphNodeMethodManifest.cjs +2 -2
  42. package/lib/cjs/graph/catalog/GraphNodeMethodManifest.cjs.map +1 -0
  43. package/lib/cjs/graph/catalog/GraphNodePolicyManifest.cjs +2 -2
  44. package/lib/cjs/graph/catalog/GraphNodePolicyManifest.cjs.map +1 -0
  45. package/lib/cjs/graph/catalog/GraphParameterBase.cjs +2 -2
  46. package/lib/cjs/graph/catalog/GraphParameterBase.cjs.map +1 -0
  47. package/lib/cjs/graph/catalog/GraphParameterDefinition.cjs +2 -2
  48. package/lib/cjs/graph/catalog/GraphParameterDefinition.cjs.map +1 -0
  49. package/lib/cjs/graph/catalog/GraphParameterOption.cjs +2 -2
  50. package/lib/cjs/graph/catalog/GraphParameterOption.cjs.map +1 -0
  51. package/lib/cjs/graph/catalog/GraphParameterValidation.cjs +2 -2
  52. package/lib/cjs/graph/catalog/GraphParameterValidation.cjs.map +1 -0
  53. package/lib/cjs/graph/catalog/GraphPortManifest.cjs +2 -2
  54. package/lib/cjs/graph/catalog/GraphPortManifest.cjs.map +1 -0
  55. package/lib/cjs/graph/catalog/GraphResourceLocatorMode.cjs +2 -2
  56. package/lib/cjs/graph/catalog/GraphResourceLocatorMode.cjs.map +1 -0
  57. package/lib/cjs/graph/catalog/GraphValueSchema.cjs +2 -2
  58. package/lib/cjs/graph/catalog/GraphValueSchema.cjs.map +1 -0
  59. package/lib/cjs/graph/catalog/GraphValueSchemaDerivation.cjs +2 -2
  60. package/lib/cjs/graph/catalog/GraphValueSchemaDerivation.cjs.map +1 -0
  61. package/lib/cjs/graph/catalog/GraphVisibilityExpression.cjs +2 -2
  62. package/lib/cjs/graph/catalog/GraphVisibilityExpression.cjs.map +1 -0
  63. package/lib/cjs/graph/catalog/index.cjs +2 -2
  64. package/lib/cjs/graph/catalog/index.cjs.map +1 -0
  65. package/lib/cjs/graph/constants.cjs +76 -11
  66. package/lib/cjs/graph/constants.cjs.map +1 -0
  67. package/lib/cjs/graph/decorators.cjs +2 -2
  68. package/lib/cjs/graph/decorators.cjs.map +1 -0
  69. package/lib/cjs/graph/document/GraphDecoratedWorkflowCompiler.cjs +2 -2
  70. package/lib/cjs/graph/document/GraphDecoratedWorkflowCompiler.cjs.map +1 -0
  71. package/lib/cjs/graph/document/GraphEdgeInstance.cjs +2 -2
  72. package/lib/cjs/graph/document/GraphEdgeInstance.cjs.map +1 -0
  73. package/lib/cjs/graph/document/GraphEndpoint.cjs +2 -2
  74. package/lib/cjs/graph/document/GraphEndpoint.cjs.map +1 -0
  75. package/lib/cjs/graph/document/GraphJsonValue.cjs +2 -2
  76. package/lib/cjs/graph/document/GraphJsonValue.cjs.map +1 -0
  77. package/lib/cjs/graph/document/GraphLoopConfiguration.cjs +2 -2
  78. package/lib/cjs/graph/document/GraphLoopConfiguration.cjs.map +1 -0
  79. package/lib/cjs/graph/document/GraphNodeBinding.cjs +2 -2
  80. package/lib/cjs/graph/document/GraphNodeBinding.cjs.map +1 -0
  81. package/lib/cjs/graph/document/GraphNodeInstance.cjs +2 -2
  82. package/lib/cjs/graph/document/GraphNodeInstance.cjs.map +1 -0
  83. package/lib/cjs/graph/document/GraphWorkflowDocument.cjs +2 -2
  84. package/lib/cjs/graph/document/GraphWorkflowDocument.cjs.map +1 -0
  85. package/lib/cjs/graph/document/GraphWorkflowDocumentBuilder.cjs +2 -2
  86. package/lib/cjs/graph/document/GraphWorkflowDocumentBuilder.cjs.map +1 -0
  87. package/lib/cjs/graph/document/GraphWorkflowDocumentReader.cjs +2 -2
  88. package/lib/cjs/graph/document/GraphWorkflowDocumentReader.cjs.map +1 -0
  89. package/lib/cjs/graph/document/GraphWorkflowDocumentSerializer.cjs +2 -2
  90. package/lib/cjs/graph/document/GraphWorkflowDocumentSerializer.cjs.map +1 -0
  91. package/lib/cjs/graph/document/GraphWorkflowUiState.cjs +2 -2
  92. package/lib/cjs/graph/document/GraphWorkflowUiState.cjs.map +1 -0
  93. package/lib/cjs/graph/document/index.cjs +2 -2
  94. package/lib/cjs/graph/document/index.cjs.map +1 -0
  95. package/lib/cjs/graph/index.cjs +2 -2
  96. package/lib/cjs/graph/index.cjs.map +1 -0
  97. package/lib/cjs/graph/nodes/agents/agent.cjs +2 -2
  98. package/lib/cjs/graph/nodes/agents/agent.cjs.map +1 -0
  99. package/lib/cjs/graph/nodes/base.cjs +2 -2
  100. package/lib/cjs/graph/nodes/base.cjs.map +1 -0
  101. package/lib/cjs/graph/nodes/boundary/input-value.cjs +2 -2
  102. package/lib/cjs/graph/nodes/boundary/input-value.cjs.map +1 -0
  103. package/lib/cjs/graph/nodes/category-styles.cjs +2 -2
  104. package/lib/cjs/graph/nodes/category-styles.cjs.map +1 -0
  105. package/lib/cjs/graph/nodes/flow-control/break.cjs +3 -3
  106. package/lib/cjs/graph/nodes/flow-control/break.cjs.map +1 -0
  107. package/lib/cjs/graph/nodes/flow-control/error-boundary.cjs +3 -3
  108. package/lib/cjs/graph/nodes/flow-control/error-boundary.cjs.map +1 -0
  109. package/lib/cjs/graph/nodes/flow-control/human-approval.cjs +3 -3
  110. package/lib/cjs/graph/nodes/flow-control/human-approval.cjs.map +1 -0
  111. package/lib/cjs/graph/nodes/flow-control/if.cjs +2 -2
  112. package/lib/cjs/graph/nodes/flow-control/if.cjs.map +1 -0
  113. package/lib/cjs/graph/nodes/flow-control/parallel.cjs +3 -3
  114. package/lib/cjs/graph/nodes/flow-control/parallel.cjs.map +1 -0
  115. package/lib/cjs/graph/nodes/flow-control/switch.cjs +12 -7
  116. package/lib/cjs/graph/nodes/flow-control/switch.cjs.map +1 -0
  117. package/lib/cjs/graph/nodes/index.cjs +2 -2
  118. package/lib/cjs/graph/nodes/index.cjs.map +1 -0
  119. package/lib/cjs/graph/nodes/loops/foreach.cjs +2 -2
  120. package/lib/cjs/graph/nodes/loops/foreach.cjs.map +1 -0
  121. package/lib/cjs/graph/nodes/loops/until.cjs +3 -3
  122. package/lib/cjs/graph/nodes/loops/until.cjs.map +1 -0
  123. package/lib/cjs/graph/nodes/loops/while.cjs +3 -3
  124. package/lib/cjs/graph/nodes/loops/while.cjs.map +1 -0
  125. package/lib/cjs/graph/nodes/manifests.cjs +17 -13
  126. package/lib/cjs/graph/nodes/manifests.cjs.map +1 -0
  127. package/lib/cjs/graph/nodes/triggers/chat.cjs +3 -3
  128. package/lib/cjs/graph/nodes/triggers/chat.cjs.map +1 -0
  129. package/lib/cjs/graph/nodes/triggers/event.cjs +3 -3
  130. package/lib/cjs/graph/nodes/triggers/event.cjs.map +1 -0
  131. package/lib/cjs/graph/nodes/triggers/form.cjs +3 -3
  132. package/lib/cjs/graph/nodes/triggers/form.cjs.map +1 -0
  133. package/lib/cjs/graph/nodes/triggers/manual.cjs +2 -2
  134. package/lib/cjs/graph/nodes/triggers/manual.cjs.map +1 -0
  135. package/lib/cjs/graph/nodes/triggers/schedule.cjs +3 -3
  136. package/lib/cjs/graph/nodes/triggers/schedule.cjs.map +1 -0
  137. package/lib/cjs/graph/nodes/triggers/webhook.cjs +3 -3
  138. package/lib/cjs/graph/nodes/triggers/webhook.cjs.map +1 -0
  139. package/lib/cjs/graph/nodes/utility/code.cjs +3 -3
  140. package/lib/cjs/graph/nodes/utility/code.cjs.map +1 -0
  141. package/lib/cjs/graph/nodes/utility/delay.cjs +3 -3
  142. package/lib/cjs/graph/nodes/utility/delay.cjs.map +1 -0
  143. package/lib/cjs/graph/nodes/utility/log.cjs +3 -3
  144. package/lib/cjs/graph/nodes/utility/log.cjs.map +1 -0
  145. package/lib/cjs/graph/nodes/utility/map.cjs +3 -3
  146. package/lib/cjs/graph/nodes/utility/map.cjs.map +1 -0
  147. package/lib/cjs/graph/nodes/utility/merge.cjs +2 -2
  148. package/lib/cjs/graph/nodes/utility/merge.cjs.map +1 -0
  149. package/lib/cjs/graph/nodes/utility/return.cjs +3 -3
  150. package/lib/cjs/graph/nodes/utility/return.cjs.map +1 -0
  151. package/lib/cjs/graph/nodes/utility/utility-log.cjs +3 -3
  152. package/lib/cjs/graph/nodes/utility/utility-log.cjs.map +1 -0
  153. package/lib/cjs/graph/overrides/Metadata.cjs +2 -2
  154. package/lib/cjs/graph/overrides/Metadata.cjs.map +1 -0
  155. package/lib/cjs/graph/overrides/Rendering.cjs +2 -2
  156. package/lib/cjs/graph/overrides/Rendering.cjs.map +1 -0
  157. package/lib/cjs/graph/overrides/index.cjs +2 -2
  158. package/lib/cjs/graph/overrides/index.cjs.map +1 -0
  159. package/lib/cjs/graph/overrides/overrides.cjs +2 -2
  160. package/lib/cjs/graph/overrides/overrides.cjs.map +1 -0
  161. package/lib/cjs/graph/reader.cjs +5 -2
  162. package/lib/cjs/graph/reader.cjs.map +1 -0
  163. package/lib/cjs/graph/registry.cjs +2 -2
  164. package/lib/cjs/graph/registry.cjs.map +1 -0
  165. package/lib/cjs/graph/snapshot.cjs +2 -2
  166. package/lib/cjs/graph/snapshot.cjs.map +1 -0
  167. package/lib/cjs/graph/types.cjs +2 -2
  168. package/lib/cjs/graph/types.cjs.map +1 -0
  169. package/lib/cjs/index.cjs +5 -5
  170. package/lib/cjs/index.cjs.map +1 -0
  171. package/lib/cjs/model/Renderable.cjs +2 -2
  172. package/lib/cjs/model/Renderable.cjs.map +1 -0
  173. package/lib/cjs/model/decorators.cjs +2 -2
  174. package/lib/cjs/model/decorators.cjs.map +1 -0
  175. package/lib/cjs/model/index.cjs +2 -2
  176. package/lib/cjs/model/index.cjs.map +1 -0
  177. package/lib/cjs/model/model.cjs +2 -2
  178. package/lib/cjs/model/model.cjs.map +1 -0
  179. package/lib/cjs/model/overrides.cjs +2 -2
  180. package/lib/cjs/model/overrides.cjs.map +1 -0
  181. package/lib/cjs/overrides/ModelBuilderExtensions.cjs +2 -2
  182. package/lib/cjs/overrides/ModelBuilderExtensions.cjs.map +1 -0
  183. package/lib/cjs/overrides/index.cjs +2 -2
  184. package/lib/cjs/overrides/index.cjs.map +1 -0
  185. package/lib/cjs/ui/DecafComponent.cjs +2 -2
  186. package/lib/cjs/ui/DecafComponent.cjs.map +1 -0
  187. package/lib/cjs/ui/DecafEventHandler.cjs +2 -2
  188. package/lib/cjs/ui/DecafEventHandler.cjs.map +1 -0
  189. package/lib/cjs/ui/DecafTranslateService.cjs +2 -2
  190. package/lib/cjs/ui/DecafTranslateService.cjs.map +1 -0
  191. package/lib/cjs/ui/Rendering.cjs +2 -2
  192. package/lib/cjs/ui/Rendering.cjs.map +1 -0
  193. package/lib/cjs/ui/UIValidator.cjs +2 -2
  194. package/lib/cjs/ui/UIValidator.cjs.map +1 -0
  195. package/lib/cjs/ui/constants.cjs +2 -2
  196. package/lib/cjs/ui/constants.cjs.map +1 -0
  197. package/lib/cjs/ui/decorators.cjs +2 -2
  198. package/lib/cjs/ui/decorators.cjs.map +1 -0
  199. package/lib/cjs/ui/errors.cjs +2 -2
  200. package/lib/cjs/ui/errors.cjs.map +1 -0
  201. package/lib/cjs/ui/index.cjs +2 -2
  202. package/lib/cjs/ui/index.cjs.map +1 -0
  203. package/lib/cjs/ui/interfaces/IDecafModal.cjs +2 -2
  204. package/lib/cjs/ui/interfaces/IDecafModal.cjs.map +1 -0
  205. package/lib/cjs/ui/interfaces/IDecafRouter.cjs +2 -2
  206. package/lib/cjs/ui/interfaces/IDecafRouter.cjs.map +1 -0
  207. package/lib/cjs/ui/interfaces/IDecafSpinner.cjs +2 -2
  208. package/lib/cjs/ui/interfaces/IDecafSpinner.cjs.map +1 -0
  209. package/lib/cjs/ui/interfaces/IDecafToast.cjs +2 -2
  210. package/lib/cjs/ui/interfaces/IDecafToast.cjs.map +1 -0
  211. package/lib/cjs/ui/interfaces/index.cjs +2 -2
  212. package/lib/cjs/ui/interfaces/index.cjs.map +1 -0
  213. package/lib/cjs/ui/overrides.cjs +2 -2
  214. package/lib/cjs/ui/overrides.cjs.map +1 -0
  215. package/lib/cjs/ui/types.cjs +2 -2
  216. package/lib/cjs/ui/types.cjs.map +1 -0
  217. package/lib/cjs/ui/utils.cjs +2 -2
  218. package/lib/cjs/ui/utils.cjs.map +1 -0
  219. package/lib/cjs/ui/validator.cjs +2 -2
  220. package/lib/cjs/ui/validator.cjs.map +1 -0
  221. package/lib/cjs/user-requests/UserRequestHandler.cjs +2 -2
  222. package/lib/cjs/user-requests/UserRequestHandler.cjs.map +1 -0
  223. package/lib/cjs/user-requests/constants.cjs +2 -2
  224. package/lib/cjs/user-requests/constants.cjs.map +1 -0
  225. package/lib/cjs/user-requests/decorators.cjs +2 -2
  226. package/lib/cjs/user-requests/decorators.cjs.map +1 -0
  227. package/lib/cjs/user-requests/errors.cjs +2 -2
  228. package/lib/cjs/user-requests/errors.cjs.map +1 -0
  229. package/lib/cjs/user-requests/index.cjs +2 -2
  230. package/lib/cjs/user-requests/index.cjs.map +1 -0
  231. package/lib/cjs/user-requests/types.cjs +2 -2
  232. package/lib/cjs/user-requests/types.cjs.map +1 -0
  233. package/lib/esm/dashboard/constants.js +1 -1
  234. package/lib/esm/dashboard/constants.js.map +1 -0
  235. package/lib/esm/dashboard/decorators.js +1 -1
  236. package/lib/esm/dashboard/decorators.js.map +1 -0
  237. package/lib/esm/dashboard/index.js +1 -1
  238. package/lib/esm/dashboard/index.js.map +1 -0
  239. package/lib/esm/dashboard/reader.js +1 -1
  240. package/lib/esm/dashboard/reader.js.map +1 -0
  241. package/lib/esm/dashboard/registry.js +1 -1
  242. package/lib/esm/dashboard/registry.js.map +1 -0
  243. package/lib/esm/dashboard/types.js +1 -1
  244. package/lib/esm/dashboard/types.js.map +1 -0
  245. package/lib/esm/graph/GraphExecutionStateMapper.js +1 -1
  246. package/lib/esm/graph/GraphExecutionStateMapper.js.map +1 -0
  247. package/lib/esm/graph/GraphResolution.js +1 -1
  248. package/lib/esm/graph/GraphResolution.js.map +1 -0
  249. package/lib/esm/graph/catalog/GraphConnectionPolicy.js +1 -1
  250. package/lib/esm/graph/catalog/GraphConnectionPolicy.js.map +1 -0
  251. package/lib/esm/graph/catalog/GraphCredentialReference.js +1 -1
  252. package/lib/esm/graph/catalog/GraphCredentialReference.js.map +1 -0
  253. package/lib/esm/graph/catalog/GraphCredentialRequirement.js +1 -1
  254. package/lib/esm/graph/catalog/GraphCredentialRequirement.js.map +1 -0
  255. package/lib/esm/graph/catalog/GraphDynamicPortRule.js +1 -1
  256. package/lib/esm/graph/catalog/GraphDynamicPortRule.js.map +1 -0
  257. package/lib/esm/graph/catalog/GraphIconReference.js +1 -1
  258. package/lib/esm/graph/catalog/GraphIconReference.js.map +1 -0
  259. package/lib/esm/graph/catalog/GraphManifestCompiler.js +10 -1
  260. package/lib/esm/graph/catalog/GraphManifestCompiler.js.map +1 -0
  261. package/lib/esm/graph/catalog/GraphNodeCapability.js +1 -1
  262. package/lib/esm/graph/catalog/GraphNodeCapability.js.map +1 -0
  263. package/lib/esm/graph/catalog/GraphNodeDisplayManifest.js +1 -1
  264. package/lib/esm/graph/catalog/GraphNodeDisplayManifest.js.map +1 -0
  265. package/lib/esm/graph/catalog/GraphNodeManifest.js +1 -1
  266. package/lib/esm/graph/catalog/GraphNodeManifest.js.map +1 -0
  267. package/lib/esm/graph/catalog/GraphNodeManifestSerialization.js +1 -1
  268. package/lib/esm/graph/catalog/GraphNodeManifestSerialization.js.map +1 -0
  269. package/lib/esm/graph/catalog/GraphNodeMethodManifest.js +1 -1
  270. package/lib/esm/graph/catalog/GraphNodeMethodManifest.js.map +1 -0
  271. package/lib/esm/graph/catalog/GraphNodePolicyManifest.js +1 -1
  272. package/lib/esm/graph/catalog/GraphNodePolicyManifest.js.map +1 -0
  273. package/lib/esm/graph/catalog/GraphParameterBase.js +1 -1
  274. package/lib/esm/graph/catalog/GraphParameterBase.js.map +1 -0
  275. package/lib/esm/graph/catalog/GraphParameterDefinition.js +1 -1
  276. package/lib/esm/graph/catalog/GraphParameterDefinition.js.map +1 -0
  277. package/lib/esm/graph/catalog/GraphParameterOption.js +1 -1
  278. package/lib/esm/graph/catalog/GraphParameterOption.js.map +1 -0
  279. package/lib/esm/graph/catalog/GraphParameterValidation.js +1 -1
  280. package/lib/esm/graph/catalog/GraphParameterValidation.js.map +1 -0
  281. package/lib/esm/graph/catalog/GraphPortManifest.js +1 -1
  282. package/lib/esm/graph/catalog/GraphPortManifest.js.map +1 -0
  283. package/lib/esm/graph/catalog/GraphResourceLocatorMode.js +1 -1
  284. package/lib/esm/graph/catalog/GraphResourceLocatorMode.js.map +1 -0
  285. package/lib/esm/graph/catalog/GraphValueSchema.js +1 -1
  286. package/lib/esm/graph/catalog/GraphValueSchema.js.map +1 -0
  287. package/lib/esm/graph/catalog/GraphValueSchemaDerivation.js +1 -1
  288. package/lib/esm/graph/catalog/GraphValueSchemaDerivation.js.map +1 -0
  289. package/lib/esm/graph/catalog/GraphVisibilityExpression.js +1 -1
  290. package/lib/esm/graph/catalog/GraphVisibilityExpression.js.map +1 -0
  291. package/lib/esm/graph/catalog/index.js +1 -1
  292. package/lib/esm/graph/catalog/index.js.map +1 -0
  293. package/lib/esm/graph/constants.js +73 -9
  294. package/lib/esm/graph/constants.js.map +1 -0
  295. package/lib/esm/graph/decorators.js +1 -1
  296. package/lib/esm/graph/decorators.js.map +1 -0
  297. package/lib/esm/graph/document/GraphDecoratedWorkflowCompiler.js +1 -1
  298. package/lib/esm/graph/document/GraphDecoratedWorkflowCompiler.js.map +1 -0
  299. package/lib/esm/graph/document/GraphEdgeInstance.js +1 -1
  300. package/lib/esm/graph/document/GraphEdgeInstance.js.map +1 -0
  301. package/lib/esm/graph/document/GraphEndpoint.js +1 -1
  302. package/lib/esm/graph/document/GraphEndpoint.js.map +1 -0
  303. package/lib/esm/graph/document/GraphJsonValue.js +1 -1
  304. package/lib/esm/graph/document/GraphJsonValue.js.map +1 -0
  305. package/lib/esm/graph/document/GraphLoopConfiguration.js +1 -1
  306. package/lib/esm/graph/document/GraphLoopConfiguration.js.map +1 -0
  307. package/lib/esm/graph/document/GraphNodeBinding.js +1 -1
  308. package/lib/esm/graph/document/GraphNodeBinding.js.map +1 -0
  309. package/lib/esm/graph/document/GraphNodeInstance.js +1 -1
  310. package/lib/esm/graph/document/GraphNodeInstance.js.map +1 -0
  311. package/lib/esm/graph/document/GraphWorkflowDocument.js +1 -1
  312. package/lib/esm/graph/document/GraphWorkflowDocument.js.map +1 -0
  313. package/lib/esm/graph/document/GraphWorkflowDocumentBuilder.js +1 -1
  314. package/lib/esm/graph/document/GraphWorkflowDocumentBuilder.js.map +1 -0
  315. package/lib/esm/graph/document/GraphWorkflowDocumentReader.js +1 -1
  316. package/lib/esm/graph/document/GraphWorkflowDocumentReader.js.map +1 -0
  317. package/lib/esm/graph/document/GraphWorkflowDocumentSerializer.js +1 -1
  318. package/lib/esm/graph/document/GraphWorkflowDocumentSerializer.js.map +1 -0
  319. package/lib/esm/graph/document/GraphWorkflowUiState.js +1 -1
  320. package/lib/esm/graph/document/GraphWorkflowUiState.js.map +1 -0
  321. package/lib/esm/graph/document/index.js +1 -1
  322. package/lib/esm/graph/document/index.js.map +1 -0
  323. package/lib/esm/graph/index.js +1 -1
  324. package/lib/esm/graph/index.js.map +1 -0
  325. package/lib/esm/graph/nodes/agents/agent.js +1 -1
  326. package/lib/esm/graph/nodes/agents/agent.js.map +1 -0
  327. package/lib/esm/graph/nodes/base.js +1 -1
  328. package/lib/esm/graph/nodes/base.js.map +1 -0
  329. package/lib/esm/graph/nodes/boundary/input-value.js +1 -1
  330. package/lib/esm/graph/nodes/boundary/input-value.js.map +1 -0
  331. package/lib/esm/graph/nodes/category-styles.js +1 -1
  332. package/lib/esm/graph/nodes/category-styles.js.map +1 -0
  333. package/lib/esm/graph/nodes/flow-control/break.js +2 -2
  334. package/lib/esm/graph/nodes/flow-control/break.js.map +1 -0
  335. package/lib/esm/graph/nodes/flow-control/error-boundary.js +2 -2
  336. package/lib/esm/graph/nodes/flow-control/error-boundary.js.map +1 -0
  337. package/lib/esm/graph/nodes/flow-control/human-approval.js +2 -2
  338. package/lib/esm/graph/nodes/flow-control/human-approval.js.map +1 -0
  339. package/lib/esm/graph/nodes/flow-control/if.js +1 -1
  340. package/lib/esm/graph/nodes/flow-control/if.js.map +1 -0
  341. package/lib/esm/graph/nodes/flow-control/parallel.js +2 -2
  342. package/lib/esm/graph/nodes/flow-control/parallel.js.map +1 -0
  343. package/lib/esm/graph/nodes/flow-control/switch.js +12 -7
  344. package/lib/esm/graph/nodes/flow-control/switch.js.map +1 -0
  345. package/lib/esm/graph/nodes/index.js +1 -1
  346. package/lib/esm/graph/nodes/index.js.map +1 -0
  347. package/lib/esm/graph/nodes/loops/foreach.js +1 -1
  348. package/lib/esm/graph/nodes/loops/foreach.js.map +1 -0
  349. package/lib/esm/graph/nodes/loops/until.js +2 -2
  350. package/lib/esm/graph/nodes/loops/until.js.map +1 -0
  351. package/lib/esm/graph/nodes/loops/while.js +2 -2
  352. package/lib/esm/graph/nodes/loops/while.js.map +1 -0
  353. package/lib/esm/graph/nodes/manifests.js +16 -12
  354. package/lib/esm/graph/nodes/manifests.js.map +1 -0
  355. package/lib/esm/graph/nodes/triggers/chat.js +2 -2
  356. package/lib/esm/graph/nodes/triggers/chat.js.map +1 -0
  357. package/lib/esm/graph/nodes/triggers/event.js +2 -2
  358. package/lib/esm/graph/nodes/triggers/event.js.map +1 -0
  359. package/lib/esm/graph/nodes/triggers/form.js +2 -2
  360. package/lib/esm/graph/nodes/triggers/form.js.map +1 -0
  361. package/lib/esm/graph/nodes/triggers/manual.js +1 -1
  362. package/lib/esm/graph/nodes/triggers/manual.js.map +1 -0
  363. package/lib/esm/graph/nodes/triggers/schedule.js +2 -2
  364. package/lib/esm/graph/nodes/triggers/schedule.js.map +1 -0
  365. package/lib/esm/graph/nodes/triggers/webhook.js +2 -2
  366. package/lib/esm/graph/nodes/triggers/webhook.js.map +1 -0
  367. package/lib/esm/graph/nodes/utility/code.js +2 -2
  368. package/lib/esm/graph/nodes/utility/code.js.map +1 -0
  369. package/lib/esm/graph/nodes/utility/delay.js +2 -2
  370. package/lib/esm/graph/nodes/utility/delay.js.map +1 -0
  371. package/lib/esm/graph/nodes/utility/log.js +2 -2
  372. package/lib/esm/graph/nodes/utility/log.js.map +1 -0
  373. package/lib/esm/graph/nodes/utility/map.js +2 -2
  374. package/lib/esm/graph/nodes/utility/map.js.map +1 -0
  375. package/lib/esm/graph/nodes/utility/merge.js +1 -1
  376. package/lib/esm/graph/nodes/utility/merge.js.map +1 -0
  377. package/lib/esm/graph/nodes/utility/return.js +2 -2
  378. package/lib/esm/graph/nodes/utility/return.js.map +1 -0
  379. package/lib/esm/graph/nodes/utility/utility-log.js +2 -2
  380. package/lib/esm/graph/nodes/utility/utility-log.js.map +1 -0
  381. package/lib/esm/graph/overrides/Metadata.js +1 -1
  382. package/lib/esm/graph/overrides/Metadata.js.map +1 -0
  383. package/lib/esm/graph/overrides/Rendering.js +1 -1
  384. package/lib/esm/graph/overrides/Rendering.js.map +1 -0
  385. package/lib/esm/graph/overrides/index.js +1 -1
  386. package/lib/esm/graph/overrides/index.js.map +1 -0
  387. package/lib/esm/graph/overrides/overrides.js +1 -1
  388. package/lib/esm/graph/overrides/overrides.js.map +1 -0
  389. package/lib/esm/graph/reader.js +4 -1
  390. package/lib/esm/graph/reader.js.map +1 -0
  391. package/lib/esm/graph/registry.js +1 -1
  392. package/lib/esm/graph/registry.js.map +1 -0
  393. package/lib/esm/graph/snapshot.js +1 -1
  394. package/lib/esm/graph/snapshot.js.map +1 -0
  395. package/lib/esm/graph/types.js +1 -1
  396. package/lib/esm/graph/types.js.map +1 -0
  397. package/lib/esm/index.js +4 -4
  398. package/lib/esm/index.js.map +1 -0
  399. package/lib/esm/model/Renderable.js +1 -1
  400. package/lib/esm/model/Renderable.js.map +1 -0
  401. package/lib/esm/model/decorators.js +1 -1
  402. package/lib/esm/model/decorators.js.map +1 -0
  403. package/lib/esm/model/index.js +1 -1
  404. package/lib/esm/model/index.js.map +1 -0
  405. package/lib/esm/model/model.js +1 -1
  406. package/lib/esm/model/model.js.map +1 -0
  407. package/lib/esm/model/overrides.js +1 -1
  408. package/lib/esm/model/overrides.js.map +1 -0
  409. package/lib/esm/overrides/ModelBuilderExtensions.js +1 -1
  410. package/lib/esm/overrides/ModelBuilderExtensions.js.map +1 -0
  411. package/lib/esm/overrides/index.js +1 -1
  412. package/lib/esm/overrides/index.js.map +1 -0
  413. package/lib/esm/ui/DecafComponent.js +1 -1
  414. package/lib/esm/ui/DecafComponent.js.map +1 -0
  415. package/lib/esm/ui/DecafEventHandler.js +1 -1
  416. package/lib/esm/ui/DecafEventHandler.js.map +1 -0
  417. package/lib/esm/ui/DecafTranslateService.js +1 -1
  418. package/lib/esm/ui/DecafTranslateService.js.map +1 -0
  419. package/lib/esm/ui/Rendering.js +1 -1
  420. package/lib/esm/ui/Rendering.js.map +1 -0
  421. package/lib/esm/ui/UIValidator.js +1 -1
  422. package/lib/esm/ui/UIValidator.js.map +1 -0
  423. package/lib/esm/ui/constants.js +1 -1
  424. package/lib/esm/ui/constants.js.map +1 -0
  425. package/lib/esm/ui/decorators.js +1 -1
  426. package/lib/esm/ui/decorators.js.map +1 -0
  427. package/lib/esm/ui/errors.js +1 -1
  428. package/lib/esm/ui/errors.js.map +1 -0
  429. package/lib/esm/ui/index.js +1 -1
  430. package/lib/esm/ui/index.js.map +1 -0
  431. package/lib/esm/ui/interfaces/IDecafModal.js +1 -1
  432. package/lib/esm/ui/interfaces/IDecafModal.js.map +1 -0
  433. package/lib/esm/ui/interfaces/IDecafRouter.js +1 -1
  434. package/lib/esm/ui/interfaces/IDecafRouter.js.map +1 -0
  435. package/lib/esm/ui/interfaces/IDecafSpinner.js +1 -1
  436. package/lib/esm/ui/interfaces/IDecafSpinner.js.map +1 -0
  437. package/lib/esm/ui/interfaces/IDecafToast.js +1 -1
  438. package/lib/esm/ui/interfaces/IDecafToast.js.map +1 -0
  439. package/lib/esm/ui/interfaces/index.js +1 -1
  440. package/lib/esm/ui/interfaces/index.js.map +1 -0
  441. package/lib/esm/ui/overrides.js +1 -1
  442. package/lib/esm/ui/overrides.js.map +1 -0
  443. package/lib/esm/ui/types.js +1 -1
  444. package/lib/esm/ui/types.js.map +1 -0
  445. package/lib/esm/ui/utils.js +1 -1
  446. package/lib/esm/ui/utils.js.map +1 -0
  447. package/lib/esm/ui/validator.js +1 -1
  448. package/lib/esm/ui/validator.js.map +1 -0
  449. package/lib/esm/user-requests/UserRequestHandler.js +1 -1
  450. package/lib/esm/user-requests/UserRequestHandler.js.map +1 -0
  451. package/lib/esm/user-requests/constants.js +1 -1
  452. package/lib/esm/user-requests/constants.js.map +1 -0
  453. package/lib/esm/user-requests/decorators.js +1 -1
  454. package/lib/esm/user-requests/decorators.js.map +1 -0
  455. package/lib/esm/user-requests/errors.js +1 -1
  456. package/lib/esm/user-requests/errors.js.map +1 -0
  457. package/lib/esm/user-requests/index.js +1 -1
  458. package/lib/esm/user-requests/index.js.map +1 -0
  459. package/lib/esm/user-requests/types.js +1 -1
  460. package/lib/esm/user-requests/types.js.map +1 -0
  461. package/lib/types/graph/catalog/GraphNodeDisplayManifest.d.cts +17 -0
  462. package/lib/types/graph/catalog/GraphNodeDisplayManifest.d.mts +17 -0
  463. package/lib/types/graph/constants.d.cts +101 -6
  464. package/lib/types/graph/constants.d.mts +101 -6
  465. package/lib/types/graph/document/GraphNodeInstance.d.cts +20 -0
  466. package/lib/types/graph/document/GraphNodeInstance.d.mts +20 -0
  467. package/lib/types/graph/document/GraphWorkflowUiState.d.cts +8 -0
  468. package/lib/types/graph/document/GraphWorkflowUiState.d.mts +8 -0
  469. package/lib/types/index.d.cts +3 -3
  470. package/lib/types/index.d.mts +3 -3
  471. package/package.json +3 -1
@@ -95,4 +95,4 @@ Model.uiListItems = function (model) {
95
95
  return undefined;
96
96
  return Object.keys(meta);
97
97
  }.bind(Model);
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnJpZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsL292ZXJyaWRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsNkJBQXdCO0FBQ2xELE9BQU8sRUFBZSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixjQUFjLEVBRWQsTUFBTSxHQUVQLHlCQUFvQjtBQUNyQixvQkFBaUI7QUFDakIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhEOzs7Ozs7Ozs7R0FTRztBQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLFVBQW9DLEdBQUcsSUFBVztJQUN6RSxPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDL0MsQ0FBQyxDQUFDO0FBRUQsS0FBYSxDQUFDLFVBQVUsR0FBRyxVQUMxQixLQUFxQjtJQUVyQixPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRWIsS0FBYSxDQUFDLGNBQWMsR0FBRyxVQUM5QixLQUFxQjtJQUVyQixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUN2QixLQUFLLEVBQ0wsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FDeEQsQ0FBQztJQUNGLElBQUksQ0FBQyxJQUFJO1FBQUUsT0FB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LENBQUMsQ0FDeEQsQ0FBQztJQUNGLElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDNUIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbiBNb2R1bGUgdGhhdCBleHRlbmRzIHRoZSBNb2RlbCBwcm90b3R5cGUgd2l0aCByZW5kZXJpbmcgY2FwYWJpbGl0aWVzXG4gKiBAc3VtbWFyeSBBZGRzIHRoZSByZW5kZXIgbWV0aG9kIHRvIGFsbCBNb2RlbCBpbnN0YW5jZXMgZnJvbSBkZWNvcmF0b3ItdmFsaWRhdGlvblxuICogVGhpcyBtb2R1bGUgaW1wbGVtZW50cyB0aGUgUmVuZGVyYWJsZSBpbnRlcmZhY2UgZm9yIHRoZSBNb2RlbCBjbGFzcyBieSBhZGRpbmcgYSByZW5kZXIgbWV0aG9kXG4gKiB0byBpdHMgcHJvdG90eXBlLiBUaGlzIGFsbG93cyBhbnkgTW9kZWwgaW5zdGFuY2UgdG8gYmUgcmVuZGVyZWQgdXNpbmcgdGhlIFJlbmRlcmluZ0VuZ2luZS5cbiAqIEBtb2R1bGUgbW9kZWwvb3ZlcnJpZGVzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnMvbW9kZWxcbiAqL1xuXG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IFJlbmRlcmluZ0VuZ2luZSB9IGZyb20gXCIuLi91aS9SZW5kZXJpbmdcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yLCBEZWNvcmF0aW9uS2V5cywgTWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7XG4gIENydWRPcGVyYXRpb25LZXlzLFxuICBnZXRVSUF0dHJpYnV0ZUtleSxcbiAgUmVuZGVyaW5nRXJyb3IsXG4gIFVJRWxlbWVudE1ldGFkYXRhLFxuICBVSUtleXMsXG4gIFVJTW9kZWxNZXRhZGF0YSxcbn0gZnJvbSBcIi4uL3VpL2luZGV4XCI7XG5pbXBvcnQgXCIuL21vZGVsXCI7XG5pbXBvcnQgeyBOb3RGb3VuZEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJlbmRlcnMgdGhlIG1vZGVsIHVzaW5nIHRoZSBhcHByb3ByaWF0ZSByZW5kZXJpbmcgZW5naW5lXG4gKiBAc3VtbWFyeSBEZWxlZ2F0ZXMgcmVuZGVyaW5nIHRvIHRoZSBSZW5kZXJpbmdFbmdpbmUgYmFzZWQgb24gbW9kZWwgbWV0YWRhdGFcbiAqIFRoaXMgbWV0aG9kIGltcGxlbWVudHMgdGhlIHJlbmRlciBtZXRob2QgZnJvbSB0aGUgUmVuZGVyYWJsZSBpbnRlcmZhY2UgZm9yIGFsbCBNb2RlbCBpbnN0YW5jZXMuXG4gKiBJdCB1c2VzIHRoZSBSZW5kZXJpbmdFbmdpbmUgdG8gZGV0ZXJtaW5lIGhvdyB0byByZW5kZXIgdGhlIG1vZGVsIGJhc2VkIG9uIGl0cyBtZXRhZGF0YS5cbiAqXG4gKiBAdGVtcGxhdGUgTSBUeXBlIG9mIHRoZSBtb2RlbCBiZWluZyByZW5kZXJlZFxuICogQHBhcmFtIHthbnlbXX0gYXJncyBBZGRpdGlvbmFsIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSByZW5kZXJpbmcgZW5naW5lXG4gKiBAcmV0dXJuIHthbnl9IFRoZSByZW5kZXJlZCBvdXRwdXQgaW4gdGhlIGZvcm1hdCBkZXRlcm1pbmVkIGJ5IHRoZSByZW5kZXJpbmcgZW5naW5lXG4gKi9cbk1vZGVsLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiA8TSBleHRlbmRzIE1vZGVsPih0aGlzOiBNLCAuLi5hcmdzOiBhbnlbXSkge1xuICByZXR1cm4gUmVuZGVyaW5nRW5naW5lLnJlbmRlcih0aGlzLCAuLi5hcmdzKTtcbn07XG5cbihNb2RlbCBhcyBhbnkpLnJlbmRlcmVkQnkgPSBmdW5jdGlvbiA8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IENvbnN0cnVjdG9yPE0+XG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gTWV0YWRhdGEuZ2V0KG1vZGVsLCBNZXRhZGF0YS5rZXkoVUlLZXlzLlJFRkxFQ1QsIFVJS2V5cy5SRU5ERVJFRF9CWSkpO1xufS5iaW5kKE1vZGVsKTtcblxuKE1vZGVsIGFzIGFueSkudWlQcm9wZXJ0aWVzT2YgPSBmdW5jdGlvbiA8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IENvbnN0cnVjdG9yPE0+XG4pOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG1ldGEgPSBNZXRhZGF0YS5nZXQoXG4gICAgbW9kZWwsXG4gICAgTWV0YWRhdGEua2V5KFVJS2V5cy5SRUZMRUNULCBEZWNvcmF0aW9uS2V5cy5QUk9QRVJUSUVTKVxuICApO1xuICBpZiAoIW1ldGEpIHJldHVybiB1bmRlZmluZWQ7XG4gIHJldHVybiBPYmplY3Qua2V5cyhtZXRhKTtcbn0uYmluZChNb2RlbCk7XG5cbihNb2RlbCBhcyBhbnkpLnVpRGVjb3JhdGlvbk9mID0gZnVuY3Rpb24gPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBDb25zdHJ1Y3RvcjxNPixcbiAgcHJvcDogc3RyaW5nLFxuICBrZXk/OiBzdHJpbmdcbik6IGFueSB7XG4gIGNvbnN0IG1ldGEgPSBNZXRhZGF0YS5nZXQoXG4gICAgbW9kZWwsXG4gICAgTWV0YWRhdGEua2V5KFVJS2V5cy5SRUZMRUNULCBEZWNvcmF0aW9uS2V5cy5QUk9QRVJUSUVTLCBwcm9wKVxuICApO1xuICBpZiAoIW1ldGEpIHJldHVybiB1bmRlZmluZWQ7XG4gIGlmICgha2V5KSByZXR1cm4gbWV0YTtcbiAgcmV0dXJuIG1ldGFba2V5XTtcbn07XG5cbihNb2RlbCBhcyBhbnkpLnVpTW9kZWxPZiA9IGZ1bmN0aW9uIDxNIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogQ29uc3RydWN0b3I8TT5cbik6IFVJTW9kZWxNZXRhZGF0YSB7XG4gIHJldHVybiBNZXRhZGF0YS5nZXQobW9kZWwsIE1ldGFkYXRhLmtleShVSUtleXMuUkVGTEVDVCwgVUlLZXlzLlVJTU9ERUwpKTtcbn07XG5cbihNb2RlbCBhcyBhbnkpLnVpRWxlbWVudE9mID0gZnVuY3Rpb24gPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBDb25zdHJ1Y3RvcjxNPixcbiAgcHJvcDogc3RyaW5nXG4pOiBVSUVsZW1lbnRNZXRhZGF0YSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBNZXRhZGF0YS5nZXQobW9kZWwsIGdldFVJQXR0cmlidXRlS2V5KHByb3AsIFVJS2V5cy5FTEVNRU5UKSk7XG59O1xuXG4oTW9kZWwgYXMgYW55KS51aUxpc3RNb2RlbE9mID0gZnVuY3Rpb24gPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBDb25zdHJ1Y3RvcjxNPlxuKTogVUlNb2RlbE1ldGFkYXRhIHtcbiAgcmV0dXJuIE1ldGFkYXRhLmdldChtb2RlbCwgTWV0YWRhdGEua2V5KFVJS2V5cy5SRUZMRUNULCBVSUtleXMuVUlMSVNUTU9ERUwpKTtcbn07XG5cbihNb2RlbCBhcyBhbnkpLnVpSGFuZGxlcnNGb3IgPSBmdW5jdGlvbiA8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IENvbnN0cnVjdG9yPE0+XG4pOiBVSU1vZGVsTWV0YWRhdGEge1xuICByZXR1cm4gTWV0YWRhdGEuZ2V0KG1vZGVsLCBNZXRhZGF0YS5rZXkoVUlLZXlzLlJFRkxFQ1QsIFVJS2V5cy5IQU5ETEVSUykpO1xufTtcblxuKE1vZGVsIGFzIGFueSkudWlMYXlvdXRPZiA9IGZ1bmN0aW9uIDxNIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogQ29uc3RydWN0b3I8TT5cbik6IFVJTW9kZWxNZXRhZGF0YSB7XG4gIHJldHVybiBNZXRhZGF0YS5nZXQobW9kZWwsIE1ldGFkYXRhLmtleShVSUtleXMuUkVGTEVDVCwgVUlLZXlzLlVJTEFZT1VUKSk7XG59O1xuXG4oTW9kZWwgYXMgYW55KS51aUlzSGlkZGVuID0gZnVuY3Rpb24gPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBDb25zdHJ1Y3RvcjxNPixcbiAgcHJvcDogc3RyaW5nXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuICEhTWV0YWRhdGEuZ2V0KG1vZGVsLCBnZXRVSUF0dHJpYnV0ZUtleShwcm9wLCBVSUtleXMuSElEREVOKSk7XG59O1xuXG4oTW9kZWwgYXMgYW55KS51aUlzSGlkZGVuT24gPSBmdW5jdGlvbiA8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IENvbnN0cnVjdG9yPE0+LFxuICBwcm9wOiBzdHJpbmcsXG4gIG9wPzogQ3J1ZE9wZXJhdGlvbktleXNcbik6IENydWRPcGVyYXRpb25LZXlzW10gfCBib29sZWFuIHtcbiAgY29uc3QgbWV0YSA9IE1ldGFkYXRhLmdldChtb2RlbCwgZ2V0VUlBdHRyaWJ1dGVLZXkocHJvcCwgVUlLZXlzLkhJRERFTikpO1xuICBpZiAoIW1ldGEpIHJldHVybiBmYWxzZTtcbiAgaWYgKCFvcCkgcmV0dXJuIG1ldGEgYXMgQ3J1ZE9wZXJhdGlvbktleXNbXTtcbiAgcmV0dXJuIChtZXRhIGFzIENydWRPcGVyYXRpb25LZXlzW10pLmluY2x1ZGVzKG9wKTtcbn07XG5cbihNb2RlbCBhcyBhbnkpLnVpVHlwZU9mID0gZnVuY3Rpb24gPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBDb25zdHJ1Y3RvcjxNPixcbiAgcHJvcDogc3RyaW5nXG4pOiBVSU1vZGVsTWV0YWRhdGEge1xuICBjb25zdCBtZXRhID0gTWV0YWRhdGEuZ2V0KFxuICAgIG1vZGVsLFxuICAgIE1ldGFkYXRhLmtleShVSUtleXMuUkVGTEVDVCwgRGVjb3JhdGlvbktleXMuUFJPUEVSVElFUywgcHJvcClcbiAgKTtcbiAgaWYgKCFtZXRhKVxuICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFxuICAgICAgYE5vIG1ldGFkYXRhIGZvdW5kIGZvciBwcm9wZXJ0eSAnJHtwcm9wfScgb24gbW9kZWwgJyR7bW9kZWwubmFtZX0nYFxuICAgICk7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhtZXRhKS5maWx0ZXIoKGspID0+XG4gICAgW1VJS2V5cy5QUk9QLCBVSUtleXMuRUxFTUVOVCwgVUlLZXlzLkNISUxEXS5pbmNsdWRlcyhrKVxuICApO1xuICBpZiAoa2V5cy5sZW5ndGggPT09IDApXG4gICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoXG4gICAgICBgTm8gVUkgdHlwZSBtZXRhZGF0YSBmb3VuZCBmb3IgcHJvcGVydHkgJyR7cHJvcH0nIG9uIG1vZGVsICcke21vZGVsLm5hbWV9J2BcbiAgICApO1xuICBpZiAoa2V5cy5sZW5ndGggPiAxKVxuICAgIHRocm93IG5ldyBSZW5kZXJpbmdFcnJvcihcbiAgICAgIGBPbmx5IG9uZSB0eXBlIG9mIGRlY29yYXRpb24gaXMgYWxsb3dlZC4gUGxlYXNlIGNob29zZSBiZXR3ZWVuIEB1aXByb3AsIEB1aWNoaWxkIG9yIEB1aWVsZW1lbnRgXG4gICAgKTtcbiAgcmV0dXJuIG1ldGFba2V5c1swXV07XG59O1xuLy9cbi8vIChNZXRhZGF0YSBhcyBhbnkpLnVpRWxlbWVudHMgPSBmdW5jdGlvbiA8TSBleHRlbmRzIE1vZGVsPihcbi8vICAgbW9kZWw6IENvbnN0cnVjdG9yPE0+XG4vLyApOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4vLyAgIGNvbnN0IHByb3BzID0gTWV0YWRhdGEudWlQcm9wZXJ0aWVzT2YobW9kZWwpO1xuLy8gICBpZiAoIXByb3BzKSByZXR1cm4gdW5kZWZpbmVkO1xuLy8gICByZXR1cm4gcHJvcHNcbi8vICAgICAubWFwKChwcm9wKSA9PiBNZXRhZGF0YS5nZXQobW9kZWwsIGdldFVJQXR0cmlidXRlS2V5KHByb3AsIFVJS2V5cy5FTEVNRU5UKSkpXG4vLyAgICAgLmZpbHRlcihCb29sZWFuKTtcbi8vIH0uYmluZChNb2RlbCk7XG5cbihNb2RlbCBhcyBhbnkpLnVpTGlzdEl0ZW1zID0gZnVuY3Rpb24gPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIHRoaXM6IE1ldGFkYXRhLFxuICBtb2RlbDogQ29uc3RydWN0b3I8TT5cbik6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbWV0YSA9IE1ldGFkYXRhLmdldChcbiAgICBtb2RlbCxcbiAgICBNZXRhZGF0YS5rZXkoVUlLZXlzLlJFRkxFQ1QsIERlY29yYXRpb25LZXlzLlBST1BFUlRJRVMpXG4gICk7XG4gIGlmICghbWV0YSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG1ldGEpO1xufS5iaW5kKE1vZGVsKTtcbiJdfQ==
98
+ //# sourceMappingURL=overrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../src/model/overrides.ts"],"names":[],"mappings":"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"}
@@ -29,4 +29,4 @@ prototype.uilayout = function (tag, colsMode, rows, props) {
29
29
  prototype.uisteppedmodel = function (tag, pages, paginated, props) {
30
30
  return this.decorateClass(uisteppedmodel(tag, pages, paginated, props));
31
31
  };
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxCdWlsZGVyRXh0ZW5zaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vdmVycmlkZXMvTW9kZWxCdWlsZGVyRXh0ZW5zaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsVUFBVSxFQUNWLFFBQVEsRUFDUixXQUFXLEVBQ1gsT0FBTyxFQUNQLGNBQWMsRUFDZCxVQUFVLEdBQ1gsaUNBQTRCO0FBNkI3QixNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsU0FpQjlCLENBQUM7QUFFRixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLFNBQVMsQ0FBQyxhQUFhLEdBQUcsVUFBVSxTQUF5QjtRQUMzRCxJQUFJLENBQUUsSUFBWSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDbkMsSUFBWSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUN0QyxDQUFDO1FBQ0EsSUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLENBQUMsT0FBTyxHQUFHLFVBQVUsR0FBWSxFQUFFLEtBQTJCO0lBQ3JFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQyxDQUFDO0FBRUYsU0FBUyxDQUFDLFVBQVUsR0FBRyxVQUFVLE1BQWM7SUFDN0MsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQztBQUVGLFNBQVMsQ0FBQyxXQUFXLEdBQUcsVUFBVSxJQUFhLEVBQUUsS0FBMkI7SUFDMUUsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUM7QUFFRixTQUFTLENBQUMsVUFBVSxHQUFHLFVBQVUsS0FBMkI7SUFDMUQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQUVGLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFDbkIsR0FBVyxFQUNYLFFBQTJCLEVBQzNCLElBQXdCLEVBQ3hCLEtBQVc7SUFFWCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbEUsQ0FBQyxDQUFDO0FBRUYsU0FBUyxDQUFDLGNBQWMsR0FBRyxVQUN6QixHQUFXLEVBQ1gsS0FBc0IsRUFDdEIsU0FBbUIsRUFDbkIsS0FBVztJQUVYLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMxRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IE1vZGVsQnVpbGRlciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7XG4gIHVpaGFuZGxlcnMsXG4gIHVpbGF5b3V0LFxuICB1aWxpc3Rtb2RlbCxcbiAgdWltb2RlbCxcbiAgdWlzdGVwcGVkbW9kZWwsXG4gIHJlbmRlcmVkQnksXG59IGZyb20gXCIuLi9tb2RlbC9kZWNvcmF0b3JzXCI7XG5cbmRlY2xhcmUgbW9kdWxlIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCIge1xuICBpbnRlcmZhY2UgTW9kZWxCdWlsZGVyPE0+IHtcbiAgICBkZWNvcmF0ZUNsYXNzKGRlY29yYXRvcjogQ2xhc3NEZWNvcmF0b3IpOiBNb2RlbEJ1aWxkZXI8TT47XG4gIH1cbn1cblxuZGVjbGFyZSBtb2R1bGUgXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIiB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgTW9kZWxCdWlsZGVyPE0+IHtcbiAgICB1aW1vZGVsKHRhZz86IHN0cmluZywgcHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogTW9kZWxCdWlsZGVyPE0+O1xuICAgIHJlbmRlcmVkQnkoZW5naW5lOiBzdHJpbmcpOiBNb2RlbEJ1aWxkZXI8TT47XG4gICAgdWlsaXN0bW9kZWwobmFtZT86IHN0cmluZywgcHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogTW9kZWxCdWlsZGVyPE0+O1xuICAgIHVpaGFuZGxlcnMocHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogTW9kZWxCdWlsZGVyPE0+O1xuICAgIHVpbGF5b3V0KFxuICAgICAgdGFnOiBzdHJpbmcsXG4gICAgICBjb2xzTW9kZT86IG51bWJlciB8IGJvb2xlYW4sXG4gICAgICByb3dzPzogbnVtYmVyIHwgc3RyaW5nW10sXG4gICAgICBwcm9wcz86IGFueVxuICAgICk6IE1vZGVsQnVpbGRlcjxNPjtcbiAgICB1aXN0ZXBwZWRtb2RlbChcbiAgICAgIHRhZzogc3RyaW5nLFxuICAgICAgcGFnZXM/OiBudW1iZXIgfCBhbnlbXSxcbiAgICAgIHBhZ2luYXRlZD86IGJvb2xlYW4sXG4gICAgICBwcm9wcz86IGFueVxuICAgICk6IE1vZGVsQnVpbGRlcjxNPjtcbiAgfVxufVxuXG5jb25zdCBwcm90b3R5cGUgPSBNb2RlbEJ1aWxkZXIucHJvdG90eXBlIGFzIE1vZGVsQnVpbGRlcjxhbnk+ICYge1xuICB1aW1vZGVsOiAodGFnPzogc3RyaW5nLCBwcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IE1vZGVsQnVpbGRlcjxhbnk+O1xuICByZW5kZXJlZEJ5OiAoZW5naW5lOiBzdHJpbmcpID0+IE1vZGVsQnVpbGRlcjxhbnk+O1xuICB1aWxpc3Rtb2RlbDogKG5hbWU/OiBzdHJpbmcsIHByb3BzPzogUmVjb3JkPHN0cmluZywgYW55PikgPT4gTW9kZWxCdWlsZGVyPGFueT47XG4gIHVpaGFuZGxlcnM6IChwcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IE1vZGVsQnVpbGRlcjxhbnk+O1xuICB1aWxheW91dDogKFxuICAgIHRhZzogc3RyaW5nLFxuICAgIGNvbHNNb2RlPzogbnVtYmVyIHwgYm9vbGVhbixcbiAgICByb3dzPzogbnVtYmVyIHwgc3RyaW5nW10sXG4gICAgcHJvcHM/OiBhbnlcbiAgKSA9PiBNb2RlbEJ1aWxkZXI8YW55PjtcbiAgdWlzdGVwcGVkbW9kZWw6IChcbiAgICB0YWc6IHN0cmluZyxcbiAgICBwYWdlcz86IG51bWJlciB8IGFueVtdLFxuICAgIHBhZ2luYXRlZD86IGJvb2xlYW4sXG4gICAgcHJvcHM/OiBhbnlcbiAgKSA9PiBNb2RlbEJ1aWxkZXI8YW55Pjtcbn07XG5cbmlmICghcHJvdG90eXBlLmRlY29yYXRlQ2xhc3MpIHtcbiAgcHJvdG90eXBlLmRlY29yYXRlQ2xhc3MgPSBmdW5jdGlvbiAoZGVjb3JhdG9yOiBDbGFzc0RlY29yYXRvcikge1xuICAgIGlmICghKHRoaXMgYXMgYW55KS5fY2xhc3NEZWNvcmF0b3JzKSB7XG4gICAgICAodGhpcyBhcyBhbnkpLl9jbGFzc0RlY29yYXRvcnMgPSBbXTtcbiAgICB9XG4gICAgKHRoaXMgYXMgYW55KS5fY2xhc3NEZWNvcmF0b3JzLnB1c2goZGVjb3JhdG9yKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbn1cblxucHJvdG90eXBlLnVpbW9kZWwgPSBmdW5jdGlvbiAodGFnPzogc3RyaW5nLCBwcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgcmV0dXJuIHRoaXMuZGVjb3JhdGVDbGFzcyh1aW1vZGVsKHRhZywgcHJvcHMpKTtcbn07XG5cbnByb3RvdHlwZS5yZW5kZXJlZEJ5ID0gZnVuY3Rpb24gKGVuZ2luZTogc3RyaW5nKSB7XG4gIHJldHVybiB0aGlzLmRlY29yYXRlQ2xhc3MocmVuZGVyZWRCeShlbmdpbmUpKTtcbn07XG5cbnByb3RvdHlwZS51aWxpc3Rtb2RlbCA9IGZ1bmN0aW9uIChuYW1lPzogc3RyaW5nLCBwcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgcmV0dXJuIHRoaXMuZGVjb3JhdGVDbGFzcyh1aWxpc3Rtb2RlbChuYW1lLCBwcm9wcykpO1xufTtcblxucHJvdG90eXBlLnVpaGFuZGxlcnMgPSBmdW5jdGlvbiAocHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gIHJldHVybiB0aGlzLmRlY29yYXRlQ2xhc3ModWloYW5kbGVycyhwcm9wcykpO1xufTtcblxucHJvdG90eXBlLnVpbGF5b3V0ID0gZnVuY3Rpb24gKFxuICB0YWc6IHN0cmluZyxcbiAgY29sc01vZGU/OiBudW1iZXIgfCBib29sZWFuLFxuICByb3dzPzogbnVtYmVyIHwgc3RyaW5nW10sXG4gIHByb3BzPzogYW55XG4pIHtcbiAgcmV0dXJuIHRoaXMuZGVjb3JhdGVDbGFzcyh1aWxheW91dCh0YWcsIGNvbHNNb2RlLCByb3dzLCBwcm9wcykpO1xufTtcblxucHJvdG90eXBlLnVpc3RlcHBlZG1vZGVsID0gZnVuY3Rpb24gKFxuICB0YWc6IHN0cmluZyxcbiAgcGFnZXM/OiBudW1iZXIgfCBhbnlbXSxcbiAgcGFnaW5hdGVkPzogYm9vbGVhbixcbiAgcHJvcHM/OiBhbnlcbikge1xuICByZXR1cm4gdGhpcy5kZWNvcmF0ZUNsYXNzKHVpc3RlcHBlZG1vZGVsKHRhZywgcGFnZXMsIHBhZ2luYXRlZCwgcHJvcHMpKTtcbn07XG4iXX0=
32
+ //# sourceMappingURL=ModelBuilderExtensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelBuilderExtensions.js","sourceRoot":"","sources":["../../../src/overrides/ModelBuilderExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EACL,UAAU,EACV,QAAQ,EACR,WAAW,EACX,OAAO,EACP,cAAc,EACd,UAAU,GACX,iCAA4B;AA6B7B,MAAM,SAAS,GAAG,YAAY,CAAC,SAiB9B,CAAC;AAEF,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;IAC7B,SAAS,CAAC,aAAa,GAAG,UAAU,SAAyB;QAC3D,IAAI,CAAE,IAAY,CAAC,gBAAgB,EAAE,CAAC;YACnC,IAAY,CAAC,gBAAgB,GAAG,EAAE,CAAC;QACtC,CAAC;QACA,IAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,CAAC,OAAO,GAAG,UAAU,GAAY,EAAE,KAA2B;IACrE,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,SAAS,CAAC,UAAU,GAAG,UAAU,MAAc;IAC7C,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,SAAS,CAAC,WAAW,GAAG,UAAU,IAAa,EAAE,KAA2B;IAC1E,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,SAAS,CAAC,UAAU,GAAG,UAAU,KAA2B;IAC1D,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,SAAS,CAAC,QAAQ,GAAG,UACnB,GAAW,EACX,QAA2B,EAC3B,IAAwB,EACxB,KAAW;IAEX,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAClE,CAAC,CAAC;AAEF,SAAS,CAAC,cAAc,GAAG,UACzB,GAAW,EACX,KAAsB,EACtB,SAAmB,EACnB,KAAW;IAEX,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC"}
@@ -4,4 +4,4 @@
4
4
  */
5
5
  import "./../model/overrides.js";
6
6
  export * from "./ModelBuilderExtensions.js";
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvb3ZlcnJpZGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILGlDQUE0QjtBQUU1Qiw0Q0FBeUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbiBVSSBvdmVycmlkZXMgZXhwb3J0c1xuICogQG1vZHVsZSB1aS1kZWNvcmF0b3JzL292ZXJyaWRlc1xuICovXG5pbXBvcnQgXCIuLi9tb2RlbC9vdmVycmlkZXNcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vTW9kZWxCdWlsZGVyRXh0ZW5zaW9uc1wiO1xuIl19
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/overrides/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,iCAA4B;AAE5B,4CAAyC"}
@@ -196,4 +196,4 @@ export class DecafComponent extends LoggedClass {
196
196
  return result;
197
197
  }
198
198
  }
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZDb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdWkvRGVjYWZDb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBUWhELE9BQU8sRUFBZSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUdyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQWdCO0FBSTdDOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFnQixjQUFnQyxTQUFRLFdBQVc7SUFrUXZFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUF4SVY7Ozs7Ozs7V0FPRztRQUNPLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBRXpDOzs7Ozs7O1dBT0c7UUFDTyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBV3RDOzs7Ozs7O1dBT0c7UUFDSCxTQUFJLEdBQTRCLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBRTVDOzs7Ozs7O1dBT0c7UUFDSCxVQUFLLEdBQTRCLEVBQUUsQ0FBQztRQUVwQzs7Ozs7O1dBTUc7UUFDSCxVQUFLLEdBQVksRUFBRSxDQUFDO1FBRXBCOzs7O1dBSUc7UUFDSCxZQUFPLEdBQVksS0FBSyxDQUFDO1FBeUJ6Qjs7Ozs7Ozs7V0FRRztRQUNnQixrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQXlCakQ7Ozs7OztXQU1HO1FBQ08sZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFN0IsV0FBTSxHQUFvQixFQUFFLENBQUM7UUFFN0IsYUFBUSxHQUFvQixFQUFFLENBQUM7SUFJekMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQTZCLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLFVBQTBCO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFD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LE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzNDLE1BQU0sSUFBSSxHQUFHLEdBQWEsQ0FBQztZQUMzQixNQUFNLEdBQUcsR0FBSSxFQUFxQixFQUFFLENBQUM7WUFDckMsSUFBSSxrQkFBa0IsQ0FBSSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMvQixNQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLEdBQWMsQ0FBbUIsQ0FBQztnQkFDdkQsSUFBSSxFQUFFLEVBQUUsQ0FBQztvQkFDUCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUNsQixRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDN0IsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNsQixRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dnZWRDbGFzcyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHtcbiAgQ3J1ZE9wZXJhdGlvbktleXMsXG4gIFVJRXZlbnRIYW5kbGVyLFxuICBVSUV2ZW50UHJvcGVydHksXG4gIFVJRnVuY3Rpb25MaWtlLFxufSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBJUmVwb3NpdG9yeSwgT3BlcmF0aW9uS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgRGVjYWZFdmVudEhhbmRsZXIgfSBmcm9tIFwiLi9EZWNhZkV2ZW50SGFuZGxlclwiO1xuaW1wb3J0IHsgRGVjYWZUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIi4vRGVjYWZUcmFuc2xhdGVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBpc0NsYXNzQ29uc3RydWN0b3IgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG50eXBlIFByaW1hcnlLZXlUeXBlID0gc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBCYXNlIGNsYXNzIGZvciBhbGwgRGVjYWYgVUkgY29tcG9uZW50c1xuICogQHN1bW1hcnkgQmFzZSBjbGFzcyBmb3IgYWxsIERlY2FmIFVJIGNvbXBvbmVudHMsIHByb3ZpZGluZyBjb21tb24gc3RhdGUgbWFuYWdlbWVudCxcbiAqIGxvZ2dpbmcsIGxvY2FsaXphdGlvbiwgbmF2aWdhdGlvbiBob29rcywgQ1JVRCBjb250ZXh0IG1ldGFkYXRhLCBhbmRcbiAqIHJlcG9zaXRvcnkgaW50ZWdyYXRpb24gdXNlZCBieSBoaWdoZXItbGV2ZWwgZGVjb3JhdG9ycyBhbmQgcmVuZGVyZXJzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGVjYWZDb21wb25lbnQ8TSBleHRlbmRzIE1vZGVsPiBleHRlbmRzIExvZ2dlZENsYXNzIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBEYXRhIG1vZGVsIG9yIG1vZGVsIG5hbWUgZm9yIGNvbXBvbmVudCBvcGVyYXRpb25zLlxuICAgKiBAc3VtbWFyeSBUaGUgZGF0YSBtb2RlbCB0aGF0IHRoaXMgY29tcG9uZW50IHdpbGwgdXNlIGZvciBDUlVEIG9wZXJhdGlvbnMuIFRoaXMgY2FuIGJlIHByb3ZpZGVkXG4gICAqIGFzIGEgTW9kZWwgaW5zdGFuY2UsIGEgbW9kZWwgY29uc3RydWN0b3IsIG9yIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgbW9kZWwncyByZWdpc3RlcmVkIG5hbWUuXG4gICAqIFdoZW4gc2V0LCB0aGlzIHByb3BlcnR5IHByb3ZpZGVzIHRoZSBjb21wb25lbnQgd2l0aCBhY2Nlc3MgdG8gdGhlIG1vZGVsJ3Mgc2NoZW1hLCB2YWxpZGF0aW9uIHJ1bGVzLFxuICAgKiBhbmQgbWV0YWRhdGEgbmVlZGVkIGZvciByZW5kZXJpbmcgYW5kIGRhdGEgb3BlcmF0aW9ucy5cbiAgICovXG4gIG1vZGVsITogTSB8IE1vZGVsIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUHJpbWFyeSBrZXkgdmFsdWUgb2YgdGhlIGN1cnJlbnQgbW9kZWwgaW5zdGFuY2UuXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgcHJpbWFyeSBrZXkgdmFsdWUgZm9yIHRoZSBjdXJyZW50IG1vZGVsIHJlY29yZCBiZWluZyBkaXNwbGF5ZWQgb3JcbiAgICogbWFuaXB1bGF0ZWQgYnkgdGhlIGNvbXBvbmVudC4gVGhpcyBpZGVudGlmaWVyIGlzIHVzZWQgZm9yIENSVUQgb3BlcmF0aW9ucyB0aGF0IHRhcmdldFxuICAgKiBzcGVjaWZpYyByZWNvcmRzLCBzdWNoIGFzIHJlYWQsIHVwZGF0ZSwgYW5kIGRlbGV0ZSBvcGVyYXRpb25zLiBUaGUgdmFsdWUgY29ycmVzcG9uZHMgdG9cbiAgICogdGhlIGZpZWxkIGRlc2lnbmF0ZWQgYXMgdGhlIHByaW1hcnkga2V5IGluIHRoZSBtb2RlbCBkZWZpbml0aW9uLlxuICAgKi9cbiAgbW9kZWxJZD86IFByaW1hcnlLZXlUeXBlIHwgUHJpbWFyeUtleVR5cGVbXTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFByZS1idWlsdCBmaWx0ZXJpbmcgZXhwcmVzc2lvbiBhcHBsaWVkIHRvIHJlcG9zaXRvcnkgcXVlcmllcy5cbiAgICogQHN1bW1hcnkgU3VwcGx5IGEgY3VzdG9tIGBBdHRyaWJ1dGVPcHRpb25gIHRvIGNvbnRyb2wgaG93IHJlY29yZHMgYXJlIGNvbnN0cmFpbmVkLiBXaGVuIG9taXR0ZWQsXG4gICAqIHRoZSBkaXJlY3RpdmUgZGVyaXZlcyBhIGNvbmRpdGlvbiBmcm9tIGBmaWx0ZXJCeWAgb3IgYHBrYCwgY29tcGFyaW5nIGl0IGFnYWluc3QgYG1vZGVsSWRgLlxuICAgKi9cbiAgZmlsdGVyITogYW55O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTW9kZWwgZmllbGQgdXNlZCB3aGVuIGdlbmVyYXRpbmcgdGhlIGRlZmF1bHQgY29uZGl0aW9uLlxuICAgKiBAc3VtbWFyeSBJbmRpY2F0ZXMgd2hpY2gga2V5IHNob3VsZCBiZSBjb21wYXJlZCB0byBgbW9kZWxJZGAgd2hlbiBgZmlsdGVyYCBpcyBub3QgcHJvdmlkZWQuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBjb25maWd1cmVkIHByaW1hcnkga2V5IHNvIG92ZXJyaWRlcyBhcmUgb25seSBuZWVkZWQgZm9yIGN1c3RvbSBsb29rdXBzLlxuICAgKi9cbiAgZmlsdGVyQnkhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgQ1JVRCBvcGVyYXRpb24gdHlwZSB0byBiZSBwZXJmb3JtZWQgb24gdGhlIG1vZGVsLlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgd2hpY2ggb3BlcmF0aW9uIChDcmVhdGUsIFJlYWQsIFVwZGF0ZSwgRGVsZXRlKSB0aGlzIGNvbXBvbmVudCBpbnN0YW5jZVxuICAgKiBzaG91bGQgcGVyZm9ybS4gVGhpcyBkZXRlcm1pbmVzIHRoZSBVSSBiZWhhdmlvciwgZm9ybSBjb25maWd1cmF0aW9uLCBhbmQgYXZhaWxhYmxlIGFjdGlvbnMuXG4gICAqIFRoZSBvcGVyYXRpb24gYWZmZWN0cyBmb3JtIHZhbGlkYXRpb24sIGZpZWxkIGF2YWlsYWJpbGl0eSwgYW5kIHRoZSBzcGVjaWZpYyByZXBvc2l0b3J5XG4gICAqIG1ldGhvZCBjYWxsZWQgZHVyaW5nIGRhdGEgc3VibWlzc2lvbi5cbiAgICpcbiAgICogQHR5cGUge09wZXJhdGlvbktleXN9XG4gICAqL1xuICBvcGVyYXRpb24/OiBPcGVyYXRpb25LZXlzO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUm91dGVyIGluc3RhbmNlIGZvciBwcm9ncmFtbWF0aWMgbmF2aWdhdGlvbi5cbiAgICogQHN1bW1hcnkgSW5qZWN0ZWQgUm91dGVyIHNlcnZpY2UgdXNlZCBmb3IgcHJvZ3JhbW1hdGljIG5hdmlnYXRpb24gYmV0d2VlbiByb3V0ZXNcbiAgICogaW4gdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHNlcnZpY2UgZW5hYmxlcyBuYXZpZ2F0aW9uIHRvIGRpZmZlcmVudCB2aWV3cyBhbmQgb3BlcmF0aW9ucyxcbiAgICogaGFuZGxlcyByb3V0ZSBwYXJhbWV0ZXJzLCBhbmQgbWFuYWdlcyB0aGUgYnJvd3NlcidzIG5hdmlnYXRpb24gaGlzdG9yeS5cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcm91dGVyPzogYW55O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTmFtZSBpZGVudGlmaWVyIGZvciB0aGUgY29tcG9uZW50IGluc3RhbmNlLlxuICAgKiBAc3VtbWFyeSBQcm92aWRlcyBhIHN0cmluZyBpZGVudGlmaWVyIHRoYXQgY2FuIGJlIHVzZWQgdG8gbmFtZSBvciBsYWJlbCB0aGUgY29tcG9uZW50XG4gICAqIGluc3RhbmNlLiBUaGlzIG5hbWUgY2FuIGJlIHVzZWQgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcywgbG9nZ2luZywgb3IgdG8gaWRlbnRpZnkgc3BlY2lmaWNcbiAgICogY29tcG9uZW50IGluc3RhbmNlcyB3aXRoaW4gYSBsYXJnZXIgYXBwbGljYXRpb24gc3RydWN0dXJlLiBJdCBzZXJ2ZXMgYXMgYSBodW1hbi1yZWFkYWJsZVxuICAgKiBpZGVudGlmaWVyIHRoYXQgaGVscHMgZGlzdGluZ3Vpc2ggYmV0d2VlbiBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgY29tcG9uZW50IHR5cGUuXG4gICAqL1xuICBuYW1lITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUGFyZW50IGNvbXBvbmVudCBpZGVudGlmaWVyIGZvciBoaWVyYXJjaGljYWwgY29tcG9uZW50IHJlbGF0aW9uc2hpcHMuXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgaWRlbnRpZmllciBvZiB0aGUgcGFyZW50IGNvbXBvbmVudCBpbiBhIGhpZXJhcmNoaWNhbCBjb21wb25lbnQgc3RydWN0dXJlLlxuICAgKiBUaGlzIHByb3BlcnR5IGVzdGFibGlzaGVzIGEgcGFyZW50LWNoaWxkIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGNvbXBvbmVudHMsIGFsbG93aW5nIGZvclxuICAgKiBwcm9wZXIgbmVzdGluZyBhbmQgb3JnYW5pemF0aW9uIG9mIGNvbXBvbmVudHMgd2l0aGluIGEgbGF5b3V0LiBJdCBjYW4gYmUgdXNlZCB0byB0cmFja1xuICAgKiBjb21wb25lbnQgZGVwZW5kZW5jaWVzIGFuZCBlc3RhYmxpc2ggY29tcG9uZW50IGhpZXJhcmNoaWVzIGZvciByZW5kZXJpbmcgYW5kIGV2ZW50IHByb3BhZ2F0aW9uLlxuICAgKi9cbiAgY2hpbGRPZiE6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgY29tcG9uZW50IGluc3RhbmNlLlxuICAgKiBAc3VtbWFyeSBBIHVuaXF1ZSBpZGVudGlmaWVyIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZvciBlYWNoIGNvbXBvbmVudCBpbnN0YW5jZS5cbiAgICogVGhpcyBVSUQgaXMgdXNlZCBmb3IgRE9NIGVsZW1lbnQgaWRlbnRpZmljYXRpb24sIGNvbXBvbmVudCB0cmFja2luZywgYW5kIGRlYnVnZ2luZyBwdXJwb3Nlcy5cbiAgICogQnkgZGVmYXVsdCwgaXQgZ2VuZXJhdGVzIGEgcmFuZG9tIDE2LWNoYXJhY3RlciB2YWx1ZSwgYnV0IGl0IGNhbiBiZSBleHBsaWNpdGx5IHNldCB2aWEgaW5wdXQuXG4gICAqL1xuICB1aWQ/OiBQcmltYXJ5S2V5VHlwZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFByaW1hcnkga2V5IGZpZWxkIG5hbWUgZm9yIHRoZSBkYXRhIG1vZGVsLlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgd2hpY2ggZmllbGQgaW4gdGhlIG1vZGVsIHNob3VsZCBiZSB1c2VkIGFzIHRoZSBwcmltYXJ5IGtleS5cbiAgICogVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCBmb3IgaWRlbnRpZnlpbmcgdW5pcXVlIHJlY29yZHMgaW4gb3BlcmF0aW9ucyBsaWtlIHVwZGF0ZSBhbmQgZGVsZXRlLlxuICAgKiBJZiBub3QgZXhwbGljaXRseSBzZXQsIGl0IGRlZmF1bHRzIHRvIHRoZSByZXBvc2l0b3J5J3MgY29uZmlndXJlZCBwcmltYXJ5IGtleSBvciAnaWQnLlxuMSAgICovXG4gIHBrITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVHJhbnNsYXRpb24gc2VydmljZSBmb3IgYXBwbGljYXRpb24gaW50ZXJuYXRpb25hbGl6YXRpb24uXG4gICAqIEBzdW1tYXJ5IEluamVjdGVkIHNlcnZpY2UgdGhhdCBwcm92aWRlcyB0cmFuc2xhdGlvbiBjYXBhYmlsaXRpZXMgZm9yIFVJIHRleHQuXG4gICAqIFVzZWQgdG8gdHJhbnNsYXRlIGJ1dHRvbiBsYWJlbHMsIHZhbGlkYXRpb24gbWVzc2FnZXMsIGFuZCBvdGhlciB0ZXh0IGNvbnRlbnQgYmFzZWRcbiAgICogb24gdGhlIGN1cnJlbnQgbG9jYWxlIHNldHRpbmcsIGVuYWJsaW5nIG11bHRpbGluZ3VhbCBzdXBwb3J0IHRocm91Z2hvdXQgdGhlIGFwcGxpY2F0aW9uLlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICB0cmFuc2xhdGVTZXJ2aWNlITogRGVjYWZUcmFuc2xhdGVTZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQW5ndWxhciBjaGFuZ2UgZGV0ZWN0aW9uIHNlcnZpY2UgZm9yIG1hbnVhbCBjaGFuZ2UgZGV0ZWN0aW9uIGNvbnRyb2wuXG4gICAqIEBzdW1tYXJ5IEluamVjdGVkIHNlcnZpY2UgdGhhdCBwcm92aWRlcyBtYW51YWwgY29udHJvbCBvdmVyIGNoYW5nZSBkZXRlY3Rpb24gY3ljbGVzLlxuICAgKiBUaGlzIGlzIGVzc2VudGlhbCBmb3IgZW5zdXJpbmcgdGhhdCBwcm9ncmFtbWF0aWMgRE9NIGNoYW5nZXMgKGxpa2Ugc2V0dGluZyBhY2NvcmRpb25cbiAgICogYXR0cmlidXRlcykgYXJlIHByb3Blcmx5IHJlZmxlY3RlZCBpbiB0aGUgY29tcG9uZW50J3Mgc3RhdGUgYW5kIHRyaWdnZXIgYXBwcm9wcmlhdGVcbiAgICogdmlldyB1cGRhdGVzIHdoZW4gbW9kaWZpY2F0aW9ucyBvY2N1ciBvdXRzaWRlIHRoZSBub3JtYWwgQW5ndWxhciBjaGFuZ2UgZGV0ZWN0aW9uIGZsb3cuXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZj86IGFueTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbnRyb2xzIGZpZWxkIHZpc2liaWxpdHkgYmFzZWQgb24gQ1JVRCBvcGVyYXRpb25zLlxuICAgKiBAc3VtbWFyeSBDYW4gYmUgYSBib29sZWFuIG9yIGFuIGFycmF5IG9mIG9wZXJhdGlvbiBrZXlzIHdoZXJlIHRoZSBmaWVsZCBzaG91bGQgYmUgaGlkZGVuLlxuICAgKi9cbiAgaGlkZGVuPzogYm9vbGVhbiB8IENydWRPcGVyYXRpb25LZXlzW107XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMYWJlbCBmb3IgdGhlIGZpbGUgdXBsb2FkIGZpZWxkLlxuICAgKiBAc3VtbWFyeSBQcm92aWRlcyBhIHVzZXItZnJpZW5kbHkgbGFiZWwgZm9yIHRoZSBmaWxlIHVwbG9hZCBpbnB1dC5cbiAgICovXG4gIGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgZmllbGQgaXMgcmVhZC1vbmx5LlxuICAgKi9cbiAgcmVhZG9ubHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRmxhZyB0byBlbmFibGUgb3IgZGlzYWJsZSBkYXJrIG1vZGUgc3VwcG9ydCBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICogQHN1bW1hcnkgV2hlbiBlbmFibGVkLCB0aGUgY29tcG9uZW50IHdpbGwgYXV0b21hdGljYWxseSBkZXRlY3QgdGhlIHN5c3RlbSdzIGRhcmsgbW9kZVxuICAgKiBwcmVmZXJlbmNlIHVzaW5nIHRoZSBtZWRpYSBzZXJ2aWNlIGFuZCBhcHBseSBhcHByb3ByaWF0ZSBzdHlsaW5nIGNsYXNzZXMuIFRoaXMgZmxhZ1xuICAgKiBjb250cm9scyB3aGV0aGVyIHRoZSBjb21wb25lbnQgc2hvdWxkIHJlc3BvbmQgdG8gZGFyayBtb2RlIGNoYW5nZXMgYW5kIGFwcGx5IHRoZVxuICAgKiBkYXJrIHBhbGV0dGUgY2xhc3MgdG8gaXRzIERPTSBlbGVtZW50LiBCeSBkZWZhdWx0LCBkYXJrIG1vZGUgc3VwcG9ydCBpcyBkaXNhYmxlZC5cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGVuYWJsZURhcmtNb2RlOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZsYWcgdG8gZW5hYmxlIG9yIGRpc2FibGUgZGFyayBtb2RlIHN1cHBvcnQgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqIEBzdW1tYXJ5IFdoZW4gZW5hYmxlZCwgdGhlIGNvbXBvbmVudCB3aWxsIGF1dG9tYXRpY2FsbHkgZGV0ZWN0IHRoZSBzeXN0ZW0ncyBkYXJrIG1vZGVcbiAgICogcHJlZmVyZW5jZSB1c2luZyB0aGUgbWVkaWEgc2VydmljZSBhbmQgYXBwbHkgYXBwcm9wcmlhdGUgc3R5bGluZyBjbGFzc2VzLiBUaGlzIGZsYWdcbiAgICogY29udHJvbHMgd2hldGhlciB0aGUgY29tcG9uZW50IHNob3VsZCByZXNwb25kIHRvIGRhcmsgbW9kZSBjaGFuZ2VzIGFuZCBhcHBseSB0aGVcbiAgICogZGFyayBwYWxldHRlIGNsYXNzIHRvIGl0cyBET00gZWxlbWVudC4gQnkgZGVmYXVsdCwgZGFyayBtb2RlIHN1cHBvcnQgaXMgZGlzYWJsZWQuXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBpc0RhcmtNb2RlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDdXJyZW50IGxvY2FsZSBpZGVudGlmaWVyIGZvciBjb21wb25lbnQgaW50ZXJuYXRpb25hbGl6YXRpb24uXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgbG9jYWxlIGNvZGUgKGUuZy4sICdlbi1VUycsICdwdC1CUicpIHVzZWQgZm9yIHRyYW5zbGF0aW5nIFVJIHRleHRcbiAgICogYW5kIGZvcm1hdHRpbmcgZGF0YSBhY2NvcmRpbmcgdG8gcmVnaW9uYWwgY29udmVudGlvbnMuIFRoaXMgcHJvcGVydHkgY2FuIGJlIHNldCB0byBvdmVycmlkZVxuICAgKiB0aGUgZGVmYXVsdCBhcHBsaWNhdGlvbiBsb2NhbGUgZm9yIHRoaXMgc3BlY2lmaWMgY29tcG9uZW50IGluc3RhbmNlLCBlbmFibGluZyBwZXItY29tcG9uZW50XG4gICAqIGxvY2FsaXphdGlvbiB3aGVuIG5lZWRlZC5cbiAgICovXG4gIGxvY2FsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIGxpc3QgaXRlbSByZW5kZXJpbmcgYmVoYXZpb3IuXG4gICAqIEBzdW1tYXJ5IERlZmluZXMgaG93IGxpc3QgaXRlbXMgc2hvdWxkIGJlIHJlbmRlcmVkIGluIHRoZSBjb21wb25lbnQuXG4gICAqIFRoaXMgcHJvcGVydHkgaG9sZHMgYSBjb25maWd1cmF0aW9uIG9iamVjdCB0aGF0IHNwZWNpZmllcyB0aGUgdGFnIG5hbWVcbiAgICogYW5kIG90aGVyIHByb3BlcnRpZXMgbmVlZGVkIHRvIHJlbmRlciBsaXN0IGl0ZW1zIGNvcnJlY3RseS4gVGhlIHRhZyBwcm9wZXJ0eVxuICAgKiBpZGVudGlmaWVzIHdoaWNoIGNvbXBvbmVudCBzaG91bGQgYmUgdXNlZCB0byByZW5kZXIgZWFjaCBpdGVtIGluIGEgbGlzdC5cbiAgICogQWRkaXRpb25hbCBwcm9wZXJ0aWVzIGNhbiBiZSBpbmNsdWRlZCB0byBjdXN0b21pemUgdGhlIHJlbmRlcmluZyBiZWhhdmlvci5cbiAgICovXG4gIGl0ZW06IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0geyB0YWc6IFwiXCIgfTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIER5bmFtaWMgcHJvcGVydGllcyBjb25maWd1cmF0aW9uIGZvciBydW50aW1lIGN1c3RvbWl6YXRpb24uXG4gICAqIEBzdW1tYXJ5IENvbnRhaW5zIGtleS12YWx1ZSBwYWlycyBvZiBkeW5hbWljIHByb3BlcnRpZXMgdGhhdCBjYW4gYmUgYXBwbGllZCB0byB0aGUgY29tcG9uZW50XG4gICAqIGF0IHJ1bnRpbWUuIFRoaXMgZmxleGlibGUgY29uZmlndXJhdGlvbiBvYmplY3QgYWxsb3dzIGZvciBkeW5hbWljIHByb3BlcnR5IGFzc2lnbm1lbnQgd2l0aG91dFxuICAgKiByZXF1aXJpbmcgZXhwbGljaXQgaW5wdXQgYmluZGluZ3MgZm9yIGV2ZXJ5IHBvc3NpYmxlIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBQcm9wZXJ0aWVzIGZyb21cbiAgICogdGhpcyBvYmplY3QgYXJlIHBhcnNlZCBhbmQgYXBwbGllZCB0byB0aGUgY29tcG9uZW50IGluc3RhbmNlIHRocm91Z2ggdGhlIHBhcnNlUHJvcHMgbWV0aG9kLFxuICAgKiBlbmFibGluZyBjdXN0b21pemFibGUgY29tcG9uZW50IGJlaGF2aW9yIGJhc2VkIG9uIGV4dGVybmFsIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBwcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEJhc2Ugcm91dGUgcGF0aCBmb3IgY29tcG9uZW50IG5hdmlnYXRpb24uXG4gICAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIGJhc2Ugcm91dGUgcGF0aCB1c2VkIGZvciBuYXZpZ2F0aW9uIGFjdGlvbnMgcmVsYXRlZCB0byB0aGlzIGNvbXBvbmVudC5cbiAgICogVGhpcyBpcyBvZnRlbiB1c2VkIGFzIGEgcHJlZml4IGZvciBjb25zdHJ1Y3RpbmcgbmF2aWdhdGlvbiBVUkxzIHdoZW4gdHJhbnNpdGlvbmluZyBiZXR3ZWVuXG4gICAqIGRpZmZlcmVudCBvcGVyYXRpb25zIG9yIHZpZXdzLiBUaGUgcm91dGUgaGVscHMgZXN0YWJsaXNoIHRoZSBjb21wb25lbnQncyBwb3NpdGlvbiBpbiB0aGVcbiAgICogYXBwbGljYXRpb24ncyByb3V0aW5nIGhpZXJhcmNoeS5cbiAgICovXG4gIHJvdXRlPzogc3RyaW5nID0gXCJcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbnRyb2xzIHdoZXRoZXIgYm9yZGVycyBhcmUgZGlzcGxheWVkIGFyb3VuZCB0aGUgY29tcG9uZW50LlxuICAgKiBAc3VtbWFyeSBCb29sZWFuIGZsYWcgdGhhdCBkZXRlcm1pbmVzIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkIGJlIHZpc3VhbGx5IG91dGxpbmVkIHdpdGggYm9yZGVycy5cbiAgICogV2hlbiB0cnVlLCBib3JkZXJzIGFyZSBzaG93biB0byB2aXN1YWxseSBzZXBhcmF0ZSB0aGUgY29tcG9uZW50IGZyb20gc3Vycm91bmRpbmcgY29udGVudC5cbiAgICovXG4gIGJvcmRlcnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbXBvbmVudCBuYW1lIGlkZW50aWZpZXIgZm9yIGxvZ2dpbmcgYW5kIGxvY2FsaXphdGlvbiBjb250ZXh0cy5cbiAgICogQHN1bW1hcnkgU3RvcmVzIHRoZSBjb21wb25lbnQncyBuYW1lIHdoaWNoIGlzIHVzZWQgYXMgYSBrZXkgZm9yIGxvZ2dpbmcgY29udGV4dHNcbiAgICogYW5kIGFzIGEgYmFzZSBmb3IgbG9jYWxlIHJlc29sdXRpb24uXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBjb21wb25lbnROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUm9vdCBrZXkgZm9yIGNvbXBvbmVudCBsb2NhbGUgY29udGV4dCByZXNvbHV0aW9uLlxuICAgKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBiYXNlIGtleSB1c2VkIHRvIHJlc29sdmUgbG9jYWxpemF0aW9uIGNvbnRleHRzIGZvciB0aGlzIGNvbXBvbmVudC5cbiAgICogSWYgbm90IGV4cGxpY2l0bHkgcHJvdmlkZWQsIGl0IGRlZmF1bHRzIHRvIHRoZSBjb21wb25lbnQncyBuYW1lLiBUaGlzIGtleSBpcyB1c2VkIHRvXG4gICAqIGxvYWQgYXBwcm9wcmlhdGUgdHJhbnNsYXRpb24gcmVzb3VyY2VzIGFuZCBsb2NhbGUtc3BlY2lmaWMgY29uZmlndXJhdGlvbnMuXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBsb2NhbGVSb290Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3VycmVudCB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKiBAc3VtbWFyeSBDYW4gYmUgYSBzdHJpbmcsIG51bWJlciwgZGF0ZSwgb3IgYXJyYXkgb2Ygc3RyaW5nIG9yIG9iamVjdHMuXG4gICAqL1xuICB2YWx1ZT86IGFueTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlZmVyZW5jZSB0byBDUlVEIG9wZXJhdGlvbiBjb25zdGFudHMgZm9yIHRlbXBsYXRlIHVzYWdlLlxuICAgKiBAc3VtbWFyeSBFeHBvc2VzIHRoZSBPcGVyYXRpb25LZXlzIGVudW0gdG8gdGhlIGNvbXBvbmVudCB0ZW1wbGF0ZSwgZW5hYmxpbmdcbiAgICogY29uZGl0aW9uYWwgcmVuZGVyaW5nIGFuZCBiZWhhdmlvciBiYXNlZCBvbiBvcGVyYXRpb24gdHlwZXMuIFRoaXMgcHJvdGVjdGVkXG4gICAqIHJlYWRvbmx5IHByb3BlcnR5IGVuc3VyZXMgdGhhdCB0ZW1wbGF0ZSBsb2dpYyBjYW4gYWNjZXNzIG9wZXJhdGlvbiBjb25zdGFudHNcbiAgICogd2hpbGUgbWFpbnRhaW5pbmcgZW5jYXBzdWxhdGlvbiBhbmQgcHJldmVudGluZyBhY2NpZGVudGFsIG1vZGlmaWNhdGlvbi5cbiAgICogQHByb3RlY3RlZFxuICAgKiBAcmVhZG9ubHlcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBPcGVyYXRpb25LZXlzID0gT3BlcmF0aW9uS2V5cztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEFuZ3VsYXIgTG9jYXRpb24gc2VydmljZS5cbiAgICogQHN1bW1hcnkgSW5qZWN0ZWQgc2VydmljZSB0aGF0IHByb3ZpZGVzIGRpcmVjdCBhY2Nlc3MgdG8gdGhlIGJyb3dzZXIncyBVUkwgYW5kIGhpc3RvcnkuXG4gICAqIFVubGlrZSB0aGUgUm91dGVyLCBMb2NhdGlvbiBhbGxvd3MgZm9yIGxvdy1sZXZlbCBtYW5pcHVsYXRpb24gb2YgdGhlIGJyb3dzZXIncyBoaXN0b3J5IHN0YWNrXG4gICAqIGFuZCBVUkwgcGF0aCwgc3VjaCBhcyBwcm9ncmFtbWF0aWNhbGx5IG5hdmlnYXRpbmcgYmFjayBvciBmb3J3YXJkLCBvciB1cGRhdGluZyB0aGUgVVJMIHdpdGhvdXRcbiAgICogdHJpZ2dlcmluZyBhIHJvdXRlIGNoYW5nZS4gVGhpcyBpcyB1c2VmdWwgZm9yIHNjZW5hcmlvcyB3aGVyZSB5b3UgbmVlZCB0byBpbnRlcmFjdCB3aXRoIHRoZVxuICAgKiBicm93c2VyIGhpc3Rvcnkgb3IgVVJMIG91dHNpZGUgb2YgQW5ndWxhcidzIHJvdXRpbmcgc3lzdGVtLCBzdWNoIGFzIGNsb3NpbmcgbW9kYWxzLCBoYW5kbGluZ1xuICAgKiBwb3BzdGF0ZSBldmVudHMsIG9yIHN1cHBvcnRpbmcgY3VzdG9tIG5hdmlnYXRpb24gbG9naWMuXG4gICAqXG4gICAqL1xuICBsb2NhdGlvbiE6IGFueTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlcG9zaXRvcnkgaW5zdGFuY2UgZm9yIGRhdGEgbGF5ZXIgb3BlcmF0aW9ucy5cbiAgICogQHN1bW1hcnkgUHJvdmlkZXMgYSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhIGxheWVyIGZvciByZXRyaWV2aW5nIGFuZCBtYW5pcHVsYXRpbmcgZGF0YS5cbiAgICogVGhpcyBpcyBhbiBpbnN0YW5jZSBvZiB0aGUgRGVjYWZSZXBvc2l0b3J5IGNsYXNzLCBpbml0aWFsaXplZCBsYXppbHkgaW4gdGhlIHJlcG9zaXRvcnkgZ2V0dGVyLlxuICAgKiBUaGUgcmVwb3NpdG9yeSBpcyB1c2VkIHRvIHBlcmZvcm0gQ1JVRCAoQ3JlYXRlLCBSZWFkLCBVcGRhdGUsIERlbGV0ZSkgb3BlcmF0aW9ucyBvbiB0aGVcbiAgICogZGF0YSBtb2RlbCBhbmQgcHJvdmlkZXMgbWV0aG9kcyBmb3IgcXVlcnlpbmcgYW5kIGZpbHRlcmluZyBkYXRhIGJhc2VkIG9uIHNwZWNpZmljIGNyaXRlcmlhLlxuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgX3JlcG9zaXRvcnk/OiBJUmVwb3NpdG9yeTxNPjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemF0aW9uIHN0YXR1cyBmbGFnIGZvciB0aGUgY29tcG9uZW50LlxuICAgKiBAc3VtbWFyeSBUcmFja3Mgd2hldGhlciB0aGUgY29tcG9uZW50IGhhcyBjb21wbGV0ZWQgaXRzIGluaXRpYWxpemF0aW9uIHByb2Nlc3MuXG4gICAqIFRoaXMgZmxhZyBpcyB1c2VkIHRvIHByZXZlbnQgZHVwbGljYXRlIGluaXRpYWxpemF0aW9uIGFuZCB0byBkZXRlcm1pbmUgaWZcbiAgICogY2VydGFpbiBvcGVyYXRpb25zIHRoYXQgcmVxdWlyZSBpbml0aWFsaXphdGlvbiBjYW4gYmUgcGVyZm9ybWVkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcHJvdGVjdGVkIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGV2ZW50czogVUlFdmVudFByb3BlcnR5ID0ge307XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJzOiBVSUV2ZW50UHJvcGVydHkgPSB7fTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdldCByZXBvc2l0b3J5KCk6IElSZXBvc2l0b3J5PE0+IHtcbiAgICByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeSBhcyBJUmVwb3NpdG9yeTxNPjtcbiAgfVxuXG4gIHNldCByZXBvc2l0b3J5KHJlcG9zaXRvcnk6IElSZXBvc2l0b3J5PE0+KSB7XG4gICAgdGhpcy5fcmVwb3NpdG9yeSA9IHJlcG9zaXRvcnk7XG4gIH1cblxuICBhc3luYyByZW5kZXIoLi4uYXJnczogdW5rbm93bltdKTogUHJvbWlzZTxhbnk+IHtcbiAgICB0aGlzLmxvZ1xuICAgICAgLmZvcih0aGlzLnJlbmRlcilcbiAgICAgIC5pbmZvKGByZW5kZXIgZm9yICR7dGhpcy5jb21wb25lbnROYW1lfSB3aXRoICR7SlNPTi5zdHJpbmdpZnkoYXJncyl9YCk7XG4gIH1cblxuICBhc3luYyByZWZyZXNoKC4uLmFyZ3M6IHVua25vd25bXSk6IFByb21pc2U8YW55PiB7XG4gICAgdGhpcy5sb2cuZm9yKHRoaXMucmVmcmVzaCkuaW5mbyhgUmVmcmVzaCBjYWxsZWQgd2l0aCBhcmdzOiAke2FyZ3N9YCk7XG4gIH1cblxuICAvKipcbiAgICogQXN5bmNocm9ub3VzbHkgaW5pdGlhbGl6ZXMgdGhlIGNvbXBvbmVudCB3aXRoIHRoZSBwcm92aWRlZCBhcmd1bWVudHMuXG4gICAqIFRoaXMgbWV0aG9kIHNldHMgdGhlIGBpbml0aWFsaXplZGAgcHJvcGVydHkgdG8gYHRydWVgIG9uY2UgdGhlIGluaXRpYWxpemF0aW9uIGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiBAcGFyYW0gYXJncyAtIEEgdmFyaWFibGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBvZiB1bmtub3duIHR5cGVzIHRoYXQgY2FuIGJlIHVzZWQgZm9yIGluaXRpYWxpemF0aW9uLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBpbml0aWFsaXphdGlvbiBpcyBjb21wbGV0ZS5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgYXN5bmMgaW5pdGlhbGl6ZSguLi5hcmdzOiB1bmtub3duW10pOiBQcm9taXNlPGFueT4ge1xuICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zbGF0ZXMgY29udGVudCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgYXJndW1lbnRzLlxuICAgKiBMb2dzIHRoZSB0cmFuc2xhdGlvbiByZXF1ZXN0IHdpdGggdGhlIGNvbXBvbmVudCBuYW1lIGFuZCBhcmd1bWVudHMuXG4gICAqXG4gICAqIEBwYXJhbSBhcmdzIC0gQSB2YXJpYWJsZSBudW1iZXIgb2YgYXJndW1lbnRzIHVzZWQgZm9yIHRyYW5zbGF0aW9uLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSB0cmFuc2xhdGlvbiByZXN1bHQuXG4gICAqL1xuICBhc3luYyB0cmFuc2xhdGUoLi4uYXJnczogdW5rbm93bltdKTogUHJvbWlzZTxhbnk+IHtcbiAgICB0aGlzLmxvZ1xuICAgICAgLmZvcih0aGlzLnRyYW5zbGF0ZSlcbiAgICAgIC5pbmZvKGB0cmFuc2xhdGUgZm9yICR7dGhpcy5jb21wb25lbnROYW1lfSB3aXRoICR7SlNPTi5zdHJpbmdpZnkoYXJncyl9YCk7XG4gIH1cblxuICBhc3luYyBwcmV2aWV3KC4uLmFyZ3M6IHVua25vd25bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9nLmZvcih0aGlzLnByZXZpZXcpLmRlYnVnKGBQcmV2aWV3IGNhbGxlZCB3aXRoIGFyZ3M6ICR7YXJnc31gKTtcbiAgfVxuXG4gIC8vIGFzeW5jIHByb2Nlc3MoLi4uYXJnczogdW5rbm93bltdKTogUHJvbWlzZTxhbnk+IHtcbiAgLy8gICB0aGlzLmxvZy5mb3IodGhpcy5wcm9jZXNzKS5kZWJ1ZyhgUHJvY2VzcyBjYWxsZWQgd2l0aCBhcmdzOiAke2FyZ3N9YCk7XG4gIC8vIH1cblxuICAvLyBhc3luYyBiYXRjaE9wZXJhdGlvbiguLi5hcmdzOiB1bmtub3duW10pOiBQcm9taXNlPGFueT4ge1xuICAvLyAgIHRoaXMubG9nXG4gIC8vICAgICAuZm9yKHRoaXMuYmF0Y2hPcGVyYXRpb24pXG4gIC8vICAgICAuZGVidWcoYEJhdGNoT3BlcmF0aW9uIGNhbGxlZCB3aXRoIGFyZ3M6ICR7YXJnc31gKTtcbiAgLy8gfVxuXG4gIC8qKlxuICAgKiBTdWJtaXRzIGRhdGEgb3IgcGVyZm9ybXMgYW4gYWN0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gYXJncyAtIEEgdmFyaWFibGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBvZiBhbnkgdHlwZSB0byBiZSBwYXNzZWQgdG8gdGhlIHN1Ym1pdCBvcGVyYXRpb24uXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgc3VibWl0IG9wZXJhdGlvbi5cbiAgICovXG4gIGFzeW5jIHN1Ym1pdCguLi5hcmdzOiB1bmtub3duW10pOiBQcm9taXNlPGFueT4ge1xuICAgIHRoaXMubG9nXG4gICAgICAuZm9yKHRoaXMuc3VibWl0KVxuICAgICAgLmluZm8oYHN1Ym1pdCBmb3IgJHt0aGlzLmNvbXBvbmVudE5hbWV9IHdpdGggJHtKU09OLnN0cmluZ2lmeShhcmdzKX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTm9ybWFsaXplcyBoYW5kbGVyIGRlZmluaXRpb25zIGludG8gZXhlY3V0YWJsZSBmdW5jdGlvbnMuXG4gICAqIEBzdW1tYXJ5IEl0ZXJhdGVzIHRocm91Z2ggYSBoYW5kbGVycyBtYXAgYW5kIGVuc3VyZXMgZWFjaCBlbnRyeSBpcyBzdG9yZWQgYXMgYSBjYWxsYWJsZVxuICAgKiBmdW5jdGlvbiBvbiB0aGUgY29tcG9uZW50LiBQbGFpbiBmdW5jdGlvbnMgYXJlIHN0b3JlZCBkaXJlY3RseSwgd2hpbGUgaGFuZGxlciBjbGFzc2VzIGFyZVxuICAgKiBpbnN0YW50aWF0ZWQgc28gdGhlaXIgYGhhbmRsZWAgbWV0aG9kIChvciBhIGtleWVkIG92ZXJyaWRlKSBiZWNvbWVzIHRoZSByZWdpc3RlcmVkIGhhbmRsZXIuXG4gICAqIFRoaXMgYWxsb3dzIGRlY29yYXRvcnMgdG8gYWNjZXB0IGVpdGhlciBpbmxpbmUgZnVuY3Rpb25zIG9yIGhhbmRsZXIgY2xhc3NlcyB0cmFuc3BhcmVudGx5LlxuICAgKiBAdGVtcGxhdGUgVCBFeHRlbmRzIGBEZWNhZkV2ZW50SGFuZGxlcmAgdG8gY29uc3RyYWluIGhhbmRsZXIgY2xhc3MgdHlwZXMuXG4gICAqIEBwYXJhbSBoYW5kbGVycyAtIERpY3Rpb25hcnkgb2YgaGFuZGxlciBuYW1lcyBtYXBwZWQgdG8gZnVuY3Rpb25zIG9yIGhhbmRsZXIgY29uc3RydWN0b3JzLlxuICAgKiBAcGFyYW0gaW5zdGFuY2UgLSBPcHRpb25hbCB0YXJnZXQgaGFuZGxlciBpbnN0YW5jZTsgZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHBhcnNlSGFuZGxlcnM8VCBleHRlbmRzIERlY2FmRXZlbnRIYW5kbGVyPihcbiAgICBoYW5kbGVyczogVUlFdmVudFByb3BlcnR5LFxuICAgIGluc3RhbmNlOiBUXG4gICk6IFVJRXZlbnRQcm9wZXJ0eSB7XG4gICAgY29uc3QgcmVzdWx0OiBVSUV2ZW50UHJvcGVydHkgPSB7fTtcbiAgICBPYmplY3QuZW50cmllcyhoYW5kbGVycykuZm9yRWFjaCgoW2tleSwgZm5dKSA9PiB7XG4gICAgICBpZiAoaXNDbGFzc0NvbnN0cnVjdG9yPERlY2FmRXZlbnRIYW5kbGVyPihmbikpIHtcbiAgICAgICAgY29uc3QgY2xhenogPSBuZXcgZm4oKSBhcyBEZWNhZkV2ZW50SGFuZGxlcjtcbiAgICAgICAgY29uc3QgZXZlbnQgPVxuICAgICAgICAgIGtleSBpbiBjbGF6eiA/IGNsYXp6W2tleSBhcyBrZXlvZiBEZWNhZkV2ZW50SGFuZGxlcl0gOiBjbGF6ei5oYW5kbGU7XG4gICAgICAgIHJlc3VsdFtrZXldID0gZXZlbnQ7XG4gICAgICAgIGluc3RhbmNlLmhhbmRsZXJzW2tleV0gPSBldmVudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gZm47XG4gICAgICAgIGluc3RhbmNlLmhhbmRsZXJzW2tleV0gPSBmbjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWdpc3RlcnMgZXZlbnQgY2FsbGJhY2tzIG9uIHRoZSBjb21wb25lbnQgaW5zdGFuY2UuXG4gICAqIEBzdW1tYXJ5IFByb2Nlc3NlcyBhbiBldmVudHMgbWFwIHByb2R1Y2VkIGJ5IGRlY29yYXRvcnMgd2hlcmUgZWFjaCB2YWx1ZSBjYW4gYmUgYSBmYWN0b3J5XG4gICAqIHJldHVybmluZyBhIGZ1bmN0aW9uIG9yIGEgY29tcG9uZW50IGNvbnN0cnVjdG9yLiBXaGVuIGEgY29uc3RydWN0b3IgaXMgcmV0dXJuZWQsIHRoZSBtZXRob2RcbiAgICogbWF0Y2hpbmcgdGhlIGV2ZW50IGtleSBpcyBpbnN0YW50aWF0ZWQgYW5kIHN0b3JlZDsgb3RoZXJ3aXNlIHRoZSBwcm9kdWNlZCBmdW5jdGlvbiBpc1xuICAgKiBhc3NpZ25lZCBkaXJlY3RseS4gVGhpcyBlbmFibGVzIGZsZXhpYmxlIGV2ZW50IGJpbmRpbmcgZGVmaW5pdGlvbnMgZm9yIGRlcml2ZWQgY29tcG9uZW50cy5cbiAgICogQHRlbXBsYXRlIFQgRXh0ZW5kcyBgRGVjYWZDb21wb25lbnQ8TW9kZWw+YCB0byBzY29wZSBhY2NlcHRhYmxlIGV2ZW50IG93bmVycy5cbiAgICogQHBhcmFtIGV2ZW50cyAtIERpY3Rpb25hcnkgb2YgZXZlbnQgbmFtZXMgbWFwcGVkIHRvIGZ1bmN0aW9uIGZhY3RvcmllcyBvciBjb21wb25lbnQgY29uc3RydWN0b3JzLlxuICAgKiBAcGFyYW0gaW5zdGFuY2UgLSBPcHRpb25hbCBjb21wb25lbnQgaW5zdGFuY2UgdG8gcmVjZWl2ZSB0aGUgZXZlbnRzOyBkZWZhdWx0cyB0byBgdGhpc2AuXG4gICAqL1xuICBwcm90ZWN0ZWQgcGFyc2VFdmVudHM8VCBleHRlbmRzIERlY2FmQ29tcG9uZW50PE1vZGVsPj4oXG4gICAgZXZlbnRzOiBVSUV2ZW50UHJvcGVydHksXG4gICAgaW5zdGFuY2U6IFRcbiAgKTogVUlFdmVudFByb3BlcnR5IHtcbiAgICBjb25zdCByZXN1bHQ6IFVJRXZlbnRQcm9wZXJ0eSA9IHt9O1xuICAgIE9iamVjdC5lbnRyaWVzKGV2ZW50cykuZm9yRWFjaCgoW2tleSwgZm5dKSA9PiB7XG4gICAgICBjb25zdCBuYW1lID0ga2V5IGFzIHN0cmluZztcbiAgICAgIGNvbnN0IGV2dCA9IChmbiBhcyBVSUZ1bmN0aW9uTGlrZSkoKTtcbiAgICAgIGlmIChpc0NsYXNzQ29uc3RydWN0b3I8VD4oZXZ0KSkge1xuICAgICAgICBjb25zdCBmbiA9IG5ldyBldnQoKVtrZXkgYXMga2V5b2YgVF0gYXMgVUlFdmVudEhhbmRsZXI7XG4gICAgICAgIGlmIChmbikge1xuICAgICAgICAgIHJlc3VsdFtuYW1lXSA9IGZuO1xuICAgICAgICAgIGluc3RhbmNlLmV2ZW50c1tuYW1lXSA9IGZuO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHRbbmFtZV0gPSBmbjtcbiAgICAgICAgaW5zdGFuY2UuZXZlbnRzW25hbWVdID0gZm47XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
199
+ //# sourceMappingURL=DecafComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DecafComponent.js","sourceRoot":"","sources":["../../../src/ui/DecafComponent.ts"],"names":[],"mappings":"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"}
@@ -54,4 +54,4 @@ export class DecafEventHandler extends DecafComponent {
54
54
  .info(`component ${this.componentName} handling action ${JSON.stringify(args)}`);
55
55
  }
56
56
  }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZFdmVudEhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdWkvRGVjYWZFdmVudEhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSw0QkFBeUI7QUFFbEQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxjQUFxQjtJQUMxRDs7Ozs7T0FLRztJQUNIO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLEdBQUcsSUFBZTtRQUN2QixJQUFJLENBQUMsR0FBRzthQUNMLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQ2hCLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxhQUFhLGFBQWEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxHQUFHLElBQWU7UUFDNUIsSUFBSSxDQUFDLEdBQUc7YUFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUNyQixJQUFJLENBQ0gsYUFBYSxJQUFJLENBQUMsYUFBYSxtQkFBbUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUN6RSxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFlBQVksQ0FBQyxHQUFHLElBQWU7UUFDN0IsSUFBSSxDQUFDLEdBQUc7YUFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUN0QixJQUFJLENBQ0gsYUFBYSxJQUFJLENBQUMsYUFBYSxvQkFBb0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUMxRSxDQUFDO0lBQ04sQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBEZWNhZkNvbXBvbmVudCB9IGZyb20gXCIuL0RlY2FmQ29tcG9uZW50XCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENsYXNzIHJlcHJlc2VudGluZyBhbiBldmVudCBoYW5kbGVyXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgZm9yIGhhbmRsaW5nIGV2ZW50cyBpbiB0aGUgVUkgZGVjb3JhdG9ycyBzeXN0ZW1cbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBmb3VuZGF0aW9uIGZvciBtYW5hZ2luZyBhbmQgcHJvY2Vzc2luZyBldmVudHMgdGhhdCBvY2N1clxuICogd2l0aGluIHRoZSBVSSBjb21wb25lbnRzIGdlbmVyYXRlZCBieSB0aGUgZGVjb3JhdG9ycy5cbiAqIEBjbGFzcyBFdmVudEhhbmRsZXJcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9ycy91aVxuICovXG5leHBvcnQgY2xhc3MgRGVjYWZFdmVudEhhbmRsZXIgZXh0ZW5kcyBEZWNhZkNvbXBvbmVudDxNb2RlbD4ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgRGVjYWZFdmVudEhhbmRsZXJcbiAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBuZXcgRXZlbnRIYW5kbGVyIG9iamVjdFxuICAgKiBUaGlzIGNvbnN0cnVjdG9yIGN1cnJlbnRseSBkb2Vzbid0IHRha2UgYW55IHBhcmFtZXRlcnMsIGJ1dCBpdCBjYW4gYmVcbiAgICogZXh0ZW5kZWQgaW4gdGhlIGZ1dHVyZSB0byBhY2NlcHQgY29uZmlndXJhdGlvbiBvcHRpb25zIGlmIG5lZWRlZC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBhbiBldmVudCB3aXRoIHRoZSBwcm92aWRlZCBhcmd1bWVudHMuXG4gICAqIExvZ3MgdGhlIGV2ZW50IGhhbmRsaW5nIHByb2Nlc3MsIGluY2x1ZGluZyB0aGUgY29tcG9uZW50IG5hbWUgYW5kIHRoZSBhcmd1bWVudHMgcGFzc2VkLlxuICAgKlxuICAgKiBAcGFyYW0gYXJncyAtIFRoZSBhcmd1bWVudHMgZm9yIHRoZSBldmVudCBoYW5kbGVyLlxuICAgKiBAcmV0dXJucyB2b2lkXG4gICAqL1xuICBoYW5kbGUoLi4uYXJnczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgdGhpcy5sb2dcbiAgICAgIC5mb3IodGhpcy5oYW5kbGUpXG4gICAgICAuaW5mbyhgY29tcG9uZW50ICR7dGhpcy5jb21wb25lbnROYW1lfSBoYW5kbGluZyAke0pTT04uc3RyaW5naWZ5KGFyZ3MpfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgYW4gY2xpY2sgZXZlbnQgd2l0aCB0aGUgcHJvdmlkZWQgYXJndW1lbnRzLlxuICAgKiBMb2dzIHRoZSBldmVudCBoYW5kbGluZyBwcm9jZXNzLCBpbmNsdWRpbmcgdGhlIGNvbXBvbmVudCBuYW1lIGFuZCB0aGUgYXJndW1lbnRzIHBhc3NlZC5cbiAgICpcbiAgICogQHBhcmFtIGFyZ3MgLSBUaGUgYXJndW1lbnRzIGZvciB0aGUgZXZlbnQgaGFuZGxlci5cbiAgICogQHJldHVybnMgdm9pZFxuICAgKi9cbiAgaGFuZGxlQ2xpY2soLi4uYXJnczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgdGhpcy5sb2dcbiAgICAgIC5mb3IodGhpcy5oYW5kbGVDbGljaylcbiAgICAgIC5pbmZvKFxuICAgICAgICBgY29tcG9uZW50ICR7dGhpcy5jb21wb25lbnROYW1lfSBoYW5kbGluZyBjbGljayAke0pTT04uc3RyaW5naWZ5KGFyZ3MpfWBcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBhbiBjbGljayBldmVudCB3aXRoIHRoZSBwcm92aWRlZCBhcmd1bWVudHMuXG4gICAqIExvZ3MgdGhlIGV2ZW50IGhhbmRsaW5nIHByb2Nlc3MsIGluY2x1ZGluZyB0aGUgY29tcG9uZW50IG5hbWUgYW5kIHRoZSBhcmd1bWVudHMgcGFzc2VkLlxuICAgKlxuICAgKiBAcGFyYW0gYXJncyAtIFRoZSBhcmd1bWVudHMgZm9yIHRoZSBldmVudCBoYW5kbGVyLlxuICAgKiBAcmV0dXJucyB2b2lkXG4gICAqL1xuICBoYW5kbGVBY3Rpb24oLi4uYXJnczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgdGhpcy5sb2dcbiAgICAgIC5mb3IodGhpcy5oYW5kbGVBY3Rpb24pXG4gICAgICAuaW5mbyhcbiAgICAgICAgYGNvbXBvbmVudCAke3RoaXMuY29tcG9uZW50TmFtZX0gaGFuZGxpbmcgYWN0aW9uICR7SlNPTi5zdHJpbmdpZnkoYXJncyl9YFxuICAgICAgKTtcbiAgfVxufVxuIl19
57
+ //# sourceMappingURL=DecafEventHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DecafEventHandler.js","sourceRoot":"","sources":["../../../src/ui/DecafEventHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,4BAAyB;AAElD;;;;;;;GAOG;AACH,MAAM,OAAO,iBAAkB,SAAQ,cAAqB;IAC1D;;;;;OAKG;IACH;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,IAAe;QACvB,IAAI,CAAC,GAAG;aACL,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;aAChB,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,aAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,GAAG,IAAe;QAC5B,IAAI,CAAC,GAAG;aACL,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;aACrB,IAAI,CACH,aAAa,IAAI,CAAC,aAAa,mBAAmB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CACzE,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,GAAG,IAAe;QAC7B,IAAI,CAAC,GAAG;aACL,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;aACtB,IAAI,CACH,aAAa,IAAI,CAAC,aAAa,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAC1E,CAAC;IACN,CAAC;CACF"}
@@ -11,4 +11,4 @@ export class DecafTranslateService extends LoggedClass {
11
11
  .info(`Must translate ${key} with params ${JSON.stringify(params || {})}`);
12
12
  }
13
13
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZUcmFuc2xhdGVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VpL0RlY2FmVHJhbnNsYXRlU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFdBQVc7SUFDcEQsU0FBUyxDQUFDLEdBQVcsRUFBRSxNQUE0QjtRQUNqRCxJQUFJLENBQUMsR0FBRzthQUNMLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQ25CLElBQUksQ0FDSCxrQkFBa0IsR0FBRyxnQkFBZ0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FDcEUsQ0FBQztJQUNOLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBVyxFQUFFLE1BQTRCO1FBQy9DLElBQUksQ0FBQyxHQUFHO2FBQ0wsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDakIsSUFBSSxDQUNILGtCQUFrQixHQUFHLGdCQUFnQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsRUFBRSxDQUNwRSxDQUFDO0lBQ04sQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nZ2VkQ2xhc3MgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcblxuZXhwb3J0IGNsYXNzIERlY2FmVHJhbnNsYXRlU2VydmljZSBleHRlbmRzIExvZ2dlZENsYXNzIHtcbiAgdHJhbnNsYXRlKGtleTogc3RyaW5nLCBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogYW55IHtcbiAgICB0aGlzLmxvZ1xuICAgICAgLmZvcih0aGlzLnRyYW5zbGF0ZSlcbiAgICAgIC5pbmZvKFxuICAgICAgICBgTXVzdCB0cmFuc2xhdGUgJHtrZXl9IHdpdGggcGFyYW1zICR7SlNPTi5zdHJpbmdpZnkocGFyYW1zIHx8IHt9KX1gXG4gICAgICApO1xuICB9XG5cbiAgaW5zdGFudChrZXk6IHN0cmluZywgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgYW55Pik6IGFueSB7XG4gICAgdGhpcy5sb2dcbiAgICAgIC5mb3IodGhpcy5pbnN0YW50KVxuICAgICAgLmluZm8oXG4gICAgICAgIGBNdXN0IHRyYW5zbGF0ZSAke2tleX0gd2l0aCBwYXJhbXMgJHtKU09OLnN0cmluZ2lmeShwYXJhbXMgfHwge30pfWBcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
14
+ //# sourceMappingURL=DecafTranslateService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DecafTranslateService.js","sourceRoot":"","sources":["../../../src/ui/DecafTranslateService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,qBAAsB,SAAQ,WAAW;IACpD,SAAS,CAAC,GAAW,EAAE,MAA4B;QACjD,IAAI,CAAC,GAAG;aACL,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;aACnB,IAAI,CACH,kBAAkB,GAAG,gBAAgB,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CACpE,CAAC;IACN,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,MAA4B;QAC/C,IAAI,CAAC,GAAG;aACL,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;aACjB,IAAI,CACH,kBAAkB,GAAG,gBAAgB,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CACpE,CAAC;IACN,CAAC;CACF"}
@@ -575,4 +575,4 @@ export class RenderingEngine {
575
575
  // },
576
576
  // })
577
577
  // .apply();
578
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVuZGVyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VpL1JlbmRlcmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNmLE1BQU0sRUFDTixzQkFBc0IsRUFDdEIsaUJBQWlCLEdBQ2xCLHVCQUFvQjtBQWVyQixPQUFPLEVBQUUsY0FBYyxFQUFFLG9CQUFpQjtBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLG1CQUFnQjtBQUMxRCxPQUFPLEVBQWUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUNMLEtBQUssRUFFTCxVQUFVLEVBQ1YsY0FBYyxFQUNkLGNBQWMsR0FFZixNQUFNLGdDQUFnQyxDQUFDO0FBUXhDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNIOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFnQixlQUFlO0lBQ25DOzs7O09BSUc7YUFDWSxVQUFLLEdBSWhCLEVBQUUsQUFKYyxDQUliO0lBZ0JQLFlBQStCLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBTDlDOztXQUVHO1FBQ08sZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFHckMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsT0FBTywwQkFBMEIsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUF3QkQ7Ozs7Ozs7T0FPRztJQUNILFNBQVMsQ0FBQyxHQUFXLEVBQUUsU0FBa0IsSUFBSTtRQUMzQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsUUFBUSxHQUFHLEVBQUUsQ0FBQztnQkFDWixLQUFLLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDM0MsT0FBTyxlQUFl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TyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7O0FBRUgsRUFBRTtBQUNGLDRCQUE0QjtBQUM1QixjQUFjO0FBQ2QsZ0VBQWdFO0FBQ2hFLHFFQUFxRTtBQUNyRSxpQ0FBaUM7QUFDakMsZ0VBQWdFO0FBQ2hFLHNCQUFzQjtBQUN0QiwwQkFBMEI7QUFDMUIsZUFBZTtBQUNmLFdBQVc7QUFDWCxTQUFTO0FBQ1QsT0FBTztBQUNQLGNBQWM7QUFDZCxFQUFFO0FBQ0YsbUNBQW1DO0FBQ25DLGNBQWM7QUFDZCw0REFBNEQ7QUFDNUQsMENBQTBDO0FBQzFDLFNBQVM7QUFDVCxPQUFPO0FBQ1AsY0FBYztBQUNkLEVBQUU7QUFDRixrQ0FBa0M7QUFDbEMsY0FBYztBQUNkLHVDQUF1QztBQUN2QyxtRUFBbUU7QUFDbkUsU0FBUztBQUNULE9BQU87QUFDUCxjQUFjO0FBQ2QsRUFBRTtBQUNGLDhCQUE4QjtBQUM5QixjQUFjO0FBQ2Qsd0NBQXdDO0FBQ3hDLG1FQUFtRTtBQUNuRSxTQUFTO0FBQ1QsT0FBTztBQUNQLGNBQWM7QUFDZCxFQUFFO0FBQ0YsOEJBQThCO0FBQzlCLGNBQWM7QUFDZCx3Q0FBd0M7QUFDeEMsbUVBQW1FO0FBQ25FLFNBQVM7QUFDVCxPQUFPO0FBQ1AsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludGVybmFsRXJyb3IsIE5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7XG4gIEhUTUw1RGF0ZUZvcm1hdCxcbiAgSFRNTDVJbnB1dFR5cGVzLFxuICBVSUtleXMsXG4gIFZhbGlkYXRhYmxlQnlBdHRyaWJ1dGUsXG4gIFZhbGlkYXRhYmxlQnlUeXBlLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIENydWRPcGVyYXRpb25LZXlzLFxuICBEZWNhZlNwaW5uZXJPcHRpb25zLFxuICBEZWNhZlRvYXN0T3B0aW9ucyxcbiAgRmllbGREZWZpbml0aW9uLFxuICBGaWVsZFByb3BlcnRpZXMsXG4gIFVJQ2xhc3NNZXRhZGF0YSxcbiAgVUlFbGVtZW50TWV0YWRhdGEsXG4gIFVJTGlzdEl0ZW1FbGVtZW50TWV0YWRhdGEsXG4gIFVJTGlzdFByb3BNZXRhZGF0YSxcbiAgVUlNb2RlbE1ldGFkYXRhLFxuICBVSVByb3BNZXRhZGF0YSxcbiAgSVBhZ2VkQ29tcG9uZW50UHJvcGVydGllcyxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IFJlbmRlcmluZ0Vycm9yIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5pbXBvcnQgeyBmb3JtYXRCeVR5cGUsIGdlbmVyYXRlVUlNb2RlbElEIH0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yLCBNZXRhZGF0YSB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHtcbiAgTW9kZWwsXG4gIE1vZGVsQ29uc3RydWN0b3IsXG4gIFByaW1pdGl2ZXMsXG4gIFJlc2VydmVkTW9kZWxzLFxuICBWYWxpZGF0aW9uS2V5cyxcbiAgVmFsaWRhdGlvbk1ldGFkYXRhLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBJRGVjYWZNb2RhbCB9IGZyb20gXCIuL2ludGVyZmFjZXMvSURlY2FmTW9kYWxcIjtcbmltcG9ydCB7IERlY2FmQ29tcG9uZW50IH0gZnJvbSBcIi4vRGVjYWZDb21wb25lbnRcIjtcblxuaW1wb3J0IHsgSURlY2FmU3Bpbm5lciB9IGZyb20gXCIuL2ludGVyZmFjZXMvSURlY2FmU3Bpbm5lclwiO1xuaW1wb3J0IHsgSURlY2FmUm91dGVyIH0gZnJvbSBcIi4vaW50ZXJmYWNlcy9JRGVjYWZSb3V0ZXJcIjtcbmltcG9ydCB7IElEZWNhZlRvYXN0IH0gZnJvbSBcIi4vaW50ZXJmYWNlcy9JRGVjYWZUb2FzdFwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBBYnN0cmFjdCBjbGFzcyBmb3IgcmVuZGVyaW5nIFVJIGNvbXBvbmVudHMgYmFzZWQgb24gbW9kZWwgbWV0YWRhdGEuXG4gKiBAc3VtbWFyeSBUaGUgUmVuZGVyaW5nRW5naW5lIGNsYXNzIHByb3ZpZGVzIGEgZnJhbWV3b3JrIGZvciBjb252ZXJ0aW5nIG1vZGVsIG1ldGFkYXRhIGludG8gVUkgZmllbGQgZGVmaW5pdGlvbnMuXG4gKiBJdCBoYW5kbGVzIHRoZSB0cmFuc2xhdGlvbiBvZiBtb2RlbCBwcm9wZXJ0aWVzIHRvIFVJIGVsZW1lbnRzLCBhcHBsaWVzIHZhbGlkYXRpb24gcnVsZXMsIGFuZCBtYW5hZ2VzIGRpZmZlcmVudCByZW5kZXJpbmcgZmxhdm9ycy5cbiAqIFRoaXMgY2xhc3MgaXMgZGVzaWduZWQgdG8gYmUgZXh0ZW5kZWQgYnkgc3BlY2lmaWMgcmVuZGVyaW5nIGltcGxlbWVudGF0aW9ucy5cbiAqXG4gKiBAdGVtcGxhdGUgVCBUaGUgdHlwZSBvZiB0aGUgcmVuZGVyaW5nIHJlc3VsdCwgZGVmYXVsdHMgdG8gdm9pZFxuICogQHRlbXBsYXRlIFIgVGhlIHR5cGUgb2YgdGhlIGZpZWxkIGRlZmluaXRpb24sIGRlZmF1bHRzIHRvIEZpZWxkRGVmaW5pdGlvbjxUPlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBmbGF2b3VyIC0gVGhlIGZsYXZvciBvZiB0aGUgcmVuZGVyaW5nIGVuZ2luZS5cbiAqXG4gKiBAY2xhc3MgUmVuZGVyaW5nRW5naW5lXG4gKi9cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgYmFzZSBhYnN0cmFjdGlvbiBmb3IgZGVjYWYgcmVuZGVyaW5nIGVuZ2luZXMsIGhhbmRsaW5nIGVuZ2luZSByZWdpc3RyYXRpb24sXG4gKiBpbml0aWFsaXphdGlvbiwgbW9kZWwtdG8tZmllbGQgdHJhbnNsYXRpb24sIGFuZCBydW50aW1lIHJlbmRlcmluZyBvcmNoZXN0cmF0aW9uLlxuICogSW1wbGVtZW50YXRpb25zIG11c3QgcHJvdmlkZSBpbml0aWFsaXphdGlvbiBhbmQgcmVuZGVyaW5nIGxvZ2ljIHdoaWxlIGxldmVyYWdpbmcgdGhlIHNoYXJlZFxuICogbWV0YWRhdGEtZHJpdmVuIGNvbnZlcnNpb24gdXRpbGl0aWVzIHN1cHBsaWVkIGhlcmUuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZW5kZXJpbmdFbmdpbmU8VCA9IHZvaWQsIFIgPSBGaWVsZERlZmluaXRpb248VD4+IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDYWNoZSBmb3Igc3RvcmluZyByZW5kZXJpbmcgZW5naW5lIGluc3RhbmNlcyBvciBjb25zdHJ1Y3RvcnMuXG4gICAqIEBwcml2YXRlXG4gICAqIEBzdGF0aWNcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGNhY2hlOiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIHwgQ29uc3RydWN0b3I8UmVuZGVyaW5nRW5naW5lPHVua25vd24sIHVua25vd24+PlxuICAgIHwgUmVuZGVyaW5nRW5naW5lPHVua25vd24sIHVua25vd24+XG4gID4gPSB7fTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBjdXJyZW50bHkgYWN0aXZlIHJlbmRlcmluZyBlbmdpbmUuXG4gICAqIEBwcml2YXRlXG4gICAqIEBzdGF0aWNcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGN1cnJlbnQ6XG4gICAgfCBDb25zdHJ1Y3RvcjxSZW5kZXJpbmdFbmdpbmU8dW5rbm93biwgdW5rbm93bj4+XG4gICAgfCBSZW5kZXJpbmdFbmdpbmU8dW5rbm93biwgdW5rbm93bj47XG5cbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSByZW5kZXJpbmcgZW5naW5lIGhhcyBiZWVuIGluaXRpYWxpemVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGZsYXZvdXI6IHN0cmluZykge1xuICAgIFJlbmRlcmluZ0VuZ2luZS5yZWdpc3Rlcih0aGlzKTtcbiAgICBjb25zb2xlLmxvZyhgZGVjYWYncyAke2ZsYXZvdXJ9IHJlbmRlcmluZyBlbmdpbmUgbG9hZGVkYCk7XG4gIH1cblxuICBhYnN0cmFjdCBnZXRNb2RhbDxDIGV4dGVuZHMgRGVjYWZDb21wb25lbnQ8TW9kZWw+PihcbiAgICBjb21wb25lbnQ6IFBhcnRpYWw8Qz4sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxJRGVjYWZNb2RhbD47XG5cbiAgYWJzdHJhY3QgZ2V0VG9hc3Qob3B0aW9uczogRGVjYWZUb2FzdE9wdGlvbnMpOiBQcm9taXNlPElEZWNhZlRvYXN0PjtcblxuICBhYnN0cmFjdCBnZXRTcGlubmVyKG9wdGlvbnM6IERlY2FmU3Bpbm5lck9wdGlvbnMpOiBQcm9taXNlPElEZWNhZlNwaW5uZXI+O1xuXG4gIGFic3RyYWN0IHJvdXRlcigpOiBJRGVjYWZSb3V0ZXI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplcyB0aGUgcmVuZGVyaW5nIGVuZ2luZS5cbiAgICogQHN1bW1hcnkgQWJzdHJhY3QgbWV0aG9kIHRvIGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMgZm9yIHNwZWNpZmljIGluaXRpYWxpemF0aW9uIGxvZ2ljLlxuICAgKlxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIG5lZWRlZCBmb3IgaW5pdGlhbGl6YXRpb24uXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGluaXRpYWxpemF0aW9uIGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiBAYWJzdHJhY3RcbiAgICovXG4gIGFic3RyYWN0IGluaXRpYWxpemUoLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVHJhbnNsYXRlcyBiZXR3ZWVuIG1vZGVsIHR5cGVzIGFuZCBIVE1MIGlucHV0IHR5cGVzLlxuICAgKiBAc3VtbWFyeSBDb252ZXJ0cyBtb2RlbCBkYXRhIHR5cGVzIHRvIGFwcHJvcHJpYXRlIEhUTUwgaW5wdXQgdHlwZXMgYW5kIHZpY2UgdmVyc2EuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IHRvIHRyYW5zbGF0ZS5cbiAgICogQHBhcmFtIHtib29sZWFufSBbdG9WaWV3PXRydWVdIC0gRGlyZWN0aW9uIG9mIHRyYW5zbGF0aW9uICh0cnVlIGZvciBtb2RlbCB0byB2aWV3LCBmYWxzZSBmb3IgdmlldyB0byBtb2RlbCkuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSB0cmFuc2xhdGVkIHR5cGUuXG4gICAqL1xuICB0cmFuc2xhdGUoa2V5OiBzdHJpbmcsIHRvVmlldzogYm9vbGVhbiA9IHRydWUpOiBzdHJpbmcge1xuICAgIGlmICh0b1ZpZXcpIHtcbiAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgIGNhc2UgUmVzZXJ2ZWRNb2RlbHMuU1RSSU5HLm5hbWUudG9Mb3dlckNhc2UoKTpcbiAgICAgICAgICByZXR1cm4gSFRNTDVJbnB1dFR5cGVzLlRFWFQ7XG4gICAgICAgIGNhc2UgUmVzZXJ2ZWRNb2RlbHMuTlVNQkVSLm5hbWUudG9Mb3dlckNhc2UoKTpcbiAgICAgICAgY2FzZSBSZXNlcnZlZE1vZGVscy5CSUdJTlQubmFtZS50b0xvd2VyQ2FzZSgpOlxuICAgICAgICAgIHJldHVybiBIVE1MNUlucHV0VHlwZXMuTlVNQkVSO1xuICAgICAgICBjYXNlIFJlc2VydmVkTW9kZWxzLkJPT0xFQU4ubmFtZS50b0xvd2VyQ2FzZSgpOlxuICAgICAgICAgIHJldHVybiBIVE1MNUlucHV0VHlwZXMuQ0hFQ0tCT1g7XG4gICAgICAgIGNhc2UgUmVzZXJ2ZWRNb2RlbHMuREFURS5uYW1lLnRvTG93ZXJDYXNlKCk6XG4gICAgICAgICAgcmV0dXJuIEhUTUw1SW5wdXRUeXBlcy5EQVRFO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlIEhUTUw1SW5wdXRUeXBlcy5TRUxFQ1Q6XG4gICAgICAgIGNhc2UgSFRNTDVJbnB1dFR5cGVzLlRFWFQ6XG4gICAgICAgIGNhc2UgSFRNTDVJbnB1dFR5cGVzLkVNQUlMOlxuICAgICAgICBjYXNlIEhUTUw1SW5wdXRUeXBlcy5DT0xPUjpcbiAgICAgICAgY2FzZSBIVE1MNUlucHV0VHlwZXMuUEFTU1dPUkQ6XG4gICAgICAgIGNhc2UgSFRNTDVJbnB1dFR5cGVzLlRFTDpcbiAgICAgICAgY2FzZSBIVE1MNUlucHV0VHlwZXMuVVJMOlxuICAgICAgICBjYXNlIEhUTUw1SW5wdXRUeXBlcy5TRUFSQ0g6XG4gICAgICAgIGNhc2UgSFRNTDVJbnB1dFR5cGVzLkhJRERFTjpcbiAgICAgICAgY2FzZSBIVE1MNUlucHV0VHlwZXMuVEVYVEFSRUE6XG4gICAgICAgIGNhc2UgSFRNTDVJbnB1dFR5cGVzLlJBRElPOlxuICAgICAgICAgIHJldHVybiBSZXNlcnZlZE1vZGVscy5TVFJJTkcubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjYXNlIEhUTUw1SW5wdXRUeXBlcy5OVU1CRVI6XG4gICAgICAgICAgcmV0dXJuIFJlc2VydmVkTW9kZWxzLk5VTUJFUi5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNhc2UgSFRNTDVJbnB1dFR5cGVzLkNIRUNLQk9YOlxuICAgICAgICAgIHJldHVybiBSZXNlcnZlZE1vZGVscy5CT09MRUFOLm5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY2FzZSBIVE1MNUlucHV0VHlwZXMuREFURTpcbiAgICAgICAgY2FzZSBIVE1MNUlucHV0VHlwZXMuREFURVRJTUVfTE9DQUw6XG4gICAgICAgIGNhc2UgSFRNTDVJbnB1dFR5cGVzLlRJTUU6XG4gICAgICAgICAgcmV0dXJuIFJlc2VydmVkTW9kZWxzLkRBVEUubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ga2V5O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgY2xhc3MgZGVjb3JhdG9yIG1ldGFkYXRhIGZvciBhIG1vZGVsIGluc3RhbmNlXG4gICAqIEBzdW1tYXJ5IEV4dHJhY3RzIFVJLXJlbGF0ZWQgY2xhc3MgZGVjb3JhdG9ycyBmcm9tIGEgbW9kZWwgYW5kIHJldHVybnMgdGhlbSBhcyBhbiBhcnJheVxuICAgKiBUaGlzIG1ldGhvZCBjb2xsZWN0cyBtZXRhZGF0YSBmcm9tIHZhcmlvdXMgVUkgY2xhc3MgZGVjb3JhdG9ycyBpbmNsdWRpbmcgQHVpbW9kZWwsXG4gICAqIEB1aWxpc3Rtb2RlbCwgQHVpaGFuZGxlcnMsIGFuZCBAdWlsYXlvdXQgYXBwbGllZCB0byB0aGUgbW9kZWwgY2xhc3MuXG4gICAqXG4gICAqIEB0ZW1wbGF0ZSBNIFR5cGUgZXh0ZW5kaW5nIE1vZGVsXG4gICAqIEBwYXJhbSB7TX0gbW9kZWwgLSBUaGUgbW9kZWwgaW5zdGFuY2UgdG8gZXh0cmFjdCBtZXRhZGF0YSBmcm9tXG4gICAqIEByZXR1cm5zIHtVSUNsYXNzTWV0YWRhdGFbXX0gQXJyYXkgb2YgVUkgY2xhc3MgbWV0YWRhdGEgb2JqZWN0c1xuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRDbGFzc0RlY29yYXRvcnNNZXRhZGF0YTxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIG1vZGVsOiBNXG4gICk6IFVJQ2xhc3NNZXRhZGF0YVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgTW9kZWwudWlNb2RlbE9mKG1vZGVsLmNvbnN0cnVjdG9yIGFzIENvbnN0cnVjdG9yPE0+KSxcbiAgICAgIE1vZGVsLnVpTGlzdE1vZGVsT2YobW9kZWwuY29uc3RydWN0b3IgYXMgQ29uc3RydWN0b3I8TT4pLFxuICAgICAgTW9kZWwudWlIYW5kbGVyc0Zvcihtb2RlbC5jb25zdHJ1Y3RvciBhcyBDb25zdHJ1Y3RvcjxNPiksXG4gICAgICBNb2RlbC51aUxheW91dE9mKG1vZGVsLmNvbnN0cnVjdG9yIGFzIENvbnN0cnVjdG9yPE0+KSxcbiAgICBdLmZpbHRlcihCb29sZWFuKSBhcyBVSUNsYXNzTWV0YWRhdGFbXTtcbiAgfVxuXG4gIHByaXZhdGUgc29ydENoaWxkcmVuQnlPcmRlcihjaGlsZHJlbjogRmllbGREZWZpbml0aW9uPGFueT5bXSA9IFtdKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IGFPcmRlciA9IGEucHJvcHM/Lm9yZGVyID8/IDA7XG4gICAgICBjb25zdCBiT3JkZXIgPSBiLnByb3BzPy5vcmRlciA/PyAwO1xuICAgICAgY29uc3Qgd2VpZ2h0ID0gKHY6IG51bWJlciB8IHN0cmluZykgPT5cbiAgICAgICAgdiA9PT0gVUlLZXlzLkZJUlNUXG4gICAgICAgICAgPyAwXG4gICAgICAgICAgOiB0eXBlb2YgdiA9PT0gUHJpbWl0aXZlcy5OVU1CRVJcbiAgICAgICAgICAgID8gMVxuICAgICAgICAgICAgOiB2ID09PSBVSUtleXMuTEFTVFxuICAgICAgICAgICAgICA/IC8vVE9ETzogcmV2aWV3IHRoaXNcbiAgICAgICAgICAgICAgICBjaGlsZHJlbi5sZW5ndGggKyBjaGlsZHJlbi5pbmRleE9mKGIpXG4gICAgICAgICAgICAgIDogMTtcblxuICAgICAgY29uc3QgYVdlaWdodCA9IHdlaWdodChhT3JkZXIpO1xuICAgICAgY29uc3QgYldlaWdodCA9IHdlaWdodChiT3JkZXIpO1xuICAgICAgaWYgKGFXZWlnaHQgIT09IGJXZWlnaHQpIHtcbiAgICAgICAgcmV0dXJuIGFXZWlnaHQgLSBiV2VpZ2h0O1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGFXZWlnaHQgPT09IDEgJiZcbiAgICAgICAgdHlwZW9mIGFPcmRlciA9PT0gUHJpbWl0aXZlcy5OVU1CRVIgJiZcbiAgICAgICAgdHlwZW9mIGJPcmRlciA9PT0gUHJpbWl0aXZlcy5OVU1CRVJcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gYU9yZGVyIC0gYk9yZGVyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENoZWNrcyBpZiBhIHZhbGlkYXRpb24ga2V5IHJlcHJlc2VudHMgYSBjdXN0b20gdmFsaWRhdG9yIChpLmUuLCBub3QgYSBidWlsdC1pbiB2YWxpZGF0aW9uIG9yIFVJIGtleSkuXG4gICAqIEBzdW1tYXJ5IERldGVybWluZXMgd2hldGhlciB0aGUgcHJvdmlkZWQga2V5IGNvcnJlc3BvbmRzIHRvIGEgdXNlci1kZWZpbmVkIHZhbGlkYXRvciBieSBleGNsdWRpbmcgYWxsIGJ1aWx0LWluIFZhbGlkYXRpb25LZXlzIGFuZCBVSUtleXMuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUgdmFsaWRhdGlvbiBrZXkgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSBrZXkgaXMgYSBjdXN0b20gdmFsaWRhdG9yLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSBrZXkgaXMgbm90IGEgYnVpbHQtaW4gdmFsaWRhdGlvbiBrZXkgb3IgVUkga2V5IChpLmUuIGlzIGN1c3RvbSksIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIHByb3RlY3RlZCBpc0N1c3RvbVZhbGlkYXRvcihrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhT2JqZWN0LnZhbHVlcyhWYWxpZGF0aW9uS2V5cykuaW5jbHVkZXMoXG4gICAgICAgIGtleSBhcyAodHlwZW9mIFZhbGlkYXRpb25LZXlzKVtrZXlvZiB0eXBlb2YgVmFsaWRhdGlvbktleXNdXG4gICAgICApICYmICFPYmplY3QudmFsdWVzKFVJS2V5cykuaW5jbHVkZXMoa2V5KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENoZWNrcyBpZiBhIHR5cGUgaXMgdmFsaWRhdGFibGUgYnkgaXRzIG5hdHVyZS5cbiAgICogQHN1bW1hcnkgRGV0ZXJtaW5lcyBpZiBhIGdpdmVuIFVJIGtleSByZXByZXNlbnRzIGEgdHlwZSB0aGF0IGlzIGluaGVyZW50bHkgdmFsaWRhdGFibGUuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUgVUkga2V5IHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgdHlwZSBpcyB2YWxpZGF0YWJsZSwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGlzVmFsaWRhdGFibGVCeVR5cGUoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoVmFsaWRhdGFibGVCeVR5cGUpLmluY2x1ZGVzKGtleSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENoZWNrcyBpZiBhIHR5cGUgaXMgdmFsaWRhdGFibGUgYnkgYXR0cmlidXRlLlxuICAgKiBAc3VtbWFyeSBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gVUkga2V5IHJlcHJlc2VudHMgYSB2YWxpZGF0aW9uIHRoYXQgY2FuIGJlIGFwcGxpZWQgYXMgYW4gYXR0cmlidXRlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIFVJIGtleSB0byBjaGVjay5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIHR5cGUgaXMgdmFsaWRhdGFibGUgYnkgYXR0cmlidXRlLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNWYWxpZGF0YWJsZUJ5QXR0cmlidXRlKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKFZhbGlkYXRhYmxlQnlBdHRyaWJ1dGUpLmluY2x1ZGVzKGtleSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbnZlcnRzIHZhbGlkYXRpb24gbWV0YWRhdGEgdG8gYW4gYXR0cmlidXRlIHZhbHVlLlxuICAgKiBAc3VtbWFyeSBUcmFuc2Zvcm1zIHZhbGlkYXRpb24gbWV0YWRhdGEgaW50byBhIHZhbHVlIHN1aXRhYmxlIGZvciB1c2UgYXMgYW4gSFRNTCBhdHRyaWJ1dGUuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUgdmFsaWRhdGlvbiBrZXkuXG4gICAqIEBwYXJhbSB7VmFsaWRhdGlvbk1ldGFkYXRhfSB2YWx1ZSAtIFRoZSB2YWxpZGF0aW9uIG1ldGFkYXRhLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbn0gVGhlIGNvbnZlcnRlZCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZ2l2ZW4ga2V5IGlzIG5vdCB2YWxpZGF0YWJsZSBieSBhdHRyaWJ1dGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgdG9BdHRyaWJ1dGVWYWx1ZShcbiAgICBrZXk6IHN0cmluZyxcbiAgICB2YWx1ZTogVmFsaWRhdGlvbk1ldGFkYXRhXG4gICk6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4ge1xuICAgIGlmICghT2JqZWN0LmtleXMoVmFsaWRhdGFibGVCeUF0dHJpYnV0ZSkuaW5jbHVkZXMoa2V5KSlcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgYXR0cmlidXRlIGtleSBcIiR7a2V5fVwiLiBFeHBlY3RlZCBvbmUgb2Y6ICR7T2JqZWN0LmtleXMoVmFsaWRhdGFibGVCeUF0dHJpYnV0ZSkuam9pbihcIiwgXCIpfS5gXG4gICAgICApO1xuXG4gICAgcmV0dXJuIGtleSA9PT0gVUlLZXlzLlJFUVVJUkVEID8gdHJ1ZSA6IHZhbHVlW2tleV07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbnZlcnRzIGEgbW9kZWwgdG8gYSBmaWVsZCBkZWZpbml0aW9uLlxuICAgKiBAc3VtbWFyeSBQcm9jZXNzZXMgYSBtb2RlbCBpbnN0YW5jZSwgZXh0cmFjdGluZyBVSS1yZWxhdGVkIG1ldGFkYXRhIGFuZCB2YWxpZGF0aW9uIHJ1bGVzIHRvIGNyZWF0ZSBhIGZpZWxkIGRlZmluaXRpb24uXG4gICAqXG4gICAqIEB0ZW1wbGF0ZSBNIFR5cGUgZXh0ZW5kaW5nIE1vZGVsXG4gICAqIEB0ZW1wbGF0ZSBUIFR5cGUgcmVmZXJlbmNpbmcgdGhlIHNwZWNpZmljIFJlbmRlcmluZyBlbmdpbmUgZmllbGQgcHJvcGVydGllcy9pbnB1dHNcbiAgICogQHBhcmFtIHtNfSBtb2RlbCAtIFRoZSBtb2RlbCBpbnN0YW5jZSB0byBjb252ZXJ0LlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSBbZ2xvYmFsUHJvcHM9e31dIC0gR2xvYmFsIHByb3BlcnRpZXMgdG8gYXBwbHkgdG8gYWxsIGNoaWxkIGVsZW1lbnRzLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtnZW5lcmF0ZUlkPXRydWVdIC0gRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gcG9wdWxhdGUgdGhlIHJlbmRlcmVySWQgcHJvcGVydHkuXG4gICAqIEByZXR1cm5zIHtGaWVsZERlZmluaXRpb248VD59IEEgZmllbGQgZGVmaW5pdGlvbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBVSSBzdHJ1Y3R1cmUgb2YgdGhlIG1vZGVsLlxuICAgKiBAdGhyb3dzIHtSZW5kZXJpbmdFcnJvcn0gSWYgbm8gVUkgZGVmaW5pdGlvbnMgYXJlIHNldCBmb3IgdGhlIG1vZGVsIG9yIGlmIHRoZXJlIGFyZSBpbnZhbGlkIGRlY29yYXRvcnMuXG4gICAqXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgcGFydGljaXBhbnQgQyBhcyBDbGllbnRcbiAgICogIHBhcnRpY2lwYW50IFJFIGFzIFJlbmRlcmluZ0VuZ2luZVxuICAgKiAgcGFydGljaXBhbnQgUiBhcyBSZWZsZWN0aW9uXG4gICAqICBwYXJ0aWNpcGFudCBNIGFzIE1vZGVsXG4gICAqICBDLT4+UkU6IHRvRmllbGREZWZpbml0aW9uKG1vZGVsLCBnbG9iYWxQcm9wcylcbiAgICogIFJFLT4+UjogZ2V0TWV0YWRhdGEoVUlLZXlzLlVJTU9ERUwsIG1vZGVsLmNvbnN0cnVjdG9yKVxuICAgKiAgUi0tPj5SRTogVUlNb2RlbE1ldGFkYXRhXG4gICAqICBSRS0+PlI6IGdldEFsbFByb3BlcnR5RGVjb3JhdG9ycyhtb2RlbCwgVUlLZXlzLlJFRkxFQ1QpXG4gICAqICBSLS0+PlJFOiBSZWNvcmQ8c3RyaW5nLCBEZWNvcmF0b3JNZXRhZGF0YVtdPlxuICAgKiAgUkUtPj5SOiBnZXRBbGxQcm9wZXJ0eURlY29yYXRvcnMobW9kZWwsIFZhbGlkYXRpb25LZXlzLlJFRkxFQ1QpXG4gICAqICBSLS0+PlJFOiBSZWNvcmQ8c3RyaW5nLCBEZWNvcmF0b3JNZXRhZGF0YTxWYWxpZGF0aW9uTWV0YWRhdGE+W10+XG4gICAqICBsb29wIEZvciBlYWNoIHByb3BlcnR5XG4gICAqICAgIFJFLT4+UkU6IFByb2Nlc3MgVUkgZGVjb3JhdG9yc1xuICAgKiAgICBSRS0+PlJFOiBBcHBseSB2YWxpZGF0aW9uIHJ1bGVzXG4gICAqICBlbmRcbiAgICogIFJFLS0+PkM6IEZpZWxkRGVmaW5pdGlvbjxUPlxuICAgKi9cbiAgcHJvdGVjdGVkIHRvRmllbGREZWZpbml0aW9uPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgbW9kZWw6IE0sXG4gICAgZ2xvYmFsUHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge30sXG4gICAgZ2VuZXJhdGVJZDogYm9vbGVhbiA9IHRydWVcbiAgKTogRmllbGREZWZpbml0aW9uPFQ+IHtcbiAgICBjb25zdCB7IGluaGVyaXRQcm9wcywgLi4uZ2xvYmFsUHJvcHNXaXRob3V0SW5oZXJpdHMgfSA9IGdsb2JhbFByb3BzO1xuICAgIGdsb2JhbFByb3BzID0gZ2xvYmFsUHJvcHNXaXRob3V0SW5oZXJpdHM7XG5cbiAgICBjb25zdCBjbGFzc0RlY29yYXRvcnMgPSB0aGlzLmdldENsYXNzRGVjb3JhdG9yc01ldGFkYXRhPE0+KG1vZGVsKTtcblxuICAgIGlmICghY2xhc3NEZWNvcmF0b3JzLmxlbmd0aClcbiAgICAgIHRocm93IG5ldyBSZW5kZXJpbmdFcnJvcihcbiAgICAgICAgYE5vIHVpIGRlZmluaXRpb25zIHNldCBmb3IgbW9kZWwgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfS4gRGlkIHlvdSB1c2UgQHVpbW9kZWw/YFxuICAgICAgKTtcblxuICAgIGNvbnN0IGNsYXNzRGVjb3JhdG9yID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgLi4uY2xhc3NEZWNvcmF0b3JzLFxuICAgICAgaW5oZXJpdFByb3BzID8gaW5oZXJpdFByb3BzIDoge30gLy8gb3ZlcnJpZGUgdGFnIGFuZCBwcm9wZXJ0aWVzIHdoZW4gaXQgaXMgYSBjb21wb25lbnQgdGhhdCBzaG91bGQgaW5oZXJpdCBwcm9wZXJ0aWVzIGZyb20gaXRzIHBhcmVudC5cbiAgICApO1xuICAgIGNvbnN0IHsgdGFnLCBwcm9wcywgaXRlbSwgaGFuZGxlcnMgfSA9IGNsYXNzRGVjb3JhdG9yO1xuXG4gICAgY29uc3QgdWlEZWNvcmF0b3JzID0gTW9kZWwudWlQcm9wZXJ0aWVzT2YoXG4gICAgICBtb2RlbC5jb25zdHJ1Y3RvciBhcyBDb25zdHJ1Y3RvcjxNPlxuICAgICkgYXMgKGtleW9mIE0pW107XG5cbiAgICAvLyBjb25zdCB1aURlY29yYXRvcnM6IFJlY29yZDxzdHJpbmcsIERlY29yYXRvck1ldGFkYXRhW10+ID1cbiAgICAvLyAgIFJlZmxlY3Rpb24uZ2V0QWxsUHJvcGVydHlEZWNvcmF0b3JzKG1vZGVsLCBVSUtleXMuUkVGTEVDVCkgYXMgUmVjb3JkPFxuICAgIC8vICAgICBzdHJpbmcsXG4gICAgLy8gICAgIERlY29yYXRvck1ldGFkYXRhW11cbiAgICAvLyAgID47XG4gICAgbGV0IGNoaWxkcmVuOiBGaWVsZERlZmluaXRpb248UmVjb3JkPHN0cmluZywgYW55Pj5bXSB8IHVuZGVmaW5lZDtcbiAgICBsZXQgY2hpbGRQcm9wczogUmVjb3JkPHN0cmluZywgYW55PiA9IGl0ZW0/LnByb3BzIHx8IHt9O1xuICAgIGxldCBtYXBwZXI6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBjb25zdCBnZXRQYXRoID0gKHBhcmVudDogc3RyaW5nIHwgdW5kZWZpbmVkLCBwcm9wOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBwYXJlbnQgPyBbcGFyZW50LCBwcm9wXS5qb2luKFwiLlwiKSA6IHByb3A7XG4gICAgfTtcblxuICAgIGlmICh1aURlY29yYXRvcnMpIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25EZWNvcmF0b3JzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID1cbiAgICAgICAgTWV0YWRhdGEuZ2V0KFxuICAgICAgICAgIG1vZGVsLmNvbnN0cnVjdG9yIGFzIENvbnN0cnVjdG9yLFxuICAgICAgICAgIFZhbGlkYXRpb25LZXlzLlJFRkxFQ1RcbiAgICAgICAgKSB8fCB7fTtcbiAgICAgIC8vIGNvbnN0IHZhbGlkYXRpb25EZWNvcmF0b3JzOiBSZWNvcmQ8XG4gICAgICAvLyAgIHN0cmluZyxcbiAgICAgIC8vICAgRGVjb3JhdG9yTWV0YWRhdGE8VmFsaWRhdGlvbk1ldGFkYXRhPltdXG4gICAgICAvLyA+ID0gUmVmbGVjdGlvbi5nZXRBbGxQcm9wZXJ0eURlY29yYXRvcnMoXG4gICAgICAvLyAgIG1vZGVsLFxuICAgICAgLy8gICBWYWxpZGF0aW9uS2V5cy5SRUZMRUNUXG4gICAgICAvLyApIGFzIFJlY29yZDxzdHJpbmcsIERlY29yYXRvck1ldGFkYXRhPFZhbGlkYXRpb25NZXRhZGF0YT5bXT47XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiB1aURlY29yYXRvcnMpIHtcbiAgICAgICAgY29uc3QgZGVjcyA9IE1vZGVsLnVpRGVjb3JhdGlvbk9mKFxuICAgICAgICAgIG1vZGVsLmNvbnN0cnVjdG9yIGFzIENvbnN0cnVjdG9yPE0+LFxuICAgICAgICAgIGtleVxuICAgICAgICApO1xuICAgICAgICBsZXQgdHlwZTogYW55O1xuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgICB0eXBlID0gTW9kZWwudWlUeXBlT2YobW9kZWwuY29uc3RydWN0b3IgYXMgQ29uc3RydWN0b3I8TT4sIGtleSk7XG4gICAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgICBpZiAoIShlIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcikpIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc3QgdHlwZXMgPSBPYmplY3QudmFsdWVzKGRlY3MpLmZpbHRlcigoeyBrZXkgfSkgPT5cbiAgICAgICAgLy8gICBbVUlLZXlzLlBST1AsIFVJS2V5cy5FTEVNRU5ULCBVSUtleXMuQ0hJTERdLmluY2x1ZGVzKGtleSlcbiAgICAgICAgLy8gKTtcbiAgICAgICAgLy8gaWYgKCF0eXBlKVxuICAgICAgICAvLyAgIHRocm93IG5ldyBSZW5kZXJpbmdFcnJvcihcbiAgICAgICAgLy8gICAgIGBPbmx5IG9uZSB0eXBlIG9mIGRlY29yYXRpb24gaXMgYWxsb3dlZC4gUGxlYXNlIGNob29zZSBiZXR3ZWVuIEB1aXByb3AsIEB1aWNoaWxkIG9yIEB1aWVsZW1lbnRgXG4gICAgICAgIC8vICAgKTtcbiAgICAgICAgY29uc3QgaGFzSGlkZU9uRGVjb3JhdG9yID0gTW9kZWwudWlJc0hpZGRlbihcbiAgICAgICAgICBtb2RlbC5jb25zdHJ1Y3RvciBhcyBDb25zdHJ1Y3RvcjxNPixcbiAgICAgICAgICBrZXlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGhhc0hpZGVPbkRlY29yYXRvcikge1xuICAgICAgICAgIGNvbnN0IGhhc1VpRWxlbWVudERlY29yYXRvciA9IE1vZGVsLnVpRWxlbWVudE9mKFxuICAgICAgICAgICAgbW9kZWwuY29uc3RydWN0b3IgYXMgQ29uc3RydWN0b3I8TT4sXG4gICAgICAgICAgICBrZXlcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmICghaGFzVWlFbGVtZW50RGVjb3JhdG9yKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFJlbmRlcmluZ0Vycm9yKFxuICAgICAgICAgICAgICBgQHVpZWxlbWVudCBubyBmb3VuZCBpbiBcIiR7a2V5IGFzIHN0cmluZ31cIi4gSXQgaXMgcmVxdWlyZWQgdG8gdXNlIGhpZGRlbk9uIGRlY29yYXRvci5gXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNvcnRlZCA9IE9iamVjdC5lbnRyaWVzKGRlY3MpXG4gICAgICAgICAgLm1hcCgoW2ssIHZdKSA9PiAoe1xuICAgICAgICAgICAga2V5OiBrLFxuICAgICAgICAgICAgcHJvcHM6IHYsXG4gICAgICAgICAgfSkpXG4gICAgICAgICAgLnNvcnQoKGEpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBbVUlLZXlzLkVMRU1FTlQsIFVJS2V5cy5DSElMRF0uaW5jbHVkZXMoYS5rZXkpID8gLTEgOiAxO1xuICAgICAgICAgIH0pO1xuICAgICAgICBzb3J0ZWQuZm9yRWFjaCgoZGVjKSA9PiB7XG4gICAgICAgICAgaWYgKCFkZWMpIHRocm93IG5ldyBSZW5kZXJpbmdFcnJvcihgTm8gZGVjb3JhdG9yIGZvdW5kYCk7XG5cbiAgICAgICAgICBzd2l0Y2ggKGRlYy5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgVUlLZXlzLlBST1A6IHtcbiAgICAgICAgICAgICAgY2hpbGRQcm9wc1trZXkgYXMgYW55XSA9IGRlYy5wcm9wcyBhcyBVSVByb3BNZXRhZGF0YTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFVJS2V5cy5DSElMRDoge1xuICAgICAgICAgICAgICBjb25zdCBtb2RlbE5hbWUgPVxuICAgICAgICAgICAgICAgIChkZWMucHJvcHMgYXMgVUlNb2RlbE1ldGFkYXRhKT8ucHJvcHM/Lm5hbWUgfHwgKGtleSBhcyBzdHJpbmcpO1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzUHJvcGVydHlNb2RlbCA9XG4gICAgICAgICAgICAgICAgICBNb2RlbC5pc01vZGVsKE1vZGVsLmJ1aWxkKHt9LCBtb2RlbE5hbWUpKSB8fFxuICAgICAgICAgICAgICAgICAgTW9kZWwuaXNQcm9wZXJ0eU1vZGVsKG1vZGVsLCBtb2RlbE5hbWUpO1xuICAgICAgICAgICAgICAgIGlmICghaXNQcm9wZXJ0eU1vZGVsKVxuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJlbmRlcmluZ0Vycm9yKFxuICAgICAgICAgICAgICAgICAgICBgQ2hpbGQgXCIke21vZGVsTmFtZSBhcyBzdHJpbmd9XCIgbXVzdCBiZSBhIG1vZGVsLmBcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJlbmRlcmluZ0Vycm9yKFxuICAgICAgICAgICAgICAgICAgYENoaWxkIFwiJHttb2RlbE5hbWUgYXMgc3RyaW5nfVwiIG11c3QgYmUgYSBtb2RlbC5gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGxldCBDbGF6ejtcbiAgICAgICAgICAgICAgY29uc3Qgc3VibW9kZWwgPSAobW9kZWwgYXMgUmVjb3JkPHN0cmluZywgYW55PilbXG4gICAgICAgICAgICAgICAga2V5IGFzIGFueVxuICAgICAgICAgICAgICBdIGFzIE1vZGVsO1xuICAgICAgICAgICAgICBjb25zdCBjb25zdHJ1Y3RhYmxlID1cbiAgICAgICAgICAgICAgICB0eXBlb2Ygc3VibW9kZWwgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgICAgICAgICBzdWJtb2RlbCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgICFBcnJheS5pc0FycmF5KHN1Ym1vZGVsKTtcbiAgICAgICAgICAgICAgLy8gY3JlYXRlIGluc3RhbmNlIGlmIHVuZGVmaW5lZFxuICAgICAgICAgICAgICBpZiAoIWNvbnN0cnVjdGFibGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGF6ek5hbWUgPSAoXG4gICAgICAgICAgICAgICAgICAoZGVjLnByb3BzIGFzIGFueSkucHJvcHMgYXMgUmVjb3JkPHN0cmluZywgYW55PlxuICAgICAgICAgICAgICAgICk/Lm5hbWUgYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgIENsYXp6ID0gbmV3IChNb2RlbC5nZXQoY2xhenpOYW1lKSBhcyBNb2RlbENvbnN0cnVjdG9yPE1vZGVsPikoKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW4gfHwgW107XG4gICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuR2xvYmFsUHJvcHMgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICAgIGdsb2JhbFByb3BzIHx8IHt9LFxuICAgICAgICAgICAgICAgIHsgbW9kZWw6IENsYXp6IH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaW5oZXJpdFByb3BzOiBkZWMucHJvcHMgYXMgVUlNb2RlbE1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgY2hpbGRPZjogZ2V0UGF0aChcbiAgICAgICAgICAgICAgICAgICAgZ2xvYmFsUHJvcHM/LmNoaWxkT2YgYXMgc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICBrZXkgYXMgc3RyaW5nXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY29uc3QgY2hpbGREZWZpbml0aW9uID0gdGhpcy50b0ZpZWxkRGVmaW5pdGlvbihcbiAgICAgICAgICAgICAgICBzdWJtb2RlbCB8fCBDbGF6eiwgLy8gTXVzdCBhdm9pZCB1bmRlZmluZWQgdmFsdWVzIOKAlCBhbiBpbnN0YW5jZSBpcyByZXF1aXJlZCB0byByZXRyaWV2ZSBwcm9wZXJ0aWVzLlxuICAgICAgICAgICAgICAgIGNoaWxkcmVuR2xvYmFsUHJvcHMsXG4gICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY29uc3QgeyBpbmhlcml0UHJvcHMgfSA9IGNoaWxkcmVuR2xvYmFsUHJvcHM7XG4gICAgICAgICAgICAgIGlmIChpbmhlcml0UHJvcHMpXG4gICAgICAgICAgICAgICAgY2hpbGREZWZpbml0aW9uLnByb3BzID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICAgICAgY2hpbGREZWZpbml0aW9uLnByb3BzLFxuICAgICAgICAgICAgICAgICAgaW5oZXJpdFByb3BzLnByb3BzIHx8IHt9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChcbiAgICAgICAgICAgICAgICBjaGlsZERlZmluaXRpb24gYXMgRmllbGREZWZpbml0aW9uPFJlY29yZDxzdHJpbmcsIGFueT4+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBVSUtleXMuVUlMSVNUUFJPUDoge1xuICAgICAgICAgICAgICBtYXBwZXIgPSBtYXBwZXIgfHwge307XG4gICAgICAgICAgICAgIGNvbnN0IGRlY1Byb3BzID0gZGVjLnByb3BzIGFzIFVJTGlzdFByb3BNZXRhZGF0YTtcbiAgICAgICAgICAgICAgaWYgKGRlY1Byb3BzLm5hbWUpXG4gICAgICAgICAgICAgICAgbWFwcGVyW2RlY1Byb3BzLm5hbWVdID1cbiAgICAgICAgICAgICAgICAgIHR5cGVvZiBkZWNQcm9wcz8ucHJvcHMgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgICAgICAgICAgIFVJS2V5cy5TRVFVRU5DRSBpbiBkZWNQcm9wcy5wcm9wc1xuICAgICAgICAgICAgICAgICAgICA/IGRlY1Byb3BzLnByb3BzXG4gICAgICAgICAgICAgICAgICAgIDoga2V5O1xuXG4gICAgICAgICAgICAgIGNvbnN0IHByb3BzID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgICBjbGFzc0RlY29yYXRvci5wcm9wcz8uaXRlbSB8fCB7fSxcbiAgICAgICAgICAgICAgICBpdGVtPy5wcm9wcyB8fCB7fSxcbiAgICAgICAgICAgICAgICBkZWNQcm9wcz8ucHJvcHMgfHwge30sXG4gICAgICAgICAgICAgICAgZ2xvYmFsUHJvcHNcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY2hpbGRQcm9wcyA9IHtcbiAgICAgICAgICAgICAgICB0YWc6IGl0ZW0/LnRhZyB8fCBwcm9wcy5yZW5kZXIgfHwgXCJcIixcbiAgICAgICAgICAgICAgICBwcm9wczogT2JqZWN0LmFzc2lnbih7fSwgY2hpbGRQcm9wcz8ucHJvcHMsIHsgbWFwcGVyIH0sIHByb3BzKSxcbiAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVUlLZXlzLkVWRU5UUzpcbiAgICAgICAgICAgIGNhc2UgVUlLZXlzLkhJRERFTjpcbiAgICAgICAgICAgIGNhc2UgVUlLZXlzLkhJREVfRk9SOlxuICAgICAgICAgICAgY2FzZSBVSUtleXMuU0hPV19GT1I6XG4gICAgICAgICAgICBjYXNlIFVJS2V5cy5QQUdFOlxuICAgICAgICAgICAgY2FzZSBVSUtleXMuT1JERVI6XG4gICAgICAgICAgICBjYXNlIFVJS2V5cy5VSUxBWU9VVFBST1A6XG4gICAgICAgICAgICBjYXNlIFVJS2V5cy5FTEVNRU5UOiB7XG4gICAgICAgICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW4gfHwgW107XG4gICAgICAgICAgICAgIGNvbnN0IHVpUHJvcHM6IFVJRWxlbWVudE1ldGFkYXRhID0gZGVjLnByb3BzIGFzIFVJRWxlbWVudE1ldGFkYXRhO1xuICAgICAgICAgICAgICBjb25zdCB2aXNpYmlsaXR5UHJvcHMgPVxuICAgICAgICAgICAgICAgIGRlYy5rZXkgPT09IFVJS2V5cy5ISURFX0ZPUlxuICAgICAgICAgICAgICAgICAgPyB7IGhpZGVGb3I6IGRlYy5wcm9wcyBhcyBzdHJpbmdbXSB9XG4gICAgICAgICAgICAgICAgICA6IGRlYy5rZXkgPT09IFVJS2V5cy5TSE9XX0ZPUlxuICAgICAgICAgICAgICAgICAgICA/IHsgc2hvd0ZvcjogZGVjLnByb3BzIGFzIHN0cmluZ1tdIH1cbiAgICAgICAgICAgICAgICAgICAgOiB7fTtcbiAgICAgICAgICAgICAgY29uc3QgcHJvcHMgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICAgIGNoaWxkUHJvcHM/LnByb3BzLFxuICAgICAgICAgICAgICAgIHVpUHJvcHMucHJvcHMgfHwge30sXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eVByb3BzLFxuICAgICAgICAgICAgICAgIHVpUHJvcHM/LnByb3BzPy5uYW1lXG4gICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBnZXRQYXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsUHJvcHM/LmNoaWxkT2YgYXMgc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgdWlQcm9wcy5wcm9wcyEubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgY2hpbGRPZjogdW5kZWZpbmVkLCAvLyBUaGUgY2hpbGRPZiBwcm9wIGlzIHBhc3NlZCBieSBnbG9iYWxQcm9wcyB3aGVuIGl0IGlzIGEgbmVzdGVkIHByb3BcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgOiB7fSxcbiAgICAgICAgICAgICAgICBnbG9iYWxQcm9wcyxcbiAgICAgICAgICAgICAgICB7IG5hbWU6IHVpUHJvcHMucHJvcHM/Lm5hbWUgfHwga2V5IH1cbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICBpZiAoZGVjLmtleSA9PT0gVUlLZXlzLkVMRU1FTlQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZERlZmluaXRpb246IEZpZWxkRGVmaW5pdGlvbjxSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHtcbiAgICAgICAgICAgICAgICAgIHRhZzogdWlQcm9wcy50YWcgfHwgY2hpbGRQcm9wcz8udGFnIHx8IHRhZyB8fCBcIlwiLFxuICAgICAgICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uRGVjcyA9IHZhbGlkYXRpb25EZWNvcmF0b3JzW1xuICAgICAgICAgICAgICAgICAga2V5IGFzIGFueVxuICAgICAgICAgICAgICAgIF0gYXMgVmFsaWRhdGlvbk1ldGFkYXRhW107XG4gICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRpb25EZWNzKSB7XG4gICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGRlYyBvZiBPYmplY3QuZW50cmllcyh2YWxpZGF0aW9uRGVjcykubWFwKFxuICAgICAgICAgICAgICAgICAgICAoW2ssIHZdKSA9PiAoeyBrZXk6IGssIHByb3BzOiB2IH0pXG4gICAgICAgICAgICAgICAgICApKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzVmFsaWRhdGFibGVCeUF0dHJpYnV0ZShkZWMua2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgIGNoaWxkRGVmaW5pdGlvbi5wcm9wc1t0aGlzLnRyYW5zbGF0ZShkZWMua2V5KV0gPVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b0F0dHJpYnV0ZVZhbHVlKGRlYy5rZXksIGRlYy5wcm9wcyk7XG4gICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNWYWxpZGF0YWJsZUJ5VHlwZShkZWMua2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChkZWMua2V5ID09PSBIVE1MNUlucHV0VHlwZXMuREFURSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGREZWZpbml0aW9uLnByb3BzW1VJS2V5cy5GT1JNQVRdID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjLnByb3BzLmZvcm1hdCB8fCBIVE1MNURhdGVGb3JtYXQ7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIGNoaWxkRGVmaW5pdGlvbi5wcm9wc1tVSUtleXMuVFlQRV0gPSBkZWMua2V5O1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQ3VzdG9tVmFsaWRhdG9yKGRlYy5rZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgcHJvcHNbVUlLZXlzLlNVQl9UWVBFXSA9IGRlYy5rZXk7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGRlYy5wcm9wcz8ubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHNbVUlLZXlzLlZBTElEQVRJT05fTUVTU0FHRV0gPSBkZWMucHJvcHMubWVzc2FnZTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIWNoaWxkRGVmaW5pdGlvbi5wcm9wc1tVSUtleXMuVFlQRV0pIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGJhc2ljVHlwZSA9IE1ldGFkYXRhLnR5cGUoXG4gICAgICAgICAgICAgICAgICAgIG1vZGVsLmNvbnN0cnVjdG9yIGFzIENvbnN0cnVjdG9yLFxuICAgICAgICAgICAgICAgICAgICBrZXkgYXMgc3RyaW5nXG4gICAgICAgICAgICAgICAgICApLm5hbWU7XG4gICAgICAgICAgICAgICAgICBjaGlsZERlZmluaXRpb24ucHJvcHNbVUlLZXlzLlRZUEVdID0gdGhpcy50cmFuc2xhdGUoXG4gICAgICAgICAgICAgICAgICAgIGJhc2ljVHlwZS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNoaWxkRGVmaW5pdGlvbi5wcm9wcy52YWx1ZSA9IGZvcm1hdEJ5VHlwZShcbiAgICAgICAgICAgICAgICAgIGNoaWxkRGVmaW5pdGlvbi5wcm9wc1tVSUtleXMuVFlQRV0sXG4gICAgICAgICAgICAgICAgICBtb2RlbFtrZXkgYXMga2V5b2YgTV0sXG4gICAgICAgICAgICAgICAgICBjaGlsZERlZmluaXRpb24ucHJvcHNbVUlLZXlzLkZPUk1BVF1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goY2hpbGREZWZpbml0aW9uKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc3QgY2hpbGQgPSBjaGlsZHJlbi5maW5kKFxuICAgICAgICAgICAgICAgIChjKSA9PlxuICAgICAgICAgICAgICAgICAgYy5wcm9wcz8ubmFtZSA9PT0ga2V5IHx8XG4gICAgICAgICAgICAgICAgICAoW1VJS2V5cy5VSUxBWU9VVFBST1AsIFVJS2V5cy5QQUdFLCBVSUtleXMuRVZFTlRTXS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgZGVjLmtleVxuICAgICAgICAgICAgICAgICAgKSAmJlxuICAgICAgICAgICAgICAgICAgICAoYy5wcm9wcz8uY2hpbGRPZiA9PT0ga2V5IHx8XG4gICAgICAgICAgICAgICAgICAgICAgYy5wcm9wcz8uY2hpbGRPZj8uZW5kc1dpdGgoYC4ke2tleSBhcyBzdHJpbmd9YCkpKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAoY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgZGVjLmtleSA9PT0gVUlLZXlzLkhJREVfRk9SIHx8XG4gICAgICAgICAgICAgICAgICAgIGRlYy5rZXkgPT09IFVJS2V5cy5TSE9XX0ZPUlxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkLnByb3BzID0gT2JqZWN0LmFzc2lnbih7fSwgY2hpbGQucHJvcHMsIHZpc2liaWxpdHlQcm9wcyk7XG4gICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRlYy5rZXkgIT09IFVJS2V5cy5VSUxBWU9VVFBST1ApIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQucHJvcHMgPSBPYmplY3QuYXNzaWduKHt9LCBjaGlsZC5wcm9wcywge1xuICAgICAgICAgICAgICAgICAgICAgIFtkZWMua2V5XTogdWlQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHJvdywgY29sLCBwcm9wcyB9ID0gZGVjLnByb3BzIGFzIGFueTtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQucHJvcHMgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BzIHx8IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLnByb3BzLFxuICAgICAgICAgICAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICB0aHJvdyBuZXcgUmVuZGVyaW5nRXJyb3IoYEludmFsaWQga2V5OiAke2RlYy5rZXl9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBnbG9iYWxQcm9wcyA9IE9iamVjdC5hc3NpZ24oe30sIHByb3BzLCBnbG9iYWxQcm9wcywge1xuICAgICAgaGFuZGxlcnM6IGhhbmRsZXJzIHx8IHt9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgY3VycmVudE5hbWVzcGFjZXMgPSBuZXcgU2V0KFxuICAgICAgW1xuICAgICAgICAuLi4oQXJyYXkuaXNBcnJheShnbG9iYWxQcm9wcz8ubmFtZXNwYWNlcylcbiAgICAgICAgICA/IChnbG9iYWxQcm9wcy5uYW1lc3BhY2VzIGFzIHN0cmluZ1tdKVxuICAgICAgICAgIDogW10pLFxuICAgICAgICAuLi4odHlwZW9mIGdsb2JhbFByb3BzPy5uYW1lc3BhY2UgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IFtnbG9iYWxQcm9wcy5uYW1lc3BhY2UgYXMgc3RyaW5nXVxuICAgICAgICAgIDogW10pLFxuICAgICAgXS5maWx0ZXIoQm9vbGVhbilcbiAgICApO1xuICAgIGNvbnN0IG9wZXJhdGlvbiA9IGdsb2JhbFByb3BzPy5vcGVyYXRpb247XG4gICAgY2hpbGRyZW4gPSB0aGlzLnNvcnRDaGlsZHJlbkJ5T3JkZXIoY2hpbGRyZW4pLmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgaGlkZGVuT24gPSAoaXRlbT8ucHJvcHM/LmhpZGRlbiBhcyBDcnVkT3BlcmF0aW9uS2V5c1tdKSB8fCBbXTtcbiAgICAgIGlmIChcbiAgICAgICAgaGlkZGVuT24ubGVuZ3RoID4gMCAmJlxuICAgICAgICBoaWRkZW5Pbi5pbmNsdWRlcyhvcGVyYXRpb24gYXMgQ3J1ZE9wZXJhdGlvbktleXMpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBoaWRlRm9yID0gKGl0ZW0/LnByb3BzPy5oaWRlRm9yIGFzIHN0cmluZ1tdKSB8fCBbXTtcbiAgICAgIGNvbnN0IHNob3dGb3IgPSAoaXRlbT8ucHJvcHM/LnNob3dGb3IgYXMgc3RyaW5nW10pIHx8IFtdO1xuICAgICAgaWYgKFxuICAgICAgICBoaWRlRm9yLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgWy4uLmN1cnJlbnROYW1lc3BhY2VzXS5zb21lKChuYW1lc3BhY2UpID0+IGhpZGVGb3IuaW5jbHVkZXMobmFtZXNwYWNlKSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIHNob3dGb3IubGVuZ3RoID4gMCAmJlxuICAgICAgICAhWy4uLmN1cnJlbnROYW1lc3BhY2VzXS5zb21lKChuYW1lc3BhY2UpID0+IHNob3dGb3IuaW5jbHVkZXMobmFtZXNwYWNlKSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgICBjb25zdCByZXN1bHQ6IEZpZWxkRGVmaW5pdGlvbjxUPiA9IHtcbiAgICAgIHRhZzogdGFnLFxuICAgICAgaXRlbTogY2hpbGRQcm9wcyBhcyBVSUxpc3RJdGVtRWxlbWVudE1ldGFkYXRhLFxuICAgICAgcHJvcHM6IGdsb2JhbFByb3BzIGFzIFQgJiBGaWVsZFByb3BlcnRpZXMgJiBJUGFnZWRDb21wb25lbnRQcm9wZXJ0aWVzLFxuICAgICAgY2hpbGRyZW46IGNoaWxkcmVuPy5sZW5ndGhcbiAgICAgICAgPyAoY2hpbGRyZW4gYXMgRmllbGREZWZpbml0aW9uPGFueT5bXSlcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfTtcblxuICAgIGlmIChnZW5lcmF0ZUlkKSByZXN1bHQucmVuZGVyZXJJZCA9IGdlbmVyYXRlVUlNb2RlbElEKG1vZGVsKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZW5kZXJzIGEgbW9kZWwgd2l0aCBnbG9iYWwgcHJvcGVydGllcyBhbmQgYWRkaXRpb25hbCBhcmd1bWVudHMuXG4gICAqIEBzdW1tYXJ5IEFic3RyYWN0IG1ldGhvZCB0byBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIHRvIGRlZmluZSBzcGVjaWZpYyByZW5kZXJpbmcgYmVoYXZpb3IuXG4gICAqXG4gICAqIEB0ZW1wbGF0ZSBNIFR5cGUgZXh0ZW5kaW5nIE1vZGVsXG4gICAqIEB0ZW1wbGF0ZSBSIFJlbmRlcmluZyBlbmdpbmUgaW1wbGVtZW50YXRpb24gc3BlY2lmaWMgb3V0cHV0IHR5cGVcbiAgICogQHBhcmFtIHtNfSBtb2RlbCAtIFRoZSBtb2RlbCB0byBiZSByZW5kZXJlZC5cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gZ2xvYmFsUHJvcHMgLSBHbG9iYWwgcHJvcGVydGllcyB0byBiZSBhcHBsaWVkIHRvIGFsbCBlbGVtZW50cyBkdXJpbmcgcmVuZGVyaW5nLlxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMgdGhhdCBtYXkgYmUgcmVxdWlyZWQgZm9yIHNwZWNpZmljIHJlbmRlcmluZyBpbXBsZW1lbnRhdGlvbnMuXG4gICAqIEByZXR1cm5zIHtSfSBUaGUgcmVuZGVyZWQgcmVzdWx0LCB0eXBlIGRlcGVuZHMgb24gdGhlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uLlxuICAgKlxuICAgKiBAYWJzdHJhY3RcbiAgICovXG4gIGFic3RyYWN0IHJlbmRlcjxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIG1vZGVsOiBNLFxuICAgIGdsb2JhbFByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBSO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVnaXN0ZXJzIGEgcmVuZGVyaW5nIGVuZ2luZSBpbnN0YW5jZS5cbiAgICogQHN1bW1hcnkgQWRkcyBhIHJlbmRlcmluZyBlbmdpbmUgdG8gdGhlIHN0YXRpYyBjYWNoZSBhbmQgc2V0cyBpdCBhcyB0aGUgY3VycmVudCBlbmdpbmUuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVuZGVyaW5nRW5naW5lPHVua25vd24sIHVua25vd24+fSBlbmdpbmUgLSBUaGUgcmVuZGVyaW5nIGVuZ2luZSB0byByZWdpc3Rlci5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gSWYgYW4gZW5naW5lIHdpdGggdGhlIHNhbWUgZmxhdm9yIGFscmVhZHkgZXhpc3RzLlxuICAgKlxuICAgKiBAc3RhdGljXG4gICAqL1xuICBzdGF0aWMgcmVnaXN0ZXIoZW5naW5lOiBSZW5kZXJpbmdFbmdpbmU8dW5rbm93biwgdW5rbm93bj4pIHtcbiAgICBpZiAoZW5naW5lLmZsYXZvdXIgaW4gdGhpcy5jYWNoZSlcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgUmVuZGVyaW5nIGVuZ2luZSB1bmRlciAke2VuZ2luZS5mbGF2b3VyfSBhbHJlYWR5IGV4aXN0c2BcbiAgICAgICk7XG4gICAgdGhpcy5jYWNoZVtlbmdpbmUuZmxhdm91cl0gPSBlbmdpbmU7XG4gICAgdGhpcy5jdXJyZW50ID0gZW5naW5lO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgb3IgaW5pdGlhbGl6ZXMgYSByZW5kZXJpbmcgZW5naW5lLlxuICAgKiBAc3VtbWFyeSBHZXRzIGFuIGV4aXN0aW5nIGVuZ2luZSBpbnN0YW5jZSBvciBjcmVhdGVzIGFuZCBpbml0aWFsaXplcyBhIG5ldyBvbmUgaWYgZ2l2ZW4gYSBjb25zdHJ1Y3Rvci5cbiAgICpcbiAgICogQHRlbXBsYXRlIE8gVGhlIHR5cGUgb2YgdGhlIHJlbmRlcmluZyBlbmdpbmUgb3V0cHV0XG4gICAqIEBwYXJhbSB7Q29uc3RydWN0b3I8UmVuZGVyaW5nRW5naW5lPE8+PiB8IFJlbmRlcmluZ0VuZ2luZTxPPn0gb2JqIC0gVGhlIGVuZ2luZSBpbnN0YW5jZSBvciBjb25zdHJ1Y3Rvci5cbiAgICogQHJldHVybnMge1JlbmRlcmluZ0VuZ2luZTxPPn0gVGhlIGluaXRpYWxpemVkIHJlbmRlcmluZyBlbmdpbmUuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBzdGF0aWNcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGdldE9yQm9vdDxPPihcbiAgICBvYmo6IENvbnN0cnVjdG9yPFJlbmRlcmluZ0VuZ2luZTxPPj4gfCBSZW5kZXJpbmdFbmdpbmU8Tz5cbiAgKTogUmVuZGVyaW5nRW5naW5lPE8+IHtcbiAgICBpZiAob2JqIGluc3RhbmNlb2YgUmVuZGVyaW5nRW5naW5lKSByZXR1cm4gb2JqIGFzIFJlbmRlcmluZ0VuZ2luZTxPPjtcbiAgICBjb25zdCBlbmdpbmU6IFJlbmRlcmluZ0VuZ2luZTxPPiA9IG5ldyBvYmooKTtcbiAgICBlbmdpbmUuaW5pdGlhbGl6ZSgpOyAvLyBtYWtlIHRoZSBib290aW5nIGFzeW5jLiB1c2UgdGhlIGluaXRpYWxpemVkIGZsYWcgdG8gY29udHJvbCBpdFxuICAgIHJldHVybiBlbmdpbmUgYXMgUmVuZGVyaW5nRW5naW5lPE8+O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgYSByZW5kZXJpbmcgZW5naW5lIGJ5IGZsYXZvci5cbiAgICogQHN1bW1hcnkgR2V0cyB0aGUgY3VycmVudCByZW5kZXJpbmcgZW5naW5lIG9yIGEgc3BlY2lmaWMgb25lIGJ5IGZsYXZvci5cbiAgICpcbiAgICogQHRlbXBsYXRlIE8gVGhlIHR5cGUgb2YgdGhlIHJlbmRlcmluZyBlbmdpbmUgb3V0cHV0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbZmxhdm91cl0gLSBUaGUgZmxhdm9yIG9mIHRoZSByZW5kZXJpbmcgZW5naW5lIHRvIHJldHJpZXZlLlxuICAgKiBAcmV0dXJucyB7UmVuZGVyaW5nRW5naW5lPE8+fSBUaGUgcmVxdWVzdGVkIHJlbmRlcmluZyBlbmdpbmUuXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IElmIHRoZSByZXF1ZXN0ZWQgZmxhdm9yIGRvZXMgbm90IGV4aXN0LlxuICAgKlxuICAgKiBAc3RhdGljXG4gICAqL1xuICBzdGF0aWMgZ2V0PE8+KGZsYXZvdXI/OiBzdHJpbmcpOiBSZW5kZXJpbmdFbmdpbmU8Tz4ge1xuICAgIGlmICghZmxhdm91cilcbiAgICAgIHJldHVybiB0aGlzLmdldE9yQm9vdDxPPihcbiAgICAgICAgdGhpcy5jdXJyZW50IGFzIENvbnN0cnVjdG9yPFJlbmRlcmluZ0VuZ2luZTxPPj4gfCBSZW5kZXJpbmdFbmdpbmU8Tz5cbiAgICAgICk7XG4gICAgaWYgKCEoZmxhdm91ciBpbiB0aGlzLmNhY2hlKSlcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgUmVuZGVyaW5nIGVuZ2luZSB1bmRlciAke2ZsYXZvdXJ9IGRvZXMgbm90IGV4aXN0YFxuICAgICAgKTtcbiAgICByZXR1cm4gdGhpcy5nZXRPckJvb3Q8Tz4oXG4gICAgICB0aGlzLmNhY2hlW2ZsYXZvdXJdIGFzXG4gICAgICAgIHwgQ29uc3RydWN0b3I8UmVuZGVyaW5nRW5naW5lPE8+PlxuICAgICAgICB8IFJlbmRlcmluZ0VuZ2luZTxPPlxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlbmRlcnMgYSBtb2RlbCB1c2luZyB0aGUgYXBwcm9wcmlhdGUgcmVuZGVyaW5nIGVuZ2luZS5cbiAgICogQHN1bW1hcnkgRGV0ZXJtaW5lcyB0aGUgY29ycmVjdCByZW5kZXJpbmcgZW5naW5lIGZvciBhIG1vZGVsIGFuZCBpbnZva2VzIGl0cyByZW5kZXIgbWV0aG9kLlxuICAgKlxuICAgKiBAdGVtcGxhdGUgTSBUeXBlIGV4dGVuZGluZyBNb2RlbFxuICAgKiBAcGFyYW0ge019IG1vZGVsIC0gVGhlIG1vZGVsIHRvIHJlbmRlci5cbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIHJlbmRlciBtZXRob2QuXG4gICAqIEByZXR1cm5zIHthbnl9IFRoZSByZXN1bHQgb2YgdGhlIHJlbmRlcmluZyBwcm9jZXNzLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBJZiBubyByZWdpc3RlcmVkIG1vZGVsIGlzIGZvdW5kLlxuICAgKlxuICAgKiBAc3RhdGljXG4gICAqL1xuICBzdGF0aWMgcmVuZGVyPE0gZXh0ZW5kcyBNb2RlbD4obW9kZWw6IE0sIC4uLmFyZ3M6IGFueVtdKTogYW55IHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvciA9XG4gICAgICBNb2RlbC5nZXQobW9kZWwuY29uc3RydWN0b3IubmFtZSkgfHwgTW9kZWwuZnJvbU9iamVjdChtb2RlbCk7XG4gICAgaWYgKCFjb25zdHJ1Y3RvcikgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJObyBtb2RlbCByZWdpc3RlcmVkIGZvdW5kXCIpO1xuICAgIGNvbnN0IGZsYXZvdXIgPSBNb2RlbC5yZW5kZXJlZEJ5KG1vZGVsLmNvbnN0cnVjdG9yIGFzIENvbnN0cnVjdG9yPE0+KTtcblxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZm9yIHRoZSB2YXIgYXJncyB0eXBlIGNoZWNrXG4gICAgcmV0dXJuIFJlbmRlcmluZ0VuZ2luZS5nZXQoZmxhdm91cikucmVuZGVyKG1vZGVsLCAuLi5hcmdzKTtcbiAgfVxufVxuLy9cbi8vIERlY29yYXRpb24uZm9yKERCS2V5cy5JRClcbi8vICAgLmV4dGVuZCh7XG4vLyAgICAgZGVjb3JhdG9yOiBmdW5jdGlvbiBwayhvcHRpb25zOiB7IGdlbmVyYXRlZDogYm9vbGVhbiB9KSB7XG4vLyAgICAgICByZXR1cm4gZnVuY3Rpb24gaW5uZXJQayh0YXJnZXQ6IG9iamVjdCwgcHJvcGVydHlLZXk/OiBhbnkpIHtcbi8vICAgICAgICAgaWYgKG9wdGlvbnMuZ2VuZXJhdGVkKVxuLy8gICAgICAgICAgIGhpZGVPbihPcGVyYXRpb25LZXlzLkNSRUFURSwgT3BlcmF0aW9uS2V5cy5VUERBVEUpKFxuLy8gICAgICAgICAgICAgdGFyZ2V0LFxuLy8gICAgICAgICAgICAgcHJvcGVydHlLZXlcbi8vICAgICAgICAgICApO1xuLy8gICAgICAgfTtcbi8vICAgICB9LFxuLy8gICB9KVxuLy8gICAuYXBwbHkoKTtcbi8vXG4vLyBEZWNvcmF0aW9uLmZvcihEQktleXMuVElNRVNUQU1QKVxuLy8gICAuZXh0ZW5kKHtcbi8vICAgICBkZWNvcmF0b3I6IGZ1bmN0aW9uIHRpbWVzdGFtcChvcHM6IE9wZXJhdGlvbktleXNbXSkge1xuLy8gICAgICAgcmV0dXJuIGhpZGVPbiguLi4ob3BzIGFzIGFueVtdKSk7XG4vLyAgICAgfSxcbi8vICAgfSlcbi8vICAgLmFwcGx5KCk7XG4vL1xuLy8gRGVjb3JhdGlvbi5mb3IoREJLZXlzLkNPTVBPU0VEKVxuLy8gICAuZXh0ZW5kKHtcbi8vICAgICBkZWNvcmF0b3I6IGZ1bmN0aW9uIGNvbXBvc2VkKCkge1xuLy8gICAgICAgcmV0dXJuIGhpZGVPbihPcGVyYXRpb25LZXlzLkNSRUFURSwgT3BlcmF0aW9uS2V5cy5VUERBVEUpO1xuLy8gICAgIH0sXG4vLyAgIH0pXG4vLyAgIC5hcHBseSgpO1xuLy9cbi8vIERlY29yYXRpb24uZm9yKFwiY3JlYXRlZEJ5XCIpXG4vLyAgIC5leHRlbmQoe1xuLy8gICAgIGRlY29yYXRvcjogZnVuY3Rpb24gY3JlYXRlZEJ5KCkge1xuLy8gICAgICAgcmV0dXJuIGhpZGVPbihPcGVyYXRpb25LZXlzLkNSRUFURSwgT3BlcmF0aW9uS2V5cy5VUERBVEUpO1xuLy8gICAgIH0sXG4vLyAgIH0pXG4vLyAgIC5hcHBseSgpO1xuLy9cbi8vIERlY29yYXRpb24uZm9yKFwidXBkYXRlZEJ5XCIpXG4vLyAgIC5leHRlbmQoe1xuLy8gICAgIGRlY29yYXRvcjogZnVuY3Rpb24gY3JlYXRlZEJ5KCkge1xuLy8gICAgICAgcmV0dXJuIGhpZGVPbihPcGVyYXRpb25LZXlzLkNSRUFURSwgT3BlcmF0aW9uS2V5cy5VUERBVEUpO1xuLy8gICAgIH0sXG4vLyAgIH0pXG4vLyAgIC5hcHBseSgpO1xuIl19
578
+ //# sourceMappingURL=Rendering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rendering.js","sourceRoot":"","sources":["../../../src/ui/Rendering.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,4 @@ export class UIValidator extends Validator {
6
6
  return super.getMessage(message, ...args);
7
7
  }
8
8
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVUlWYWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdWkvVUlWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzNELE1BQU0sT0FBZ0IsV0FBWSxTQUFRLFNBQVM7SUFHeEMsVUFBVSxDQUFDLE9BQWUsRUFBRSxHQUFHLElBQVc7UUFDakQsSUFBSSxXQUFXLENBQUMsZ0JBQWdCO1lBQzlCLE9BQU8sV0FBVyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNsRSxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgRGVjYWZUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIi4vRGVjYWZUcmFuc2xhdGVTZXJ2aWNlXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBVSVZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvciB7XG4gIHN0YXRpYyB0cmFuc2xhdGVTZXJ2aWNlOiBEZWNhZlRyYW5zbGF0ZVNlcnZpY2U7XG5cbiAgb3ZlcnJpZGUgZ2V0TWVzc2FnZShtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogc3RyaW5nIHtcbiAgICBpZiAoVUlWYWxpZGF0b3IudHJhbnNsYXRlU2VydmljZSlcbiAgICAgIHJldHVybiBVSVZhbGlkYXRvci50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZShtZXNzYWdlLCAuLi5hcmdzKTtcbiAgICByZXR1cm4gc3VwZXIuZ2V0TWVzc2FnZShtZXNzYWdlLCAuLi5hcmdzKTtcbiAgfVxufVxuIl19
9
+ //# sourceMappingURL=UIValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UIValidator.js","sourceRoot":"","sources":["../../../src/ui/UIValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAG3D,MAAM,OAAgB,WAAY,SAAQ,SAAS;IAGxC,UAAU,CAAC,OAAe,EAAE,GAAG,IAAW;QACjD,IAAI,WAAW,CAAC,gBAAgB;YAC9B,OAAO,WAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5C,CAAC;CACF"}
@@ -378,4 +378,4 @@ export const WindowColorSchemes = {
378
378
  dark: "dark",
379
379
  undefined: "undefined",
380
380
  };
381
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VpL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxFQUNMLGFBQWEsRUFDYixhQUFhLEVBQ2IsY0FBYyxFQUNkLGVBQWUsRUFDZiwyQkFBMkIsRUFDM0Isb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4QixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixZQUFZLEVBQ1osY0FBYyxHQUVmLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE1BQU0sQ0FBTixJQUFZLGtCQUtYO0FBTEQsV0FBWSxrQkFBa0I7SUFDNUIscUNBQWUsQ0FBQTtJQUNmLHVDQUFpQixDQUFBO0lBQ2pCLHFDQUFlLENBQUE7SUFDZix1Q0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUs3QjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRDRztBQUNILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQUNiLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLFNBQVM7SUFDaEIsSUFBSSxFQUFFLE1BQU07SUFDWixXQUFXLEVBQUUsUUFBUTtJQUNyQixrQkFBa0IsRUFBRSxtQkFBbUI7SUFFdkMsV0FBVyxFQUFFLGFBQWE7SUFDMUIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsUUFBUSxFQUFF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RUFBRSxVQUFVO0lBQ3BCLElBQUksRUFBRSxFQUFFO0NBQ0EsQ0FBQztBQUVYOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixNQUFNLEVBQUUsUUFBUTtJQUNoQixPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsUUFBUTtJQUNoQixLQUFLLEVBQUUsT0FBTztJQUNkLElBQUksRUFBRSxNQUFNO0lBQ1osQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsYUFBYSxDQUFDLE1BQU07SUFDNUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxDQUFDLElBQUk7SUFDeEMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsYUFBYSxDQUFDLE1BQU07SUFDNUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsYUFBYSxDQUFDLE1BQU07Q0FDcEMsQ0FBQztBQUVYOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsS0FBSyxFQUFFLE9BQU87SUFDZCxJQUFJLEVBQUUsTUFBTTtJQUNaLFNBQVMsRUFBRSxXQUFXO0NBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnN0YW50cyBhbmQgZW51bXMgZm9yIFVJIHJlbmRlcmluZyBhbmQgdmFsaWRhdGlvblxuICogQHN1bW1hcnkgRGVmaW5lcyBrZXlzLCBtYXBwaW5ncywgYW5kIEhUTUw1IGlucHV0IHR5cGVzIGZvciBVSSBjb21wb25lbnRzXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBjb25zdGFudHMgdXNlZCB0aHJvdWdob3V0IHRoZSBVSSBkZWNvcmF0b3JzIGxpYnJhcnkgZm9yXG4gKiByZW5kZXJpbmcsIHZhbGlkYXRpb24sIGFuZCBIVE1MIGVsZW1lbnQgZ2VuZXJhdGlvbi5cbiAqIEBtb2R1bGUgdWkvY29uc3RhbnRzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuXG5pbXBvcnQge1xuICBEYXRlVmFsaWRhdG9yLFxuICBEaWZmVmFsaWRhdG9yLFxuICBFbWFpbFZhbGlkYXRvcixcbiAgRXF1YWxzVmFsaWRhdG9yLFxuICBHcmVhdGVyVGhhbk9yRXF1YWxWYWxpZGF0b3IsXG4gIEdyZWF0ZXJUaGFuVmFsaWRhdG9yLFxuICBMZXNzVGhhbk9yRXF1YWxWYWxpZGF0b3IsXG4gIExlc3NUaGFuVmFsaWRhdG9yLFxuICBNYXhMZW5ndGhWYWxpZGF0b3IsXG4gIE1heFZhbGlkYXRvcixcbiAgTWluTGVuZ3RoVmFsaWRhdG9yLFxuICBNaW5WYWxpZGF0b3IsXG4gIFBhc3N3b3JkVmFsaWRhdG9yLFxuICBQYXR0ZXJuVmFsaWRhdG9yLFxuICBSZXF1aXJlZFZhbGlkYXRvcixcbiAgU3RlcFZhbGlkYXRvcixcbiAgVVJMVmFsaWRhdG9yLFxuICBWYWxpZGF0aW9uS2V5cyxcbiAgVmFsaWRhdG9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgT3BlcmF0aW9uS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG5leHBvcnQgZW51bSBVSU1lZGlhQnJlYWtQb2ludHMge1xuICBTTUFMTCA9IFwic21hbGxcIixcbiAgTUVESVVNID0gXCJtZWRpdW1cIixcbiAgTEFSR0UgPSBcImxhcmdlXCIsXG4gIFhMQVJHRSA9IFwieGxhcmdlXCIsXG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEtleSBjb25zdGFudHMgdXNlZCBmb3IgVUkgbWV0YWRhdGEgYW5kIHJlbmRlcmluZ1xuICogQHN1bW1hcnkgQ29sbGVjdGlvbiBvZiBzdHJpbmcgY29uc3RhbnRzIHVzZWQgYXMga2V5cyBmb3IgVUktcmVsYXRlZCBtZXRhZGF0YVxuICogVGhlc2Uga2V5cyBhcmUgdXNlZCB0aHJvdWdob3V0IHRoZSBsaWJyYXJ5IHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBtZXRhZGF0YSByZWxhdGVkIHRvXG4gKiBVSSBtb2RlbHMsIGVsZW1lbnRzLCBwcm9wZXJ0aWVzLCBhbmQgdmFsaWRhdGlvbiBydWxlcy5cbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBVSUtleXNUeXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkVGTEVDVCAtIEJhc2UgcmVmbGVjdGlvbiBrZXkgZm9yIFVJIG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVUlNT0RFTCAtIEtleSBmb3IgVUkgbW9kZWwgbWV0YWRhdGFcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRU5ERVJFRF9CWSAtIEtleSBmb3Igc3BlY2lmeWluZyByZW5kZXJpbmcgZW5naW5lXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRUxFTUVOVCAtIEtleSBmb3IgZWxlbWVudCBtZXRhZGF0YVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBST1AgLSBLZXkgZm9yIHByb3BlcnR5IG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTkFNRSAtIEtleSBmb3IgbmFtZSBhdHRyaWJ1dGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBOQU1FX1BSRUZJWCAtIFByZWZpeCBmb3IgaW5wdXQgbmFtZXNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBDVVNUT01fUFJPUFMgLSBLZXkgZm9yIGN1c3RvbSB2YWxpZGF0aW9uIHByb3BlcnRpZXNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBVSUxJU1RNT0RFTCAtIEtleSBmb3IgbGlzdCBpdGVtIG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVUlMSVNUUFJPUCAtIEtleSBmb3IgbGlzdCBwcm9wZXJ0eSBtZXRhZGF0YVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFRZUEUgLSBLZXkgZm9yIHR5cGUgbWV0YWRhdGFcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTVUJfVFlQRSAtIEtleSBmb3Igc3VidHlwZSBtZXRhZGF0YVxuICogQHByb3BlcnR5IHtzdHJpbmd9IEhJRERFTiAtIEtleSBmb3IgaGlkZGVuIGF0dHJpYnV0ZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IEZPUk1BVCAtIEtleSBmb3IgZm9ybWF0IG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkVBRF9PTkxZIC0gS2V5IGZvciByZWFkb25seSBhdHRyaWJ1dGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRVFVSVJFRCAtIEtleSBmb3IgcmVxdWlyZWQgdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1JTiAtIEtleSBmb3IgbWluaW11bSB2YWx1ZSB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUlOX0xFTkdUSCAtIEtleSBmb3IgbWluaW11bSBsZW5ndGggdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1BWCAtIEtleSBmb3IgbWF4aW11bSB2YWx1ZSB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUFYX0xFTkdUSCAtIEtleSBmb3IgbWF4aW11bSBsZW5ndGggdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBBVFRFUk4gLSBLZXkgZm9yIHBhdHRlcm4gdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IFVSTCAtIEtleSBmb3IgVVJMIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTVEVQIC0gS2V5IGZvciBzdGVwIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBEQVRFIC0gS2V5IGZvciBkYXRlIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBFTUFJTCAtIEtleSBmb3IgZW1haWwgdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBBU1NXT1JEIC0gS2V5IGZvciBwYXNzd29yZCB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRVFVQUxTIC0gS2V5IGZvciBlcXVhbGl0eSB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRElGRiAtIEtleSBmb3IgZGlmZmVyZW5jZSB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTEVTU19USEFOIC0gS2V5IGZvciBsZXNzIHRoYW4gdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IExFU1NfVEhBTl9PUl9FUVVBTCAtIEtleSBmb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBHUkVBVEVSX1RIQU4gLSBLZXkgZm9yIGdyZWF0ZXIgdGhhbiB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gR1JFQVRFUl9USEFOX09SX0VRVUFMIC0gS2V5IGZvciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdmFsaWRhdGlvblxuICpcbiAqIEBjb25zdCBVSUtleXNcbiAqIEB0eXBlIHtVSUtleXNUeXBlfVxuICogQHJlYWRvbmx5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFVJS2V5cyA9IHtcbiAgUkVGTEVDVDogYHVpYCxcbiAgVUlNT0RFTDogXCJ1aW1vZGVsXCIsXG4gIFJFTkRFUkVEX0JZOiBcInJlbmRlcmVkLWJ5XCIsXG4gIEVMRU1FTlQ6IFwidWllbGVtZW50XCIsXG4gIFBST1A6IFwidWlwcm9wXCIsXG4gIENISUxEOiBcInVpY2hpbGRcIixcbiAgTkFNRTogXCJuYW1lXCIsXG4gIE5BTUVfUFJFRklYOiBcImlucHV0LVwiLFxuICBWQUxJREFUSU9OX01FU1NBR0U6IFwidmFsaWRhdGlvbk1lc3NhZ2VcIixcblxuICBVSUxJU1RNT0RFTDogXCJ1aWxpc3Rtb2RlbFwiLFxuICBVSUxJU1RQUk9QOiBcInVpbGlzdHByb3BcIixcbiAgVUlMQVlPVVQ6IFwidWlsYXlvdXRcIixcbiAgVUlMQVlPVVRQUk9QOiBcInVpbGF5b3V0cHJvcFwiLFxuICBIQU5ETEVSUzogXCJoYW5kbGVyc1wiLFxuXG4gIFRZUEU6IFwidHlwZVwiLFxuICBTVUJfVFlQRTogXCJzdWJUeXBlXCIsXG5cbiAgSElEREVOOiBcImhpZGRlblwiLFxuICBISURFX0ZPUjogXCJoaWRlLWZvclwiLFxuICBTSE9XX0ZPUjogXCJzaG93LWZvclwiLFxuICBSRU5ERVJfSUY6IFwicmVuZGVyLWlmXCIsXG4gIEZPUk1BVDogXCJmb3JtYXRcIixcbiAgT1JERVI6IFwib3JkZXJcIixcbiAgUEFHRTogXCJwYWdlXCIsXG4gIEVWRU5UUzogXCJldmVudHNcIixcblxuICBGSVJTVDogXCJmaXJzdFwiLFxuICBMQVNUOiBcImxhc3RcIixcblxuICBSRUFEX09OTFk6IFwicmVhZG9ubHlcIixcbiAgU0VRVUVOQ0U6IFwic2VxdWVuY2VcIixcbiAgUkVRVUlSRUQ6IFZhbGlkYXRpb25LZXlzLlJFUVVJUkVELFxuICBNSU46IFZhbGlkYXRpb25LZXlzLk1JTixcbiAgTUlOX0xFTkdUSDogVmFsaWRhdGlvbktleXMuTUlOX0xFTkdUSCxcbiAgTUFYOiBWYWxpZGF0aW9uS2V5cy5NQVgsXG4gIE1BWF9MRU5HVEg6IFZhbGlkYXRpb25LZXlzLk1BWF9MRU5HVEgsXG4gIFBBVFRFUk46IFZhbGlkYXRpb25LZXlzLlBBVFRFUk4sXG4gIFVSTDogVmFsaWRhdGlvbktleXMuVVJMLFxuICBTVEVQOiBWYWxpZGF0aW9uS2V5cy5TVEVQLFxuICBEQVRFOiBWYWxpZGF0aW9uS2V5cy5EQVRFLFxuICBFTUFJTDogVmFsaWRhdGlvbktleXMuRU1BSUwsXG4gIFBBU1NXT1JEOiBWYWxpZGF0aW9uS2V5cy5QQVNTV09SRCxcbiAgRVFVQUxTOiBWYWxpZGF0aW9uS2V5cy5FUVVBTFMsXG4gIERJRkY6IFZhbGlkYXRpb25LZXlzLkRJRkYsXG4gIExFU1NfVEhBTjogVmFsaWRhdGlvbktleXMuTEVTU19USEFOLFxuICBMRVNTX1RIQU5fT1JfRVFVQUw6IFZhbGlkYXRpb25LZXlzLkxFU1NfVEhBTl9PUl9FUVVBTCxcbiAgR1JFQVRFUl9USEFOOiBWYWxpZGF0aW9uS2V5cy5HUkVBVEVSX1RIQU4sXG4gIEdSRUFURVJfVEhBTl9PUl9FUVVBTDogVmFsaWRhdGlvbktleXMuR1JFQVRFUl9USEFOX09SX0VRVUFMLFxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWFwcGluZyBvZiBpbnB1dCB0eXBlcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIHZhbGlkYXRvcnNcbiAqIEBzdW1tYXJ5IE1hcHMgc3BlY2lhbCBpbnB1dCB0eXBlcyB0byB0aGVpciB2YWxpZGF0b3IgY2xhc3Nlc1xuICogVGhpcyBjb25zdGFudCBtYXBzIGlucHV0IHR5cGVzIGxpa2UgZW1haWwsIFVSTCwgZGF0ZSwgYW5kIHBhc3N3b3JkIHRvIHRoZWlyXG4gKiBjb3JyZXNwb25kaW5nIHZhbGlkYXRvciBjbGFzc2VzIGZyb20gdGhlIGRlY29yYXRvci12YWxpZGF0aW9uIGxpYnJhcnkuXG4gKlxuICogQHR5cGVkZWYge09iamVjdC48c3RyaW5nLCBDb25zdHJ1Y3RvcjxWYWxpZGF0b3I+Pn0gVmFsaWRhdGFibGVCeVR5cGVNYXBcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8RW1haWxWYWxpZGF0b3I+fSBlbWFpbCAtIFZhbGlkYXRvciBmb3IgZW1haWwgaW5wdXRzXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPFVSTFZhbGlkYXRvcj59IHVybCAtIFZhbGlkYXRvciBmb3IgVVJMIGlucHV0c1xuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxEYXRlVmFsaWRhdG9yPn0gZGF0ZSAtIFZhbGlkYXRvciBmb3IgZGF0ZSBpbnB1dHNcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8UGFzc3dvcmRWYWxpZGF0b3I+fSBwYXNzd29yZCAtIFZhbGlkYXRvciBmb3IgcGFzc3dvcmQgaW5wdXRzXG4gKlxuICogQGNvbnN0IFZhbGlkYXRhYmxlQnlUeXBlXG4gKiBAdHlwZSB7VmFsaWRhdGFibGVCeVR5cGVNYXB9XG4gKiBAcmVhZG9ubHlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgVmFsaWRhdGFibGVCeVR5cGU6IFJlY29yZDxzdHJpbmcsIENvbnN0cnVjdG9yPFZhbGlkYXRvcj4+ID0ge1xuICBbVUlLZXlzLkVNQUlMXTogRW1haWxWYWxpZGF0b3IsXG4gIFtVSUtleXMuVVJMXTogVVJMVmFsaWRhdG9yLFxuICBbVUlLZXlzLkRBVEVdOiBEYXRlVmFsaWRhdG9yLFxuICBbVUlLZXlzLlBBU1NXT1JEXTogUGFzc3dvcmRWYWxpZGF0b3IsXG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNYXBwaW5nIG9mIHZhbGlkYXRpb24gYXR0cmlidXRlcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIHZhbGlkYXRvcnNcbiAqIEBzdW1tYXJ5IE1hcHMgSFRNTCB2YWxpZGF0aW9uIGF0dHJpYnV0ZXMgdG8gdGhlaXIgdmFsaWRhdG9yIGNsYXNzZXNcbiAqIFRoaXMgY29uc3RhbnQgbWFwcyBIVE1MIHZhbGlkYXRpb24gYXR0cmlidXRlcyBsaWtlIHJlcXVpcmVkLCBtaW4sIG1heCwgcGF0dGVybiwgZXRjLlxuICogdG8gdGhlaXIgY29ycmVzcG9uZGluZyB2YWxpZGF0b3IgY2xhc3NlcyBmcm9tIHRoZSBkZWNvcmF0b3ItdmFsaWRhdGlvbiBsaWJyYXJ5LlxuICpcbiAqIEB0eXBlZGVmIHtPYmplY3QuPHN0cmluZywgQ29uc3RydWN0b3I8VmFsaWRhdG9yPj59IFZhbGlkYXRhYmxlQnlBdHRyaWJ1dGVNYXBcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8UmVxdWlyZWRWYWxpZGF0b3I+fSByZXF1aXJlZCAtIFZhbGlkYXRvciBmb3IgcmVxdWlyZWQgZmllbGRzXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPE1pblZhbGlkYXRvcj59IG1pbiAtIFZhbGlkYXRvciBmb3IgbWluaW11bSB2YWx1ZVxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxNYXhWYWxpZGF0b3I+fSBtYXggLSBWYWxpZGF0b3IgZm9yIG1heGltdW0gdmFsdWVcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8U3RlcFZhbGlkYXRvcj59IHN0ZXAgLSBWYWxpZGF0b3IgZm9yIHN0ZXAgdmFsdWVcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8TWluTGVuZ3RoVmFsaWRhdG9yPn0gbWlubGVuZ3RoIC0gVmFsaWRhdG9yIGZvciBtaW5pbXVtIGxlbmd0aFxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxNYXhMZW5ndGhWYWxpZGF0b3I+fSBtYXhsZW5ndGggLSBWYWxpZGF0b3IgZm9yIG1heGltdW0gbGVuZ3RoXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPFBhdHRlcm5WYWxpZGF0b3I+fSBwYXR0ZXJuIC0gVmFsaWRhdG9yIGZvciByZWdleCBwYXR0ZXJuXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPEVxdWFsc1ZhbGlkYXRvcj59IGVxdWFscyAtIFZhbGlkYXRvciBmb3IgZXF1YWxpdHlcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8RGlmZlZhbGlkYXRvcj59IGRpZmYgLSBWYWxpZGF0b3IgZm9yIGRpZmZlcmVuY2VcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8TGVzc1RoYW5WYWxpZGF0b3I+fSBsZXNzdGhhbiAtIFZhbGlkYXRvciBmb3IgbGVzcyB0aGFuIGNvbXBhcmlzb25cbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8TGVzc1RoYW5PckVxdWFsVmFsaWRhdG9yPn0gbGVzc3RoYW5vcmVxdWFsIC0gVmFsaWRhdG9yIGZvciBsZXNzIHRoYW4gb3IgZXF1YWwgY29tcGFyaXNvblxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxHcmVhdGVyVGhhblZhbGlkYXRvcj59IGdyZWF0ZXJ0aGFuIC0gVmFsaWRhdG9yIGZvciBncmVhdGVyIHRoYW4gY29tcGFyaXNvblxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxHcmVhdGVyVGhhbk9yRXF1YWxWYWxpZGF0b3I+fSBncmVhdGVydGhhbm9yZXF1YWwgLSBWYWxpZGF0b3IgZm9yIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCBjb21wYXJpc29uXG4gKlxuICogQGNvbnN0IFZhbGlkYXRhYmxlQnlBdHRyaWJ1dGVcbiAqIEB0eXBlIHtWYWxpZGF0YWJsZUJ5QXR0cmlidXRlTWFwfVxuICogQHJlYWRvbmx5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFZhbGlkYXRhYmxlQnlBdHRyaWJ1dGU6IFJlY29yZDxzdHJpbmcsIENvbnN0cnVjdG9yPFZhbGlkYXRvcj4+ID0ge1xuICBbVUlLZXlzLlJFUVVJUkVEXTogUmVxdWlyZWRWYWxpZGF0b3IsXG4gIFtVSUtleXMuTUlOXTogTWluVmFsaWRhdG9yLFxuICBbVUlLZXlzLk1BWF06IE1heFZhbGlkYXRvcixcbiAgW1VJS2V5cy5TVEVQXTogU3RlcFZhbGlkYXRvcixcbiAgW1VJS2V5cy5NSU5fTEVOR1RIXTogTWluTGVuZ3RoVmFsaWRhdG9yLFxuICBbVUlLZXlzLk1BWF9MRU5HVEhdOiBNYXhMZW5ndGhWYWxpZGF0b3IsXG4gIFtVSUtleXMuUEFUVEVSTl06IFBhdHRlcm5WYWxpZGF0b3IsXG4gIFtVSUtleXMuRVFVQUxTXTogRXF1YWxzVmFsaWRhdG9yLFxuICBbVUlLZXlzLkRJRkZdOiBEaWZmVmFsaWRhdG9yLFxuICBbVUlLZXlzLkxFU1NfVEhBTl06IExlc3NUaGFuVmFsaWRhdG9yLFxuICBbVUlLZXlzLkxFU1NfVEhBTl9PUl9FUVVBTF06IExlc3NUaGFuT3JFcXVhbFZhbGlkYXRvcixcbiAgW1VJS2V5cy5HUkVBVEVSX1RIQU5dOiBHcmVhdGVyVGhhblZhbGlkYXRvcixcbiAgW1VJS2V5cy5HUkVBVEVSX1RIQU5fT1JfRVFVQUxdOiBHcmVhdGVyVGhhbk9yRXF1YWxWYWxpZGF0b3IsXG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTdGFuZGFyZCBkYXRlIGZvcm1hdCBzdHJpbmcgZm9yIEhUTUw1IGRhdGUgaW5wdXRzXG4gKiBAc3VtbWFyeSBGb3JtYXQgc3RyaW5nIGZvciBIVE1MNSBkYXRlIGlucHV0cyAoeXl5eS1NTS1kZClcbiAqIFRoaXMgY29uc3RhbnQgZGVmaW5lcyB0aGUgc3RhbmRhcmQgZGF0ZSBmb3JtYXQgc3RyaW5nIHVzZWQgZm9yIEhUTUw1IGRhdGUgaW5wdXRzLlxuICpcbiAqIEBjb25zdCBIVE1MNURhdGVGb3JtYXRcbiAqIEB0eXBlIHtzdHJpbmd9XG4gKiBAcmVhZG9ubHlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgSFRNTDVEYXRlRm9ybWF0ID0gXCJ5eXl5LU1NLWRkXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbGxlY3Rpb24gb2YgSFRNTDUgaW5wdXQgdHlwZSB2YWx1ZXNcbiAqIEBzdW1tYXJ5IE1hcHMgaW5wdXQgdHlwZSBjb25zdGFudHMgdG8gdGhlaXIgSFRNTCBhdHRyaWJ1dGUgdmFsdWVzXG4gKiBUaGlzIGNvbnN0YW50IHByb3ZpZGVzIGEgbWFwcGluZyBvZiBpbnB1dCB0eXBlIGNvbnN0YW50cyB0byB0aGVpciBjb3JyZXNwb25kaW5nXG4gKiBIVE1MIGF0dHJpYnV0ZSB2YWx1ZXMgZm9yIHVzZSBpbiBmb3JtIGVsZW1lbnRzLlxuICpcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEhUTUw1SW5wdXRUeXBlc01hcFxuICogQHByb3BlcnR5IHtzdHJpbmd9IEJVVFRPTiAtIEJ1dHRvbiBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gQ0hFQ0tCT1ggLSBDaGVja2JveCBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gQ09MT1IgLSBDb2xvciBwaWNrZXIgaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IERBVEUgLSBEYXRlIHBpY2tlciBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gREFURVRJTUVfTE9DQUwgLSBMb2NhbCBkYXRldGltZSBwaWNrZXIgaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IEVNQUlMIC0gRW1haWwgaW5wdXQgdHlwZSB3aXRoIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBGSUxFIC0gRmlsZSB1cGxvYWQgaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IEhJRERFTiAtIEhpZGRlbiBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gSU1BR0UgLSBJbWFnZSBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTU9OVEggLSBNb250aCBwaWNrZXIgaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IE5VTUJFUiAtIE51bWVyaWMgaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBBU1NXT1JEIC0gUGFzc3dvcmQgaW5wdXQgdHlwZSB3aXRoIG1hc2tlZCB0ZXh0XG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkFESU8gLSBSYWRpbyBidXR0b24gaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFJBTkdFIC0gUmFuZ2Ugc2xpZGVyIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRVNFVCAtIEZvcm0gcmVzZXQgYnV0dG9uIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTRUFSQ0ggLSBTZWFyY2ggaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFNVQk1JVCAtIEZvcm0gc3VibWl0IGJ1dHRvbiBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVEVMIC0gVGVsZXBob25lIG51bWJlciBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVEVYVCAtIEJhc2ljIHRleHQgaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFRJTUUgLSBUaW1lIHBpY2tlciBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVVJMIC0gVVJMIGlucHV0IHR5cGUgd2l0aCB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gV0VFSyAtIFdlZWsgcGlja2VyIGlucHV0IHR5cGVcbiAqXG4gKiBAY29uc3QgSFRNTDVJbnB1dFR5cGVzXG4gKiBAdHlwZSB7SFRNTDVJbnB1dFR5cGVzTWFwfVxuICogQHJlYWRvbmx5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEhUTUw1SW5wdXRUeXBlcyA9IHtcbiAgQlVUVE9OOiBcImJ1dHRvblwiLFxuICBDSEVDS0JPWDogXCJjaGVja2JveFwiLFxuICBDT0xPUjogXCJjb2xvclwiLFxuICBEQVRFOiBVSUtleXMuREFURSxcbiAgREFURVRJTUVfTE9DQUw6IFwiZGF0ZXRpbWUtbG9jYWxcIixcbiAgRU1BSUw6IFVJS2V5cy5FTUFJTCxcbiAgRklMRTogXCJmaWxlXCIsXG4gIEhJRERFTjogXCJoaWRkZW5cIixcbiAgSU1BR0U6IFwiaW1hZ2VcIixcbiAgTU9OVEg6IFwibW9udGhcIixcbiAgTlVNQkVSOiBcIm51bWJlclwiLFxuICBQQVNTV09SRDogVUlLZXlzLlBBU1NXT1JELFxuICBSQURJTzogXCJyYWRpb1wiLFxuICBSQU5HRTogXCJyYW5nZVwiLFxuICBSRVNFVDogXCJyZXNldFwiLFxuICBTRUFSQ0g6IFwic2VhcmNoXCIsXG4gIFNVQk1JVDogXCJzdWJtaXRcIixcbiAgVEVMOiBcInRlbFwiLFxuICBURVhUOiBcInRleHRcIixcbiAgVEVYVEFSRUE6IFwidGV4dGFyZWFcIixcbiAgU0VMRUNUOiBcInNlbGVjdFwiLFxuICBUSU1FOiBcInRpbWVcIixcbiAgVVJMOiBVSUtleXMuVVJMLFxuICBXRUVLOiBcIndlZWtcIixcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEFycmF5IG9mIEhUTUw1IGlucHV0IHR5cGVzIHRoYXQgdXNlIGNoZWNrYm94ZXNcbiAqIEBzdW1tYXJ5IExpc3Qgb2YgaW5wdXQgdHlwZXMgdGhhdCByZXByZXNlbnQgY2hlY2thYmxlIGNvbnRyb2xzXG4gKiBUaGlzIGNvbnN0YW50IGRlZmluZXMgYW4gYXJyYXkgb2YgSFRNTDUgaW5wdXQgdHlwZXMgdGhhdCByZXByZXNlbnRcbiAqIGNoZWNrYWJsZSBjb250cm9scyAoY2hlY2tib3ggYW5kIHJhZGlvKS5cbiAqXG4gKiBAY29uc3QgSFRNTDVDaGVja1R5cGVzXG4gKiBAdHlwZSB7c3RyaW5nW119XG4gKiBAcmVhZG9ubHlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgSFRNTDVDaGVja1R5cGVzOiBzdHJpbmdbXSA9IFtcbiAgSFRNTDVJbnB1dFR5cGVzLkNIRUNLQk9YLFxuICBIVE1MNUlucHV0VHlwZXMuUkFESU8sXG5dO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFdmVudCBuYW1lIGNvbnN0YW50cy5cbiAqIEBzdW1tYXJ5IENvbnRhaW5zIGNvbnN0YW50cyBmb3Igc3RhbmRhcmRpemVkIGV2ZW50IG5hbWVzIHVzZWQgdGhyb3VnaG91dCB0aGUgYXBwbGljYXRpb24uXG4gKiBUaGVzZSBjb25zdGFudHMgZW5zdXJlIGNvbnNpc3RlbnQgZXZlbnQgbmFtaW5nIGFjcm9zcyBjb21wb25lbnRzIGFuZCBtYWtlIGl0IGVhc2llciB0b1xuICogdHJhY2sgYW5kIGhhbmRsZSBldmVudHMuIEVhY2ggY29uc3RhbnQgcmVwcmVzZW50cyBhIHNwZWNpZmljIGFwcGxpY2F0aW9uIGV2ZW50IHR5cGUuXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBDb21wb25lbnRFdmVudE5hbWVzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gQmFja0J1dHRvbkNsaWNrRXZlbnQgLSBFdmVudCBmaXJlZCB3aGVuIGJhY2sgYnV0dG9uIG5hdmlnYXRpb24gZW5kc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFJlbmRlciAtIEV2ZW50IGFmdGVyIGNvbXBvbmVudCBpbml0aWFsaXplIGFjdGlvbiBvY2N1cnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSZWZyZXNoIC0gRXZlbnQgZmlyZWQgd2hlbiBhIHJlZnJlc2ggYWN0aW9uIG9jY3Vyc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IENsaWNrIC0gRXZlbnQgZmlyZWQgd2hlbiBhIGNsaWNrIGFjdGlvbiBvY2N1cnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBDaGFuZ2UgLSBFdmVudCBmaXJlZCB3aGVuIGEgY2hhbmdlIGFjdGlvbiBvY2N1cnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTdWJtaXQgLSBFdmVudCBmaXJlZCB3aGVuIGEgZm9ybSBzdWJtaXNzaW9uIG9jY3Vyc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFZhbGlkYXRpb25FcnJvciAtIEV2ZW50IGZpcmVkIHdoZW4gYSB2YWxpZGF0aW9uIGVycm9yIG9jY3Vyc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFRoZW1lQ2hhbmdlIC0gRXZlbnQgZmlyZWQgd2hlbiBhIHRoZW1lIGNoYW5nZSBvY2N1cnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBGb3JtR3JvdXBMb2FkZWQgLSBFdmVudCBmaXJlZCB3aGVuIGEgcmVhY3R2ZSBmb3JtIGdyb3VwIGlzIGxvYWRlZFxuICogQGNvbnN0IENvbXBvbmVudEV2ZW50TmFtZXNcbiAqL1xuZXhwb3J0IGNvbnN0IENvbXBvbmVudEV2ZW50TmFtZXMgPSB7XG4gIFJlbmRlcjogXCJyZW5kZXJcIixcbiAgQmFja0J1dHRvbkNsaWNrRXZlbnQ6IFwiYmFja0J1dHRvbk5hdmlnYXRpb25FbmRFdmVudFwiLFxuICBSZWZyZXNoOiBcIlJlZnJlc2hFdmVudFwiLFxuICBDbGljazogXCJDbGlja0V2ZW50XCIsXG4gIENoYW5nZTogXCJDaGFuZ2VFdmVudFwiLFxuICBTdWJtaXQ6IFwiU3VibWl0RXZlbnRcIixcbiAgVmFsaWRhdGlvbkVycm9yOiBcInZhbGlkYXRpb25FcnJvckV2ZW50XCIsXG4gIFRoZW1lQ2hhbmdlOiBcInRoZW1lQ2hhbmdlRXZlbnRcIixcbiAgRm9ybUdyb3VwTG9hZGVkOiBcImZvcm1Hcm91cExvYWRlZEV2ZW50XCIsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBMaWZlY3ljbGUgaG9vayBsYWJlbHMgZm9yIHJlcG9zaXRvcnkgdHJhbnNhY3Rpb25zLlxuICogQHN1bW1hcnkgUHJvdmlkZXMgY2Fub25pY2FsIG5hbWVzIGZvciBDUlVEIGxpZmVjeWNsZSBjYWxsYmFja3Mgc28gZGVjb3JhdG9ycyBhbmRcbiAqIGNvbXBvbmVudHMgY2FuIHJlZ2lzdGVyIHdvcmsgYmVmb3JlIG9yIGFmdGVyIHJlcG9zaXRvcnkgb3BlcmF0aW9ucyBpbiBhIGNvbnNpc3RlbnQgd2F5LlxuICogRWFjaCBrZXkgbWFwcyB0byB0aGUgc3RyaW5nIHVzZWQgd2hlbiB3aXJpbmcgdHJhbnNhY3Rpb24gbWlkZGxld2FyZS5cbiAqIEBjb25zdCBUcmFuc2FjdGlvbkhvb2tzXG4gKi9cbmV4cG9ydCBjb25zdCBUcmFuc2FjdGlvbkhvb2tzID0ge1xuICBCZWZvcmVSZWFkOiBcImJlZm9yZVJlYWRcIixcbiAgQWZ0ZXJSZWFkOiBcImFmdGVyUmVhZFwiLFxuICBCZWZvcmVDcmVhdGU6IFwiYmVmb3JlQ3JlYXRlXCIsXG4gIEFmdGVyQ3JlYXRlOiBcImFmdGVyQ3JlYXRlXCIsXG4gIEJlZm9yZVVwZGF0ZTogXCJiZWZvcmVVcGRhdGVcIixcbiAgQWZ0ZXJVcGRhdGU6IFwiYWZ0ZXJVcGRhdGVcIixcbiAgQmVmb3JlRGVsZXRlOiBcImJlZm9yZURlbGV0ZVwiLFxuICBBZnRlckRlbGV0ZTogXCJhZnRlckRlbGV0ZVwiLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gU3RhbmRhcmRpemVkIHNpemUgdG9rZW5zIGZvciBVSSBlbGVtZW50cy5cbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHNlbWFudGljIHNpemUga2V5d29yZHMgc3VwcG9ydGVkIGJ5IGxheW91dCBhbmQgZm9ybSBkZWNvcmF0b3JzLlxuICogVGhlc2UgdmFsdWVzIGZlZWQgcmVuZGVyaW5nIGVuZ2luZXMgc28gY29tcG9uZW50cyBjYW4gZXhwcmVzcyBzaXppbmcgaW4gYSB1bmlmb3JtIHZvY2FidWxhcnkuXG4gKiBAY29uc3QgRWxlbWVudFNpemVzXG4gKi9cbmV4cG9ydCBjb25zdCBFbGVtZW50U2l6ZXMgPSB7XG4gIHhzbWFsbDogXCJ4c21hbGxcIixcbiAgc21hbGw6IFwic21hbGxcIixcbiAgbWVkaXVtOiBcIm1lZGl1bVwiLFxuICBkZWZhdWx0OiBcImRlZmF1bHRcIixcbiAgbGFyZ2U6IFwibGFyZ2VcIixcbiAgeExhcmdlOiBcInhsYXJnZVwiLFxuICBcIjJ4TGFyZ2VcIjogXCIyeGxhcmdlXCIsXG4gIGF1dG86IFwiYXV0b1wiLFxuICBleHBhbmQ6IFwiZXhwYW5kXCIsXG4gIGJsb2NrOiBcImJsb2NrXCIsXG4gIGhhbGY6IFwiaGFsZlwiLFxuICBmdWxsOiBcImZ1bGxcIixcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEFsaWdubWVudCBrZXl3b3JkcyBmb3IgZWxlbWVudCBwb3NpdGlvbmluZy5cbiAqIEBzdW1tYXJ5IFN1cHBsaWVzIGNhbm9uaWNhbCBwb3NpdGlvbiB2YWx1ZXMgKGhvcml6b250YWwgYW5kIHZlcnRpY2FsKSB0aGF0IGRlY29yYXRvcnMgY2FuXG4gKiB1c2Ugd2hlbiBhbGlnbmluZyBsYWJlbHMsIGNvbnRyb2xzLCBvciBoZWxwZXIgdGV4dCBhY3Jvc3MgY29tcG9uZW50cy5cbiAqIEBjb25zdCBFbGVtZW50UG9zaXRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBFbGVtZW50UG9zaXRpb25zID0ge1xuICBsZWZ0OiBcImxlZnRcIixcbiAgY2VudGVyOiBcImNlbnRlclwiLFxuICByaWdodDogXCJyaWdodFwiLFxuICB0b3A6IFwidG9wXCIsXG4gIGJvdHRvbTogXCJib3R0b21cIixcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEdyaWQgc3BhY2luZyBwcmVzZXRzIGZvciBsYXlvdXQgZGVjb3JhdG9ycy5cbiAqIEBzdW1tYXJ5IE1hcHMgaHVtYW4tcmVhZGFibGUgZ2FwIHNpemVzIHRvIHRoZSB0b2tlbnMgaW50ZXJwcmV0ZWQgYnkgdGhlIHJlbmRlcmluZyBlbmdpbmVcbiAqIHdoZW4gYnVpbGRpbmcgQ1NTIGdyaWQgbGF5b3V0cywgZW5hYmxpbmcgcHJlZGljdGFibGUgc3BhY2luZyBhY3Jvc3MgY29tcG9uZW50cy5cbiAqIEBjb25zdCBMYXlvdXRHcmlkR2Fwc1xuICovXG5leHBvcnQgY29uc3QgTGF5b3V0R3JpZEdhcHMgPSB7XG4gIHNtYWxsOiBcInNtYWxsXCIsXG4gIG1lZGl1bTogXCJtZWRpdW1cIixcbiAgbGFyZ2U6IFwibGFyZ2VcIixcbiAgY29sbGFwc2U6IFwiY29sbGFwc2VcIixcbiAgbm9uZTogXCJcIixcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENhbm9uaWNhbCBhY3Rpb24gcm9sZSBpZGVudGlmaWVycyBmb3IgVUkgY29udHJvbHMuXG4gKiBAc3VtbWFyeSBFbnVtZXJhdGVzIHRoZSBzZW1hbnRpYyByb2xlcyBhIGJ1dHRvbiBvciBhY3Rpb24gbWF5IHJlcHJlc2VudCBzbyBkZWNvcmF0b3JzIGFuZFxuICogcmVuZGVyZXJzIGNhbiBhdHRhY2ggY29uc2lzdGVudCBiZWhhdmlvcnMgYW5kIHN0eWxpbmcgKGluY2x1ZGluZyBDUlVEIHZlcmJzIHRpZWQgdG9cbiAqIGBPcGVyYXRpb25LZXlzYCkuXG4gKiBAY29uc3QgQWN0aW9uUm9sZXNcbiAqL1xuZXhwb3J0IGNvbnN0IEFjdGlvblJvbGVzID0ge1xuICBjYW5jZWw6IFwiY2FuY2VsXCIsXG4gIGNvbmZpcm06IFwiY29uZmlybVwiLFxuICBzdWJtaXQ6IFwic3VibWl0XCIsXG4gIGNsZWFyOiBcImNsZWFyXCIsXG4gIGJhY2s6IFwiYmFja1wiLFxuICBbT3BlcmF0aW9uS2V5cy5DUkVBVEVdOiBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgW09wZXJhdGlvbktleXMuUkVBRF06IE9wZXJhdGlvbktleXMuUkVBRCxcbiAgW09wZXJhdGlvbktleXMuVVBEQVRFXTogT3BlcmF0aW9uS2V5cy5VUERBVEUsXG4gIFtPcGVyYXRpb25LZXlzLkRFTEVURV06IE9wZXJhdGlvbktleXMuREVMRVRFLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQWxsb3dlZCBjb2xvciBzY2hlbWUgdG9rZW5zIGZvciB3aW5kb3dlZCBzdXJmYWNlcy5cbiAqIEBzdW1tYXJ5IFByb3ZpZGVzIHRoZSBzdXBwb3J0ZWQgdGhlbWUgaWRlbnRpZmllcnMgZXhwb3NlZCB0byBjb25zdW1pbmcgYXBwcyBzbyB0aGV5XG4gKiBjYW4gdGFyZ2V0IGxpZ2h0LCBkYXJrLCBvciB1bnNldCB3aW5kb3cgY29sb3Igc2NoZW1lcyBpbiBhIHByZWRpY3RhYmxlIHdheS5cbiAqIEBjb25zdCBXaW5kb3dDb2xvclNjaGVtZXNcbiAqL1xuZXhwb3J0IGNvbnN0IFdpbmRvd0NvbG9yU2NoZW1lcyA9IHtcbiAgbGlnaHQ6IFwibGlnaHRcIixcbiAgZGFyazogXCJkYXJrXCIsXG4gIHVuZGVmaW5lZDogXCJ1bmRlZmluZWRcIixcbn0gYXMgY29uc3Q7XG4iXX0=
381
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/ui/constants.ts"],"names":[],"mappings":"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"}
@@ -577,4 +577,4 @@ export function uitablecol(sequence = UIKeys.LAST, valueParserFn) {
577
577
  propMetadata(getUIAttributeKey(propertyKey, UIKeys.UILISTPROP), metadata)(target, propertyKey);
578
578
  };
579
579
  }
580
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91aS9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsdUJBQW9CO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVlwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFnQjtBQUU1Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDRztBQUNILE1BQU0sVUFBVSxNQUFNLENBQUMsR0FBRyxVQUErQjtJQUN2RCxPQUFPLFNBQVMsTUFBTSxDQUFDLE1BQVcsRUFBRSxXQUFpQjtRQUNuRCxPQUFPLFlBQVksQ0FDakIsaUJBQWlCLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFDN0MsVUFBVSxDQUNYLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLEdBQUcsVUFBb0I7SUFDN0MsT0FBTyxTQUFTLE9BQU8sQ0FBQyxNQUFXLEVBQUUsV0FBaUI7UUFDcEQsT0FBTyxZQUFZLENBQ2pCLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQy9DLFVBQVUsQ0FDWCxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN6QixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFHLFVBQW9CO0lBQzdDLE9BQU8sU0FBUyxPQUFPLENBQUMsTUFBVyxFQUFFLFdBQWlCO1FBQ3BELE9BQU8sWUFBWSxDQUNqQixpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFD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QzVCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQXVCO0lBQy9DLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxPQUF1QjtJQUNoRCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQ0c7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUN4QixXQUE4RCxNQUFNLENBQUMsSUFBSSxFQUN6RSxhQUE4QjtJQUU5QixPQUFPLENBQUMsTUFBVyxFQUFFLFdBQWlCLEVBQUUsRUFBRTtRQUN4QyxNQUFNLFFBQVEsR0FBZ0M7WUFDNUMsSUFBSSxFQUFFLFdBQVc7WUFDakIsS0FBSyxFQUFFO2dCQUNMLFFBQVE7Z0JBQ1IsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUM7YUFDN0M7U0FDRixDQUFDO1FBQ0YsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQ3ZFLE1BQU0sRUFDTixXQUFXLENBQ1osQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVSUtleXMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHByb3BNZXRhZGF0YSB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHtcbiAgQ3J1ZE9wZXJhdGlvbktleXMsXG4gIFVJRWxlbWVudE1ldGFkYXRhLFxuICBVSUV2ZW50SGFuZGxlcixcbiAgVUlFdmVudE5hbWUsXG4gIFVJRnVuY3Rpb25MaWtlLFxuICBVSUxheW91dENvbCxcbiAgVUlMYXlvdXRQcm9wTWV0YWRhdGEsXG4gIFVJTGlzdFByb3BNZXRhZGF0YSxcbiAgVUlQcm9wTWV0YWRhdGEsXG59IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBPcGVyYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBnZXRVSUF0dHJpYnV0ZUtleSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IGhpZGVzIGEgcHJvcGVydHkgZHVyaW5nIHNwZWNpZmljIENSVUQgb3BlcmF0aW9uc1xuICogQHN1bW1hcnkgQ29udHJvbHMgcHJvcGVydHkgdmlzaWJpbGl0eSBiYXNlZCBvbiBvcGVyYXRpb24gdHlwZVxuICogVGhpcyBkZWNvcmF0b3IgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IHdoaWNoIENSVUQgb3BlcmF0aW9ucyBzaG91bGQgaGlkZSBhIHByb3BlcnR5XG4gKiBpbiB0aGUgVUkuIFRoZSBwcm9wZXJ0eSB3aWxsIG9ubHkgYmUgdmlzaWJsZSBkdXJpbmcgb3BlcmF0aW9ucyBub3Qgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBvcGVyYXRpb25zIC0gVGhlIENSVUQgb3BlcmF0aW9ucyBkdXJpbmcgd2hpY2ggdGhlIHByb3BlcnR5IHNob3VsZCBiZSBoaWRkZW5cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIHByb3BlcnR5IGRlY29yYXRvciBmdW5jdGlvblxuICpcbiAqIEBmdW5jdGlvbiBoaWRlT25cbiAqIEBjYXRlZ29yeSBQcm9wZXJ0eSBEZWNvcmF0b3JzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhpZGUgdGhlIHBhc3N3b3JkIGZpZWxkIGR1cmluZyBSRUFEIG9wZXJhdGlvbnNcbiAqIGNsYXNzIFVzZXIge1xuICogICBAYXR0cmlidXRlKClcbiAqICAgdXNlcm5hbWU6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAaGlkZU9uKE9wZXJhdGlvbktleXMuUkVBRClcbiAqICAgcGFzc3dvcmQ6IHN0cmluZztcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IGhpZGVPblxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgcGFydGljaXBhbnQgVUlcbiAqICAgTW9kZWwtPj5oaWRlT246IEFwcGx5IHRvIHByb3BlcnR5XG4gKiAgIGhpZGVPbi0+Pk1vZGVsOiBBZGQgaGlkZGVuIG1ldGFkYXRhXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+Pk1vZGVsOiBDaGVjayBpZiBwcm9wZXJ0eSBzaG91bGQgYmUgaGlkZGVuXG4gKiAgIE1vZGVsLT4+UmVuZGVyaW5nRW5naW5lOiBSZXR1cm4gaGlkZGVuIG9wZXJhdGlvbnNcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+VUk6IFJlbmRlciBvciBoaWRlIGJhc2VkIG9uIGN1cnJlbnQgb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoaWRlT24oLi4ub3BlcmF0aW9uczogQ3J1ZE9wZXJhdGlvbktleXNbXSkge1xuICByZXR1cm4gZnVuY3Rpb24gaGlkZU9uKG9iamVjdDogYW55LCBwcm9wZXJ0eUtleT86IGFueSkge1xuICAgIHJldHVybiBwcm9wTWV0YWRhdGEoXG4gICAgICBnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSwgVUlLZXlzLkhJRERFTiksXG4gICAgICBvcGVyYXRpb25zXG4gICAgKShvYmplY3QsIHByb3BlcnR5S2V5KTtcbiAgfTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVjb3JhdG9yIHRoYXQgaGlkZXMgYSBwcm9wZXJ0eSBmb3Igc3BlY2lmaWMgbmFtZXNwYWNlcy5cbiAqIEBzdW1tYXJ5IENvbnRyb2xzIHByb3BlcnR5IHZpc2liaWxpdHkgYmFzZWQgb24gbmFtZXNwYWNlIG1lbWJlcnNoaXAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoaWRlRm9yKC4uLm5hbWVzcGFjZXM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiBmdW5jdGlvbiBoaWRlRm9yKG9iamVjdDogYW55LCBwcm9wZXJ0eUtleT86IGFueSkge1xuICAgIHJldHVybiBwcm9wTWV0YWRhdGEoXG4gICAgICBnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSwgVUlLZXlzLkhJREVfRk9SKSxcbiAgICAgIG5hbWVzcGFjZXNcbiAgICApKG9iamVjdCwgcHJvcGVydHlLZXkpO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBzaG93cyBhIHByb3BlcnR5IG9ubHkgZm9yIHNwZWNpZmljIG5hbWVzcGFjZXMuXG4gKiBAc3VtbWFyeSBOYW1lc3BhY2UtYXdhcmUgY291bnRlcnBhcnQgdG8gYGhpZGVGb3JgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvd0ZvciguLi5uYW1lc3BhY2VzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gZnVuY3Rpb24gc2hvd0ZvcihvYmplY3Q6IGFueSwgcHJvcGVydHlLZXk/OiBhbnkpIHtcbiAgICByZXR1cm4gcHJvcE1ldGFkYXRhKFxuICAgICAgZ2V0VUlBdHRyaWJ1dGVLZXkocHJvcGVydHlLZXksIFVJS2V5cy5TSE9XX0ZPUiksXG4gICAgICBuYW1lc3BhY2VzXG4gICAgKShvYmplY3QsIHByb3BlcnR5S2V5KTtcbiAgfTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVjb3JhdG9yIHRoYXQgcmVuZGVycyBhIHByb3BlcnR5IG9ubHkgd2hlbiB0aGUgbmFtZXNwYWNlIG1hdGNoZXMuXG4gKiBAc3VtbWFyeSBDb252ZW5pZW5jZSBhbGlhcyBmb3IgbmFtZXNwYWNlLXNjb3BlZCB2aXNpYmlsaXR5IGNvbnRyb2wuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJJZiguLi5uYW1lc3BhY2VzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gc2hvd0ZvciguLi5uYW1lc3BhY2VzKTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVjb3JhdG9yIHRoYXQgc2V0cyB0aGUgb3JkZXIgb2YgYSBVSSBlbGVtZW50XG4gKiBAc3VtbWFyeSBTcGVjaWZpZXMgdGhlIHJlbmRlcmluZyBvcmRlciBmb3IgVUkgY29tcG9uZW50c1xuICogVGhpcyBkZWNvcmF0b3IgYXBwbGllcyBtZXRhZGF0YSB0byB0aGUgcHJvcGVydHkgb3IgY2xhc3MsIGluZGljYXRpbmcgaXRzIG9yZGVyIGluIHRoZSBVSSByZW5kZXJpbmcgc2VxdWVuY2UuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IFtvcmRlcj0xXSBUaGUgb3JkZXIgdmFsdWUgZm9yIHRoZSBVSSBlbGVtZW50IChkZWZhdWx0IGlzIDEpXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBwcm9wZXJ0eSBvciBjbGFzcyBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gdWlvcmRlclxuICogQGNhdGVnb3J5IFByb3BlcnR5IERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU2V0IG9yZGVyIGZvciBhIGZpZWxkXG4gKiBAdWlvcmRlcigyKVxuICogZmllbGROYW1lOiBzdHJpbmc7XG4gKlxuICogLy8gU2V0IG9yZGVyIGZvciBhIGNsYXNzXG4gKiBAdWlvcmRlcigxKVxuICogY2xhc3MgVXNlclByb2ZpbGUgeyAuLi4gfVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgU3lzdGVtXG4gKiAgIHBhcnRpY2lwYW50IHVpb3JkZXJcbiAqICAgcGFydGljaXBhbnQgcHJvcGVydHlcbiAqICAgU3lzdGVtLT4+dWlvcmRlcjpkbyhwcm9wZXJ0eSlcbiAqICAgdWlvcmRlci0+PnByb3BlcnR5OiBzZXRzIG9yZGVyIG1ldGFkYXRhXG4gKiAgIHVpb3JkZXItPj5TeXN0ZW06IHJldHVybnMgZGVjb3JhdGVkIHByb3BlcnR5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aW9yZGVyKFxuICBvcmRlcjogbnVtYmVyIHwgdHlwZW9mIFVJS2V5cy5GSVJTVCB8IHR5cGVvZiBVSUtleXMuTEFTVCA9IFVJS2V5cy5GSVJTVFxuKSB7XG4gIHJldHVybiBmdW5jdGlvbiB1aW9yZGVyKG9iamVjdDogYW55LCBwcm9wZXJ0eUtleT86IGFueSkge1xuICAgIHJldHVybiBwcm9wTWV0YWRhdGEoZ2V0VUlBdHRyaWJ1dGVLZXkocHJvcGVydHlLZXksIFVJS2V5cy5PUkRFUiksIG9yZGVyKShcbiAgICAgIG9iamVjdCxcbiAgICAgIHByb3BlcnR5S2V5XG4gICAgKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVjb3JhdG9yIHRoYXQgY29tcGxldGVseSBoaWRlcyBhIHByb3BlcnR5IGluIGFsbCBVSSBvcGVyYXRpb25zXG4gKiBAc3VtbWFyeSBNYWtlcyBhIHByb3BlcnR5IGludmlzaWJsZSBpbiBhbGwgQ1JVRCBvcGVyYXRpb25zXG4gKiBUaGlzIGRlY29yYXRvciBpcyBhIGNvbnZlbmllbmNlIHdyYXBwZXIgYXJvdW5kIGhpZGVPbiB0aGF0IGhpZGVzIGEgcHJvcGVydHlcbiAqIGR1cmluZyBhbGwgQ1JVRCBvcGVyYXRpb25zIChDUkVBVEUsIFJFQUQsIFVQREFURSwgREVMRVRFKS5cbiAqXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBwcm9wZXJ0eSBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gaGlkZGVuXG4gKiBAY2F0ZWdvcnkgUHJvcGVydHkgRGVjb3JhdG9yc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb21wbGV0ZWx5IGhpZGUgdGhlIGludGVybmFsSWQgZmllbGQgaW4gdGhlIFVJXG4gKiBjbGFzcyBQcm9kdWN0IHtcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIG5hbWU6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAaGlkZGVuKClcbiAqICAgaW50ZXJuYWxJZDogc3RyaW5nO1xuICogfVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgTW9kZWxcbiAqICAgcGFydGljaXBhbnQgaGlkZGVuXG4gKiAgIHBhcnRpY2lwYW50IGhpZGVPblxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgTW9kZWwtPj5oaWRkZW46IEFwcGx5IHRvIHByb3BlcnR5XG4gKiAgIGhpZGRlbi0+PmhpZGVPbjogQ2FsbCB3aXRoIGFsbCBvcGVyYXRpb25zXG4gKiAgIGhpZGVPbi0+Pk1vZGVsOiBBZGQgaGlkZGVuIG1ldGFkYXRhXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+Pk1vZGVsOiBDaGVjayBpZiBwcm9wZXJ0eSBzaG91bGQgYmUgaGlkZGVuXG4gKiAgIE1vZGVsLT4+UmVuZGVyaW5nRW5naW5lOiBSZXR1cm4gYWxsIG9wZXJhdGlvbnNcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+VUk6IEFsd2F5cyBoaWRlIHByb3BlcnR5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoaWRkZW4oKSB7XG4gIHJldHVybiBoaWRlT24oXG4gICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgT3BlcmF0aW9uS2V5cy5SRUFELFxuICAgIE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgIE9wZXJhdGlvbktleXMuREVMRVRFXG4gICk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IHNwZWNpZmllcyBob3cgYSBwcm9wZXJ0eSBzaG91bGQgYmUgcmVuZGVyZWQgYXMgYSBVSSBlbGVtZW50XG4gKiBAc3VtbWFyeSBNYXBzIGEgbW9kZWwgcHJvcGVydHkgdG8gYSBzcGVjaWZpYyBVSSBlbGVtZW50IHdpdGggY3VzdG9tIHByb3BlcnRpZXNcbiAqIFRoaXMgZGVjb3JhdG9yIGFsbG93cyB5b3UgdG8gZGVmaW5lIHdoaWNoIEhUTUwgZWxlbWVudCBvciBjb21wb25lbnQgc2hvdWxkIGJlIHVzZWRcbiAqIHRvIHJlbmRlciBhIHNwZWNpZmljIHByb3BlcnR5LCBhbG9uZyB3aXRoIGFueSBhZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gcGFzcyB0byB0aGF0IGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRhZyBUaGUgSFRNTCBlbGVtZW50IG9yIGNvbXBvbmVudCB0YWcgbmFtZSB0byB1c2UgZm9yIHJlbmRlcmluZ1xuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBbcHJvcHNdIEFkZGl0aW9uYWwgcHJvcGVydGllcyB0byBwYXNzIHRvIHRoZSBlbGVtZW50XG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtzZXJpYWxpemU9ZmFsc2VdIFdoZXRoZXIgdGhlIHByb3BlcnR5IHNob3VsZCBiZSBzZXJpYWxpemVkXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBwcm9wZXJ0eSBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gdWllbGVtZW50XG4gKiBAY2F0ZWdvcnkgUHJvcGVydHkgRGVjb3JhdG9yc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBSZW5kZXIgYSBwcm9wZXJ0eSBhcyBhIHRleHQgaW5wdXRcbiAqIGNsYXNzIExvZ2luRm9ybSB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWllbGVtZW50KCdpbnB1dCcsIHsgdHlwZTogJ3RleHQnLCBwbGFjZWhvbGRlcjogJ0VudGVyIHVzZXJuYW1lJyB9KVxuICogICB1c2VybmFtZTogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aWVsZW1lbnQoJ2lucHV0JywgeyB0eXBlOiAncGFzc3dvcmQnLCBwbGFjZWhvbGRlcjogJ0VudGVyIHBhc3N3b3JkJyB9KVxuICogICBwYXNzd29yZDogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aWVsZW1lbnQoJ2J1dHRvbicsIHsgY2xhc3M6ICdidG4tcHJpbWFyeScgfSlcbiAqICAgc3VibWl0OiBzdHJpbmcgPSAnTG9naW4nO1xuICogfVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgTW9kZWxcbiAqICAgcGFydGljaXBhbnQgdWllbGVtZW50XG4gKiAgIHBhcnRpY2lwYW50IFJlbmRlcmluZ0VuZ2luZVxuICogICBwYXJ0aWNpcGFudCBVSVxuICogICBNb2RlbC0+PnVpZWxlbWVudDogQXBwbHkgdG8gcHJvcGVydHlcbiAqICAgdWllbGVtZW50LT4+TW9kZWw6IEFkZCBlbGVtZW50IG1ldGFkYXRhXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+Pk1vZGVsOiBHZXQgZWxlbWVudCBtZXRhZGF0YVxuICogICBNb2RlbC0+PlJlbmRlcmluZ0VuZ2luZTogUmV0dXJuIHRhZyBhbmQgcHJvcHNcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+VUk6IFJlbmRlciB3aXRoIHNwZWNpZmllZCBlbGVtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aWVsZW1lbnQoXG4gIHRhZzogc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgYW55PixcbiAgcHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICBzZXJpYWxpemU6IGJvb2xlYW4gPSBmYWxzZVxuKSB7XG4gIHJldHVybiAob3JpZ2luYWw6IGFueSwgcHJvcGVydHlLZXk/OiBhbnkpID0+IHtcbiAgICBpZiAodHlwZW9mIHRhZyA9PT0gXCJvYmplY3RcIikge1xuICAgICAgcHJvcHMgPSB0YWc7XG4gICAgICB0YWcgPSBcIlwiO1xuICAgIH1cbiAgICBjb25zdCBtZXRhZGF0YTogVUlFbGVtZW50TWV0YWRhdGEgPSB7XG4gICAgICB0YWc6IHRhZyBhcyBzdHJpbmcsXG4gICAgICBzZXJpYWxpemU6IHNlcmlhbGl6ZSxcbiAgICAgIHByb3BzOiBPYmplY3QuYXNzaWduKHt9LCBwcm9wcyB8fCB7fSwge1xuICAgICAgICBuYW1lOiBwcm9wZXJ0eUtleSxcbiAgICAgIH0pLFxuICAgIH07XG5cbiAgICByZXR1cm4gcHJvcE1ldGFkYXRhKFxuICAgICAgZ2V0VUlBdHRyaWJ1dGVLZXkocHJvcGVydHlLZXksIFVJS2V5cy5FTEVNRU5UKSxcbiAgICAgIG1ldGFkYXRhXG4gICAgKShvcmlnaW5hbCwgcHJvcGVydHlLZXkpO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBtYXBzIGEgbW9kZWwgcHJvcGVydHkgdG8gYSBVSSBjb21wb25lbnQgcHJvcGVydHlcbiAqIEBzdW1tYXJ5IFNwZWNpZmllcyBob3cgYSBwcm9wZXJ0eSBzaG91bGQgYmUgcGFzc2VkIHRvIGEgVUkgY29tcG9uZW50XG4gKiBUaGlzIGRlY29yYXRvciBhbGxvd3MgeW91IHRvIGRlZmluZSBob3cgYSBtb2RlbCBwcm9wZXJ0eSBzaG91bGQgYmUgbWFwcGVkIHRvXG4gKiBhIHByb3BlcnR5IG9mIHRoZSBVSSBjb21wb25lbnQgd2hlbiByZW5kZXJpbmcuIEl0IHJlcXVpcmVzIHRoZSBjbGFzcyB0byBiZVxuICogZGVjb3JhdGVkIHdpdGggQHVpbW9kZWwuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFtwcm9wTmFtZV0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHBhc3MgdG8gdGhlIGNvbXBvbmVudCAoZGVmYXVsdHMgdG8gdGhlIHByb3BlcnR5IGtleSlcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3N0cmluZ2lmeT1mYWxzZV0gV2hldGhlciB0byBzdHJpbmdpZnkgdGhlIHByb3BlcnR5IHZhbHVlXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBwcm9wZXJ0eSBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gdWlwcm9wXG4gKiBAY2F0ZWdvcnkgUHJvcGVydHkgRGVjb3JhdG9yc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBNYXAgbW9kZWwgcHJvcGVydGllcyB0byBjb21wb25lbnQgcHJvcGVydGllc1xuICogQHVpbW9kZWwoJ3VzZXItcHJvZmlsZScpXG4gKiBjbGFzcyBVc2VyUHJvZmlsZSB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWlwcm9wKCkgLy8gV2lsbCBiZSBwYXNzZWQgYXMgJ2Z1bGxOYW1lJyB0byB0aGUgY29tcG9uZW50XG4gKiAgIGZ1bGxOYW1lOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpcHJvcCgndXNlckVtYWlsJykgLy8gV2lsbCBiZSBwYXNzZWQgYXMgJ3VzZXJFbWFpbCcgdG8gdGhlIGNvbXBvbmVudFxuICogICBlbWFpbDogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aXByb3AoJ3VzZXJEYXRhJywgdHJ1ZSkgLy8gV2lsbCBiZSBwYXNzZWQgYXMgc3RyaW5naWZpZWQgSlNPTlxuICogICB1c2VyRGF0YTogUmVjb3JkPHN0cmluZywgYW55PjtcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IHVpcHJvcFxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgcGFydGljaXBhbnQgQ29tcG9uZW50XG4gKiAgIE1vZGVsLT4+dWlwcm9wOiBBcHBseSB0byBwcm9wZXJ0eVxuICogICB1aXByb3AtPj5Nb2RlbDogQWRkIHByb3AgbWV0YWRhdGFcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+TW9kZWw6IEdldCBwcm9wIG1ldGFkYXRhXG4gKiAgIE1vZGVsLT4+UmVuZGVyaW5nRW5naW5lOiBSZXR1cm4gcHJvcCBuYW1lIGFuZCBzdHJpbmdpZnkgZmxhZ1xuICogICBSZW5kZXJpbmdFbmdpbmUtPj5Db21wb25lbnQ6IFBhc3MgcHJvcGVydHkgd2l0aCBzcGVjaWZpZWQgbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdWlwcm9wKFxuICBwcm9wTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBzdHJpbmdpZnk6IGJvb2xlYW4gPSBmYWxzZVxuKSB7XG4gIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5PzogYW55KSA9PiB7XG4gICAgY29uc3QgbWV0YWRhdGE6IFVJUHJvcE1ldGFkYXRhID0ge1xuICAgICAgbmFtZTogcHJvcE5hbWUgfHwgcHJvcGVydHlLZXksXG4gICAgICBzdHJpbmdpZnk6IHN0cmluZ2lmeSxcbiAgICB9O1xuICAgIHByb3BNZXRhZGF0YShnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSwgVUlLZXlzLlBST1ApLCBtZXRhZGF0YSkoXG4gICAgICB0YXJnZXQsXG4gICAgICBwcm9wZXJ0eUtleVxuICAgICk7XG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IG1hcHMgYSBuZXN0ZWQgbW9kZWwgcHJvcGVydHkgdG8gYSBVSSBjb21wb25lbnQgcHJvcGVydHkuXG4gKiBAc3VtbWFyeSBEZWZpbmVzIGhvdyBhIHBhcmVudCBjb21wb25lbnQgc2hvdWxkIHJlbmRlciB0aGUgY2hpbGQgbW9kZWwgd2hlbiBuZXN0ZWQuXG4gKlxuICogVGhpcyBkZWNvcmF0b3IgaXMgdXNlZCB0byBkZWNvcmF0ZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5lc3RlZCBtb2RlbHMuXG4gKiBXaGVuIGFwcGxpZWQsIGl0IGFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IHRhZyBvZiB0aGUgY2hpbGQgbW9kZWwgd2l0aCB0aGUgcHJvdmlkZWQgb25lLFxuICogZW5hYmxpbmcgZGlmZmVyZW50IHJlbmRlcmluZyBiZWhhdmlvciB3aGVuIHRoZSBtb2RlbCBhY3RzIGFzIGEgY2hpbGQgKG5lc3RlZClcbiAqIGNvbXBhcmVkIHRvIHdoZW4gaXQgaXMgcmVuZGVyZWQgYXMgdGhlIHBhcmVudCBtb2RlbC5cbiAqXG4gKiBJdCByZXF1aXJlcyB0aGUgY2xhc3MgdG8gYmUgZGVjb3JhdGVkIHdpdGggYEB1aW1vZGVsYC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gY2xhenogVGhlIG1vZGVsIGNsYXNzIG5hbWUgdG8gcGFzcyB0byB0aGUgY29tcG9uZW50IChkZWZhdWx0cyB0byB0aGUgcHJvcGVydHkga2V5KS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIEhUTUwgZWxlbWVudCBvciBjb21wb25lbnQgdGFnIG5hbWUgdG8gb3ZlcnJpZGUgdGhlIFVJIHRhZyBvZiB0aGUgbmVzdGVkIG1vZGVsXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IFtwcm9wc10gQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRvIHBhc3MgdG8gdGhlIGVsZW1lbnRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3NlcmlhbGl6ZT1mYWxzZV0gV2hldGhlciB0aGUgcHJvcGVydHkgc2hvdWxkIGJlIHNlcmlhbGl6ZWRcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIHByb3BlcnR5IGRlY29yYXRvciBmdW5jdGlvbi5cbiAqXG4gKiBAZnVuY3Rpb24gdWljaGlsZFxuICogQGNhdGVnb3J5IFByb3BlcnR5IERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gTWFwIGEgbmVzdGVkIG1vZGVsIHRvIGEgY29tcG9uZW50IHByb3BlcnR5IHdpdGggYSBkaWZmZXJlbnQgdGFnIHdoZW4gbmVzdGVkXG4gKiBAdWltb2RlbCgnYWRkcmVzcy1jb21wb25lbnQnKVxuICogY2xhc3MgQWRkcmVzcyB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBzdHJlZXQ6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBjaXR5OiBzdHJpbmc7XG4gKiB9XG4gKlxuICogQHVpbW9kZWwoJ3VzZXItcHJvZmlsZScpXG4gKiBjbGFzcyBVc2VyUHJvZmlsZSB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWljaGlsZChBZGRyZXNzLm5hbWUsICdhZGRyZXNzLWNoaWxkLWNvbXBvbmVudCcpXG4gKiAgIGFkZHJlc3M6IEFkZHJlc3M7XG4gKiB9XG4gKlxuICogLy8gSW4gdGhpcyBleGFtcGxlLCB0aGUgQWRkcmVzcyBtb2RlbCBoYXMgdGhlIGRlZmF1bHQgdGFnICdhZGRyZXNzLWNvbXBvbmVudCcgd2hlbiByZW5kZXJlZCBhcyBhIHJvb3QgY29tcG9uZW50LFxuICogLy8gYnV0IHdoZW4gdXNlZCBpbnNpZGUgVXNlclByb2ZpbGUsIGl0IGlzIHJlbmRlcmVkIHdpdGggdGhlIG92ZXJyaWRkZW4gdGFnICdhZGRyZXNzLWNoaWxkLWNvbXBvbmVudCdcbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IHVpY2hpbGRcbiAqICAgcGFydGljaXBhbnQgUmVuZGVyaW5nRW5naW5lXG4gKiAgIHBhcnRpY2lwYW50IENvbXBvbmVudFxuICogICBNb2RlbC0+PnVpY2hpbGQ6IEFwcGx5IHRvIHByb3BlcnR5XG4gKiAgIHVpY2hpbGQtPj5Nb2RlbDogQWRkIGNoaWxkIG1ldGFkYXRhXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+Pk1vZGVsOiBHZXQgY2hpbGQgbWV0YWRhdGFcbiAqICAgTW9kZWwtPj5SZW5kZXJpbmdFbmdpbmU6IFJldHVybiBwcm9wIG5hbWUsIHN0cmluZ2lmeSBmbGFnLCBhbmQgY2hpbGQgdGFnIG92ZXJyaWRlXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+PkNvbXBvbmVudDogUGFzcyBwcm9wZXJ0eSB3aXRoIHNwZWNpZmllZCBuYW1lIGFuZCByZW5kZXIgd2l0aCBvdmVycmlkZGVuIHRhZyBpZiBuZXN0ZWRcbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gdWljaGlsZChcbiAgY2xheno6IHN0cmluZyxcbiAgdGFnOiBzdHJpbmcsXG4gIHByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30sXG4gIGlzQXJyYXk6IGJvb2xlYW4gPSBmYWxzZSxcbiAgc2VyaWFsaXplOiBib29sZWFuID0gZmFsc2Vcbikge1xuICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleT86IGFueSkgPT4ge1xuICAgIGNvbnN0IG1ldGFkYXRhOiBVSUVsZW1lbnRNZXRhZGF0YSA9IHtcbiAgICAgIHRhZzogdGFnLFxuICAgICAgc2VyaWFsaXplOiBzZXJpYWxpemUsXG4gICAgICBwcm9wczogT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30sXG4gICAgICAgIHByb3BzIHx8IHt9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogY2xhenogfHwgcHJvcGVydHlLZXksXG4gICAgICAgIH0sXG4gICAgICAgIGlzQXJyYXlcbiAgICAgICAgICA/IHsgY3VzdG9tVHlwZXM6IFtBcnJheS5uYW1lXSwgbXVsdGlwbGU6IHRydWUgfVxuICAgICAgICAgIDogeyBtdWx0aXBsZTogcHJvcHM/Lm11bHRpcGxlIHx8IGZhbHNlIH1cbiAgICAgICksXG4gICAgfTtcblxuICAgIHByb3BNZXRhZGF0YShnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSwgVUlLZXlzLkNISUxEKSwgbWV0YWRhdGEpKFxuICAgICAgdGFyZ2V0LFxuICAgICAgcHJvcGVydHlLZXlcbiAgICApO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBtYXBzIGEgbW9kZWwgcHJvcGVydHkgdG8gYSBsaXN0IGl0ZW0gY29tcG9uZW50XG4gKiBAc3VtbWFyeSBTcGVjaWZpZXMgaG93IGEgcHJvcGVydHkgc2hvdWxkIGJlIHJlbmRlcmVkIGluIGEgbGlzdCBjb250ZXh0XG4gKiBUaGlzIGRlY29yYXRvciBhbGxvd3MgeW91IHRvIGRlZmluZSBob3cgYSBtb2RlbCBwcm9wZXJ0eSBjb250YWluaW5nIGEgbGlzdFxuICogc2hvdWxkIGJlIHJlbmRlcmVkLiBJdCByZXF1aXJlcyB0aGUgY2xhc3MgdG8gYmUgZGVjb3JhdGVkIHdpdGggQHVpbGlzdG1vZGVsLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbcHJvcE5hbWVdIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBwYXNzIHRvIHRoZSBsaXN0IGNvbXBvbmVudCAoZGVmYXVsdHMgdG8gdGhlIHByb3BlcnR5IGtleSlcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gW3Byb3BzXSBBZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gcGFzcyB0byB0aGUgbGlzdCBjb250YWluZXJcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIHByb3BlcnR5IGRlY29yYXRvciBmdW5jdGlvblxuICpcbiAqIEBmdW5jdGlvbiB1aWxpc3Rwcm9wXG4gKiBAY2F0ZWdvcnkgUHJvcGVydHkgRGVjb3JhdG9yc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBEZWZpbmUgYSBsaXN0IHByb3BlcnR5IHdpdGggY3VzdG9tIHJlbmRlcmluZ1xuICogQHVpbW9kZWwoJ3RvZG8tbGlzdCcpXG4gKiBjbGFzcyBUb2RvTGlzdCB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICB0aXRsZTogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aWxpc3Rwcm9wKCdpdGVtcycsIHsgY2xhc3M6ICd0b2RvLWl0ZW1zLWNvbnRhaW5lcicgfSlcbiAqICAgaXRlbXM6IFRvZG9JdGVtW107XG4gKiB9XG4gKlxuICogQHVpbGlzdG1vZGVsKCdsaScsIHsgY2xhc3M6ICd0b2RvLWl0ZW0nIH0pXG4gKiBjbGFzcyBUb2RvSXRlbSBleHRlbmRzIE1vZGVsIHtcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIHRleHQ6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBjb21wbGV0ZWQ6IGJvb2xlYW47XG4gKiB9XG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBNb2RlbFxuICogICBwYXJ0aWNpcGFudCB1aWxpc3Rwcm9wXG4gKiAgIHBhcnRpY2lwYW50IFJlbmRlcmluZ0VuZ2luZVxuICogICBwYXJ0aWNpcGFudCBMaXN0Q29udGFpbmVyXG4gKiAgIHBhcnRpY2lwYW50IExpc3RJdGVtc1xuICogICBNb2RlbC0+PnVpbGlzdHByb3A6IEFwcGx5IHRvIHByb3BlcnR5XG4gKiAgIHVpbGlzdHByb3AtPj5Nb2RlbDogQWRkIGxpc3QgcHJvcCBtZXRhZGF0YVxuICogICBSZW5kZXJpbmdFbmdpbmUtPj5Nb2RlbDogR2V0IGxpc3QgcHJvcCBtZXRhZGF0YVxuICogICBNb2RlbC0+PlJlbmRlcmluZ0VuZ2luZTogUmV0dXJuIHByb3AgbmFtZSBhbmQgY29udGFpbmVyIHByb3BzXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+Pkxpc3RDb250YWluZXI6IENyZWF0ZSBjb250YWluZXIgd2l0aCBwcm9wc1xuICogICBSZW5kZXJpbmdFbmdpbmUtPj5MaXN0SXRlbXM6IFJlbmRlciBlYWNoIGl0ZW0gdXNpbmcgQHVpbGlzdG1vZGVsXG4gKiAgIExpc3RDb250YWluZXItPj5SZW5kZXJpbmdFbmdpbmU6IFJldHVybiByZW5kZXJlZCBsaXN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aWxpc3Rwcm9wKFxuICBwcm9wTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBwcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT5cbikge1xuICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleT86IGFueSkgPT4ge1xuICAgIGNvbnN0IG1ldGFkYXRhOiBQYXJ0aWFsPFVJTGlzdFByb3BNZXRhZGF0YT4gPSB7XG4gICAgICBuYW1lOiBwcm9wTmFtZSB8fCBwcm9wZXJ0eUtleSxcbiAgICAgIHByb3BzOiBwcm9wcyB8fCB7fSxcbiAgICB9O1xuICAgIHByb3BNZXRhZGF0YShnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSwgVUlLZXlzLlVJTElTVFBST1ApLCBtZXRhZGF0YSkoXG4gICAgICB0YXJnZXQsXG4gICAgICBwcm9wZXJ0eUtleVxuICAgICk7XG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IHBvc2l0aW9ucyBhIHByb3BlcnR5IGluIGEgc3BlY2lmaWMgZ3JpZCBsYXlvdXQgcG9zaXRpb25cbiAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgY29sdW1uIGFuZCByb3cgcG9zaXRpb24gZm9yIGEgcHJvcGVydHkgaW4gYSBVSSBsYXlvdXQgZ3JpZFxuICogVGhpcyBkZWNvcmF0b3IgYWxsb3dzIHlvdSB0byBkZWZpbmUgdGhlIHNwZWNpZmljIHBvc2l0aW9uIG9mIGEgcHJvcGVydHkgd2l0aGluXG4gKiBhIGdyaWQtYmFzZWQgbGF5b3V0IHN5c3RlbS4gSXQgc3BlY2lmaWVzIHdoaWNoIGNvbHVtbiBhbmQgcm93IHRoZSBwcm9wZXJ0eVxuICogc2hvdWxkIG9jY3VweSB3aGVuIHJlbmRlcmVkIGluIHRoZSBVSS5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gY29sIFRoZSBjb2x1bW4gcG9zaXRpb24gaW4gdGhlIGdyaWQgbGF5b3V0XG4gKiBAcGFyYW0ge251bWJlcn0gW3Jvdz0xXSBUaGUgcm93IHBvc2l0aW9uIGluIHRoZSBncmlkIGxheW91dCAoZGVmYXVsdHMgdG8gMSlcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gW3Byb3BzPXt9XSBBZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gcGFzcyB0byB0aGUgbGF5b3V0IGl0ZW1cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIHByb3BlcnR5IGRlY29yYXRvciBmdW5jdGlvblxuICpcbiAqIEBmdW5jdGlvbiB1aWxheW91dHByb3BcbiAqIEBjYXRlZ29yeSBQcm9wZXJ0eSBEZWNvcmF0b3JzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFBvc2l0aW9uIHByb3BlcnRpZXMgaW4gYSBncmlkIGxheW91dFxuICogQHVpbGF5b3V0KCd1c2VyLWZvcm0nLCAyLCAzKSAvLyAyIGNvbHVtbnMsIDMgcm93c1xuICogQG1vZGVsKClcbiAqIGNsYXNzIFVzZXJGb3JtIHtcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aWxheW91dHByb3AoMSwgMSkgLy8gT25lIGNvbHVtbiwgZmlyc3Qgcm93XG4gKiAgIGZpcnN0TmFtZTogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aWxheW91dHByb3AoMiwgMSkgLy8gT25lIGNvbHVtbiwgZmlyc3Qgcm93XG4gKiAgIGxhc3ROYW1lOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpbGF5b3V0cHJvcCgxLCAyKSAvLyBPbmUgY29sdW1uLCBzZWNvbmQgcm93XG4gKiAgIGVtYWlsOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpbGF5b3V0cHJvcCgyLCAzKSAvLyBBbGwgY29sdW1ucywgdGhpcmQgcm93XG4gKiAgIGJpbzogc3RyaW5nO1xuICogfVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgTW9kZWxcbiAqICAgcGFydGljaXBhbnQgdWlsYXlvdXRwcm9wXG4gKiAgIHBhcnRpY2lwYW50IFJlbmRlcmluZ0VuZ2luZVxuICogICBwYXJ0aWNpcGFudCBMYXlvdXRDb250YWluZXJcbiAqICAgTW9kZWwtPj51aWxheW91dHByb3A6IEFwcGx5IHRvIHByb3BlcnR5XG4gKiAgIHVpbGF5b3V0cHJvcC0+Pk1vZGVsOiBBZGQgbGF5b3V0IGl0ZW0gbWV0YWRhdGFcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+TW9kZWw6IEdldCBsYXlvdXQgaXRlbSBtZXRhZGF0YVxuICogICBNb2RlbC0+PlJlbmRlcmluZ0VuZ2luZTogUmV0dXJuIGNvbHVtbiwgcm93LCBhbmQgcHJvcHNcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+TGF5b3V0Q29udGFpbmVyOiBQb3NpdGlvbiBlbGVtZW50IGF0IGdyaWQgY29vcmRpbmF0ZXNcbiAqICAgTGF5b3V0Q29udGFpbmVyLT4+UmVuZGVyaW5nRW5naW5lOiBSZXR1cm4gcG9zaXRpb25lZCBlbGVtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aWxheW91dHByb3AoY29sOiBVSUxheW91dENvbCA9IDEsIHJvdzogbnVtYmVyID0gMSkge1xuICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleT86IGFueSkgPT4ge1xuICAgIGNvbnN0IG1ldGFkYXRhOiBVSUxheW91dFByb3BNZXRhZGF0YSA9IHtcbiAgICAgIG5hbWU6IHByb3BlcnR5S2V5LFxuICAgICAgLy8gY29sLFxuICAgICAgLy8gcm93LFxuICAgICAgcHJvcHM6IE9iamVjdC5hc3NpZ24oe30sIHsgcm93LCBjb2wgfSksXG4gICAgfTtcbiAgICBwcm9wTWV0YWRhdGEoZ2V0VUlBdHRyaWJ1dGVLZXkocHJvcGVydHlLZXksIFVJS2V5cy5VSUxBWU9VVFBST1ApLCBtZXRhZGF0YSkoXG4gICAgICB0YXJnZXQsXG4gICAgICBwcm9wZXJ0eUtleVxuICAgICk7XG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IGFzc2lnbnMgYSBwcm9wZXJ0eSB0byBhIHNwZWNpZmljIHBhZ2UgaW4gbXVsdGktcGFnZSBmb3Jtc1xuICogQHN1bW1hcnkgU3BlY2lmaWVzIHdoaWNoIHBhZ2UgYSBwcm9wZXJ0eSBzaG91bGQgYXBwZWFyIG9uIGluIHBhZ2luYXRlZCBVSSBsYXlvdXRzXG4gKiBUaGlzIGRlY29yYXRvciBhcHBsaWVzIG1ldGFkYXRhIHRvIHRoZSBwcm9wZXJ0eSwgaW5kaWNhdGluZyB3aGljaCBwYWdlIG51bWJlciBpdCBiZWxvbmdzIHRvXG4gKiBpbiBhIG11bHRpLXBhZ2UgZm9ybSBvciB3aXphcmQuIFByb3BlcnRpZXMgd2l0aCB0aGUgc2FtZSBwYWdlIG51bWJlciBhcmUgZ3JvdXBlZCB0b2dldGhlclxuICogYW5kIHJlbmRlcmVkIG9uIHRoZSBzYW1lIHBhZ2UuIFRoaXMgaXMgdHlwaWNhbGx5IHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBAdWlzdGVwcGVkbW9kZWwgdG9cbiAqIG9yZ2FuaXplIGxhcmdlIGZvcm1zIGludG8gbWFuYWdlYWJsZSBzZWN0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gW3BhZ2U9MV0gVGhlIHBhZ2UgbnVtYmVyIHdoZXJlIHRoZSBwcm9wZXJ0eSBzaG91bGQgYXBwZWFyIChkZWZhdWx0IGlzIDEpXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBwcm9wZXJ0eSBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gdWlwYWdlcHJvcFxuICogQGNhdGVnb3J5IFByb3BlcnR5IERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ3JlYXRlIGEgbXVsdGktc3RlcCByZWdpc3RyYXRpb24gZm9ybSB3aXRoIHBhZ2UtYmFzZWQgbGF5b3V0XG4gKiBAdWlzdGVwcGVkbW9kZWwoJ3JlZ2lzdHJhdGlvbi1mb3JtJywgMiwgdHJ1ZSlcbiAqIEBtb2RlbCgpXG4gKiBjbGFzcyBSZWdpc3RyYXRpb25Gb3JtIHtcbiAqICAgLy8gUGFnZSAxOiBQZXJzb25hbCBJbmZvcm1hdGlvblxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpcGFnZXByb3AoMSlcbiAqICAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpcGFnZXByb3AoMSlcbiAqICAgbGFzdE5hbWU6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWlwYWdlcHJvcCgxKVxuICogICBkYXRlT2ZCaXJ0aDogRGF0ZTtcbiAqXG4gKiAgIC8vIFBhZ2UgMjogQ29udGFjdCBJbmZvcm1hdGlvblxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpcGFnZXByb3AoMilcbiAqICAgZW1haWw6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWlwYWdlcHJvcCgyKVxuICogICBwaG9uZTogc3RyaW5nO1xuICpcbiAqICAgLy8gUGFnZSAzOiBDb25maXJtYXRpb25cbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aXBhZ2Vwcm9wKDMpXG4gKiAgIGFjY2VwdFRlcm1zOiBib29sZWFuO1xuICogfVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgTW9kZWxcbiAqICAgcGFydGljaXBhbnQgdWlwYWdlcHJvcFxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgcGFydGljaXBhbnQgUGFnaW5hdGlvbkNvbnRyb2xsZXJcbiAqICAgcGFydGljaXBhbnQgVUlcbiAqICAgTW9kZWwtPj51aXBhZ2Vwcm9wOiBBcHBseSB0byBwcm9wZXJ0eVxuICogICB1aXBhZ2Vwcm9wLT4+TW9kZWw6IEFkZCBwYWdlIG1ldGFkYXRhXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+Pk1vZGVsOiBHZXQgcGFnZSBtZXRhZGF0YVxuICogICBNb2RlbC0+PlJlbmRlcmluZ0VuZ2luZTogUmV0dXJuIHBhZ2UgbnVtYmVyXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+PlBhZ2luYXRpb25Db250cm9sbGVyOiBHcm91cCBwcm9wZXJ0aWVzIGJ5IHBhZ2VcbiAqICAgUGFnaW5hdGlvbkNvbnRyb2xsZXItPj5VSTogUmVuZGVyIGN1cnJlbnQgcGFnZSBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aXBhZ2Vwcm9wKHBhZ2U6IG51bWJlciA9IDEpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHVpcGFnZXByb3Aob3JpZ2luYWw6IGFueSwgcHJvcGVydHlLZXk/OiBhbnkpIHtcbiAgICByZXR1cm4gcHJvcE1ldGFkYXRhKGdldFVJQXR0cmlidXRlS2V5KHByb3BlcnR5S2V5LCBVSUtleXMuUEFHRSksIHBhZ2UpKFxuICAgICAgb3JpZ2luYWwsXG4gICAgICBwcm9wZXJ0eUtleVxuICAgICk7XG4gIH07XG59XG5cbi8qKlxuICogQSBkZWNvcmF0b3IgZmFjdG9yeSB0aGF0IGJpbmRzIGEgVUkgZXZlbnQgdG8gYSBzcGVjaWZpZWQgaGFuZGxlciBmdW5jdGlvbi5cbiAqIFRoaXMgaXMgdXNlZCB0byBhdHRhY2ggZXZlbnQgaGFuZGxlcnMgdG8gc3BlY2lmaWMgbGlmZWN5Y2xlIGV2ZW50cyBvZiBhIGBEZWNhZkNvbXBvbmVudGAsXG4gKiBzdWNoIGFzIGByZW5kZXJgIHwgYGluaXRpYWxpemVgIHwgYGhhbmRsZUNsaWNrYCB8IGByZWZyZXNoYFxuICpcbiAqIEBwYXJhbSBldmVudCAtIFRoZSBuYW1lIG9mIHRoZSBsaWZlY3ljbGUgZXZlbnQgdG8gYmluZCB0aGUgaGFuZGxlciB0by5cbiAqICAgICAgICAgICAgICAgIE11c3QgYmUgb25lIG9mIHRoZSBrZXlzIGluIGBQaWNrPERlY2FmQ29tcG9uZW50LCAncmVuZGVyJyB8ICdpbml0aWFsaXplJz5gLlxuICogQHBhcmFtIGhhbmRsZXIgLSBUaGUgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgd2hlbiB0aGUgc3BlY2lmaWVkIGV2ZW50IG9jY3Vycy5cbiAqXG4gKiBAcmV0dXJucyBBIGRlY29yYXRvciBmdW5jdGlvbiB0aGF0IGFwcGxpZXMgdGhlIGV2ZW50LWhhbmRsZXIgYmluZGluZyB0byB0aGUgdGFyZ2V0IG9iamVjdC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY2xhc3MgTXlDb21wb25lbnQge1xuICogICBAdWlvbigncmVuZGVyJywgKCkgPT4gY29uc29sZS5sb2coJ1JlbmRlcmluZy4uLicpKVxuICogICBzb21lUHJvcGVydHk6IHN0cmluZztcbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdWlvbihcbiAgZXZlbnQ6IFVJRXZlbnROYW1lLFxuICBoYW5kbGVyOiBVSUV2ZW50SGFuZGxlclxuKTogKG9yaWdpbmFsOiBvYmplY3QsIHByb3BlcnR5S2V5Pzogc3RyaW5nKSA9PiB2b2lkO1xuZXhwb3J0IGZ1bmN0aW9uIHVpb24oXG4gIGV2ZW50czogUmVjb3JkPHN0cmluZywgVUlFdmVudEhhbmRsZXI+XG4pOiAob3JpZ2luYWw6IG9iamVjdCwgcHJvcGVydHlLZXk/OiBzdHJpbmcpID0+IHZvaWQ7XG5leHBvcnQgZnVuY3Rpb24gdWlvbihcbiAgZXZlbnQ6IFVJRXZlbnROYW1lIHwgUmVjb3JkPHN0cmluZywgVUlFdmVudEhhbmRsZXI+LFxuICBoYW5kbGVyPzogVUlFdmVudEhhbmRsZXJcbikge1xuICByZXR1cm4gZnVuY3Rpb24gdWlvbihvcmlnaW5hbDogb2JqZWN0LCBwcm9wZXJ0eUtleT86IHN0cmluZykge1xuICAgIHByb3BNZXRhZGF0YShnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSBhcyBzdHJpbmcsIFVJS2V5cy5FVkVOVFMpLCB7XG4gICAgICAuLi4odHlwZW9mIGV2ZW50ID09PSBcIm9iamVjdFwiID8gZXZlbnQgOiB7IFtldmVudF06IGhhbmRsZXIgfSksXG4gICAgfSkob3JpZ2luYWwsIHByb3BlcnR5S2V5KTtcbiAgfTtcbn1cblxuLyoqXG4gKiBBIGRlY29yYXRvciBmdW5jdGlvbiB0aGF0IGFzc29jaWF0ZXMgYSBVSSBjbGljayBoYW5kbGVyIHdpdGggdGhlICdoYW5kbGVDbGljaycgZXZlbnQuXG4gKlxuICogQHBhcmFtIGhhbmRsZXIgLSBBIGZ1bmN0aW9uIHRoYXQgY29uZm9ybXMgdG8gdGhlIGBVSUV2ZW50SGFuZGxlcmAgdHlwZSwgd2hpY2ggd2lsbCBiZSBleGVjdXRlZFxuICogICAgICAgICAgICAgICAgICB3aGVuIHRoZSAnaGFuZGxlQ2xpY2snIGV2ZW50IGlzIHRyaWdnZXJlZC5cbiAqIEByZXR1cm5zIEEgZGVjb3JhdGVkIGZ1bmN0aW9uIHRoYXQgYmluZHMgdGhlIGhhbmRsZXIgdG8gdGhlICdoYW5kbGVDbGljaycgZXZlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aW9uY2xpY2soaGFuZGxlcjogVUlFdmVudEhhbmRsZXIpIHtcbiAgcmV0dXJuIHVpb24oXCJoYW5kbGVDbGlja1wiLCBoYW5kbGVyKTtcbn1cblxuLyoqXG4gKiBBIGRlY29yYXRvciBmdW5jdGlvbiB0aGF0IGFzc29jaWF0ZXMgYSBVSSByZW5kZXJpbmcgaGFuZGxlciB3aXRoIHRoZSAncmVuZGVyJyBldmVudC5cbiAqXG4gKiBAcGFyYW0gaGFuZGxlciAtIEEgZnVuY3Rpb24gdGhhdCBjb25mb3JtcyB0byB0aGUgYFVJRXZlbnRIYW5kbGVyIGAgdHlwZSwgd2hpY2ggd2lsbCBiZSBleGVjdXRlZFxuICogICAgICAgICAgICAgICAgICB3aGVuIHRoZSAncmVuZGVyJyBldmVudCBpcyB0cmlnZ2VyZWQuXG4gKiBAcmV0dXJucyBBIGRlY29yYXRlZCBmdW5jdGlvbiB0aGF0IGJpbmRzIHRoZSBoYW5kbGVyIHRvIHRoZSAncmVuZGVyJyBldmVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVpb25yZW5kZXIoaGFuZGxlcjogVUlFdmVudEhhbmRsZXIpIHtcbiAgcmV0dXJuIHVpb24oXCJyZW5kZXJcIiwgaGFuZGxlcik7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IG1hcmtzIGEgcHJvcGVydHkgYXMgYSBjb2x1bW4gaW4gYSBVSSB0YWJsZVxuICogQHN1bW1hcnkgQ29udHJvbHMgY29sdW1uIG9yZGVyaW5nIGFuZCBvcHRpb25hbCB2YWx1ZSBwYXJzaW5nIGZvciB0YWJsZSBwcm9wc1xuICogVXNlIHRoaXMgZGVjb3JhdG9yIHRvIHJlZ2lzdGVyIGxpc3QgcHJvcGVydGllcyBhcyB0YWJsZSBjb2x1bW5zLCBkZWZpbmUgdGhlXG4gKiBzZXF1ZW5jZSBpbiB3aGljaCB0aGV5IGFwcGVhciwgYW5kIG9wdGlvbmFsbHkgcHJvdmlkZSBhIHBhcnNlciB0aGF0IGZvcm1hdHNcbiAqIHRoZSB2YWx1ZSBiZWZvcmUgcmVuZGVyaW5nLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBzZXF1ZW5jZSBUaGUgZGlzcGxheSBvcmRlciBmb3IgdGhlIGNvbHVtbiAobG93ZXIgbWVhbnMgZmlyc3QpXG4gKiBAcGFyYW0ge1VJRnVuY3Rpb25MaWtlfSBbdmFsdWVQYXJzZXJGbl0gT3B0aW9uYWwgZm9ybWF0dGVyIGV4ZWN1dGVkIHBlciBjZWxsXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBwcm9wZXJ0eSBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gdWl0YWJsZWNvbFxuICogQGNhdGVnb3J5IFByb3BlcnR5IERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogY2xhc3MgT3JkZXIge1xuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpdGFibGVjb2woMSlcbiAqICAgb3JkZXJOdW1iZXI6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWl0YWJsZWNvbCgyLCAodmFsdWUpID0+IGAkJHt2YWx1ZT8udG9GaXhlZCgyKX1gKVxuICogICB0b3RhbDogbnVtYmVyO1xuICogfVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgTW9kZWxcbiAqICAgcGFydGljaXBhbnQgdWl0YWJsZWNvbFxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgcGFydGljaXBhbnQgVGFibGVcbiAqICAgTW9kZWwtPj51aXRhYmxlY29sOiBBcHBseSB0byBwcm9wZXJ0eVxuICogICB1aXRhYmxlY29sLT4+TW9kZWw6IFN0b3JlIGNvbHVtbiBtZXRhZGF0YVxuICogICBSZW5kZXJpbmdFbmdpbmUtPj5Nb2RlbDogUmV0cmlldmUgY29sdW1uIHByb3BzXG4gKiAgIE1vZGVsLT4+UmVuZGVyaW5nRW5naW5lOiBSZXR1cm4gb3JkZXIgYW5kIHBhcnNlclxuICogICBSZW5kZXJpbmdFbmdpbmUtPj5UYWJsZTogUmVuZGVyIGNvbHVtbiBpbiBzZXF1ZW5jZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdWl0YWJsZWNvbChcbiAgc2VxdWVuY2U6IG51bWJlciB8IHR5cGVvZiBVSUtleXMuRklSU1QgfCB0eXBlb2YgVUlLZXlzLkxBU1QgPSBVSUtleXMuTEFTVCxcbiAgdmFsdWVQYXJzZXJGbj86IFVJRnVuY3Rpb25MaWtlXG4pIHtcbiAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk/OiBhbnkpID0+IHtcbiAgICBjb25zdCBtZXRhZGF0YTogUGFydGlhbDxVSUxpc3RQcm9wTWV0YWRhdGE+ID0ge1xuICAgICAgbmFtZTogcHJvcGVydHlLZXksXG4gICAgICBwcm9wczoge1xuICAgICAgICBzZXF1ZW5jZSxcbiAgICAgICAgLi4uKCF2YWx1ZVBhcnNlckZuID8ge30gOiB7IHZhbHVlUGFyc2VyRm4gfSksXG4gICAgICB9LFxuICAgIH07XG4gICAgcHJvcE1ldGFkYXRhKGdldFVJQXR0cmlidXRlS2V5KHByb3BlcnR5S2V5LCBVSUtleXMuVUlMSVNUUFJPUCksIG1ldGFkYXRhKShcbiAgICAgIHRhcmdldCxcbiAgICAgIHByb3BlcnR5S2V5XG4gICAgKTtcbiAgfTtcbn1cbiJdfQ==
580
+ //# sourceMappingURL=decorators.js.map