@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
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GRAPH_RUN_TERMINAL_EVENT_TYPES = exports.DEFAULT_GRAPH_RUN_LIMITS = exports.GraphExecutionEventType = exports.GraphLogAttribute = exports.GRAPH_RUN_STATE_TOPIC = exports.GRAPH_RUN_LOG_TOPIC = exports.GRAPH_RUN_TOPIC = exports.GraphVisualState = exports.GraphExecutionStatus = exports.GRAPH_DEFAULT_DISABLED_NODE_BEHAVIOR = exports.GRAPH_DISABLED_NODE_BEHAVIORS = exports.GRAPH_DEFAULT_CATEGORY_STYLE = exports.GRAPH_VISUAL_STATE_STYLES = exports.PortDirection = exports.GraphKeys = void 0;
3
+ exports.GRAPH_RUN_TERMINAL_EVENT_TYPES = exports.DEFAULT_GRAPH_RUN_LIMITS = exports.GraphExecutionEventType = exports.GraphLogAttribute = exports.GRAPH_RUN_STATE_TOPIC = exports.GRAPH_RUN_LOG_TOPIC = exports.GRAPH_RUN_TOPIC = exports.GraphVisualState = exports.GraphExecutionStatus = exports.GRAPH_DEFAULT_DISABLED_NODE_BEHAVIOR = exports.GRAPH_DISABLED_NODE_BEHAVIORS = exports.GRAPH_DEFAULT_NODE_CORNER_RADIUS = exports.GRAPH_DEFAULT_NODE_SIZE = exports.GRAPH_DEFAULT_CATEGORY_STYLE = exports.GRAPH_VISUAL_STATE_STYLES = exports.PortDirection = exports.GraphKeys = void 0;
4
4
  exports.graphVisualStyleOf = graphVisualStyleOf;
5
+ exports.graphNodeSizeOf = graphNodeSizeOf;
5
6
  exports.registerGraphCategoryStyle = registerGraphCategoryStyle;
6
7
  exports.graphCategoryStyleOf = graphCategoryStyleOf;
7
8
  exports.resolveEffectiveColor = resolveEffectiveColor;
@@ -65,6 +66,45 @@ exports.GRAPH_DEFAULT_CATEGORY_STYLE = {
65
66
  color: "#64748b",
66
67
  icon: "ti-pointer",
67
68
  };
69
+ /**
70
+ * Fallback node size in pixels when a manifest declares no `width`/`height`
71
+ * (D1, DECAF-50 §4.5). The manifest display remains the authority; this value
72
+ * only fills an absent manifest dimension, never overriding a declared one.
73
+ */
74
+ exports.GRAPH_DEFAULT_NODE_SIZE = 96;
75
+ /**
76
+ * Default node corner radius in pixels (D1, DECAF-50 §4.5) applied only when the
77
+ * manifest declares no `cornerRadius`. Folded into the manifest display fields by
78
+ * the D1 revision; no template CSS pins the radius.
79
+ */
80
+ exports.GRAPH_DEFAULT_NODE_CORNER_RADIUS = 18;
81
+ /**
82
+ * Evaluates a node definition's manifest-declared, value-driven display rules
83
+ * (D1, DECAF-50 §4.5) against per-parameter item counts. Content growth is
84
+ * driven by the manifest, never by hardcoded per-node formulas: each matching
85
+ * `parameterCount` rule adds `perItem * count` to its dimension. Falls back to the
86
+ * manifest `width`/`height` when no rule applies.
87
+ *
88
+ * @param definition - The manifest definition carrying `width`/`height`/`sizeRules`.
89
+ * @param parameterCounts - Item counts keyed by parameter id (e.g. `cases`).
90
+ * @returns The resolved `{ width, height }` in pixels.
91
+ */
92
+ function graphNodeSizeOf(definition, parameterCounts = {}) {
93
+ let width = definition.width ?? exports.GRAPH_DEFAULT_NODE_SIZE;
94
+ let height = definition.height ?? exports.GRAPH_DEFAULT_NODE_SIZE;
95
+ for (const rule of definition.sizeRules ?? []) {
96
+ if (rule.type !== "parameterCount")
97
+ continue;
98
+ const count = parameterCounts[rule.parameter] ?? 0;
99
+ if (count <= 0)
100
+ continue;
101
+ if (rule.dimension === "width")
102
+ width += count * rule.perItem;
103
+ else
104
+ height += count * rule.perItem;
105
+ }
106
+ return { width, height };
107
+ }
68
108
  /**
69
109
  * Registers a category style (color + optional icon) in the global registry.
70
110
  * Call this at module init time (e.g. in the engine's node declarations) to
@@ -83,22 +123,47 @@ function graphCategoryStyleOf(category) {
83
123
  return exports.GRAPH_DEFAULT_CATEGORY_STYLE;
84
124
  }
85
125
  /**
86
- * Resolves the effective color for a node: explicit `color` overrides the
87
- * category color, which overrides the default.
126
+ * Resolves the effective color for a node (D7/G3-22, DECAF-50 §4.5).
127
+ *
128
+ * The **category base colour is authoritative**: every node of a registered
129
+ * category renders that one base colour, so same-category nodes never diverge.
130
+ * An explicit per-node `color` is an override applied at this single precedence
131
+ * point — it only wins when the category has no registered base style.
132
+ *
133
+ * @param explicitColor - The node's explicit per-node colour override, when any.
134
+ * @param category - The node's display category.
135
+ * @param override - A user-applied per-node colour override; wins over everything.
136
+ * @returns The resolved colour.
88
137
  */
89
- function resolveEffectiveColor(explicitColor, category) {
138
+ function resolveEffectiveColor(explicitColor, category, override) {
139
+ if (override)
140
+ return override;
141
+ const base = category ? GRAPH_CATEGORY_STYLE_REGISTRY[category] : undefined;
142
+ if (base?.color)
143
+ return base.color;
90
144
  if (explicitColor)
91
145
  return explicitColor;
92
- return graphCategoryStyleOf(category).color;
146
+ return exports.GRAPH_DEFAULT_CATEGORY_STYLE.color;
93
147
  }
94
148
  /**
95
- * Resolves the effective icon for a node: explicit `icon` overrides the
96
- * category icon, which overrides the default.
149
+ * Resolves the effective icon for a node (D7/G3-22, DECAF-50 §4.5). The
150
+ * **category base icon is authoritative**; an explicit per-node `icon` is an
151
+ * override applied at this single precedence point.
152
+ *
153
+ * @param explicitIcon - The node's explicit per-node icon override, when any.
154
+ * @param category - The node's display category.
155
+ * @param override - A user-applied per-node icon override; wins over everything.
156
+ * @returns The resolved icon name.
97
157
  */
98
- function resolveEffectiveIcon(explicitIcon, category) {
158
+ function resolveEffectiveIcon(explicitIcon, category, override) {
159
+ if (override)
160
+ return override;
161
+ const base = category ? GRAPH_CATEGORY_STYLE_REGISTRY[category] : undefined;
162
+ if (base?.icon)
163
+ return base.icon;
99
164
  if (explicitIcon)
100
165
  return explicitIcon;
101
- return graphCategoryStyleOf(category).icon ?? exports.GRAPH_DEFAULT_CATEGORY_STYLE.icon;
166
+ return exports.GRAPH_DEFAULT_CATEGORY_STYLE.icon;
102
167
  }
103
168
  /**
104
169
  * Disabled-node execution semantics (DECAF-50 §4.9).
@@ -251,5 +316,5 @@ function isGraphRunStatus(value) {
251
316
  "cancelled",
252
317
  ].includes(value));
253
318
  }
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dyYXBoL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLDRCQUFlLENBQUE7SUFDZixnQ0FBZ0MsQ0FBQTtJQUNoQyxnQ0FBZ0MsQ0FBQTtJQUNoQyxnQ0FBZ0MsQ0FBQTtBQUNsQyxDQUFDLEVBTFcsU0FBUyxLQUFULFNBQVMsUUFLcEI7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLGdDQUFlLENBQUE7SUFDZixrQ0FBaUIsQ0FBQTtJQUNqQiwwQ0FBeUIsQ0FBQTtBQUMzQixDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEI7QUE2RkQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBRWxDO0lBQ0YsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRTtJQUNwQixPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7SUFDM0MsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO0lBQzNDLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUU7SUFDekIsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFO0lBQ3ZDLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7Q0FDM0IsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLEtBQWE7SUFFYixPQUFPLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxJQUFJLHlCQUF5QixDQUFDLElBQUksQ0FBQztBQUM1RSxDQUFDO0FBMkpEOzs7Ozs7O0dBT0c7QUFD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O0FBQy9CLENBQUMsRUF4Q1csdUJBQXVCLEtBQXZCLHVCQUF1QixRQXdDbEM7QUErQkQsd0pBQXdKO0FBQ3hKLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUE2QjtJQUNoRSxlQUFlLEVBQUUsU0FBUztJQUMxQixpQkFBaUIsRUFBRSxFQUFFO0lBQ3JCLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLG9CQUFvQixFQUFFLE9BQU87SUFDN0Isa0JBQWtCLEVBQUUsT0FBTztJQUMzQixtQkFBbUIsRUFBRSxPQUFPO0NBQzdCLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FDekM7SUFDRSx1QkFBdUIsQ0FBQyxrQkFBa0I7SUFDMUMsdUJBQXVCLENBQUMsZUFBZTtJQUN2Qyx1QkFBdUIsQ0FBQyxrQkFBa0I7Q0FDM0MsQ0FBQztBQUVKLHlHQUF5RztBQUN6RyxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLElBQTZCO0lBRTdCLE9BQU8sOEJBQThCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFFRCxrRkFBa0Y7QUFDbEYsTUFBTSxVQUFVLHdCQUF3QixDQUFDLE1BQXNCO0lBQzdELE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxNQUFNLEtBQUssUUFBUSxJQUFJLE1BQU0sS0FBSyxXQUFXLENBQUM7QUFDakYsQ0FBQztBQUVELDZDQUE2QztBQUM3QyxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBYztJQUM3QyxPQUFPLENBQ0wsT0FBTyxLQUFLLEtBQUssUUFBUTtRQUN6QjtZQUNFLFFBQVE7WUFDUixZQUFZO1lBQ1osU0FBUztZQUNULFdBQVc7WUFDWCxRQUFRO1lBQ1IsV0FBVztTQUNaLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUNsQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEdyYXBoS2V5cyB7XG4gIEdSQVBIID0gXCJncmFwaFwiLFxuICBOT0RFID0gYCR7R3JhcGhLZXlzLkdSQVBIfS5ub2RlYCxcbiAgRURHRSA9IGAke0dyYXBoS2V5cy5HUkFQSH0uZWRnZWAsXG4gIFBPUlQgPSBgJHtHcmFwaEtleXMuR1JBUEh9LnBvcnRgLFxufVxuXG5leHBvcnQgZW51bSBQb3J0RGlyZWN0aW9uIHtcbiAgSU5QVVQgPSBcImlucHV0XCIsXG4gIE9VVFBVVCA9IFwib3V0cHV0XCIsXG4gIENPTk5FQ1RJT04gPSBcImNvbm5lY3Rpb25cIixcbn1cblxuZXhwb3J0IHR5cGUgR3JhcGhOb2RlS2luZCA9IHN0cmluZztcblxuZXhwb3J0IHR5cGUgR3JhcGhDb25uZWN0aW9uUnVsZSA9IHtcbiAgYWxsb3dTZWxmPzogYm9vbGVhbjtcbiAgYWxsb3dNdWx0aXBsZT86IGJvb2xlYW47XG4gIGFsbG93ZWRLaW5kcz86IEdyYXBoTm9kZUtpbmRbXTtcbiAgYmxvY2tlZEtpbmRzPzogR3JhcGhOb2RlS2luZFtdO1xuICBncm91cD86IHN0cmluZztcbiAgbWF4Q29ubmVjdGlvbnM/OiBudW1iZXI7XG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59O1xuXG5leHBvcnQgdHlwZSBHcmFwaE5vZGVNZXRhZGF0YSA9IHtcbiAga2luZD86IEdyYXBoTm9kZUtpbmQ7XG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgZ3JvdXA/OiBzdHJpbmc7XG4gIGhlaWdodD86IG51bWJlcjtcbiAgaWNvbj86IHN0cmluZztcbiAgbGFiZWxzPzogc3RyaW5nW107XG4gIG1heENoaWxkcmVuPzogbnVtYmVyO1xuICBtaW5XaWR0aD86IG51bWJlcjtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGNvbm5lY3Rpb25SdWxlcz86IEdyYXBoQ29ubmVjdGlvblJ1bGU7XG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8qKlxuICAgKiBQZXItZ3JvdXAgcmVuZGVyaW5nIGNob2ljZSBmb3IgU2NoZW1hLXR5cGVkIGBAaW5wdXRgIC8gYEBvdXRwdXRgIHByb3BlcnRpZXNcbiAgICogKHRoZSBvbmUtdnMtYWxsIHRvZ2dsZSkuIFNlZSB7QGxpbmsgR3JhcGhQb3J0R3JvdXBNZXRhZGF0YX0uXG4gICAqL1xuICBwb3J0R3JvdXBzPzogR3JhcGhQb3J0R3JvdXBNZXRhZGF0YVtdO1xuICAvKipcbiAgICogTm9kZSBJL08gaW5zcGVjdGlvbiBoaW50cyAoREVDQUYtNDggwqc0LjYpIOKAlCB2aWV3ZXIgbW9kZSBhbmQgd2hpY2ggcG9ydHNcbiAgICogbWFwIHRvIHRoZSBpbnB1dHMvb3V0cHV0cyBwYW5lcy4gRnJvbnRlbmQtc2FmZSBtZXRhZGF0YSBvbmx5LlxuICAgKi9cbiAgaW5zcGVjdGlvbj86IEdyYXBoTm9kZUlvTWV0YWRhdGE7XG59O1xuXG5leHBvcnQgdHlwZSBHcmFwaFdvcmtmbG93Tm9kZU1ldGFkYXRhID0ge1xuICBpZDogc3RyaW5nO1xuICBraW5kPzogR3JhcGhOb2RlS2luZDtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBub2RlPzogdW5rbm93bjtcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqXG4gICAqIE5vZGUgSS9PIGluc3BlY3Rpb24gaGludHMgZm9yIHRoaXMgd29ya2Zsb3cgaW5zdGFuY2UgKERFQ0FGLTQ4IMKnNC42KS5cbiAgICogRnJvbnRlbmQtc2FmZSBtZXRhZGF0YSBvbmx5LlxuICAgKi9cbiAgaW5zcGVjdGlvbj86IEdyYXBoTm9kZUlvTWV0YWRhdGE7XG59O1xuXG4vKipcbiAqIEEgdmlldy1tb2RlIGNob2ljZSBmb3IgdGhlIHJldXNhYmxlIEkvTyB2aWV3ZXIgKERFQ0FGLTQ4IMKnNC42IC8gUmVxLTkpLlxuICogT25lIHNoYXJlZCBjb21wb25lbnQgcmVuZGVycyBib3RoIHRoZSBpbnB1dHMgYW5kIG91dHB1dHMgcGFuZXMuXG4gKi9cbmV4cG9ydCB0eXBlIEdyYXBoTm9kZUlvVmlld01vZGUgPSBcImpzb25cIiB8IFwidGFibGVcIiB8IFwicmF3XCI7XG5cbi8qKlxuICogTm9kZSBJL08gaW5zcGVjdGlvbiBtZXRhZGF0YSAoREVDQUYtNDggwqc0LjYpIOKAlCBoaW50cyB0aGUgd29ya2Zsb3cgY2FudmFzXG4gKiB1c2VzIHRvIG9wZW4gdGhlIGlubGluZSBzcGxpdCB2aWV3IGZvciBhbiBhbHJlYWR5LXJhbiBub2RlLiBGcmFtZXdvcmtcbiAqIG5ldXRyYWwsIGZyb250ZW5kLXNhZmUsIG5vIGVuZ2luZS9ydW50aW1lIGRlcGVuZGVuY3kgKERFQ0FGLTI0IMKnNCkuXG4gKi9cbmV4cG9ydCB0eXBlIEdyYXBoTm9kZUlvTWV0YWRhdGEgPSB7XG4gIC8qKiBEZWZhdWx0IHZpZXcgbW9kZSBmb3IgdGhlIHJldXNhYmxlIHZpZXdlci4gRGVmYXVsdHMgdG8gXCJqc29uXCIuICovXG4gIHZpZXc/OiBHcmFwaE5vZGVJb1ZpZXdNb2RlO1xuICAvKiogUG9ydCBwcm9wZXJ0eSBuYW1lcyBzaG93biBpbiB0aGUgcmlnaHQtc2lkZSBpbnB1dHMgcGFuZS4gKi9cbiAgaW5wdXRQb3J0cz86IHN0cmluZ1tdO1xuICAvKiogUG9ydCBwcm9wZXJ0eSBuYW1lcyBzaG93biBpbiB0aGUgbGVmdC1zaWRlIG91dHB1dHMgcGFuZS4gKi9cbiAgb3V0cHV0UG9ydHM/OiBzdHJpbmdbXTtcbiAgLyoqIFdoZXRoZXIgdGhlIG5vZGUgZXhwb3NlcyBlZGl0YWJsZSBjb25maWcgKG9wZW5zIHRoZSBlZGl0IG1vZGFsIGluc3RlYWQpLiAqL1xuICBlZGl0YWJsZT86IGJvb2xlYW47XG4gIC8qKiBGcmVlLWZvcm0gZXh0ZW5zaW9uIHBvaW50cy4gKi9cbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn07XG5cbi8qKlxuICogVmlzdWFsIHRyZWF0bWVudCBmb3IgYSBub2RlL2VkZ2UgZXhlY3V0aW9uIHN0YXRlIChERUNBRi00OCDCpzQuNCkuIE1hcHMgYVxuICoge0BsaW5rIEdyYXBoVmlzdWFsU3RhdGV9IHZhbHVlIHRvIHRoZSBmYWRlZCBnbG93IC8gZmFkZS1hZnRlci1mYWlsIG92ZXJsYXlcbiAqIGNvbG91cnMgdXNlZCBieSB0aGUgY2FudmFzIHJlbmRlcmVyLlxuICovXG5leHBvcnQgdHlwZSBHcmFwaFZpc3VhbFN0eWxlID0ge1xuICAvKiogVmlzdWFsIHN0YXRlIHN0cmluZyBhcyBkZWZpbmVkIGJ5IHRoZSBzaGFyZWQgYEdyYXBoVmlzdWFsU3RhdGVgIHZhbHVlcyAoZS5nLiBgXCJydW5uaW5nXCJgLCBgXCJibG9ja2VkXCJgKS4gKi9cbiAgc3RhdGU6IHN0cmluZztcbiAgLyoqIEdsb3cvYm9yZGVyIGNvbG91ciBmb3IgdGhlIGxpdmUgcnVuLWZlZWRiYWNrIG92ZXJsYXkuICovXG4gIGdsb3c/OiBzdHJpbmc7XG4gIC8qKiBMZXZlbCBvZiBmYWRlIGZvciB1bmV4ZWN1dGVkL2Rpc2FibGVkIHJlbmRlcmluZyAoMC4uMSkuICovXG4gIG9wYWNpdHk/OiBudW1iZXI7XG4gIC8qKiBPcHRpb25hbCBmaWxsIGNvbG91ciB3aGVuIHRoZSBub2RlIGlzIGluIHRoaXMgc3RhdGUuICovXG4gIGNvbG9yPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCB2aXN1YWwtc3RhdGUg4oaSIG92ZXJsYXkgbWFwcGluZyBjb250cmFjdCAoREVDQUYtNDggwqc0LjQpOlxuICogcnVubmluZz1mYWRlZCBncmVlbiwgYmxvY2tlZD15ZWxsb3csIGVycm9yZWQ9cmVkOyBzdWNjZWVkZWQga2VlcHMgdGhlXG4gKiBub2RlJ3Mgb3duIGFjY2VudDsgdW5leGVjdXRlZC1hZnRlci1mYWlsdXJlIGZhZGVzL2Rpc2FibGVkLiBUaGlzIGlzIHRoZVxuICogc2hhcmVkLCBmcmFtZXdvcmstbmV1dHJhbCBzb3VyY2Ugb2YgdHJ1dGggdGhhdCBzdXBlcnNlZGVzIHRoZSBERUNBRi0zMlxuICogwqcyMS45IHJ1bm5pbmcgY29sb3VyIGZvciB0aGUgbGl2ZSBydW4tZmVlZGJhY2sgb3ZlcmxheSAowqc0LjUpLlxuICovXG5leHBvcnQgY29uc3QgR1JBUEhfVklTVUFMX1NUQVRFX1NUWUxFUzoge1xuICBbc3RhdGU6IHN0cmluZ106IE9taXQ8R3JhcGhWaXN1YWxTdHlsZSwgXCJzdGF0ZVwiPjtcbn0gPSB7XG4gIGlkbGU6IHsgb3BhY2l0eTogMSB9LFxuICBydW5uaW5nOiB7IGdsb3c6IFwiIzIyYzU1ZVwiLCBvcGFjaXR5OiAwLjg1IH0sXG4gIGJsb2NrZWQ6IHsgZ2xvdzogXCIjZWFiMzA4XCIsIG9wYWNpdHk6IDAuODUgfSxcbiAgc3VjY2VlZGVkOiB7IG9wYWNpdHk6IDEgfSxcbiAgZmFpbGVkOiB7IGdsb3c6IFwiI2VmNDQ0NFwiLCBvcGFjaXR5OiAxIH0sXG4gIHNraXBwZWQ6IHsgb3BhY2l0eTogMC4zNSB9LFxufTtcblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgdmlzdWFsIHN0eWxlIG92ZXJsYXkgZm9yIGEgbm9kZS9lZGdlIGV4ZWN1dGlvbiBzdGF0ZSwgZmFsbGluZ1xuICogYmFjayB0byBhIG5ldXRyYWwgZGVmYXVsdCB3aGVuIHRoZSBzdGF0ZSBpcyB1bmtub3duIG9yIHVucmVnaXN0ZXJlZC5cbiAqXG4gKiBAcGFyYW0gc3RhdGUgLSBUaGUgdmlzdWFsIHN0YXRlIHN0cmluZyAoYXMgZGVmaW5lZCBieSB0aGUgc2hhcmVkXG4gKiBgR3JhcGhWaXN1YWxTdGF0ZWAgdmFsdWVzLCBlLmcuIGBcInJ1bm5pbmdcImAsIGBcImJsb2NrZWRcImApLlxuICogQHJldHVybnMgVGhlIHN0eWxlIG92ZXJsYXkgZm9yIHRoZSBnaXZlbiBzdGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyYXBoVmlzdWFsU3R5bGVPZihcbiAgc3RhdGU6IHN0cmluZ1xuKTogT21pdDxHcmFwaFZpc3VhbFN0eWxlLCBcInN0YXRlXCI+IHtcbiAgcmV0dXJuIEdSQVBIX1ZJU1VBTF9TVEFURV9TVFlMRVNbc3RhdGVdID8/IEdSQVBIX1ZJU1VBTF9TVEFURV9TVFlMRVMuaWRsZTtcbn1cblxuZXhwb3J0IHR5cGUgR3JhcGhXb3JrZmxvd1JlbGF0aW9uTWV0YWRhdGEgPSB7XG4gIHNvdXJjZTogc3RyaW5nIHwgdW5rbm93bjtcbiAgc291cmNlUG9ydD86IHN0cmluZztcbiAgdGFyZ2V0OiBzdHJpbmcgfCB1bmtub3duO1xuICB0YXJnZXRQb3J0Pzogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn07XG5cbmV4cG9ydCB0eXBlIEdyYXBoV29ya2Zsb3dNZXRhZGF0YSA9IEdyYXBoTm9kZU1ldGFkYXRhICYge1xuICBpbnB1dHM/OiBHcmFwaFBvcnREZWZpbml0aW9uW107XG4gIG91dHB1dHM/OiBHcmFwaFBvcnREZWZpbml0aW9uW107XG4gIGNvbm5lY3Rpb25zPzogR3JhcGhQb3J0RGVmaW5pdGlvbltdO1xuICBub2Rlcz86IEdyYXBoV29ya2Zsb3dOb2RlTWV0YWRhdGFbXTtcbiAgcmVsYXRpb25zPzogR3JhcGhXb3JrZmxvd1JlbGF0aW9uTWV0YWRhdGFbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEdyYXBoUG9ydE1ldGFkYXRhID0ge1xuICBkaXJlY3Rpb246IFBvcnREaXJlY3Rpb247XG4gIGNvbm5lY3Rpb25SdWxlcz86IEdyYXBoQ29ubmVjdGlvblJ1bGU7XG4gIHZpc2libGU/OiBib29sZWFuO1xuICBoYW5kbGU/OiBzdHJpbmc7XG4gIGV4cGFuZD86IGJvb2xlYW47XG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8qKlxuICAgKiBPcHRpb25hbCBjYXRlZ29yeSBmb3IgYEBjb25uZWN0aW9uKClgIHBvcnRzIChlLmcuIGBcIm1vZGVsXCJgLCBgXCJtZW1vcnlcImAsXG4gICAqIGBcIndvcmtzcGFjZVwiYCkuIENvbm5lY3Rpb25zIG9mIHRoZSBzYW1lIGNhdGVnb3J5IHNoYXJlIGEgY29sb3IgYW5kIGljb25cbiAgICogZGVmaW5lZCBieSB0aGUge0BsaW5rIEdSQVBIX0NBVEVHT1JZX1NUWUxFX1JFR0lTVFJZfS4gV2hlbiBvbWl0dGVkLCB0aGVcbiAgICogcG9ydCBpbmhlcml0cyB0aGUgbm9kZSdzIGNvbG9yLlxuICAgKi9cbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNYXJrcyB0aGlzIHBvcnQgYXMgYSBcIlNjaGVtYSBwb3J0XCIgZGVjbGFyZWQgdmlhIGBAaW5wdXRgIC8gYEBvdXRwdXRgLlxuICAgKlxuICAgKiBXaGVuIGB0cnVlYCBBTkQgdGhlIHByb3BlcnR5IHR5cGUgaXMgYSBEZWNhZiBgTW9kZWxgIChhIFwiU2NoZW1hXCIpLCB0aGVcbiAgICogcmVhZGVyIGZsYXR0ZW5zIHRoZSBTY2hlbWEncyBvd24gYEBpbnB1dGAgLyBgQG91dHB1dGAgcHJvcGVydGllcyBpbnRvIHRoZVxuICAgKiBwYXJlbnQgbm9kZSdzIHBvcnQgbGlzdCAodW5wcmVmaXhlZCDigJQgbm8gYDxzY2hlbWFQcm9wPi5gIHByZWZpeCksIGluc3RlYWRcbiAgICogb2YgcHJvZHVjaW5nIGEgY29tcG9zaXRlIHBvcnQgd2l0aCBwcmVmaXhlZCBjaGlsZHJlbi4gQSBgQGlucHV0YCBTY2hlbWFcbiAgICogY29udHJpYnV0ZXMgb25seSB0aGUgU2NoZW1hJ3MgYEBpbnB1dGAgcHJvcGVydGllczsgYSBgQG91dHB1dGAgU2NoZW1hXG4gICAqIGNvbnRyaWJ1dGVzIG9ubHkgdGhlIFNjaGVtYSdzIGBAb3V0cHV0YCBwcm9wZXJ0aWVzLiBUaGUgY2FycmllciBwcm9wZXJ0eVxuICAgKiBpdHNlbGYgKGUuZy4gYGlucHV0U2NoZW1hYCkgaXMgbm90IGVtaXR0ZWQgYXMgYSBwb3J0IOKAlCBpdCBpcyB0aGUgZ3JvdXBcbiAgICogY2Fycmllci5cbiAgICpcbiAgICogU2V0IGF1dG9tYXRpY2FsbHkgYnkgYEBpbnB1dGAgLyBgQG91dHB1dGA7IE5PVCBzZXQgYnkgYEBwb3J0YCwgc29cbiAgICogYEBwb3J0YC1kZWNvcmF0ZWQgU2NoZW1hLXR5cGVkIHByb3BlcnRpZXMga2VlcCB0aGUgbGVnYWN5IGNvbXBvc2l0ZVxuICAgKiBleHBhbnNpb24gKHByZWZpeGVkIGNoaWxkcmVuKS5cbiAgICovXG4gIHNjaGVtYT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFeHBsaWNpdCByZWZlcmVuY2UgdG8gdGhlIG5lc3RlZCBgTW9kZWxgIGNvbnN0cnVjdG9yIGZvciBTY2hlbWEgcG9ydFxuICAgKiBncm91cHMuIFdoZW4gcHJvdmlkZWQsIHRoZSByZWFkZXIgdXNlcyB0aGlzIGRpcmVjdGx5IGluc3RlYWQgb2YgcmVseWluZ1xuICAgKiBvbiBUeXBlU2NyaXB0J3MgYGRlc2lnbjp0eXBlYCBtZXRhZGF0YSAod2hpY2ggYnVuZGxlcnMgbGlrZSBlc2J1aWxkIG1heVxuICAgKiB0cmVlLXNoYWtlLCByZXBsYWNpbmcgdGhlIGNsYXNzIHJlZmVyZW5jZSB3aXRoIGBPYmplY3RgKS5cbiAgICpcbiAgICogU2V0IHZpYSBgQGlucHV0KHsgbW9kZWw6IFNvbWVTY2hlbWEgfSlgIC8gYEBvdXRwdXQoeyBtb2RlbDogU29tZVNjaGVtYSB9KWAuXG4gICAqL1xuICBtb2RlbD86IHVua25vd247XG59O1xuXG4vKipcbiAqIE1ldGFkYXRhIGZvciBhIFNjaGVtYSBwb3J0IGdyb3VwIOKAlCB0aGUgb25lLXZzLWFsbCByZW5kZXJpbmcgY2hvaWNlIGZvciBhXG4gKiBgQGlucHV0YCAvIGBAb3V0cHV0YCBTY2hlbWEtdHlwZWQgcHJvcGVydHkuXG4gKlxuICogYHRvZ2dsZTogXCJhbGxcImAgKGRlZmF1bHQpIHJlbmRlcnMgZWFjaCBTY2hlbWEgcHJvcGVydHkgYXMgaXRzIG93biBjb25uZWN0YWJsZVxuICogcG9ydCBvbiB0aGUgY2FudmFzLiBgdG9nZ2xlOiBcInNpbmdsZVwiYCByZW5kZXJzIG9uZSBncm91cGVkIHBvcnQgdGhhdCByZWNlaXZlc1xuICogdGhlIHdob2xlIG9iamVjdCBhbmQgbWFwcyBpdCB0byB0aGUgcmlnaHQgcGxhY2UuIFRoZSBwZXItaW5zdGFuY2VcbiAqIG1hbnVhbC1maWxsIChoaWRlIGEgcG9ydCBiZWNhdXNlIGl0cyB2YWx1ZSBpcyBzdXBwbGllZCB2aWEgdGhlIENSVUQgZmllbGQpXG4gKiBpcyBOT1QgY2FycmllZCBoZXJlIOKAlCB0aGF0IGlzIHRoZSBlZGl0b3IncyBwb3J0LXRvZ2dsZSBzdGF0ZSBpbiBgbm9kZS5kYXRhYC5cbiAqL1xuZXhwb3J0IHR5cGUgR3JhcGhQb3J0R3JvdXBNZXRhZGF0YSA9IHtcbiAgLyoqIFRoZSBTY2hlbWEtdHlwZWQgYEBpbnB1dGAgLyBgQG91dHB1dGAgcHJvcGVydHkgbmFtZSB0aGF0IG93bnMgdGhpcyBncm91cC4gKi9cbiAgcHJvcGVydHk6IHN0cmluZztcbiAgLyoqIFJlbmRlciBjaG9pY2UgZm9yIHRoaXMgZ3JvdXAuIERlZmF1bHRzIHRvIGBcImFsbFwiYC4gKi9cbiAgdG9nZ2xlPzogXCJzaW5nbGVcIiB8IFwiYWxsXCI7XG4gIC8qKiBPcHRpb25hbCBsYWJlbCBmb3IgdGhlIGdyb3VwZWQgcG9ydCB3aGVuIGB0b2dnbGUgPT09IFwic2luZ2xlXCJgLiAqL1xuICBsYWJlbD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEdyYXBoUG9ydERlZmluaXRpb24gPSB7XG4gIHByb3BlcnR5OiBzdHJpbmc7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGRpcmVjdGlvbjogUG9ydERpcmVjdGlvbjtcbiAgbmFtZTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICByZXF1aXJlZDogYm9vbGVhbjtcbiAgaGlkZGVuOiBib29sZWFuO1xuICBkZXNpZ25UeXBlPzogc3RyaW5nO1xuICBlbGVtZW50PzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgcHJvcD86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIHZhbGlkYXRpb24/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBncmFwaD86IEdyYXBoUG9ydE1ldGFkYXRhO1xuICBjb25uZWN0aW9uUnVsZXM/OiBHcmFwaENvbm5lY3Rpb25SdWxlO1xuICBjb21wb3NpdGU/OiBib29sZWFuO1xuICBjaGlsZHJlbj86IEdyYXBoUG9ydERlZmluaXRpb25bXTtcbiAgbW9kZWw/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBHcmFwaE5vZGVEZWZpbml0aW9uID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRhZzogc3RyaW5nO1xuICBraW5kOiBHcmFwaE5vZGVLaW5kO1xuICBjYXRlZ29yeT86IHN0cmluZztcbiAgY29sb3I/OiBzdHJpbmc7XG4gIGdyb3VwPzogc3RyaW5nO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIGljb24/OiBzdHJpbmc7XG4gIGxhYmVsczogc3RyaW5nW107XG4gIG1heENoaWxkcmVuPzogbnVtYmVyO1xuICBtaW5XaWR0aD86IG51bWJlcjtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIHByb3BzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgdWk/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBncmFwaD86IEdyYXBoTm9kZU1ldGFkYXRhO1xuICBwb3J0czogR3JhcGhQb3J0RGVmaW5pdGlvbltdO1xuICAvKipcbiAgICogRWZmZWN0aXZlIGNvbG9yIHJlc29sdmVkIGZyb20gdGhlIGNhdGVnb3J5IHJlZ2lzdHJ5IChvciB0aGUgbm9kZSdzXG4gICAqIGV4cGxpY2l0IGBjb2xvcmAgb3ZlcnJpZGUpLiBDb21wdXRlZCBieSBgZ3JhcGhEZWZpbml0aW9uT2ZgLlxuICAgKi9cbiAgZWZmZWN0aXZlQ29sb3I/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBFZmZlY3RpdmUgaWNvbiByZXNvbHZlZCBmcm9tIHRoZSBjYXRlZ29yeSByZWdpc3RyeSAob3IgdGhlIG5vZGUnc1xuICAgKiBleHBsaWNpdCBgaWNvbmAgb3ZlcnJpZGUpLiBDb21wdXRlZCBieSBgZ3JhcGhEZWZpbml0aW9uT2ZgLlxuICAgKi9cbiAgZWZmZWN0aXZlSWNvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFBlci1ncm91cCByZW5kZXJpbmcgY2hvaWNlIGZvciBTY2hlbWEtdHlwZWQgYEBpbnB1dGAgLyBgQG91dHB1dGAgcHJvcGVydGllc1xuICAgKiAodGhlIG9uZS12cy1hbGwgdG9nZ2xlKS4gRGVyaXZlZCBmcm9tIHtAbGluayBHcmFwaE5vZGVNZXRhZGF0YS5wb3J0R3JvdXBzfTtcbiAgICogZXZlcnkgU2NoZW1hLXR5cGVkIGBAaW5wdXRgIC8gYEBvdXRwdXRgIHByb3BlcnR5IG5vdCBsaXN0ZWQgZGVmYXVsdHMgdG9cbiAgICogYHRvZ2dsZTogXCJhbGxcImAuXG4gICAqL1xuICBwb3J0R3JvdXBzPzogR3JhcGhQb3J0R3JvdXBNZXRhZGF0YVtdO1xufTtcblxuZXhwb3J0IHR5cGUgR3JhcGhXb3JrZmxvd0RlZmluaXRpb24gPSBHcmFwaE5vZGVEZWZpbml0aW9uICYge1xuICBpbnB1dHM6IEdyYXBoUG9ydERlZmluaXRpb25bXTtcbiAgb3V0cHV0czogR3JhcGhQb3J0RGVmaW5pdGlvbltdO1xuICBjb25uZWN0aW9uczogR3JhcGhQb3J0RGVmaW5pdGlvbltdO1xuICBub2RlczogR3JhcGhXb3JrZmxvd05vZGVNZXRhZGF0YVtdO1xuICByZWxhdGlvbnM6IEdyYXBoV29ya2Zsb3dSZWxhdGlvbk1ldGFkYXRhW107XG4gIHdvcmtmbG93OiBHcmFwaFdvcmtmbG93TWV0YWRhdGE7XG59O1xuXG4vKipcbiAqIFN0eWxlIChjb2xvciArIGljb24pIGFzc2lnbmVkIHRvIGEgbm9kZSBvciBjb25uZWN0aW9uIGNhdGVnb3J5LiBOb2RlcyBhbmRcbiAqIGNvbm5lY3Rpb25zIHdpdGhvdXQgYW4gZXhwbGljaXQgYGNvbG9yYCAvIGBpY29uYCBpbmhlcml0IGZyb20gdGhlaXJcbiAqIGNhdGVnb3J5J3Mgc3R5bGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JhcGhDYXRlZ29yeVN0eWxlIHtcbiAgY29sb3I6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWdpc3RyeSBtYXBwaW5nIGNhdGVnb3J5IG5hbWVzIHRvIHRoZWlyIGRlZmF1bHQgc3R5bGUgKGNvbG9yICsgaWNvbikuXG4gKiBDb25zdW1lcnMgcmVnaXN0ZXIgY2F0ZWdvcmllcyB2aWEge0BsaW5rIHJlZ2lzdGVyR3JhcGhDYXRlZ29yeVN0eWxlfS5cbiAqXG4gKiBUaGUgZW5naW5lIGFuZCByZW5kZXJlciByZXNvbHZlIHRoZSBcImVmZmVjdGl2ZVwiIGNvbG9yL2ljb24gZm9yIGEgbm9kZSBieVxuICogY2hlY2tpbmcgdGhlIG5vZGUncyBleHBsaWNpdCBgY29sb3JgIC8gYGljb25gIGZpcnN0LCB0aGVuIGZhbGxpbmcgYmFjayB0b1xuICogdGhlIGNhdGVnb3J5J3Mgc3R5bGUsIHRoZW4gYSBkZWZhdWx0LlxuICovXG5jb25zdCBHUkFQSF9DQVRFR09SWV9TVFlMRV9SRUdJU1RSWTogUmVjb3JkPHN0cmluZywgR3JhcGhDYXRlZ29yeVN0eWxlPiA9IHt9O1xuXG4vKipcbiAqIERlZmF1bHQgZmFsbGJhY2sgc3R5bGUgd2hlbiBubyBjYXRlZ29yeSBpcyByZWdpc3RlcmVkIGFuZCBubyBleHBsaWNpdFxuICogY29sb3IvaWNvbiBpcyBzZXQgb24gdGhlIG5vZGUuXG4gKi9cbmV4cG9ydCBjb25zdCBHUkFQSF9ERUZBVUxUX0NBVEVHT1JZX1NUWUxFOiBHcmFwaENhdGVnb3J5U3R5bGUgPSB7XG4gIGNvbG9yOiBcIiM2NDc0OGJcIixcbiAgaWNvbjogXCJ0aS1wb2ludGVyXCIsXG59O1xuXG4vKipcbiAqIFJlZ2lzdGVycyBhIGNhdGVnb3J5IHN0eWxlIChjb2xvciArIG9wdGlvbmFsIGljb24pIGluIHRoZSBnbG9iYWwgcmVnaXN0cnkuXG4gKiBDYWxsIHRoaXMgYXQgbW9kdWxlIGluaXQgdGltZSAoZS5nLiBpbiB0aGUgZW5naW5lJ3Mgbm9kZSBkZWNsYXJhdGlvbnMpIHRvXG4gKiBkZWZpbmUgdGhlIHZpc3VhbCBzdHlsZSBmb3IgYSBjYXRlZ29yeSBvZiBub2RlcyBvciBjb25uZWN0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyR3JhcGhDYXRlZ29yeVN0eWxlKFxuICBjYXRlZ29yeTogc3RyaW5nLFxuICBzdHlsZTogR3JhcGhDYXRlZ29yeVN0eWxlXG4pOiB2b2lkIHtcbiAgR1JBUEhfQ0FURUdPUllfU1RZTEVfUkVHSVNUUllbY2F0ZWdvcnldID0gc3R5bGU7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgc3R5bGUgcmVnaXN0ZXJlZCBmb3IgYGNhdGVnb3J5YCwgb3IgdGhlIGRlZmF1bHQgZmFsbGJhY2sgc3R5bGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBncmFwaENhdGVnb3J5U3R5bGVPZihjYXRlZ29yeT86IHN0cmluZyk6IEdyYXBoQ2F0ZWdvcnlTdHlsZSB7XG4gIGlmIChjYXRlZ29yeSAmJiBHUkFQSF9DQVRFR09SWV9TVFlMRV9SRUdJU1RSWVtjYXRlZ29yeV0pIHtcbiAgICByZXR1cm4gR1JBUEhfQ0FURUdPUllfU1RZTEVfUkVHSVNUUllbY2F0ZWdvcnldO1xuICB9XG4gIHJldHVybiBHUkFQSF9ERUZBVUxUX0NBVEVHT1JZX1NUWUxFO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBlZmZlY3RpdmUgY29sb3IgZm9yIGEgbm9kZTogZXhwbGljaXQgYGNvbG9yYCBvdmVycmlkZXMgdGhlXG4gKiBjYXRlZ29yeSBjb2xvciwgd2hpY2ggb3ZlcnJpZGVzIHRoZSBkZWZhdWx0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUVmZmVjdGl2ZUNvbG9yKFxuICBleHBsaWNpdENvbG9yPzogc3RyaW5nLFxuICBjYXRlZ29yeT86IHN0cmluZ1xuKTogc3RyaW5nIHtcbiAgaWYgKGV4cGxpY2l0Q29sb3IpIHJldHVybiBleHBsaWNpdENvbG9yO1xuICByZXR1cm4gZ3JhcGhDYXRlZ29yeVN0eWxlT2YoY2F0ZWdvcnkpLmNvbG9yO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBlZmZlY3RpdmUgaWNvbiBmb3IgYSBub2RlOiBleHBsaWNpdCBgaWNvbmAgb3ZlcnJpZGVzIHRoZVxuICogY2F0ZWdvcnkgaWNvbiwgd2hpY2ggb3ZlcnJpZGVzIHRoZSBkZWZhdWx0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUVmZmVjdGl2ZUljb24oXG4gIGV4cGxpY2l0SWNvbj86IHN0cmluZyxcbiAgY2F0ZWdvcnk/OiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIGlmIChleHBsaWNpdEljb24pIHJldHVybiBleHBsaWNpdEljb247XG4gIHJldHVybiBncmFwaENhdGVnb3J5U3R5bGVPZihjYXRlZ29yeSkuaWNvbiA/PyBHUkFQSF9ERUZBVUxUX0NBVEVHT1JZX1NUWUxFLmljb24hO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNoYXJlZCBncmFwaCBleGVjdXRpb24gY29udHJhY3QgKERFQ0FGLTUwIFBoYXNlIEEsIG1vdmVkIGZyb21cbi8vIGludGVncmF0aW9ucy9ncmFwaC9zaGFyZWQpOiBmcm9udGVuZC1zYWZlIGNvbnN0YW50cyBhbmQgZW51bXMgY29uc3VtZWQgYnlcbi8vIGJvdGggdGhlIGJhY2tlbmQgZW5naW5lIGFuZCBmcm9udGVuZCBidW5kbGVzIG92ZXIgU1NFLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmltcG9ydCB0eXBlIHsgR3JhcGhSdW5TdGF0dXMgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIERpc2FibGVkLW5vZGUgZXhlY3V0aW9uIHNlbWFudGljcyAoREVDQUYtNTAgwqc0LjkpLlxuICpcbiAqIC0gYHNraXBgIOKAlCB0aGUgbm9kZSBkb2VzIG5vdCBleGVjdXRlIGFuZCBwcm9kdWNlcyBubyBvdXRwdXRzLlxuICogLSBgcGFzc1Rocm91Z2hGaXJzdElucHV0YCDigJQgdGhlIGZpcnN0IGluY29taW5nIGVkZ2UgdmFsdWUgaXMgZm9yd2FyZGVkIG9uXG4gKiAgIHRoZSBub2RlJ3MgZmlyc3QgZGVjbGFyZWQgb3V0cHV0IHBvcnQuXG4gKiAtIGBlbWl0RGVmYXVsdHNgIOKAlCBldmVyeSBkZWNsYXJlZCBvdXRwdXQgcG9ydCBpcyBlbWl0dGVkIHdpdGggaXRzIGRlZmF1bHRcbiAqICAgKGFic2VudCBhIGRlY2xhcmVkIGRlZmF1bHQsIGB1bmRlZmluZWRgKS5cbiAqL1xuZXhwb3J0IGNvbnN0IEdSQVBIX0RJU0FCTEVEX05PREVfQkVIQVZJT1JTID0gW1xuICBcInNraXBcIixcbiAgXCJwYXNzVGhyb3VnaEZpcnN0SW5wdXRcIixcbiAgXCJlbWl0RGVmYXVsdHNcIixcbl0gYXMgY29uc3Q7XG5cbi8qKiBIb3cgYSBkaXNhYmxlZCBub2RlIGJlaGF2ZXMgZHVyaW5nIGV4ZWN1dGlvbiAoREVDQUYtNTAgwqc0LjgpOiBza2lwIGl0LCBwYXNzIHRocm91Z2ggaXRzIGZpcnN0IGlucHV0LCBvciBlbWl0IGRlZmF1bHQgb3V0cHV0cy4gKi9cbmV4cG9ydCB0eXBlIEdyYXBoRGlzYWJsZWROb2RlQmVoYXZpb3IgPSAodHlwZW9mIEdSQVBIX0RJU0FCTEVEX05PREVfQkVIQVZJT1JTKVtudW1iZXJdO1xuXG4vKiogVGhlIGRpc2FibGVkLW5vZGUgYmVoYXZpb3IgYXBwbGllZCB3aGVuIGEgbm9kZSBkZWNsYXJlcyBub25lLiAqL1xuZXhwb3J0IGNvbnN0IEdSQVBIX0RFRkFVTFRfRElTQUJMRURfTk9ERV9CRUhBVklPUjogR3JhcGhEaXNhYmxlZE5vZGVCZWhhdmlvciA9IFwic2tpcFwiO1xuXG4vKiogVHlwZSBndWFyZCBmb3Ige0BsaW5rIEdyYXBoRGlzYWJsZWROb2RlQmVoYXZpb3J9LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzR3JhcGhEaXNhYmxlZE5vZGVCZWhhdmlvcihcbiAgdmFsdWU6IHVua25vd25cbik6IHZhbHVlIGlzIEdyYXBoRGlzYWJsZWROb2RlQmVoYXZpb3Ige1xuICByZXR1cm4gKEdSQVBIX0RJU0FCTEVEX05PREVfQkVIQVZJT1JTIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyhcbiAgICB2YWx1ZSBhcyBzdHJpbmdcbiAgKTtcbn1cblxuLyoqXG4gKiBFeGVjdXRpb24gc3RhdHVzIGZvciBhIHdvcmtmbG93IG9yIGluZGl2aWR1YWwgbm9kZS5cbiAqL1xuZXhwb3J0IGVudW0gR3JhcGhFeGVjdXRpb25TdGF0dXMge1xuICBQRU5ESU5HID0gXCJwZW5kaW5nXCIsXG4gIFBMQU5OSU5HID0gXCJwbGFubmluZ1wiLFxuICBSVU5OSU5HID0gXCJydW5uaW5nXCIsXG4gIFNVQ0NFRURFRCA9IFwic3VjY2VlZGVkXCIsXG4gIEZBSUxFRCA9IFwiZmFpbGVkXCIsXG4gIFNLSVBQRUQgPSBcInNraXBwZWRcIixcbiAgQ0FOQ0VMTEVEID0gXCJjYW5jZWxsZWRcIixcbiAgQ0FDSEVEID0gXCJjYWNoZWRcIixcbn1cblxuLyoqXG4gKiBWaXN1YWwgZXhlY3V0aW9uIHN0YXRlIGZvciBhIG5vZGUgb3IgZWRnZSBvbiB0aGUgd29ya2Zsb3cgY2FudmFzLlxuICpcbiAqIEZyb250ZW5kLXNhZmUgKERFQ0FGLTQ4IMKnNC40KTogYSBzdXBlcnNldCBvZiB7QGxpbmsgR3JhcGhFeGVjdXRpb25TdGF0dXN9XG4gKiBub3JtYWxpc2VkIGZvciByZW5kZXJpbmcuIGBCTE9DS0VEYCBpcyBkZXJpdmVkIGZyb20gdGhlIHBsYW4gYW5kIGV4ZWN1dGlvblxuICogZXZlbnRzICh3YWl0aW5nIG9uIHVwc3RyZWFtIGRlcGVuZGVuY2llcyksIG5vdCBlbWl0dGVkIGFzIGFuIGVuZ2luZSBzdGF0dXMuXG4gKiBgU0tJUFBFRGAgaXMgdGhlIHBvc3QtZmFpbHVyZSBcInVuZXhlY3V0ZWQvZGlzYWJsZWRcIiB2aXN1YWwgc3RhdGUuXG4gKi9cbmV4cG9ydCBlbnVtIEdyYXBoVmlzdWFsU3RhdGUge1xuICBJRExFID0gXCJpZGxlXCIsXG4gIFJVTk5JTkcgPSBcInJ1bm5pbmdcIixcbiAgQkxPQ0tFRCA9IFwiYmxvY2tlZFwiLFxuICBTVUNDRUVERUQgPSBcInN1Y2NlZWRlZFwiLFxuICBGQUlMRUQgPSBcImZhaWxlZFwiLFxuICBTS0lQUEVEID0gXCJza2lwcGVkXCIsXG59XG5cblxuLyoqXG4gKiBOYW1lc3BhY2Ugcm9vdCBmb3IgZ3JhcGggcnVuIFNTRSB0b3BpY3MgKERFQ0FGLTQ4IMKnNC4yKS4gQSBzdWJzY3JpcHRpb25cbiAqIGZpbHRlcnMgb24gdGhlc2UgZ3JhbnVsYXIgdG9waWNzIGJlZm9yZSBgb2JzZXJ2ZXIubmV4dCguLi4pYC5cbiAqL1xuZXhwb3J0IGNvbnN0IEdSQVBIX1JVTl9UT1BJQyA9IFwiZ3JhcGgucnVuXCI7XG5cbi8qKlxuICogU1NFIHN1Yi10b3BpYyBzdHJlYW1pbmcgcGVyLW5vZGUgbG9nIGxpbmVzIGR1cmluZyBhIHJ1bi5cbiAqL1xuZXhwb3J0IGNvbnN0IEdSQVBIX1JVTl9MT0dfVE9QSUMgPSBgJHtHUkFQSF9SVU5fVE9QSUN9LmxvZ2A7XG5cbi8qKlxuICogU1NFIHN1Yi10b3BpYyBzdHJlYW1pbmcgbm9kZS9lZGdlIGV4ZWN1dGlvbi1zdGF0ZSB1cGRhdGVzIGR1cmluZyBhIHJ1bi5cbiAqL1xuZXhwb3J0IGNvbnN0IEdSQVBIX1JVTl9TVEFURV9UT1BJQyA9IGAke0dSQVBIX1JVTl9UT1BJQ30uc3RhdGVgO1xuXG4vKipcbiAqIExvZ2dlciBjdXN0b20tYXR0cmlidXRlIGtleXMgYXR0YWNoZWQgdG8gZXZlcnkgcnVuIGxvZyBsaW5lIHZpYVxuICogREVDQUYtOSBgbG9nZ2VyLmZvcih7Li4ufSlgIChERUNBRi00OCDCpzQuMykuIFJlbmRlcmVkIGFzIGRpc2NyZXRlIGNvbHVtbnNcbiAqIChub3QgYnVyaWVkIGluIHRoZSBtZXNzYWdlIHN0cmluZykuXG4gKi9cbmV4cG9ydCBlbnVtIEdyYXBoTG9nQXR0cmlidXRlIHtcbiAgTk9ERV9JRCA9IFwibm9kZUlkXCIsXG4gIFdPUktGTE9XX0lEID0gXCJ3b3JrZmxvd0lkXCIsXG4gIFJVTl9JRCA9IFwicnVuSWRcIixcbiAgVVNFUiA9IFwidXNlclwiLFxufVxuXG4vKipcbiAqIE5hbWVzcGFjZSB0b3BpYyBoZWxwZXIgZm9yIGEgZ3JhcGggZXhlY3V0aW9uIGV2ZW50LlxuICpcbiAqIExvZy1jYXJyaWVyIGV2ZW50cyByZXNvbHZlIHRvIGBncmFwaC5ydW4ubG9nYDsgbm9kZS9lZGdlIGV4ZWN1dGlvbi1zdGF0ZVxuICogZXZlbnRzIHJlc29sdmUgdG8gYGdyYXBoLnJ1bi5zdGF0ZWA7IGV2ZXJ5dGhpbmcgZWxzZSBzdGF5cyB1bmRlciB0aGUgc2hhcmVkXG4gKiBgZ3JhcGgucnVuYCB0b3BpYyBhbmQgaXMgb25seSBkZWxpdmVyZWQgdG8gc3Vic2NyaWJlcnMgdGhhdCBtYXRjaCBpdC5cbiAqXG4gKiBAcGFyYW0gZXZlbnRUeXBlIC0gVGhlIGdyYXBoIGV4ZWN1dGlvbiBldmVudCB0eXBlIHRvIHNjb3BlIHRvIGEgdG9waWMuXG4gKiBAcmV0dXJucyBUaGUgU1NFIHRvcGljIGNvbnN0YW50IGZvciB0aGUgZ2l2ZW4gZXZlbnQgdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyYXBoUnVuVG9waWNPZihldmVudFR5cGU6IEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlKTogc3RyaW5nIHtcbiAgc3dpdGNoIChldmVudFR5cGUpIHtcbiAgICBjYXNlIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLkdSQVBIX1JVTl9MT0c6XG4gICAgICByZXR1cm4gR1JBUEhfUlVOX0xPR19UT1BJQztcbiAgICBjYXNlIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLk5PREVfU1RBVEVfQ0hBTkdFRDpcbiAgICBjYXNlIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLkVER0VfU1RBVEVfQ0hBTkdFRDpcbiAgICAgIHJldHVybiBHUkFQSF9SVU5fU1RBVEVfVE9QSUM7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBHUkFQSF9SVU5fVE9QSUM7XG4gIH1cbn1cblxuLyoqXG4gKiBFdmVudCB0eXBlcyBlbWl0dGVkIHRocm91Z2ggdGhlIGdyYXBoIGV4ZWN1dGlvbiBvYnNlcnZlciBwaXBlbGluZS5cbiAqXG4gKiBERUNBRi00OCBleHRlbmRzIHRoaXMgc2V0IHdpdGggdGhlIHZpc3VhbC1zdGF0ZSBhbmQgcnVuLWxvZyBldmVudCB0eXBlcyB0aGVcbiAqIGVuZ2luZSBlbWl0cyBvbiB0aGUgZXhpc3RpbmcgT2JzZXJ2YWJsZToge0BsaW5rIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLk5PREVfU1RBVEVfQ0hBTkdFRH0sXG4gKiB7QGxpbmsgR3JhcGhFeGVjdXRpb25FdmVudFR5cGUuRURHRV9TVEFURV9DSEFOR0VEfSBhbmRcbiAqIHtAbGluayBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZS5HUkFQSF9SVU5fTE9HfS5cbiAqL1xuZXhwb3J0IGVudW0gR3JhcGhFeGVjdXRpb25FdmVudFR5cGUge1xuICBXT1JLRkxPV19TVEFSVEVEID0gXCJ3b3JrZmxvdy5zdGFydGVkXCIsXG4gIFdPUktGTE9XX1BMQU5ORUQgPSBcIndvcmtmbG93LnBsYW5uZWRcIixcbiAgV09SS0ZMT1dfQ09NUExFVEVEID0gXCJ3b3JrZmxvdy5jb21wbGV0ZWRcIixcbiAgV09SS0ZMT1dfRkFJTEVEID0gXCJ3b3JrZmxvdy5mYWlsZWRcIixcbiAgV09SS0ZMT1dfQ0FOQ0VMTEVEID0gXCJ3b3JrZmxvdy5jYW5jZWxsZWRcIixcblxuICBOT0RFX1FVRVVFRCA9IFwibm9kZS5xdWV1ZWRcIixcbiAgTk9ERV9TVEFSVEVEID0gXCJub2RlLnN0YXJ0ZWRcIixcbiAgTk9ERV9PVVRQVVQgPSBcIm5vZGUub3V0cHV0XCIsXG4gIE5PREVfQ09NUExFVEVEID0gXCJub2RlLmNvbXBsZXRlZFwiLFxuICBOT0RFX0ZBSUxFRCA9IFwibm9kZS5mYWlsZWRcIixcbiAgTk9ERV9TS0lQUEVEID0gXCJub2RlLnNraXBwZWRcIixcbiAgTk9ERV9DQUNIRV9ISVQgPSBcIm5vZGUuY2FjaGVIaXRcIixcbiAgTk9ERV9QSU5ORUQgPSBcIm5vZGUucGlubmVkXCIsXG4gIE5PREVfVU5QSU5ORUQgPSBcIm5vZGUudW5waW5uZWRcIixcbiAgLyoqIE5vZGUgZXhlY3V0aW9uLXN0YXRlIHRyYW5zaXRpb24gY2FycnlpbmcgYSBgR3JhcGhOb2RlU3RhdGVDaGFuZ2VkUGF5bG9hZGAgKERFQ0FGLTQ4IMKnNC40KS4gKi9cbiAgTk9ERV9TVEFURV9DSEFOR0VEID0gXCJub2RlLnN0YXRlQ2hhbmdlZFwiLFxuXG4gIEVER0VfVkFMVUVfUk9VVEVEID0gXCJlZGdlLnZhbHVlUm91dGVkXCIsXG4gIC8qKiBFZGdlIGV4ZWN1dGlvbi1zdGF0ZSB0cmFuc2l0aW9uIGNhcnJ5aW5nIGEgYEdyYXBoRWRnZVN0YXRlQ2hhbmdlZFBheWxvYWRgIChERUNBRi00OCDCpzQuNCkuICovXG4gIEVER0VfU1RBVEVfQ0hBTkdFRCA9IFwiZWRnZS5zdGF0ZUNoYW5nZWRcIixcblxuICAvKiogU3RydWN0dXJlZCBydW4gbG9nIGxpbmUgY2FycnlpbmcgYSBgR3JhcGhSdW5Mb2dFbnRyeWAgKERFQ0FGLTQ4IMKnNC4zKS4gKi9cbiAgR1JBUEhfUlVOX0xPRyA9IFwiZ3JhcGgucnVuLmxvZ1wiLFxuXG4gIExPT1BfU1RBUlRFRCA9IFwibG9vcC5zdGFydGVkXCIsXG4gIExPT1BfSVRFUkFUSU9OX1NUQVJURUQgPSBcImxvb3AuaXRlcmF0aW9uLnN0YXJ0ZWRcIixcbiAgTE9PUF9JVEVSQVRJT05fQ09NUExFVEVEID0gXCJsb29wLml0ZXJhdGlvbi5jb21wbGV0ZWRcIixcbiAgTE9PUF9DT05ESVRJT05fRVZBTFVBVEVEID0gXCJsb29wLmNvbmRpdGlvbi5ldmFsdWF0ZWRcIixcbiAgTE9PUF9DT01QTEVURUQgPSBcImxvb3AuY29tcGxldGVkXCIsXG4gIExPT1BfTElNSVRfUkVBQ0hFRCA9IFwibG9vcC5saW1pdFJlYWNoZWRcIixcblxuICBWQUxJREFUSU9OX1NUQVJURUQgPSBcInZhbGlkYXRpb24uc3RhcnRlZFwiLFxuICBWQUxJREFUSU9OX0ZBSUxFRCA9IFwidmFsaWRhdGlvbi5mYWlsZWRcIixcbiAgVkFMSURBVElPTl9DT01QTEVURUQgPSBcInZhbGlkYXRpb24uY29tcGxldGVkXCIsXG5cbiAgU1RPUkVfUkVBRCA9IFwic3RvcmUucmVhZFwiLFxuICBTVE9SRV9XUklURSA9IFwic3RvcmUud3JpdGVcIixcbiAgU1RPUkVfREVMRVRFID0gXCJzdG9yZS5kZWxldGVcIixcbn1cblxuLyoqXG4gKiBIYXJkIGxpbWl0cyBmb3IgdGhlIGdyYXBoIHJ1biBzdWJzeXN0ZW0gKERFQ0FGLTUwIMKnNC4xNC/CpzQuMTYpLlxuICpcbiAqIEVuZm9yY2VkIGJ5IHRoZSBydW4gZXhlY3V0b3IgYW5kIHRoZSBIVFRQIHJ1biBjb250cm9sbGVyOyBldmVyeSBvbWl0dGVkXG4gKiBmaWVsZCBmYWxscyBiYWNrIHRvIHtAbGluayBERUZBVUxUX0dSQVBIX1JVTl9MSU1JVFN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyYXBoUnVuTGltaXRzIHtcbiAgLyoqIE1heGltdW0gc2VyaWFsaXNlZCBKU09OIHNpemUgYWNjZXB0ZWQgZm9yIGEgcnVuIGNyZWF0ZSByZXF1ZXN0LiAqL1xuICBtYXhSZXF1ZXN0Qnl0ZXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBydW5zIGluIGZsaWdodCBwZXIgY2FsbGVyOiB0aGUgcnVuJ3Mgb3duZXIgdXNlciwgb3JcbiAgICogdGhlIGNhbGxlci1rZXkgYnVja2V0IHN1cHBsaWVkIGJ5IHRoZSBIVFRQIGxheWVyIGZvciBhbm9ueW1vdXMgY2FsbGVyc1xuICAgKiAocGVyLUlQIHdoZXJlIHRoZSBob3N0IGV4cG9zZXMgaXQsIGEgc2hhcmVkIGBcImFub255bW91c1wiYCBidWNrZXRcbiAgICogb3RoZXJ3aXNlKS5cbiAgICovXG4gIG1heENvbmN1cnJlbnRSdW5zPzogbnVtYmVyO1xuICAvKiogTWF4aW11bSBldmVudHMgcmV0YWluZWQgcGVyIHJ1biBieSB0aGUgaW4tbWVtb3J5IGV2ZW50IHN0b3JlLiAqL1xuICBtYXhFdmVudHNQZXJSdW4/OiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIHNlcmlhbGlzZWQgc2l6ZSBvZiBhIHNpbmdsZSBldmVudCBlbnZlbG9wZSBgcGF5bG9hZGAuICovXG4gIG1heEV2ZW50UGF5bG9hZEJ5dGVzPzogbnVtYmVyO1xuICAvKiogSGFyZCB3YWxsLWNsb2NrIGJ1ZGdldCBmb3IgYSBydW4ncyBlbmdpbmUgZXhlY3V0aW9uLiAqL1xuICBleGVjdXRpb25UaW1lb3V0TXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBIb3cgbG9uZyBhIHRlcm1pbmFsIHJ1bidzIHJlcGxheWFibGUgZXZlbnQgc3RhdGUgaXMga2VwdCBhZnRlciB0aGUgcnVuXG4gICAqIGZpbmlzaGVzIGJlZm9yZSBiZWluZyByZWxlYXNlZCAoU0FBLTU5NSByZXNvdXJjZSBnb3Zlcm5hbmNlKS5cbiAgICovXG4gIGV2ZW50UmVwbGF5V2luZG93TXM/OiBudW1iZXI7XG59XG5cbi8qKiBEZWZhdWx0IHJ1biBsaW1pdHM6IHJlcXVlc3Qgc2l6ZSwgcGVyLWNhbGxlciBjb25jdXJyZW5jeSwgZXZlbnQgcmV0ZW50aW9uL3BheWxvYWQgc2l6ZSwgZXhlY3V0aW9uIHRpbWVvdXQsIGFuZCBwb3N0LXRlcm1pbmFsIGV2ZW50IHJlcGxheSB3aW5kb3cuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9HUkFQSF9SVU5fTElNSVRTOiBSZXF1aXJlZDxHcmFwaFJ1bkxpbWl0cz4gPSB7XG4gIG1heFJlcXVlc3RCeXRlczogNF8wMDBfMDAwLFxuICBtYXhDb25jdXJyZW50UnVuczogMzIsXG4gIG1heEV2ZW50c1BlclJ1bjogMTBfMDAwLFxuICBtYXhFdmVudFBheWxvYWRCeXRlczogMjU2XzAwMCxcbiAgZXhlY3V0aW9uVGltZW91dE1zOiA2MDBfMDAwLFxuICBldmVudFJlcGxheVdpbmRvd01zOiAzMDBfMDAwLFxufTtcblxuLyoqXG4gKiBUZXJtaW5hbCBncmFwaCBldmVudCB0eXBlcyBjbG9zaW5nIGEgcnVuJ3MgU1NFIHN0cmVhbVxuICogKERFQ0FGLTUwIMKnNC4xNSkuIFRoZSBydW4gU1NFIGVuZHBvaW50IG5ldmVyIGVtaXRzIGFueXRoaW5nIGFmdGVyIHRoZXNlLlxuICovXG5leHBvcnQgY29uc3QgR1JBUEhfUlVOX1RFUk1JTkFMX0VWRU5UX1RZUEVTOiByZWFkb25seSBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZVtdID1cbiAgW1xuICAgIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLldPUktGTE9XX0NPTVBMRVRFRCxcbiAgICBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZS5XT1JLRkxPV19GQUlMRUQsXG4gICAgR3JhcGhFeGVjdXRpb25FdmVudFR5cGUuV09SS0ZMT1dfQ0FOQ0VMTEVELFxuICBdO1xuXG4vKiogV2hldGhlciB0aGUgZXZlbnQgdHlwZSBpcyBhIHJ1bi1zdHJlYW0gdGVybWluYWwgdHlwZSAoc2VlIHtAbGluayBHUkFQSF9SVU5fVEVSTUlOQUxfRVZFTlRfVFlQRVN9KS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0dyYXBoUnVuVGVybWluYWxFdmVudFR5cGUoXG4gIHR5cGU6IEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIEdSQVBIX1JVTl9URVJNSU5BTF9FVkVOVF9UWVBFUy5pbmNsdWRlcyh0eXBlKTtcbn1cblxuLyoqIFdoZXRoZXIgdGhlIHJ1biBzdGF0dXMgaXMgdGVybWluYWwgKGBzdWNjZWVkZWRgLCBgZmFpbGVkYCwgb3IgYGNhbmNlbGxlZGApLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzR3JhcGhSdW5UZXJtaW5hbFN0YXR1cyhzdGF0dXM6IEdyYXBoUnVuU3RhdHVzKTogYm9vbGVhbiB7XG4gIHJldHVybiBzdGF0dXMgPT09IFwic3VjY2VlZGVkXCIgfHwgc3RhdHVzID09PSBcImZhaWxlZFwiIHx8IHN0YXR1cyA9PT0gXCJjYW5jZWxsZWRcIjtcbn1cblxuLyoqIFR5cGUgZ3VhcmQgZm9yIHtAbGluayBHcmFwaFJ1blN0YXR1c30uICovXG5leHBvcnQgZnVuY3Rpb24gaXNHcmFwaFJ1blN0YXR1cyh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEdyYXBoUnVuU3RhdHVzIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiZcbiAgICBbXG4gICAgICBcInF1ZXVlZFwiLFxuICAgICAgXCJ2YWxpZGF0aW5nXCIsXG4gICAgICBcInJ1bm5pbmdcIixcbiAgICAgIFwic3VjY2VlZGVkXCIsXG4gICAgICBcImZhaWxlZFwiLFxuICAgICAgXCJjYW5jZWxsZWRcIixcbiAgICBdLmluY2x1ZGVzKHZhbHVlKVxuICApO1xufVxuIl19
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9DQSxnREFFQztBQXVCRCxnRUFFQztBQUlELG9EQUtDO0FBS0Qsc0RBSUM7QUFLRCxvREFJQztBQWtCRCxrRUFFQztBQW1FRCwwQ0FVQztBQWdFRCxrRUFFQztBQUVELDREQUVDO0FBRUQsNENBVUM7QUE1UUQsQ0FBQyxVQUFVLFNBQVM7SUFDaEIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQztJQUM3QixTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsWUFBWSxDQUFDO0lBQ2pDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxZQUFZLENBQUM7SUFDakMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFlBQVksQ0FBQztBQUNyQyxDQUFDLENBQUMsQ0FBQyxpQkFBUyxJQUFJLENBQUMsaUJBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRWxDLENBQUMsVUFBVSxhQUFhO0lBQ3BCLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUM7SUFDakMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQztJQUNuQyxhQUFhLENBQUMsWUFBWSxDQUFDLEdBQUcsWUFBWSxDQUFDO0FBQy9DLENBQUMsQ0FBQyxDQUFDLHFCQUFhLElBQUksQ0FBQyxxQkFBYSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUM7Ozs7OztHQU1HO0FBQ1UsUUFBQSx5QkFBeUIsR0FBRztJQUNyQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFO0lBQ3BCLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtJQUMzQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7SUFDM0MsU0FBUyxFQUFF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SUFBSTtJQUM1QyxPQUFPLHNDQUE4QixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6RCxDQUFDO0FBQ0Qsa0ZBQWtGO0FBQ2xGLFNBQWdCLHdCQUF3QixDQUFDLE1BQU07SUFDM0MsT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLFdBQVcsQ0FBQztBQUNuRixDQUFDO0FBQ0QsNkNBQTZDO0FBQzdDLFNBQWdCLGdCQUFnQixDQUFDLEtBQUs7SUFDbEMsT0FBTyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFDN0I7WUFDSSxRQUFRO1lBQ1IsWUFBWTtZQUNaLFNBQVM7WUFDVCxXQUFXO1lBQ1gsUUFBUTtZQUNSLFdBQVc7U0FDZCxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFDRCxraGlDQUFraGlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHZhciBHcmFwaEtleXM7XG4oZnVuY3Rpb24gKEdyYXBoS2V5cykge1xuICAgIEdyYXBoS2V5c1tcIkdSQVBIXCJdID0gXCJncmFwaFwiO1xuICAgIEdyYXBoS2V5c1tcIk5PREVcIl0gPSBcImdyYXBoLm5vZGVcIjtcbiAgICBHcmFwaEtleXNbXCJFREdFXCJdID0gXCJncmFwaC5lZGdlXCI7XG4gICAgR3JhcGhLZXlzW1wiUE9SVFwiXSA9IFwiZ3JhcGgucG9ydFwiO1xufSkoR3JhcGhLZXlzIHx8IChHcmFwaEtleXMgPSB7fSkpO1xuZXhwb3J0IHZhciBQb3J0RGlyZWN0aW9uO1xuKGZ1bmN0aW9uIChQb3J0RGlyZWN0aW9uKSB7XG4gICAgUG9ydERpcmVjdGlvbltcIklOUFVUXCJdID0gXCJpbnB1dFwiO1xuICAgIFBvcnREaXJlY3Rpb25bXCJPVVRQVVRcIl0gPSBcIm91dHB1dFwiO1xuICAgIFBvcnREaXJlY3Rpb25bXCJDT05ORUNUSU9OXCJdID0gXCJjb25uZWN0aW9uXCI7XG59KShQb3J0RGlyZWN0aW9uIHx8IChQb3J0RGlyZWN0aW9uID0ge30pKTtcbi8qKlxuICogVGhlIGRlZmF1bHQgdmlzdWFsLXN0YXRlIOKGkiBvdmVybGF5IG1hcHBpbmcgY29udHJhY3QgKERFQ0FGLTQ4IMKnNC40KTpcbiAqIHJ1bm5pbmc9ZmFkZWQgZ3JlZW4sIGJsb2NrZWQ9eWVsbG93LCBlcnJvcmVkPXJlZDsgc3VjY2VlZGVkIGtlZXBzIHRoZVxuICogbm9kZSdzIG93biBhY2NlbnQ7IHVuZXhlY3V0ZWQtYWZ0ZXItZmFpbHVyZSBmYWRlcy9kaXNhYmxlZC4gVGhpcyBpcyB0aGVcbiAqIHNoYXJlZCwgZnJhbWV3b3JrLW5ldXRyYWwgc291cmNlIG9mIHRydXRoIHRoYXQgc3VwZXJzZWRlcyB0aGUgREVDQUYtMzJcbiAqIMKnMjEuOSBydW5uaW5nIGNvbG91ciBmb3IgdGhlIGxpdmUgcnVuLWZlZWRiYWNrIG92ZXJsYXkgKMKnNC41KS5cbiAqL1xuZXhwb3J0IGNvbnN0IEdSQVBIX1ZJU1VBTF9TVEFURV9TVFlMRVMgPSB7XG4gICAgaWRsZTogeyBvcGFjaXR5OiAxIH0sXG4gICAgcnVubmluZzogeyBnbG93OiBcIiMyMmM1NWVcIiwgb3BhY2l0eTogMC44NSB9LFxuICAgIGJsb2NrZWQ6IHsgZ2xvdzogXCIjZWFiMzA4XCIsIG9wYWNpdHk6IDAuODUgfSxcbiAgICBzdWNjZWVkZWQ6IHsgb3BhY2l0eTogMSB9LFxuICAgIGZhaWxlZDogeyBnbG93OiBcIiNlZjQ0NDRcIiwgb3BhY2l0eTogMSB9LFxuICAgIHNraXBwZWQ6IHsgb3BhY2l0eTogMC4zNSB9LFxufTtcbi8qKlxuICogUmVzb2x2ZXMgdGhlIHZpc3VhbCBzdHlsZSBvdmVybGF5IGZvciBhIG5vZGUvZWRnZSBleGVjdXRpb24gc3RhdGUsIGZhbGxpbmdcbiAqIGJhY2sgdG8gYSBuZXV0cmFsIGRlZmF1bHQgd2hlbiB0aGUgc3RhdGUgaXMgdW5rbm93biBvciB1bnJlZ2lzdGVyZWQuXG4gKlxuICogQHBhcmFtIHN0YXRlIC0gVGhlIHZpc3VhbCBzdGF0ZSBzdHJpbmcgKGFzIGRlZmluZWQgYnkgdGhlIHNoYXJlZFxuICogYEdyYXBoVmlzdWFsU3RhdGVgIHZhbHVlcywgZS5nLiBgXCJydW5uaW5nXCJgLCBgXCJibG9ja2VkXCJgKS5cbiAqIEByZXR1cm5zIFRoZSBzdHlsZSBvdmVybGF5IGZvciB0aGUgZ2l2ZW4gc3RhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBncmFwaFZpc3VhbFN0eWxlT2Yoc3RhdGUpIHtcbiAgICByZXR1cm4gR1JBUEhfVklTVUFMX1NUQVRFX1NUWUxFU1tzdGF0ZV0gPz8gR1JBUEhfVklTVUFMX1NUQVRFX1NUWUxFUy5pZGxlO1xufVxuLyoqXG4gKiBSZWdpc3RyeSBtYXBwaW5nIGNhdGVnb3J5IG5hbWVzIHRvIHRoZWlyIGRlZmF1bHQgc3R5bGUgKGNvbG9yICsgaWNvbikuXG4gKiBDb25zdW1lcnMgcmVnaXN0ZXIgY2F0ZWdvcmllcyB2aWEge0BsaW5rIHJlZ2lzdGVyR3JhcGhDYXRlZ29yeVN0eWxlfS5cbiAqXG4gKiBUaGUgZW5naW5lIGFuZCByZW5kZXJlciByZXNvbHZlIHRoZSBcImVmZmVjdGl2ZVwiIGNvbG9yL2ljb24gZm9yIGEgbm9kZSBieVxuICogY2hlY2tpbmcgdGhlIG5vZGUncyBleHBsaWNpdCBgY29sb3JgIC8gYGljb25gIGZpcnN0LCB0aGVuIGZhbGxpbmcgYmFjayB0b1xuICogdGhlIGNhdGVnb3J5J3Mgc3R5bGUsIHRoZW4gYSBkZWZhdWx0LlxuICovXG5jb25zdCBHUkFQSF9DQVRFR09SWV9TVFlMRV9SRUdJU1RSWSA9IHt9O1xuLyoqXG4gKiBEZWZhdWx0IGZhbGxiYWNrIHN0eWxlIHdoZW4gbm8gY2F0ZWdvcnkgaXMgcmVnaXN0ZXJlZCBhbmQgbm8gZXhwbGljaXRcbiAqIGNvbG9yL2ljb24gaXMgc2V0IG9uIHRoZSBub2RlLlxuICovXG5leHBvcnQgY29uc3QgR1JBUEhfREVGQVVMVF9DQVRFR09SWV9TVFlMRSA9IHtcbiAgICBjb2xvcjogXCIjNjQ3NDhiXCIsXG4gICAgaWNvbjogXCJ0aS1wb2ludGVyXCIsXG59O1xuLyoqXG4gKiBSZWdpc3RlcnMgYSBjYXRlZ29yeSBzdHlsZSAoY29sb3IgKyBvcHRpb25hbCBpY29uKSBpbiB0aGUgZ2xvYmFsIHJlZ2lzdHJ5LlxuICogQ2FsbCB0aGlzIGF0IG1vZHVsZSBpbml0IHRpbWUgKGUuZy4gaW4gdGhlIGVuZ2luZSdzIG5vZGUgZGVjbGFyYXRpb25zKSB0b1xuICogZGVmaW5lIHRoZSB2aXN1YWwgc3R5bGUgZm9yIGEgY2F0ZWdvcnkgb2Ygbm9kZXMgb3IgY29ubmVjdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckdyYXBoQ2F0ZWdvcnlTdHlsZShjYXRlZ29yeSwgc3R5bGUpIHtcbiAgICBHUkFQSF9DQVRFR09SWV9TVFlMRV9SRUdJU1RSWVtjYXRlZ29yeV0gPSBzdHlsZTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgc3R5bGUgcmVnaXN0ZXJlZCBmb3IgYGNhdGVnb3J5YCwgb3IgdGhlIGRlZmF1bHQgZmFsbGJhY2sgc3R5bGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBncmFwaENhdGVnb3J5U3R5bGVPZihjYXRlZ29yeSkge1xuICAgIGlmIChjYXRlZ29yeSAmJiBHUkFQSF9DQVRFR09SWV9TVFlMRV9SRUdJU1RSWVtjYXRlZ29yeV0pIHtcbiAgICAgICAgcmV0dXJuIEdSQVBIX0NBVEVHT1JZX1NUWUxFX1JFR0lTVFJZW2NhdGVnb3J5XTtcbiAgICB9XG4gICAgcmV0dXJuIEdSQVBIX0RFRkFVTFRfQ0FURUdPUllfU1RZTEU7XG59XG4vKipcbiAqIFJlc29sdmVzIHRoZSBlZmZlY3RpdmUgY29sb3IgZm9yIGEgbm9kZTogZXhwbGljaXQgYGNvbG9yYCBvdmVycmlkZXMgdGhlXG4gKiBjYXRlZ29yeSBjb2xvciwgd2hpY2ggb3ZlcnJpZGVzIHRoZSBkZWZhdWx0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUVmZmVjdGl2ZUNvbG9yKGV4cGxpY2l0Q29sb3IsIGNhdGVnb3J5KSB7XG4gICAgaWYgKGV4cGxpY2l0Q29sb3IpXG4gICAgICAgIHJldHVybiBleHBsaWNpdENvbG9yO1xuICAgIHJldHVybiBncmFwaENhdGVnb3J5U3R5bGVPZihjYXRlZ29yeSkuY29sb3I7XG59XG4vKipcbiAqIFJlc29sdmVzIHRoZSBlZmZlY3RpdmUgaWNvbiBmb3IgYSBub2RlOiBleHBsaWNpdCBgaWNvbmAgb3ZlcnJpZGVzIHRoZVxuICogY2F0ZWdvcnkgaWNvbiwgd2hpY2ggb3ZlcnJpZGVzIHRoZSBkZWZhdWx0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUVmZmVjdGl2ZUljb24oZXhwbGljaXRJY29uLCBjYXRlZ29yeSkge1xuICAgIGlmIChleHBsaWNpdEljb24pXG4gICAgICAgIHJldHVybiBleHBsaWNpdEljb247XG4gICAgcmV0dXJuIGdyYXBoQ2F0ZWdvcnlTdHlsZU9mKGNhdGVnb3J5KS5pY29uID8/IEdSQVBIX0RFRkFVTFRfQ0FURUdPUllfU1RZTEUuaWNvbjtcbn1cbi8qKlxuICogRGlzYWJsZWQtbm9kZSBleGVjdXRpb24gc2VtYW50aWNzIChERUNBRi01MCDCpzQuOSkuXG4gKlxuICogLSBgc2tpcGAg4oCUIHRoZSBub2RlIGRvZXMgbm90IGV4ZWN1dGUgYW5kIHByb2R1Y2VzIG5vIG91dHB1dHMuXG4gKiAtIGBwYXNzVGhyb3VnaEZpcnN0SW5wdXRgIOKAlCB0aGUgZmlyc3QgaW5jb21pbmcgZWRnZSB2YWx1ZSBpcyBmb3J3YXJkZWQgb25cbiAqICAgdGhlIG5vZGUncyBmaXJzdCBkZWNsYXJlZCBvdXRwdXQgcG9ydC5cbiAqIC0gYGVtaXREZWZhdWx0c2Ag4oCUIGV2ZXJ5IGRlY2xhcmVkIG91dHB1dCBwb3J0IGlzIGVtaXR0ZWQgd2l0aCBpdHMgZGVmYXVsdFxuICogICAoYWJzZW50IGEgZGVjbGFyZWQgZGVmYXVsdCwgYHVuZGVmaW5lZGApLlxuICovXG5leHBvcnQgY29uc3QgR1JBUEhfRElTQUJMRURfTk9ERV9CRUhBVklPUlMgPSBbXG4gICAgXCJza2lwXCIsXG4gICAgXCJwYXNzVGhyb3VnaEZpcnN0SW5wdXRcIixcbiAgICBcImVtaXREZWZhdWx0c1wiLFxuXTtcbi8qKiBUaGUgZGlzYWJsZWQtbm9kZSBiZWhhdmlvciBhcHBsaWVkIHdoZW4gYSBub2RlIGRlY2xhcmVzIG5vbmUuICovXG5leHBvcnQgY29uc3QgR1JBUEhfREVGQVVMVF9ESVNBQkxFRF9OT0RFX0JFSEFWSU9SID0gXCJza2lwXCI7XG4vKiogVHlwZSBndWFyZCBmb3Ige0BsaW5rIEdyYXBoRGlzYWJsZWROb2RlQmVoYXZpb3J9LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzR3JhcGhEaXNhYmxlZE5vZGVCZWhhdmlvcih2YWx1ZSkge1xuICAgIHJldHVybiBHUkFQSF9ESVNBQkxFRF9OT0RFX0JFSEFWSU9SUy5pbmNsdWRlcyh2YWx1ZSk7XG59XG4vKipcbiAqIEV4ZWN1dGlvbiBzdGF0dXMgZm9yIGEgd29ya2Zsb3cgb3IgaW5kaXZpZHVhbCBub2RlLlxuICovXG5leHBvcnQgdmFyIEdyYXBoRXhlY3V0aW9uU3RhdHVzO1xuKGZ1bmN0aW9uIChHcmFwaEV4ZWN1dGlvblN0YXR1cykge1xuICAgIEdyYXBoRXhlY3V0aW9uU3RhdHVzW1wiUEVORElOR1wiXSA9IFwicGVuZGluZ1wiO1xuICAgIEdyYXBoRXhlY3V0aW9uU3RhdHVzW1wiUExBTk5JTkdcIl0gPSBcInBsYW5uaW5nXCI7XG4gICAgR3JhcGhFeGVjdXRpb25TdGF0dXNbXCJSVU5OSU5HXCJdID0gXCJydW5uaW5nXCI7XG4gICAgR3JhcGhFeGVjdXRpb25TdGF0dXNbXCJTVUNDRUVERURcIl0gPSBcInN1Y2NlZWRlZFwiO1xuICAgIEdyYXBoRXhlY3V0aW9uU3RhdHVzW1wiRkFJTEVEXCJdID0gXCJmYWlsZWRcIjtcbiAgICBHcmFwaEV4ZWN1dGlvblN0YXR1c1tcIlNLSVBQRURcIl0gPSBcInNraXBwZWRcIjtcbiAgICBHcmFwaEV4ZWN1dGlvblN0YXR1c1tcIkNBTkNFTExFRFwiXSA9IFwiY2FuY2VsbGVkXCI7XG4gICAgR3JhcGhFeGVjdXRpb25TdGF0dXNbXCJDQUNIRURcIl0gPSBcImNhY2hlZFwiO1xufSkoR3JhcGhFeGVjdXRpb25TdGF0dXMgfHwgKEdyYXBoRXhlY3V0aW9uU3RhdHVzID0ge30pKTtcbi8qKlxuICogVmlzdWFsIGV4ZWN1dGlvbiBzdGF0ZSBmb3IgYSBub2RlIG9yIGVkZ2Ugb24gdGhlIHdvcmtmbG93IGNhbnZhcy5cbiAqXG4gKiBGcm9udGVuZC1zYWZlIChERUNBRi00OCDCpzQuNCk6IGEgc3VwZXJzZXQgb2Yge0BsaW5rIEdyYXBoRXhlY3V0aW9uU3RhdHVzfVxuICogbm9ybWFsaXNlZCBmb3IgcmVuZGVyaW5nLiBgQkxPQ0tFRGAgaXMgZGVyaXZlZCBmcm9tIHRoZSBwbGFuIGFuZCBleGVjdXRpb25cbiAqIGV2ZW50cyAod2FpdGluZyBvbiB1cHN0cmVhbSBkZXBlbmRlbmNpZXMpLCBub3QgZW1pdHRlZCBhcyBhbiBlbmdpbmUgc3RhdHVzLlxuICogYFNLSVBQRURgIGlzIHRoZSBwb3N0LWZhaWx1cmUgXCJ1bmV4ZWN1dGVkL2Rpc2FibGVkXCIgdmlzdWFsIHN0YXRlLlxuICovXG5leHBvcnQgdmFyIEdyYXBoVmlzdWFsU3RhdGU7XG4oZnVuY3Rpb24gKEdyYXBoVmlzdWFsU3RhdGUpIHtcbiAgICBHcmFwaFZpc3VhbFN0YXRlW1wiSURMRVwiXSA9IFwiaWRsZVwiO1xuICAgIEdyYXBoVmlzdWFsU3RhdGVbXCJSVU5OSU5HXCJdID0gXCJydW5uaW5nXCI7XG4gICAgR3JhcGhWaXN1YWxTdGF0ZVtcIkJMT0NLRURcIl0gPSBcImJsb2NrZWRcIjtcbiAgICBHcmFwaFZpc3VhbFN0YXRlW1wiU1VDQ0VFREVEXCJdID0gXCJzdWNjZWVkZWRcIjtcbiAgICBHcmFwaFZpc3VhbFN0YXRlW1wiRkFJTEVEXCJdID0gXCJmYWlsZWRcIjtcbiAgICBHcmFwaFZpc3VhbFN0YXRlW1wiU0tJUFBFRFwiXSA9IFwic2tpcHBlZFwiO1xufSkoR3JhcGhWaXN1YWxTdGF0ZSB8fCAoR3JhcGhWaXN1YWxTdGF0ZSA9IHt9KSk7XG4vKipcbiAqIE5hbWVzcGFjZSByb290IGZvciBncmFwaCBydW4gU1NFIHRvcGljcyAoREVDQUYtNDggwqc0LjIpLiBBIHN1YnNjcmlwdGlvblxuICogZmlsdGVycyBvbiB0aGVzZSBncmFudWxhciB0b3BpY3MgYmVmb3JlIGBvYnNlcnZlci5uZXh0KC4uLilgLlxuICovXG5leHBvcnQgY29uc3QgR1JBUEhfUlVOX1RPUElDID0gXCJncmFwaC5ydW5cIjtcbi8qKlxuICogU1NFIHN1Yi10b3BpYyBzdHJlYW1pbmcgcGVyLW5vZGUgbG9nIGxpbmVzIGR1cmluZyBhIHJ1bi5cbiAqL1xuZXhwb3J0IGNvbnN0IEdSQVBIX1JVTl9MT0dfVE9QSUMgPSBgJHtHUkFQSF9SVU5fVE9QSUN9LmxvZ2A7XG4vKipcbiAqIFNTRSBzdWItdG9waWMgc3RyZWFtaW5nIG5vZGUvZWRnZSBleGVjdXRpb24tc3RhdGUgdXBkYXRlcyBkdXJpbmcgYSBydW4uXG4gKi9cbmV4cG9ydCBjb25zdCBHUkFQSF9SVU5fU1RBVEVfVE9QSUMgPSBgJHtHUkFQSF9SVU5fVE9QSUN9LnN0YXRlYDtcbi8qKlxuICogTG9nZ2VyIGN1c3RvbS1hdHRyaWJ1dGUga2V5cyBhdHRhY2hlZCB0byBldmVyeSBydW4gbG9nIGxpbmUgdmlhXG4gKiBERUNBRi05IGBsb2dnZXIuZm9yKHsuLi59KWAgKERFQ0FGLTQ4IMKnNC4zKS4gUmVuZGVyZWQgYXMgZGlzY3JldGUgY29sdW1uc1xuICogKG5vdCBidXJpZWQgaW4gdGhlIG1lc3NhZ2Ugc3RyaW5nKS5cbiAqL1xuZXhwb3J0IHZhciBHcmFwaExvZ0F0dHJpYnV0ZTtcbihmdW5jdGlvbiAoR3JhcGhMb2dBdHRyaWJ1dGUpIHtcbiAgICBHcmFwaExvZ0F0dHJpYnV0ZVtcIk5PREVfSURcIl0gPSBcIm5vZGVJZFwiO1xuICAgIEdyYXBoTG9nQXR0cmlidXRlW1wiV09SS0ZMT1dfSURcIl0gPSBcIndvcmtmbG93SWRcIjtcbiAgICBHcmFwaExvZ0F0dHJpYnV0ZVtcIlJVTl9JRFwiXSA9IFwicnVuSWRcIjtcbiAgICBHcmFwaExvZ0F0dHJpYnV0ZVtcIlVTRVJcIl0gPSBcInVzZXJcIjtcbn0pKEdyYXBoTG9nQXR0cmlidXRlIHx8IChHcmFwaExvZ0F0dHJpYnV0ZSA9IHt9KSk7XG4vKipcbiAqIE5hbWVzcGFjZSB0b3BpYyBoZWxwZXIgZm9yIGEgZ3JhcGggZXhlY3V0aW9uIGV2ZW50LlxuICpcbiAqIExvZy1jYXJyaWVyIGV2ZW50cyByZXNvbHZlIHRvIGBncmFwaC5ydW4ubG9nYDsgbm9kZS9lZGdlIGV4ZWN1dGlvbi1zdGF0ZVxuICogZXZlbnRzIHJlc29sdmUgdG8gYGdyYXBoLnJ1bi5zdGF0ZWA7IGV2ZXJ5dGhpbmcgZWxzZSBzdGF5cyB1bmRlciB0aGUgc2hhcmVkXG4gKiBgZ3JhcGgucnVuYCB0b3BpYyBhbmQgaXMgb25seSBkZWxpdmVyZWQgdG8gc3Vic2NyaWJlcnMgdGhhdCBtYXRjaCBpdC5cbiAqXG4gKiBAcGFyYW0gZXZlbnRUeXBlIC0gVGhlIGdyYXBoIGV4ZWN1dGlvbiBldmVudCB0eXBlIHRvIHNjb3BlIHRvIGEgdG9waWMuXG4gKiBAcmV0dXJucyBUaGUgU1NFIHRvcGljIGNvbnN0YW50IGZvciB0aGUgZ2l2ZW4gZXZlbnQgdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyYXBoUnVuVG9waWNPZihldmVudFR5cGUpIHtcbiAgICBzd2l0Y2ggKGV2ZW50VHlwZSkge1xuICAgICAgICBjYXNlIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLkdSQVBIX1JVTl9MT0c6XG4gICAgICAgICAgICByZXR1cm4gR1JBUEhfUlVOX0xPR19UT1BJQztcbiAgICAgICAgY2FzZSBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZS5OT0RFX1NUQVRFX0NIQU5HRUQ6XG4gICAgICAgIGNhc2UgR3JhcGhFeGVjdXRpb25FdmVudFR5cGUuRURHRV9TVEFURV9DSEFOR0VEOlxuICAgICAgICAgICAgcmV0dXJuIEdSQVBIX1JVTl9TVEFURV9UT1BJQztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBHUkFQSF9SVU5fVE9QSUM7XG4gICAgfVxufVxuLyoqXG4gKiBFdmVudCB0eXBlcyBlbWl0dGVkIHRocm91Z2ggdGhlIGdyYXBoIGV4ZWN1dGlvbiBvYnNlcnZlciBwaXBlbGluZS5cbiAqXG4gKiBERUNBRi00OCBleHRlbmRzIHRoaXMgc2V0IHdpdGggdGhlIHZpc3VhbC1zdGF0ZSBhbmQgcnVuLWxvZyBldmVudCB0eXBlcyB0aGVcbiAqIGVuZ2luZSBlbWl0cyBvbiB0aGUgZXhpc3RpbmcgT2JzZXJ2YWJsZToge0BsaW5rIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLk5PREVfU1RBVEVfQ0hBTkdFRH0sXG4gKiB7QGxpbmsgR3JhcGhFeGVjdXRpb25FdmVudFR5cGUuRURHRV9TVEFURV9DSEFOR0VEfSBhbmRcbiAqIHtAbGluayBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZS5HUkFQSF9SVU5fTE9HfS5cbiAqL1xuZXhwb3J0IHZhciBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZTtcbihmdW5jdGlvbiAoR3JhcGhFeGVjdXRpb25FdmVudFR5cGUpIHtcbiAgICBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZVtcIldPUktGTE9XX1NUQVJURURcIl0gPSBcIndvcmtmbG93LnN0YXJ0ZWRcIjtcbiAgICBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZVtcIldPUktGTE9XX1BMQU5ORURcIl0gPSBcIndvcmtmbG93LnBsYW5uZWRcIjtcbiAgICBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZVtcIldPUktGTE9XX0NPTVBMRVRFRFwiXSA9IFwid29ya2Zsb3cuY29tcGxldGVkXCI7XG4gICAgR3JhcGhFeGVjdXRpb25FdmVudFR5cGVbXCJXT1JLRkxPV19GQUlMRURcIl0gPSBcIndvcmtmbG93LmZhaWxlZFwiO1xuICAgIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlW1wiV09SS0ZMT1dfQ0FOQ0VMTEVEXCJdID0gXCJ3b3JrZmxvdy5jYW5jZWxsZWRcIjtcbiAgICBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZVtcIk5PREVfUVVFVUVEXCJdID0gXCJub2RlLnF1ZXVlZFwiO1xuICAgIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlW1wiTk9ERV9TVEFSVEVEXCJdID0gXCJub2RlLnN0YXJ0ZWRcIjtcbiAgICBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZVtcIk5PREVfT1VUUFVUXCJdID0gXCJub2RlLm91dHB1dFwiO1xuICAgIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlW1wiTk9ERV9DT01QTEVURURcIl0gPSBcIm5vZGUuY29tcGxldGVkXCI7XG4gICAgR3JhcGhFeGVjdXRpb25FdmVudFR5cGVbXCJOT0RFX0ZBSUxFRFwiXSA9IFwibm9kZS5mYWlsZWRcIjtcbiAgICBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZVtcIk5PREVfU0tJUFBFRFwiXSA9IFwibm9kZS5za2lwcGVkXCI7XG4gICAgR3JhcGhFeGVjdXRpb25FdmVudFR5cGVbXCJOT0RFX0NBQ0hFX0hJVFwiXSA9IFwibm9kZS5jYWNoZUhpdFwiO1xuICAgIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlW1wiTk9ERV9QSU5ORURcIl0gPSBcIm5vZGUucGlubmVkXCI7XG4gICAgR3JhcGhFeGVjdXRpb25FdmVudFR5cGVbXCJOT0RFX1VOUElOTkVEXCJdID0gXCJub2RlLnVucGlubmVkXCI7XG4gICAgLyoqIE5vZGUgZXhlY3V0aW9uLXN0YXRlIHRyYW5zaXRpb24gY2FycnlpbmcgYSBgR3JhcGhOb2RlU3RhdGVDaGFuZ2VkUGF5bG9hZGAgKERFQ0FGLTQ4IMKnNC40KS4gKi9cbiAgICBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZVtcIk5PREVfU1RBVEVfQ0hBTkdFRFwiXSA9IFwibm9kZS5zdGF0ZUNoYW5nZWRcIjtcbiAgICBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZVtcIkVER0VfVkFMVUVfUk9VVEVEXCJdID0gXCJlZGdlLnZhbHVlUm91dGVkXCI7XG4gICAgLyoqIEVkZ2UgZXhlY3V0aW9uLXN0YXRlIHRyYW5zaXRpb24gY2FycnlpbmcgYSBgR3JhcGhFZGdlU3RhdGVDaGFuZ2VkUGF5bG9hZGAgKERFQ0FGLTQ4IMKnNC40KS4gKi9cbiAgICBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZVtcIkVER0VfU1RBVEVfQ0hBTkdFRFwiXSA9IFwiZWRnZS5zdGF0ZUNoYW5nZWRcIjtcbiAgICAvKiogU3RydWN0dXJlZCBydW4gbG9nIGxpbmUgY2FycnlpbmcgYSBgR3JhcGhSdW5Mb2dFbnRyeWAgKERFQ0FGLTQ4IMKnNC4zKS4gKi9cbiAgICBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZVtcIkdSQVBIX1JVTl9MT0dcIl0gPSBcImdyYXBoLnJ1bi5sb2dcIjtcbiAgICBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZVtcIkxPT1BfU1RBUlRFRFwiXSA9IFwibG9vcC5zdGFydGVkXCI7XG4gICAgR3JhcGhFeGVjdXRpb25FdmVudFR5cGVbXCJMT09QX0lURVJBVElPTl9TVEFSVEVEXCJdID0gXCJsb29wLml0ZXJhdGlvbi5zdGFydGVkXCI7XG4gICAgR3JhcGhFeGVjdXRpb25FdmVudFR5cGVbXCJMT09QX0lURVJBVElPTl9DT01QTEVURURcIl0gPSBcImxvb3AuaXRlcmF0aW9uLmNvbXBsZXRlZFwiO1xuICAgIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlW1wiTE9PUF9DT05ESVRJT05fRVZBTFVBVEVEXCJdID0gXCJsb29wLmNvbmRpdGlvbi5ldmFsdWF0ZWRcIjtcbiAgICBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZVtcIkxPT1BfQ09NUExFVEVEXCJdID0gXCJsb29wLmNvbXBsZXRlZFwiO1xuICAgIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlW1wiTE9PUF9MSU1JVF9SRUFDSEVEXCJdID0gXCJsb29wLmxpbWl0UmVhY2hlZFwiO1xuICAgIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlW1wiVkFMSURBVElPTl9TVEFSVEVEXCJdID0gXCJ2YWxpZGF0aW9uLnN0YXJ0ZWRcIjtcbiAgICBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZVtcIlZBTElEQVRJT05fRkFJTEVEXCJdID0gXCJ2YWxpZGF0aW9uLmZhaWxlZFwiO1xuICAgIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlW1wiVkFMSURBVElPTl9DT01QTEVURURcIl0gPSBcInZhbGlkYXRpb24uY29tcGxldGVkXCI7XG4gICAgR3JhcGhFeGVjdXRpb25FdmVudFR5cGVbXCJTVE9SRV9SRUFEXCJdID0gXCJzdG9yZS5yZWFkXCI7XG4gICAgR3JhcGhFeGVjdXRpb25FdmVudFR5cGVbXCJTVE9SRV9XUklURVwiXSA9IFwic3RvcmUud3JpdGVcIjtcbiAgICBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZVtcIlNUT1JFX0RFTEVURVwiXSA9IFwic3RvcmUuZGVsZXRlXCI7XG59KShHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZSB8fCAoR3JhcGhFeGVjdXRpb25FdmVudFR5cGUgPSB7fSkpO1xuLyoqIERlZmF1bHQgcnVuIGxpbWl0czogcmVxdWVzdCBzaXplLCBwZXItY2FsbGVyIGNvbmN1cnJlbmN5LCBldmVudCByZXRlbnRpb24vcGF5bG9hZCBzaXplLCBleGVjdXRpb24gdGltZW91dCwgYW5kIHBvc3QtdGVybWluYWwgZXZlbnQgcmVwbGF5IHdpbmRvdy4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0dSQVBIX1JVTl9MSU1JVFMgPSB7XG4gICAgbWF4UmVxdWVzdEJ5dGVzOiA0XzAwMF8wMDAsXG4gICAgbWF4Q29uY3VycmVudFJ1bnM6IDMyLFxuICAgIG1heEV2ZW50c1BlclJ1bjogMTBfMDAwLFxuICAgIG1heEV2ZW50UGF5bG9hZEJ5dGVzOiAyNTZfMDAwLFxuICAgIGV4ZWN1dGlvblRpbWVvdXRNczogNjAwXzAwMCxcbiAgICBldmVudFJlcGxheVdpbmRvd01zOiAzMDBfMDAwLFxufTtcbi8qKlxuICogVGVybWluYWwgZ3JhcGggZXZlbnQgdHlwZXMgY2xvc2luZyBhIHJ1bidzIFNTRSBzdHJlYW1cbiAqIChERUNBRi01MCDCpzQuMTUpLiBUaGUgcnVuIFNTRSBlbmRwb2ludCBuZXZlciBlbWl0cyBhbnl0aGluZyBhZnRlciB0aGVzZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEdSQVBIX1JVTl9URVJNSU5BTF9FVkVOVF9UWVBFUyA9IFtcbiAgICBHcmFwaEV4ZWN1dGlvbkV2ZW50VHlwZS5XT1JLRkxPV19DT01QTEVURUQsXG4gICAgR3JhcGhFeGVjdXRpb25FdmVudFR5cGUuV09SS0ZMT1dfRkFJTEVELFxuICAgIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLldPUktGTE9XX0NBTkNFTExFRCxcbl07XG4vKiogV2hldGhlciB0aGUgZXZlbnQgdHlwZSBpcyBhIHJ1bi1zdHJlYW0gdGVybWluYWwgdHlwZSAoc2VlIHtAbGluayBHUkFQSF9SVU5fVEVSTUlOQUxfRVZFTlRfVFlQRVN9KS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0dyYXBoUnVuVGVybWluYWxFdmVudFR5cGUodHlwZSkge1xuICAgIHJldHVybiBHUkFQSF9SVU5fVEVSTUlOQUxfRVZFTlRfVFlQRVMuaW5jbHVkZXModHlwZSk7XG59XG4vKiogV2hldGhlciB0aGUgcnVuIHN0YXR1cyBpcyB0ZXJtaW5hbCAoYHN1Y2NlZWRlZGAsIGBmYWlsZWRgLCBvciBgY2FuY2VsbGVkYCkuICovXG5leHBvcnQgZnVuY3Rpb24gaXNHcmFwaFJ1blRlcm1pbmFsU3RhdHVzKHN0YXR1cykge1xuICAgIHJldHVybiBzdGF0dXMgPT09IFwic3VjY2VlZGVkXCIgfHwgc3RhdHVzID09PSBcImZhaWxlZFwiIHx8IHN0YXR1cyA9PT0gXCJjYW5jZWxsZWRcIjtcbn1cbi8qKiBUeXBlIGd1YXJkIGZvciB7QGxpbmsgR3JhcGhSdW5TdGF0dXN9LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzR3JhcGhSdW5TdGF0dXModmFsdWUpIHtcbiAgICByZXR1cm4gKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICBbXG4gICAgICAgICAgICBcInF1ZXVlZFwiLFxuICAgICAgICAgICAgXCJ2YWxpZGF0aW5nXCIsXG4gICAgICAgICAgICBcInJ1bm5pbmdcIixcbiAgICAgICAgICAgIFwic3VjY2VlZGVkXCIsXG4gICAgICAgICAgICBcImZhaWxlZFwiLFxuICAgICAgICAgICAgXCJjYW5jZWxsZWRcIixcbiAgICAgICAgXS5pbmNsdWRlcyh2YWx1ZSkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWTI5dWMzUmhiblJ6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZjM0pqTDJkeVlYQm9MMk52Ym5OMFlXNTBjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeE5RVUZOTEVOQlFVNHNTVUZCV1N4VFFVdFlPMEZCVEVRc1YwRkJXU3hUUVVGVE8wbEJRMjVDTERSQ1FVRmxMRU5CUVVFN1NVRkRaaXhuUTBGQlowTXNRMEZCUVR0SlFVTm9ReXhuUTBGQlowTXNRMEZCUVR0SlFVTm9ReXhuUTBGQlowTXNRMEZCUVR0QlFVTnNReXhEUVVGRExFVkJURmNzVTBGQlV5eExRVUZVTEZOQlFWTXNVVUZMY0VJN1FVRkZSQ3hOUVVGTkxFTkJRVTRzU1VGQldTeGhRVWxZTzBGQlNrUXNWMEZCV1N4aFFVRmhPMGxCUTNaQ0xHZERRVUZsTEVOQlFVRTdTVUZEWml4clEwRkJhVUlzUTBGQlFUdEpRVU5xUWl3d1EwRkJlVUlzUTBGQlFUdEJRVU16UWl4RFFVRkRMRVZCU2xjc1lVRkJZU3hMUVVGaUxHRkJRV0VzVVVGSmVFSTdRVUUyUmtRN096czdPenRIUVUxSE8wRkJRMGdzVFVGQlRTeERRVUZETEUxQlFVMHNlVUpCUVhsQ0xFZEJSV3hETzBsQlEwWXNTVUZCU1N4RlFVRkZMRVZCUVVVc1QwRkJUeXhGUVVGRkxFTkJRVU1zUlVGQlJUdEpRVU53UWl4UFFVRlBMRVZCUVVVc1JVRkJSU3hKUVVGSkxFVkJRVVVzVTBGQlV5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRVZCUVVVN1NVRkRNME1zVDBGQlR5eEZRVUZGTEVWQlFVVXNTVUZCU1N4RlFVRkZMRk5CUVZNc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTzBsQlF6TkRMRk5CUVZNc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeERRVUZETEVWQlFVVTdTVUZEZWtJc1RVRkJUU3hGUVVGRkxFVkJRVVVzU1VGQlNTeEZRVUZGTEZOQlFWTXNSVUZCUlN4UFFVRlBMRVZCUVVVc1EwRkJReXhGUVVGRk8wbEJRM1pETEU5QlFVOHNSVUZCUlN4RlFVRkZMRTlCUVU4c1JVRkJSU3hKUVVGSkxFVkJRVVU3UTBGRE0wSXNRMEZCUXp0QlFVVkdPenM3T3pzN08wZEJUMGM3UVVGRFNDeE5RVUZOTEZWQlFWVXNhMEpCUVd0Q0xFTkJRMmhETEV0QlFXRTdTVUZGWWl4UFFVRlBMSGxDUVVGNVFpeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMSGxDUVVGNVFpeERRVUZETEVsQlFVa3NRMEZCUXp0QlFVTTFSU3hEUVVGRE8wRkJNa3BFT3pzN096czdPMGRCVDBjN1FVRkRTQ3hOUVVGTkxEWkNRVUUyUWl4SFFVRjFReXhGUVVGRkxFTkJRVU03UVVGRk4wVTdPenRIUVVkSE8wRkJRMGdzVFVGQlRTeERRVUZETEUxQlFVMHNORUpCUVRSQ0xFZEJRWFZDTzBsQlF6bEVMRXRCUVVzc1JVRkJSU3hUUVVGVE8wbEJRMmhDTEVsQlFVa3NSVUZCUlN4WlFVRlpPME5CUTI1Q0xFTkJRVU03UVVGRlJqczdPenRIUVVsSE8wRkJRMGdzVFVGQlRTeFZRVUZWTERCQ1FVRXdRaXhEUVVONFF5eFJRVUZuUWl4RlFVTm9RaXhMUVVGNVFqdEpRVVY2UWl3MlFrRkJOa0lzUTBGQlF5eFJRVUZSTEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNN1FVRkRiRVFzUTBGQlF6dEJRVVZFT3p0SFFVVkhPMEZCUTBnc1RVRkJUU3hWUVVGVkxHOUNRVUZ2UWl4RFFVRkRMRkZCUVdsQ08wbEJRM0JFTEVsQlFVa3NVVUZCVVN4SlFVRkpMRFpDUVVFMlFpeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMRU5CUVVNN1VVRkRlRVFzVDBGQlR5dzJRa0ZCTmtJc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEpRVU5xUkN4RFFVRkRPMGxCUTBRc1QwRkJUeXcwUWtGQk5FSXNRMEZCUXp0QlFVTjBReXhEUVVGRE8wRkJSVVE3T3p0SFFVZEhPMEZCUTBnc1RVRkJUU3hWUVVGVkxIRkNRVUZ4UWl4RFFVTnVReXhoUVVGelFpeEZRVU4wUWl4UlFVRnBRanRKUVVWcVFpeEpRVUZKTEdGQlFXRTdVVUZCUlN4UFFVRlBMR0ZCUVdFc1EwRkJRenRKUVVONFF5eFBRVUZQTEc5Q1FVRnZRaXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0QlFVTTVReXhEUVVGRE8wRkJSVVE3T3p0SFFVZEhPMEZCUTBnc1RVRkJUU3hWUVVGVkxHOUNRVUZ2UWl4RFFVTnNReXhaUVVGeFFpeEZRVU55UWl4UlFVRnBRanRKUVVWcVFpeEpRVUZKTEZsQlFWazdVVUZCUlN4UFFVRlBMRmxCUVZrc1EwRkJRenRKUVVOMFF5eFBRVUZQTEc5Q1FVRnZRaXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVsQlFVa3NTVUZCU1N3MFFrRkJORUlzUTBGQlF5eEpRVUZMTEVOQlFVTTdRVUZEYmtZc1EwRkJRenRCUVZWRU96czdPenM3T3p0SFFWRkhPMEZCUTBnc1RVRkJUU3hEUVVGRExFMUJRVTBzTmtKQlFUWkNMRWRCUVVjN1NVRkRNME1zVFVGQlRUdEpRVU5PTEhWQ1FVRjFRanRKUVVOMlFpeGpRVUZqTzBOQlEwNHNRMEZCUXp0QlFVdFlMRzlGUVVGdlJUdEJRVU53UlN4TlFVRk5MRU5CUVVNc1RVRkJUU3h2UTBGQmIwTXNSMEZCT0VJc1RVRkJUU3hEUVVGRE8wRkJSWFJHTEhkRVFVRjNSRHRCUVVONFJDeE5RVUZOTEZWQlFWVXNNa0pCUVRKQ0xFTkJRM3BETEV0QlFXTTdTVUZGWkN4UFFVRlJMRFpDUVVGdFJDeERRVUZETEZGQlFWRXNRMEZEYkVVc1MwRkJaU3hEUVVOb1FpeERRVUZETzBGQlEwb3NRMEZCUXp0QlFVVkVPenRIUVVWSE8wRkJRMGdzVFVGQlRTeERRVUZPTEVsQlFWa3NiMEpCVTFnN1FVRlVSQ3hYUVVGWkxHOUNRVUZ2UWp0SlFVTTVRaXd5UTBGQmJVSXNRMEZCUVR0SlFVTnVRaXcyUTBGQmNVSXNRMEZCUVR0SlFVTnlRaXd5UTBGQmJVSXNRMEZCUVR0SlFVTnVRaXdyUTBGQmRVSXNRMEZCUVR0SlFVTjJRaXg1UTBGQmFVSXNRMEZCUVR0SlFVTnFRaXd5UTBGQmJVSXNRMEZCUVR0SlFVTnVRaXdyUTBGQmRVSXNRMEZCUVR0SlFVTjJRaXg1UTBGQmFVSXNRMEZCUVR0QlFVTnVRaXhEUVVGRExFVkJWRmNzYjBKQlFXOUNMRXRCUVhCQ0xHOUNRVUZ2UWl4UlFWTXZRanRCUVVWRU96czdPenM3TzBkQlQwYzdRVUZEU0N4TlFVRk5MRU5CUVU0c1NVRkJXU3huUWtGUFdEdEJRVkJFTEZkQlFWa3NaMEpCUVdkQ08wbEJRekZDTEdsRFFVRmhMRU5CUVVFN1NVRkRZaXgxUTBGQmJVSXNRMEZCUVR0SlFVTnVRaXgxUTBGQmJVSXNRMEZCUVR0SlFVTnVRaXd5UTBGQmRVSXNRMEZCUVR0SlFVTjJRaXh4UTBGQmFVSXNRMEZCUVR0SlFVTnFRaXgxUTBGQmJVSXNRMEZCUVR0QlFVTnlRaXhEUVVGRExFVkJVRmNzWjBKQlFXZENMRXRCUVdoQ0xHZENRVUZuUWl4UlFVOHpRanRCUVVkRU96czdSMEZIUnp0QlFVTklMRTFCUVUwc1EwRkJReXhOUVVGTkxHVkJRV1VzUjBGQlJ5eFhRVUZYTEVOQlFVTTdRVUZGTTBNN08wZEJSVWM3UVVGRFNDeE5RVUZOTEVOQlFVTXNUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eEhRVUZITEdWQlFXVXNUVUZCVFN4RFFVRkRPMEZCUlRWRU96dEhRVVZITzBGQlEwZ3NUVUZCVFN4RFFVRkRMRTFCUVUwc2NVSkJRWEZDTEVkQlFVY3NSMEZCUnl4bFFVRmxMRkZCUVZFc1EwRkJRenRCUVVWb1JUczdPenRIUVVsSE8wRkJRMGdzVFVGQlRTeERRVUZPTEVsQlFWa3NhVUpCUzFnN1FVRk1SQ3hYUVVGWkxHbENRVUZwUWp0SlFVTXpRaXgxUTBGQmEwSXNRMEZCUVR0SlFVTnNRaXdyUTBGQk1FSXNRMEZCUVR0SlFVTXhRaXh4UTBGQlowSXNRMEZCUVR0SlFVTm9RaXhyUTBGQllTeERRVUZCTzBGQlEyWXNRMEZCUXl4RlFVeFhMR2xDUVVGcFFpeExRVUZxUWl4cFFrRkJhVUlzVVVGTE5VSTdRVUZGUkRzN096czdPenM3TzBkQlUwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1pVRkJaU3hEUVVGRExGTkJRV3RETzBsQlEyaEZMRkZCUVZFc1UwRkJVeXhGUVVGRkxFTkJRVU03VVVGRGJFSXNTMEZCU3l4MVFrRkJkVUlzUTBGQlF5eGhRVUZoTzFsQlEzaERMRTlCUVU4c2JVSkJRVzFDTEVOQlFVTTdVVUZETjBJc1MwRkJTeXgxUWtGQmRVSXNRMEZCUXl4clFrRkJhMElzUTBGQlF6dFJRVU5vUkN4TFFVRkxMSFZDUVVGMVFpeERRVUZETEd0Q1FVRnJRanRaUVVNM1F5eFBRVUZQTEhGQ1FVRnhRaXhEUVVGRE8xRkJReTlDTzFsQlEwVXNUMEZCVHl4bFFVRmxMRU5CUVVNN1NVRkRNMElzUTBGQlF6dEJRVU5JTEVOQlFVTTdRVUZGUkRzN096czdPenRIUVU5SE8wRkJRMGdzVFVGQlRTeERRVUZPTEVsQlFWa3NkVUpCZDBOWU8wRkJlRU5FTEZkQlFWa3NkVUpCUVhWQ08wbEJRMnBETEdkRlFVRnhReXhEUVVGQk8wbEJRM0pETEdkRlFVRnhReXhEUVVGQk8wbEJRM0pETEc5RlFVRjVReXhEUVVGQk8wbEJRM3BETERoRVFVRnRReXhEUVVGQk8wbEJRMjVETEc5RlFVRjVReXhEUVVGQk8wbEJSWHBETEhORVFVRXlRaXhEUVVGQk8wbEJRek5DTEhkRVFVRTJRaXhEUVVGQk8wbEJRemRDTEhORVFVRXlRaXhEUVVGQk8wbEJRek5DTERSRVFVRnBReXhEUVVGQk8wbEJRMnBETEhORVFVRXlRaXhEUVVGQk8wbEJRek5DTEhkRVFVRTJRaXhEUVVGQk8wbEJRemRDTERKRVFVRm5ReXhEUVVGQk8wbEJRMmhETEhORVFVRXlRaXhEUVVGQk8wbEJRek5DTERCRVFVRXJRaXhEUVVGQk8wbEJReTlDTEdsSFFVRnBSenRKUVVOcVJ5eHRSVUZCZDBNc1EwRkJRVHRKUVVWNFF5eHBSVUZCYzBNc1EwRkJRVHRKUVVOMFF5eHBSMEZCYVVjN1NVRkRha2NzYlVWQlFYZERMRU5CUVVFN1NVRkZlRU1zTmtWQlFUWkZPMGxCUXpkRkxEQkVRVUVyUWl4RFFVRkJPMGxCUlM5Q0xIZEVRVUUyUWl4RFFVRkJPMGxCUXpkQ0xEUkZRVUZwUkN4RFFVRkJPMGxCUTJwRUxHZEdRVUZ4UkN4RFFVRkJPMGxCUTNKRUxHZEdRVUZ4UkN4RFFVRkJPMGxCUTNKRUxEUkVRVUZwUXl4RFFVRkJPMGxCUTJwRExHMUZRVUYzUXl4RFFVRkJPMGxCUlhoRExHOUZRVUY1UXl4RFFVRkJPMGxCUTNwRExHdEZRVUYxUXl4RFFVRkJPMGxCUTNaRExIZEZRVUUyUXl4RFFVRkJPMGxCUlRkRExHOUVRVUY1UWl4RFFVRkJPMGxCUTNwQ0xITkVRVUV5UWl4RFFVRkJPMGxCUXpOQ0xIZEVRVUUyUWl4RFFVRkJPMEZCUXk5Q0xFTkJRVU1zUlVGNFExY3NkVUpCUVhWQ0xFdEJRWFpDTEhWQ1FVRjFRaXhSUVhkRGJFTTdRVUVyUWtRc2QwcEJRWGRLTzBGQlEzaEtMRTFCUVUwc1EwRkJReXhOUVVGTkxIZENRVUYzUWl4SFFVRTJRanRKUVVOb1JTeGxRVUZsTEVWQlFVVXNVMEZCVXp0SlFVTXhRaXhwUWtGQmFVSXNSVUZCUlN4RlFVRkZPMGxCUTNKQ0xHVkJRV1VzUlVGQlJTeE5RVUZOTzBsQlEzWkNMRzlDUVVGdlFpeEZRVUZGTEU5QlFVODdTVUZETjBJc2EwSkJRV3RDTEVWQlFVVXNUMEZCVHp0SlFVTXpRaXh0UWtGQmJVSXNSVUZCUlN4UFFVRlBPME5CUXpkQ0xFTkJRVU03UVVGRlJqczdPMGRCUjBjN1FVRkRTQ3hOUVVGTkxFTkJRVU1zVFVGQlRTdzRRa0ZCT0VJc1IwRkRla003U1VGRFJTeDFRa0ZCZFVJc1EwRkJReXhyUWtGQmEwSTdTVUZETVVNc2RVSkJRWFZDTEVOQlFVTXNaVUZCWlR0SlFVTjJReXgxUWtGQmRVSXNRMEZCUXl4clFrRkJhMEk3UTBGRE0wTXNRMEZCUXp0QlFVVktMSGxIUVVGNVJ6dEJRVU42Unl4TlFVRk5MRlZCUVZVc01rSkJRVEpDTEVOQlEzcERMRWxCUVRaQ08wbEJSVGRDTEU5QlFVOHNPRUpCUVRoQ0xFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTNaRUxFTkJRVU03UVVGRlJDeHJSa0ZCYTBZN1FVRkRiRVlzVFVGQlRTeFZRVUZWTEhkQ1FVRjNRaXhEUVVGRExFMUJRWE5DTzBsQlF6ZEVMRTlCUVU4c1RVRkJUU3hMUVVGTExGZEJRVmNzU1VGQlNTeE5RVUZOTEV0QlFVc3NVVUZCVVN4SlFVRkpMRTFCUVUwc1MwRkJTeXhYUVVGWExFTkJRVU03UVVGRGFrWXNRMEZCUXp0QlFVVkVMRFpEUVVFMlF6dEJRVU0zUXl4TlFVRk5MRlZCUVZVc1owSkJRV2RDTEVOQlFVTXNTMEZCWXp0SlFVTTNReXhQUVVGUExFTkJRMHdzVDBGQlR5eExRVUZMTEV0QlFVc3NVVUZCVVR0UlFVTjZRanRaUVVORkxGRkJRVkU3V1VGRFVpeFpRVUZaTzFsQlExb3NVMEZCVXp0WlFVTlVMRmRCUVZjN1dVRkRXQ3hSUVVGUk8xbEJRMUlzVjBGQlZ6dFRRVU5hTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVOc1FpeERRVUZETzBGQlEwb3NRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltVjRjRzl5ZENCbGJuVnRJRWR5WVhCb1MyVjVjeUI3WEc0Z0lFZFNRVkJJSUQwZ1hDSm5jbUZ3YUZ3aUxGeHVJQ0JPVDBSRklEMGdZQ1I3UjNKaGNHaExaWGx6TGtkU1FWQklmUzV1YjJSbFlDeGNiaUFnUlVSSFJTQTlJR0FrZTBkeVlYQm9TMlY1Y3k1SFVrRlFTSDB1WldSblpXQXNYRzRnSUZCUFVsUWdQU0JnSkh0SGNtRndhRXRsZVhNdVIxSkJVRWg5TG5CdmNuUmdMRnh1ZlZ4dVhHNWxlSEJ2Y25RZ1pXNTFiU0JRYjNKMFJHbHlaV04wYVc5dUlIdGNiaUFnU1U1UVZWUWdQU0JjSW1sdWNIVjBYQ0lzWEc0Z0lFOVZWRkJWVkNBOUlGd2liM1YwY0hWMFhDSXNYRzRnSUVOUFRrNUZRMVJKVDA0Z1BTQmNJbU52Ym01bFkzUnBiMjVjSWl4Y2JuMWNibHh1Wlhod2IzSjBJSFI1Y0dVZ1IzSmhjR2hPYjJSbFMybHVaQ0E5SUhOMGNtbHVaenRjYmx4dVpYaHdiM0owSUhSNWNHVWdSM0poY0doRGIyNXVaV04wYVc5dVVuVnNaU0E5SUh0Y2JpQWdZV3hzYjNkVFpXeG1Qem9nWW05dmJHVmhianRjYmlBZ1lXeHNiM2ROZFd4MGFYQnNaVDg2SUdKdmIyeGxZVzQ3WEc0Z0lHRnNiRzkzWldSTGFXNWtjejg2SUVkeVlYQm9UbTlrWlV0cGJtUmJYVHRjYmlBZ1lteHZZMnRsWkV0cGJtUnpQem9nUjNKaGNHaE9iMlJsUzJsdVpGdGRPMXh1SUNCbmNtOTFjRDg2SUhOMGNtbHVaenRjYmlBZ2JXRjRRMjl1Ym1WamRHbHZibk0vT2lCdWRXMWlaWEk3WEc0Z0lHMWxkR0ZrWVhSaFB6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z2RXNXJibTkzYmo0N1hHNTlPMXh1WEc1bGVIQnZjblFnZEhsd1pTQkhjbUZ3YUU1dlpHVk5aWFJoWkdGMFlTQTlJSHRjYmlBZ2EybHVaRDg2SUVkeVlYQm9UbTlrWlV0cGJtUTdYRzRnSUdOaGRHVm5iM0o1UHpvZ2MzUnlhVzVuTzF4dUlDQmpiMnh2Y2o4NklITjBjbWx1Wnp0Y2JpQWdaM0p2ZFhBL09pQnpkSEpwYm1jN1hHNGdJR2hsYVdkb2REODZJRzUxYldKbGNqdGNiaUFnYVdOdmJqODZJSE4wY21sdVp6dGNiaUFnYkdGaVpXeHpQem9nYzNSeWFXNW5XMTA3WEc0Z0lHMWhlRU5vYVd4a2NtVnVQem9nYm5WdFltVnlPMXh1SUNCdGFXNVhhV1IwYUQ4NklHNTFiV0psY2p0Y2JpQWdkMmxrZEdnL09pQnVkVzFpWlhJN1hHNGdJR052Ym01bFkzUnBiMjVTZFd4bGN6ODZJRWR5WVhCb1EyOXVibVZqZEdsdmJsSjFiR1U3WEc0Z0lHMWxkR0ZrWVhSaFB6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z2RXNXJibTkzYmo0N1hHNGdJQzhxS2x4dUlDQWdLaUJRWlhJdFozSnZkWEFnY21WdVpHVnlhVzVuSUdOb2IybGpaU0JtYjNJZ1UyTm9aVzFoTFhSNWNHVmtJR0JBYVc1d2RYUmdJQzhnWUVCdmRYUndkWFJnSUhCeWIzQmxjblJwWlhOY2JpQWdJQ29nS0hSb1pTQnZibVV0ZG5NdFlXeHNJSFJ2WjJkc1pTa3VJRk5sWlNCN1FHeHBibXNnUjNKaGNHaFFiM0owUjNKdmRYQk5aWFJoWkdGMFlYMHVYRzRnSUNBcUwxeHVJQ0J3YjNKMFIzSnZkWEJ6UHpvZ1IzSmhjR2hRYjNKMFIzSnZkWEJOWlhSaFpHRjBZVnRkTzF4dUlDQXZLaXBjYmlBZ0lDb2dUbTlrWlNCSkwwOGdhVzV6Y0dWamRHbHZiaUJvYVc1MGN5QW9SRVZEUVVZdE5EZ2d3cWMwTGpZcElPS0FsQ0IyYVdWM1pYSWdiVzlrWlNCaGJtUWdkMmhwWTJnZ2NHOXlkSE5jYmlBZ0lDb2diV0Z3SUhSdklIUm9aU0JwYm5CMWRITXZiM1YwY0hWMGN5QndZVzVsY3k0Z1JuSnZiblJsYm1RdGMyRm1aU0J0WlhSaFpHRjBZU0J2Ym14NUxseHVJQ0FnS2k5Y2JpQWdhVzV6Y0dWamRHbHZiajg2SUVkeVlYQm9UbTlrWlVsdlRXVjBZV1JoZEdFN1hHNTlPMXh1WEc1bGVIQnZjblFnZEhsd1pTQkhjbUZ3YUZkdmNtdG1iRzkzVG05a1pVMWxkR0ZrWVhSaElEMGdlMXh1SUNCcFpEb2djM1J5YVc1bk8xeHVJQ0JyYVc1a1B6b2dSM0poY0doT2IyUmxTMmx1WkR0Y2JpQWdiR0ZpWld3L09pQnpkSEpwYm1jN1hHNGdJR1JsYzJOeWFYQjBhVzl1UHpvZ2MzUnlhVzVuTzF4dUlDQnViMlJsUHpvZ2RXNXJibTkzYmp0Y2JpQWdiV1YwWVdSaGRHRS9PaUJTWldOdmNtUThjM1J5YVc1bkxDQjFibXR1YjNkdVBqdGNiaUFnTHlvcVhHNGdJQ0FxSUU1dlpHVWdTUzlQSUdsdWMzQmxZM1JwYjI0Z2FHbHVkSE1nWm05eUlIUm9hWE1nZDI5eWEyWnNiM2NnYVc1emRHRnVZMlVnS0VSRlEwRkdMVFE0SU1Lbk5DNDJLUzVjYmlBZ0lDb2dSbkp2Ym5SbGJtUXRjMkZtWlNCdFpYUmhaR0YwWVNCdmJteDVMbHh1SUNBZ0tpOWNiaUFnYVc1emNHVmpkR2x2Ymo4NklFZHlZWEJvVG05a1pVbHZUV1YwWVdSaGRHRTdYRzU5TzF4dVhHNHZLaXBjYmlBcUlFRWdkbWxsZHkxdGIyUmxJR05vYjJsalpTQm1iM0lnZEdobElISmxkWE5oWW14bElFa3ZUeUIyYVdWM1pYSWdLRVJGUTBGR0xUUTRJTUtuTkM0MklDOGdVbVZ4TFRrcExseHVJQ29nVDI1bElITm9ZWEpsWkNCamIyMXdiMjVsYm5RZ2NtVnVaR1Z5Y3lCaWIzUm9JSFJvWlNCcGJuQjFkSE1nWVc1a0lHOTFkSEIxZEhNZ2NHRnVaWE11WEc0Z0tpOWNibVY0Y0c5eWRDQjBlWEJsSUVkeVlYQm9UbTlrWlVsdlZtbGxkMDF2WkdVZ1BTQmNJbXB6YjI1Y0lpQjhJRndpZEdGaWJHVmNJaUI4SUZ3aWNtRjNYQ0k3WEc1Y2JpOHFLbHh1SUNvZ1RtOWtaU0JKTDA4Z2FXNXpjR1ZqZEdsdmJpQnRaWFJoWkdGMFlTQW9SRVZEUVVZdE5EZ2d3cWMwTGpZcElPS0FsQ0JvYVc1MGN5QjBhR1VnZDI5eWEyWnNiM2NnWTJGdWRtRnpYRzRnS2lCMWMyVnpJSFJ2SUc5d1pXNGdkR2hsSUdsdWJHbHVaU0J6Y0d4cGRDQjJhV1YzSUdadmNpQmhiaUJoYkhKbFlXUjVMWEpoYmlCdWIyUmxMaUJHY21GdFpYZHZjbXRjYmlBcUlHNWxkWFJ5WVd3c0lHWnliMjUwWlc1a0xYTmhabVVzSUc1dklHVnVaMmx1WlM5eWRXNTBhVzFsSUdSbGNHVnVaR1Z1WTNrZ0tFUkZRMEZHTFRJMElNS25OQ2t1WEc0Z0tpOWNibVY0Y0c5eWRDQjBlWEJsSUVkeVlYQm9UbTlrWlVsdlRXVjBZV1JoZEdFZ1BTQjdYRzRnSUM4cUtpQkVaV1poZFd4MElIWnBaWGNnYlc5a1pTQm1iM0lnZEdobElISmxkWE5oWW14bElIWnBaWGRsY2k0Z1JHVm1ZWFZzZEhNZ2RHOGdYQ0pxYzI5dVhDSXVJQ292WEc0Z0lIWnBaWGMvT2lCSGNtRndhRTV2WkdWSmIxWnBaWGROYjJSbE8xeHVJQ0F2S2lvZ1VHOXlkQ0J3Y205d1pYSjBlU0J1WVcxbGN5QnphRzkzYmlCcGJpQjBhR1VnY21sbmFIUXRjMmxrWlNCcGJuQjFkSE1nY0dGdVpTNGdLaTljYmlBZ2FXNXdkWFJRYjNKMGN6ODZJSE4wY21sdVoxdGRPMXh1SUNBdktpb2dVRzl5ZENCd2NtOXdaWEowZVNCdVlXMWxjeUJ6YUc5M2JpQnBiaUIwYUdVZ2JHVm1kQzF6YVdSbElHOTFkSEIxZEhNZ2NHRnVaUzRnS2k5Y2JpQWdiM1YwY0hWMFVHOXlkSE0vT2lCemRISnBibWRiWFR0Y2JpQWdMeW9xSUZkb1pYUm9aWElnZEdobElHNXZaR1VnWlhod2IzTmxjeUJsWkdsMFlXSnNaU0JqYjI1bWFXY2dLRzl3Wlc1eklIUm9aU0JsWkdsMElHMXZaR0ZzSUdsdWMzUmxZV1FwTGlBcUwxeHVJQ0JsWkdsMFlXSnNaVDg2SUdKdmIyeGxZVzQ3WEc0Z0lDOHFLaUJHY21WbExXWnZjbTBnWlhoMFpXNXphVzl1SUhCdmFXNTBjeTRnS2k5Y2JpQWdiV1YwWVdSaGRHRS9PaUJTWldOdmNtUThjM1J5YVc1bkxDQjFibXR1YjNkdVBqdGNibjA3WEc1Y2JpOHFLbHh1SUNvZ1ZtbHpkV0ZzSUhSeVpXRjBiV1Z1ZENCbWIzSWdZU0J1YjJSbEwyVmtaMlVnWlhobFkzVjBhVzl1SUhOMFlYUmxJQ2hFUlVOQlJpMDBPQ0RDcHpRdU5Da3VJRTFoY0hNZ1lWeHVJQ29nZTBCc2FXNXJJRWR5WVhCb1ZtbHpkV0ZzVTNSaGRHVjlJSFpoYkhWbElIUnZJSFJvWlNCbVlXUmxaQ0JuYkc5M0lDOGdabUZrWlMxaFpuUmxjaTFtWVdsc0lHOTJaWEpzWVhsY2JpQXFJR052Ykc5MWNuTWdkWE5sWkNCaWVTQjBhR1VnWTJGdWRtRnpJSEpsYm1SbGNtVnlMbHh1SUNvdlhHNWxlSEJ2Y25RZ2RIbHdaU0JIY21Gd2FGWnBjM1ZoYkZOMGVXeGxJRDBnZTF4dUlDQXZLaW9nVm1semRXRnNJSE4wWVhSbElITjBjbWx1WnlCaGN5QmtaV1pwYm1Wa0lHSjVJSFJvWlNCemFHRnlaV1FnWUVkeVlYQm9WbWx6ZFdGc1UzUmhkR1ZnSUhaaGJIVmxjeUFvWlM1bkxpQmdYQ0p5ZFc1dWFXNW5YQ0pnTENCZ1hDSmliRzlqYTJWa1hDSmdLUzRnS2k5Y2JpQWdjM1JoZEdVNklITjBjbWx1Wnp0Y2JpQWdMeW9xSUVkc2IzY3ZZbTl5WkdWeUlHTnZiRzkxY2lCbWIzSWdkR2hsSUd4cGRtVWdjblZ1TFdabFpXUmlZV05ySUc5MlpYSnNZWGt1SUNvdlhHNGdJR2RzYjNjL09pQnpkSEpwYm1jN1hHNGdJQzhxS2lCTVpYWmxiQ0J2WmlCbVlXUmxJR1p2Y2lCMWJtVjRaV04xZEdWa0wyUnBjMkZpYkdWa0lISmxibVJsY21sdVp5QW9NQzR1TVNrdUlDb3ZYRzRnSUc5d1lXTnBkSGsvT2lCdWRXMWlaWEk3WEc0Z0lDOHFLaUJQY0hScGIyNWhiQ0JtYVd4c0lHTnZiRzkxY2lCM2FHVnVJSFJvWlNCdWIyUmxJR2x6SUdsdUlIUm9hWE1nYzNSaGRHVXVJQ292WEc0Z0lHTnZiRzl5UHpvZ2MzUnlhVzVuTzF4dWZUdGNibHh1THlvcVhHNGdLaUJVYUdVZ1pHVm1ZWFZzZENCMmFYTjFZV3d0YzNSaGRHVWc0b2FTSUc5MlpYSnNZWGtnYldGd2NHbHVaeUJqYjI1MGNtRmpkQ0FvUkVWRFFVWXRORGdnd3FjMExqUXBPbHh1SUNvZ2NuVnVibWx1WnoxbVlXUmxaQ0JuY21WbGJpd2dZbXh2WTJ0bFpEMTVaV3hzYjNjc0lHVnljbTl5WldROWNtVmtPeUJ6ZFdOalpXVmtaV1FnYTJWbGNITWdkR2hsWEc0Z0tpQnViMlJsSjNNZ2IzZHVJR0ZqWTJWdWREc2dkVzVsZUdWamRYUmxaQzFoWm5SbGNpMW1ZV2xzZFhKbElHWmhaR1Z6TDJScGMyRmliR1ZrTGlCVWFHbHpJR2x6SUhSb1pWeHVJQ29nYzJoaGNtVmtMQ0JtY21GdFpYZHZjbXN0Ym1WMWRISmhiQ0J6YjNWeVkyVWdiMllnZEhKMWRHZ2dkR2hoZENCemRYQmxjbk5sWkdWeklIUm9aU0JFUlVOQlJpMHpNbHh1SUNvZ3dxY3lNUzQ1SUhKMWJtNXBibWNnWTI5c2IzVnlJR1p2Y2lCMGFHVWdiR2wyWlNCeWRXNHRabVZsWkdKaFkyc2diM1psY214aGVTQW93cWMwTGpVcExseHVJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdSMUpCVUVoZlZrbFRWVUZNWDFOVVFWUkZYMU5VV1V4RlV6b2dlMXh1SUNCYmMzUmhkR1U2SUhOMGNtbHVaMTA2SUU5dGFYUThSM0poY0doV2FYTjFZV3hUZEhsc1pTd2dYQ0p6ZEdGMFpWd2lQanRjYm4wZ1BTQjdYRzRnSUdsa2JHVTZJSHNnYjNCaFkybDBlVG9nTVNCOUxGeHVJQ0J5ZFc1dWFXNW5PaUI3SUdkc2IzYzZJRndpSXpJeVl6VTFaVndpTENCdmNHRmphWFI1T2lBd0xqZzFJSDBzWEc0Z0lHSnNiMk5yWldRNklIc2daMnh2ZHpvZ1hDSWpaV0ZpTXpBNFhDSXNJRzl3WVdOcGRIazZJREF1T0RVZ2ZTeGNiaUFnYzNWalkyVmxaR1ZrT2lCN0lHOXdZV05wZEhrNklERWdmU3hjYmlBZ1ptRnBiR1ZrT2lCN0lHZHNiM2M2SUZ3aUkyVm1ORFEwTkZ3aUxDQnZjR0ZqYVhSNU9pQXhJSDBzWEc0Z0lITnJhWEJ3WldRNklIc2diM0JoWTJsMGVUb2dNQzR6TlNCOUxGeHVmVHRjYmx4dUx5b3FYRzRnS2lCU1pYTnZiSFpsY3lCMGFHVWdkbWx6ZFdGc0lITjBlV3hsSUc5MlpYSnNZWGtnWm05eUlHRWdibTlrWlM5bFpHZGxJR1Y0WldOMWRHbHZiaUJ6ZEdGMFpTd2dabUZzYkdsdVoxeHVJQ29nWW1GamF5QjBieUJoSUc1bGRYUnlZV3dnWkdWbVlYVnNkQ0IzYUdWdUlIUm9aU0J6ZEdGMFpTQnBjeUIxYm10dWIzZHVJRzl5SUhWdWNtVm5hWE4wWlhKbFpDNWNiaUFxWEc0Z0tpQkFjR0Z5WVcwZ2MzUmhkR1VnTFNCVWFHVWdkbWx6ZFdGc0lITjBZWFJsSUhOMGNtbHVaeUFvWVhNZ1pHVm1hVzVsWkNCaWVTQjBhR1VnYzJoaGNtVmtYRzRnS2lCZ1IzSmhjR2hXYVhOMVlXeFRkR0YwWldBZ2RtRnNkV1Z6TENCbExtY3VJR0JjSW5KMWJtNXBibWRjSW1Bc0lHQmNJbUpzYjJOclpXUmNJbUFwTGx4dUlDb2dRSEpsZEhWeWJuTWdWR2hsSUhOMGVXeGxJRzkyWlhKc1lYa2dabTl5SUhSb1pTQm5hWFpsYmlCemRHRjBaUzVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZHlZWEJvVm1semRXRnNVM1I1YkdWUFppaGNiaUFnYzNSaGRHVTZJSE4wY21sdVoxeHVLVG9nVDIxcGREeEhjbUZ3YUZacGMzVmhiRk4wZVd4bExDQmNJbk4wWVhSbFhDSStJSHRjYmlBZ2NtVjBkWEp1SUVkU1FWQklYMVpKVTFWQlRGOVRWRUZVUlY5VFZGbE1SVk5iYzNSaGRHVmRJRDgvSUVkU1FWQklYMVpKVTFWQlRGOVRWRUZVUlY5VFZGbE1SVk11YVdSc1pUdGNibjFjYmx4dVpYaHdiM0owSUhSNWNHVWdSM0poY0doWGIzSnJabXh2ZDFKbGJHRjBhVzl1VFdWMFlXUmhkR0VnUFNCN1hHNGdJSE52ZFhKalpUb2djM1J5YVc1bklId2dkVzVyYm05M2JqdGNiaUFnYzI5MWNtTmxVRzl5ZEQ4NklITjBjbWx1Wnp0Y2JpQWdkR0Z5WjJWME9pQnpkSEpwYm1jZ2ZDQjFibXR1YjNkdU8xeHVJQ0IwWVhKblpYUlFiM0owUHpvZ2MzUnlhVzVuTzF4dUlDQnNZV0psYkQ4NklITjBjbWx1Wnp0Y2JpQWdiV1YwWVdSaGRHRS9PaUJTWldOdmNtUThjM1J5YVc1bkxDQjFibXR1YjNkdVBqdGNibjA3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRWR5WVhCb1YyOXlhMlpzYjNkTlpYUmhaR0YwWVNBOUlFZHlZWEJvVG05a1pVMWxkR0ZrWVhSaElDWWdlMXh1SUNCcGJuQjFkSE0vT2lCSGNtRndhRkJ2Y25SRVpXWnBibWwwYVc5dVcxMDdYRzRnSUc5MWRIQjFkSE0vT2lCSGNtRndhRkJ2Y25SRVpXWnBibWwwYVc5dVcxMDdYRzRnSUdOdmJtNWxZM1JwYjI1elB6b2dSM0poY0doUWIzSjBSR1ZtYVc1cGRHbHZibHRkTzF4dUlDQnViMlJsY3o4NklFZHlZWEJvVjI5eWEyWnNiM2RPYjJSbFRXVjBZV1JoZEdGYlhUdGNiaUFnY21Wc1lYUnBiMjV6UHpvZ1IzSmhjR2hYYjNKclpteHZkMUpsYkdGMGFXOXVUV1YwWVdSaGRHRmJYVHRjYm4wN1hHNWNibVY0Y0c5eWRDQjBlWEJsSUVkeVlYQm9VRzl5ZEUxbGRHRmtZWFJoSUQwZ2UxeHVJQ0JrYVhKbFkzUnBiMjQ2SUZCdmNuUkVhWEpsWTNScGIyNDdYRzRnSUdOdmJtNWxZM1JwYjI1U2RXeGxjejg2SUVkeVlYQm9RMjl1Ym1WamRHbHZibEoxYkdVN1hHNGdJSFpwYzJsaWJHVS9PaUJpYjI5c1pXRnVPMXh1SUNCb1lXNWtiR1UvT2lCemRISnBibWM3WEc0Z0lHVjRjR0Z1WkQ4NklHSnZiMnhsWVc0N1hHNGdJRzFsZEdGa1lYUmhQem9nVW1WamIzSmtQSE4wY21sdVp5d2dkVzVyYm05M2JqNDdYRzRnSUM4cUtseHVJQ0FnS2lCUGNIUnBiMjVoYkNCallYUmxaMjl5ZVNCbWIzSWdZRUJqYjI1dVpXTjBhVzl1S0NsZ0lIQnZjblJ6SUNobExtY3VJR0JjSW0xdlpHVnNYQ0pnTENCZ1hDSnRaVzF2Y25sY0ltQXNYRzRnSUNBcUlHQmNJbmR2Y210emNHRmpaVndpWUNrdUlFTnZibTVsWTNScGIyNXpJRzltSUhSb1pTQnpZVzFsSUdOaGRHVm5iM0o1SUhOb1lYSmxJR0VnWTI5c2IzSWdZVzVrSUdsamIyNWNiaUFnSUNvZ1pHVm1hVzVsWkNCaWVTQjBhR1VnZTBCc2FXNXJJRWRTUVZCSVgwTkJWRVZIVDFKWlgxTlVXVXhGWDFKRlIwbFRWRkpaZlM0Z1YyaGxiaUJ2YldsMGRHVmtMQ0IwYUdWY2JpQWdJQ29nY0c5eWRDQnBibWhsY21sMGN5QjBhR1VnYm05a1pTZHpJR052Ykc5eUxseHVJQ0FnS2k5Y2JpQWdZMkYwWldkdmNuay9PaUJ6ZEhKcGJtYzdYRzRnSUM4cUtseHVJQ0FnS2lCTllYSnJjeUIwYUdseklIQnZjblFnWVhNZ1lTQmNJbE5qYUdWdFlTQndiM0owWENJZ1pHVmpiR0Z5WldRZ2RtbGhJR0JBYVc1d2RYUmdJQzhnWUVCdmRYUndkWFJnTGx4dUlDQWdLbHh1SUNBZ0tpQlhhR1Z1SUdCMGNuVmxZQ0JCVGtRZ2RHaGxJSEJ5YjNCbGNuUjVJSFI1Y0dVZ2FYTWdZU0JFWldOaFppQmdUVzlrWld4Z0lDaGhJRndpVTJOb1pXMWhYQ0lwTENCMGFHVmNiaUFnSUNvZ2NtVmhaR1Z5SUdac1lYUjBaVzV6SUhSb1pTQlRZMmhsYldFbmN5QnZkMjRnWUVCcGJuQjFkR0FnTHlCZ1FHOTFkSEIxZEdBZ2NISnZjR1Z5ZEdsbGN5QnBiblJ2SUhSb1pWeHVJQ0FnS2lCd1lYSmxiblFnYm05a1pTZHpJSEJ2Y25RZ2JHbHpkQ0FvZFc1d2NtVm1hWGhsWkNEaWdKUWdibThnWUR4elkyaGxiV0ZRY205d1BpNWdJSEJ5WldacGVDa3NJR2x1YzNSbFlXUmNiaUFnSUNvZ2IyWWdjSEp2WkhWamFXNW5JR0VnWTI5dGNHOXphWFJsSUhCdmNuUWdkMmwwYUNCd2NtVm1hWGhsWkNCamFHbHNaSEpsYmk0Z1FTQmdRR2x1Y0hWMFlDQlRZMmhsYldGY2JpQWdJQ29nWTI5dWRISnBZblYwWlhNZ2IyNXNlU0IwYUdVZ1UyTm9aVzFoSjNNZ1lFQnBibkIxZEdBZ2NISnZjR1Z5ZEdsbGN6c2dZU0JnUUc5MWRIQjFkR0FnVTJOb1pXMWhYRzRnSUNBcUlHTnZiblJ5YVdKMWRHVnpJRzl1YkhrZ2RHaGxJRk5qYUdWdFlTZHpJR0JBYjNWMGNIVjBZQ0J3Y205d1pYSjBhV1Z6TGlCVWFHVWdZMkZ5Y21sbGNpQndjbTl3WlhKMGVWeHVJQ0FnS2lCcGRITmxiR1lnS0dVdVp5NGdZR2x1Y0hWMFUyTm9aVzFoWUNrZ2FYTWdibTkwSUdWdGFYUjBaV1FnWVhNZ1lTQndiM0owSU9LQWxDQnBkQ0JwY3lCMGFHVWdaM0p2ZFhCY2JpQWdJQ29nWTJGeWNtbGxjaTVjYmlBZ0lDcGNiaUFnSUNvZ1UyVjBJR0YxZEc5dFlYUnBZMkZzYkhrZ1lua2dZRUJwYm5CMWRHQWdMeUJnUUc5MWRIQjFkR0E3SUU1UFZDQnpaWFFnWW5rZ1lFQndiM0owWUN3Z2MyOWNiaUFnSUNvZ1lFQndiM0owWUMxa1pXTnZjbUYwWldRZ1UyTm9aVzFoTFhSNWNHVmtJSEJ5YjNCbGNuUnBaWE1nYTJWbGNDQjBhR1VnYkdWbllXTjVJR052YlhCdmMybDBaVnh1SUNBZ0tpQmxlSEJoYm5OcGIyNGdLSEJ5WldacGVHVmtJR05vYVd4a2NtVnVLUzVjYmlBZ0lDb3ZYRzRnSUhOamFHVnRZVDg2SUdKdmIyeGxZVzQ3WEc0Z0lDOHFLbHh1SUNBZ0tpQkZlSEJzYVdOcGRDQnlaV1psY21WdVkyVWdkRzhnZEdobElHNWxjM1JsWkNCZ1RXOWtaV3hnSUdOdmJuTjBjblZqZEc5eUlHWnZjaUJUWTJobGJXRWdjRzl5ZEZ4dUlDQWdLaUJuY205MWNITXVJRmRvWlc0Z2NISnZkbWxrWldRc0lIUm9aU0J5WldGa1pYSWdkWE5sY3lCMGFHbHpJR1JwY21WamRHeDVJR2x1YzNSbFlXUWdiMllnY21Wc2VXbHVaMXh1SUNBZ0tpQnZiaUJVZVhCbFUyTnlhWEIwSjNNZ1lHUmxjMmxuYmpwMGVYQmxZQ0J0WlhSaFpHRjBZU0FvZDJocFkyZ2dZblZ1Wkd4bGNuTWdiR2xyWlNCbGMySjFhV3hrSUcxaGVWeHVJQ0FnS2lCMGNtVmxMWE5vWVd0bExDQnlaWEJzWVdOcGJtY2dkR2hsSUdOc1lYTnpJSEpsWm1WeVpXNWpaU0IzYVhSb0lHQlBZbXBsWTNSZ0tTNWNiaUFnSUNwY2JpQWdJQ29nVTJWMElIWnBZU0JnUUdsdWNIVjBLSHNnYlc5a1pXdzZJRk52YldWVFkyaGxiV0VnZlNsZ0lDOGdZRUJ2ZFhSd2RYUW9leUJ0YjJSbGJEb2dVMjl0WlZOamFHVnRZU0I5S1dBdVhHNGdJQ0FxTDF4dUlDQnRiMlJsYkQ4NklIVnVhMjV2ZDI0N1hHNTlPMXh1WEc0dktpcGNiaUFxSUUxbGRHRmtZWFJoSUdadmNpQmhJRk5qYUdWdFlTQndiM0owSUdkeWIzVndJT0tBbENCMGFHVWdiMjVsTFhaekxXRnNiQ0J5Wlc1a1pYSnBibWNnWTJodmFXTmxJR1p2Y2lCaFhHNGdLaUJnUUdsdWNIVjBZQ0F2SUdCQWIzVjBjSFYwWUNCVFkyaGxiV0V0ZEhsd1pXUWdjSEp2Y0dWeWRIa3VYRzRnS2x4dUlDb2dZSFJ2WjJkc1pUb2dYQ0poYkd4Y0ltQWdLR1JsWm1GMWJIUXBJSEpsYm1SbGNuTWdaV0ZqYUNCVFkyaGxiV0VnY0hKdmNHVnlkSGtnWVhNZ2FYUnpJRzkzYmlCamIyNXVaV04wWVdKc1pWeHVJQ29nY0c5eWRDQnZiaUIwYUdVZ1kyRnVkbUZ6TGlCZ2RHOW5aMnhsT2lCY0luTnBibWRzWlZ3aVlDQnlaVzVrWlhKeklHOXVaU0JuY205MWNHVmtJSEJ2Y25RZ2RHaGhkQ0J5WldObGFYWmxjMXh1SUNvZ2RHaGxJSGRvYjJ4bElHOWlhbVZqZENCaGJtUWdiV0Z3Y3lCcGRDQjBieUIwYUdVZ2NtbG5hSFFnY0d4aFkyVXVJRlJvWlNCd1pYSXRhVzV6ZEdGdVkyVmNiaUFxSUcxaGJuVmhiQzFtYVd4c0lDaG9hV1JsSUdFZ2NHOXlkQ0JpWldOaGRYTmxJR2wwY3lCMllXeDFaU0JwY3lCemRYQndiR2xsWkNCMmFXRWdkR2hsSUVOU1ZVUWdabWxsYkdRcFhHNGdLaUJwY3lCT1QxUWdZMkZ5Y21sbFpDQm9aWEpsSU9LQWxDQjBhR0YwSUdseklIUm9aU0JsWkdsMGIzSW5jeUJ3YjNKMExYUnZaMmRzWlNCemRHRjBaU0JwYmlCZ2JtOWtaUzVrWVhSaFlDNWNiaUFxTDF4dVpYaHdiM0owSUhSNWNHVWdSM0poY0doUWIzSjBSM0p2ZFhCTlpYUmhaR0YwWVNBOUlIdGNiaUFnTHlvcUlGUm9aU0JUWTJobGJXRXRkSGx3WldRZ1lFQnBibkIxZEdBZ0x5QmdRRzkxZEhCMWRHQWdjSEp2Y0dWeWRIa2dibUZ0WlNCMGFHRjBJRzkzYm5NZ2RHaHBjeUJuY205MWNDNGdLaTljYmlBZ2NISnZjR1Z5ZEhrNklITjBjbWx1Wnp0Y2JpQWdMeW9xSUZKbGJtUmxjaUJqYUc5cFkyVWdabTl5SUhSb2FYTWdaM0p2ZFhBdUlFUmxabUYxYkhSeklIUnZJR0JjSW1Gc2JGd2lZQzRnS2k5Y2JpQWdkRzluWjJ4bFB6b2dYQ0p6YVc1bmJHVmNJaUI4SUZ3aVlXeHNYQ0k3WEc0Z0lDOHFLaUJQY0hScGIyNWhiQ0JzWVdKbGJDQm1iM0lnZEdobElHZHliM1Z3WldRZ2NHOXlkQ0IzYUdWdUlHQjBiMmRuYkdVZ1BUMDlJRndpYzJsdVoyeGxYQ0pnTGlBcUwxeHVJQ0JzWVdKbGJEODZJSE4wY21sdVp6dGNibjA3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRWR5WVhCb1VHOXlkRVJsWm1sdWFYUnBiMjRnUFNCN1hHNGdJSEJ5YjNCbGNuUjVPaUJ6ZEhKcGJtYzdYRzRnSUhCaGRHZy9PaUJ6ZEhKcGJtYzdYRzRnSUdScGNtVmpkR2x2YmpvZ1VHOXlkRVJwY21WamRHbHZianRjYmlBZ2JtRnRaVG9nYzNSeWFXNW5PMXh1SUNCc1lXSmxiRG9nYzNSeWFXNW5PMXh1SUNCMGVYQmxQem9nYzNSeWFXNW5PMXh1SUNCeVpYRjFhWEpsWkRvZ1ltOXZiR1ZoYmp0Y2JpQWdhR2xrWkdWdU9pQmliMjlzWldGdU8xeHVJQ0JrWlhOcFoyNVVlWEJsUHpvZ2MzUnlhVzVuTzF4dUlDQmxiR1Z0Wlc1MFB6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQanRjYmlBZ2NISnZjRDg2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0N1hHNGdJSFpoYkdsa1lYUnBiMjQvT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK08xeHVJQ0JuY21Gd2FEODZJRWR5WVhCb1VHOXlkRTFsZEdGa1lYUmhPMXh1SUNCamIyNXVaV04wYVc5dVVuVnNaWE0vT2lCSGNtRndhRU52Ym01bFkzUnBiMjVTZFd4bE8xeHVJQ0JqYjIxd2IzTnBkR1UvT2lCaWIyOXNaV0Z1TzF4dUlDQmphR2xzWkhKbGJqODZJRWR5WVhCb1VHOXlkRVJsWm1sdWFYUnBiMjViWFR0Y2JpQWdiVzlrWld3L09pQnpkSEpwYm1jN1hHNTlPMXh1WEc1bGVIQnZjblFnZEhsd1pTQkhjbUZ3YUU1dlpHVkVaV1pwYm1sMGFXOXVJRDBnZTF4dUlDQnVZVzFsT2lCemRISnBibWM3WEc0Z0lIUmhaem9nYzNSeWFXNW5PMXh1SUNCcmFXNWtPaUJIY21Gd2FFNXZaR1ZMYVc1a08xeHVJQ0JqWVhSbFoyOXllVDg2SUhOMGNtbHVaenRjYmlBZ1kyOXNiM0kvT2lCemRISnBibWM3WEc0Z0lHZHliM1Z3UHpvZ2MzUnlhVzVuTzF4dUlDQm9aV2xuYUhRL09pQnVkVzFpWlhJN1hHNGdJR2xqYjI0L09pQnpkSEpwYm1jN1hHNGdJR3hoWW1Wc2N6b2djM1J5YVc1blcxMDdYRzRnSUcxaGVFTm9hV3hrY21WdVB6b2diblZ0WW1WeU8xeHVJQ0J0YVc1WGFXUjBhRDg2SUc1MWJXSmxjanRjYmlBZ2QybGtkR2cvT2lCdWRXMWlaWEk3WEc0Z0lIQnliM0J6UHpvZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBqdGNiaUFnZFdrL09pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytPMXh1SUNCbmNtRndhRDg2SUVkeVlYQm9UbTlrWlUxbGRHRmtZWFJoTzF4dUlDQndiM0owY3pvZ1IzSmhjR2hRYjNKMFJHVm1hVzVwZEdsdmJsdGRPMXh1SUNBdktpcGNiaUFnSUNvZ1JXWm1aV04wYVhabElHTnZiRzl5SUhKbGMyOXNkbVZrSUdaeWIyMGdkR2hsSUdOaGRHVm5iM0o1SUhKbFoybHpkSEo1SUNodmNpQjBhR1VnYm05a1pTZHpYRzRnSUNBcUlHVjRjR3hwWTJsMElHQmpiMnh2Y21BZ2IzWmxjbkpwWkdVcExpQkRiMjF3ZFhSbFpDQmllU0JnWjNKaGNHaEVaV1pwYm1sMGFXOXVUMlpnTGx4dUlDQWdLaTljYmlBZ1pXWm1aV04wYVhabFEyOXNiM0kvT2lCemRISnBibWM3WEc0Z0lDOHFLbHh1SUNBZ0tpQkZabVpsWTNScGRtVWdhV052YmlCeVpYTnZiSFpsWkNCbWNtOXRJSFJvWlNCallYUmxaMjl5ZVNCeVpXZHBjM1J5ZVNBb2IzSWdkR2hsSUc1dlpHVW5jMXh1SUNBZ0tpQmxlSEJzYVdOcGRDQmdhV052Ym1BZ2IzWmxjbkpwWkdVcExpQkRiMjF3ZFhSbFpDQmllU0JnWjNKaGNHaEVaV1pwYm1sMGFXOXVUMlpnTGx4dUlDQWdLaTljYmlBZ1pXWm1aV04wYVhabFNXTnZiajg2SUhOMGNtbHVaenRjYmlBZ0x5b3FYRzRnSUNBcUlGQmxjaTFuY205MWNDQnlaVzVrWlhKcGJtY2dZMmh2YVdObElHWnZjaUJUWTJobGJXRXRkSGx3WldRZ1lFQnBibkIxZEdBZ0x5QmdRRzkxZEhCMWRHQWdjSEp2Y0dWeWRHbGxjMXh1SUNBZ0tpQW9kR2hsSUc5dVpTMTJjeTFoYkd3Z2RHOW5aMnhsS1M0Z1JHVnlhWFpsWkNCbWNtOXRJSHRBYkdsdWF5QkhjbUZ3YUU1dlpHVk5aWFJoWkdGMFlTNXdiM0owUjNKdmRYQnpmVHRjYmlBZ0lDb2daWFpsY25rZ1UyTm9aVzFoTFhSNWNHVmtJR0JBYVc1d2RYUmdJQzhnWUVCdmRYUndkWFJnSUhCeWIzQmxjblI1SUc1dmRDQnNhWE4wWldRZ1pHVm1ZWFZzZEhNZ2RHOWNiaUFnSUNvZ1lIUnZaMmRzWlRvZ1hDSmhiR3hjSW1BdVhHNGdJQ0FxTDF4dUlDQndiM0owUjNKdmRYQnpQem9nUjNKaGNHaFFiM0owUjNKdmRYQk5aWFJoWkdGMFlWdGRPMXh1ZlR0Y2JseHVaWGh3YjNKMElIUjVjR1VnUjNKaGNHaFhiM0pyWm14dmQwUmxabWx1YVhScGIyNGdQU0JIY21Gd2FFNXZaR1ZFWldacGJtbDBhVzl1SUNZZ2UxeHVJQ0JwYm5CMWRITTZJRWR5WVhCb1VHOXlkRVJsWm1sdWFYUnBiMjViWFR0Y2JpQWdiM1YwY0hWMGN6b2dSM0poY0doUWIzSjBSR1ZtYVc1cGRHbHZibHRkTzF4dUlDQmpiMjV1WldOMGFXOXVjem9nUjNKaGNHaFFiM0owUkdWbWFXNXBkR2x2Ymx0ZE8xeHVJQ0J1YjJSbGN6b2dSM0poY0doWGIzSnJabXh2ZDA1dlpHVk5aWFJoWkdGMFlWdGRPMXh1SUNCeVpXeGhkR2x2Ym5NNklFZHlZWEJvVjI5eWEyWnNiM2RTWld4aGRHbHZiazFsZEdGa1lYUmhXMTA3WEc0Z0lIZHZjbXRtYkc5M09pQkhjbUZ3YUZkdmNtdG1iRzkzVFdWMFlXUmhkR0U3WEc1OU8xeHVYRzR2S2lwY2JpQXFJRk4wZVd4bElDaGpiMnh2Y2lBcklHbGpiMjRwSUdGemMybG5ibVZrSUhSdklHRWdibTlrWlNCdmNpQmpiMjV1WldOMGFXOXVJR05oZEdWbmIzSjVMaUJPYjJSbGN5QmhibVJjYmlBcUlHTnZibTVsWTNScGIyNXpJSGRwZEdodmRYUWdZVzRnWlhod2JHbGphWFFnWUdOdmJHOXlZQ0F2SUdCcFkyOXVZQ0JwYm1obGNtbDBJR1p5YjIwZ2RHaGxhWEpjYmlBcUlHTmhkR1ZuYjNKNUozTWdjM1I1YkdVdVhHNGdLaTljYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnUjNKaGNHaERZWFJsWjI5eWVWTjBlV3hsSUh0Y2JpQWdZMjlzYjNJNklITjBjbWx1Wnp0Y2JpQWdhV052Ymo4NklITjBjbWx1Wnp0Y2JuMWNibHh1THlvcVhHNGdLaUJTWldkcGMzUnllU0J0WVhCd2FXNW5JR05oZEdWbmIzSjVJRzVoYldWeklIUnZJSFJvWldseUlHUmxabUYxYkhRZ2MzUjViR1VnS0dOdmJHOXlJQ3NnYVdOdmJpa3VYRzRnS2lCRGIyNXpkVzFsY25NZ2NtVm5hWE4wWlhJZ1kyRjBaV2R2Y21sbGN5QjJhV0VnZTBCc2FXNXJJSEpsWjJsemRHVnlSM0poY0doRFlYUmxaMjl5ZVZOMGVXeGxmUzVjYmlBcVhHNGdLaUJVYUdVZ1pXNW5hVzVsSUdGdVpDQnlaVzVrWlhKbGNpQnlaWE52YkhabElIUm9aU0JjSW1WbVptVmpkR2wyWlZ3aUlHTnZiRzl5TDJsamIyNGdabTl5SUdFZ2JtOWtaU0JpZVZ4dUlDb2dZMmhsWTJ0cGJtY2dkR2hsSUc1dlpHVW5jeUJsZUhCc2FXTnBkQ0JnWTI5c2IzSmdJQzhnWUdsamIyNWdJR1pwY25OMExDQjBhR1Z1SUdaaGJHeHBibWNnWW1GamF5QjBiMXh1SUNvZ2RHaGxJR05oZEdWbmIzSjVKM01nYzNSNWJHVXNJSFJvWlc0Z1lTQmtaV1poZFd4MExseHVJQ292WEc1amIyNXpkQ0JIVWtGUVNGOURRVlJGUjA5U1dWOVRWRmxNUlY5U1JVZEpVMVJTV1RvZ1VtVmpiM0prUEhOMGNtbHVaeXdnUjNKaGNHaERZWFJsWjI5eWVWTjBlV3hsUGlBOUlIdDlPMXh1WEc0dktpcGNiaUFxSUVSbFptRjFiSFFnWm1Gc2JHSmhZMnNnYzNSNWJHVWdkMmhsYmlCdWJ5QmpZWFJsWjI5eWVTQnBjeUJ5WldkcGMzUmxjbVZrSUdGdVpDQnVieUJsZUhCc2FXTnBkRnh1SUNvZ1kyOXNiM0l2YVdOdmJpQnBjeUJ6WlhRZ2IyNGdkR2hsSUc1dlpHVXVYRzRnS2k5Y2JtVjRjRzl5ZENCamIyNXpkQ0JIVWtGUVNGOUVSVVpCVlV4VVgwTkJWRVZIVDFKWlgxTlVXVXhGT2lCSGNtRndhRU5oZEdWbmIzSjVVM1I1YkdVZ1BTQjdYRzRnSUdOdmJHOXlPaUJjSWlNMk5EYzBPR0pjSWl4Y2JpQWdhV052YmpvZ1hDSjBhUzF3YjJsdWRHVnlYQ0lzWEc1OU8xeHVYRzR2S2lwY2JpQXFJRkpsWjJsemRHVnljeUJoSUdOaGRHVm5iM0o1SUhOMGVXeGxJQ2hqYjJ4dmNpQXJJRzl3ZEdsdmJtRnNJR2xqYjI0cElHbHVJSFJvWlNCbmJHOWlZV3dnY21WbmFYTjBjbmt1WEc0Z0tpQkRZV3hzSUhSb2FYTWdZWFFnYlc5a2RXeGxJR2x1YVhRZ2RHbHRaU0FvWlM1bkxpQnBiaUIwYUdVZ1pXNW5hVzVsSjNNZ2JtOWtaU0JrWldOc1lYSmhkR2x2Ym5NcElIUnZYRzRnS2lCa1pXWnBibVVnZEdobElIWnBjM1ZoYkNCemRIbHNaU0JtYjNJZ1lTQmpZWFJsWjI5eWVTQnZaaUJ1YjJSbGN5QnZjaUJqYjI1dVpXTjBhVzl1Y3k1Y2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEpsWjJsemRHVnlSM0poY0doRFlYUmxaMjl5ZVZOMGVXeGxLRnh1SUNCallYUmxaMjl5ZVRvZ2MzUnlhVzVuTEZ4dUlDQnpkSGxzWlRvZ1IzSmhjR2hEWVhSbFoyOXllVk4wZVd4bFhHNHBPaUIyYjJsa0lIdGNiaUFnUjFKQlVFaGZRMEZVUlVkUFVsbGZVMVJaVEVWZlVrVkhTVk5VVWxsYlkyRjBaV2R2Y25sZElEMGdjM1I1YkdVN1hHNTlYRzVjYmk4cUtseHVJQ29nVW1WMGRYSnVjeUIwYUdVZ2MzUjViR1VnY21WbmFYTjBaWEpsWkNCbWIzSWdZR05oZEdWbmIzSjVZQ3dnYjNJZ2RHaGxJR1JsWm1GMWJIUWdabUZzYkdKaFkyc2djM1I1YkdVdVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJuY21Gd2FFTmhkR1ZuYjNKNVUzUjViR1ZQWmloallYUmxaMjl5ZVQ4NklITjBjbWx1WnlrNklFZHlZWEJvUTJGMFpXZHZjbmxUZEhsc1pTQjdYRzRnSUdsbUlDaGpZWFJsWjI5eWVTQW1KaUJIVWtGUVNGOURRVlJGUjA5U1dWOVRWRmxNUlY5U1JVZEpVMVJTV1Z0allYUmxaMjl5ZVYwcElIdGNiaUFnSUNCeVpYUjFjbTRnUjFKQlVFaGZRMEZVUlVkUFVsbGZVMVJaVEVWZlVrVkhTVk5VVWxsYlkyRjBaV2R2Y25sZE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCSFVrRlFTRjlFUlVaQlZVeFVYME5CVkVWSFQxSlpYMU5VV1V4Rk8xeHVmVnh1WEc0dktpcGNiaUFxSUZKbGMyOXNkbVZ6SUhSb1pTQmxabVpsWTNScGRtVWdZMjlzYjNJZ1ptOXlJR0VnYm05a1pUb2daWGh3YkdsamFYUWdZR052Ykc5eVlDQnZkbVZ5Y21sa1pYTWdkR2hsWEc0Z0tpQmpZWFJsWjI5eWVTQmpiMnh2Y2l3Z2QyaHBZMmdnYjNabGNuSnBaR1Z6SUhSb1pTQmtaV1poZFd4MExseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY21WemIyeDJaVVZtWm1WamRHbDJaVU52Ykc5eUtGeHVJQ0JsZUhCc2FXTnBkRU52Ykc5eVB6b2djM1J5YVc1bkxGeHVJQ0JqWVhSbFoyOXllVDg2SUhOMGNtbHVaMXh1S1RvZ2MzUnlhVzVuSUh0Y2JpQWdhV1lnS0dWNGNHeHBZMmwwUTI5c2IzSXBJSEpsZEhWeWJpQmxlSEJzYVdOcGRFTnZiRzl5TzF4dUlDQnlaWFIxY200Z1ozSmhjR2hEWVhSbFoyOXllVk4wZVd4bFQyWW9ZMkYwWldkdmNua3BMbU52Ykc5eU8xeHVmVnh1WEc0dktpcGNiaUFxSUZKbGMyOXNkbVZ6SUhSb1pTQmxabVpsWTNScGRtVWdhV052YmlCbWIzSWdZU0J1YjJSbE9pQmxlSEJzYVdOcGRDQmdhV052Ym1BZ2IzWmxjbkpwWkdWeklIUm9aVnh1SUNvZ1kyRjBaV2R2Y25rZ2FXTnZiaXdnZDJocFkyZ2diM1psY25KcFpHVnpJSFJvWlNCa1pXWmhkV3gwTGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjbVZ6YjJ4MlpVVm1abVZqZEdsMlpVbGpiMjRvWEc0Z0lHVjRjR3hwWTJsMFNXTnZiajg2SUhOMGNtbHVaeXhjYmlBZ1kyRjBaV2R2Y25rL09pQnpkSEpwYm1kY2JpazZJSE4wY21sdVp5QjdYRzRnSUdsbUlDaGxlSEJzYVdOcGRFbGpiMjRwSUhKbGRIVnliaUJsZUhCc2FXTnBkRWxqYjI0N1hHNGdJSEpsZEhWeWJpQm5jbUZ3YUVOaGRHVm5iM0o1VTNSNWJHVlBaaWhqWVhSbFoyOXllU2t1YVdOdmJpQS9QeUJIVWtGUVNGOUVSVVpCVlV4VVgwTkJWRVZIVDFKWlgxTlVXVXhGTG1samIyNGhPMXh1ZlZ4dVhHNHZMeUF0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMxY2JpOHZJRk5vWVhKbFpDQm5jbUZ3YUNCbGVHVmpkWFJwYjI0Z1kyOXVkSEpoWTNRZ0tFUkZRMEZHTFRVd0lGQm9ZWE5sSUVFc0lHMXZkbVZrSUdaeWIyMWNiaTh2SUdsdWRHVm5jbUYwYVc5dWN5OW5jbUZ3YUM5emFHRnlaV1FwT2lCbWNtOXVkR1Z1WkMxellXWmxJR052Ym5OMFlXNTBjeUJoYm1RZ1pXNTFiWE1nWTI5dWMzVnRaV1FnWW5sY2JpOHZJR0p2ZEdnZ2RHaGxJR0poWTJ0bGJtUWdaVzVuYVc1bElHRnVaQ0JtY205dWRHVnVaQ0JpZFc1a2JHVnpJRzkyWlhJZ1UxTkZMbHh1THk4Z0xTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRYRzVjYm1sdGNHOXlkQ0IwZVhCbElIc2dSM0poY0doU2RXNVRkR0YwZFhNZ2ZTQm1jbTl0SUZ3aUxpOTBlWEJsYzF3aU8xeHVYRzR2S2lwY2JpQXFJRVJwYzJGaWJHVmtMVzV2WkdVZ1pYaGxZM1YwYVc5dUlITmxiV0Z1ZEdsamN5QW9SRVZEUVVZdE5UQWd3cWMwTGprcExseHVJQ3BjYmlBcUlDMGdZSE5yYVhCZ0lPS0FsQ0IwYUdVZ2JtOWtaU0JrYjJWeklHNXZkQ0JsZUdWamRYUmxJR0Z1WkNCd2NtOWtkV05sY3lCdWJ5QnZkWFJ3ZFhSekxseHVJQ29nTFNCZ2NHRnpjMVJvY205MVoyaEdhWEp6ZEVsdWNIVjBZQ0RpZ0pRZ2RHaGxJR1pwY25OMElHbHVZMjl0YVc1bklHVmtaMlVnZG1Gc2RXVWdhWE1nWm05eWQyRnlaR1ZrSUc5dVhHNGdLaUFnSUhSb1pTQnViMlJsSjNNZ1ptbHljM1FnWkdWamJHRnlaV1FnYjNWMGNIVjBJSEJ2Y25RdVhHNGdLaUF0SUdCbGJXbDBSR1ZtWVhWc2RITmdJT0tBbENCbGRtVnllU0JrWldOc1lYSmxaQ0J2ZFhSd2RYUWdjRzl5ZENCcGN5QmxiV2wwZEdWa0lIZHBkR2dnYVhSeklHUmxabUYxYkhSY2JpQXFJQ0FnS0dGaWMyVnVkQ0JoSUdSbFkyeGhjbVZrSUdSbFptRjFiSFFzSUdCMWJtUmxabWx1WldSZ0tTNWNiaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJRWRTUVZCSVgwUkpVMEZDVEVWRVgwNVBSRVZmUWtWSVFWWkpUMUpUSUQwZ1cxeHVJQ0JjSW5OcmFYQmNJaXhjYmlBZ1hDSndZWE56VkdoeWIzVm5hRVpwY25OMFNXNXdkWFJjSWl4Y2JpQWdYQ0psYldsMFJHVm1ZWFZzZEhOY0lpeGNibDBnWVhNZ1kyOXVjM1E3WEc1Y2JpOHFLaUJJYjNjZ1lTQmthWE5oWW14bFpDQnViMlJsSUdKbGFHRjJaWE1nWkhWeWFXNW5JR1Y0WldOMWRHbHZiaUFvUkVWRFFVWXROVEFnd3FjMExqZ3BPaUJ6YTJsd0lHbDBMQ0J3WVhOeklIUm9jbTkxWjJnZ2FYUnpJR1pwY25OMElHbHVjSFYwTENCdmNpQmxiV2wwSUdSbFptRjFiSFFnYjNWMGNIVjBjeTRnS2k5Y2JtVjRjRzl5ZENCMGVYQmxJRWR5WVhCb1JHbHpZV0pzWldST2IyUmxRbVZvWVhacGIzSWdQU0FvZEhsd1pXOW1JRWRTUVZCSVgwUkpVMEZDVEVWRVgwNVBSRVZmUWtWSVFWWkpUMUpUS1Z0dWRXMWlaWEpkTzF4dVhHNHZLaW9nVkdobElHUnBjMkZpYkdWa0xXNXZaR1VnWW1Wb1lYWnBiM0lnWVhCd2JHbGxaQ0IzYUdWdUlHRWdibTlrWlNCa1pXTnNZWEpsY3lCdWIyNWxMaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJRWRTUVZCSVgwUkZSa0ZWVEZSZlJFbFRRVUpNUlVSZlRrOUVSVjlDUlVoQlZrbFBVam9nUjNKaGNHaEVhWE5oWW14bFpFNXZaR1ZDWldoaGRtbHZjaUE5SUZ3aWMydHBjRndpTzF4dVhHNHZLaW9nVkhsd1pTQm5kV0Z5WkNCbWIzSWdlMEJzYVc1cklFZHlZWEJvUkdsellXSnNaV1JPYjJSbFFtVm9ZWFpwYjNKOUxpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2x6UjNKaGNHaEVhWE5oWW14bFpFNXZaR1ZDWldoaGRtbHZjaWhjYmlBZ2RtRnNkV1U2SUhWdWEyNXZkMjVjYmlrNklIWmhiSFZsSUdseklFZHlZWEJvUkdsellXSnNaV1JPYjJSbFFtVm9ZWFpwYjNJZ2UxeHVJQ0J5WlhSMWNtNGdLRWRTUVZCSVgwUkpVMEZDVEVWRVgwNVBSRVZmUWtWSVFWWkpUMUpUSUdGeklISmxZV1J2Ym14NUlITjBjbWx1WjF0ZEtTNXBibU5zZFdSbGN5aGNiaUFnSUNCMllXeDFaU0JoY3lCemRISnBibWRjYmlBZ0tUdGNibjFjYmx4dUx5b3FYRzRnS2lCRmVHVmpkWFJwYjI0Z2MzUmhkSFZ6SUdadmNpQmhJSGR2Y210bWJHOTNJRzl5SUdsdVpHbDJhV1IxWVd3Z2JtOWtaUzVjYmlBcUwxeHVaWGh3YjNKMElHVnVkVzBnUjNKaGNHaEZlR1ZqZFhScGIyNVRkR0YwZFhNZ2UxeHVJQ0JRUlU1RVNVNUhJRDBnWENKd1pXNWthVzVuWENJc1hHNGdJRkJNUVU1T1NVNUhJRDBnWENKd2JHRnVibWx1WjF3aUxGeHVJQ0JTVlU1T1NVNUhJRDBnWENKeWRXNXVhVzVuWENJc1hHNGdJRk5WUTBORlJVUkZSQ0E5SUZ3aWMzVmpZMlZsWkdWa1hDSXNYRzRnSUVaQlNVeEZSQ0E5SUZ3aVptRnBiR1ZrWENJc1hHNGdJRk5MU1ZCUVJVUWdQU0JjSW5OcmFYQndaV1JjSWl4Y2JpQWdRMEZPUTBWTVRFVkVJRDBnWENKallXNWpaV3hzWldSY0lpeGNiaUFnUTBGRFNFVkVJRDBnWENKallXTm9aV1JjSWl4Y2JuMWNibHh1THlvcVhHNGdLaUJXYVhOMVlXd2daWGhsWTNWMGFXOXVJSE4wWVhSbElHWnZjaUJoSUc1dlpHVWdiM0lnWldSblpTQnZiaUIwYUdVZ2QyOXlhMlpzYjNjZ1kyRnVkbUZ6TGx4dUlDcGNiaUFxSUVaeWIyNTBaVzVrTFhOaFptVWdLRVJGUTBGR0xUUTRJTUtuTkM0MEtUb2dZU0J6ZFhCbGNuTmxkQ0J2WmlCN1FHeHBibXNnUjNKaGNHaEZlR1ZqZFhScGIyNVRkR0YwZFhOOVhHNGdLaUJ1YjNKdFlXeHBjMlZrSUdadmNpQnlaVzVrWlhKcGJtY3VJR0JDVEU5RFMwVkVZQ0JwY3lCa1pYSnBkbVZrSUdaeWIyMGdkR2hsSUhCc1lXNGdZVzVrSUdWNFpXTjFkR2x2Ymx4dUlDb2daWFpsYm5SeklDaDNZV2wwYVc1bklHOXVJSFZ3YzNSeVpXRnRJR1JsY0dWdVpHVnVZMmxsY3lrc0lHNXZkQ0JsYldsMGRHVmtJR0Z6SUdGdUlHVnVaMmx1WlNCemRHRjBkWE11WEc0Z0tpQmdVMHRKVUZCRlJHQWdhWE1nZEdobElIQnZjM1F0Wm1GcGJIVnlaU0JjSW5WdVpYaGxZM1YwWldRdlpHbHpZV0pzWldSY0lpQjJhWE4xWVd3Z2MzUmhkR1V1WEc0Z0tpOWNibVY0Y0c5eWRDQmxiblZ0SUVkeVlYQm9WbWx6ZFdGc1UzUmhkR1VnZTF4dUlDQkpSRXhGSUQwZ1hDSnBaR3hsWENJc1hHNGdJRkpWVGs1SlRrY2dQU0JjSW5KMWJtNXBibWRjSWl4Y2JpQWdRa3hQUTB0RlJDQTlJRndpWW14dlkydGxaRndpTEZ4dUlDQlRWVU5EUlVWRVJVUWdQU0JjSW5OMVkyTmxaV1JsWkZ3aUxGeHVJQ0JHUVVsTVJVUWdQU0JjSW1aaGFXeGxaRndpTEZ4dUlDQlRTMGxRVUVWRUlEMGdYQ0p6YTJsd2NHVmtYQ0lzWEc1OVhHNWNibHh1THlvcVhHNGdLaUJPWVcxbGMzQmhZMlVnY205dmRDQm1iM0lnWjNKaGNHZ2djblZ1SUZOVFJTQjBiM0JwWTNNZ0tFUkZRMEZHTFRRNElNS25OQzR5S1M0Z1FTQnpkV0p6WTNKcGNIUnBiMjVjYmlBcUlHWnBiSFJsY25NZ2IyNGdkR2hsYzJVZ1ozSmhiblZzWVhJZ2RHOXdhV056SUdKbFptOXlaU0JnYjJKelpYSjJaWEl1Ym1WNGRDZ3VMaTRwWUM1Y2JpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElFZFNRVkJJWDFKVlRsOVVUMUJKUXlBOUlGd2laM0poY0dndWNuVnVYQ0k3WEc1Y2JpOHFLbHh1SUNvZ1UxTkZJSE4xWWkxMGIzQnBZeUJ6ZEhKbFlXMXBibWNnY0dWeUxXNXZaR1VnYkc5bklHeHBibVZ6SUdSMWNtbHVaeUJoSUhKMWJpNWNiaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJRWRTUVZCSVgxSlZUbDlNVDBkZlZFOVFTVU1nUFNCZ0pIdEhVa0ZRU0Y5U1ZVNWZWRTlRU1VOOUxteHZaMkE3WEc1Y2JpOHFLbHh1SUNvZ1UxTkZJSE4xWWkxMGIzQnBZeUJ6ZEhKbFlXMXBibWNnYm05a1pTOWxaR2RsSUdWNFpXTjFkR2x2YmkxemRHRjBaU0IxY0dSaGRHVnpJR1IxY21sdVp5QmhJSEoxYmk1Y2JpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElFZFNRVkJJWDFKVlRsOVRWRUZVUlY5VVQxQkpReUE5SUdBa2UwZFNRVkJJWDFKVlRsOVVUMUJKUTMwdWMzUmhkR1ZnTzF4dVhHNHZLaXBjYmlBcUlFeHZaMmRsY2lCamRYTjBiMjB0WVhSMGNtbGlkWFJsSUd0bGVYTWdZWFIwWVdOb1pXUWdkRzhnWlhabGNua2djblZ1SUd4dlp5QnNhVzVsSUhacFlWeHVJQ29nUkVWRFFVWXRPU0JnYkc5bloyVnlMbVp2Y2loN0xpNHVmU2xnSUNoRVJVTkJSaTAwT0NEQ3B6UXVNeWt1SUZKbGJtUmxjbVZrSUdGeklHUnBjMk55WlhSbElHTnZiSFZ0Ym5OY2JpQXFJQ2h1YjNRZ1luVnlhV1ZrSUdsdUlIUm9aU0J0WlhOellXZGxJSE4wY21sdVp5a3VYRzRnS2k5Y2JtVjRjRzl5ZENCbGJuVnRJRWR5WVhCb1RHOW5RWFIwY21saWRYUmxJSHRjYmlBZ1RrOUVSVjlKUkNBOUlGd2libTlrWlVsa1hDSXNYRzRnSUZkUFVrdEdURTlYWDBsRUlEMGdYQ0ozYjNKclpteHZkMGxrWENJc1hHNGdJRkpWVGw5SlJDQTlJRndpY25WdVNXUmNJaXhjYmlBZ1ZWTkZVaUE5SUZ3aWRYTmxjbHdpTEZ4dWZWeHVYRzR2S2lwY2JpQXFJRTVoYldWemNHRmpaU0IwYjNCcFl5Qm9aV3h3WlhJZ1ptOXlJR0VnWjNKaGNHZ2daWGhsWTNWMGFXOXVJR1YyWlc1MExseHVJQ3BjYmlBcUlFeHZaeTFqWVhKeWFXVnlJR1YyWlc1MGN5QnlaWE52YkhabElIUnZJR0JuY21Gd2FDNXlkVzR1Ykc5bllEc2dibTlrWlM5bFpHZGxJR1Y0WldOMWRHbHZiaTF6ZEdGMFpWeHVJQ29nWlhabGJuUnpJSEpsYzI5c2RtVWdkRzhnWUdkeVlYQm9MbkoxYmk1emRHRjBaV0E3SUdWMlpYSjVkR2hwYm1jZ1pXeHpaU0J6ZEdGNWN5QjFibVJsY2lCMGFHVWdjMmhoY21Wa1hHNGdLaUJnWjNKaGNHZ3VjblZ1WUNCMGIzQnBZeUJoYm1RZ2FYTWdiMjVzZVNCa1pXeHBkbVZ5WldRZ2RHOGdjM1ZpYzJOeWFXSmxjbk1nZEdoaGRDQnRZWFJqYUNCcGRDNWNiaUFxWEc0Z0tpQkFjR0Z5WVcwZ1pYWmxiblJVZVhCbElDMGdWR2hsSUdkeVlYQm9JR1Y0WldOMWRHbHZiaUJsZG1WdWRDQjBlWEJsSUhSdklITmpiM0JsSUhSdklHRWdkRzl3YVdNdVhHNGdLaUJBY21WMGRYSnVjeUJVYUdVZ1UxTkZJSFJ2Y0dsaklHTnZibk4wWVc1MElHWnZjaUIwYUdVZ1oybDJaVzRnWlhabGJuUWdkSGx3WlM1Y2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2R5WVhCb1VuVnVWRzl3YVdOUFppaGxkbVZ1ZEZSNWNHVTZJRWR5WVhCb1JYaGxZM1YwYVc5dVJYWmxiblJVZVhCbEtUb2djM1J5YVc1bklIdGNiaUFnYzNkcGRHTm9JQ2hsZG1WdWRGUjVjR1VwSUh0Y2JpQWdJQ0JqWVhObElFZHlZWEJvUlhobFkzVjBhVzl1UlhabGJuUlVlWEJsTGtkU1FWQklYMUpWVGw5TVQwYzZYRzRnSUNBZ0lDQnlaWFIxY200Z1IxSkJVRWhmVWxWT1gweFBSMTlVVDFCSlF6dGNiaUFnSUNCallYTmxJRWR5WVhCb1JYaGxZM1YwYVc5dVJYWmxiblJVZVhCbExrNVBSRVZmVTFSQlZFVmZRMGhCVGtkRlJEcGNiaUFnSUNCallYTmxJRWR5WVhCb1JYaGxZM1YwYVc5dVJYWmxiblJVZVhCbExrVkVSMFZmVTFSQlZFVmZRMGhCVGtkRlJEcGNiaUFnSUNBZ0lISmxkSFZ5YmlCSFVrRlFTRjlTVlU1ZlUxUkJWRVZmVkU5UVNVTTdYRzRnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUhKbGRIVnliaUJIVWtGUVNGOVNWVTVmVkU5UVNVTTdYRzRnSUgxY2JuMWNibHh1THlvcVhHNGdLaUJGZG1WdWRDQjBlWEJsY3lCbGJXbDBkR1ZrSUhSb2NtOTFaMmdnZEdobElHZHlZWEJvSUdWNFpXTjFkR2x2YmlCdlluTmxjblpsY2lCd2FYQmxiR2x1WlM1Y2JpQXFYRzRnS2lCRVJVTkJSaTAwT0NCbGVIUmxibVJ6SUhSb2FYTWdjMlYwSUhkcGRHZ2dkR2hsSUhacGMzVmhiQzF6ZEdGMFpTQmhibVFnY25WdUxXeHZaeUJsZG1WdWRDQjBlWEJsY3lCMGFHVmNiaUFxSUdWdVoybHVaU0JsYldsMGN5QnZiaUIwYUdVZ1pYaHBjM1JwYm1jZ1QySnpaWEoyWVdKc1pUb2dlMEJzYVc1cklFZHlZWEJvUlhobFkzVjBhVzl1UlhabGJuUlVlWEJsTGs1UFJFVmZVMVJCVkVWZlEwaEJUa2RGUkgwc1hHNGdLaUI3UUd4cGJtc2dSM0poY0doRmVHVmpkWFJwYjI1RmRtVnVkRlI1Y0dVdVJVUkhSVjlUVkVGVVJWOURTRUZPUjBWRWZTQmhibVJjYmlBcUlIdEFiR2x1YXlCSGNtRndhRVY0WldOMWRHbHZia1YyWlc1MFZIbHdaUzVIVWtGUVNGOVNWVTVmVEU5SGZTNWNiaUFxTDF4dVpYaHdiM0owSUdWdWRXMGdSM0poY0doRmVHVmpkWFJwYjI1RmRtVnVkRlI1Y0dVZ2UxeHVJQ0JYVDFKTFJreFBWMTlUVkVGU1ZFVkVJRDBnWENKM2IzSnJabXh2ZHk1emRHRnlkR1ZrWENJc1hHNGdJRmRQVWt0R1RFOVhYMUJNUVU1T1JVUWdQU0JjSW5kdmNtdG1iRzkzTG5Cc1lXNXVaV1JjSWl4Y2JpQWdWMDlTUzBaTVQxZGZRMDlOVUV4RlZFVkVJRDBnWENKM2IzSnJabXh2ZHk1amIyMXdiR1YwWldSY0lpeGNiaUFnVjA5U1MwWk1UMWRmUmtGSlRFVkVJRDBnWENKM2IzSnJabXh2ZHk1bVlXbHNaV1JjSWl4Y2JpQWdWMDlTUzBaTVQxZGZRMEZPUTBWTVRFVkVJRDBnWENKM2IzSnJabXh2ZHk1allXNWpaV3hzWldSY0lpeGNibHh1SUNCT1QwUkZYMUZWUlZWRlJDQTlJRndpYm05a1pTNXhkV1YxWldSY0lpeGNiaUFnVGs5RVJWOVRWRUZTVkVWRUlEMGdYQ0p1YjJSbExuTjBZWEowWldSY0lpeGNiaUFnVGs5RVJWOVBWVlJRVlZRZ1BTQmNJbTV2WkdVdWIzVjBjSFYwWENJc1hHNGdJRTVQUkVWZlEwOU5VRXhGVkVWRUlEMGdYQ0p1YjJSbExtTnZiWEJzWlhSbFpGd2lMRnh1SUNCT1QwUkZYMFpCU1V4RlJDQTlJRndpYm05a1pTNW1ZV2xzWldSY0lpeGNiaUFnVGs5RVJWOVRTMGxRVUVWRUlEMGdYQ0p1YjJSbExuTnJhWEJ3WldSY0lpeGNiaUFnVGs5RVJWOURRVU5JUlY5SVNWUWdQU0JjSW01dlpHVXVZMkZqYUdWSWFYUmNJaXhjYmlBZ1RrOUVSVjlRU1U1T1JVUWdQU0JjSW01dlpHVXVjR2x1Ym1Wa1hDSXNYRzRnSUU1UFJFVmZWVTVRU1U1T1JVUWdQU0JjSW01dlpHVXVkVzV3YVc1dVpXUmNJaXhjYmlBZ0x5b3FJRTV2WkdVZ1pYaGxZM1YwYVc5dUxYTjBZWFJsSUhSeVlXNXphWFJwYjI0Z1kyRnljbmxwYm1jZ1lTQmdSM0poY0doT2IyUmxVM1JoZEdWRGFHRnVaMlZrVUdGNWJHOWhaR0FnS0VSRlEwRkdMVFE0SU1Lbk5DNDBLUzRnS2k5Y2JpQWdUazlFUlY5VFZFRlVSVjlEU0VGT1IwVkVJRDBnWENKdWIyUmxMbk4wWVhSbFEyaGhibWRsWkZ3aUxGeHVYRzRnSUVWRVIwVmZWa0ZNVlVWZlVrOVZWRVZFSUQwZ1hDSmxaR2RsTG5aaGJIVmxVbTkxZEdWa1hDSXNYRzRnSUM4cUtpQkZaR2RsSUdWNFpXTjFkR2x2YmkxemRHRjBaU0IwY21GdWMybDBhVzl1SUdOaGNuSjVhVzVuSUdFZ1lFZHlZWEJvUldSblpWTjBZWFJsUTJoaGJtZGxaRkJoZVd4dllXUmdJQ2hFUlVOQlJpMDBPQ0RDcHpRdU5Da3VJQ292WEc0Z0lFVkVSMFZmVTFSQlZFVmZRMGhCVGtkRlJDQTlJRndpWldSblpTNXpkR0YwWlVOb1lXNW5aV1JjSWl4Y2JseHVJQ0F2S2lvZ1UzUnlkV04wZFhKbFpDQnlkVzRnYkc5bklHeHBibVVnWTJGeWNubHBibWNnWVNCZ1IzSmhjR2hTZFc1TWIyZEZiblJ5ZVdBZ0tFUkZRMEZHTFRRNElNS25OQzR6S1M0Z0tpOWNiaUFnUjFKQlVFaGZVbFZPWDB4UFJ5QTlJRndpWjNKaGNHZ3VjblZ1TG14dloxd2lMRnh1WEc0Z0lFeFBUMUJmVTFSQlVsUkZSQ0E5SUZ3aWJHOXZjQzV6ZEdGeWRHVmtYQ0lzWEc0Z0lFeFBUMUJmU1ZSRlVrRlVTVTlPWDFOVVFWSlVSVVFnUFNCY0lteHZiM0F1YVhSbGNtRjBhVzl1TG5OMFlYSjBaV1JjSWl4Y2JpQWdURTlQVUY5SlZFVlNRVlJKVDA1ZlEwOU5VRXhGVkVWRUlEMGdYQ0pzYjI5d0xtbDBaWEpoZEdsdmJpNWpiMjF3YkdWMFpXUmNJaXhjYmlBZ1RFOVBVRjlEVDA1RVNWUkpUMDVmUlZaQlRGVkJWRVZFSUQwZ1hDSnNiMjl3TG1OdmJtUnBkR2x2Ymk1bGRtRnNkV0YwWldSY0lpeGNiaUFnVEU5UFVGOURUMDFRVEVWVVJVUWdQU0JjSW14dmIzQXVZMjl0Y0d4bGRHVmtYQ0lzWEc0Z0lFeFBUMUJmVEVsTlNWUmZVa1ZCUTBoRlJDQTlJRndpYkc5dmNDNXNhVzFwZEZKbFlXTm9aV1JjSWl4Y2JseHVJQ0JXUVV4SlJFRlVTVTlPWDFOVVFWSlVSVVFnUFNCY0luWmhiR2xrWVhScGIyNHVjM1JoY25SbFpGd2lMRnh1SUNCV1FVeEpSRUZVU1U5T1gwWkJTVXhGUkNBOUlGd2lkbUZzYVdSaGRHbHZiaTVtWVdsc1pXUmNJaXhjYmlBZ1ZrRk1TVVJCVkVsUFRsOURUMDFRVEVWVVJVUWdQU0JjSW5aaGJHbGtZWFJwYjI0dVkyOXRjR3hsZEdWa1hDSXNYRzVjYmlBZ1UxUlBVa1ZmVWtWQlJDQTlJRndpYzNSdmNtVXVjbVZoWkZ3aUxGeHVJQ0JUVkU5U1JWOVhVa2xVUlNBOUlGd2ljM1J2Y21VdWQzSnBkR1ZjSWl4Y2JpQWdVMVJQVWtWZlJFVk1SVlJGSUQwZ1hDSnpkRzl5WlM1a1pXeGxkR1ZjSWl4Y2JuMWNibHh1THlvcVhHNGdLaUJJWVhKa0lHeHBiV2wwY3lCbWIzSWdkR2hsSUdkeVlYQm9JSEoxYmlCemRXSnplWE4wWlcwZ0tFUkZRMEZHTFRVd0lNS25OQzR4TkMvQ3B6UXVNVFlwTGx4dUlDcGNiaUFxSUVWdVptOXlZMlZrSUdKNUlIUm9aU0J5ZFc0Z1pYaGxZM1YwYjNJZ1lXNWtJSFJvWlNCSVZGUlFJSEoxYmlCamIyNTBjbTlzYkdWeU95QmxkbVZ5ZVNCdmJXbDBkR1ZrWEc0Z0tpQm1hV1ZzWkNCbVlXeHNjeUJpWVdOcklIUnZJSHRBYkdsdWF5QkVSVVpCVlV4VVgwZFNRVkJJWDFKVlRsOU1TVTFKVkZOOUxseHVJQ292WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVkeVlYQm9VblZ1VEdsdGFYUnpJSHRjYmlBZ0x5b3FJRTFoZUdsdGRXMGdjMlZ5YVdGc2FYTmxaQ0JLVTA5T0lITnBlbVVnWVdOalpYQjBaV1FnWm05eUlHRWdjblZ1SUdOeVpXRjBaU0J5WlhGMVpYTjBMaUFxTDF4dUlDQnRZWGhTWlhGMVpYTjBRbmwwWlhNL09pQnVkVzFpWlhJN1hHNGdJQzhxS2x4dUlDQWdLaUJOWVhocGJYVnRJRzUxYldKbGNpQnZaaUJ5ZFc1eklHbHVJR1pzYVdkb2RDQndaWElnWTJGc2JHVnlPaUIwYUdVZ2NuVnVKM01nYjNkdVpYSWdkWE5sY2l3Z2IzSmNiaUFnSUNvZ2RHaGxJR05oYkd4bGNpMXJaWGtnWW5WamEyVjBJSE4xY0hCc2FXVmtJR0o1SUhSb1pTQklWRlJRSUd4aGVXVnlJR1p2Y2lCaGJtOXVlVzF2ZFhNZ1kyRnNiR1Z5YzF4dUlDQWdLaUFvY0dWeUxVbFFJSGRvWlhKbElIUm9aU0JvYjNOMElHVjRjRzl6WlhNZ2FYUXNJR0VnYzJoaGNtVmtJR0JjSW1GdWIyNTViVzkxYzF3aVlDQmlkV05yWlhSY2JpQWdJQ29nYjNSb1pYSjNhWE5sS1M1Y2JpQWdJQ292WEc0Z0lHMWhlRU52Ym1OMWNuSmxiblJTZFc1elB6b2diblZ0WW1WeU8xeHVJQ0F2S2lvZ1RXRjRhVzExYlNCbGRtVnVkSE1nY21WMFlXbHVaV1FnY0dWeUlISjFiaUJpZVNCMGFHVWdhVzR0YldWdGIzSjVJR1YyWlc1MElITjBiM0psTGlBcUwxeHVJQ0J0WVhoRmRtVnVkSE5RWlhKU2RXNC9PaUJ1ZFcxaVpYSTdYRzRnSUM4cUtpQk5ZWGhwYlhWdElITmxjbWxoYkdselpXUWdjMmw2WlNCdlppQmhJSE5wYm1kc1pTQmxkbVZ1ZENCbGJuWmxiRzl3WlNCZ2NHRjViRzloWkdBdUlDb3ZYRzRnSUcxaGVFVjJaVzUwVUdGNWJHOWhaRUo1ZEdWelB6b2diblZ0WW1WeU8xeHVJQ0F2S2lvZ1NHRnlaQ0IzWVd4c0xXTnNiMk5ySUdKMVpHZGxkQ0JtYjNJZ1lTQnlkVzRuY3lCbGJtZHBibVVnWlhobFkzVjBhVzl1TGlBcUwxeHVJQ0JsZUdWamRYUnBiMjVVYVcxbGIzVjBUWE0vT2lCdWRXMWlaWEk3WEc0Z0lDOHFLbHh1SUNBZ0tpQkliM2NnYkc5dVp5QmhJSFJsY20xcGJtRnNJSEoxYmlkeklISmxjR3hoZVdGaWJHVWdaWFpsYm5RZ2MzUmhkR1VnYVhNZ2EyVndkQ0JoWm5SbGNpQjBhR1VnY25WdVhHNGdJQ0FxSUdacGJtbHphR1Z6SUdKbFptOXlaU0JpWldsdVp5QnlaV3hsWVhObFpDQW9VMEZCTFRVNU5TQnlaWE52ZFhKalpTQm5iM1psY201aGJtTmxLUzVjYmlBZ0lDb3ZYRzRnSUdWMlpXNTBVbVZ3YkdGNVYybHVaRzkzVFhNL09pQnVkVzFpWlhJN1hHNTlYRzVjYmk4cUtpQkVaV1poZFd4MElISjFiaUJzYVcxcGRITTZJSEpsY1hWbGMzUWdjMmw2WlN3Z2NHVnlMV05oYkd4bGNpQmpiMjVqZFhKeVpXNWplU3dnWlhabGJuUWdjbVYwWlc1MGFXOXVMM0JoZVd4dllXUWdjMmw2WlN3Z1pYaGxZM1YwYVc5dUlIUnBiV1Z2ZFhRc0lHRnVaQ0J3YjNOMExYUmxjbTFwYm1Gc0lHVjJaVzUwSUhKbGNHeGhlU0IzYVc1a2IzY3VJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdSRVZHUVZWTVZGOUhVa0ZRU0Y5U1ZVNWZURWxOU1ZSVE9pQlNaWEYxYVhKbFpEeEhjbUZ3YUZKMWJreHBiV2wwY3o0Z1BTQjdYRzRnSUcxaGVGSmxjWFZsYzNSQ2VYUmxjem9nTkY4d01EQmZNREF3TEZ4dUlDQnRZWGhEYjI1amRYSnlaVzUwVW5WdWN6b2dNeklzWEc0Z0lHMWhlRVYyWlc1MGMxQmxjbEoxYmpvZ01UQmZNREF3TEZ4dUlDQnRZWGhGZG1WdWRGQmhlV3h2WVdSQ2VYUmxjem9nTWpVMlh6QXdNQ3hjYmlBZ1pYaGxZM1YwYVc5dVZHbHRaVzkxZEUxek9pQTJNREJmTURBd0xGeHVJQ0JsZG1WdWRGSmxjR3hoZVZkcGJtUnZkMDF6T2lBek1EQmZNREF3TEZ4dWZUdGNibHh1THlvcVhHNGdLaUJVWlhKdGFXNWhiQ0JuY21Gd2FDQmxkbVZ1ZENCMGVYQmxjeUJqYkc5emFXNW5JR0VnY25WdUozTWdVMU5GSUhOMGNtVmhiVnh1SUNvZ0tFUkZRMEZHTFRVd0lNS25OQzR4TlNrdUlGUm9aU0J5ZFc0Z1UxTkZJR1Z1WkhCdmFXNTBJRzVsZG1WeUlHVnRhWFJ6SUdGdWVYUm9hVzVuSUdGbWRHVnlJSFJvWlhObExseHVJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdSMUpCVUVoZlVsVk9YMVJGVWsxSlRrRk1YMFZXUlU1VVgxUlpVRVZUT2lCeVpXRmtiMjVzZVNCSGNtRndhRVY0WldOMWRHbHZia1YyWlc1MFZIbHdaVnRkSUQxY2JpQWdXMXh1SUNBZ0lFZHlZWEJvUlhobFkzVjBhVzl1UlhabGJuUlVlWEJsTGxkUFVrdEdURTlYWDBOUFRWQk1SVlJGUkN4Y2JpQWdJQ0JIY21Gd2FFVjRaV04xZEdsdmJrVjJaVzUwVkhsd1pTNVhUMUpMUmt4UFYxOUdRVWxNUlVRc1hHNGdJQ0FnUjNKaGNHaEZlR1ZqZFhScGIyNUZkbVZ1ZEZSNWNHVXVWMDlTUzBaTVQxZGZRMEZPUTBWTVRFVkVMRnh1SUNCZE8xeHVYRzR2S2lvZ1YyaGxkR2hsY2lCMGFHVWdaWFpsYm5RZ2RIbHdaU0JwY3lCaElISjFiaTF6ZEhKbFlXMGdkR1Z5YldsdVlXd2dkSGx3WlNBb2MyVmxJSHRBYkdsdWF5QkhVa0ZRU0Y5U1ZVNWZWRVZTVFVsT1FVeGZSVlpGVGxSZlZGbFFSVk45S1M0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnBjMGR5WVhCb1VuVnVWR1Z5YldsdVlXeEZkbVZ1ZEZSNWNHVW9YRzRnSUhSNWNHVTZJRWR5WVhCb1JYaGxZM1YwYVc5dVJYWmxiblJVZVhCbFhHNHBPaUJpYjI5c1pXRnVJSHRjYmlBZ2NtVjBkWEp1SUVkU1FWQklYMUpWVGw5VVJWSk5TVTVCVEY5RlZrVk9WRjlVV1ZCRlV5NXBibU5zZFdSbGN5aDBlWEJsS1R0Y2JuMWNibHh1THlvcUlGZG9aWFJvWlhJZ2RHaGxJSEoxYmlCemRHRjBkWE1nYVhNZ2RHVnliV2x1WVd3Z0tHQnpkV05qWldWa1pXUmdMQ0JnWm1GcGJHVmtZQ3dnYjNJZ1lHTmhibU5sYkd4bFpHQXBMaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdselIzSmhjR2hTZFc1VVpYSnRhVzVoYkZOMFlYUjFjeWh6ZEdGMGRYTTZJRWR5WVhCb1VuVnVVM1JoZEhWektUb2dZbTl2YkdWaGJpQjdYRzRnSUhKbGRIVnliaUJ6ZEdGMGRYTWdQVDA5SUZ3aWMzVmpZMlZsWkdWa1hDSWdmSHdnYzNSaGRIVnpJRDA5UFNCY0ltWmhhV3hsWkZ3aUlIeDhJSE4wWVhSMWN5QTlQVDBnWENKallXNWpaV3hzWldSY0lqdGNibjFjYmx4dUx5b3FJRlI1Y0dVZ1ozVmhjbVFnWm05eUlIdEFiR2x1YXlCSGNtRndhRkoxYmxOMFlYUjFjMzB1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2FYTkhjbUZ3YUZKMWJsTjBZWFIxY3loMllXeDFaVG9nZFc1cmJtOTNiaWs2SUhaaGJIVmxJR2x6SUVkeVlYQm9VblZ1VTNSaGRIVnpJSHRjYmlBZ2NtVjBkWEp1SUNoY2JpQWdJQ0IwZVhCbGIyWWdkbUZzZFdVZ1BUMDlJRndpYzNSeWFXNW5YQ0lnSmlaY2JpQWdJQ0JiWEc0Z0lDQWdJQ0JjSW5GMVpYVmxaRndpTEZ4dUlDQWdJQ0FnWENKMllXeHBaR0YwYVc1blhDSXNYRzRnSUNBZ0lDQmNJbkoxYm01cGJtZGNJaXhjYmlBZ0lDQWdJRndpYzNWalkyVmxaR1ZrWENJc1hHNGdJQ0FnSUNCY0ltWmhhV3hsWkZ3aUxGeHVJQ0FnSUNBZ1hDSmpZVzVqWld4c1pXUmNJaXhjYmlBZ0lDQmRMbWx1WTJ4MVpHVnpLSFpoYkhWbEtWeHVJQ0FwTzF4dWZWeHVJbDE5Il19
319
+ //# sourceMappingURL=constants.js.map
320
+ //# sourceMappingURL=constants.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph/constants.cjs","sourceRoot":"","sources":["graph/constants.js"],"names":[],"mappings":"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"}
@@ -147,5 +147,5 @@ function pinnable(options = {}) {
147
147
  })
148
148
  .apply();
149
149
  }
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaC9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLFFBQVEsRUFDUixRQUFRLEVBQ1IsWUFBWSxHQUNiLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQ0FBNEI7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsdUJBQW9CO0FBRXZELE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQWlCO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQW1CO0FBRTVELE1BQU0sVUFBVSxJQUFJLENBQ2xCLEdBQVksRUFDWixLQUF5QixFQUN6QixLQUEyQjtJQUUzQixTQUFTLElBQUksQ0FDWCxHQUFZLEVBQ1osS0FBeUIsRUFDekIsS0FBMkI7UUFFM0IsTUFBTSxJQUFJLEdBQXNCO1lBQzlCLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLEdBQUc7WUFDeEIsR0FBRyxLQUFLO1NBQ1QsQ0FBQztRQUNGLE9BQU8sU0FBUyxTQUFTLENBQUMsTUFBYztZQUN0QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xGLFlBQVksQ0FBQyxNQUFxQixDQUFDLENBQUM7WUFDcEMsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQ2xDLE1BQU0sQ0FBQztRQUNOLFNBQVMsRUFBRSxJQUFJO1FBQ2YsSUFBSSxFQUFFLENBQUMsR0FB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QUFFLFFBQWU7UUFDMUIsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDO0tBQ2hCLENBQUM7U0FDRCxLQUFLLEVBQUUsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhcHBseSxcbiAgRGVjb3JhdGlvbixcbiAgTWV0YWRhdGEsXG4gIG1ldGFkYXRhLFxuICBwcm9wTWV0YWRhdGEsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgdWltb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBHcmFwaEtleXMsIFBvcnREaXJlY3Rpb24gfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB0eXBlIHsgR3JhcGhOb2RlTWV0YWRhdGEsIEdyYXBoUG9ydE1ldGFkYXRhLCBHcmFwaFdvcmtmbG93TWV0YWRhdGEgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGdyYXBoUG9ydHNPZiB9IGZyb20gXCIuL3JlYWRlclwiO1xuaW1wb3J0IHsgcmVnaXN0ZXJOb2RlLCByZWdpc3RlcldvcmtmbG93IH0gZnJvbSBcIi4vcmVnaXN0cnlcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIG5vZGUoXG4gIHRhZz86IHN0cmluZyxcbiAgZ3JhcGg/OiBHcmFwaE5vZGVNZXRhZGF0YSxcbiAgcHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4pIHtcbiAgZnVuY3Rpb24gbm9kZShcbiAgICB0YWc/OiBzdHJpbmcsXG4gICAgZ3JhcGg/OiBHcmFwaE5vZGVNZXRhZGF0YSxcbiAgICBwcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKSB7XG4gICAgY29uc3QgbWV0YTogR3JhcGhOb2RlTWV0YWRhdGEgPSB7XG4gICAgICBraW5kOiBncmFwaD8ua2luZCB8fCB0YWcsXG4gICAgICAuLi5ncmFwaCxcbiAgICB9O1xuICAgIHJldHVybiBmdW5jdGlvbiBpbm5lck5vZGUodGFyZ2V0OiBvYmplY3QpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGFwcGx5KHVpbW9kZWwodGFnLCBwcm9wcyksIG1ldGFkYXRhKEdyYXBoS2V5cy5OT0RFLCBtZXRhKSkodGFyZ2V0KTtcbiAgICAgIHJlZ2lzdGVyTm9kZSh0YXJnZXQgYXMgQ29uc3RydWN0b3IpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIERlY29yYXRpb24uZm9yKEdyYXBoS2V5cy5OT0RFKVxuICAgIC5kZWZpbmUoe1xuICAgICAgZGVjb3JhdG9yOiBub2RlLFxuICAgICAgYXJnczogW3RhZywgZ3JhcGgsIHByb3BzXSxcbiAgICB9KVxuICAgIC5hcHBseSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JhcGgoXG4gIHRhZz86IHN0cmluZyxcbiAgZ3JhcGg/OiBHcmFwaFdvcmtmbG93TWV0YWRhdGEsXG4gIHByb3BzPzogUmVjb3JkPHN0cmluZywgYW55PlxuKSB7XG4gIGZ1bmN0aW9uIGdyYXBoRGVjb3JhdG9yKFxuICAgIHRhZz86IHN0cmluZyxcbiAgICBncmFwaD86IEdyYXBoV29ya2Zsb3dNZXRhZGF0YSxcbiAgICBwcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGlubmVyR3JhcGgodGFyZ2V0OiBvYmplY3QpIHtcbiAgICAgIGNvbnN0IHBvcnRzID0gZ3JhcGhQb3J0c09mKHRhcmdldCBhcyBhbnkpO1xuICAgICAgY29uc3QgbWV0YTogR3JhcGhXb3JrZmxvd01ldGFkYXRhID0ge1xuICAgICAgICAuLi4oZ3JhcGggfHwge30pLFxuICAgICAgICBraW5kOiBncmFwaD8ua2luZCB8fCB0YWcsXG4gICAgICAgIGlucHV0czpcbiAgICAgICAgICBncmFwaD8uaW5wdXRzIHx8XG4gICAgICAgICAgcG9ydHMuZmlsdGVyKChwb3J0KSA9PiBwb3J0LmRpcmVjdGlvbiA9PT0gUG9ydERpcmVjdGlvbi5JTlBVVCksXG4gICAgICAgIG91dHB1dHM6XG4gICAgICAgICAgZ3JhcGg/Lm91dHB1dHMgfHxcbiAgICAgICAgICBwb3J0cy5maWx0ZXIoKHBvcnQpID0+IHBvcnQuZGlyZWN0aW9uID09PSBQb3J0RGlyZWN0aW9uLk9VVFBVVCksXG4gICAgICAgIGNvbm5lY3Rpb25zOlxuICAgICAgICAgIGdyYXBoPy5jb25uZWN0aW9ucyB8fFxuICAgICAgICAgIHBvcnRzLmZpbHRlcigocG9ydCkgPT4gcG9ydC5kaXJlY3Rpb24gPT09IFBvcnREaXJlY3Rpb24uQ09OTkVDVElPTiksXG4gICAgICB9O1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXBwbHkodWltb2RlbCh0YWcsIHByb3BzKSwgbWV0YWRhdGEoR3JhcGhLZXlzLkdSQVBILCBtZXRhKSkodGFyZ2V0KTtcbiAgICAgIHJlZ2lzdGVyV29ya2Zsb3codGFyZ2V0IGFzIENvbnN0cnVjdG9yKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBEZWNvcmF0aW9uLmZvcihHcmFwaEtleXMuR1JBUEgpXG4gICAgLmRlZmluZSh7XG4gICAgICBkZWNvcmF0b3I6IGdyYXBoRGVjb3JhdG9yLFxuICAgICAgYXJnczogW3RhZywgZ3JhcGgsIHByb3BzXSxcbiAgICB9KVxuICAgIC5hcHBseSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9ydChcbiAgZGlyZWN0aW9uOiBQb3J0RGlyZWN0aW9uLFxuICBncmFwaD86IFBhcnRpYWw8T21pdDxHcmFwaFBvcnRNZXRhZGF0YSwgXCJkaXJlY3Rpb25cIj4+XG4pIHtcbiAgZnVuY3Rpb24gcG9ydChcbiAgICBkaXJlY3Rpb246IFBvcnREaXJlY3Rpb24sXG4gICAgZ3JhcGg/OiBQYXJ0aWFsPE9taXQ8R3JhcGhQb3J0TWV0YWRhdGEsIFwiZGlyZWN0aW9uXCI+PlxuICApIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gaW5uZXJQb3J0KHRhcmdldDogb2JqZWN0LCBwcm9wZXJ0eUtleT86IGFueSkge1xuICAgICAgY29uc3QgbWV0YTogR3JhcGhQb3J0TWV0YWRhdGEgPSB7XG4gICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgLi4uZ3JhcGgsXG4gICAgICB9O1xuICAgICAgcmV0dXJuIGFwcGx5KFxuICAgICAgICBwcm9wTWV0YWRhdGEoTWV0YWRhdGEua2V5KEdyYXBoS2V5cy5QT1JULCBwcm9wZXJ0eUtleSksIG1ldGEpXG4gICAgICApKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gRGVjb3JhdGlvbi5mb3IoR3JhcGhLZXlzLlBPUlQpXG4gICAgLmRlZmluZSh7XG4gICAgICBkZWNvcmF0b3I6IHBvcnQsXG4gICAgICBhcmdzOiBbZGlyZWN0aW9uLCBncmFwaF0sXG4gICAgfSlcbiAgICAuYXBwbHkoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlucHV0KGdyYXBoPzogUGFydGlhbDxPbWl0PEdyYXBoUG9ydE1ldGFkYXRhLCBcImRpcmVjdGlvblwiPj4pIHtcbiAgcmV0dXJuIHBvcnQoUG9ydERpcmVjdGlvbi5JTlBVVCwgeyAuLi5ncmFwaCwgc2NoZW1hOiB0cnVlIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb3V0cHV0KGdyYXBoPzogUGFydGlhbDxPbWl0PEdyYXBoUG9ydE1ldGFkYXRhLCBcImRpcmVjdGlvblwiPj4pIHtcbiAgcmV0dXJuIHBvcnQoUG9ydERpcmVjdGlvbi5PVVRQVVQsIHsgLi4uZ3JhcGgsIHNjaGVtYTogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBEZWNsYXJlcyBhIFwiY29ubmVjdGlvblwiIHBvcnQgb24gYSBub2RlIOKAlCBhIHRoaXJkIHBvcnQga2luZCBhbG9uZ3NpZGVcbiAqIGBAaW5wdXQoKWAgYW5kIGBAb3V0cHV0KClgLiBDb25uZWN0aW9uIHBvcnRzIGFyZSByZW5kZXJlZCBvbiB0aGUgKipib3R0b20qKlxuICogc2lkZSBvZiB0aGUgbm9kZSAoaW5wdXRzIGFyZSBvbiB0aGUgbGVmdCwgb3V0cHV0cyBvbiB0aGUgcmlnaHQpLlxuICpcbiAqIENvbm5lY3Rpb25zIGFyZSB0eXBlZCBieSBgY2F0ZWdvcnlgIChlLmcuIGBcIm1vZGVsXCJgLCBgXCJtZW1vcnlcImAsXG4gKiBgXCJ3b3Jrc3BhY2VcImApLiBUaGUgY2F0ZWdvcnkgZGV0ZXJtaW5lcyB0aGUgcG9ydCdzIGNvbG9yIHZpYSB0aGVcbiAqIHtAbGluayByZWdpc3RlckdyYXBoQ2F0ZWdvcnlTdHlsZX0gcmVnaXN0cnkuXG4gKlxuICogVW5saWtlIGBAaW5wdXRgIC8gYEBvdXRwdXRgLCBjb25uZWN0aW9uIHBvcnRzIGRvIE5PVCBjYXJyeSB3b3JrZmxvdyBkYXRhXG4gKiB2YWx1ZXMg4oCUIHRoZXkgcmVwcmVzZW50IHN0cnVjdHVyYWwgZGVwZW5kZW5jaWVzIChlLmcuIGFuIEFnZW50IG5vZGVcbiAqIGNvbm5lY3RpbmcgdG8gYSBNb2RlbCByZXNvdXJjZSwgYSBNZW1vcnkgc3RvcmUsIG9yIGEgV29ya3NwYWNlKS4gTm9kZXMgbWF5XG4gKiBoYXZlIHplcm8gb3IgbW9yZSBgQGNvbm5lY3Rpb24oKWAgcG9ydHMuXG4gKlxuICogVXNhZ2U6XG4gKiBgYGB0c1xuICogQG5vZGUoXCJhaS5hZ2VudFwiLCB7IGtpbmQ6IFwiYWkuYWdlbnRcIiwgY2F0ZWdvcnk6IFwiQWdlbnRcIiB9KVxuICogQG1vZGVsKClcbiAqIGV4cG9ydCBjbGFzcyBBZ2VudE5vZGUgZXh0ZW5kcyBNb2RlbCB7XG4gKiAgIEBjb25uZWN0aW9uKHsgY2F0ZWdvcnk6IFwibW9kZWxcIiwgaGFuZGxlOiBcIm1vZGVsXCIgfSlcbiAqICAgbW9kZWwhOiB1bmtub3duO1xuICpcbiAqICAgQGNvbm5lY3Rpb24oeyBjYXRlZ29yeTogXCJtZW1vcnlcIiwgaGFuZGxlOiBcIm1lbW9yeVwiIH0pXG4gKiAgIG1lbW9yeSE6IHVua25vd247XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbm5lY3Rpb24oZ3JhcGg/OiBQYXJ0aWFsPE9taXQ8R3JhcGhQb3J0TWV0YWRhdGEsIFwiZGlyZWN0aW9uXCI+Pikge1xuICByZXR1cm4gcG9ydChQb3J0RGlyZWN0aW9uLkNPTk5FQ1RJT04sIGdyYXBoKTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYEBwaW5uYWJsZSgpYCBkZWNvcmF0b3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JhcGhQaW5uYWJsZU9wdGlvbnMge1xuICBlbmFibGVkPzogYm9vbGVhbjtcbiAgdHRsTXM/OiBudW1iZXI7XG4gIHN0cmF0ZWd5PzogXCJtYW51YWxcIiB8IFwiYXV0b21hdGljXCIgfCBcImRpc2FibGVkXCI7XG4gIGluY2x1ZGVEZXBlbmRlbmNpZXM/OiBib29sZWFuO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIFBpbm5pbmcgbWV0YWRhdGEgc3RvcmVkIG9uIGEgbm9kZSB2aWEgYEBwaW5uYWJsZSgpYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmFwaFBpbm5pbmdNZXRhZGF0YSB7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIHR0bE1zPzogbnVtYmVyO1xuICBzdHJhdGVneTogXCJtYW51YWxcIiB8IFwiYXV0b21hdGljXCIgfCBcImRpc2FibGVkXCI7XG4gIGluY2x1ZGVEZXBlbmRlbmNpZXM6IGJvb2xlYW47XG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogQ2xhc3MgZGVjb3JhdG9yIHRoYXQgbWFya3MgYSBncmFwaCBub2RlIGFzIHBpbm5hYmxlLlxuICpcbiAqIFRoZSBtZXRhZGF0YSBpcyBzdG9yZWQgaW4gdGhlIG5vZGUncyBgZ3JhcGgubWV0YWRhdGEucGlubmFibGVgIGZpZWxkIHNvIHRoZVxuICogQW5ndWxhciByZW5kZXJlciBhbmQgdGhlIGNvcmUgcGlubmluZyBwb2xpY3kgY2FuIHJlYWQgaXQuXG4gKlxuICogVXNhZ2U6XG4gKiBgYGB0c1xuICogQG5vZGUoXCJhaS5leHBlbnNpdmVDb21wbGV0aW9uXCIsIHsga2luZDogXCJhaS5leHBlbnNpdmVDb21wbGV0aW9uXCIgfSlcbiAqIEBwaW5uYWJsZSh7IHN0cmF0ZWd5OiBcIm1hbnVhbFwiLCBpbmNsdWRlRGVwZW5kZW5jaWVzOiB0cnVlIH0pXG4gKiBleHBvcnQgY2xhc3MgRXhwZW5zaXZlQ29tcGxldGlvbk5vZGUgZXh0ZW5kcyBNb2RlbCB7IC4uLiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBpbm5hYmxlKG9wdGlvbnM6IEdyYXBoUGlubmFibGVPcHRpb25zID0ge30pIHtcbiAgZnVuY3Rpb24gcGlubmFibGUodGFyZ2V0OiBvYmplY3QpIHtcbiAgICBjb25zdCBleGlzdGluZ01ldGEgPSBNZXRhZGF0YS5nZXQoXG4gICAgICB0YXJnZXQgYXMgYW55LFxuICAgICAgR3JhcGhLZXlzLk5PREVcbiAgICApIGFzIEdyYXBoTm9kZU1ldGFkYXRhIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IG1ldGE6IEdyYXBoTm9kZU1ldGFkYXRhID0gZXhpc3RpbmdNZXRhID8/IHt9O1xuICAgIG1ldGEubWV0YWRhdGEgPSB7XG4gICAgICAuLi4obWV0YS5tZXRhZGF0YSA/PyB7fSksXG4gICAgICBwaW5uYWJsZToge1xuICAgICAgICBlbmFibGVkOiBvcHRpb25zLmVuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgICAgdHRsTXM6IG9wdGlvbnMudHRsTXMsXG4gICAgICAgIHN0cmF0ZWd5OiBvcHRpb25zLnN0cmF0ZWd5ID8/IFwibWFudWFsXCIsXG4gICAgICAgIGluY2x1ZGVEZXBlbmRlbmNpZXM6IG9wdGlvbnMuaW5jbHVkZURlcGVuZGVuY2llcyA/PyB0cnVlLFxuICAgICAgICBtZXRhZGF0YTogb3B0aW9ucy5tZXRhZGF0YSxcbiAgICAgIH0gYXMgR3JhcGhQaW5uaW5nTWV0YWRhdGEsXG4gICAgfTtcbiAgICBNZXRhZGF0YS5zZXQodGFyZ2V0IGFzIGFueSwgR3JhcGhLZXlzLk5PREUsIG1ldGEpO1xuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICByZXR1cm4gRGVjb3JhdGlvbi5mb3IoXCJncmFwaC5waW5uYWJsZVwiKVxuICAgIC5kZWZpbmUoe1xuICAgICAgZGVjb3JhdG9yOiBwaW5uYWJsZSBhcyBhbnksXG4gICAgICBhcmdzOiBbb3B0aW9uc10sXG4gICAgfSlcbiAgICAuYXBwbHkoKTtcbn1cbiJdfQ==
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSxvQkFrQkM7QUFDRCxzQkF5QkM7QUFDRCxvQkFnQkM7QUFDRCxzQkFFQztBQUNELHdCQUVDO0FBNEJELGdDQUVDO0FBY0QsNEJBdUJDO0FBM0lELHFEQUE0RjtBQUM1Riw0REFBbUQ7QUFDbkQsaURBQTBEO0FBQzFELDJDQUEyQztBQUMzQywrQ0FBK0Q7QUFDL0QsU0FBZ0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSztJQUNsQyxTQUFTLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUs7UUFDM0IsTUFBTSxJQUFJLEdBQUc7WUFDVCxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksSUFBSSxHQUFHO1lBQ3hCLEdBQUcsS0FBSztTQUNYLENBQUM7UUFDRixPQUFPLFNBQVMsU0FBUyxDQUFDLE1BQU07WUFDNUIsTUFBTSxNQUFNLEdBQUcsSUFBQSxrQkFBSyxFQUFDLElBQUEsdUJBQU8sRUFBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsSUFBQSxxQkFBUSxFQUFDLHdCQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEYsSUFBQSwwQkFBWSxFQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JCLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQztJQUNOLENBQUM7SUFDRCxPQUFPLHVCQUFVLENBQUMsR0FBRyxDQUFDLHdCQUFTLENBQUMsSUFBSSxDQUFDO1NBQ2hDLE1BQU0sQ0FBQztRQUNSLFNBQVMsRUFBRSxJQUFJO1FBQ2YsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUM7S0FDNUIsQ0FBQztTQUNHLEtBQUssRUFBRSxDQUFDO0FBQ2pCLENBQUM7QUFDRCxTQUFnQixLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLO0lBQ25DLFNBQVMsY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSztRQUNyQyxPQUFPLFNBQVMsVUFBVSxDQUFDLE1BQU07WUFDN0IsTUFBTSxLQUFLLEdBQUcsSUFBQSx3QkFBWSxFQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25DLE1BQU0sSUFBSSxHQUFHO2dCQUNULEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNoQixJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksSUFBSSxHQUFHO2dCQUN4QixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU07b0JBQ2pCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssNEJBQWEsQ0FBQyxLQUFLLENBQUM7Z0JBQ2xFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTztvQkFDbkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyw0QkFBYSxDQUFDLE1BQU0sQ0FBQztnQkFDbkUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXO29CQUMzQixLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLDRCQUFhLENBQUMsVUFBVSxDQUFDO2FBQzFFLENBQUM7WUFDRixNQUFNLE1BQU0sR0FBRyxJQUFBLGtCQUFLLEVBQUMsSUFBQSx1QkFBTyxFQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFBLHFCQUFRLEVBQUMsd0JBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuRixJQUFBLDhCQUFnQixFQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pCLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQztJQUNOLENBQUM7SUFDRCxPQUFPLHVCQUFVLENBQUMsR0FBRyxDQUFDLHdCQUFTLENBQUMsS0FBSyxDQUFDO1NBQ2pDLE1BQU0sQ0FBQztRQUNSLFNBQVMsRUFBRSxjQUFjO1FBQ3pCLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO0tBQzVCLENBQUM7U0FDRyxLQUFLLEVBQUUsQ0FBQztBQUNqQixDQUFDO0FBQ0QsU0FBZ0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLO0lBQ2pDLFNBQVMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLO1FBQzFCLE9BQU8sU0FBUyxTQUFTLENBQUMsTUFBTSxFQUFFLFdBQVc7WUFDekMsTUFBTSxJQUFJLEdBQUc7Z0JBQ1QsU0FBUztnQkFDVCxHQUFHLEtBQUs7YUFDWCxDQUFDO1lBQ0YsT0FBTyxJQUFBLGtCQUFLLEVBQUMsSUFBQSx5QkFBWSxFQUFDLHFCQUFRLENBQUMsR0FBRyxDQUFDLHdCQUFTLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3JHLENBQUMsQ0FBQztJQUNOLENBQUM7SUFDRCxPQUFPLHVCQUFVLENBQUMsR0FBRyxDQUFDLHdCQUFTLENBQUMsSUFBSSxDQUFDO1NBQ2hDLE1BQU0sQ0FBQztRQUNSLFNBQVMsRUFBRSxJQUFJO1FBQ2YsSUFBSSxFQUFFLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQztLQUMzQixDQUFDO1NBQ0csS0FBSyxFQUFFLENBQUM7QUFDakIsQ0FBQztBQUNELFNBQWdCLEtBQUssQ0FBQyxLQUFLO0lBQ3ZCLE9BQU8sSUFBSSxDQUFDLDRCQUFhLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUNELFNBQWdCLE1BQU0sQ0FBQyxLQUFLO0lBQ3hCLE9BQU8sSUFBSSxDQUFDLDRCQUFhLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxLQUFLO0lBQzVCLE9BQU8sSUFBSSxDQUFDLDRCQUFhLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFDRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxTQUFnQixRQUFRLENBQUMsT0FBTyxHQUFHLEVBQUU7SUFDakMsU0FBUyxRQUFRLENBQUMsTUFBTTtRQUNwQixNQUFNLFlBQVksR0FBRyxxQkFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsd0JBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxNQUFNLElBQUksR0FBRyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUc7WUFDWixHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDeEIsUUFBUSxFQUFFO2dCQUNOLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUk7Z0JBQ2hDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztnQkFDcEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUksUUFBUTtnQkFDdEMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixJQUFJLElBQUk7Z0JBQ3hELFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTthQUM3QjtTQUNKLENBQUM7UUFDRixxQkFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsd0JBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0MsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUNELE9BQU8sdUJBQVUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7U0FDbEMsTUFBTSxDQUFDO1FBQ1IsU0FBUyxFQUFFLFFBQVE7UUFDbkIsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDO0tBQ2xCLENBQUM7U0FDRyxLQUFLLEVBQUUsQ0FBQztBQUNqQixDQUFDO0FBQ0QsMHBhQUEwcGEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhcHBseSwgRGVjb3JhdGlvbiwgTWV0YWRhdGEsIG1ldGFkYXRhLCBwcm9wTWV0YWRhdGEsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyB1aW1vZGVsIH0gZnJvbSBcIi4vLi4vbW9kZWwvZGVjb3JhdG9ycy5qc1wiO1xuaW1wb3J0IHsgR3JhcGhLZXlzLCBQb3J0RGlyZWN0aW9uIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyBncmFwaFBvcnRzT2YgfSBmcm9tIFwiLi9yZWFkZXIuanNcIjtcbmltcG9ydCB7IHJlZ2lzdGVyTm9kZSwgcmVnaXN0ZXJXb3JrZmxvdyB9IGZyb20gXCIuL3JlZ2lzdHJ5LmpzXCI7XG5leHBvcnQgZnVuY3Rpb24gbm9kZSh0YWcsIGdyYXBoLCBwcm9wcykge1xuICAgIGZ1bmN0aW9uIG5vZGUodGFnLCBncmFwaCwgcHJvcHMpIHtcbiAgICAgICAgY29uc3QgbWV0YSA9IHtcbiAgICAgICAgICAgIGtpbmQ6IGdyYXBoPy5raW5kIHx8IHRhZyxcbiAgICAgICAgICAgIC4uLmdyYXBoLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gaW5uZXJOb2RlKHRhcmdldCkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXBwbHkodWltb2RlbCh0YWcsIHByb3BzKSwgbWV0YWRhdGEoR3JhcGhLZXlzLk5PREUsIG1ldGEpKSh0YXJnZXQpO1xuICAgICAgICAgICAgcmVnaXN0ZXJOb2RlKHRhcmdldCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gRGVjb3JhdGlvbi5mb3IoR3JhcGhLZXlzLk5PREUpXG4gICAgICAgIC5kZWZpbmUoe1xuICAgICAgICBkZWNvcmF0b3I6IG5vZGUsXG4gICAgICAgIGFyZ3M6IFt0YWcsIGdyYXBoLCBwcm9wc10sXG4gICAgfSlcbiAgICAgICAgLmFwcGx5KCk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ3JhcGgodGFnLCBncmFwaCwgcHJvcHMpIHtcbiAgICBmdW5jdGlvbiBncmFwaERlY29yYXRvcih0YWcsIGdyYXBoLCBwcm9wcykge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gaW5uZXJHcmFwaCh0YXJnZXQpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvcnRzID0gZ3JhcGhQb3J0c09mKHRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCBtZXRhID0ge1xuICAgICAgICAgICAgICAgIC4uLihncmFwaCB8fCB7fSksXG4gICAgICAgICAgICAgICAga2luZDogZ3JhcGg/LmtpbmQgfHwgdGFnLFxuICAgICAgICAgICAgICAgIGlucHV0czogZ3JhcGg/LmlucHV0cyB8fFxuICAgICAgICAgICAgICAgICAgICBwb3J0cy5maWx0ZXIoKHBvcnQpID0+IHBvcnQuZGlyZWN0aW9uID09PSBQb3J0RGlyZWN0aW9uLklOUFVUKSxcbiAgICAgICAgICAgICAgICBvdXRwdXRzOiBncmFwaD8ub3V0cHV0cyB8fFxuICAgICAgICAgICAgICAgICAgICBwb3J0cy5maWx0ZXIoKHBvcnQpID0+IHBvcnQuZGlyZWN0aW9uID09PSBQb3J0RGlyZWN0aW9uLk9VVFBVVCksXG4gICAgICAgICAgICAgICAgY29ubmVjdGlvbnM6IGdyYXBoPy5jb25uZWN0aW9ucyB8fFxuICAgICAgICAgICAgICAgICAgICBwb3J0cy5maWx0ZXIoKHBvcnQpID0+IHBvcnQuZGlyZWN0aW9uID09PSBQb3J0RGlyZWN0aW9uLkNPTk5FQ1RJT04pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGFwcGx5KHVpbW9kZWwodGFnLCBwcm9wcyksIG1ldGFkYXRhKEdyYXBoS2V5cy5HUkFQSCwgbWV0YSkpKHRhcmdldCk7XG4gICAgICAgICAgICByZWdpc3RlcldvcmtmbG93KHRhcmdldCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gRGVjb3JhdGlvbi5mb3IoR3JhcGhLZXlzLkdSQVBIKVxuICAgICAgICAuZGVmaW5lKHtcbiAgICAgICAgZGVjb3JhdG9yOiBncmFwaERlY29yYXRvcixcbiAgICAgICAgYXJnczogW3RhZywgZ3JhcGgsIHByb3BzXSxcbiAgICB9KVxuICAgICAgICAuYXBwbHkoKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwb3J0KGRpcmVjdGlvbiwgZ3JhcGgpIHtcbiAgICBmdW5jdGlvbiBwb3J0KGRpcmVjdGlvbiwgZ3JhcGgpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGlubmVyUG9ydCh0YXJnZXQsIHByb3BlcnR5S2V5KSB7XG4gICAgICAgICAgICBjb25zdCBtZXRhID0ge1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICAgICAgICAuLi5ncmFwaCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gYXBwbHkocHJvcE1ldGFkYXRhKE1ldGFkYXRhLmtleShHcmFwaEtleXMuUE9SVCwgcHJvcGVydHlLZXkpLCBtZXRhKSkodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBEZWNvcmF0aW9uLmZvcihHcmFwaEtleXMuUE9SVClcbiAgICAgICAgLmRlZmluZSh7XG4gICAgICAgIGRlY29yYXRvcjogcG9ydCxcbiAgICAgICAgYXJnczogW2RpcmVjdGlvbiwgZ3JhcGhdLFxuICAgIH0pXG4gICAgICAgIC5hcHBseSgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlucHV0KGdyYXBoKSB7XG4gICAgcmV0dXJuIHBvcnQoUG9ydERpcmVjdGlvbi5JTlBVVCwgeyAuLi5ncmFwaCwgc2NoZW1hOiB0cnVlIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG91dHB1dChncmFwaCkge1xuICAgIHJldHVybiBwb3J0KFBvcnREaXJlY3Rpb24uT1VUUFVULCB7IC4uLmdyYXBoLCBzY2hlbWE6IHRydWUgfSk7XG59XG4vKipcbiAqIERlY2xhcmVzIGEgXCJjb25uZWN0aW9uXCIgcG9ydCBvbiBhIG5vZGUg4oCUIGEgdGhpcmQgcG9ydCBraW5kIGFsb25nc2lkZVxuICogYEBpbnB1dCgpYCBhbmQgYEBvdXRwdXQoKWAuIENvbm5lY3Rpb24gcG9ydHMgYXJlIHJlbmRlcmVkIG9uIHRoZSAqKmJvdHRvbSoqXG4gKiBzaWRlIG9mIHRoZSBub2RlIChpbnB1dHMgYXJlIG9uIHRoZSBsZWZ0LCBvdXRwdXRzIG9uIHRoZSByaWdodCkuXG4gKlxuICogQ29ubmVjdGlvbnMgYXJlIHR5cGVkIGJ5IGBjYXRlZ29yeWAgKGUuZy4gYFwibW9kZWxcImAsIGBcIm1lbW9yeVwiYCxcbiAqIGBcIndvcmtzcGFjZVwiYCkuIFRoZSBjYXRlZ29yeSBkZXRlcm1pbmVzIHRoZSBwb3J0J3MgY29sb3IgdmlhIHRoZVxuICoge0BsaW5rIHJlZ2lzdGVyR3JhcGhDYXRlZ29yeVN0eWxlfSByZWdpc3RyeS5cbiAqXG4gKiBVbmxpa2UgYEBpbnB1dGAgLyBgQG91dHB1dGAsIGNvbm5lY3Rpb24gcG9ydHMgZG8gTk9UIGNhcnJ5IHdvcmtmbG93IGRhdGFcbiAqIHZhbHVlcyDigJQgdGhleSByZXByZXNlbnQgc3RydWN0dXJhbCBkZXBlbmRlbmNpZXMgKGUuZy4gYW4gQWdlbnQgbm9kZVxuICogY29ubmVjdGluZyB0byBhIE1vZGVsIHJlc291cmNlLCBhIE1lbW9yeSBzdG9yZSwgb3IgYSBXb3Jrc3BhY2UpLiBOb2RlcyBtYXlcbiAqIGhhdmUgemVybyBvciBtb3JlIGBAY29ubmVjdGlvbigpYCBwb3J0cy5cbiAqXG4gKiBVc2FnZTpcbiAqIGBgYHRzXG4gKiBAbm9kZShcImFpLmFnZW50XCIsIHsga2luZDogXCJhaS5hZ2VudFwiLCBjYXRlZ29yeTogXCJBZ2VudFwiIH0pXG4gKiBAbW9kZWwoKVxuICogZXhwb3J0IGNsYXNzIEFnZW50Tm9kZSBleHRlbmRzIE1vZGVsIHtcbiAqICAgQGNvbm5lY3Rpb24oeyBjYXRlZ29yeTogXCJtb2RlbFwiLCBoYW5kbGU6IFwibW9kZWxcIiB9KVxuICogICBtb2RlbCE6IHVua25vd247XG4gKlxuICogICBAY29ubmVjdGlvbih7IGNhdGVnb3J5OiBcIm1lbW9yeVwiLCBoYW5kbGU6IFwibWVtb3J5XCIgfSlcbiAqICAgbWVtb3J5ITogdW5rbm93bjtcbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29ubmVjdGlvbihncmFwaCkge1xuICAgIHJldHVybiBwb3J0KFBvcnREaXJlY3Rpb24uQ09OTkVDVElPTiwgZ3JhcGgpO1xufVxuLyoqXG4gKiBDbGFzcyBkZWNvcmF0b3IgdGhhdCBtYXJrcyBhIGdyYXBoIG5vZGUgYXMgcGlubmFibGUuXG4gKlxuICogVGhlIG1ldGFkYXRhIGlzIHN0b3JlZCBpbiB0aGUgbm9kZSdzIGBncmFwaC5tZXRhZGF0YS5waW5uYWJsZWAgZmllbGQgc28gdGhlXG4gKiBBbmd1bGFyIHJlbmRlcmVyIGFuZCB0aGUgY29yZSBwaW5uaW5nIHBvbGljeSBjYW4gcmVhZCBpdC5cbiAqXG4gKiBVc2FnZTpcbiAqIGBgYHRzXG4gKiBAbm9kZShcImFpLmV4cGVuc2l2ZUNvbXBsZXRpb25cIiwgeyBraW5kOiBcImFpLmV4cGVuc2l2ZUNvbXBsZXRpb25cIiB9KVxuICogQHBpbm5hYmxlKHsgc3RyYXRlZ3k6IFwibWFudWFsXCIsIGluY2x1ZGVEZXBlbmRlbmNpZXM6IHRydWUgfSlcbiAqIGV4cG9ydCBjbGFzcyBFeHBlbnNpdmVDb21wbGV0aW9uTm9kZSBleHRlbmRzIE1vZGVsIHsgLi4uIH1cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGlubmFibGUob3B0aW9ucyA9IHt9KSB7XG4gICAgZnVuY3Rpb24gcGlubmFibGUodGFyZ2V0KSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTWV0YSA9IE1ldGFkYXRhLmdldCh0YXJnZXQsIEdyYXBoS2V5cy5OT0RFKTtcbiAgICAgICAgY29uc3QgbWV0YSA9IGV4aXN0aW5nTWV0YSA/PyB7fTtcbiAgICAgICAgbWV0YS5tZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIC4uLihtZXRhLm1ldGFkYXRhID8/IHt9KSxcbiAgICAgICAgICAgIHBpbm5hYmxlOiB7XG4gICAgICAgICAgICAgICAgZW5hYmxlZDogb3B0aW9ucy5lbmFibGVkID8/IHRydWUsXG4gICAgICAgICAgICAgICAgdHRsTXM6IG9wdGlvbnMudHRsTXMsXG4gICAgICAgICAgICAgICAgc3RyYXRlZ3k6IG9wdGlvbnMuc3RyYXRlZ3kgPz8gXCJtYW51YWxcIixcbiAgICAgICAgICAgICAgICBpbmNsdWRlRGVwZW5kZW5jaWVzOiBvcHRpb25zLmluY2x1ZGVEZXBlbmRlbmNpZXMgPz8gdHJ1ZSxcbiAgICAgICAgICAgICAgICBtZXRhZGF0YTogb3B0aW9ucy5tZXRhZGF0YSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIE1ldGFkYXRhLnNldCh0YXJnZXQsIEdyYXBoS2V5cy5OT0RFLCBtZXRhKTtcbiAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9XG4gICAgcmV0dXJuIERlY29yYXRpb24uZm9yKFwiZ3JhcGgucGlubmFibGVcIilcbiAgICAgICAgLmRlZmluZSh7XG4gICAgICAgIGRlY29yYXRvcjogcGlubmFibGUsXG4gICAgICAgIGFyZ3M6IFtvcHRpb25zXSxcbiAgICB9KVxuICAgICAgICAuYXBwbHkoKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVpHVmpiM0poZEc5eWN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1TDNOeVl5OW5jbUZ3YUM5a1pXTnZjbUYwYjNKekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNSVUZEVEN4TFFVRkxMRVZCUTB3c1ZVRkJWU3hGUVVOV0xGRkJRVkVzUlVGRFVpeFJRVUZSTEVWQlExSXNXVUZCV1N4SFFVTmlMRTFCUVUwc2MwSkJRWE5DTEVOQlFVTTdRVUZGT1VJc1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGQlJTeHBRMEZCTkVJN1FVRkRPVU1zVDBGQlR5eEZRVUZGTEZOQlFWTXNSVUZCUlN4aFFVRmhMRVZCUVVVc2RVSkJRVzlDTzBGQlJYWkVMRTlCUVU4c1JVRkJSU3haUVVGWkxFVkJRVVVzYjBKQlFXbENPMEZCUTNoRExFOUJRVThzUlVGQlJTeFpRVUZaTEVWQlFVVXNaMEpCUVdkQ0xFVkJRVVVzYzBKQlFXMUNPMEZCUlRWRUxFMUJRVTBzVlVGQlZTeEpRVUZKTEVOQlEyeENMRWRCUVZrc1JVRkRXaXhMUVVGNVFpeEZRVU42UWl4TFFVRXlRanRKUVVVelFpeFRRVUZUTEVsQlFVa3NRMEZEV0N4SFFVRlpMRVZCUTFvc1MwRkJlVUlzUlVGRGVrSXNTMEZCTWtJN1VVRkZNMElzVFVGQlRTeEpRVUZKTEVkQlFYTkNPMWxCUXpsQ0xFbEJRVWtzUlVGQlJTeExRVUZMTEVWQlFVVXNTVUZCU1N4SlFVRkpMRWRCUVVjN1dVRkRlRUlzUjBGQlJ5eExRVUZMTzFOQlExUXNRMEZCUXp0UlFVTkdMRTlCUVU4c1UwRkJVeXhUUVVGVExFTkJRVU1zVFVGQll6dFpRVU4wUXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NSVUZCUlN4TFFVRkxMRU5CUVVNc1JVRkJSU3hSUVVGUkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFsQlEyeEdMRmxCUVZrc1EwRkJReXhOUVVGeFFpeERRVUZETEVOQlFVTTdXVUZEY0VNc1QwRkJUeXhOUVVGTkxFTkJRVU03VVVGRGFFSXNRMEZCUXl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRUxFOUJRVThzVlVGQlZTeERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRE8xTkJRMnhETEUxQlFVMHNRMEZCUXp0UlFVTk9MRk5CUVZNc1JVRkJSU3hKUVVGSk8xRkJRMllzU1VGQlNTeEZRVUZGTEVOQlFVTXNSMEZCUnl4RlFVRkZMRXRCUVVzc1JVRkJSU3hMUVVGTExFTkJRVU03UzBGRE1VSXNRMEZCUXp0VFFVTkVMRXRCUVVzc1JVRkJSU3hEUVVGRE8wRkJRMklzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4TFFVRkxMRU5CUTI1Q0xFZEJRVmtzUlVGRFdpeExRVUUyUWl4RlFVTTNRaXhMUVVFeVFqdEpRVVV6UWl4VFFVRlRMR05CUVdNc1EwRkRja0lzUjBGQldTeEZRVU5hTEV0QlFUWkNMRVZCUXpkQ0xFdEJRVEpDTzFGQlJUTkNMRTlCUVU4c1UwRkJVeXhWUVVGVkxFTkJRVU1zVFVGQll6dFpRVU4yUXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhaUVVGWkxFTkJRVU1zVFVGQllTeERRVUZETEVOQlFVTTdXVUZETVVNc1RVRkJUU3hKUVVGSkxFZEJRVEJDTzJkQ1FVTnNReXhIUVVGSExFTkJRVU1zUzBGQlN5eEpRVUZKTEVWQlFVVXNRMEZCUXp0blFrRkRhRUlzU1VGQlNTeEZRVUZGTEV0QlFVc3NSVUZCUlN4SlFVRkpMRWxCUVVrc1IwRkJSenRuUWtGRGVFSXNUVUZCVFN4RlFVTktMRXRCUVVzc1JVRkJSU3hOUVVGTk8yOUNRVU5pTEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRXRCUVVzc1lVRkJZU3hEUVVGRExFdEJRVXNzUTBGQlF6dG5Ra0ZEYUVVc1QwRkJUeXhGUVVOTUxFdEJRVXNzUlVGQlJTeFBRVUZQTzI5Q1FVTmtMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFdEJRVXNzWVVGQllTeERRVUZETEUxQlFVMHNRMEZCUXp0blFrRkRha1VzVjBGQlZ5eEZRVU5VTEV0QlFVc3NSVUZCUlN4WFFVRlhPMjlDUVVOc1FpeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4TFFVRkxMR0ZCUVdFc1EwRkJReXhWUVVGVkxFTkJRVU03WVVGRGRFVXNRMEZCUXp0WlFVTkdMRTFCUVUwc1RVRkJUU3hIUVVGSExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RlFVRkZMRXRCUVVzc1EwRkJReXhGUVVGRkxGRkJRVkVzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdXVUZEYmtZc1owSkJRV2RDTEVOQlFVTXNUVUZCY1VJc1EwRkJReXhEUVVGRE8xbEJRM2hETEU5QlFVOHNUVUZCVFN4RFFVRkRPMUZCUTJoQ0xFTkJRVU1zUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkN4UFFVRlBMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXp0VFFVTnVReXhOUVVGTkxFTkJRVU03VVVGRFRpeFRRVUZUTEVWQlFVVXNZMEZCWXp0UlFVTjZRaXhKUVVGSkxFVkJRVVVzUTBGQlF5eEhRVUZITEVWQlFVVXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJRenRMUVVNeFFpeERRVUZETzFOQlEwUXNTMEZCU3l4RlFVRkZMRU5CUVVNN1FVRkRZaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEVsQlFVa3NRMEZEYkVJc1UwRkJkMElzUlVGRGVFSXNTMEZCY1VRN1NVRkZja1FzVTBGQlV5eEpRVUZKTEVOQlExZ3NVMEZCZDBJc1JVRkRlRUlzUzBGQmNVUTdVVUZGY2tRc1QwRkJUeXhUUVVGVExGTkJRVk1zUTBGQlF5eE5RVUZqTEVWQlFVVXNWMEZCYVVJN1dVRkRla1FzVFVGQlRTeEpRVUZKTEVkQlFYTkNPMmRDUVVNNVFpeFRRVUZUTzJkQ1FVTlVMRWRCUVVjc1MwRkJTenRoUVVOVUxFTkJRVU03V1VGRFJpeFBRVUZQTEV0QlFVc3NRMEZEVml4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RlFVRkZMRmRCUVZjc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU01UkN4RFFVRkRMRTFCUVUwc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dFJRVU42UWl4RFFVRkRMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzVDBGQlR5eFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU03VTBGRGJFTXNUVUZCVFN4RFFVRkRPMUZCUTA0c1UwRkJVeXhGUVVGRkxFbEJRVWs3VVVGRFppeEpRVUZKTEVWQlFVVXNRMEZCUXl4VFFVRlRMRVZCUVVVc1MwRkJTeXhEUVVGRE8wdEJRM3BDTEVOQlFVTTdVMEZEUkN4TFFVRkxMRVZCUVVVc1EwRkJRenRCUVVOaUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNTMEZCU3l4RFFVRkRMRXRCUVhGRU8wbEJRM3BGTEU5QlFVOHNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeEhRVUZITEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU12UkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxFMUJRVTBzUTBGQlF5eExRVUZ4UkR0SlFVTXhSU3hQUVVGUExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNUVUZCVFN4RlFVRkZMRVZCUVVVc1IwRkJSeXhMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRhRVVzUTBGQlF6dEJRVVZFT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRIUVRCQ1J6dEJRVU5JTEUxQlFVMHNWVUZCVlN4VlFVRlZMRU5CUVVNc1MwRkJjVVE3U1VGRE9VVXNUMEZCVHl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExGVkJRVlVzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVTXZReXhEUVVGRE8wRkJkMEpFT3pzN096czdPenM3T3pzN1IwRlpSenRCUVVOSUxFMUJRVTBzVlVGQlZTeFJRVUZSTEVOQlFVTXNWVUZCWjBNc1JVRkJSVHRKUVVONlJDeFRRVUZUTEZGQlFWRXNRMEZCUXl4TlFVRmpPMUZCUXpsQ0xFMUJRVTBzV1VGQldTeEhRVUZITEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUXk5Q0xFMUJRV0VzUlVGRFlpeFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVTnJRaXhEUVVGRE8xRkJRMjVETEUxQlFVMHNTVUZCU1N4SFFVRnpRaXhaUVVGWkxFbEJRVWtzUlVGQlJTeERRVUZETzFGQlEyNUVMRWxCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWM3V1VGRFpDeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTU3hGUVVGRkxFTkJRVU03V1VGRGVFSXNVVUZCVVN4RlFVRkZPMmRDUVVOU0xFOUJRVThzUlVGQlJTeFBRVUZQTEVOQlFVTXNUMEZCVHl4SlFVRkpMRWxCUVVrN1owSkJRMmhETEV0QlFVc3NSVUZCUlN4UFFVRlBMRU5CUVVNc1MwRkJTenRuUWtGRGNFSXNVVUZCVVN4RlFVRkZMRTlCUVU4c1EwRkJReXhSUVVGUkxFbEJRVWtzVVVGQlVUdG5Ra0ZEZEVNc2JVSkJRVzFDTEVWQlFVVXNUMEZCVHl4RFFVRkRMRzFDUVVGdFFpeEpRVUZKTEVsQlFVazdaMEpCUTNoRUxGRkJRVkVzUlVGQlJTeFBRVUZQTEVOQlFVTXNVVUZCVVR0aFFVTklPMU5CUXpGQ0xFTkJRVU03VVVGRFJpeFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVdFc1JVRkJSU3hUUVVGVExFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTJ4RUxFOUJRVThzVFVGQlRTeERRVUZETzBsQlEyaENMRU5CUVVNN1NVRkZSQ3hQUVVGUExGVkJRVlVzUTBGQlF5eEhRVUZITEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU03VTBGRGNFTXNUVUZCVFN4RFFVRkRPMUZCUTA0c1UwRkJVeXhGUVVGRkxGRkJRV1U3VVVGRE1VSXNTVUZCU1N4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRE8wdEJRMmhDTEVOQlFVTTdVMEZEUkN4TFFVRkxMRVZCUVVVc1EwRkJRenRCUVVOaUxFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZTF4dUlDQmhjSEJzZVN4Y2JpQWdSR1ZqYjNKaGRHbHZiaXhjYmlBZ1RXVjBZV1JoZEdFc1hHNGdJRzFsZEdGa1lYUmhMRnh1SUNCd2NtOXdUV1YwWVdSaGRHRXNYRzU5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdWamIzSmhkR2x2Ymx3aU8xeHVhVzF3YjNKMElIUjVjR1VnZXlCRGIyNXpkSEoxWTNSdmNpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR1ZqYjNKaGRHbHZibHdpTzF4dWFXMXdiM0owSUhzZ2RXbHRiMlJsYkNCOUlHWnliMjBnWENJdUxpOXRiMlJsYkM5a1pXTnZjbUYwYjNKelhDSTdYRzVwYlhCdmNuUWdleUJIY21Gd2FFdGxlWE1zSUZCdmNuUkVhWEpsWTNScGIyNGdmU0JtY205dElGd2lMaTlqYjI1emRHRnVkSE5jSWp0Y2JtbHRjRzl5ZENCMGVYQmxJSHNnUjNKaGNHaE9iMlJsVFdWMFlXUmhkR0VzSUVkeVlYQm9VRzl5ZEUxbGRHRmtZWFJoTENCSGNtRndhRmR2Y210bWJHOTNUV1YwWVdSaGRHRWdmU0JtY205dElGd2lMaTlqYjI1emRHRnVkSE5jSWp0Y2JtbHRjRzl5ZENCN0lHZHlZWEJvVUc5eWRITlBaaUI5SUdaeWIyMGdYQ0l1TDNKbFlXUmxjbHdpTzF4dWFXMXdiM0owSUhzZ2NtVm5hWE4wWlhKT2IyUmxMQ0J5WldkcGMzUmxjbGR2Y210bWJHOTNJSDBnWm5KdmJTQmNJaTR2Y21WbmFYTjBjbmxjSWp0Y2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHNXZaR1VvWEc0Z0lIUmhaejg2SUhOMGNtbHVaeXhjYmlBZ1ozSmhjR2cvT2lCSGNtRndhRTV2WkdWTlpYUmhaR0YwWVN4Y2JpQWdjSEp2Y0hNL09pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytYRzRwSUh0Y2JpQWdablZ1WTNScGIyNGdibTlrWlNoY2JpQWdJQ0IwWVdjL09pQnpkSEpwYm1jc1hHNGdJQ0FnWjNKaGNHZy9PaUJIY21Gd2FFNXZaR1ZOWlhSaFpHRjBZU3hjYmlBZ0lDQndjbTl3Y3o4NklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNWNiaUFnS1NCN1hHNGdJQ0FnWTI5dWMzUWdiV1YwWVRvZ1IzSmhjR2hPYjJSbFRXVjBZV1JoZEdFZ1BTQjdYRzRnSUNBZ0lDQnJhVzVrT2lCbmNtRndhRDh1YTJsdVpDQjhmQ0IwWVdjc1hHNGdJQ0FnSUNBdUxpNW5jbUZ3YUN4Y2JpQWdJQ0I5TzF4dUlDQWdJSEpsZEhWeWJpQm1kVzVqZEdsdmJpQnBibTVsY2s1dlpHVW9kR0Z5WjJWME9pQnZZbXBsWTNRcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhKbGMzVnNkQ0E5SUdGd2NHeDVLSFZwYlc5a1pXd29kR0ZuTENCd2NtOXdjeWtzSUcxbGRHRmtZWFJoS0VkeVlYQm9TMlY1Y3k1T1QwUkZMQ0J0WlhSaEtTa29kR0Z5WjJWMEtUdGNiaUFnSUNBZ0lISmxaMmx6ZEdWeVRtOWtaU2gwWVhKblpYUWdZWE1nUTI5dWMzUnlkV04wYjNJcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmlBZ0lDQjlPMXh1SUNCOVhHNWNiaUFnY21WMGRYSnVJRVJsWTI5eVlYUnBiMjR1Wm05eUtFZHlZWEJvUzJWNWN5NU9UMFJGS1Z4dUlDQWdJQzVrWldacGJtVW9lMXh1SUNBZ0lDQWdaR1ZqYjNKaGRHOXlPaUJ1YjJSbExGeHVJQ0FnSUNBZ1lYSm5jem9nVzNSaFp5d2daM0poY0dnc0lIQnliM0J6WFN4Y2JpQWdJQ0I5S1Z4dUlDQWdJQzVoY0hCc2VTZ3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1ozSmhjR2dvWEc0Z0lIUmhaejg2SUhOMGNtbHVaeXhjYmlBZ1ozSmhjR2cvT2lCSGNtRndhRmR2Y210bWJHOTNUV1YwWVdSaGRHRXNYRzRnSUhCeWIzQnpQem9nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGx4dUtTQjdYRzRnSUdaMWJtTjBhVzl1SUdkeVlYQm9SR1ZqYjNKaGRHOXlLRnh1SUNBZ0lIUmhaejg2SUhOMGNtbHVaeXhjYmlBZ0lDQm5jbUZ3YUQ4NklFZHlZWEJvVjI5eWEyWnNiM2ROWlhSaFpHRjBZU3hjYmlBZ0lDQndjbTl3Y3o4NklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNWNiaUFnS1NCN1hHNGdJQ0FnY21WMGRYSnVJR1oxYm1OMGFXOXVJR2x1Ym1WeVIzSmhjR2dvZEdGeVoyVjBPaUJ2WW1wbFkzUXBJSHRjYmlBZ0lDQWdJR052Ym5OMElIQnZjblJ6SUQwZ1ozSmhjR2hRYjNKMGMwOW1LSFJoY21kbGRDQmhjeUJoYm5rcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnYldWMFlUb2dSM0poY0doWGIzSnJabXh2ZDAxbGRHRmtZWFJoSUQwZ2UxeHVJQ0FnSUNBZ0lDQXVMaTRvWjNKaGNHZ2dmSHdnZTMwcExGeHVJQ0FnSUNBZ0lDQnJhVzVrT2lCbmNtRndhRDh1YTJsdVpDQjhmQ0IwWVdjc1hHNGdJQ0FnSUNBZ0lHbHVjSFYwY3pwY2JpQWdJQ0FnSUNBZ0lDQm5jbUZ3YUQ4dWFXNXdkWFJ6SUh4OFhHNGdJQ0FnSUNBZ0lDQWdjRzl5ZEhNdVptbHNkR1Z5S0Nod2IzSjBLU0E5UGlCd2IzSjBMbVJwY21WamRHbHZiaUE5UFQwZ1VHOXlkRVJwY21WamRHbHZiaTVKVGxCVlZDa3NYRzRnSUNBZ0lDQWdJRzkxZEhCMWRITTZYRzRnSUNBZ0lDQWdJQ0FnWjNKaGNHZy9MbTkxZEhCMWRITWdmSHhjYmlBZ0lDQWdJQ0FnSUNCd2IzSjBjeTVtYVd4MFpYSW9LSEJ2Y25RcElEMCtJSEJ2Y25RdVpHbHlaV04wYVc5dUlEMDlQU0JRYjNKMFJHbHlaV04wYVc5dUxrOVZWRkJWVkNrc1hHNGdJQ0FnSUNBZ0lHTnZibTVsWTNScGIyNXpPbHh1SUNBZ0lDQWdJQ0FnSUdkeVlYQm9QeTVqYjI1dVpXTjBhVzl1Y3lCOGZGeHVJQ0FnSUNBZ0lDQWdJSEJ2Y25SekxtWnBiSFJsY2lnb2NHOXlkQ2tnUFQ0Z2NHOXlkQzVrYVhKbFkzUnBiMjRnUFQwOUlGQnZjblJFYVhKbFkzUnBiMjR1UTA5T1RrVkRWRWxQVGlrc1hHNGdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ1kyOXVjM1FnY21WemRXeDBJRDBnWVhCd2JIa29kV2x0YjJSbGJDaDBZV2NzSUhCeWIzQnpLU3dnYldWMFlXUmhkR0VvUjNKaGNHaExaWGx6TGtkU1FWQklMQ0J0WlhSaEtTa29kR0Z5WjJWMEtUdGNiaUFnSUNBZ0lISmxaMmx6ZEdWeVYyOXlhMlpzYjNjb2RHRnlaMlYwSUdGeklFTnZibk4wY25WamRHOXlLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJQ0FnZlR0Y2JpQWdmVnh1WEc0Z0lISmxkSFZ5YmlCRVpXTnZjbUYwYVc5dUxtWnZjaWhIY21Gd2FFdGxlWE11UjFKQlVFZ3BYRzRnSUNBZ0xtUmxabWx1WlNoN1hHNGdJQ0FnSUNCa1pXTnZjbUYwYjNJNklHZHlZWEJvUkdWamIzSmhkRzl5TEZ4dUlDQWdJQ0FnWVhKbmN6b2dXM1JoWnl3Z1ozSmhjR2dzSUhCeWIzQnpYU3hjYmlBZ0lDQjlLVnh1SUNBZ0lDNWhjSEJzZVNncE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY0c5eWRDaGNiaUFnWkdseVpXTjBhVzl1T2lCUWIzSjBSR2x5WldOMGFXOXVMRnh1SUNCbmNtRndhRDg2SUZCaGNuUnBZV3c4VDIxcGREeEhjbUZ3YUZCdmNuUk5aWFJoWkdGMFlTd2dYQ0prYVhKbFkzUnBiMjVjSWo0K1hHNHBJSHRjYmlBZ1puVnVZM1JwYjI0Z2NHOXlkQ2hjYmlBZ0lDQmthWEpsWTNScGIyNDZJRkJ2Y25SRWFYSmxZM1JwYjI0c1hHNGdJQ0FnWjNKaGNHZy9PaUJRWVhKMGFXRnNQRTl0YVhROFIzSmhjR2hRYjNKMFRXVjBZV1JoZEdFc0lGd2laR2x5WldOMGFXOXVYQ0krUGx4dUlDQXBJSHRjYmlBZ0lDQnlaWFIxY200Z1puVnVZM1JwYjI0Z2FXNXVaWEpRYjNKMEtIUmhjbWRsZERvZ2IySnFaV04wTENCd2NtOXdaWEowZVV0bGVUODZJR0Z1ZVNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYldWMFlUb2dSM0poY0doUWIzSjBUV1YwWVdSaGRHRWdQU0I3WEc0Z0lDQWdJQ0FnSUdScGNtVmpkR2x2Yml4Y2JpQWdJQ0FnSUNBZ0xpNHVaM0poY0dnc1hHNGdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUdGd2NHeDVLRnh1SUNBZ0lDQWdJQ0J3Y205d1RXVjBZV1JoZEdFb1RXVjBZV1JoZEdFdWEyVjVLRWR5WVhCb1MyVjVjeTVRVDFKVUxDQndjbTl3WlhKMGVVdGxlU2tzSUcxbGRHRXBYRzRnSUNBZ0lDQXBLSFJoY21kbGRDd2djSEp2Y0dWeWRIbExaWGtwTzF4dUlDQWdJSDA3WEc0Z0lIMWNibHh1SUNCeVpYUjFjbTRnUkdWamIzSmhkR2x2Ymk1bWIzSW9SM0poY0doTFpYbHpMbEJQVWxRcFhHNGdJQ0FnTG1SbFptbHVaU2g3WEc0Z0lDQWdJQ0JrWldOdmNtRjBiM0k2SUhCdmNuUXNYRzRnSUNBZ0lDQmhjbWR6T2lCYlpHbHlaV04wYVc5dUxDQm5jbUZ3YUYwc1hHNGdJQ0FnZlNsY2JpQWdJQ0F1WVhCd2JIa29LVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHbHVjSFYwS0dkeVlYQm9Qem9nVUdGeWRHbGhiRHhQYldsMFBFZHlZWEJvVUc5eWRFMWxkR0ZrWVhSaExDQmNJbVJwY21WamRHbHZibHdpUGo0cElIdGNiaUFnY21WMGRYSnVJSEJ2Y25Rb1VHOXlkRVJwY21WamRHbHZiaTVKVGxCVlZDd2dleUF1TGk1bmNtRndhQ3dnYzJOb1pXMWhPaUIwY25WbElIMHBPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2IzVjBjSFYwS0dkeVlYQm9Qem9nVUdGeWRHbGhiRHhQYldsMFBFZHlZWEJvVUc5eWRFMWxkR0ZrWVhSaExDQmNJbVJwY21WamRHbHZibHdpUGo0cElIdGNiaUFnY21WMGRYSnVJSEJ2Y25Rb1VHOXlkRVJwY21WamRHbHZiaTVQVlZSUVZWUXNJSHNnTGk0dVozSmhjR2dzSUhOamFHVnRZVG9nZEhKMVpTQjlLVHRjYm4xY2JseHVMeW9xWEc0Z0tpQkVaV05zWVhKbGN5QmhJRndpWTI5dWJtVmpkR2x2Ymx3aUlIQnZjblFnYjI0Z1lTQnViMlJsSU9LQWxDQmhJSFJvYVhKa0lIQnZjblFnYTJsdVpDQmhiRzl1WjNOcFpHVmNiaUFxSUdCQWFXNXdkWFFvS1dBZ1lXNWtJR0JBYjNWMGNIVjBLQ2xnTGlCRGIyNXVaV04wYVc5dUlIQnZjblJ6SUdGeVpTQnlaVzVrWlhKbFpDQnZiaUIwYUdVZ0tpcGliM1IwYjIwcUtseHVJQ29nYzJsa1pTQnZaaUIwYUdVZ2JtOWtaU0FvYVc1d2RYUnpJR0Z5WlNCdmJpQjBhR1VnYkdWbWRDd2diM1YwY0hWMGN5QnZiaUIwYUdVZ2NtbG5hSFFwTGx4dUlDcGNiaUFxSUVOdmJtNWxZM1JwYjI1eklHRnlaU0IwZVhCbFpDQmllU0JnWTJGMFpXZHZjbmxnSUNobExtY3VJR0JjSW0xdlpHVnNYQ0pnTENCZ1hDSnRaVzF2Y25sY0ltQXNYRzRnS2lCZ1hDSjNiM0pyYzNCaFkyVmNJbUFwTGlCVWFHVWdZMkYwWldkdmNua2daR1YwWlhKdGFXNWxjeUIwYUdVZ2NHOXlkQ2R6SUdOdmJHOXlJSFpwWVNCMGFHVmNiaUFxSUh0QWJHbHVheUJ5WldkcGMzUmxja2R5WVhCb1EyRjBaV2R2Y25sVGRIbHNaWDBnY21WbmFYTjBjbmt1WEc0Z0tseHVJQ29nVlc1c2FXdGxJR0JBYVc1d2RYUmdJQzhnWUVCdmRYUndkWFJnTENCamIyNXVaV04wYVc5dUlIQnZjblJ6SUdSdklFNVBWQ0JqWVhKeWVTQjNiM0pyWm14dmR5QmtZWFJoWEc0Z0tpQjJZV3gxWlhNZzRvQ1VJSFJvWlhrZ2NtVndjbVZ6Wlc1MElITjBjblZqZEhWeVlXd2daR1Z3Wlc1a1pXNWphV1Z6SUNobExtY3VJR0Z1SUVGblpXNTBJRzV2WkdWY2JpQXFJR052Ym01bFkzUnBibWNnZEc4Z1lTQk5iMlJsYkNCeVpYTnZkWEpqWlN3Z1lTQk5aVzF2Y25rZ2MzUnZjbVVzSUc5eUlHRWdWMjl5YTNOd1lXTmxLUzRnVG05a1pYTWdiV0Y1WEc0Z0tpQm9ZWFpsSUhwbGNtOGdiM0lnYlc5eVpTQmdRR052Ym01bFkzUnBiMjRvS1dBZ2NHOXlkSE11WEc0Z0tseHVJQ29nVlhOaFoyVTZYRzRnS2lCZ1lHQjBjMXh1SUNvZ1FHNXZaR1VvWENKaGFTNWhaMlZ1ZEZ3aUxDQjdJR3RwYm1RNklGd2lZV2t1WVdkbGJuUmNJaXdnWTJGMFpXZHZjbms2SUZ3aVFXZGxiblJjSWlCOUtWeHVJQ29nUUcxdlpHVnNLQ2xjYmlBcUlHVjRjRzl5ZENCamJHRnpjeUJCWjJWdWRFNXZaR1VnWlhoMFpXNWtjeUJOYjJSbGJDQjdYRzRnS2lBZ0lFQmpiMjV1WldOMGFXOXVLSHNnWTJGMFpXZHZjbms2SUZ3aWJXOWtaV3hjSWl3Z2FHRnVaR3hsT2lCY0ltMXZaR1ZzWENJZ2ZTbGNiaUFxSUNBZ2JXOWtaV3doT2lCMWJtdHViM2R1TzF4dUlDcGNiaUFxSUNBZ1FHTnZibTVsWTNScGIyNG9leUJqWVhSbFoyOXllVG9nWENKdFpXMXZjbmxjSWl3Z2FHRnVaR3hsT2lCY0ltMWxiVzl5ZVZ3aUlIMHBYRzRnS2lBZ0lHMWxiVzl5ZVNFNklIVnVhMjV2ZDI0N1hHNGdLaUI5WEc0Z0tpQmdZR0JjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHTnZibTVsWTNScGIyNG9aM0poY0dnL09pQlFZWEowYVdGc1BFOXRhWFE4UjNKaGNHaFFiM0owVFdWMFlXUmhkR0VzSUZ3aVpHbHlaV04wYVc5dVhDSStQaWtnZTF4dUlDQnlaWFIxY200Z2NHOXlkQ2hRYjNKMFJHbHlaV04wYVc5dUxrTlBUazVGUTFSSlQwNHNJR2R5WVhCb0tUdGNibjFjYmx4dUx5b3FYRzRnS2lCUGNIUnBiMjV6SUdadmNpQjBhR1VnWUVCd2FXNXVZV0pzWlNncFlDQmtaV052Y21GMGIzSXVYRzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1IzSmhjR2hRYVc1dVlXSnNaVTl3ZEdsdmJuTWdlMXh1SUNCbGJtRmliR1ZrUHpvZ1ltOXZiR1ZoYmp0Y2JpQWdkSFJzVFhNL09pQnVkVzFpWlhJN1hHNGdJSE4wY21GMFpXZDVQem9nWENKdFlXNTFZV3hjSWlCOElGd2lZWFYwYjIxaGRHbGpYQ0lnZkNCY0ltUnBjMkZpYkdWa1hDSTdYRzRnSUdsdVkyeDFaR1ZFWlhCbGJtUmxibU5wWlhNL09pQmliMjlzWldGdU8xeHVJQ0J0WlhSaFpHRjBZVDg2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJSFZ1YTI1dmQyNCtPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlGQnBibTVwYm1jZ2JXVjBZV1JoZEdFZ2MzUnZjbVZrSUc5dUlHRWdibTlrWlNCMmFXRWdZRUJ3YVc1dVlXSnNaU2dwWUM1Y2JpQXFMMXh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JIY21Gd2FGQnBibTVwYm1kTlpYUmhaR0YwWVNCN1hHNGdJR1Z1WVdKc1pXUTZJR0p2YjJ4bFlXNDdYRzRnSUhSMGJFMXpQem9nYm5WdFltVnlPMXh1SUNCemRISmhkR1ZuZVRvZ1hDSnRZVzUxWVd4Y0lpQjhJRndpWVhWMGIyMWhkR2xqWENJZ2ZDQmNJbVJwYzJGaWJHVmtYQ0k3WEc0Z0lHbHVZMngxWkdWRVpYQmxibVJsYm1OcFpYTTZJR0p2YjJ4bFlXNDdYRzRnSUcxbGRHRmtZWFJoUHpvZ1VtVmpiM0prUEhOMGNtbHVaeXdnZFc1cmJtOTNiajQ3WEc1OVhHNWNiaThxS2x4dUlDb2dRMnhoYzNNZ1pHVmpiM0poZEc5eUlIUm9ZWFFnYldGeWEzTWdZU0JuY21Gd2FDQnViMlJsSUdGeklIQnBibTVoWW14bExseHVJQ3BjYmlBcUlGUm9aU0J0WlhSaFpHRjBZU0JwY3lCemRHOXlaV1FnYVc0Z2RHaGxJRzV2WkdVbmN5QmdaM0poY0dndWJXVjBZV1JoZEdFdWNHbHVibUZpYkdWZ0lHWnBaV3hrSUhOdklIUm9aVnh1SUNvZ1FXNW5kV3hoY2lCeVpXNWtaWEpsY2lCaGJtUWdkR2hsSUdOdmNtVWdjR2x1Ym1sdVp5QndiMnhwWTNrZ1kyRnVJSEpsWVdRZ2FYUXVYRzRnS2x4dUlDb2dWWE5oWjJVNlhHNGdLaUJnWUdCMGMxeHVJQ29nUUc1dlpHVW9YQ0poYVM1bGVIQmxibk5wZG1WRGIyMXdiR1YwYVc5dVhDSXNJSHNnYTJsdVpEb2dYQ0poYVM1bGVIQmxibk5wZG1WRGIyMXdiR1YwYVc5dVhDSWdmU2xjYmlBcUlFQndhVzV1WVdKc1pTaDdJSE4wY21GMFpXZDVPaUJjSW0xaGJuVmhiRndpTENCcGJtTnNkV1JsUkdWd1pXNWtaVzVqYVdWek9pQjBjblZsSUgwcFhHNGdLaUJsZUhCdmNuUWdZMnhoYzNNZ1JYaHdaVzV6YVhabFEyOXRjR3hsZEdsdmJrNXZaR1VnWlhoMFpXNWtjeUJOYjJSbGJDQjdJQzR1TGlCOVhHNGdLaUJnWUdCY2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEJwYm01aFlteGxLRzl3ZEdsdmJuTTZJRWR5WVhCb1VHbHVibUZpYkdWUGNIUnBiMjV6SUQwZ2UzMHBJSHRjYmlBZ1puVnVZM1JwYjI0Z2NHbHVibUZpYkdVb2RHRnlaMlYwT2lCdlltcGxZM1FwSUh0Y2JpQWdJQ0JqYjI1emRDQmxlR2x6ZEdsdVowMWxkR0VnUFNCTlpYUmhaR0YwWVM1blpYUW9YRzRnSUNBZ0lDQjBZWEpuWlhRZ1lYTWdZVzU1TEZ4dUlDQWdJQ0FnUjNKaGNHaExaWGx6TGs1UFJFVmNiaUFnSUNBcElHRnpJRWR5WVhCb1RtOWtaVTFsZEdGa1lYUmhJSHdnZFc1a1pXWnBibVZrTzF4dUlDQWdJR052Ym5OMElHMWxkR0U2SUVkeVlYQm9UbTlrWlUxbGRHRmtZWFJoSUQwZ1pYaHBjM1JwYm1kTlpYUmhJRDgvSUh0OU8xeHVJQ0FnSUcxbGRHRXViV1YwWVdSaGRHRWdQU0I3WEc0Z0lDQWdJQ0F1TGk0b2JXVjBZUzV0WlhSaFpHRjBZU0EvUHlCN2ZTa3NYRzRnSUNBZ0lDQndhVzV1WVdKc1pUb2dlMXh1SUNBZ0lDQWdJQ0JsYm1GaWJHVmtPaUJ2Y0hScGIyNXpMbVZ1WVdKc1pXUWdQejhnZEhKMVpTeGNiaUFnSUNBZ0lDQWdkSFJzVFhNNklHOXdkR2x2Ym5NdWRIUnNUWE1zWEc0Z0lDQWdJQ0FnSUhOMGNtRjBaV2Q1T2lCdmNIUnBiMjV6TG5OMGNtRjBaV2Q1SUQ4L0lGd2liV0Z1ZFdGc1hDSXNYRzRnSUNBZ0lDQWdJR2x1WTJ4MVpHVkVaWEJsYm1SbGJtTnBaWE02SUc5d2RHbHZibk11YVc1amJIVmtaVVJsY0dWdVpHVnVZMmxsY3lBL1B5QjBjblZsTEZ4dUlDQWdJQ0FnSUNCdFpYUmhaR0YwWVRvZ2IzQjBhVzl1Y3k1dFpYUmhaR0YwWVN4Y2JpQWdJQ0FnSUgwZ1lYTWdSM0poY0doUWFXNXVhVzVuVFdWMFlXUmhkR0VzWEc0Z0lDQWdmVHRjYmlBZ0lDQk5aWFJoWkdGMFlTNXpaWFFvZEdGeVoyVjBJR0Z6SUdGdWVTd2dSM0poY0doTFpYbHpMazVQUkVVc0lHMWxkR0VwTzF4dUlDQWdJSEpsZEhWeWJpQjBZWEpuWlhRN1hHNGdJSDFjYmx4dUlDQnlaWFIxY200Z1JHVmpiM0poZEdsdmJpNW1iM0lvWENKbmNtRndhQzV3YVc1dVlXSnNaVndpS1Z4dUlDQWdJQzVrWldacGJtVW9lMXh1SUNBZ0lDQWdaR1ZqYjNKaGRHOXlPaUJ3YVc1dVlXSnNaU0JoY3lCaGJua3NYRzRnSUNBZ0lDQmhjbWR6T2lCYmIzQjBhVzl1YzEwc1hHNGdJQ0FnZlNsY2JpQWdJQ0F1WVhCd2JIa29LVHRjYm4xY2JpSmRmUT09Il19
150
+ //# sourceMappingURL=decorators.js.map
151
+ //# sourceMappingURL=decorators.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph/decorators.cjs","sourceRoot":"","sources":["graph/decorators.js"],"names":[],"mappings":"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"}