@decaf-ts/ui-decorators 0.20.4 → 0.20.7

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 (469) hide show
  1. package/dist/ui-decorators.cjs +1059 -2
  2. package/dist/ui-decorators.js +1090 -2
  3. package/lib/cjs/dashboard/constants.cjs +11 -0
  4. package/lib/cjs/dashboard/decorators.cjs +61 -0
  5. package/lib/cjs/dashboard/index.cjs +23 -0
  6. package/lib/cjs/dashboard/reader.cjs +67 -0
  7. package/lib/cjs/dashboard/registry.cjs +45 -0
  8. package/lib/cjs/dashboard/types.cjs +4 -0
  9. package/lib/cjs/graph/GraphExecutionStateMapper.cjs +97 -0
  10. package/lib/cjs/graph/GraphResolution.cjs +17 -0
  11. package/lib/cjs/graph/catalog/GraphConnectionPolicy.cjs +2 -2
  12. package/lib/cjs/graph/catalog/GraphCredentialReference.cjs +2 -2
  13. package/lib/cjs/graph/catalog/GraphCredentialRequirement.cjs +2 -2
  14. package/lib/cjs/graph/catalog/GraphDynamicPortRule.cjs +2 -2
  15. package/lib/cjs/graph/catalog/GraphIconReference.cjs +2 -2
  16. package/lib/cjs/graph/catalog/GraphManifestCompiler.cjs +2 -2
  17. package/lib/cjs/graph/catalog/GraphNodeCapability.cjs +2 -2
  18. package/lib/cjs/graph/catalog/GraphNodeDisplayManifest.cjs +2 -2
  19. package/lib/cjs/graph/catalog/GraphNodeManifest.cjs +2 -2
  20. package/lib/cjs/graph/catalog/GraphNodeManifestSerialization.cjs +2 -2
  21. package/lib/cjs/graph/catalog/GraphNodeMethodManifest.cjs +2 -2
  22. package/lib/cjs/graph/catalog/GraphNodePolicyManifest.cjs +2 -2
  23. package/lib/cjs/graph/catalog/GraphParameterBase.cjs +2 -2
  24. package/lib/cjs/graph/catalog/GraphParameterDefinition.cjs +2 -2
  25. package/lib/cjs/graph/catalog/GraphParameterOption.cjs +2 -2
  26. package/lib/cjs/graph/catalog/GraphParameterValidation.cjs +2 -2
  27. package/lib/cjs/graph/catalog/GraphPortManifest.cjs +2 -2
  28. package/lib/cjs/graph/catalog/GraphResourceLocatorMode.cjs +2 -2
  29. package/lib/cjs/graph/catalog/GraphValueSchema.cjs +2 -2
  30. package/lib/cjs/graph/catalog/GraphValueSchemaDerivation.cjs +2 -2
  31. package/lib/cjs/graph/catalog/GraphVisibilityExpression.cjs +2 -2
  32. package/lib/cjs/graph/catalog/index.cjs +2 -2
  33. package/lib/cjs/graph/constants.cjs +159 -3
  34. package/lib/cjs/graph/decorators.cjs +2 -2
  35. package/lib/cjs/graph/document/GraphDecoratedWorkflowCompiler.cjs +2 -2
  36. package/lib/cjs/graph/document/GraphEdgeInstance.cjs +2 -2
  37. package/lib/cjs/graph/document/GraphEndpoint.cjs +2 -2
  38. package/lib/cjs/graph/document/GraphJsonValue.cjs +2 -2
  39. package/lib/cjs/graph/document/GraphLoopConfiguration.cjs +2 -2
  40. package/lib/cjs/graph/document/GraphNodeBinding.cjs +2 -2
  41. package/lib/cjs/graph/document/GraphNodeInstance.cjs +2 -2
  42. package/lib/cjs/graph/document/GraphWorkflowDocument.cjs +2 -2
  43. package/lib/cjs/graph/document/GraphWorkflowDocumentBuilder.cjs +2 -2
  44. package/lib/cjs/graph/document/GraphWorkflowDocumentReader.cjs +2 -2
  45. package/lib/cjs/graph/document/GraphWorkflowDocumentSerializer.cjs +2 -2
  46. package/lib/cjs/graph/document/GraphWorkflowUiState.cjs +2 -2
  47. package/lib/cjs/graph/document/index.cjs +2 -2
  48. package/lib/cjs/graph/index.cjs +5 -2
  49. package/lib/cjs/graph/nodes/agents/agent.cjs +110 -0
  50. package/lib/cjs/graph/nodes/base.cjs +36 -0
  51. package/lib/cjs/graph/nodes/boundary/input-value.cjs +57 -0
  52. package/lib/cjs/graph/nodes/category-styles.cjs +38 -0
  53. package/lib/cjs/graph/nodes/flow-control/break.cjs +63 -0
  54. package/lib/cjs/graph/nodes/flow-control/error-boundary.cjs +67 -0
  55. package/lib/cjs/graph/nodes/flow-control/human-approval.cjs +69 -0
  56. package/lib/cjs/graph/nodes/flow-control/if.cjs +71 -0
  57. package/lib/cjs/graph/nodes/flow-control/parallel.cjs +61 -0
  58. package/lib/cjs/graph/nodes/flow-control/switch.cjs +121 -0
  59. package/lib/cjs/graph/nodes/index.cjs +123 -0
  60. package/lib/cjs/graph/nodes/loops/foreach.cjs +86 -0
  61. package/lib/cjs/graph/nodes/loops/until.cjs +74 -0
  62. package/lib/cjs/graph/nodes/loops/while.cjs +74 -0
  63. package/lib/cjs/graph/nodes/manifests.cjs +338 -0
  64. package/lib/cjs/graph/nodes/triggers/chat.cjs +70 -0
  65. package/lib/cjs/graph/nodes/triggers/event.cjs +58 -0
  66. package/lib/cjs/graph/nodes/triggers/form.cjs +59 -0
  67. package/lib/cjs/graph/nodes/triggers/manual.cjs +60 -0
  68. package/lib/cjs/graph/nodes/triggers/schedule.cjs +60 -0
  69. package/lib/cjs/graph/nodes/triggers/webhook.cjs +62 -0
  70. package/lib/cjs/graph/nodes/utility/code.cjs +99 -0
  71. package/lib/cjs/graph/nodes/utility/delay.cjs +61 -0
  72. package/lib/cjs/graph/nodes/utility/log.cjs +62 -0
  73. package/lib/cjs/graph/nodes/utility/map.cjs +61 -0
  74. package/lib/cjs/graph/nodes/utility/merge.cjs +62 -0
  75. package/lib/cjs/graph/nodes/utility/return.cjs +61 -0
  76. package/lib/cjs/graph/nodes/utility/utility-log.cjs +66 -0
  77. package/lib/cjs/graph/overrides/Metadata.cjs +2 -2
  78. package/lib/cjs/graph/overrides/Rendering.cjs +2 -2
  79. package/lib/cjs/graph/overrides/index.cjs +2 -2
  80. package/lib/cjs/graph/overrides/overrides.cjs +2 -2
  81. package/lib/cjs/graph/reader.cjs +2 -2
  82. package/lib/cjs/graph/registry.cjs +2 -2
  83. package/lib/cjs/graph/snapshot.cjs +2 -2
  84. package/lib/cjs/graph/types.cjs +2 -2
  85. package/lib/cjs/index.cjs +6 -5
  86. package/lib/cjs/model/Renderable.cjs +2 -2
  87. package/lib/cjs/model/decorators.cjs +2 -2
  88. package/lib/cjs/model/index.cjs +2 -2
  89. package/lib/cjs/model/model.cjs +2 -2
  90. package/lib/cjs/model/overrides.cjs +2 -2
  91. package/lib/cjs/overrides/ModelBuilderExtensions.cjs +2 -2
  92. package/lib/cjs/overrides/index.cjs +2 -2
  93. package/lib/cjs/ui/DecafComponent.cjs +2 -2
  94. package/lib/cjs/ui/DecafEventHandler.cjs +2 -2
  95. package/lib/cjs/ui/DecafTranslateService.cjs +2 -2
  96. package/lib/cjs/ui/Rendering.cjs +2 -2
  97. package/lib/cjs/ui/UIValidator.cjs +2 -2
  98. package/lib/cjs/ui/constants.cjs +2 -2
  99. package/lib/cjs/ui/decorators.cjs +2 -2
  100. package/lib/cjs/ui/errors.cjs +2 -2
  101. package/lib/cjs/ui/index.cjs +2 -2
  102. package/lib/cjs/ui/interfaces/IDecafModal.cjs +2 -2
  103. package/lib/cjs/ui/interfaces/IDecafRouter.cjs +2 -2
  104. package/lib/cjs/ui/interfaces/IDecafSpinner.cjs +2 -2
  105. package/lib/cjs/ui/interfaces/IDecafToast.cjs +2 -2
  106. package/lib/cjs/ui/interfaces/index.cjs +2 -2
  107. package/lib/cjs/ui/overrides.cjs +2 -2
  108. package/lib/cjs/ui/types.cjs +2 -2
  109. package/lib/cjs/ui/utils.cjs +2 -2
  110. package/lib/cjs/ui/validator.cjs +2 -2
  111. package/lib/cjs/user-requests/UserRequestHandler.cjs +2 -2
  112. package/lib/cjs/user-requests/constants.cjs +2 -2
  113. package/lib/cjs/user-requests/decorators.cjs +2 -2
  114. package/lib/cjs/user-requests/errors.cjs +2 -2
  115. package/lib/cjs/user-requests/index.cjs +2 -2
  116. package/lib/cjs/user-requests/types.cjs +2 -2
  117. package/lib/esm/dashboard/constants.js +24 -0
  118. package/lib/esm/dashboard/decorators.js +57 -0
  119. package/lib/esm/dashboard/index.js +6 -0
  120. package/lib/esm/dashboard/reader.js +62 -0
  121. package/lib/esm/dashboard/registry.js +39 -0
  122. package/lib/esm/dashboard/types.js +9 -0
  123. package/lib/esm/graph/GraphExecutionStateMapper.js +91 -0
  124. package/lib/esm/graph/GraphResolution.js +13 -0
  125. package/lib/esm/graph/catalog/GraphConnectionPolicy.js +1 -1
  126. package/lib/esm/graph/catalog/GraphCredentialReference.js +1 -1
  127. package/lib/esm/graph/catalog/GraphCredentialRequirement.js +1 -1
  128. package/lib/esm/graph/catalog/GraphDynamicPortRule.js +1 -1
  129. package/lib/esm/graph/catalog/GraphIconReference.js +1 -1
  130. package/lib/esm/graph/catalog/GraphManifestCompiler.js +1 -1
  131. package/lib/esm/graph/catalog/GraphNodeCapability.js +1 -1
  132. package/lib/esm/graph/catalog/GraphNodeDisplayManifest.js +1 -1
  133. package/lib/esm/graph/catalog/GraphNodeManifest.js +1 -1
  134. package/lib/esm/graph/catalog/GraphNodeManifestSerialization.js +1 -1
  135. package/lib/esm/graph/catalog/GraphNodeMethodManifest.js +1 -1
  136. package/lib/esm/graph/catalog/GraphNodePolicyManifest.js +1 -1
  137. package/lib/esm/graph/catalog/GraphParameterBase.js +1 -1
  138. package/lib/esm/graph/catalog/GraphParameterDefinition.js +1 -1
  139. package/lib/esm/graph/catalog/GraphParameterOption.js +1 -1
  140. package/lib/esm/graph/catalog/GraphParameterValidation.js +1 -1
  141. package/lib/esm/graph/catalog/GraphPortManifest.js +1 -1
  142. package/lib/esm/graph/catalog/GraphResourceLocatorMode.js +1 -1
  143. package/lib/esm/graph/catalog/GraphValueSchema.js +1 -1
  144. package/lib/esm/graph/catalog/GraphValueSchemaDerivation.js +1 -1
  145. package/lib/esm/graph/catalog/GraphVisibilityExpression.js +1 -1
  146. package/lib/esm/graph/catalog/index.js +1 -1
  147. package/lib/esm/graph/constants.js +180 -1
  148. package/lib/esm/graph/decorators.js +1 -1
  149. package/lib/esm/graph/document/GraphDecoratedWorkflowCompiler.js +1 -1
  150. package/lib/esm/graph/document/GraphEdgeInstance.js +1 -1
  151. package/lib/esm/graph/document/GraphEndpoint.js +1 -1
  152. package/lib/esm/graph/document/GraphJsonValue.js +1 -1
  153. package/lib/esm/graph/document/GraphLoopConfiguration.js +1 -1
  154. package/lib/esm/graph/document/GraphNodeBinding.js +1 -1
  155. package/lib/esm/graph/document/GraphNodeInstance.js +1 -1
  156. package/lib/esm/graph/document/GraphWorkflowDocument.js +1 -1
  157. package/lib/esm/graph/document/GraphWorkflowDocumentBuilder.js +1 -1
  158. package/lib/esm/graph/document/GraphWorkflowDocumentReader.js +1 -1
  159. package/lib/esm/graph/document/GraphWorkflowDocumentSerializer.js +1 -1
  160. package/lib/esm/graph/document/GraphWorkflowUiState.js +1 -1
  161. package/lib/esm/graph/document/index.js +1 -1
  162. package/lib/esm/graph/index.js +4 -1
  163. package/lib/esm/graph/nodes/agents/agent.js +101 -0
  164. package/lib/esm/graph/nodes/base.js +31 -0
  165. package/lib/esm/graph/nodes/boundary/input-value.js +48 -0
  166. package/lib/esm/graph/nodes/category-styles.js +34 -0
  167. package/lib/esm/graph/nodes/flow-control/break.js +54 -0
  168. package/lib/esm/graph/nodes/flow-control/error-boundary.js +58 -0
  169. package/lib/esm/graph/nodes/flow-control/human-approval.js +60 -0
  170. package/lib/esm/graph/nodes/flow-control/if.js +62 -0
  171. package/lib/esm/graph/nodes/flow-control/parallel.js +52 -0
  172. package/lib/esm/graph/nodes/flow-control/switch.js +112 -0
  173. package/lib/esm/graph/nodes/index.js +105 -0
  174. package/lib/esm/graph/nodes/loops/foreach.js +77 -0
  175. package/lib/esm/graph/nodes/loops/until.js +65 -0
  176. package/lib/esm/graph/nodes/loops/while.js +65 -0
  177. package/lib/esm/graph/nodes/manifests.js +334 -0
  178. package/lib/esm/graph/nodes/triggers/chat.js +61 -0
  179. package/lib/esm/graph/nodes/triggers/event.js +49 -0
  180. package/lib/esm/graph/nodes/triggers/form.js +50 -0
  181. package/lib/esm/graph/nodes/triggers/manual.js +51 -0
  182. package/lib/esm/graph/nodes/triggers/schedule.js +51 -0
  183. package/lib/esm/graph/nodes/triggers/webhook.js +53 -0
  184. package/lib/esm/graph/nodes/utility/code.js +90 -0
  185. package/lib/esm/graph/nodes/utility/delay.js +52 -0
  186. package/lib/esm/graph/nodes/utility/log.js +53 -0
  187. package/lib/esm/graph/nodes/utility/map.js +52 -0
  188. package/lib/esm/graph/nodes/utility/merge.js +53 -0
  189. package/lib/esm/graph/nodes/utility/return.js +52 -0
  190. package/lib/esm/graph/nodes/utility/utility-log.js +57 -0
  191. package/lib/esm/graph/overrides/Metadata.js +1 -1
  192. package/lib/esm/graph/overrides/Rendering.js +1 -1
  193. package/lib/esm/graph/overrides/index.js +1 -1
  194. package/lib/esm/graph/overrides/overrides.js +1 -1
  195. package/lib/esm/graph/reader.js +1 -1
  196. package/lib/esm/graph/registry.js +1 -1
  197. package/lib/esm/graph/snapshot.js +1 -1
  198. package/lib/esm/graph/types.js +1 -1
  199. package/lib/esm/index.js +5 -4
  200. package/lib/esm/model/Renderable.js +1 -1
  201. package/lib/esm/model/decorators.js +1 -1
  202. package/lib/esm/model/index.js +1 -1
  203. package/lib/esm/model/model.js +1 -1
  204. package/lib/esm/model/overrides.js +1 -1
  205. package/lib/esm/overrides/ModelBuilderExtensions.js +1 -1
  206. package/lib/esm/overrides/index.js +1 -1
  207. package/lib/esm/ui/DecafComponent.js +1 -1
  208. package/lib/esm/ui/DecafEventHandler.js +1 -1
  209. package/lib/esm/ui/DecafTranslateService.js +1 -1
  210. package/lib/esm/ui/Rendering.js +1 -1
  211. package/lib/esm/ui/UIValidator.js +1 -1
  212. package/lib/esm/ui/constants.js +1 -1
  213. package/lib/esm/ui/decorators.js +1 -1
  214. package/lib/esm/ui/errors.js +1 -1
  215. package/lib/esm/ui/index.js +1 -1
  216. package/lib/esm/ui/interfaces/IDecafModal.js +1 -1
  217. package/lib/esm/ui/interfaces/IDecafRouter.js +1 -1
  218. package/lib/esm/ui/interfaces/IDecafSpinner.js +1 -1
  219. package/lib/esm/ui/interfaces/IDecafToast.js +1 -1
  220. package/lib/esm/ui/interfaces/index.js +1 -1
  221. package/lib/esm/ui/overrides.js +1 -1
  222. package/lib/esm/ui/types.js +1 -1
  223. package/lib/esm/ui/utils.js +1 -1
  224. package/lib/esm/ui/validator.js +1 -1
  225. package/lib/esm/user-requests/UserRequestHandler.js +1 -1
  226. package/lib/esm/user-requests/constants.js +1 -1
  227. package/lib/esm/user-requests/decorators.js +1 -1
  228. package/lib/esm/user-requests/errors.js +1 -1
  229. package/lib/esm/user-requests/index.js +1 -1
  230. package/lib/esm/user-requests/types.js +1 -1
  231. package/lib/types/dashboard/constants.d.cts +22 -0
  232. package/lib/types/dashboard/constants.d.mts +22 -0
  233. package/lib/types/dashboard/decorators.d.cts +34 -0
  234. package/lib/types/dashboard/decorators.d.mts +34 -0
  235. package/lib/types/dashboard/index.d.cts +5 -0
  236. package/lib/types/dashboard/index.d.mts +5 -0
  237. package/lib/types/dashboard/reader.d.cts +30 -0
  238. package/lib/types/dashboard/reader.d.mts +30 -0
  239. package/lib/types/dashboard/registry.d.cts +29 -0
  240. package/lib/types/dashboard/registry.d.mts +29 -0
  241. package/lib/types/dashboard/types.d.cts +67 -0
  242. package/lib/types/dashboard/types.d.mts +67 -0
  243. package/lib/types/graph/GraphExecutionStateMapper.d.cts +66 -0
  244. package/lib/types/graph/GraphExecutionStateMapper.d.mts +66 -0
  245. package/lib/types/graph/GraphResolution.d.cts +53 -0
  246. package/lib/types/graph/GraphResolution.d.mts +53 -0
  247. package/lib/types/graph/constants.d.cts +165 -0
  248. package/lib/types/graph/constants.d.mts +165 -0
  249. package/lib/types/graph/index.d.cts +3 -0
  250. package/lib/types/graph/index.d.mts +3 -0
  251. package/lib/types/graph/nodes/agents/agent.d.cts +44 -0
  252. package/lib/types/graph/nodes/agents/agent.d.mts +44 -0
  253. package/lib/types/graph/nodes/base.d.cts +28 -0
  254. package/lib/types/graph/nodes/base.d.mts +28 -0
  255. package/lib/types/graph/nodes/boundary/input-value.d.cts +13 -0
  256. package/lib/types/graph/nodes/boundary/input-value.d.mts +13 -0
  257. package/lib/types/graph/nodes/category-styles.d.cts +8 -0
  258. package/lib/types/graph/nodes/category-styles.d.mts +8 -0
  259. package/lib/types/graph/nodes/flow-control/break.d.cts +15 -0
  260. package/lib/types/graph/nodes/flow-control/break.d.mts +15 -0
  261. package/lib/types/graph/nodes/flow-control/error-boundary.d.cts +12 -0
  262. package/lib/types/graph/nodes/flow-control/error-boundary.d.mts +12 -0
  263. package/lib/types/graph/nodes/flow-control/human-approval.d.cts +13 -0
  264. package/lib/types/graph/nodes/flow-control/human-approval.d.mts +13 -0
  265. package/lib/types/graph/nodes/flow-control/if.d.cts +16 -0
  266. package/lib/types/graph/nodes/flow-control/if.d.mts +16 -0
  267. package/lib/types/graph/nodes/flow-control/parallel.d.cts +11 -0
  268. package/lib/types/graph/nodes/flow-control/parallel.d.mts +11 -0
  269. package/lib/types/graph/nodes/flow-control/switch.d.cts +21 -0
  270. package/lib/types/graph/nodes/flow-control/switch.d.mts +21 -0
  271. package/lib/types/graph/nodes/index.d.cts +79 -0
  272. package/lib/types/graph/nodes/index.d.mts +79 -0
  273. package/lib/types/graph/nodes/loops/foreach.d.cts +19 -0
  274. package/lib/types/graph/nodes/loops/foreach.d.mts +19 -0
  275. package/lib/types/graph/nodes/loops/until.d.cts +16 -0
  276. package/lib/types/graph/nodes/loops/until.d.mts +16 -0
  277. package/lib/types/graph/nodes/loops/while.d.cts +16 -0
  278. package/lib/types/graph/nodes/loops/while.d.mts +16 -0
  279. package/lib/types/graph/nodes/manifests.d.cts +62 -0
  280. package/lib/types/graph/nodes/manifests.d.mts +62 -0
  281. package/lib/types/graph/nodes/triggers/chat.d.cts +13 -0
  282. package/lib/types/graph/nodes/triggers/chat.d.mts +13 -0
  283. package/lib/types/graph/nodes/triggers/event.d.cts +10 -0
  284. package/lib/types/graph/nodes/triggers/event.d.mts +10 -0
  285. package/lib/types/graph/nodes/triggers/form.d.cts +11 -0
  286. package/lib/types/graph/nodes/triggers/form.d.mts +11 -0
  287. package/lib/types/graph/nodes/triggers/manual.d.cts +12 -0
  288. package/lib/types/graph/nodes/triggers/manual.d.mts +12 -0
  289. package/lib/types/graph/nodes/triggers/schedule.d.cts +11 -0
  290. package/lib/types/graph/nodes/triggers/schedule.d.mts +11 -0
  291. package/lib/types/graph/nodes/triggers/webhook.d.cts +11 -0
  292. package/lib/types/graph/nodes/triggers/webhook.d.mts +11 -0
  293. package/lib/types/graph/nodes/utility/code.d.cts +31 -0
  294. package/lib/types/graph/nodes/utility/code.d.mts +31 -0
  295. package/lib/types/graph/nodes/utility/delay.d.cts +11 -0
  296. package/lib/types/graph/nodes/utility/delay.d.mts +11 -0
  297. package/lib/types/graph/nodes/utility/log.d.cts +13 -0
  298. package/lib/types/graph/nodes/utility/log.d.mts +13 -0
  299. package/lib/types/graph/nodes/utility/map.d.cts +11 -0
  300. package/lib/types/graph/nodes/utility/map.d.mts +11 -0
  301. package/lib/types/graph/nodes/utility/merge.d.cts +12 -0
  302. package/lib/types/graph/nodes/utility/merge.d.mts +12 -0
  303. package/lib/types/graph/nodes/utility/return.d.cts +11 -0
  304. package/lib/types/graph/nodes/utility/return.d.mts +11 -0
  305. package/lib/types/graph/nodes/utility/utility-log.d.cts +15 -0
  306. package/lib/types/graph/nodes/utility/utility-log.d.mts +15 -0
  307. package/lib/types/graph/types.d.cts +286 -0
  308. package/lib/types/graph/types.d.mts +286 -0
  309. package/lib/types/index.d.cts +4 -3
  310. package/lib/types/index.d.mts +4 -3
  311. package/package.json +1 -1
  312. package/dist/ui-decorators.cjs.map +0 -1
  313. package/dist/ui-decorators.js.map +0 -1
  314. package/lib/cjs/graph/catalog/GraphConnectionPolicy.cjs.map +0 -1
  315. package/lib/cjs/graph/catalog/GraphCredentialReference.cjs.map +0 -1
  316. package/lib/cjs/graph/catalog/GraphCredentialRequirement.cjs.map +0 -1
  317. package/lib/cjs/graph/catalog/GraphDynamicPortRule.cjs.map +0 -1
  318. package/lib/cjs/graph/catalog/GraphIconReference.cjs.map +0 -1
  319. package/lib/cjs/graph/catalog/GraphManifestCompiler.cjs.map +0 -1
  320. package/lib/cjs/graph/catalog/GraphNodeCapability.cjs.map +0 -1
  321. package/lib/cjs/graph/catalog/GraphNodeDisplayManifest.cjs.map +0 -1
  322. package/lib/cjs/graph/catalog/GraphNodeManifest.cjs.map +0 -1
  323. package/lib/cjs/graph/catalog/GraphNodeManifestSerialization.cjs.map +0 -1
  324. package/lib/cjs/graph/catalog/GraphNodeMethodManifest.cjs.map +0 -1
  325. package/lib/cjs/graph/catalog/GraphNodePolicyManifest.cjs.map +0 -1
  326. package/lib/cjs/graph/catalog/GraphParameterBase.cjs.map +0 -1
  327. package/lib/cjs/graph/catalog/GraphParameterDefinition.cjs.map +0 -1
  328. package/lib/cjs/graph/catalog/GraphParameterOption.cjs.map +0 -1
  329. package/lib/cjs/graph/catalog/GraphParameterValidation.cjs.map +0 -1
  330. package/lib/cjs/graph/catalog/GraphPortManifest.cjs.map +0 -1
  331. package/lib/cjs/graph/catalog/GraphResourceLocatorMode.cjs.map +0 -1
  332. package/lib/cjs/graph/catalog/GraphValueSchema.cjs.map +0 -1
  333. package/lib/cjs/graph/catalog/GraphValueSchemaDerivation.cjs.map +0 -1
  334. package/lib/cjs/graph/catalog/GraphVisibilityExpression.cjs.map +0 -1
  335. package/lib/cjs/graph/catalog/index.cjs.map +0 -1
  336. package/lib/cjs/graph/constants.cjs.map +0 -1
  337. package/lib/cjs/graph/decorators.cjs.map +0 -1
  338. package/lib/cjs/graph/document/GraphDecoratedWorkflowCompiler.cjs.map +0 -1
  339. package/lib/cjs/graph/document/GraphEdgeInstance.cjs.map +0 -1
  340. package/lib/cjs/graph/document/GraphEndpoint.cjs.map +0 -1
  341. package/lib/cjs/graph/document/GraphJsonValue.cjs.map +0 -1
  342. package/lib/cjs/graph/document/GraphLoopConfiguration.cjs.map +0 -1
  343. package/lib/cjs/graph/document/GraphNodeBinding.cjs.map +0 -1
  344. package/lib/cjs/graph/document/GraphNodeInstance.cjs.map +0 -1
  345. package/lib/cjs/graph/document/GraphWorkflowDocument.cjs.map +0 -1
  346. package/lib/cjs/graph/document/GraphWorkflowDocumentBuilder.cjs.map +0 -1
  347. package/lib/cjs/graph/document/GraphWorkflowDocumentReader.cjs.map +0 -1
  348. package/lib/cjs/graph/document/GraphWorkflowDocumentSerializer.cjs.map +0 -1
  349. package/lib/cjs/graph/document/GraphWorkflowUiState.cjs.map +0 -1
  350. package/lib/cjs/graph/document/index.cjs.map +0 -1
  351. package/lib/cjs/graph/index.cjs.map +0 -1
  352. package/lib/cjs/graph/overrides/Metadata.cjs.map +0 -1
  353. package/lib/cjs/graph/overrides/Rendering.cjs.map +0 -1
  354. package/lib/cjs/graph/overrides/index.cjs.map +0 -1
  355. package/lib/cjs/graph/overrides/overrides.cjs.map +0 -1
  356. package/lib/cjs/graph/reader.cjs.map +0 -1
  357. package/lib/cjs/graph/registry.cjs.map +0 -1
  358. package/lib/cjs/graph/snapshot.cjs.map +0 -1
  359. package/lib/cjs/graph/types.cjs.map +0 -1
  360. package/lib/cjs/index.cjs.map +0 -1
  361. package/lib/cjs/model/Renderable.cjs.map +0 -1
  362. package/lib/cjs/model/decorators.cjs.map +0 -1
  363. package/lib/cjs/model/index.cjs.map +0 -1
  364. package/lib/cjs/model/model.cjs.map +0 -1
  365. package/lib/cjs/model/overrides.cjs.map +0 -1
  366. package/lib/cjs/overrides/ModelBuilderExtensions.cjs.map +0 -1
  367. package/lib/cjs/overrides/index.cjs.map +0 -1
  368. package/lib/cjs/ui/DecafComponent.cjs.map +0 -1
  369. package/lib/cjs/ui/DecafEventHandler.cjs.map +0 -1
  370. package/lib/cjs/ui/DecafTranslateService.cjs.map +0 -1
  371. package/lib/cjs/ui/Rendering.cjs.map +0 -1
  372. package/lib/cjs/ui/UIValidator.cjs.map +0 -1
  373. package/lib/cjs/ui/constants.cjs.map +0 -1
  374. package/lib/cjs/ui/decorators.cjs.map +0 -1
  375. package/lib/cjs/ui/errors.cjs.map +0 -1
  376. package/lib/cjs/ui/index.cjs.map +0 -1
  377. package/lib/cjs/ui/interfaces/IDecafModal.cjs.map +0 -1
  378. package/lib/cjs/ui/interfaces/IDecafRouter.cjs.map +0 -1
  379. package/lib/cjs/ui/interfaces/IDecafSpinner.cjs.map +0 -1
  380. package/lib/cjs/ui/interfaces/IDecafToast.cjs.map +0 -1
  381. package/lib/cjs/ui/interfaces/index.cjs.map +0 -1
  382. package/lib/cjs/ui/overrides.cjs.map +0 -1
  383. package/lib/cjs/ui/types.cjs.map +0 -1
  384. package/lib/cjs/ui/utils.cjs.map +0 -1
  385. package/lib/cjs/ui/validator.cjs.map +0 -1
  386. package/lib/cjs/user-requests/UserRequestHandler.cjs.map +0 -1
  387. package/lib/cjs/user-requests/constants.cjs.map +0 -1
  388. package/lib/cjs/user-requests/decorators.cjs.map +0 -1
  389. package/lib/cjs/user-requests/errors.cjs.map +0 -1
  390. package/lib/cjs/user-requests/index.cjs.map +0 -1
  391. package/lib/cjs/user-requests/types.cjs.map +0 -1
  392. package/lib/esm/graph/catalog/GraphConnectionPolicy.js.map +0 -1
  393. package/lib/esm/graph/catalog/GraphCredentialReference.js.map +0 -1
  394. package/lib/esm/graph/catalog/GraphCredentialRequirement.js.map +0 -1
  395. package/lib/esm/graph/catalog/GraphDynamicPortRule.js.map +0 -1
  396. package/lib/esm/graph/catalog/GraphIconReference.js.map +0 -1
  397. package/lib/esm/graph/catalog/GraphManifestCompiler.js.map +0 -1
  398. package/lib/esm/graph/catalog/GraphNodeCapability.js.map +0 -1
  399. package/lib/esm/graph/catalog/GraphNodeDisplayManifest.js.map +0 -1
  400. package/lib/esm/graph/catalog/GraphNodeManifest.js.map +0 -1
  401. package/lib/esm/graph/catalog/GraphNodeManifestSerialization.js.map +0 -1
  402. package/lib/esm/graph/catalog/GraphNodeMethodManifest.js.map +0 -1
  403. package/lib/esm/graph/catalog/GraphNodePolicyManifest.js.map +0 -1
  404. package/lib/esm/graph/catalog/GraphParameterBase.js.map +0 -1
  405. package/lib/esm/graph/catalog/GraphParameterDefinition.js.map +0 -1
  406. package/lib/esm/graph/catalog/GraphParameterOption.js.map +0 -1
  407. package/lib/esm/graph/catalog/GraphParameterValidation.js.map +0 -1
  408. package/lib/esm/graph/catalog/GraphPortManifest.js.map +0 -1
  409. package/lib/esm/graph/catalog/GraphResourceLocatorMode.js.map +0 -1
  410. package/lib/esm/graph/catalog/GraphValueSchema.js.map +0 -1
  411. package/lib/esm/graph/catalog/GraphValueSchemaDerivation.js.map +0 -1
  412. package/lib/esm/graph/catalog/GraphVisibilityExpression.js.map +0 -1
  413. package/lib/esm/graph/catalog/index.js.map +0 -1
  414. package/lib/esm/graph/constants.js.map +0 -1
  415. package/lib/esm/graph/decorators.js.map +0 -1
  416. package/lib/esm/graph/document/GraphDecoratedWorkflowCompiler.js.map +0 -1
  417. package/lib/esm/graph/document/GraphEdgeInstance.js.map +0 -1
  418. package/lib/esm/graph/document/GraphEndpoint.js.map +0 -1
  419. package/lib/esm/graph/document/GraphJsonValue.js.map +0 -1
  420. package/lib/esm/graph/document/GraphLoopConfiguration.js.map +0 -1
  421. package/lib/esm/graph/document/GraphNodeBinding.js.map +0 -1
  422. package/lib/esm/graph/document/GraphNodeInstance.js.map +0 -1
  423. package/lib/esm/graph/document/GraphWorkflowDocument.js.map +0 -1
  424. package/lib/esm/graph/document/GraphWorkflowDocumentBuilder.js.map +0 -1
  425. package/lib/esm/graph/document/GraphWorkflowDocumentReader.js.map +0 -1
  426. package/lib/esm/graph/document/GraphWorkflowDocumentSerializer.js.map +0 -1
  427. package/lib/esm/graph/document/GraphWorkflowUiState.js.map +0 -1
  428. package/lib/esm/graph/document/index.js.map +0 -1
  429. package/lib/esm/graph/index.js.map +0 -1
  430. package/lib/esm/graph/overrides/Metadata.js.map +0 -1
  431. package/lib/esm/graph/overrides/Rendering.js.map +0 -1
  432. package/lib/esm/graph/overrides/index.js.map +0 -1
  433. package/lib/esm/graph/overrides/overrides.js.map +0 -1
  434. package/lib/esm/graph/reader.js.map +0 -1
  435. package/lib/esm/graph/registry.js.map +0 -1
  436. package/lib/esm/graph/snapshot.js.map +0 -1
  437. package/lib/esm/graph/types.js.map +0 -1
  438. package/lib/esm/index.js.map +0 -1
  439. package/lib/esm/model/Renderable.js.map +0 -1
  440. package/lib/esm/model/decorators.js.map +0 -1
  441. package/lib/esm/model/index.js.map +0 -1
  442. package/lib/esm/model/model.js.map +0 -1
  443. package/lib/esm/model/overrides.js.map +0 -1
  444. package/lib/esm/overrides/ModelBuilderExtensions.js.map +0 -1
  445. package/lib/esm/overrides/index.js.map +0 -1
  446. package/lib/esm/ui/DecafComponent.js.map +0 -1
  447. package/lib/esm/ui/DecafEventHandler.js.map +0 -1
  448. package/lib/esm/ui/DecafTranslateService.js.map +0 -1
  449. package/lib/esm/ui/Rendering.js.map +0 -1
  450. package/lib/esm/ui/UIValidator.js.map +0 -1
  451. package/lib/esm/ui/constants.js.map +0 -1
  452. package/lib/esm/ui/decorators.js.map +0 -1
  453. package/lib/esm/ui/errors.js.map +0 -1
  454. package/lib/esm/ui/index.js.map +0 -1
  455. package/lib/esm/ui/interfaces/IDecafModal.js.map +0 -1
  456. package/lib/esm/ui/interfaces/IDecafRouter.js.map +0 -1
  457. package/lib/esm/ui/interfaces/IDecafSpinner.js.map +0 -1
  458. package/lib/esm/ui/interfaces/IDecafToast.js.map +0 -1
  459. package/lib/esm/ui/interfaces/index.js.map +0 -1
  460. package/lib/esm/ui/overrides.js.map +0 -1
  461. package/lib/esm/ui/types.js.map +0 -1
  462. package/lib/esm/ui/utils.js.map +0 -1
  463. package/lib/esm/ui/validator.js.map +0 -1
  464. package/lib/esm/user-requests/UserRequestHandler.js.map +0 -1
  465. package/lib/esm/user-requests/constants.js.map +0 -1
  466. package/lib/esm/user-requests/decorators.js.map +0 -1
  467. package/lib/esm/user-requests/errors.js.map +0 -1
  468. package/lib/esm/user-requests/index.js.map +0 -1
  469. package/lib/esm/user-requests/types.js.map +0 -1
@@ -0,0 +1,338 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GRAPH_BUILT_IN_NODE_MANIFESTS_BY_KIND = exports.GRAPH_BUILT_IN_NODE_MANIFESTS = exports.AGENT_GRAPH_NODE_MANIFEST = exports.BREAK_GRAPH_NODE_MANIFEST = exports.UTILITY_LOG_GRAPH_NODE_MANIFEST = exports.LOG_GRAPH_NODE_MANIFEST = exports.CODE_GRAPH_NODE_MANIFEST = exports.RETURN_GRAPH_NODE_MANIFEST = exports.HUMAN_APPROVAL_GRAPH_NODE_MANIFEST = exports.ERROR_BOUNDARY_GRAPH_NODE_MANIFEST = exports.DELAY_GRAPH_NODE_MANIFEST = exports.MAP_GRAPH_NODE_MANIFEST = exports.MERGE_GRAPH_NODE_MANIFEST = exports.PARALLEL_GRAPH_NODE_MANIFEST = exports.IF_GRAPH_NODE_MANIFEST = exports.CHAT_TRIGGER_GRAPH_NODE_MANIFEST = exports.FORM_TRIGGER_GRAPH_NODE_MANIFEST = exports.EVENT_TRIGGER_GRAPH_NODE_MANIFEST = exports.SCHEDULE_TRIGGER_GRAPH_NODE_MANIFEST = exports.WEBHOOK_TRIGGER_GRAPH_NODE_MANIFEST = exports.MANUAL_TRIGGER_GRAPH_NODE_MANIFEST = exports.SWITCH_GRAPH_NODE_MANIFEST = exports.UNTIL_GRAPH_NODE_MANIFEST = exports.WHILE_GRAPH_NODE_MANIFEST = exports.FOREACH_GRAPH_NODE_MANIFEST = void 0;
4
+ const index_js_1 = require("./../catalog/index.cjs");
5
+ const agent_js_1 = require("./agents/agent.cjs");
6
+ const break_js_1 = require("./flow-control/break.cjs");
7
+ const error_boundary_js_1 = require("./flow-control/error-boundary.cjs");
8
+ const human_approval_js_1 = require("./flow-control/human-approval.cjs");
9
+ const if_js_1 = require("./flow-control/if.cjs");
10
+ const parallel_js_1 = require("./flow-control/parallel.cjs");
11
+ const switch_js_1 = require("./flow-control/switch.cjs");
12
+ const code_js_1 = require("./utility/code.cjs");
13
+ const delay_js_1 = require("./utility/delay.cjs");
14
+ const log_js_1 = require("./utility/log.cjs");
15
+ const map_js_1 = require("./utility/map.cjs");
16
+ const merge_js_1 = require("./utility/merge.cjs");
17
+ const return_js_1 = require("./utility/return.cjs");
18
+ const utility_log_js_1 = require("./utility/utility-log.cjs");
19
+ const chat_js_1 = require("./triggers/chat.cjs");
20
+ const event_js_1 = require("./triggers/event.cjs");
21
+ const form_js_1 = require("./triggers/form.cjs");
22
+ const manual_js_1 = require("./triggers/manual.cjs");
23
+ const schedule_js_1 = require("./triggers/schedule.cjs");
24
+ const webhook_js_1 = require("./triggers/webhook.cjs");
25
+ /**
26
+ * Builds a single {@link GraphPortManifest} from its id, label, direction,
27
+ * and optional extra fields — the terse constructor used by the hand-authored
28
+ * loop manifests below.
29
+ *
30
+ * @param id - Port identifier (matches the decorated property handle).
31
+ * @param label - Human-readable port label.
32
+ * @param direction - Port direction (`input` or `output`).
33
+ * @param extra - Optional manifest fields merged over the defaults.
34
+ * @returns The assembled port manifest.
35
+ */
36
+ function port(id, label, direction, extra = {}) {
37
+ return { id, label, direction, ...extra };
38
+ }
39
+ /**
40
+ * Compiles a `@node`-decorated class into its published
41
+ * {@link GraphNodeManifest}, so the served shape matches what the Angular
42
+ * palette consumes.
43
+ *
44
+ * @param node - The decorated node class constructor.
45
+ * @param name - Display name override for the compiled manifest.
46
+ * @returns The compiled node manifest.
47
+ */
48
+ function compile(node, name) {
49
+ return (0, index_js_1.graphNodeManifest)(node, { name });
50
+ }
51
+ /** Manifest for the `core.loop.foreach` node: runs the loop body once per item (or slice) of the input array. */
52
+ exports.FOREACH_GRAPH_NODE_MANIFEST = {
53
+ kind: "core.loop.foreach",
54
+ capabilities: ["loop"],
55
+ display: {
56
+ name: "Foreach",
57
+ description: "Runs the loop body once per item (or per slice of items) of the input array, collecting the results in order.",
58
+ category: "Flow Control",
59
+ color: "#8b5cf6",
60
+ icon: { type: "catalogue", name: "ti-repeat" },
61
+ width: 120,
62
+ height: 140,
63
+ labels: ["flow", "loop", "foreach", "iteration"],
64
+ },
65
+ inputs: [
66
+ port("items", "Items", "input", {
67
+ required: true,
68
+ schema: { type: "array", items: { type: "any" } },
69
+ }),
70
+ port("slice", "Slice size", "input", { schema: { type: "number", integer: true, min: 1 } }),
71
+ port("state", "Initial state", "input", { schema: { type: "any" } }),
72
+ ],
73
+ outputs: [
74
+ port("results", "Results", "output", {
75
+ schema: { type: "array", items: { type: "any" } },
76
+ }),
77
+ port("completed", "Completed", "output", {
78
+ schema: { type: "array", items: { type: "any" } },
79
+ }),
80
+ port("iterations", "Iterations", "output", { schema: { type: "number", integer: true, min: 0 } }),
81
+ port("broken", "Broken", "output", { schema: { type: "boolean" } }),
82
+ port("state", "Final state", "output", { schema: { type: "any" } }),
83
+ ],
84
+ parameters: [
85
+ {
86
+ type: "number",
87
+ id: "maxIterations",
88
+ label: "Max iterations",
89
+ integer: true,
90
+ min: 1,
91
+ },
92
+ {
93
+ type: "object",
94
+ id: "condition",
95
+ label: "Condition",
96
+ },
97
+ {
98
+ type: "string",
99
+ id: "itemPort",
100
+ label: "Item port",
101
+ },
102
+ {
103
+ type: "string",
104
+ id: "resultPort",
105
+ label: "Result port",
106
+ },
107
+ {
108
+ type: "string",
109
+ id: "statePort",
110
+ label: "State port",
111
+ },
112
+ {
113
+ type: "number",
114
+ id: "slice",
115
+ label: "Slice size",
116
+ integer: true,
117
+ min: 1,
118
+ },
119
+ ],
120
+ };
121
+ /** Manifest for the `core.loop.while` node: repeats the loop body while the condition holds. */
122
+ exports.WHILE_GRAPH_NODE_MANIFEST = {
123
+ kind: "core.loop.while",
124
+ capabilities: ["loop"],
125
+ display: {
126
+ name: "While",
127
+ description: "Runs the loop body while the configured condition evaluates to true, threading the state between iterations.",
128
+ category: "Flow Control",
129
+ color: "#8b5cf6",
130
+ icon: { type: "catalogue", name: "ti-repeat-once" },
131
+ width: 120,
132
+ height: 140,
133
+ labels: ["flow", "loop", "while", "condition"],
134
+ },
135
+ inputs: [port("state", "Initial state", "input", { schema: { type: "any" } })],
136
+ outputs: [
137
+ port("state", "Final state", "output", { schema: { type: "any" } }),
138
+ port("iterations", "Iterations", "output", { schema: { type: "number", integer: true, min: 0 } }),
139
+ ],
140
+ parameters: [
141
+ {
142
+ type: "number",
143
+ id: "maxIterations",
144
+ label: "Max iterations",
145
+ integer: true,
146
+ min: 1,
147
+ },
148
+ {
149
+ type: "object",
150
+ id: "condition",
151
+ label: "Condition",
152
+ required: true,
153
+ },
154
+ {
155
+ type: "string",
156
+ id: "statePort",
157
+ label: "State port",
158
+ },
159
+ {
160
+ type: "string",
161
+ id: "inputPort",
162
+ label: "Input port",
163
+ },
164
+ {
165
+ type: "string",
166
+ id: "outputPort",
167
+ label: "Output port",
168
+ },
169
+ ],
170
+ };
171
+ /** Manifest for the `core.loop.until` node: repeats the loop body until the condition holds. */
172
+ exports.UNTIL_GRAPH_NODE_MANIFEST = {
173
+ kind: "core.loop.until",
174
+ capabilities: ["loop"],
175
+ display: {
176
+ name: "Until",
177
+ description: "Runs the loop body at least once, then repeats until the configured condition evaluates to true.",
178
+ category: "Flow Control",
179
+ color: "#8b5cf6",
180
+ icon: { type: "catalogue", name: "ti-repeat" },
181
+ width: 120,
182
+ height: 140,
183
+ labels: ["flow", "loop", "until", "condition"],
184
+ },
185
+ inputs: [port("state", "Initial state", "input", { schema: { type: "any" } })],
186
+ outputs: [
187
+ port("state", "Final state", "output", { schema: { type: "any" } }),
188
+ port("iterations", "Iterations", "output", { schema: { type: "number", integer: true, min: 0 } }),
189
+ ],
190
+ parameters: [
191
+ {
192
+ type: "number",
193
+ id: "maxIterations",
194
+ label: "Max iterations",
195
+ integer: true,
196
+ min: 1,
197
+ },
198
+ {
199
+ type: "object",
200
+ id: "condition",
201
+ label: "Condition",
202
+ required: true,
203
+ },
204
+ {
205
+ type: "string",
206
+ id: "statePort",
207
+ label: "State port",
208
+ },
209
+ {
210
+ type: "string",
211
+ id: "inputPort",
212
+ label: "Input port",
213
+ },
214
+ {
215
+ type: "string",
216
+ id: "outputPort",
217
+ label: "Output port",
218
+ },
219
+ ],
220
+ };
221
+ const switchCompiled = compile(switch_js_1.SwitchFlowNode, "Switch");
222
+ /** Manifest for the `core.flow.switch` node: routes execution by switch-case conditions (cases live under `parameters["switch"]`). */
223
+ exports.SWITCH_GRAPH_NODE_MANIFEST = {
224
+ ...switchCompiled,
225
+ outputs: [],
226
+ parameters: [
227
+ ...switchCompiled.parameters,
228
+ {
229
+ type: "collection",
230
+ id: "cases",
231
+ label: "Cases",
232
+ required: true,
233
+ itemIdPath: "outputPort",
234
+ itemLabelPath: "label",
235
+ },
236
+ {
237
+ type: "boolean",
238
+ id: "hasDefault",
239
+ label: "Has default",
240
+ defaultValue: false,
241
+ },
242
+ ],
243
+ dynamicPorts: [
244
+ {
245
+ type: "repeatFromParameter",
246
+ parameter: "cases",
247
+ itemIdPath: "outputPort",
248
+ itemLabelPath: "label",
249
+ direction: "output",
250
+ portIdTemplate: "${id}",
251
+ defaultPort: {
252
+ id: "case",
253
+ label: "Case",
254
+ direction: "output",
255
+ schema: { type: "any" },
256
+ },
257
+ },
258
+ {
259
+ type: "togglePort",
260
+ parameter: "hasDefault",
261
+ equals: true,
262
+ port: {
263
+ id: "default",
264
+ label: "Default",
265
+ direction: "output",
266
+ schema: { type: "any" },
267
+ },
268
+ },
269
+ ],
270
+ };
271
+ /** Manifest for the manual-trigger node (starts a run on demand). */
272
+ exports.MANUAL_TRIGGER_GRAPH_NODE_MANIFEST = compile(manual_js_1.ManualTriggerNode, "Manual trigger");
273
+ /** Manifest for the webhook-trigger node (starts a run from an inbound webhook). */
274
+ exports.WEBHOOK_TRIGGER_GRAPH_NODE_MANIFEST = compile(webhook_js_1.WebhookTriggerNode, "Webhook trigger");
275
+ /** Manifest for the schedule-trigger node (starts a run on a schedule). */
276
+ exports.SCHEDULE_TRIGGER_GRAPH_NODE_MANIFEST = compile(schedule_js_1.ScheduleTriggerNode, "Schedule trigger");
277
+ /** Manifest for the event-trigger node (starts a run on an observed event). */
278
+ exports.EVENT_TRIGGER_GRAPH_NODE_MANIFEST = compile(event_js_1.EventTriggerNode, "Event trigger");
279
+ /** Manifest for the form-trigger node (starts a run from a form submission). */
280
+ exports.FORM_TRIGGER_GRAPH_NODE_MANIFEST = compile(form_js_1.FormTriggerNode, "Form trigger");
281
+ /** Manifest for the chat-trigger node (starts a run from a chat message). */
282
+ exports.CHAT_TRIGGER_GRAPH_NODE_MANIFEST = compile(chat_js_1.ChatTriggerNode, "Chat trigger");
283
+ /** Manifest for the if node (conditional branch on a boolean condition). */
284
+ exports.IF_GRAPH_NODE_MANIFEST = compile(if_js_1.IfFlowNode, "If");
285
+ /** Manifest for the parallel node (runs branches concurrently). */
286
+ exports.PARALLEL_GRAPH_NODE_MANIFEST = compile(parallel_js_1.ParallelFlowNode, "Parallel");
287
+ /** Manifest for the merge node (joins parallel branches). */
288
+ exports.MERGE_GRAPH_NODE_MANIFEST = compile(merge_js_1.MergeFlowNode, "Merge");
289
+ /** Manifest for the map node (transforms each input item). */
290
+ exports.MAP_GRAPH_NODE_MANIFEST = compile(map_js_1.MapFlowNode, "Map");
291
+ /** Manifest for the delay node (pauses execution for a duration). */
292
+ exports.DELAY_GRAPH_NODE_MANIFEST = compile(delay_js_1.DelayFlowNode, "Delay");
293
+ /** Manifest for the error-boundary node (isolates branch failures). */
294
+ exports.ERROR_BOUNDARY_GRAPH_NODE_MANIFEST = compile(error_boundary_js_1.ErrorBoundaryFlowNode, "Error boundary");
295
+ /** Manifest for the human-approval node (waits for an approval decision). */
296
+ exports.HUMAN_APPROVAL_GRAPH_NODE_MANIFEST = compile(human_approval_js_1.HumanApprovalFlowNode, "Human approval");
297
+ /** Manifest for the return node (terminates the workflow with output values). */
298
+ exports.RETURN_GRAPH_NODE_MANIFEST = compile(return_js_1.ReturnFlowNode, "Return");
299
+ /** Manifest for the code node (executes user code). */
300
+ exports.CODE_GRAPH_NODE_MANIFEST = compile(code_js_1.CodeFlowNode, "Code");
301
+ /** Manifest for the log node (logs its input). */
302
+ exports.LOG_GRAPH_NODE_MANIFEST = compile(log_js_1.LogFlowNode, "Log");
303
+ /** Manifest for the utility-log node (log-shaped utility sink). */
304
+ exports.UTILITY_LOG_GRAPH_NODE_MANIFEST = compile(utility_log_js_1.UtilityLogNode, "Utility Log");
305
+ /** Manifest for the break node (exits the enclosing loop). */
306
+ exports.BREAK_GRAPH_NODE_MANIFEST = compile(break_js_1.BreakFlowNode, "Break");
307
+ /** Manifest for the agent node (delegates work to an agent). */
308
+ exports.AGENT_GRAPH_NODE_MANIFEST = compile(agent_js_1.AgentNode, "Agent");
309
+ /** All built-in node manifests, in catalogue display order. */
310
+ exports.GRAPH_BUILT_IN_NODE_MANIFESTS = [
311
+ exports.MANUAL_TRIGGER_GRAPH_NODE_MANIFEST,
312
+ exports.WEBHOOK_TRIGGER_GRAPH_NODE_MANIFEST,
313
+ exports.SCHEDULE_TRIGGER_GRAPH_NODE_MANIFEST,
314
+ exports.EVENT_TRIGGER_GRAPH_NODE_MANIFEST,
315
+ exports.FORM_TRIGGER_GRAPH_NODE_MANIFEST,
316
+ exports.CHAT_TRIGGER_GRAPH_NODE_MANIFEST,
317
+ exports.IF_GRAPH_NODE_MANIFEST,
318
+ exports.SWITCH_GRAPH_NODE_MANIFEST,
319
+ exports.PARALLEL_GRAPH_NODE_MANIFEST,
320
+ exports.MERGE_GRAPH_NODE_MANIFEST,
321
+ exports.MAP_GRAPH_NODE_MANIFEST,
322
+ exports.DELAY_GRAPH_NODE_MANIFEST,
323
+ exports.ERROR_BOUNDARY_GRAPH_NODE_MANIFEST,
324
+ exports.HUMAN_APPROVAL_GRAPH_NODE_MANIFEST,
325
+ exports.RETURN_GRAPH_NODE_MANIFEST,
326
+ exports.CODE_GRAPH_NODE_MANIFEST,
327
+ exports.LOG_GRAPH_NODE_MANIFEST,
328
+ exports.UTILITY_LOG_GRAPH_NODE_MANIFEST,
329
+ exports.BREAK_GRAPH_NODE_MANIFEST,
330
+ exports.AGENT_GRAPH_NODE_MANIFEST,
331
+ exports.FOREACH_GRAPH_NODE_MANIFEST,
332
+ exports.WHILE_GRAPH_NODE_MANIFEST,
333
+ exports.UNTIL_GRAPH_NODE_MANIFEST,
334
+ ];
335
+ /** Built-in manifests indexed by node `kind` — the source for built-in catalogue registrations. */
336
+ exports.GRAPH_BUILT_IN_NODE_MANIFESTS_BY_KIND = Object.fromEntries(exports.GRAPH_BUILT_IN_NODE_MANIFESTS.map((manifest) => [manifest.kind, manifest]));
337
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dyYXBoL25vZGVzL21hbmlmZXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsOEJBQW1CO0FBRS9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsMEJBQXVCO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0NBQTZCO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx5Q0FBc0M7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHlDQUFzQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLDZCQUEwQjtBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsbUNBQWdDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsaUNBQThCO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsMEJBQXVCO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsMkJBQXdCO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUseUJBQXNCO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUseUJBQXNCO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsMkJBQXdCO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsNEJBQXlCO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsaUNBQThCO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsMkJBQXdCO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSw0QkFBeUI7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSwyQkFBd0I7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDZCQUEwQjtBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsK0JBQTRCO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSw4QkFBMkI7QUFFeEQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsSUFBSSxDQUNYLEVBQVUsRUFDVixLQUFhLEVBQ2IsU0FB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QUN6QixrQ0FBa0M7SUFDbEMsa0NBQWtDO0lBQ2xDLDBCQUEwQjtJQUMxQix3QkFBd0I7SUFDeEIsdUJBQXVCO0lBQ3ZCLCtCQUErQjtJQUMvQix5QkFBeUI7SUFDekIseUJBQXlCO0lBQ3pCLDJCQUEyQjtJQUMzQix5QkFBeUI7SUFDekIseUJBQXlCO0NBQzFCLENBQUM7QUFFRixtR0FBbUc7QUFDbkcsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBRzlDLE1BQU0sQ0FBQyxXQUFXLENBQ3BCLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQzNFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgdWktZGVjb3JhdG9ycy9ncmFwaC9ub2Rlcy9tYW5pZmVzdHNcbiAqIEBzdW1tYXJ5IEJ1aWx0LWluIG5vZGUgbWFuaWZlc3RzIChERUNBRi01MCDCpzQuMTIpLlxuICogQGRlc2NyaXB0aW9uIFRoZSBjYXRhbG9ndWUtcHVibGlzaGVkIEpTT04gbWFuaWZlc3RzIGZvciBldmVyeSBub2RlIGtpbmRcbiAqIHRoZSBiYWNrZW5kIHNoaXBzLiBMb29wIG1hbmlmZXN0cyBhcmUgaGFuZC1hdXRob3JlZCAodGhlaXIgbG9vcC1ib2R5XG4gKiBzaGFwZXMgYXJlIHN0cnVjdHVyYWwpOyB0aGUgcmVzdCBhcmUgY29tcGlsZWQgZnJvbSB0aGUgc2hhcmVkXG4gKiBgQG5vZGVgLWRlY29yYXRlZCBjbGFzc2VzIHZpYSBgZ3JhcGhOb2RlTWFuaWZlc3RgLCBzbyB0aGUgc2VydmVkIHNoYXBlIGlzXG4gKiBpZGVudGljYWwgdG8gd2hhdCB0aGUgQW5ndWxhciBwYWxldHRlIGNvbnN1bWVzLiBBZ2dyZWdhdGVkIGluXG4gKiBgR1JBUEhfQlVJTFRfSU5fTk9ERV9NQU5JRkVTVFNgIGFuZCBpbmRleGVkIGJ5IGtpbmQgaW5cbiAqIGBHUkFQSF9CVUlMVF9JTl9OT0RFX01BTklGRVNUU19CWV9LSU5EYC5cbiAqL1xuaW1wb3J0IHR5cGUge1xuICBHcmFwaE5vZGVNYW5pZmVzdCxcbiAgR3JhcGhQb3J0TWFuaWZlc3QsXG59IGZyb20gXCIuLi9jYXRhbG9nXCI7XG5pbXBvcnQgeyBncmFwaE5vZGVNYW5pZmVzdCB9IGZyb20gXCIuLi9jYXRhbG9nXCI7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBBZ2VudE5vZGUgfSBmcm9tIFwiLi9hZ2VudHMvYWdlbnRcIjtcbmltcG9ydCB7IEJyZWFrRmxvd05vZGUgfSBmcm9tIFwiLi9mbG93LWNvbnRyb2wvYnJlYWtcIjtcbmltcG9ydCB7IEVycm9yQm91bmRhcnlGbG93Tm9kZSB9IGZyb20gXCIuL2Zsb3ctY29udHJvbC9lcnJvci1ib3VuZGFyeVwiO1xuaW1wb3J0IHsgSHVtYW5BcHByb3ZhbEZsb3dOb2RlIH0gZnJvbSBcIi4vZmxvdy1jb250cm9sL2h1bWFuLWFwcHJvdmFsXCI7XG5pbXBvcnQgeyBJZkZsb3dOb2RlIH0gZnJvbSBcIi4vZmxvdy1jb250cm9sL2lmXCI7XG5pbXBvcnQgeyBQYXJhbGxlbEZsb3dOb2RlIH0gZnJvbSBcIi4vZmxvdy1jb250cm9sL3BhcmFsbGVsXCI7XG5pbXBvcnQgeyBTd2l0Y2hGbG93Tm9kZSB9IGZyb20gXCIuL2Zsb3ctY29udHJvbC9zd2l0Y2hcIjtcbmltcG9ydCB7IENvZGVGbG93Tm9kZSB9IGZyb20gXCIuL3V0aWxpdHkvY29kZVwiO1xuaW1wb3J0IHsgRGVsYXlGbG93Tm9kZSB9IGZyb20gXCIuL3V0aWxpdHkvZGVsYXlcIjtcbmltcG9ydCB7IExvZ0Zsb3dOb2RlIH0gZnJvbSBcIi4vdXRpbGl0eS9sb2dcIjtcbmltcG9ydCB7IE1hcEZsb3dOb2RlIH0gZnJvbSBcIi4vdXRpbGl0eS9tYXBcIjtcbmltcG9ydCB7IE1lcmdlRmxvd05vZGUgfSBmcm9tIFwiLi91dGlsaXR5L21lcmdlXCI7XG5pbXBvcnQgeyBSZXR1cm5GbG93Tm9kZSB9IGZyb20gXCIuL3V0aWxpdHkvcmV0dXJuXCI7XG5pbXBvcnQgeyBVdGlsaXR5TG9nTm9kZSB9IGZyb20gXCIuL3V0aWxpdHkvdXRpbGl0eS1sb2dcIjtcbmltcG9ydCB7IENoYXRUcmlnZ2VyTm9kZSB9IGZyb20gXCIuL3RyaWdnZXJzL2NoYXRcIjtcbmltcG9ydCB7IEV2ZW50VHJpZ2dlck5vZGUgfSBmcm9tIFwiLi90cmlnZ2Vycy9ldmVudFwiO1xuaW1wb3J0IHsgRm9ybVRyaWdnZXJOb2RlIH0gZnJvbSBcIi4vdHJpZ2dlcnMvZm9ybVwiO1xuaW1wb3J0IHsgTWFudWFsVHJpZ2dlck5vZGUgfSBmcm9tIFwiLi90cmlnZ2Vycy9tYW51YWxcIjtcbmltcG9ydCB7IFNjaGVkdWxlVHJpZ2dlck5vZGUgfSBmcm9tIFwiLi90cmlnZ2Vycy9zY2hlZHVsZVwiO1xuaW1wb3J0IHsgV2ViaG9va1RyaWdnZXJOb2RlIH0gZnJvbSBcIi4vdHJpZ2dlcnMvd2ViaG9va1wiO1xuXG4vKipcbiAqIEJ1aWxkcyBhIHNpbmdsZSB7QGxpbmsgR3JhcGhQb3J0TWFuaWZlc3R9IGZyb20gaXRzIGlkLCBsYWJlbCwgZGlyZWN0aW9uLFxuICogYW5kIG9wdGlvbmFsIGV4dHJhIGZpZWxkcyDigJQgdGhlIHRlcnNlIGNvbnN0cnVjdG9yIHVzZWQgYnkgdGhlIGhhbmQtYXV0aG9yZWRcbiAqIGxvb3AgbWFuaWZlc3RzIGJlbG93LlxuICpcbiAqIEBwYXJhbSBpZCAtIFBvcnQgaWRlbnRpZmllciAobWF0Y2hlcyB0aGUgZGVjb3JhdGVkIHByb3BlcnR5IGhhbmRsZSkuXG4gKiBAcGFyYW0gbGFiZWwgLSBIdW1hbi1yZWFkYWJsZSBwb3J0IGxhYmVsLlxuICogQHBhcmFtIGRpcmVjdGlvbiAtIFBvcnQgZGlyZWN0aW9uIChgaW5wdXRgIG9yIGBvdXRwdXRgKS5cbiAqIEBwYXJhbSBleHRyYSAtIE9wdGlvbmFsIG1hbmlmZXN0IGZpZWxkcyBtZXJnZWQgb3ZlciB0aGUgZGVmYXVsdHMuXG4gKiBAcmV0dXJucyBUaGUgYXNzZW1ibGVkIHBvcnQgbWFuaWZlc3QuXG4gKi9cbmZ1bmN0aW9uIHBvcnQoXG4gIGlkOiBzdHJpbmcsXG4gIGxhYmVsOiBzdHJpbmcsXG4gIGRpcmVjdGlvbjogXCJpbnB1dFwiIHwgXCJvdXRwdXRcIixcbiAgZXh0cmE6IFBhcnRpYWw8R3JhcGhQb3J0TWFuaWZlc3Q+ID0ge31cbik6IEdyYXBoUG9ydE1hbmlmZXN0IHtcbiAgcmV0dXJuIHsgaWQsIGxhYmVsLCBkaXJlY3Rpb24sIC4uLmV4dHJhIH07XG59XG5cbi8qKlxuICogQ29tcGlsZXMgYSBgQG5vZGVgLWRlY29yYXRlZCBjbGFzcyBpbnRvIGl0cyBwdWJsaXNoZWRcbiAqIHtAbGluayBHcmFwaE5vZGVNYW5pZmVzdH0sIHNvIHRoZSBzZXJ2ZWQgc2hhcGUgbWF0Y2hlcyB3aGF0IHRoZSBBbmd1bGFyXG4gKiBwYWxldHRlIGNvbnN1bWVzLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gVGhlIGRlY29yYXRlZCBub2RlIGNsYXNzIGNvbnN0cnVjdG9yLlxuICogQHBhcmFtIG5hbWUgLSBEaXNwbGF5IG5hbWUgb3ZlcnJpZGUgZm9yIHRoZSBjb21waWxlZCBtYW5pZmVzdC5cbiAqIEByZXR1cm5zIFRoZSBjb21waWxlZCBub2RlIG1hbmlmZXN0LlxuICovXG5mdW5jdGlvbiBjb21waWxlKG5vZGU6IHVua25vd24sIG5hbWU6IHN0cmluZyk6IEdyYXBoTm9kZU1hbmlmZXN0IHtcbiAgcmV0dXJuIGdyYXBoTm9kZU1hbmlmZXN0KG5vZGUgYXMgQ29uc3RydWN0b3IsIHsgbmFtZSB9KTtcbn1cblxuLyoqIE1hbmlmZXN0IGZvciB0aGUgYGNvcmUubG9vcC5mb3JlYWNoYCBub2RlOiBydW5zIHRoZSBsb29wIGJvZHkgb25jZSBwZXIgaXRlbSAob3Igc2xpY2UpIG9mIHRoZSBpbnB1dCBhcnJheS4gKi9cbmV4cG9ydCBjb25zdCBGT1JFQUNIX0dSQVBIX05PREVfTUFOSUZFU1Q6IEdyYXBoTm9kZU1hbmlmZXN0ID0ge1xuICBraW5kOiBcImNvcmUubG9vcC5mb3JlYWNoXCIsXG4gIGNhcGFiaWxpdGllczogW1wibG9vcFwiXSxcbiAgZGlzcGxheToge1xuICAgIG5hbWU6IFwiRm9yZWFjaFwiLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJSdW5zIHRoZSBsb29wIGJvZHkgb25jZSBwZXIgaXRlbSAob3IgcGVyIHNsaWNlIG9mIGl0ZW1zKSBvZiB0aGUgaW5wdXQgYXJyYXksIGNvbGxlY3RpbmcgdGhlIHJlc3VsdHMgaW4gb3JkZXIuXCIsXG4gICAgY2F0ZWdvcnk6IFwiRmxvdyBDb250cm9sXCIsXG4gICAgY29sb3I6IFwiIzhiNWNmNlwiLFxuICAgIGljb246IHsgdHlwZTogXCJjYXRhbG9ndWVcIiwgbmFtZTogXCJ0aS1yZXBlYXRcIiB9LFxuICAgIHdpZHRoOiAxMjAsXG4gICAgaGVpZ2h0OiAxNDAsXG4gICAgbGFiZWxzOiBbXCJmbG93XCIsIFwibG9vcFwiLCBcImZvcmVhY2hcIiwgXCJpdGVyYXRpb25cIl0sXG4gIH0sXG4gIGlucHV0czogW1xuICAgIHBvcnQoXCJpdGVtc1wiLCBcIkl0ZW1zXCIsIFwiaW5wdXRcIiwge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBzY2hlbWE6IHsgdHlwZTogXCJhcnJheVwiLCBpdGVtczogeyB0eXBlOiBcImFueVwiIH0gfSxcbiAgICB9KSxcbiAgICBwb3J0KFwic2xpY2VcIiwgXCJTbGljZSBzaXplXCIsIFwiaW5wdXRcIiwgeyBzY2hlbWE6IHsgdHlwZTogXCJudW1iZXJcIiwgaW50ZWdlcjogdHJ1ZSwgbWluOiAxIH0gfSksXG4gICAgcG9ydChcInN0YXRlXCIsIFwiSW5pdGlhbCBzdGF0ZVwiLCBcImlucHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwiYW55XCIgfSB9KSxcbiAgXSxcbiAgb3V0cHV0czogW1xuICAgIHBvcnQoXCJyZXN1bHRzXCIsIFwiUmVzdWx0c1wiLCBcIm91dHB1dFwiLCB7XG4gICAgICBzY2hlbWE6IHsgdHlwZTogXCJhcnJheVwiLCBpdGVtczogeyB0eXBlOiBcImFueVwiIH0gfSxcbiAgICB9KSxcbiAgICBwb3J0KFwiY29tcGxldGVkXCIsIFwiQ29tcGxldGVkXCIsIFwib3V0cHV0XCIsIHtcbiAgICAgIHNjaGVtYTogeyB0eXBlOiBcImFycmF5XCIsIGl0ZW1zOiB7IHR5cGU6IFwiYW55XCIgfSB9LFxuICAgIH0pLFxuICAgIHBvcnQoXCJpdGVyYXRpb25zXCIsIFwiSXRlcmF0aW9uc1wiLCBcIm91dHB1dFwiLCB7IHNjaGVtYTogeyB0eXBlOiBcIm51bWJlclwiLCBpbnRlZ2VyOiB0cnVlLCBtaW46IDAgfSB9KSxcbiAgICBwb3J0KFwiYnJva2VuXCIsIFwiQnJva2VuXCIsIFwib3V0cHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0gfSksXG4gICAgcG9ydChcInN0YXRlXCIsIFwiRmluYWwgc3RhdGVcIiwgXCJvdXRwdXRcIiwgeyBzY2hlbWE6IHsgdHlwZTogXCJhbnlcIiB9IH0pLFxuICBdLFxuICBwYXJhbWV0ZXJzOiBbXG4gICAge1xuICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgIGlkOiBcIm1heEl0ZXJhdGlvbnNcIixcbiAgICAgIGxhYmVsOiBcIk1heCBpdGVyYXRpb25zXCIsXG4gICAgICBpbnRlZ2VyOiB0cnVlLFxuICAgICAgbWluOiAxLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgIGlkOiBcImNvbmRpdGlvblwiLFxuICAgICAgbGFiZWw6IFwiQ29uZGl0aW9uXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgaWQ6IFwiaXRlbVBvcnRcIixcbiAgICAgIGxhYmVsOiBcIkl0ZW0gcG9ydFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIGlkOiBcInJlc3VsdFBvcnRcIixcbiAgICAgIGxhYmVsOiBcIlJlc3VsdCBwb3J0XCIsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgaWQ6IFwic3RhdGVQb3J0XCIsXG4gICAgICBsYWJlbDogXCJTdGF0ZSBwb3J0XCIsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgaWQ6IFwic2xpY2VcIixcbiAgICAgIGxhYmVsOiBcIlNsaWNlIHNpemVcIixcbiAgICAgIGludGVnZXI6IHRydWUsXG4gICAgICBtaW46IDEsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGBjb3JlLmxvb3Aud2hpbGVgIG5vZGU6IHJlcGVhdHMgdGhlIGxvb3AgYm9keSB3aGlsZSB0aGUgY29uZGl0aW9uIGhvbGRzLiAqL1xuZXhwb3J0IGNvbnN0IFdISUxFX0dSQVBIX05PREVfTUFOSUZFU1Q6IEdyYXBoTm9kZU1hbmlmZXN0ID0ge1xuICBraW5kOiBcImNvcmUubG9vcC53aGlsZVwiLFxuICBjYXBhYmlsaXRpZXM6IFtcImxvb3BcIl0sXG4gIGRpc3BsYXk6IHtcbiAgICBuYW1lOiBcIldoaWxlXCIsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIlJ1bnMgdGhlIGxvb3AgYm9keSB3aGlsZSB0aGUgY29uZmlndXJlZCBjb25kaXRpb24gZXZhbHVhdGVzIHRvIHRydWUsIHRocmVhZGluZyB0aGUgc3RhdGUgYmV0d2VlbiBpdGVyYXRpb25zLlwiLFxuICAgIGNhdGVnb3J5OiBcIkZsb3cgQ29udHJvbFwiLFxuICAgIGNvbG9yOiBcIiM4YjVjZjZcIixcbiAgICBpY29uOiB7IHR5cGU6IFwiY2F0YWxvZ3VlXCIsIG5hbWU6IFwidGktcmVwZWF0LW9uY2VcIiB9LFxuICAgIHdpZHRoOiAxMjAsXG4gICAgaGVpZ2h0OiAxNDAsXG4gICAgbGFiZWxzOiBbXCJmbG93XCIsIFwibG9vcFwiLCBcIndoaWxlXCIsIFwiY29uZGl0aW9uXCJdLFxuICB9LFxuICBpbnB1dHM6IFtwb3J0KFwic3RhdGVcIiwgXCJJbml0aWFsIHN0YXRlXCIsIFwiaW5wdXRcIiwgeyBzY2hlbWE6IHsgdHlwZTogXCJhbnlcIiB9IH0pXSxcbiAgb3V0cHV0czogW1xuICAgIHBvcnQoXCJzdGF0ZVwiLCBcIkZpbmFsIHN0YXRlXCIsIFwib3V0cHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwiYW55XCIgfSB9KSxcbiAgICBwb3J0KFwiaXRlcmF0aW9uc1wiLCBcIkl0ZXJhdGlvbnNcIiwgXCJvdXRwdXRcIiwgeyBzY2hlbWE6IHsgdHlwZTogXCJudW1iZXJcIiwgaW50ZWdlcjogdHJ1ZSwgbWluOiAwIH0gfSksXG4gIF0sXG4gIHBhcmFtZXRlcnM6IFtcbiAgICB7XG4gICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgaWQ6IFwibWF4SXRlcmF0aW9uc1wiLFxuICAgICAgbGFiZWw6IFwiTWF4IGl0ZXJhdGlvbnNcIixcbiAgICAgIGludGVnZXI6IHRydWUsXG4gICAgICBtaW46IDEsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgaWQ6IFwiY29uZGl0aW9uXCIsXG4gICAgICBsYWJlbDogXCJDb25kaXRpb25cIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIGlkOiBcInN0YXRlUG9ydFwiLFxuICAgICAgbGFiZWw6IFwiU3RhdGUgcG9ydFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIGlkOiBcImlucHV0UG9ydFwiLFxuICAgICAgbGFiZWw6IFwiSW5wdXQgcG9ydFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIGlkOiBcIm91dHB1dFBvcnRcIixcbiAgICAgIGxhYmVsOiBcIk91dHB1dCBwb3J0XCIsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGBjb3JlLmxvb3AudW50aWxgIG5vZGU6IHJlcGVhdHMgdGhlIGxvb3AgYm9keSB1bnRpbCB0aGUgY29uZGl0aW9uIGhvbGRzLiAqL1xuZXhwb3J0IGNvbnN0IFVOVElMX0dSQVBIX05PREVfTUFOSUZFU1Q6IEdyYXBoTm9kZU1hbmlmZXN0ID0ge1xuICBraW5kOiBcImNvcmUubG9vcC51bnRpbFwiLFxuICBjYXBhYmlsaXRpZXM6IFtcImxvb3BcIl0sXG4gIGRpc3BsYXk6IHtcbiAgICBuYW1lOiBcIlVudGlsXCIsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIlJ1bnMgdGhlIGxvb3AgYm9keSBhdCBsZWFzdCBvbmNlLCB0aGVuIHJlcGVhdHMgdW50aWwgdGhlIGNvbmZpZ3VyZWQgY29uZGl0aW9uIGV2YWx1YXRlcyB0byB0cnVlLlwiLFxuICAgIGNhdGVnb3J5OiBcIkZsb3cgQ29udHJvbFwiLFxuICAgIGNvbG9yOiBcIiM4YjVjZjZcIixcbiAgICBpY29uOiB7IHR5cGU6IFwiY2F0YWxvZ3VlXCIsIG5hbWU6IFwidGktcmVwZWF0XCIgfSxcbiAgICB3aWR0aDogMTIwLFxuICAgIGhlaWdodDogMTQwLFxuICAgIGxhYmVsczogW1wiZmxvd1wiLCBcImxvb3BcIiwgXCJ1bnRpbFwiLCBcImNvbmRpdGlvblwiXSxcbiAgfSxcbiAgaW5wdXRzOiBbcG9ydChcInN0YXRlXCIsIFwiSW5pdGlhbCBzdGF0ZVwiLCBcImlucHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwiYW55XCIgfSB9KV0sXG4gIG91dHB1dHM6IFtcbiAgICBwb3J0KFwic3RhdGVcIiwgXCJGaW5hbCBzdGF0ZVwiLCBcIm91dHB1dFwiLCB7IHNjaGVtYTogeyB0eXBlOiBcImFueVwiIH0gfSksXG4gICAgcG9ydChcIml0ZXJhdGlvbnNcIiwgXCJJdGVyYXRpb25zXCIsIFwib3V0cHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwibnVtYmVyXCIsIGludGVnZXI6IHRydWUsIG1pbjogMCB9IH0pLFxuICBdLFxuICBwYXJhbWV0ZXJzOiBbXG4gICAge1xuICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgIGlkOiBcIm1heEl0ZXJhdGlvbnNcIixcbiAgICAgIGxhYmVsOiBcIk1heCBpdGVyYXRpb25zXCIsXG4gICAgICBpbnRlZ2VyOiB0cnVlLFxuICAgICAgbWluOiAxLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgIGlkOiBcImNvbmRpdGlvblwiLFxuICAgICAgbGFiZWw6IFwiQ29uZGl0aW9uXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICBpZDogXCJzdGF0ZVBvcnRcIixcbiAgICAgIGxhYmVsOiBcIlN0YXRlIHBvcnRcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICBpZDogXCJpbnB1dFBvcnRcIixcbiAgICAgIGxhYmVsOiBcIklucHV0IHBvcnRcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICBpZDogXCJvdXRwdXRQb3J0XCIsXG4gICAgICBsYWJlbDogXCJPdXRwdXQgcG9ydFwiLFxuICAgIH0sXG4gIF0sXG59O1xuXG5jb25zdCBzd2l0Y2hDb21waWxlZCA9IGNvbXBpbGUoU3dpdGNoRmxvd05vZGUsIFwiU3dpdGNoXCIpO1xuXG4vKiogTWFuaWZlc3QgZm9yIHRoZSBgY29yZS5mbG93LnN3aXRjaGAgbm9kZTogcm91dGVzIGV4ZWN1dGlvbiBieSBzd2l0Y2gtY2FzZSBjb25kaXRpb25zIChjYXNlcyBsaXZlIHVuZGVyIGBwYXJhbWV0ZXJzW1wic3dpdGNoXCJdYCkuICovXG5leHBvcnQgY29uc3QgU1dJVENIX0dSQVBIX05PREVfTUFOSUZFU1Q6IEdyYXBoTm9kZU1hbmlmZXN0ID0ge1xuICAuLi5zd2l0Y2hDb21waWxlZCxcbiAgb3V0cHV0czogW10sXG4gIHBhcmFtZXRlcnM6IFtcbiAgICAuLi5zd2l0Y2hDb21waWxlZC5wYXJhbWV0ZXJzLFxuICAgIHtcbiAgICAgIHR5cGU6IFwiY29sbGVjdGlvblwiLFxuICAgICAgaWQ6IFwiY2FzZXNcIixcbiAgICAgIGxhYmVsOiBcIkNhc2VzXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIGl0ZW1JZFBhdGg6IFwib3V0cHV0UG9ydFwiLFxuICAgICAgaXRlbUxhYmVsUGF0aDogXCJsYWJlbFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICBpZDogXCJoYXNEZWZhdWx0XCIsXG4gICAgICBsYWJlbDogXCJIYXMgZGVmYXVsdFwiLFxuICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICB9LFxuICBdLFxuICBkeW5hbWljUG9ydHM6IFtcbiAgICB7XG4gICAgICB0eXBlOiBcInJlcGVhdEZyb21QYXJhbWV0ZXJcIixcbiAgICAgIHBhcmFtZXRlcjogXCJjYXNlc1wiLFxuICAgICAgaXRlbUlkUGF0aDogXCJvdXRwdXRQb3J0XCIsXG4gICAgICBpdGVtTGFiZWxQYXRoOiBcImxhYmVsXCIsXG4gICAgICBkaXJlY3Rpb246IFwib3V0cHV0XCIsXG4gICAgICBwb3J0SWRUZW1wbGF0ZTogXCIke2lkfVwiLFxuICAgICAgZGVmYXVsdFBvcnQ6IHtcbiAgICAgICAgaWQ6IFwiY2FzZVwiLFxuICAgICAgICBsYWJlbDogXCJDYXNlXCIsXG4gICAgICAgIGRpcmVjdGlvbjogXCJvdXRwdXRcIixcbiAgICAgICAgc2NoZW1hOiB7IHR5cGU6IFwiYW55XCIgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBcInRvZ2dsZVBvcnRcIixcbiAgICAgIHBhcmFtZXRlcjogXCJoYXNEZWZhdWx0XCIsXG4gICAgICBlcXVhbHM6IHRydWUsXG4gICAgICBwb3J0OiB7XG4gICAgICAgIGlkOiBcImRlZmF1bHRcIixcbiAgICAgICAgbGFiZWw6IFwiRGVmYXVsdFwiLFxuICAgICAgICBkaXJlY3Rpb246IFwib3V0cHV0XCIsXG4gICAgICAgIHNjaGVtYTogeyB0eXBlOiBcImFueVwiIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKiogTWFuaWZlc3QgZm9yIHRoZSBtYW51YWwtdHJpZ2dlciBub2RlIChzdGFydHMgYSBydW4gb24gZGVtYW5kKS4gKi9cbmV4cG9ydCBjb25zdCBNQU5VQUxfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShNYW51YWxUcmlnZ2VyTm9kZSwgXCJNYW51YWwgdHJpZ2dlclwiKTtcblxuLyoqIE1hbmlmZXN0IGZvciB0aGUgd2ViaG9vay10cmlnZ2VyIG5vZGUgKHN0YXJ0cyBhIHJ1biBmcm9tIGFuIGluYm91bmQgd2ViaG9vaykuICovXG5leHBvcnQgY29uc3QgV0VCSE9PS19UUklHR0VSX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKFdlYmhvb2tUcmlnZ2VyTm9kZSwgXCJXZWJob29rIHRyaWdnZXJcIik7XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIHNjaGVkdWxlLXRyaWdnZXIgbm9kZSAoc3RhcnRzIGEgcnVuIG9uIGEgc2NoZWR1bGUpLiAqL1xuZXhwb3J0IGNvbnN0IFNDSEVEVUxFX1RSSUdHRVJfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoU2NoZWR1bGVUcmlnZ2VyTm9kZSwgXCJTY2hlZHVsZSB0cmlnZ2VyXCIpO1xuXG4vKiogTWFuaWZlc3QgZm9yIHRoZSBldmVudC10cmlnZ2VyIG5vZGUgKHN0YXJ0cyBhIHJ1biBvbiBhbiBvYnNlcnZlZCBldmVudCkuICovXG5leHBvcnQgY29uc3QgRVZFTlRfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShFdmVudFRyaWdnZXJOb2RlLCBcIkV2ZW50IHRyaWdnZXJcIik7XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGZvcm0tdHJpZ2dlciBub2RlIChzdGFydHMgYSBydW4gZnJvbSBhIGZvcm0gc3VibWlzc2lvbikuICovXG5leHBvcnQgY29uc3QgRk9STV9UUklHR0VSX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKEZvcm1UcmlnZ2VyTm9kZSwgXCJGb3JtIHRyaWdnZXJcIik7XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGNoYXQtdHJpZ2dlciBub2RlIChzdGFydHMgYSBydW4gZnJvbSBhIGNoYXQgbWVzc2FnZSkuICovXG5leHBvcnQgY29uc3QgQ0hBVF9UUklHR0VSX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKENoYXRUcmlnZ2VyTm9kZSwgXCJDaGF0IHRyaWdnZXJcIik7XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGlmIG5vZGUgKGNvbmRpdGlvbmFsIGJyYW5jaCBvbiBhIGJvb2xlYW4gY29uZGl0aW9uKS4gKi9cbmV4cG9ydCBjb25zdCBJRl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShJZkZsb3dOb2RlLCBcIklmXCIpO1xuXG4vKiogTWFuaWZlc3QgZm9yIHRoZSBwYXJhbGxlbCBub2RlIChydW5zIGJyYW5jaGVzIGNvbmN1cnJlbnRseSkuICovXG5leHBvcnQgY29uc3QgUEFSQUxMRUxfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoUGFyYWxsZWxGbG93Tm9kZSwgXCJQYXJhbGxlbFwiKTtcblxuLyoqIE1hbmlmZXN0IGZvciB0aGUgbWVyZ2Ugbm9kZSAoam9pbnMgcGFyYWxsZWwgYnJhbmNoZXMpLiAqL1xuZXhwb3J0IGNvbnN0IE1FUkdFX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKE1lcmdlRmxvd05vZGUsIFwiTWVyZ2VcIik7XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIG1hcCBub2RlICh0cmFuc2Zvcm1zIGVhY2ggaW5wdXQgaXRlbSkuICovXG5leHBvcnQgY29uc3QgTUFQX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKE1hcEZsb3dOb2RlLCBcIk1hcFwiKTtcblxuLyoqIE1hbmlmZXN0IGZvciB0aGUgZGVsYXkgbm9kZSAocGF1c2VzIGV4ZWN1dGlvbiBmb3IgYSBkdXJhdGlvbikuICovXG5leHBvcnQgY29uc3QgREVMQVlfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoRGVsYXlGbG93Tm9kZSwgXCJEZWxheVwiKTtcblxuLyoqIE1hbmlmZXN0IGZvciB0aGUgZXJyb3ItYm91bmRhcnkgbm9kZSAoaXNvbGF0ZXMgYnJhbmNoIGZhaWx1cmVzKS4gKi9cbmV4cG9ydCBjb25zdCBFUlJPUl9CT1VOREFSWV9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShFcnJvckJvdW5kYXJ5Rmxvd05vZGUsIFwiRXJyb3IgYm91bmRhcnlcIik7XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGh1bWFuLWFwcHJvdmFsIG5vZGUgKHdhaXRzIGZvciBhbiBhcHByb3ZhbCBkZWNpc2lvbikuICovXG5leHBvcnQgY29uc3QgSFVNQU5fQVBQUk9WQUxfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoSHVtYW5BcHByb3ZhbEZsb3dOb2RlLCBcIkh1bWFuIGFwcHJvdmFsXCIpO1xuXG4vKiogTWFuaWZlc3QgZm9yIHRoZSByZXR1cm4gbm9kZSAodGVybWluYXRlcyB0aGUgd29ya2Zsb3cgd2l0aCBvdXRwdXQgdmFsdWVzKS4gKi9cbmV4cG9ydCBjb25zdCBSRVRVUk5fR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoUmV0dXJuRmxvd05vZGUsIFwiUmV0dXJuXCIpO1xuXG4vKiogTWFuaWZlc3QgZm9yIHRoZSBjb2RlIG5vZGUgKGV4ZWN1dGVzIHVzZXIgY29kZSkuICovXG5leHBvcnQgY29uc3QgQ09ERV9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShDb2RlRmxvd05vZGUsIFwiQ29kZVwiKTtcblxuLyoqIE1hbmlmZXN0IGZvciB0aGUgbG9nIG5vZGUgKGxvZ3MgaXRzIGlucHV0KS4gKi9cbmV4cG9ydCBjb25zdCBMT0dfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoTG9nRmxvd05vZGUsIFwiTG9nXCIpO1xuXG4vKiogTWFuaWZlc3QgZm9yIHRoZSB1dGlsaXR5LWxvZyBub2RlIChsb2ctc2hhcGVkIHV0aWxpdHkgc2luaykuICovXG5leHBvcnQgY29uc3QgVVRJTElUWV9MT0dfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoVXRpbGl0eUxvZ05vZGUsIFwiVXRpbGl0eSBMb2dcIik7XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGJyZWFrIG5vZGUgKGV4aXRzIHRoZSBlbmNsb3NpbmcgbG9vcCkuICovXG5leHBvcnQgY29uc3QgQlJFQUtfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoQnJlYWtGbG93Tm9kZSwgXCJCcmVha1wiKTtcblxuLyoqIE1hbmlmZXN0IGZvciB0aGUgYWdlbnQgbm9kZSAoZGVsZWdhdGVzIHdvcmsgdG8gYW4gYWdlbnQpLiAqL1xuZXhwb3J0IGNvbnN0IEFHRU5UX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKEFnZW50Tm9kZSwgXCJBZ2VudFwiKTtcblxuLyoqIEFsbCBidWlsdC1pbiBub2RlIG1hbmlmZXN0cywgaW4gY2F0YWxvZ3VlIGRpc3BsYXkgb3JkZXIuICovXG5leHBvcnQgY29uc3QgR1JBUEhfQlVJTFRfSU5fTk9ERV9NQU5JRkVTVFM6IEdyYXBoTm9kZU1hbmlmZXN0W10gPSBbXG4gIE1BTlVBTF9UUklHR0VSX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIFdFQkhPT0tfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNULFxuICBTQ0hFRFVMRV9UUklHR0VSX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIEVWRU5UX1RSSUdHRVJfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgRk9STV9UUklHR0VSX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIENIQVRfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNULFxuICBJRl9HUkFQSF9OT0RFX01BTklGRVNULFxuICBTV0lUQ0hfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgUEFSQUxMRUxfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgTUVSR0VfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgTUFQX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIERFTEFZX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIEVSUk9SX0JPVU5EQVJZX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIEhVTUFOX0FQUFJPVkFMX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIFJFVFVSTl9HUkFQSF9OT0RFX01BTklGRVNULFxuICBDT0RFX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIExPR19HUkFQSF9OT0RFX01BTklGRVNULFxuICBVVElMSVRZX0xPR19HUkFQSF9OT0RFX01BTklGRVNULFxuICBCUkVBS19HUkFQSF9OT0RFX01BTklGRVNULFxuICBBR0VOVF9HUkFQSF9OT0RFX01BTklGRVNULFxuICBGT1JFQUNIX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIFdISUxFX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIFVOVElMX0dSQVBIX05PREVfTUFOSUZFU1QsXG5dO1xuXG4vKiogQnVpbHQtaW4gbWFuaWZlc3RzIGluZGV4ZWQgYnkgbm9kZSBga2luZGAg4oCUIHRoZSBzb3VyY2UgZm9yIGJ1aWx0LWluIGNhdGFsb2d1ZSByZWdpc3RyYXRpb25zLiAqL1xuZXhwb3J0IGNvbnN0IEdSQVBIX0JVSUxUX0lOX05PREVfTUFOSUZFU1RTX0JZX0tJTkQ6IFJlY29yZDxcbiAgc3RyaW5nLFxuICBHcmFwaE5vZGVNYW5pZmVzdFxuPiA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgR1JBUEhfQlVJTFRfSU5fTk9ERV9NQU5JRkVTVFMubWFwKChtYW5pZmVzdCkgPT4gW21hbmlmZXN0LmtpbmQsIG1hbmlmZXN0XSlcbik7XG4iXX0=
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWFuaWZlc3RzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9EQUEwRDtBQUMxRCxnREFBOEM7QUFDOUMsc0RBQXdEO0FBQ3hELHdFQUF5RTtBQUN6RSx3RUFBeUU7QUFDekUsZ0RBQWtEO0FBQ2xELDREQUE4RDtBQUM5RCx3REFBMEQ7QUFDMUQsK0NBQWlEO0FBQ2pELGlEQUFtRDtBQUNuRCw2Q0FBK0M7QUFDL0MsNkNBQStDO0FBQy9DLGlEQUFtRDtBQUNuRCxtREFBcUQ7QUFDckQsNkRBQTBEO0FBQzFELGdEQUFxRDtBQUNyRCxrREFBdUQ7QUFDdkQsZ0RBQXFEO0FBQ3JELG9EQUF5RDtBQUN6RCx3REFBNkQ7QUFDN0Qsc0RBQTJEO0FBQzNEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEdBQUcsRUFBRTtJQUMxQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztBQUM5QyxDQUFDO0FBQ0Q7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSTtJQUN2QixPQUFPLElBQUEsNEJBQWlCLEVBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBQ0QsaUhBQWlIO0FBQ3BHLFFBQUEsMkJBQTJCLEdBQUc7SUFDdkMsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixZQUFZLEVBQUUsQ0FBQyxNQUFNLENBQUM7SUFDdEIsT0FBTyxFQUFFO1FBQ0wsSUFBSSxFQUFFLFNBQVM7UUFDZixXQUFXLEVBQUUsK0dBQStHO1FBQzVILFFBQVEsRUFBRSxjQUFjO1FBQ3hCLEtBQUssRUFBRSxTQUFTO1FBQ2hCLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxF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UyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3JFLCtEQUErRDtBQUNsRCxRQUFBLDZCQUE2QixHQUFHO0lBQ3pDLDBDQUFrQztJQUNsQywyQ0FBbUM7SUFDbkMsNENBQW9DO0lBQ3BDLHlDQUFpQztJQUNqQyx3Q0FBZ0M7SUFDaEMsd0NBQWdDO0lBQ2hDLDhCQUFzQjtJQUN0QixrQ0FBMEI7SUFDMUIsb0NBQTRCO0lBQzVCLGlDQUF5QjtJQUN6QiwrQkFBdUI7SUFDdkIsaUNBQXlCO0lBQ3pCLDBDQUFrQztJQUNsQywwQ0FBa0M7SUFDbEMsa0NBQTBCO0lBQzFCLGdDQUF3QjtJQUN4QiwrQkFBdUI7SUFDdkIsdUNBQStCO0lBQy9CLGlDQUF5QjtJQUN6QixpQ0FBeUI7SUFDekIsbUNBQTJCO0lBQzNCLGlDQUF5QjtJQUN6QixpQ0FBeUI7Q0FDNUIsQ0FBQztBQUNGLG1HQUFtRztBQUN0RixRQUFBLHFDQUFxQyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMscUNBQTZCLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BKLGtpNkJBQWtpNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBncmFwaE5vZGVNYW5pZmVzdCB9IGZyb20gXCIuLy4uL2NhdGFsb2cvaW5kZXguanNcIjtcbmltcG9ydCB7IEFnZW50Tm9kZSB9IGZyb20gXCIuL2FnZW50cy9hZ2VudC5qc1wiO1xuaW1wb3J0IHsgQnJlYWtGbG93Tm9kZSB9IGZyb20gXCIuL2Zsb3ctY29udHJvbC9icmVhay5qc1wiO1xuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeUZsb3dOb2RlIH0gZnJvbSBcIi4vZmxvdy1jb250cm9sL2Vycm9yLWJvdW5kYXJ5LmpzXCI7XG5pbXBvcnQgeyBIdW1hbkFwcHJvdmFsRmxvd05vZGUgfSBmcm9tIFwiLi9mbG93LWNvbnRyb2wvaHVtYW4tYXBwcm92YWwuanNcIjtcbmltcG9ydCB7IElmRmxvd05vZGUgfSBmcm9tIFwiLi9mbG93LWNvbnRyb2wvaWYuanNcIjtcbmltcG9ydCB7IFBhcmFsbGVsRmxvd05vZGUgfSBmcm9tIFwiLi9mbG93LWNvbnRyb2wvcGFyYWxsZWwuanNcIjtcbmltcG9ydCB7IFN3aXRjaEZsb3dOb2RlIH0gZnJvbSBcIi4vZmxvdy1jb250cm9sL3N3aXRjaC5qc1wiO1xuaW1wb3J0IHsgQ29kZUZsb3dOb2RlIH0gZnJvbSBcIi4vdXRpbGl0eS9jb2RlLmpzXCI7XG5pbXBvcnQgeyBEZWxheUZsb3dOb2RlIH0gZnJvbSBcIi4vdXRpbGl0eS9kZWxheS5qc1wiO1xuaW1wb3J0IHsgTG9nRmxvd05vZGUgfSBmcm9tIFwiLi91dGlsaXR5L2xvZy5qc1wiO1xuaW1wb3J0IHsgTWFwRmxvd05vZGUgfSBmcm9tIFwiLi91dGlsaXR5L21hcC5qc1wiO1xuaW1wb3J0IHsgTWVyZ2VGbG93Tm9kZSB9IGZyb20gXCIuL3V0aWxpdHkvbWVyZ2UuanNcIjtcbmltcG9ydCB7IFJldHVybkZsb3dOb2RlIH0gZnJvbSBcIi4vdXRpbGl0eS9yZXR1cm4uanNcIjtcbmltcG9ydCB7IFV0aWxpdHlMb2dOb2RlIH0gZnJvbSBcIi4vdXRpbGl0eS91dGlsaXR5LWxvZy5qc1wiO1xuaW1wb3J0IHsgQ2hhdFRyaWdnZXJOb2RlIH0gZnJvbSBcIi4vdHJpZ2dlcnMvY2hhdC5qc1wiO1xuaW1wb3J0IHsgRXZlbnRUcmlnZ2VyTm9kZSB9IGZyb20gXCIuL3RyaWdnZXJzL2V2ZW50LmpzXCI7XG5pbXBvcnQgeyBGb3JtVHJpZ2dlck5vZGUgfSBmcm9tIFwiLi90cmlnZ2Vycy9mb3JtLmpzXCI7XG5pbXBvcnQgeyBNYW51YWxUcmlnZ2VyTm9kZSB9IGZyb20gXCIuL3RyaWdnZXJzL21hbnVhbC5qc1wiO1xuaW1wb3J0IHsgU2NoZWR1bGVUcmlnZ2VyTm9kZSB9IGZyb20gXCIuL3RyaWdnZXJzL3NjaGVkdWxlLmpzXCI7XG5pbXBvcnQgeyBXZWJob29rVHJpZ2dlck5vZGUgfSBmcm9tIFwiLi90cmlnZ2Vycy93ZWJob29rLmpzXCI7XG4vKipcbiAqIEJ1aWxkcyBhIHNpbmdsZSB7QGxpbmsgR3JhcGhQb3J0TWFuaWZlc3R9IGZyb20gaXRzIGlkLCBsYWJlbCwgZGlyZWN0aW9uLFxuICogYW5kIG9wdGlvbmFsIGV4dHJhIGZpZWxkcyDigJQgdGhlIHRlcnNlIGNvbnN0cnVjdG9yIHVzZWQgYnkgdGhlIGhhbmQtYXV0aG9yZWRcbiAqIGxvb3AgbWFuaWZlc3RzIGJlbG93LlxuICpcbiAqIEBwYXJhbSBpZCAtIFBvcnQgaWRlbnRpZmllciAobWF0Y2hlcyB0aGUgZGVjb3JhdGVkIHByb3BlcnR5IGhhbmRsZSkuXG4gKiBAcGFyYW0gbGFiZWwgLSBIdW1hbi1yZWFkYWJsZSBwb3J0IGxhYmVsLlxuICogQHBhcmFtIGRpcmVjdGlvbiAtIFBvcnQgZGlyZWN0aW9uIChgaW5wdXRgIG9yIGBvdXRwdXRgKS5cbiAqIEBwYXJhbSBleHRyYSAtIE9wdGlvbmFsIG1hbmlmZXN0IGZpZWxkcyBtZXJnZWQgb3ZlciB0aGUgZGVmYXVsdHMuXG4gKiBAcmV0dXJucyBUaGUgYXNzZW1ibGVkIHBvcnQgbWFuaWZlc3QuXG4gKi9cbmZ1bmN0aW9uIHBvcnQoaWQsIGxhYmVsLCBkaXJlY3Rpb24sIGV4dHJhID0ge30pIHtcbiAgICByZXR1cm4geyBpZCwgbGFiZWwsIGRpcmVjdGlvbiwgLi4uZXh0cmEgfTtcbn1cbi8qKlxuICogQ29tcGlsZXMgYSBgQG5vZGVgLWRlY29yYXRlZCBjbGFzcyBpbnRvIGl0cyBwdWJsaXNoZWRcbiAqIHtAbGluayBHcmFwaE5vZGVNYW5pZmVzdH0sIHNvIHRoZSBzZXJ2ZWQgc2hhcGUgbWF0Y2hlcyB3aGF0IHRoZSBBbmd1bGFyXG4gKiBwYWxldHRlIGNvbnN1bWVzLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gVGhlIGRlY29yYXRlZCBub2RlIGNsYXNzIGNvbnN0cnVjdG9yLlxuICogQHBhcmFtIG5hbWUgLSBEaXNwbGF5IG5hbWUgb3ZlcnJpZGUgZm9yIHRoZSBjb21waWxlZCBtYW5pZmVzdC5cbiAqIEByZXR1cm5zIFRoZSBjb21waWxlZCBub2RlIG1hbmlmZXN0LlxuICovXG5mdW5jdGlvbiBjb21waWxlKG5vZGUsIG5hbWUpIHtcbiAgICByZXR1cm4gZ3JhcGhOb2RlTWFuaWZlc3Qobm9kZSwgeyBuYW1lIH0pO1xufVxuLyoqIE1hbmlmZXN0IGZvciB0aGUgYGNvcmUubG9vcC5mb3JlYWNoYCBub2RlOiBydW5zIHRoZSBsb29wIGJvZHkgb25jZSBwZXIgaXRlbSAob3Igc2xpY2UpIG9mIHRoZSBpbnB1dCBhcnJheS4gKi9cbmV4cG9ydCBjb25zdCBGT1JFQUNIX0dSQVBIX05PREVfTUFOSUZFU1QgPSB7XG4gICAga2luZDogXCJjb3JlLmxvb3AuZm9yZWFjaFwiLFxuICAgIGNhcGFiaWxpdGllczogW1wibG9vcFwiXSxcbiAgICBkaXNwbGF5OiB7XG4gICAgICAgIG5hbWU6IFwiRm9yZWFjaFwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJSdW5zIHRoZSBsb29wIGJvZHkgb25jZSBwZXIgaXRlbSAob3IgcGVyIHNsaWNlIG9mIGl0ZW1zKSBvZiB0aGUgaW5wdXQgYXJyYXksIGNvbGxlY3RpbmcgdGhlIHJlc3VsdHMgaW4gb3JkZXIuXCIsXG4gICAgICAgIGNhdGVnb3J5OiBcIkZsb3cgQ29udHJvbFwiLFxuICAgICAgICBjb2xvcjogXCIjOGI1Y2Y2XCIsXG4gICAgICAgIGljb246IHsgdHlwZTogXCJjYXRhbG9ndWVcIiwgbmFtZTogXCJ0aS1yZXBlYXRcIiB9LFxuICAgICAgICB3aWR0aDogMTIwLFxuICAgICAgICBoZWlnaHQ6IDE0MCxcbiAgICAgICAgbGFiZWxzOiBbXCJmbG93XCIsIFwibG9vcFwiLCBcImZvcmVhY2hcIiwgXCJpdGVyYXRpb25cIl0sXG4gICAgfSxcbiAgICBpbnB1dHM6IFtcbiAgICAgICAgcG9ydChcIml0ZW1zXCIsIFwiSXRlbXNcIiwgXCJpbnB1dFwiLCB7XG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIHNjaGVtYTogeyB0eXBlOiBcImFycmF5XCIsIGl0ZW1zOiB7IHR5cGU6IFwiYW55XCIgfSB9LFxuICAgICAgICB9KSxcbiAgICAgICAgcG9ydChcInNsaWNlXCIsIFwiU2xpY2Ugc2l6ZVwiLCBcImlucHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwibnVtYmVyXCIsIGludGVnZXI6IHRydWUsIG1pbjogMSB9IH0pLFxuICAgICAgICBwb3J0KFwic3RhdGVcIiwgXCJJbml0aWFsIHN0YXRlXCIsIFwiaW5wdXRcIiwgeyBzY2hlbWE6IHsgdHlwZTogXCJhbnlcIiB9IH0pLFxuICAgIF0sXG4gICAgb3V0cHV0czogW1xuICAgICAgICBwb3J0KFwicmVzdWx0c1wiLCBcIlJlc3VsdHNcIiwgXCJvdXRwdXRcIiwge1xuICAgICAgICAgICAgc2NoZW1hOiB7IHR5cGU6IFwiYXJyYXlcIiwgaXRlbXM6IHsgdHlwZTogXCJhbnlcIiB9IH0sXG4gICAgICAgIH0pLFxuICAgICAgICBwb3J0KFwiY29tcGxldGVkXCIsIFwiQ29tcGxldGVkXCIsIFwib3V0cHV0XCIsIHtcbiAgICAgICAgICAgIHNjaGVtYTogeyB0eXBlOiBcImFycmF5XCIsIGl0ZW1zOiB7IHR5cGU6IFwiYW55XCIgfSB9LFxuICAgICAgICB9KSxcbiAgICAgICAgcG9ydChcIml0ZXJhdGlvbnNcIiwgXCJJdGVyYXRpb25zXCIsIFwib3V0cHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwibnVtYmVyXCIsIGludGVnZXI6IHRydWUsIG1pbjogMCB9IH0pLFxuICAgICAgICBwb3J0KFwiYnJva2VuXCIsIFwiQnJva2VuXCIsIFwib3V0cHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0gfSksXG4gICAgICAgIHBvcnQoXCJzdGF0ZVwiLCBcIkZpbmFsIHN0YXRlXCIsIFwib3V0cHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwiYW55XCIgfSB9KSxcbiAgICBdLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgICAgICAgIGlkOiBcIm1heEl0ZXJhdGlvbnNcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIk1heCBpdGVyYXRpb25zXCIsXG4gICAgICAgICAgICBpbnRlZ2VyOiB0cnVlLFxuICAgICAgICAgICAgbWluOiAxLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgaWQ6IFwiY29uZGl0aW9uXCIsXG4gICAgICAgICAgICBsYWJlbDogXCJDb25kaXRpb25cIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGlkOiBcIml0ZW1Qb3J0XCIsXG4gICAgICAgICAgICBsYWJlbDogXCJJdGVtIHBvcnRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGlkOiBcInJlc3VsdFBvcnRcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIlJlc3VsdCBwb3J0XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBpZDogXCJzdGF0ZVBvcnRcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIlN0YXRlIHBvcnRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgICAgICAgIGlkOiBcInNsaWNlXCIsXG4gICAgICAgICAgICBsYWJlbDogXCJTbGljZSBzaXplXCIsXG4gICAgICAgICAgICBpbnRlZ2VyOiB0cnVlLFxuICAgICAgICAgICAgbWluOiAxLFxuICAgICAgICB9LFxuICAgIF0sXG59O1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgYGNvcmUubG9vcC53aGlsZWAgbm9kZTogcmVwZWF0cyB0aGUgbG9vcCBib2R5IHdoaWxlIHRoZSBjb25kaXRpb24gaG9sZHMuICovXG5leHBvcnQgY29uc3QgV0hJTEVfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IHtcbiAgICBraW5kOiBcImNvcmUubG9vcC53aGlsZVwiLFxuICAgIGNhcGFiaWxpdGllczogW1wibG9vcFwiXSxcbiAgICBkaXNwbGF5OiB7XG4gICAgICAgIG5hbWU6IFwiV2hpbGVcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiUnVucyB0aGUgbG9vcCBib2R5IHdoaWxlIHRoZSBjb25maWd1cmVkIGNvbmRpdGlvbiBldmFsdWF0ZXMgdG8gdHJ1ZSwgdGhyZWFkaW5nIHRoZSBzdGF0ZSBiZXR3ZWVuIGl0ZXJhdGlvbnMuXCIsXG4gICAgICAgIGNhdGVnb3J5OiBcIkZsb3cgQ29udHJvbFwiLFxuICAgICAgICBjb2xvcjogXCIjOGI1Y2Y2XCIsXG4gICAgICAgIGljb246IHsgdHlwZTogXCJjYXRhbG9ndWVcIiwgbmFtZTogXCJ0aS1yZXBlYXQtb25jZVwiIH0sXG4gICAgICAgIHdpZHRoOiAxMjAsXG4gICAgICAgIGhlaWdodDogMTQwLFxuICAgICAgICBsYWJlbHM6IFtcImZsb3dcIiwgXCJsb29wXCIsIFwid2hpbGVcIiwgXCJjb25kaXRpb25cIl0sXG4gICAgfSxcbiAgICBpbnB1dHM6IFtwb3J0KFwic3RhdGVcIiwgXCJJbml0aWFsIHN0YXRlXCIsIFwiaW5wdXRcIiwgeyBzY2hlbWE6IHsgdHlwZTogXCJhbnlcIiB9IH0pXSxcbiAgICBvdXRwdXRzOiBbXG4gICAgICAgIHBvcnQoXCJzdGF0ZVwiLCBcIkZpbmFsIHN0YXRlXCIsIFwib3V0cHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwiYW55XCIgfSB9KSxcbiAgICAgICAgcG9ydChcIml0ZXJhdGlvbnNcIiwgXCJJdGVyYXRpb25zXCIsIFwib3V0cHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwibnVtYmVyXCIsIGludGVnZXI6IHRydWUsIG1pbjogMCB9IH0pLFxuICAgIF0sXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgICAgICAgaWQ6IFwibWF4SXRlcmF0aW9uc1wiLFxuICAgICAgICAgICAgbGFiZWw6IFwiTWF4IGl0ZXJhdGlvbnNcIixcbiAgICAgICAgICAgIGludGVnZXI6IHRydWUsXG4gICAgICAgICAgICBtaW46IDEsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBpZDogXCJjb25kaXRpb25cIixcbiAgICAgICAgICAgIGxhYmVsOiBcIkNvbmRpdGlvblwiLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBpZDogXCJzdGF0ZVBvcnRcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIlN0YXRlIHBvcnRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGlkOiBcImlucHV0UG9ydFwiLFxuICAgICAgICAgICAgbGFiZWw6IFwiSW5wdXQgcG9ydFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgaWQ6IFwib3V0cHV0UG9ydFwiLFxuICAgICAgICAgICAgbGFiZWw6IFwiT3V0cHV0IHBvcnRcIixcbiAgICAgICAgfSxcbiAgICBdLFxufTtcbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGBjb3JlLmxvb3AudW50aWxgIG5vZGU6IHJlcGVhdHMgdGhlIGxvb3AgYm9keSB1bnRpbCB0aGUgY29uZGl0aW9uIGhvbGRzLiAqL1xuZXhwb3J0IGNvbnN0IFVOVElMX0dSQVBIX05PREVfTUFOSUZFU1QgPSB7XG4gICAga2luZDogXCJjb3JlLmxvb3AudW50aWxcIixcbiAgICBjYXBhYmlsaXRpZXM6IFtcImxvb3BcIl0sXG4gICAgZGlzcGxheToge1xuICAgICAgICBuYW1lOiBcIlVudGlsXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlJ1bnMgdGhlIGxvb3AgYm9keSBhdCBsZWFzdCBvbmNlLCB0aGVuIHJlcGVhdHMgdW50aWwgdGhlIGNvbmZpZ3VyZWQgY29uZGl0aW9uIGV2YWx1YXRlcyB0byB0cnVlLlwiLFxuICAgICAgICBjYXRlZ29yeTogXCJGbG93IENvbnRyb2xcIixcbiAgICAgICAgY29sb3I6IFwiIzhiNWNmNlwiLFxuICAgICAgICBpY29uOiB7IHR5cGU6IFwiY2F0YWxvZ3VlXCIsIG5hbWU6IFwidGktcmVwZWF0XCIgfSxcbiAgICAgICAgd2lkdGg6IDEyMCxcbiAgICAgICAgaGVpZ2h0OiAxNDAsXG4gICAgICAgIGxhYmVsczogW1wiZmxvd1wiLCBcImxvb3BcIiwgXCJ1bnRpbFwiLCBcImNvbmRpdGlvblwiXSxcbiAgICB9LFxuICAgIGlucHV0czogW3BvcnQoXCJzdGF0ZVwiLCBcIkluaXRpYWwgc3RhdGVcIiwgXCJpbnB1dFwiLCB7IHNjaGVtYTogeyB0eXBlOiBcImFueVwiIH0gfSldLFxuICAgIG91dHB1dHM6IFtcbiAgICAgICAgcG9ydChcInN0YXRlXCIsIFwiRmluYWwgc3RhdGVcIiwgXCJvdXRwdXRcIiwgeyBzY2hlbWE6IHsgdHlwZTogXCJhbnlcIiB9IH0pLFxuICAgICAgICBwb3J0KFwiaXRlcmF0aW9uc1wiLCBcIkl0ZXJhdGlvbnNcIiwgXCJvdXRwdXRcIiwgeyBzY2hlbWE6IHsgdHlwZTogXCJudW1iZXJcIiwgaW50ZWdlcjogdHJ1ZSwgbWluOiAwIH0gfSksXG4gICAgXSxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICAgICAgICBpZDogXCJtYXhJdGVyYXRpb25zXCIsXG4gICAgICAgICAgICBsYWJlbDogXCJNYXggaXRlcmF0aW9uc1wiLFxuICAgICAgICAgICAgaW50ZWdlcjogdHJ1ZSxcbiAgICAgICAgICAgIG1pbjogMSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIGlkOiBcImNvbmRpdGlvblwiLFxuICAgICAgICAgICAgbGFiZWw6IFwiQ29uZGl0aW9uXCIsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGlkOiBcInN0YXRlUG9ydFwiLFxuICAgICAgICAgICAgbGFiZWw6IFwiU3RhdGUgcG9ydFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgaWQ6IFwiaW5wdXRQb3J0XCIsXG4gICAgICAgICAgICBsYWJlbDogXCJJbnB1dCBwb3J0XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBpZDogXCJvdXRwdXRQb3J0XCIsXG4gICAgICAgICAgICBsYWJlbDogXCJPdXRwdXQgcG9ydFwiLFxuICAgICAgICB9LFxuICAgIF0sXG59O1xuY29uc3Qgc3dpdGNoQ29tcGlsZWQgPSBjb21waWxlKFN3aXRjaEZsb3dOb2RlLCBcIlN3aXRjaFwiKTtcbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGBjb3JlLmZsb3cuc3dpdGNoYCBub2RlOiByb3V0ZXMgZXhlY3V0aW9uIGJ5IHN3aXRjaC1jYXNlIGNvbmRpdGlvbnMgKGNhc2VzIGxpdmUgdW5kZXIgYHBhcmFtZXRlcnNbXCJzd2l0Y2hcIl1gKS4gKi9cbmV4cG9ydCBjb25zdCBTV0lUQ0hfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IHtcbiAgICAuLi5zd2l0Y2hDb21waWxlZCxcbiAgICBvdXRwdXRzOiBbXSxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgIC4uLnN3aXRjaENvbXBpbGVkLnBhcmFtZXRlcnMsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwiY29sbGVjdGlvblwiLFxuICAgICAgICAgICAgaWQ6IFwiY2FzZXNcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIkNhc2VzXCIsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIGl0ZW1JZFBhdGg6IFwib3V0cHV0UG9ydFwiLFxuICAgICAgICAgICAgaXRlbUxhYmVsUGF0aDogXCJsYWJlbFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGlkOiBcImhhc0RlZmF1bHRcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIkhhcyBkZWZhdWx0XCIsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgZHluYW1pY1BvcnRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwicmVwZWF0RnJvbVBhcmFtZXRlclwiLFxuICAgICAgICAgICAgcGFyYW1ldGVyOiBcImNhc2VzXCIsXG4gICAgICAgICAgICBpdGVtSWRQYXRoOiBcIm91dHB1dFBvcnRcIixcbiAgICAgICAgICAgIGl0ZW1MYWJlbFBhdGg6IFwibGFiZWxcIixcbiAgICAgICAgICAgIGRpcmVjdGlvbjogXCJvdXRwdXRcIixcbiAgICAgICAgICAgIHBvcnRJZFRlbXBsYXRlOiBcIiR7aWR9XCIsXG4gICAgICAgICAgICBkZWZhdWx0UG9ydDoge1xuICAgICAgICAgICAgICAgIGlkOiBcImNhc2VcIixcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJDYXNlXCIsXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBcIm91dHB1dFwiLFxuICAgICAgICAgICAgICAgIHNjaGVtYTogeyB0eXBlOiBcImFueVwiIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcInRvZ2dsZVBvcnRcIixcbiAgICAgICAgICAgIHBhcmFtZXRlcjogXCJoYXNEZWZhdWx0XCIsXG4gICAgICAgICAgICBlcXVhbHM6IHRydWUsXG4gICAgICAgICAgICBwb3J0OiB7XG4gICAgICAgICAgICAgICAgaWQ6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIkRlZmF1bHRcIixcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IFwib3V0cHV0XCIsXG4gICAgICAgICAgICAgICAgc2NoZW1hOiB7IHR5cGU6IFwiYW55XCIgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgXSxcbn07XG4vKiogTWFuaWZlc3QgZm9yIHRoZSBtYW51YWwtdHJpZ2dlciBub2RlIChzdGFydHMgYSBydW4gb24gZGVtYW5kKS4gKi9cbmV4cG9ydCBjb25zdCBNQU5VQUxfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShNYW51YWxUcmlnZ2VyTm9kZSwgXCJNYW51YWwgdHJpZ2dlclwiKTtcbi8qKiBNYW5pZmVzdCBmb3IgdGhlIHdlYmhvb2stdHJpZ2dlciBub2RlIChzdGFydHMgYSBydW4gZnJvbSBhbiBpbmJvdW5kIHdlYmhvb2spLiAqL1xuZXhwb3J0IGNvbnN0IFdFQkhPT0tfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShXZWJob29rVHJpZ2dlck5vZGUsIFwiV2ViaG9vayB0cmlnZ2VyXCIpO1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgc2NoZWR1bGUtdHJpZ2dlciBub2RlIChzdGFydHMgYSBydW4gb24gYSBzY2hlZHVsZSkuICovXG5leHBvcnQgY29uc3QgU0NIRURVTEVfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShTY2hlZHVsZVRyaWdnZXJOb2RlLCBcIlNjaGVkdWxlIHRyaWdnZXJcIik7XG4vKiogTWFuaWZlc3QgZm9yIHRoZSBldmVudC10cmlnZ2VyIG5vZGUgKHN0YXJ0cyBhIHJ1biBvbiBhbiBvYnNlcnZlZCBldmVudCkuICovXG5leHBvcnQgY29uc3QgRVZFTlRfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShFdmVudFRyaWdnZXJOb2RlLCBcIkV2ZW50IHRyaWdnZXJcIik7XG4vKiogTWFuaWZlc3QgZm9yIHRoZSBmb3JtLXRyaWdnZXIgbm9kZSAoc3RhcnRzIGEgcnVuIGZyb20gYSBmb3JtIHN1Ym1pc3Npb24pLiAqL1xuZXhwb3J0IGNvbnN0IEZPUk1fVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShGb3JtVHJpZ2dlck5vZGUsIFwiRm9ybSB0cmlnZ2VyXCIpO1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgY2hhdC10cmlnZ2VyIG5vZGUgKHN0YXJ0cyBhIHJ1biBmcm9tIGEgY2hhdCBtZXNzYWdlKS4gKi9cbmV4cG9ydCBjb25zdCBDSEFUX1RSSUdHRVJfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoQ2hhdFRyaWdnZXJOb2RlLCBcIkNoYXQgdHJpZ2dlclwiKTtcbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGlmIG5vZGUgKGNvbmRpdGlvbmFsIGJyYW5jaCBvbiBhIGJvb2xlYW4gY29uZGl0aW9uKS4gKi9cbmV4cG9ydCBjb25zdCBJRl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShJZkZsb3dOb2RlLCBcIklmXCIpO1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgcGFyYWxsZWwgbm9kZSAocnVucyBicmFuY2hlcyBjb25jdXJyZW50bHkpLiAqL1xuZXhwb3J0IGNvbnN0IFBBUkFMTEVMX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKFBhcmFsbGVsRmxvd05vZGUsIFwiUGFyYWxsZWxcIik7XG4vKiogTWFuaWZlc3QgZm9yIHRoZSBtZXJnZSBub2RlIChqb2lucyBwYXJhbGxlbCBicmFuY2hlcykuICovXG5leHBvcnQgY29uc3QgTUVSR0VfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoTWVyZ2VGbG93Tm9kZSwgXCJNZXJnZVwiKTtcbi8qKiBNYW5pZmVzdCBmb3IgdGhlIG1hcCBub2RlICh0cmFuc2Zvcm1zIGVhY2ggaW5wdXQgaXRlbSkuICovXG5leHBvcnQgY29uc3QgTUFQX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKE1hcEZsb3dOb2RlLCBcIk1hcFwiKTtcbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGRlbGF5IG5vZGUgKHBhdXNlcyBleGVjdXRpb24gZm9yIGEgZHVyYXRpb24pLiAqL1xuZXhwb3J0IGNvbnN0IERFTEFZX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKERlbGF5Rmxvd05vZGUsIFwiRGVsYXlcIik7XG4vKiogTWFuaWZlc3QgZm9yIHRoZSBlcnJvci1ib3VuZGFyeSBub2RlIChpc29sYXRlcyBicmFuY2ggZmFpbHVyZXMpLiAqL1xuZXhwb3J0IGNvbnN0IEVSUk9SX0JPVU5EQVJZX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKEVycm9yQm91bmRhcnlGbG93Tm9kZSwgXCJFcnJvciBib3VuZGFyeVwiKTtcbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGh1bWFuLWFwcHJvdmFsIG5vZGUgKHdhaXRzIGZvciBhbiBhcHByb3ZhbCBkZWNpc2lvbikuICovXG5leHBvcnQgY29uc3QgSFVNQU5fQVBQUk9WQUxfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoSHVtYW5BcHByb3ZhbEZsb3dOb2RlLCBcIkh1bWFuIGFwcHJvdmFsXCIpO1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgcmV0dXJuIG5vZGUgKHRlcm1pbmF0ZXMgdGhlIHdvcmtmbG93IHdpdGggb3V0cHV0IHZhbHVlcykuICovXG5leHBvcnQgY29uc3QgUkVUVVJOX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKFJldHVybkZsb3dOb2RlLCBcIlJldHVyblwiKTtcbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGNvZGUgbm9kZSAoZXhlY3V0ZXMgdXNlciBjb2RlKS4gKi9cbmV4cG9ydCBjb25zdCBDT0RFX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKENvZGVGbG93Tm9kZSwgXCJDb2RlXCIpO1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgbG9nIG5vZGUgKGxvZ3MgaXRzIGlucHV0KS4gKi9cbmV4cG9ydCBjb25zdCBMT0dfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoTG9nRmxvd05vZGUsIFwiTG9nXCIpO1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgdXRpbGl0eS1sb2cgbm9kZSAobG9nLXNoYXBlZCB1dGlsaXR5IHNpbmspLiAqL1xuZXhwb3J0IGNvbnN0IFVUSUxJVFlfTE9HX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKFV0aWxpdHlMb2dOb2RlLCBcIlV0aWxpdHkgTG9nXCIpO1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgYnJlYWsgbm9kZSAoZXhpdHMgdGhlIGVuY2xvc2luZyBsb29wKS4gKi9cbmV4cG9ydCBjb25zdCBCUkVBS19HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShCcmVha0Zsb3dOb2RlLCBcIkJyZWFrXCIpO1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgYWdlbnQgbm9kZSAoZGVsZWdhdGVzIHdvcmsgdG8gYW4gYWdlbnQpLiAqL1xuZXhwb3J0IGNvbnN0IEFHRU5UX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKEFnZW50Tm9kZSwgXCJBZ2VudFwiKTtcbi8qKiBBbGwgYnVpbHQtaW4gbm9kZSBtYW5pZmVzdHMsIGluIGNhdGFsb2d1ZSBkaXNwbGF5IG9yZGVyLiAqL1xuZXhwb3J0IGNvbnN0IEdSQVBIX0JVSUxUX0lOX05PREVfTUFOSUZFU1RTID0gW1xuICAgIE1BTlVBTF9UUklHR0VSX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gICAgV0VCSE9PS19UUklHR0VSX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gICAgU0NIRURVTEVfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNULFxuICAgIEVWRU5UX1RSSUdHRVJfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgICBGT1JNX1RSSUdHRVJfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgICBDSEFUX1RSSUdHRVJfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgICBJRl9HUkFQSF9OT0RFX01BTklGRVNULFxuICAgIFNXSVRDSF9HUkFQSF9OT0RFX01BTklGRVNULFxuICAgIFBBUkFMTEVMX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gICAgTUVSR0VfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgICBNQVBfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgICBERUxBWV9HUkFQSF9OT0RFX01BTklGRVNULFxuICAgIEVSUk9SX0JPVU5EQVJZX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gICAgSFVNQU5fQVBQUk9WQUxfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgICBSRVRVUk5fR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgICBDT0RFX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gICAgTE9HX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gICAgVVRJTElUWV9MT0dfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgICBCUkVBS19HUkFQSF9OT0RFX01BTklGRVNULFxuICAgIEFHRU5UX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gICAgRk9SRUFDSF9HUkFQSF9OT0RFX01BTklGRVNULFxuICAgIFdISUxFX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gICAgVU5USUxfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbl07XG4vKiogQnVpbHQtaW4gbWFuaWZlc3RzIGluZGV4ZWQgYnkgbm9kZSBga2luZGAg4oCUIHRoZSBzb3VyY2UgZm9yIGJ1aWx0LWluIGNhdGFsb2d1ZSByZWdpc3RyYXRpb25zLiAqL1xuZXhwb3J0IGNvbnN0IEdSQVBIX0JVSUxUX0lOX05PREVfTUFOSUZFU1RTX0JZX0tJTkQgPSBPYmplY3QuZnJvbUVudHJpZXMoR1JBUEhfQlVJTFRfSU5fTk9ERV9NQU5JRkVTVFMubWFwKChtYW5pZmVzdCkgPT4gW21hbmlmZXN0LmtpbmQsIG1hbmlmZXN0XSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYldGdWFXWmxjM1J6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwyZHlZWEJvTDI1dlpHVnpMMjFoYm1sbVpYTjBjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGbFFTeFBRVUZQTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzT0VKQlFXMUNPMEZCUlM5RExFOUJRVThzUlVGQlJTeFRRVUZUTEVWQlFVVXNNRUpCUVhWQ08wRkJRek5ETEU5QlFVOHNSVUZCUlN4aFFVRmhMRVZCUVVVc1owTkJRVFpDTzBGQlEzSkVMRTlCUVU4c1JVRkJSU3h4UWtGQmNVSXNSVUZCUlN4NVEwRkJjME03UVVGRGRFVXNUMEZCVHl4RlFVRkZMSEZDUVVGeFFpeEZRVUZGTEhsRFFVRnpRenRCUVVOMFJTeFBRVUZQTEVWQlFVVXNWVUZCVlN4RlFVRkZMRFpDUVVFd1FqdEJRVU12UXl4UFFVRlBMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNiVU5CUVdkRE8wRkJRek5FTEU5QlFVOHNSVUZCUlN4alFVRmpMRVZCUVVVc2FVTkJRVGhDTzBGQlEzWkVMRTlCUVU4c1JVRkJSU3haUVVGWkxFVkJRVVVzTUVKQlFYVkNPMEZCUXpsRExFOUJRVThzUlVGQlJTeGhRVUZoTEVWQlFVVXNNa0pCUVhkQ08wRkJRMmhFTEU5QlFVOHNSVUZCUlN4WFFVRlhMRVZCUVVVc2VVSkJRWE5DTzBGQlF6VkRMRTlCUVU4c1JVRkJSU3hYUVVGWExFVkJRVVVzZVVKQlFYTkNPMEZCUXpWRExFOUJRVThzUlVGQlJTeGhRVUZoTEVWQlFVVXNNa0pCUVhkQ08wRkJRMmhFTEU5QlFVOHNSVUZCUlN4alFVRmpMRVZCUVVVc05FSkJRWGxDTzBGQlEyeEVMRTlCUVU4c1JVRkJSU3hqUVVGakxFVkJRVVVzYVVOQlFUaENPMEZCUTNaRUxFOUJRVThzUlVGQlJTeGxRVUZsTEVWQlFVVXNNa0pCUVhkQ08wRkJRMnhFTEU5QlFVOHNSVUZCUlN4blFrRkJaMElzUlVGQlJTdzBRa0ZCZVVJN1FVRkRjRVFzVDBGQlR5eEZRVUZGTEdWQlFXVXNSVUZCUlN3eVFrRkJkMEk3UVVGRGJFUXNUMEZCVHl4RlFVRkZMR2xDUVVGcFFpeEZRVUZGTERaQ1FVRXdRanRCUVVOMFJDeFBRVUZQTEVWQlFVVXNiVUpCUVcxQ0xFVkJRVVVzSzBKQlFUUkNPMEZCUXpGRUxFOUJRVThzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3c0UWtGQk1rSTdRVUZGZUVRN096czdPenM3T3pzN1IwRlZSenRCUVVOSUxGTkJRVk1zU1VGQlNTeERRVU5ZTEVWQlFWVXNSVUZEVml4TFFVRmhMRVZCUTJJc1UwRkJOa0lzUlVGRE4wSXNVVUZCYjBNc1JVRkJSVHRKUVVWMFF5eFBRVUZQTEVWQlFVVXNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hUUVVGVExFVkJRVVVzUjBGQlJ5eExRVUZMTEVWQlFVVXNRMEZCUXp0QlFVTTFReXhEUVVGRE8wRkJSVVE3T3pzN096czdPMGRCVVVjN1FVRkRTQ3hUUVVGVExFOUJRVThzUTBGQlF5eEpRVUZoTEVWQlFVVXNTVUZCV1R0SlFVTXhReXhQUVVGUExHbENRVUZwUWl4RFFVRkRMRWxCUVcxQ0xFVkJRVVVzUlVGQlJTeEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUXpGRUxFTkJRVU03UVVGRlJDeHBTRUZCYVVnN1FVRkRha2dzVFVGQlRTeERRVUZETEUxQlFVMHNNa0pCUVRKQ0xFZEJRWE5DTzBsQlF6VkVMRWxCUVVrc1JVRkJSU3h0UWtGQmJVSTdTVUZEZWtJc1dVRkJXU3hGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETzBsQlEzUkNMRTlCUVU4c1JVRkJSVHRSUVVOUUxFbEJRVWtzUlVGQlJTeFRRVUZUTzFGQlEyWXNWMEZCVnl4RlFVTlVMQ3RIUVVFclJ6dFJRVU5xU0N4UlFVRlJMRVZCUVVVc1kwRkJZenRSUVVONFFpeExRVUZMTEVWQlFVVXNVMEZCVXp0UlFVTm9RaXhKUVVGSkxFVkJRVVVzUlVGQlJTeEpRVUZKTEVWQlFVVXNWMEZCVnl4RlFVRkZMRWxCUVVrc1JVRkJSU3hYUVVGWExFVkJRVVU3VVVGRE9VTXNTMEZCU3l4RlFVRkZMRWRCUVVjN1VVRkRWaXhOUVVGTkxFVkJRVVVzUjBGQlJ6dFJRVU5ZTEUxQlFVMHNSVUZCUlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVVVzVTBGQlV5eEZRVUZGTEZkQlFWY3NRMEZCUXp0TFFVTnFSRHRKUVVORUxFMUJRVTBzUlVGQlJUdFJRVU5PTEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGQlJUdFpRVU01UWl4UlFVRlJMRVZCUVVVc1NVRkJTVHRaUVVOa0xFMUJRVTBzUlVGQlJTeEZRVUZGTEVsQlFVa3NSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzU1VGQlNTeEZRVUZGTEV0QlFVc3NSVUZCUlN4RlFVRkZPMU5CUTJ4RUxFTkJRVU03VVVGRFJpeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZMRmxCUVZrc1JVRkJSU3hQUVVGUExFVkJRVVVzUlVGQlJTeE5RVUZOTEVWQlFVVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1VVRkJVU3hGUVVGRkxFOUJRVThzUlVGQlJTeEpRVUZKTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU03VVVGRE0wWXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hsUVVGbExFVkJRVVVzVDBGQlR5eEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTTdTMEZEY2tVN1NVRkRSQ3hQUVVGUExFVkJRVVU3VVVGRFVDeEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRk5CUVZNc1JVRkJSU3hSUVVGUkxFVkJRVVU3V1VGRGJrTXNUVUZCVFN4RlFVRkZMRVZCUVVVc1NVRkJTU3hGUVVGRkxFOUJRVThzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVU3VTBGRGJFUXNRMEZCUXp0UlFVTkdMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVVzVjBGQlZ5eEZRVUZGTEZGQlFWRXNSVUZCUlR0WlFVTjJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeEpRVUZKTEVWQlFVVXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRkxFbEJRVWtzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlR0VFFVTnNSQ3hEUVVGRE8xRkJRMFlzU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4WlFVRlpMRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVWQlFVVXNTVUZCU1N4RlFVRkZMRkZCUVZFc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJRMnBITEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEZRVUZGTEUxQlFVMHNSVUZCUlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hUUVVGVExFVkJRVVVzUlVGQlJTeERRVUZETzFGQlEyNUZMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVVzWVVGQllTeEZRVUZGTEZGQlFWRXNSVUZCUlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hGUVVGRkxFbEJRVWtzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRPMHRCUTNCRk8wbEJRMFFzVlVGQlZTeEZRVUZGTzFGQlExWTdXVUZEUlN4SlFVRkpMRVZCUVVVc1VVRkJVVHRaUVVOa0xFVkJRVVVzUlVGQlJTeGxRVUZsTzFsQlEyNUNMRXRCUVVzc1JVRkJSU3huUWtGQlowSTdXVUZEZGtJc1QwRkJUeXhGUVVGRkxFbEJRVWs3V1VGRFlpeEhRVUZITEVWQlFVVXNRMEZCUXp0VFFVTlFPMUZCUTBRN1dVRkRSU3hKUVVGSkxFVkJRVVVzVVVGQlVUdFpRVU5rTEVWQlFVVXNSVUZCUlN4WFFVRlhPMWxCUTJZc1MwRkJTeXhGUVVGRkxGZEJRVmM3VTBGRGJrSTdVVUZEUkR0WlFVTkZMRWxCUVVrc1JVRkJSU3hSUVVGUk8xbEJRMlFzUlVGQlJTeEZRVUZGTEZWQlFWVTdXVUZEWkN4TFFVRkxMRVZCUVVVc1YwRkJWenRUUVVOdVFqdFJRVU5FTzFsQlEwVXNTVUZCU1N4RlFVRkZMRkZCUVZFN1dVRkRaQ3hGUVVGRkxFVkJRVVVzV1VGQldUdFpRVU5vUWl4TFFVRkxMRVZCUVVVc1lVRkJZVHRUUVVOeVFqdFJRVU5FTzFsQlEwVXNTVUZCU1N4RlFVRkZMRkZCUVZFN1dVRkRaQ3hGUVVGRkxFVkJRVVVzVjBGQlZ6dFpRVU5tTEV0QlFVc3NSVUZCUlN4WlFVRlpPMU5CUTNCQ08xRkJRMFE3V1VGRFJTeEpRVUZKTEVWQlFVVXNVVUZCVVR0WlFVTmtMRVZCUVVVc1JVRkJSU3hQUVVGUE8xbEJRMWdzUzBGQlN5eEZRVUZGTEZsQlFWazdXVUZEYmtJc1QwRkJUeXhGUVVGRkxFbEJRVWs3V1VGRFlpeEhRVUZITEVWQlFVVXNRMEZCUXp0VFFVTlFPMHRCUTBZN1EwRkRSaXhEUVVGRE8wRkJSVVlzWjBkQlFXZEhPMEZCUTJoSExFMUJRVTBzUTBGQlF5eE5RVUZOTEhsQ1FVRjVRaXhIUVVGelFqdEpRVU14UkN4SlFVRkpMRVZCUVVVc2FVSkJRV2xDTzBsQlEzWkNMRmxCUVZrc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF6dEpRVU4wUWl4UFFVRlBMRVZCUVVVN1VVRkRVQ3hKUVVGSkxFVkJRVVVzVDBGQlR6dFJRVU5pTEZkQlFWY3NSVUZEVkN3NFIwRkJPRWM3VVVGRGFFZ3NVVUZCVVN4RlFVRkZMR05CUVdNN1VVRkRlRUlzUzBGQlN5eEZRVUZGTEZOQlFWTTdVVUZEYUVJc1NVRkJTU3hGUVVGRkxFVkJRVVVzU1VGQlNTeEZRVUZGTEZkQlFWY3NSVUZCUlN4SlFVRkpMRVZCUVVVc1owSkJRV2RDTEVWQlFVVTdVVUZEYmtRc1MwRkJTeXhGUVVGRkxFZEJRVWM3VVVGRFZpeE5RVUZOTEVWQlFVVXNSMEZCUnp0UlFVTllMRTFCUVUwc1JVRkJSU3hEUVVGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRmRCUVZjc1EwRkJRenRMUVVNdlF6dEpRVU5FTEUxQlFVMHNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVVzWlVGQlpTeEZRVUZGTEU5QlFVOHNSVUZCUlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hGUVVGRkxFbEJRVWtzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRPVVVzVDBGQlR5eEZRVUZGTzFGQlExQXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hoUVVGaExFVkJRVVVzVVVGQlVTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTTdVVUZEYmtVc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeFpRVUZaTEVWQlFVVXNVVUZCVVN4RlFVRkZMRVZCUVVVc1RVRkJUU3hGUVVGRkxFVkJRVVVzU1VGQlNTeEZRVUZGTEZGQlFWRXNSVUZCUlN4UFFVRlBMRVZCUVVVc1NVRkJTU3hGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRPMHRCUTJ4SE8wbEJRMFFzVlVGQlZTeEZRVUZGTzFGQlExWTdXVUZEUlN4SlFVRkpMRVZCUVVVc1VVRkJVVHRaUVVOa0xFVkJRVVVzUlVGQlJTeGxRVUZsTzFsQlEyNUNMRXRCUVVzc1JVRkJSU3huUWtGQlowSTdXVUZEZGtJc1QwRkJUeXhGUVVGRkxFbEJRVWs3V1VGRFlpeEhRVUZITEVWQlFVVXNRMEZCUXp0VFFVTlFPMUZCUTBRN1dVRkRSU3hKUVVGSkxFVkJRVVVzVVVGQlVUdFpRVU5rTEVWQlFVVXNSVUZCUlN4WFFVRlhPMWxCUTJZc1MwRkJTeXhGUVVGRkxGZEJRVmM3V1VGRGJFSXNVVUZCVVN4RlFVRkZMRWxCUVVrN1UwRkRaanRSUVVORU8xbEJRMFVzU1VGQlNTeEZRVUZGTEZGQlFWRTdXVUZEWkN4RlFVRkZMRVZCUVVVc1YwRkJWenRaUVVObUxFdEJRVXNzUlVGQlJTeFpRVUZaTzFOQlEzQkNPMUZCUTBRN1dVRkRSU3hKUVVGSkxFVkJRVVVzVVVGQlVUdFpRVU5rTEVWQlFVVXNSVUZCUlN4WFFVRlhPMWxCUTJZc1MwRkJTeXhGUVVGRkxGbEJRVms3VTBGRGNFSTdVVUZEUkR0WlFVTkZMRWxCUVVrc1JVRkJSU3hSUVVGUk8xbEJRMlFzUlVGQlJTeEZRVUZGTEZsQlFWazdXVUZEYUVJc1MwRkJTeXhGUVVGRkxHRkJRV0U3VTBGRGNrSTdTMEZEUmp0RFFVTkdMRU5CUVVNN1FVRkZSaXhuUjBGQlowYzdRVUZEYUVjc1RVRkJUU3hEUVVGRExFMUJRVTBzZVVKQlFYbENMRWRCUVhOQ08wbEJRekZFTEVsQlFVa3NSVUZCUlN4cFFrRkJhVUk3U1VGRGRrSXNXVUZCV1N4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRE8wbEJRM1JDTEU5QlFVOHNSVUZCUlR0UlFVTlFMRWxCUVVrc1JVRkJSU3hQUVVGUE8xRkJRMklzVjBGQlZ5eEZRVU5VTEd0SFFVRnJSenRSUVVOd1J5eFJRVUZSTEVWQlFVVXNZMEZCWXp0UlFVTjRRaXhMUVVGTExFVkJRVVVzVTBGQlV6dFJRVU5vUWl4SlFVRkpMRVZCUVVVc1JVRkJSU3hKUVVGSkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEVsQlFVa3NSVUZCUlN4WFFVRlhMRVZCUVVVN1VVRkRPVU1zUzBGQlN5eEZRVUZGTEVkQlFVYzdVVUZEVml4TlFVRk5MRVZCUVVVc1IwRkJSenRSUVVOWUxFMUJRVTBzUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxGZEJRVmNzUTBGQlF6dExRVU12UXp0SlFVTkVMRTFCUVUwc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNaVUZCWlN4RlFVRkZMRTlCUVU4c1JVRkJSU3hGUVVGRkxFMUJRVTBzUlVGQlJTeEZRVUZGTEVsQlFVa3NSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRE9VVXNUMEZCVHl4RlFVRkZPMUZCUTFBc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeGhRVUZoTEVWQlFVVXNVVUZCVVN4RlFVRkZMRVZCUVVVc1RVRkJUU3hGUVVGRkxFVkJRVVVzU1VGQlNTeEZRVUZGTEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUVVNN1VVRkRia1VzU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4WlFVRlpMRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVWQlFVVXNTVUZCU1N4RlFVRkZMRkZCUVZFc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRE8wdEJRMnhITzBsQlEwUXNWVUZCVlN4RlFVRkZPMUZCUTFZN1dVRkRSU3hKUVVGSkxFVkJRVVVzVVVGQlVUdFpRVU5rTEVWQlFVVXNSVUZCUlN4bFFVRmxPMWxCUTI1Q0xFdEJRVXNzUlVGQlJTeG5Ra0ZCWjBJN1dVRkRka0lzVDBGQlR5eEZRVUZGTEVsQlFVazdXVUZEWWl4SFFVRkhMRVZCUVVVc1EwRkJRenRUUVVOUU8xRkJRMFE3V1VGRFJTeEpRVUZKTEVWQlFVVXNVVUZCVVR0WlFVTmtMRVZCUVVVc1JVRkJSU3hYUVVGWE8xbEJRMllzUzBGQlN5eEZRVUZGTEZkQlFWYzdXVUZEYkVJc1VVRkJVU3hGUVVGRkxFbEJRVWs3VTBGRFpqdFJRVU5FTzFsQlEwVXNTVUZCU1N4RlFVRkZMRkZCUVZFN1dVRkRaQ3hGUVVGRkxFVkJRVVVzVjBGQlZ6dFpRVU5tTEV0QlFVc3NSVUZCUlN4WlFVRlpPMU5CUTNCQ08xRkJRMFE3V1VGRFJTeEpRVUZKTEVWQlFVVXNVVUZCVVR0WlFVTmtMRVZCUVVVc1JVRkJSU3hYUVVGWE8xbEJRMllzUzBGQlN5eEZRVUZGTEZsQlFWazdVMEZEY0VJN1VVRkRSRHRaUVVORkxFbEJRVWtzUlVGQlJTeFJRVUZSTzFsQlEyUXNSVUZCUlN4RlFVRkZMRmxCUVZrN1dVRkRhRUlzUzBGQlN5eEZRVUZGTEdGQlFXRTdVMEZEY2tJN1MwRkRSanREUVVOR0xFTkJRVU03UVVGRlJpeE5RVUZOTEdOQlFXTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1kwRkJZeXhGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETzBGQlJYcEVMSE5KUVVGelNUdEJRVU4wU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3d3UWtGQk1FSXNSMEZCYzBJN1NVRkRNMFFzUjBGQlJ5eGpRVUZqTzBsQlEycENMRTlCUVU4c1JVRkJSU3hGUVVGRk8wbEJRMWdzVlVGQlZTeEZRVUZGTzFGQlExWXNSMEZCUnl4alFVRmpMRU5CUVVNc1ZVRkJWVHRSUVVNMVFqdFpRVU5GTEVsQlFVa3NSVUZCUlN4WlFVRlpPMWxCUTJ4Q0xFVkJRVVVzUlVGQlJTeFBRVUZQTzFsQlExZ3NTMEZCU3l4RlFVRkZMRTlCUVU4N1dVRkRaQ3hSUVVGUkxFVkJRVVVzU1VGQlNUdFpRVU5rTEZWQlFWVXNSVUZCUlN4WlFVRlpPMWxCUTNoQ0xHRkJRV0VzUlVGQlJTeFBRVUZQTzFOQlEzWkNPMUZCUTBRN1dVRkRSU3hKUVVGSkxFVkJRVVVzVTBGQlV6dFpRVU5tTEVWQlFVVXNSVUZCUlN4WlFVRlpPMWxCUTJoQ0xFdEJRVXNzUlVGQlJTeGhRVUZoTzFsQlEzQkNMRmxCUVZrc1JVRkJSU3hMUVVGTE8xTkJRM0JDTzB0QlEwWTdTVUZEUkN4WlFVRlpMRVZCUVVVN1VVRkRXanRaUVVORkxFbEJRVWtzUlVGQlJTeHhRa0ZCY1VJN1dVRkRNMElzVTBGQlV5eEZRVUZGTEU5QlFVODdXVUZEYkVJc1ZVRkJWU3hGUVVGRkxGbEJRVms3V1VGRGVFSXNZVUZCWVN4RlFVRkZMRTlCUVU4N1dVRkRkRUlzVTBGQlV5eEZRVUZGTEZGQlFWRTdXVUZEYmtJc1kwRkJZeXhGUVVGRkxFOUJRVTg3V1VGRGRrSXNWMEZCVnl4RlFVRkZPMmRDUVVOWUxFVkJRVVVzUlVGQlJTeE5RVUZOTzJkQ1FVTldMRXRCUVVzc1JVRkJSU3hOUVVGTk8yZENRVU5pTEZOQlFWTXNSVUZCUlN4UlFVRlJPMmRDUVVOdVFpeE5RVUZOTEVWQlFVVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhGUVVGRk8yRkJRM2hDTzFOQlEwWTdVVUZEUkR0WlFVTkZMRWxCUVVrc1JVRkJSU3haUVVGWk8xbEJRMnhDTEZOQlFWTXNSVUZCUlN4WlFVRlpPMWxCUTNaQ0xFMUJRVTBzUlVGQlJTeEpRVUZKTzFsQlExb3NTVUZCU1N4RlFVRkZPMmRDUVVOS0xFVkJRVVVzUlVGQlJTeFRRVUZUTzJkQ1FVTmlMRXRCUVVzc1JVRkJSU3hUUVVGVE8yZENRVU5vUWl4VFFVRlRMRVZCUVVVc1VVRkJVVHRuUWtGRGJrSXNUVUZCVFN4RlFVRkZMRVZCUVVVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJUdGhRVU40UWp0VFFVTkdPMHRCUTBZN1EwRkRSaXhEUVVGRE8wRkJSVVlzY1VWQlFYRkZPMEZCUTNKRkxFMUJRVTBzUTBGQlF5eE5RVUZOTEd0RFFVRnJReXhIUVVGSExFOUJRVThzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3huUWtGQlowSXNRMEZCUXl4RFFVRkRPMEZCUlM5R0xHOUdRVUZ2Ump0QlFVTndSaXhOUVVGTkxFTkJRVU1zVFVGQlRTeHRRMEZCYlVNc1IwRkJSeXhQUVVGUExFTkJRVU1zYTBKQlFXdENMRVZCUVVVc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXp0QlFVVnNSeXd5UlVGQk1rVTdRVUZETTBVc1RVRkJUU3hEUVVGRExFMUJRVTBzYjBOQlFXOURMRWRCUVVjc1QwRkJUeXhEUVVGRExHMUNRVUZ0UWl4RlFVRkZMR3RDUVVGclFpeERRVUZETEVOQlFVTTdRVUZGY2tjc0swVkJRU3RGTzBGQlF5OUZMRTFCUVUwc1EwRkJReXhOUVVGTkxHbERRVUZwUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhuUWtGQlowSXNSVUZCUlN4bFFVRmxMRU5CUVVNc1EwRkJRenRCUVVVMVJpeG5Sa0ZCWjBZN1FVRkRhRVlzVFVGQlRTeERRVUZETEUxQlFVMHNaME5CUVdkRExFZEJRVWNzVDBGQlR5eERRVUZETEdWQlFXVXNSVUZCUlN4alFVRmpMRU5CUVVNc1EwRkJRenRCUVVWNlJpdzJSVUZCTmtVN1FVRkROMFVzVFVGQlRTeERRVUZETEUxQlFVMHNaME5CUVdkRExFZEJRVWNzVDBGQlR5eERRVUZETEdWQlFXVXNSVUZCUlN4alFVRmpMRU5CUVVNc1EwRkJRenRCUVVWNlJpdzBSVUZCTkVVN1FVRkROVVVzVFVGQlRTeERRVUZETEUxQlFVMHNjMEpCUVhOQ0xFZEJRVWNzVDBGQlR5eERRVUZETEZWQlFWVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVWb1JTeHRSVUZCYlVVN1FVRkRia1VzVFVGQlRTeERRVUZETEUxQlFVMHNORUpCUVRSQ0xFZEJRVWNzVDBGQlR5eERRVUZETEdkQ1FVRm5RaXhGUVVGRkxGVkJRVlVzUTBGQlF5eERRVUZETzBGQlJXeEdMRFpFUVVFMlJEdEJRVU0zUkN4TlFVRk5MRU5CUVVNc1RVRkJUU3g1UWtGQmVVSXNSMEZCUnl4UFFVRlBMRU5CUVVNc1lVRkJZU3hGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzBGQlJYcEZMRGhFUVVFNFJEdEJRVU01UkN4TlFVRk5MRU5CUVVNc1RVRkJUU3gxUWtGQmRVSXNSMEZCUnl4UFFVRlBMRU5CUVVNc1YwRkJWeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzBGQlJXNUZMSEZGUVVGeFJUdEJRVU55UlN4TlFVRk5MRU5CUVVNc1RVRkJUU3g1UWtGQmVVSXNSMEZCUnl4UFFVRlBMRU5CUVVNc1lVRkJZU3hGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzBGQlJYcEZMSFZGUVVGMVJUdEJRVU4yUlN4TlFVRk5MRU5CUVVNc1RVRkJUU3hyUTBGQmEwTXNSMEZCUnl4UFFVRlBMRU5CUVVNc2NVSkJRWEZDTEVWQlFVVXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF6dEJRVVZ1Unl3MlJVRkJOa1U3UVVGRE4wVXNUVUZCVFN4RFFVRkRMRTFCUVUwc2EwTkJRV3RETEVkQlFVY3NUMEZCVHl4RFFVRkRMSEZDUVVGeFFpeEZRVUZGTEdkQ1FVRm5RaXhEUVVGRExFTkJRVU03UVVGRmJrY3NhVVpCUVdsR08wRkJRMnBHTEUxQlFVMHNRMEZCUXl4TlFVRk5MREJDUVVFd1FpeEhRVUZITEU5QlFVOHNRMEZCUXl4alFVRmpMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRVU03UVVGRk5VVXNkVVJCUVhWRU8wRkJRM1pFTEUxQlFVMHNRMEZCUXl4TlFVRk5MSGRDUVVGM1FpeEhRVUZITEU5QlFVOHNRMEZCUXl4WlFVRlpMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03UVVGRmRFVXNhMFJCUVd0RU8wRkJRMnhFTEUxQlFVMHNRMEZCUXl4TlFVRk5MSFZDUVVGMVFpeEhRVUZITEU5QlFVOHNRMEZCUXl4WFFVRlhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRmJrVXNiVVZCUVcxRk8wRkJRMjVGTEUxQlFVMHNRMEZCUXl4TlFVRk5MQ3RDUVVFclFpeEhRVUZITEU5QlFVOHNRMEZCUXl4alFVRmpMRVZCUVVVc1lVRkJZU3hEUVVGRExFTkJRVU03UVVGRmRFWXNPRVJCUVRoRU8wRkJRemxFTEUxQlFVMHNRMEZCUXl4TlFVRk5MSGxDUVVGNVFpeEhRVUZITEU5QlFVOHNRMEZCUXl4aFFVRmhMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03UVVGRmVrVXNaMFZCUVdkRk8wRkJRMmhGTEUxQlFVMHNRMEZCUXl4TlFVRk5MSGxDUVVGNVFpeEhRVUZITEU5QlFVOHNRMEZCUXl4VFFVRlRMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03UVVGRmNrVXNLMFJCUVN0RU8wRkJReTlFTEUxQlFVMHNRMEZCUXl4TlFVRk5MRFpDUVVFMlFpeEhRVUYzUWp0SlFVTm9SU3hyUTBGQmEwTTdTVUZEYkVNc2JVTkJRVzFETzBsQlEyNURMRzlEUVVGdlF6dEpRVU53UXl4cFEwRkJhVU03U1VGRGFrTXNaME5CUVdkRE8wbEJRMmhETEdkRFFVRm5RenRKUVVOb1F5eHpRa0ZCYzBJN1NVRkRkRUlzTUVKQlFUQkNPMGxCUXpGQ0xEUkNRVUUwUWp0SlFVTTFRaXg1UWtGQmVVSTdTVUZEZWtJc2RVSkJRWFZDTzBsQlEzWkNMSGxDUVVGNVFqdEpRVU42UWl4clEwRkJhME03U1VGRGJFTXNhME5CUVd0RE8wbEJRMnhETERCQ1FVRXdRanRKUVVNeFFpeDNRa0ZCZDBJN1NVRkRlRUlzZFVKQlFYVkNPMGxCUTNaQ0xDdENRVUVyUWp0SlFVTXZRaXg1UWtGQmVVSTdTVUZEZWtJc2VVSkJRWGxDTzBsQlEzcENMREpDUVVFeVFqdEpRVU16UWl4NVFrRkJlVUk3U1VGRGVrSXNlVUpCUVhsQ08wTkJRekZDTEVOQlFVTTdRVUZGUml4dFIwRkJiVWM3UVVGRGJrY3NUVUZCVFN4RFFVRkRMRTFCUVUwc2NVTkJRWEZETEVkQlJ6bERMRTFCUVUwc1EwRkJReXhYUVVGWExFTkJRM0JDTERaQ1FVRTJRaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUXpORkxFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdktpcGNiaUFxSUVCdGIyUjFiR1VnZFdrdFpHVmpiM0poZEc5eWN5OW5jbUZ3YUM5dWIyUmxjeTl0WVc1cFptVnpkSE5jYmlBcUlFQnpkVzF0WVhKNUlFSjFhV3gwTFdsdUlHNXZaR1VnYldGdWFXWmxjM1J6SUNoRVJVTkJSaTAxTUNEQ3B6UXVNVElwTGx4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUZSb1pTQmpZWFJoYkc5bmRXVXRjSFZpYkdsemFHVmtJRXBUVDA0Z2JXRnVhV1psYzNSeklHWnZjaUJsZG1WeWVTQnViMlJsSUd0cGJtUmNiaUFxSUhSb1pTQmlZV05yWlc1a0lITm9hWEJ6TGlCTWIyOXdJRzFoYm1sbVpYTjBjeUJoY21VZ2FHRnVaQzFoZFhSb2IzSmxaQ0FvZEdobGFYSWdiRzl2Y0MxaWIyUjVYRzRnS2lCemFHRndaWE1nWVhKbElITjBjblZqZEhWeVlXd3BPeUIwYUdVZ2NtVnpkQ0JoY21VZ1kyOXRjR2xzWldRZ1puSnZiU0IwYUdVZ2MyaGhjbVZrWEc0Z0tpQmdRRzV2WkdWZ0xXUmxZMjl5WVhSbFpDQmpiR0Z6YzJWeklIWnBZU0JnWjNKaGNHaE9iMlJsVFdGdWFXWmxjM1JnTENCemJ5QjBhR1VnYzJWeWRtVmtJSE5vWVhCbElHbHpYRzRnS2lCcFpHVnVkR2xqWVd3Z2RHOGdkMmhoZENCMGFHVWdRVzVuZFd4aGNpQndZV3hsZEhSbElHTnZibk4xYldWekxpQkJaMmR5WldkaGRHVmtJR2x1WEc0Z0tpQmdSMUpCVUVoZlFsVkpURlJmU1U1ZlRrOUVSVjlOUVU1SlJrVlRWRk5nSUdGdVpDQnBibVJsZUdWa0lHSjVJR3RwYm1RZ2FXNWNiaUFxSUdCSFVrRlFTRjlDVlVsTVZGOUpUbDlPVDBSRlgwMUJUa2xHUlZOVVUxOUNXVjlMU1U1RVlDNWNiaUFxTDF4dWFXMXdiM0owSUhSNWNHVWdlMXh1SUNCSGNtRndhRTV2WkdWTllXNXBabVZ6ZEN4Y2JpQWdSM0poY0doUWIzSjBUV0Z1YVdabGMzUXNYRzU5SUdaeWIyMGdYQ0l1TGk5allYUmhiRzluWENJN1hHNXBiWEJ2Y25RZ2V5Qm5jbUZ3YUU1dlpHVk5ZVzVwWm1WemRDQjlJR1p5YjIwZ1hDSXVMaTlqWVhSaGJHOW5YQ0k3WEc1cGJYQnZjblFnZEhsd1pTQjdJRU52Ym5OMGNuVmpkRzl5SUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1pXTnZjbUYwYVc5dVhDSTdYRzVwYlhCdmNuUWdleUJCWjJWdWRFNXZaR1VnZlNCbWNtOXRJRndpTGk5aFoyVnVkSE12WVdkbGJuUmNJanRjYm1sdGNHOXlkQ0I3SUVKeVpXRnJSbXh2ZDA1dlpHVWdmU0JtY205dElGd2lMaTltYkc5M0xXTnZiblJ5YjJ3dlluSmxZV3RjSWp0Y2JtbHRjRzl5ZENCN0lFVnljbTl5UW05MWJtUmhjbmxHYkc5M1RtOWtaU0I5SUdaeWIyMGdYQ0l1TDJac2IzY3RZMjl1ZEhKdmJDOWxjbkp2Y2kxaWIzVnVaR0Z5ZVZ3aU8xeHVhVzF3YjNKMElIc2dTSFZ0WVc1QmNIQnliM1poYkVac2IzZE9iMlJsSUgwZ1puSnZiU0JjSWk0dlpteHZkeTFqYjI1MGNtOXNMMmgxYldGdUxXRndjSEp2ZG1Gc1hDSTdYRzVwYlhCdmNuUWdleUJKWmtac2IzZE9iMlJsSUgwZ1puSnZiU0JjSWk0dlpteHZkeTFqYjI1MGNtOXNMMmxtWENJN1hHNXBiWEJ2Y25RZ2V5QlFZWEpoYkd4bGJFWnNiM2RPYjJSbElIMGdabkp2YlNCY0lpNHZabXh2ZHkxamIyNTBjbTlzTDNCaGNtRnNiR1ZzWENJN1hHNXBiWEJ2Y25RZ2V5QlRkMmwwWTJoR2JHOTNUbTlrWlNCOUlHWnliMjBnWENJdUwyWnNiM2N0WTI5dWRISnZiQzl6ZDJsMFkyaGNJanRjYm1sdGNHOXlkQ0I3SUVOdlpHVkdiRzkzVG05a1pTQjlJR1p5YjIwZ1hDSXVMM1YwYVd4cGRIa3ZZMjlrWlZ3aU8xeHVhVzF3YjNKMElIc2dSR1ZzWVhsR2JHOTNUbTlrWlNCOUlHWnliMjBnWENJdUwzVjBhV3hwZEhrdlpHVnNZWGxjSWp0Y2JtbHRjRzl5ZENCN0lFeHZaMFpzYjNkT2IyUmxJSDBnWm5KdmJTQmNJaTR2ZFhScGJHbDBlUzlzYjJkY0lqdGNibWx0Y0c5eWRDQjdJRTFoY0Vac2IzZE9iMlJsSUgwZ1puSnZiU0JjSWk0dmRYUnBiR2wwZVM5dFlYQmNJanRjYm1sdGNHOXlkQ0I3SUUxbGNtZGxSbXh2ZDA1dlpHVWdmU0JtY205dElGd2lMaTkxZEdsc2FYUjVMMjFsY21kbFhDSTdYRzVwYlhCdmNuUWdleUJTWlhSMWNtNUdiRzkzVG05a1pTQjlJR1p5YjIwZ1hDSXVMM1YwYVd4cGRIa3ZjbVYwZFhKdVhDSTdYRzVwYlhCdmNuUWdleUJWZEdsc2FYUjVURzluVG05a1pTQjlJR1p5YjIwZ1hDSXVMM1YwYVd4cGRIa3ZkWFJwYkdsMGVTMXNiMmRjSWp0Y2JtbHRjRzl5ZENCN0lFTm9ZWFJVY21sbloyVnlUbTlrWlNCOUlHWnliMjBnWENJdUwzUnlhV2RuWlhKekwyTm9ZWFJjSWp0Y2JtbHRjRzl5ZENCN0lFVjJaVzUwVkhKcFoyZGxjazV2WkdVZ2ZTQm1jbTl0SUZ3aUxpOTBjbWxuWjJWeWN5OWxkbVZ1ZEZ3aU8xeHVhVzF3YjNKMElIc2dSbTl5YlZSeWFXZG5aWEpPYjJSbElIMGdabkp2YlNCY0lpNHZkSEpwWjJkbGNuTXZabTl5YlZ3aU8xeHVhVzF3YjNKMElIc2dUV0Z1ZFdGc1ZISnBaMmRsY2s1dlpHVWdmU0JtY205dElGd2lMaTkwY21sbloyVnljeTl0WVc1MVlXeGNJanRjYm1sdGNHOXlkQ0I3SUZOamFHVmtkV3hsVkhKcFoyZGxjazV2WkdVZ2ZTQm1jbTl0SUZ3aUxpOTBjbWxuWjJWeWN5OXpZMmhsWkhWc1pWd2lPMXh1YVcxd2IzSjBJSHNnVjJWaWFHOXZhMVJ5YVdkblpYSk9iMlJsSUgwZ1puSnZiU0JjSWk0dmRISnBaMmRsY25NdmQyVmlhRzl2YTF3aU8xeHVYRzR2S2lwY2JpQXFJRUoxYVd4a2N5QmhJSE5wYm1kc1pTQjdRR3hwYm1zZ1IzSmhjR2hRYjNKMFRXRnVhV1psYzNSOUlHWnliMjBnYVhSeklHbGtMQ0JzWVdKbGJDd2daR2x5WldOMGFXOXVMRnh1SUNvZ1lXNWtJRzl3ZEdsdmJtRnNJR1Y0ZEhKaElHWnBaV3hrY3lEaWdKUWdkR2hsSUhSbGNuTmxJR052Ym5OMGNuVmpkRzl5SUhWelpXUWdZbmtnZEdobElHaGhibVF0WVhWMGFHOXlaV1JjYmlBcUlHeHZiM0FnYldGdWFXWmxjM1J6SUdKbGJHOTNMbHh1SUNwY2JpQXFJRUJ3WVhKaGJTQnBaQ0F0SUZCdmNuUWdhV1JsYm5ScFptbGxjaUFvYldGMFkyaGxjeUIwYUdVZ1pHVmpiM0poZEdWa0lIQnliM0JsY25SNUlHaGhibVJzWlNrdVhHNGdLaUJBY0dGeVlXMGdiR0ZpWld3Z0xTQklkVzFoYmkxeVpXRmtZV0pzWlNCd2IzSjBJR3hoWW1Wc0xseHVJQ29nUUhCaGNtRnRJR1JwY21WamRHbHZiaUF0SUZCdmNuUWdaR2x5WldOMGFXOXVJQ2hnYVc1d2RYUmdJRzl5SUdCdmRYUndkWFJnS1M1Y2JpQXFJRUJ3WVhKaGJTQmxlSFJ5WVNBdElFOXdkR2x2Ym1Gc0lHMWhibWxtWlhOMElHWnBaV3hrY3lCdFpYSm5aV1FnYjNabGNpQjBhR1VnWkdWbVlYVnNkSE11WEc0Z0tpQkFjbVYwZFhKdWN5QlVhR1VnWVhOelpXMWliR1ZrSUhCdmNuUWdiV0Z1YVdabGMzUXVYRzRnS2k5Y2JtWjFibU4wYVc5dUlIQnZjblFvWEc0Z0lHbGtPaUJ6ZEhKcGJtY3NYRzRnSUd4aFltVnNPaUJ6ZEhKcGJtY3NYRzRnSUdScGNtVmpkR2x2YmpvZ1hDSnBibkIxZEZ3aUlId2dYQ0p2ZFhSd2RYUmNJaXhjYmlBZ1pYaDBjbUU2SUZCaGNuUnBZV3c4UjNKaGNHaFFiM0owVFdGdWFXWmxjM1ErSUQwZ2UzMWNiaWs2SUVkeVlYQm9VRzl5ZEUxaGJtbG1aWE4wSUh0Y2JpQWdjbVYwZFhKdUlIc2dhV1FzSUd4aFltVnNMQ0JrYVhKbFkzUnBiMjRzSUM0dUxtVjRkSEpoSUgwN1hHNTlYRzVjYmk4cUtseHVJQ29nUTI5dGNHbHNaWE1nWVNCZ1FHNXZaR1ZnTFdSbFkyOXlZWFJsWkNCamJHRnpjeUJwYm5SdklHbDBjeUJ3ZFdKc2FYTm9aV1JjYmlBcUlIdEFiR2x1YXlCSGNtRndhRTV2WkdWTllXNXBabVZ6ZEgwc0lITnZJSFJvWlNCelpYSjJaV1FnYzJoaGNHVWdiV0YwWTJobGN5QjNhR0YwSUhSb1pTQkJibWQxYkdGeVhHNGdLaUJ3WVd4bGRIUmxJR052Ym5OMWJXVnpMbHh1SUNwY2JpQXFJRUJ3WVhKaGJTQnViMlJsSUMwZ1ZHaGxJR1JsWTI5eVlYUmxaQ0J1YjJSbElHTnNZWE56SUdOdmJuTjBjblZqZEc5eUxseHVJQ29nUUhCaGNtRnRJRzVoYldVZ0xTQkVhWE53YkdGNUlHNWhiV1VnYjNabGNuSnBaR1VnWm05eUlIUm9aU0JqYjIxd2FXeGxaQ0J0WVc1cFptVnpkQzVjYmlBcUlFQnlaWFIxY201eklGUm9aU0JqYjIxd2FXeGxaQ0J1YjJSbElHMWhibWxtWlhOMExseHVJQ292WEc1bWRXNWpkR2x2YmlCamIyMXdhV3hsS0c1dlpHVTZJSFZ1YTI1dmQyNHNJRzVoYldVNklITjBjbWx1WnlrNklFZHlZWEJvVG05a1pVMWhibWxtWlhOMElIdGNiaUFnY21WMGRYSnVJR2R5WVhCb1RtOWtaVTFoYm1sbVpYTjBLRzV2WkdVZ1lYTWdRMjl1YzNSeWRXTjBiM0lzSUhzZ2JtRnRaU0I5S1R0Y2JuMWNibHh1THlvcUlFMWhibWxtWlhOMElHWnZjaUIwYUdVZ1lHTnZjbVV1Ykc5dmNDNW1iM0psWVdOb1lDQnViMlJsT2lCeWRXNXpJSFJvWlNCc2IyOXdJR0p2WkhrZ2IyNWpaU0J3WlhJZ2FYUmxiU0FvYjNJZ2MyeHBZMlVwSUc5bUlIUm9aU0JwYm5CMWRDQmhjbkpoZVM0Z0tpOWNibVY0Y0c5eWRDQmpiMjV6ZENCR1QxSkZRVU5JWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRNklFZHlZWEJvVG05a1pVMWhibWxtWlhOMElEMGdlMXh1SUNCcmFXNWtPaUJjSW1OdmNtVXViRzl2Y0M1bWIzSmxZV05vWENJc1hHNGdJR05oY0dGaWFXeHBkR2xsY3pvZ1cxd2liRzl2Y0Z3aVhTeGNiaUFnWkdsemNHeGhlVG9nZTF4dUlDQWdJRzVoYldVNklGd2lSbTl5WldGamFGd2lMRnh1SUNBZ0lHUmxjMk55YVhCMGFXOXVPbHh1SUNBZ0lDQWdYQ0pTZFc1eklIUm9aU0JzYjI5d0lHSnZaSGtnYjI1alpTQndaWElnYVhSbGJTQW9iM0lnY0dWeUlITnNhV05sSUc5bUlHbDBaVzF6S1NCdlppQjBhR1VnYVc1d2RYUWdZWEp5WVhrc0lHTnZiR3hsWTNScGJtY2dkR2hsSUhKbGMzVnNkSE1nYVc0Z2IzSmtaWEl1WENJc1hHNGdJQ0FnWTJGMFpXZHZjbms2SUZ3aVJteHZkeUJEYjI1MGNtOXNYQ0lzWEc0Z0lDQWdZMjlzYjNJNklGd2lJemhpTldObU5sd2lMRnh1SUNBZ0lHbGpiMjQ2SUhzZ2RIbHdaVG9nWENKallYUmhiRzluZFdWY0lpd2dibUZ0WlRvZ1hDSjBhUzF5WlhCbFlYUmNJaUI5TEZ4dUlDQWdJSGRwWkhSb09pQXhNakFzWEc0Z0lDQWdhR1ZwWjJoME9pQXhOREFzWEc0Z0lDQWdiR0ZpWld4ek9pQmJYQ0ptYkc5M1hDSXNJRndpYkc5dmNGd2lMQ0JjSW1admNtVmhZMmhjSWl3Z1hDSnBkR1Z5WVhScGIyNWNJbDBzWEc0Z0lIMHNYRzRnSUdsdWNIVjBjem9nVzF4dUlDQWdJSEJ2Y25Rb1hDSnBkR1Z0YzF3aUxDQmNJa2wwWlcxelhDSXNJRndpYVc1d2RYUmNJaXdnZTF4dUlDQWdJQ0FnY21WeGRXbHlaV1E2SUhSeWRXVXNYRzRnSUNBZ0lDQnpZMmhsYldFNklIc2dkSGx3WlRvZ1hDSmhjbkpoZVZ3aUxDQnBkR1Z0Y3pvZ2V5QjBlWEJsT2lCY0ltRnVlVndpSUgwZ2ZTeGNiaUFnSUNCOUtTeGNiaUFnSUNCd2IzSjBLRndpYzJ4cFkyVmNJaXdnWENKVGJHbGpaU0J6YVhwbFhDSXNJRndpYVc1d2RYUmNJaXdnZXlCelkyaGxiV0U2SUhzZ2RIbHdaVG9nWENKdWRXMWlaWEpjSWl3Z2FXNTBaV2RsY2pvZ2RISjFaU3dnYldsdU9pQXhJSDBnZlNrc1hHNGdJQ0FnY0c5eWRDaGNJbk4wWVhSbFhDSXNJRndpU1c1cGRHbGhiQ0J6ZEdGMFpWd2lMQ0JjSW1sdWNIVjBYQ0lzSUhzZ2MyTm9aVzFoT2lCN0lIUjVjR1U2SUZ3aVlXNTVYQ0lnZlNCOUtTeGNiaUFnWFN4Y2JpQWdiM1YwY0hWMGN6b2dXMXh1SUNBZ0lIQnZjblFvWENKeVpYTjFiSFJ6WENJc0lGd2lVbVZ6ZFd4MGMxd2lMQ0JjSW05MWRIQjFkRndpTENCN1hHNGdJQ0FnSUNCelkyaGxiV0U2SUhzZ2RIbHdaVG9nWENKaGNuSmhlVndpTENCcGRHVnRjem9nZXlCMGVYQmxPaUJjSW1GdWVWd2lJSDBnZlN4Y2JpQWdJQ0I5S1N4Y2JpQWdJQ0J3YjNKMEtGd2lZMjl0Y0d4bGRHVmtYQ0lzSUZ3aVEyOXRjR3hsZEdWa1hDSXNJRndpYjNWMGNIVjBYQ0lzSUh0Y2JpQWdJQ0FnSUhOamFHVnRZVG9nZXlCMGVYQmxPaUJjSW1GeWNtRjVYQ0lzSUdsMFpXMXpPaUI3SUhSNWNHVTZJRndpWVc1NVhDSWdmU0I5TEZ4dUlDQWdJSDBwTEZ4dUlDQWdJSEJ2Y25Rb1hDSnBkR1Z5WVhScGIyNXpYQ0lzSUZ3aVNYUmxjbUYwYVc5dWMxd2lMQ0JjSW05MWRIQjFkRndpTENCN0lITmphR1Z0WVRvZ2V5QjBlWEJsT2lCY0ltNTFiV0psY2x3aUxDQnBiblJsWjJWeU9pQjBjblZsTENCdGFXNDZJREFnZlNCOUtTeGNiaUFnSUNCd2IzSjBLRndpWW5KdmEyVnVYQ0lzSUZ3aVFuSnZhMlZ1WENJc0lGd2liM1YwY0hWMFhDSXNJSHNnYzJOb1pXMWhPaUI3SUhSNWNHVTZJRndpWW05dmJHVmhibHdpSUgwZ2ZTa3NYRzRnSUNBZ2NHOXlkQ2hjSW5OMFlYUmxYQ0lzSUZ3aVJtbHVZV3dnYzNSaGRHVmNJaXdnWENKdmRYUndkWFJjSWl3Z2V5QnpZMmhsYldFNklIc2dkSGx3WlRvZ1hDSmhibmxjSWlCOUlIMHBMRnh1SUNCZExGeHVJQ0J3WVhKaGJXVjBaWEp6T2lCYlhHNGdJQ0FnZTF4dUlDQWdJQ0FnZEhsd1pUb2dYQ0p1ZFcxaVpYSmNJaXhjYmlBZ0lDQWdJR2xrT2lCY0ltMWhlRWwwWlhKaGRHbHZibk5jSWl4Y2JpQWdJQ0FnSUd4aFltVnNPaUJjSWsxaGVDQnBkR1Z5WVhScGIyNXpYQ0lzWEc0Z0lDQWdJQ0JwYm5SbFoyVnlPaUIwY25WbExGeHVJQ0FnSUNBZ2JXbHVPaUF4TEZ4dUlDQWdJSDBzWEc0Z0lDQWdlMXh1SUNBZ0lDQWdkSGx3WlRvZ1hDSnZZbXBsWTNSY0lpeGNiaUFnSUNBZ0lHbGtPaUJjSW1OdmJtUnBkR2x2Ymx3aUxGeHVJQ0FnSUNBZ2JHRmlaV3c2SUZ3aVEyOXVaR2wwYVc5dVhDSXNYRzRnSUNBZ2ZTeGNiaUFnSUNCN1hHNGdJQ0FnSUNCMGVYQmxPaUJjSW5OMGNtbHVaMXdpTEZ4dUlDQWdJQ0FnYVdRNklGd2lhWFJsYlZCdmNuUmNJaXhjYmlBZ0lDQWdJR3hoWW1Wc09pQmNJa2wwWlcwZ2NHOXlkRndpTEZ4dUlDQWdJSDBzWEc0Z0lDQWdlMXh1SUNBZ0lDQWdkSGx3WlRvZ1hDSnpkSEpwYm1kY0lpeGNiaUFnSUNBZ0lHbGtPaUJjSW5KbGMzVnNkRkJ2Y25SY0lpeGNiaUFnSUNBZ0lHeGhZbVZzT2lCY0lsSmxjM1ZzZENCd2IzSjBYQ0lzWEc0Z0lDQWdmU3hjYmlBZ0lDQjdYRzRnSUNBZ0lDQjBlWEJsT2lCY0luTjBjbWx1WjF3aUxGeHVJQ0FnSUNBZ2FXUTZJRndpYzNSaGRHVlFiM0owWENJc1hHNGdJQ0FnSUNCc1lXSmxiRG9nWENKVGRHRjBaU0J3YjNKMFhDSXNYRzRnSUNBZ2ZTeGNiaUFnSUNCN1hHNGdJQ0FnSUNCMGVYQmxPaUJjSW01MWJXSmxjbHdpTEZ4dUlDQWdJQ0FnYVdRNklGd2ljMnhwWTJWY0lpeGNiaUFnSUNBZ0lHeGhZbVZzT2lCY0lsTnNhV05sSUhOcGVtVmNJaXhjYmlBZ0lDQWdJR2x1ZEdWblpYSTZJSFJ5ZFdVc1hHNGdJQ0FnSUNCdGFXNDZJREVzWEc0Z0lDQWdmU3hjYmlBZ1hTeGNibjA3WEc1Y2JpOHFLaUJOWVc1cFptVnpkQ0JtYjNJZ2RHaGxJR0JqYjNKbExteHZiM0F1ZDJocGJHVmdJRzV2WkdVNklISmxjR1ZoZEhNZ2RHaGxJR3h2YjNBZ1ltOWtlU0IzYUdsc1pTQjBhR1VnWTI5dVpHbDBhVzl1SUdodmJHUnpMaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJRmRJU1V4RlgwZFNRVkJJWDA1UFJFVmZUVUZPU1VaRlUxUTZJRWR5WVhCb1RtOWtaVTFoYm1sbVpYTjBJRDBnZTF4dUlDQnJhVzVrT2lCY0ltTnZjbVV1Ykc5dmNDNTNhR2xzWlZ3aUxGeHVJQ0JqWVhCaFltbHNhWFJwWlhNNklGdGNJbXh2YjNCY0lsMHNYRzRnSUdScGMzQnNZWGs2SUh0Y2JpQWdJQ0J1WVcxbE9pQmNJbGRvYVd4bFhDSXNYRzRnSUNBZ1pHVnpZM0pwY0hScGIyNDZYRzRnSUNBZ0lDQmNJbEoxYm5NZ2RHaGxJR3h2YjNBZ1ltOWtlU0IzYUdsc1pTQjBhR1VnWTI5dVptbG5kWEpsWkNCamIyNWthWFJwYjI0Z1pYWmhiSFZoZEdWeklIUnZJSFJ5ZFdVc0lIUm9jbVZoWkdsdVp5QjBhR1VnYzNSaGRHVWdZbVYwZDJWbGJpQnBkR1Z5WVhScGIyNXpMbHdpTEZ4dUlDQWdJR05oZEdWbmIzSjVPaUJjSWtac2IzY2dRMjl1ZEhKdmJGd2lMRnh1SUNBZ0lHTnZiRzl5T2lCY0lpTTRZalZqWmpaY0lpeGNiaUFnSUNCcFkyOXVPaUI3SUhSNWNHVTZJRndpWTJGMFlXeHZaM1ZsWENJc0lHNWhiV1U2SUZ3aWRHa3RjbVZ3WldGMExXOXVZMlZjSWlCOUxGeHVJQ0FnSUhkcFpIUm9PaUF4TWpBc1hHNGdJQ0FnYUdWcFoyaDBPaUF4TkRBc1hHNGdJQ0FnYkdGaVpXeHpPaUJiWENKbWJHOTNYQ0lzSUZ3aWJHOXZjRndpTENCY0luZG9hV3hsWENJc0lGd2lZMjl1WkdsMGFXOXVYQ0pkTEZ4dUlDQjlMRnh1SUNCcGJuQjFkSE02SUZ0d2IzSjBLRndpYzNSaGRHVmNJaXdnWENKSmJtbDBhV0ZzSUhOMFlYUmxYQ0lzSUZ3aWFXNXdkWFJjSWl3Z2V5QnpZMmhsYldFNklIc2dkSGx3WlRvZ1hDSmhibmxjSWlCOUlIMHBYU3hjYmlBZ2IzVjBjSFYwY3pvZ1cxeHVJQ0FnSUhCdmNuUW9YQ0p6ZEdGMFpWd2lMQ0JjSWtacGJtRnNJSE4wWVhSbFhDSXNJRndpYjNWMGNIVjBYQ0lzSUhzZ2MyTm9aVzFoT2lCN0lIUjVjR1U2SUZ3aVlXNTVYQ0lnZlNCOUtTeGNiaUFnSUNCd2IzSjBLRndpYVhSbGNtRjBhVzl1YzF3aUxDQmNJa2wwWlhKaGRHbHZibk5jSWl3Z1hDSnZkWFJ3ZFhSY0lpd2dleUJ6WTJobGJXRTZJSHNnZEhsd1pUb2dYQ0p1ZFcxaVpYSmNJaXdnYVc1MFpXZGxjam9nZEhKMVpTd2diV2x1T2lBd0lIMGdmU2tzWEc0Z0lGMHNYRzRnSUhCaGNtRnRaWFJsY25NNklGdGNiaUFnSUNCN1hHNGdJQ0FnSUNCMGVYQmxPaUJjSW01MWJXSmxjbHdpTEZ4dUlDQWdJQ0FnYVdRNklGd2liV0Y0U1hSbGNtRjBhVzl1YzF3aUxGeHVJQ0FnSUNBZ2JHRmlaV3c2SUZ3aVRXRjRJR2wwWlhKaGRHbHZibk5jSWl4Y2JpQWdJQ0FnSUdsdWRHVm5aWEk2SUhSeWRXVXNYRzRnSUNBZ0lDQnRhVzQ2SURFc1hHNGdJQ0FnZlN4Y2JpQWdJQ0I3WEc0Z0lDQWdJQ0IwZVhCbE9pQmNJbTlpYW1WamRGd2lMRnh1SUNBZ0lDQWdhV1E2SUZ3aVkyOXVaR2wwYVc5dVhDSXNYRzRnSUNBZ0lDQnNZV0psYkRvZ1hDSkRiMjVrYVhScGIyNWNJaXhjYmlBZ0lDQWdJSEpsY1hWcGNtVmtPaUIwY25WbExGeHVJQ0FnSUgwc1hHNGdJQ0FnZTF4dUlDQWdJQ0FnZEhsd1pUb2dYQ0p6ZEhKcGJtZGNJaXhjYmlBZ0lDQWdJR2xrT2lCY0luTjBZWFJsVUc5eWRGd2lMRnh1SUNBZ0lDQWdiR0ZpWld3NklGd2lVM1JoZEdVZ2NHOXlkRndpTEZ4dUlDQWdJSDBzWEc0Z0lDQWdlMXh1SUNBZ0lDQWdkSGx3WlRvZ1hDSnpkSEpwYm1kY0lpeGNiaUFnSUNBZ0lHbGtPaUJjSW1sdWNIVjBVRzl5ZEZ3aUxGeHVJQ0FnSUNBZ2JHRmlaV3c2SUZ3aVNXNXdkWFFnY0c5eWRGd2lMRnh1SUNBZ0lIMHNYRzRnSUNBZ2UxeHVJQ0FnSUNBZ2RIbHdaVG9nWENKemRISnBibWRjSWl4Y2JpQWdJQ0FnSUdsa09pQmNJbTkxZEhCMWRGQnZjblJjSWl4Y2JpQWdJQ0FnSUd4aFltVnNPaUJjSWs5MWRIQjFkQ0J3YjNKMFhDSXNYRzRnSUNBZ2ZTeGNiaUFnWFN4Y2JuMDdYRzVjYmk4cUtpQk5ZVzVwWm1WemRDQm1iM0lnZEdobElHQmpiM0psTG14dmIzQXVkVzUwYVd4Z0lHNXZaR1U2SUhKbGNHVmhkSE1nZEdobElHeHZiM0FnWW05a2VTQjFiblJwYkNCMGFHVWdZMjl1WkdsMGFXOXVJR2h2YkdSekxpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElGVk9WRWxNWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRNklFZHlZWEJvVG05a1pVMWhibWxtWlhOMElEMGdlMXh1SUNCcmFXNWtPaUJjSW1OdmNtVXViRzl2Y0M1MWJuUnBiRndpTEZ4dUlDQmpZWEJoWW1sc2FYUnBaWE02SUZ0Y0lteHZiM0JjSWwwc1hHNGdJR1JwYzNCc1lYazZJSHRjYmlBZ0lDQnVZVzFsT2lCY0lsVnVkR2xzWENJc1hHNGdJQ0FnWkdWelkzSnBjSFJwYjI0NlhHNGdJQ0FnSUNCY0lsSjFibk1nZEdobElHeHZiM0FnWW05a2VTQmhkQ0JzWldGemRDQnZibU5sTENCMGFHVnVJSEpsY0dWaGRITWdkVzUwYVd3Z2RHaGxJR052Ym1acFozVnlaV1FnWTI5dVpHbDBhVzl1SUdWMllXeDFZWFJsY3lCMGJ5QjBjblZsTGx3aUxGeHVJQ0FnSUdOaGRHVm5iM0o1T2lCY0lrWnNiM2NnUTI5dWRISnZiRndpTEZ4dUlDQWdJR052Ykc5eU9pQmNJaU00WWpWalpqWmNJaXhjYmlBZ0lDQnBZMjl1T2lCN0lIUjVjR1U2SUZ3aVkyRjBZV3h2WjNWbFhDSXNJRzVoYldVNklGd2lkR2t0Y21Wd1pXRjBYQ0lnZlN4Y2JpQWdJQ0IzYVdSMGFEb2dNVEl3TEZ4dUlDQWdJR2hsYVdkb2REb2dNVFF3TEZ4dUlDQWdJR3hoWW1Wc2N6b2dXMXdpWm14dmQxd2lMQ0JjSW14dmIzQmNJaXdnWENKMWJuUnBiRndpTENCY0ltTnZibVJwZEdsdmJsd2lYU3hjYmlBZ2ZTeGNiaUFnYVc1d2RYUnpPaUJiY0c5eWRDaGNJbk4wWVhSbFhDSXNJRndpU1c1cGRHbGhiQ0J6ZEdGMFpWd2lMQ0JjSW1sdWNIVjBYQ0lzSUhzZ2MyTm9aVzFoT2lCN0lIUjVjR1U2SUZ3aVlXNTVYQ0lnZlNCOUtWMHNYRzRnSUc5MWRIQjFkSE02SUZ0Y2JpQWdJQ0J3YjNKMEtGd2ljM1JoZEdWY0lpd2dYQ0pHYVc1aGJDQnpkR0YwWlZ3aUxDQmNJbTkxZEhCMWRGd2lMQ0I3SUhOamFHVnRZVG9nZXlCMGVYQmxPaUJjSW1GdWVWd2lJSDBnZlNrc1hHNGdJQ0FnY0c5eWRDaGNJbWwwWlhKaGRHbHZibk5jSWl3Z1hDSkpkR1Z5WVhScGIyNXpYQ0lzSUZ3aWIzVjBjSFYwWENJc0lIc2djMk5vWlcxaE9pQjdJSFI1Y0dVNklGd2liblZ0WW1WeVhDSXNJR2x1ZEdWblpYSTZJSFJ5ZFdVc0lHMXBiam9nTUNCOUlIMHBMRnh1SUNCZExGeHVJQ0J3WVhKaGJXVjBaWEp6T2lCYlhHNGdJQ0FnZTF4dUlDQWdJQ0FnZEhsd1pUb2dYQ0p1ZFcxaVpYSmNJaXhjYmlBZ0lDQWdJR2xrT2lCY0ltMWhlRWwwWlhKaGRHbHZibk5jSWl4Y2JpQWdJQ0FnSUd4aFltVnNPaUJjSWsxaGVDQnBkR1Z5WVhScGIyNXpYQ0lzWEc0Z0lDQWdJQ0JwYm5SbFoyVnlPaUIwY25WbExGeHVJQ0FnSUNBZ2JXbHVPaUF4TEZ4dUlDQWdJSDBzWEc0Z0lDQWdlMXh1SUNBZ0lDQWdkSGx3WlRvZ1hDSnZZbXBsWTNSY0lpeGNiaUFnSUNBZ0lHbGtPaUJjSW1OdmJtUnBkR2x2Ymx3aUxGeHVJQ0FnSUNBZ2JHRmlaV3c2SUZ3aVEyOXVaR2wwYVc5dVhDSXNYRzRnSUNBZ0lDQnlaWEYxYVhKbFpEb2dkSEoxWlN4Y2JpQWdJQ0I5TEZ4dUlDQWdJSHRjYmlBZ0lDQWdJSFI1Y0dVNklGd2ljM1J5YVc1blhDSXNYRzRnSUNBZ0lDQnBaRG9nWENKemRHRjBaVkJ2Y25SY0lpeGNiaUFnSUNBZ0lHeGhZbVZzT2lCY0lsTjBZWFJsSUhCdmNuUmNJaXhjYmlBZ0lDQjlMRnh1SUNBZ0lIdGNiaUFnSUNBZ0lIUjVjR1U2SUZ3aWMzUnlhVzVuWENJc1hHNGdJQ0FnSUNCcFpEb2dYQ0pwYm5CMWRGQnZjblJjSWl4Y2JpQWdJQ0FnSUd4aFltVnNPaUJjSWtsdWNIVjBJSEJ2Y25SY0lpeGNiaUFnSUNCOUxGeHVJQ0FnSUh0Y2JpQWdJQ0FnSUhSNWNHVTZJRndpYzNSeWFXNW5YQ0lzWEc0Z0lDQWdJQ0JwWkRvZ1hDSnZkWFJ3ZFhSUWIzSjBYQ0lzWEc0Z0lDQWdJQ0JzWVdKbGJEb2dYQ0pQZFhSd2RYUWdjRzl5ZEZ3aUxGeHVJQ0FnSUgwc1hHNGdJRjBzWEc1OU8xeHVYRzVqYjI1emRDQnpkMmwwWTJoRGIyMXdhV3hsWkNBOUlHTnZiWEJwYkdVb1UzZHBkR05vUm14dmQwNXZaR1VzSUZ3aVUzZHBkR05vWENJcE8xeHVYRzR2S2lvZ1RXRnVhV1psYzNRZ1ptOXlJSFJvWlNCZ1kyOXlaUzVtYkc5M0xuTjNhWFJqYUdBZ2JtOWtaVG9nY205MWRHVnpJR1Y0WldOMWRHbHZiaUJpZVNCemQybDBZMmd0WTJGelpTQmpiMjVrYVhScGIyNXpJQ2hqWVhObGN5QnNhWFpsSUhWdVpHVnlJR0J3WVhKaGJXVjBaWEp6VzF3aWMzZHBkR05vWENKZFlDa3VJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdVMWRKVkVOSVgwZFNRVkJJWDA1UFJFVmZUVUZPU1VaRlUxUTZJRWR5WVhCb1RtOWtaVTFoYm1sbVpYTjBJRDBnZTF4dUlDQXVMaTV6ZDJsMFkyaERiMjF3YVd4bFpDeGNiaUFnYjNWMGNIVjBjem9nVzEwc1hHNGdJSEJoY21GdFpYUmxjbk02SUZ0Y2JpQWdJQ0F1TGk1emQybDBZMmhEYjIxd2FXeGxaQzV3WVhKaGJXVjBaWEp6TEZ4dUlDQWdJSHRjYmlBZ0lDQWdJSFI1Y0dVNklGd2lZMjlzYkdWamRHbHZibHdpTEZ4dUlDQWdJQ0FnYVdRNklGd2lZMkZ6WlhOY0lpeGNiaUFnSUNBZ0lHeGhZbVZzT2lCY0lrTmhjMlZ6WENJc1hHNGdJQ0FnSUNCeVpYRjFhWEpsWkRvZ2RISjFaU3hjYmlBZ0lDQWdJR2wwWlcxSlpGQmhkR2c2SUZ3aWIzVjBjSFYwVUc5eWRGd2lMRnh1SUNBZ0lDQWdhWFJsYlV4aFltVnNVR0YwYURvZ1hDSnNZV0psYkZ3aUxGeHVJQ0FnSUgwc1hHNGdJQ0FnZTF4dUlDQWdJQ0FnZEhsd1pUb2dYQ0ppYjI5c1pXRnVYQ0lzWEc0Z0lDQWdJQ0JwWkRvZ1hDSm9ZWE5FWldaaGRXeDBYQ0lzWEc0Z0lDQWdJQ0JzWVdKbGJEb2dYQ0pJWVhNZ1pHVm1ZWFZzZEZ3aUxGeHVJQ0FnSUNBZ1pHVm1ZWFZzZEZaaGJIVmxPaUJtWVd4elpTeGNiaUFnSUNCOUxGeHVJQ0JkTEZ4dUlDQmtlVzVoYldsalVHOXlkSE02SUZ0Y2JpQWdJQ0I3WEc0Z0lDQWdJQ0IwZVhCbE9pQmNJbkpsY0dWaGRFWnliMjFRWVhKaGJXVjBaWEpjSWl4Y2JpQWdJQ0FnSUhCaGNtRnRaWFJsY2pvZ1hDSmpZWE5sYzF3aUxGeHVJQ0FnSUNBZ2FYUmxiVWxrVUdGMGFEb2dYQ0p2ZFhSd2RYUlFiM0owWENJc1hHNGdJQ0FnSUNCcGRHVnRUR0ZpWld4UVlYUm9PaUJjSW14aFltVnNYQ0lzWEc0Z0lDQWdJQ0JrYVhKbFkzUnBiMjQ2SUZ3aWIzVjBjSFYwWENJc1hHNGdJQ0FnSUNCd2IzSjBTV1JVWlcxd2JHRjBaVG9nWENJa2UybGtmVndpTEZ4dUlDQWdJQ0FnWkdWbVlYVnNkRkJ2Y25RNklIdGNiaUFnSUNBZ0lDQWdhV1E2SUZ3aVkyRnpaVndpTEZ4dUlDQWdJQ0FnSUNCc1lXSmxiRG9nWENKRFlYTmxYQ0lzWEc0Z0lDQWdJQ0FnSUdScGNtVmpkR2x2YmpvZ1hDSnZkWFJ3ZFhSY0lpeGNiaUFnSUNBZ0lDQWdjMk5vWlcxaE9pQjdJSFI1Y0dVNklGd2lZVzU1WENJZ2ZTeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ2ZTeGNiaUFnSUNCN1hHNGdJQ0FnSUNCMGVYQmxPaUJjSW5SdloyZHNaVkJ2Y25SY0lpeGNiaUFnSUNBZ0lIQmhjbUZ0WlhSbGNqb2dYQ0pvWVhORVpXWmhkV3gwWENJc1hHNGdJQ0FnSUNCbGNYVmhiSE02SUhSeWRXVXNYRzRnSUNBZ0lDQndiM0owT2lCN1hHNGdJQ0FnSUNBZ0lHbGtPaUJjSW1SbFptRjFiSFJjSWl4Y2JpQWdJQ0FnSUNBZ2JHRmlaV3c2SUZ3aVJHVm1ZWFZzZEZ3aUxGeHVJQ0FnSUNBZ0lDQmthWEpsWTNScGIyNDZJRndpYjNWMGNIVjBYQ0lzWEc0Z0lDQWdJQ0FnSUhOamFHVnRZVG9nZXlCMGVYQmxPaUJjSW1GdWVWd2lJSDBzWEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJSDBzWEc0Z0lGMHNYRzU5TzF4dVhHNHZLaW9nVFdGdWFXWmxjM1FnWm05eUlIUm9aU0J0WVc1MVlXd3RkSEpwWjJkbGNpQnViMlJsSUNoemRHRnlkSE1nWVNCeWRXNGdiMjRnWkdWdFlXNWtLUzRnS2k5Y2JtVjRjRzl5ZENCamIyNXpkQ0JOUVU1VlFVeGZWRkpKUjBkRlVsOUhVa0ZRU0Y5T1QwUkZYMDFCVGtsR1JWTlVJRDBnWTI5dGNHbHNaU2hOWVc1MVlXeFVjbWxuWjJWeVRtOWtaU3dnWENKTllXNTFZV3dnZEhKcFoyZGxjbHdpS1R0Y2JseHVMeW9xSUUxaGJtbG1aWE4wSUdadmNpQjBhR1VnZDJWaWFHOXZheTEwY21sbloyVnlJRzV2WkdVZ0tITjBZWEowY3lCaElISjFiaUJtY205dElHRnVJR2x1WW05MWJtUWdkMlZpYUc5dmF5a3VJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdWMFZDU0U5UFMxOVVVa2xIUjBWU1gwZFNRVkJJWDA1UFJFVmZUVUZPU1VaRlUxUWdQU0JqYjIxd2FXeGxLRmRsWW1odmIydFVjbWxuWjJWeVRtOWtaU3dnWENKWFpXSm9iMjlySUhSeWFXZG5aWEpjSWlrN1hHNWNiaThxS2lCTllXNXBabVZ6ZENCbWIzSWdkR2hsSUhOamFHVmtkV3hsTFhSeWFXZG5aWElnYm05a1pTQW9jM1JoY25SeklHRWdjblZ1SUc5dUlHRWdjMk5vWldSMWJHVXBMaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJRk5EU0VWRVZVeEZYMVJTU1VkSFJWSmZSMUpCVUVoZlRrOUVSVjlOUVU1SlJrVlRWQ0E5SUdOdmJYQnBiR1VvVTJOb1pXUjFiR1ZVY21sbloyVnlUbTlrWlN3Z1hDSlRZMmhsWkhWc1pTQjBjbWxuWjJWeVhDSXBPMXh1WEc0dktpb2dUV0Z1YVdabGMzUWdabTl5SUhSb1pTQmxkbVZ1ZEMxMGNtbG5aMlZ5SUc1dlpHVWdLSE4wWVhKMGN5QmhJSEoxYmlCdmJpQmhiaUJ2WW5ObGNuWmxaQ0JsZG1WdWRDa3VJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdSVlpGVGxSZlZGSkpSMGRGVWw5SFVrRlFTRjlPVDBSRlgwMUJUa2xHUlZOVUlEMGdZMjl0Y0dsc1pTaEZkbVZ1ZEZSeWFXZG5aWEpPYjJSbExDQmNJa1YyWlc1MElIUnlhV2RuWlhKY0lpazdYRzVjYmk4cUtpQk5ZVzVwWm1WemRDQm1iM0lnZEdobElHWnZjbTB0ZEhKcFoyZGxjaUJ1YjJSbElDaHpkR0Z5ZEhNZ1lTQnlkVzRnWm5KdmJTQmhJR1p2Y20wZ2MzVmliV2x6YzJsdmJpa3VJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdSazlTVFY5VVVrbEhSMFZTWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRZ1BTQmpiMjF3YVd4bEtFWnZjbTFVY21sbloyVnlUbTlrWlN3Z1hDSkdiM0p0SUhSeWFXZG5aWEpjSWlrN1hHNWNiaThxS2lCTllXNXBabVZ6ZENCbWIzSWdkR2hsSUdOb1lYUXRkSEpwWjJkbGNpQnViMlJsSUNoemRHRnlkSE1nWVNCeWRXNGdabkp2YlNCaElHTm9ZWFFnYldWemMyRm5aU2t1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnUTBoQlZGOVVVa2xIUjBWU1gwZFNRVkJJWDA1UFJFVmZUVUZPU1VaRlUxUWdQU0JqYjIxd2FXeGxLRU5vWVhSVWNtbG5aMlZ5VG05a1pTd2dYQ0pEYUdGMElIUnlhV2RuWlhKY0lpazdYRzVjYmk4cUtpQk5ZVzVwWm1WemRDQm1iM0lnZEdobElHbG1JRzV2WkdVZ0tHTnZibVJwZEdsdmJtRnNJR0p5WVc1amFDQnZiaUJoSUdKdmIyeGxZVzRnWTI5dVpHbDBhVzl1S1M0Z0tpOWNibVY0Y0c5eWRDQmpiMjV6ZENCSlJsOUhVa0ZRU0Y5T1QwUkZYMDFCVGtsR1JWTlVJRDBnWTI5dGNHbHNaU2hKWmtac2IzZE9iMlJsTENCY0lrbG1YQ0lwTzF4dVhHNHZLaW9nVFdGdWFXWmxjM1FnWm05eUlIUm9aU0J3WVhKaGJHeGxiQ0J1YjJSbElDaHlkVzV6SUdKeVlXNWphR1Z6SUdOdmJtTjFjbkpsYm5Sc2VTa3VJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdVRUZTUVV4TVJVeGZSMUpCVUVoZlRrOUVSVjlOUVU1SlJrVlRWQ0E5SUdOdmJYQnBiR1VvVUdGeVlXeHNaV3hHYkc5M1RtOWtaU3dnWENKUVlYSmhiR3hsYkZ3aUtUdGNibHh1THlvcUlFMWhibWxtWlhOMElHWnZjaUIwYUdVZ2JXVnlaMlVnYm05a1pTQW9hbTlwYm5NZ2NHRnlZV3hzWld3Z1luSmhibU5vWlhNcExpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElFMUZVa2RGWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRZ1BTQmpiMjF3YVd4bEtFMWxjbWRsUm14dmQwNXZaR1VzSUZ3aVRXVnlaMlZjSWlrN1hHNWNiaThxS2lCTllXNXBabVZ6ZENCbWIzSWdkR2hsSUcxaGNDQnViMlJsSUNoMGNtRnVjMlp2Y20xeklHVmhZMmdnYVc1d2RYUWdhWFJsYlNrdUlDb3ZYRzVsZUhCdmNuUWdZMjl1YzNRZ1RVRlFYMGRTUVZCSVgwNVBSRVZmVFVGT1NVWkZVMVFnUFNCamIyMXdhV3hsS0UxaGNFWnNiM2RPYjJSbExDQmNJazFoY0Z3aUtUdGNibHh1THlvcUlFMWhibWxtWlhOMElHWnZjaUIwYUdVZ1pHVnNZWGtnYm05a1pTQW9jR0YxYzJWeklHVjRaV04xZEdsdmJpQm1iM0lnWVNCa2RYSmhkR2x2YmlrdUlDb3ZYRzVsZUhCdmNuUWdZMjl1YzNRZ1JFVk1RVmxmUjFKQlVFaGZUazlFUlY5TlFVNUpSa1ZUVkNBOUlHTnZiWEJwYkdVb1JHVnNZWGxHYkc5M1RtOWtaU3dnWENKRVpXeGhlVndpS1R0Y2JseHVMeW9xSUUxaGJtbG1aWE4wSUdadmNpQjBhR1VnWlhKeWIzSXRZbTkxYm1SaGNua2dibTlrWlNBb2FYTnZiR0YwWlhNZ1luSmhibU5vSUdaaGFXeDFjbVZ6S1M0Z0tpOWNibVY0Y0c5eWRDQmpiMjV6ZENCRlVsSlBVbDlDVDFWT1JFRlNXVjlIVWtGUVNGOU9UMFJGWDAxQlRrbEdSVk5VSUQwZ1kyOXRjR2xzWlNoRmNuSnZja0p2ZFc1a1lYSjVSbXh2ZDA1dlpHVXNJRndpUlhKeWIzSWdZbTkxYm1SaGNubGNJaWs3WEc1Y2JpOHFLaUJOWVc1cFptVnpkQ0JtYjNJZ2RHaGxJR2gxYldGdUxXRndjSEp2ZG1Gc0lHNXZaR1VnS0hkaGFYUnpJR1p2Y2lCaGJpQmhjSEJ5YjNaaGJDQmtaV05wYzJsdmJpa3VJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdTRlZOUVU1ZlFWQlFVazlXUVV4ZlIxSkJVRWhmVGs5RVJWOU5RVTVKUmtWVFZDQTlJR052YlhCcGJHVW9TSFZ0WVc1QmNIQnliM1poYkVac2IzZE9iMlJsTENCY0lraDFiV0Z1SUdGd2NISnZkbUZzWENJcE8xeHVYRzR2S2lvZ1RXRnVhV1psYzNRZ1ptOXlJSFJvWlNCeVpYUjFjbTRnYm05a1pTQW9kR1Z5YldsdVlYUmxjeUIwYUdVZ2QyOXlhMlpzYjNjZ2QybDBhQ0J2ZFhSd2RYUWdkbUZzZFdWektTNGdLaTljYm1WNGNHOXlkQ0JqYjI1emRDQlNSVlJWVWs1ZlIxSkJVRWhmVGs5RVJWOU5RVTVKUmtWVFZDQTlJR052YlhCcGJHVW9VbVYwZFhKdVJteHZkMDV2WkdVc0lGd2lVbVYwZFhKdVhDSXBPMXh1WEc0dktpb2dUV0Z1YVdabGMzUWdabTl5SUhSb1pTQmpiMlJsSUc1dlpHVWdLR1Y0WldOMWRHVnpJSFZ6WlhJZ1kyOWtaU2t1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnUTA5RVJWOUhVa0ZRU0Y5T1QwUkZYMDFCVGtsR1JWTlVJRDBnWTI5dGNHbHNaU2hEYjJSbFJteHZkMDV2WkdVc0lGd2lRMjlrWlZ3aUtUdGNibHh1THlvcUlFMWhibWxtWlhOMElHWnZjaUIwYUdVZ2JHOW5JRzV2WkdVZ0tHeHZaM01nYVhSeklHbHVjSFYwS1M0Z0tpOWNibVY0Y0c5eWRDQmpiMjV6ZENCTVQwZGZSMUpCVUVoZlRrOUVSVjlOUVU1SlJrVlRWQ0E5SUdOdmJYQnBiR1VvVEc5blJteHZkMDV2WkdVc0lGd2lURzluWENJcE8xeHVYRzR2S2lvZ1RXRnVhV1psYzNRZ1ptOXlJSFJvWlNCMWRHbHNhWFI1TFd4dlp5QnViMlJsSUNoc2IyY3RjMmhoY0dWa0lIVjBhV3hwZEhrZ2MybHVheWt1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnVlZSSlRFbFVXVjlNVDBkZlIxSkJVRWhmVGs5RVJWOU5RVTVKUmtWVFZDQTlJR052YlhCcGJHVW9WWFJwYkdsMGVVeHZaMDV2WkdVc0lGd2lWWFJwYkdsMGVTQk1iMmRjSWlrN1hHNWNiaThxS2lCTllXNXBabVZ6ZENCbWIzSWdkR2hsSUdKeVpXRnJJRzV2WkdVZ0tHVjRhWFJ6SUhSb1pTQmxibU5zYjNOcGJtY2diRzl2Y0NrdUlDb3ZYRzVsZUhCdmNuUWdZMjl1YzNRZ1FsSkZRVXRmUjFKQlVFaGZUazlFUlY5TlFVNUpSa1ZUVkNBOUlHTnZiWEJwYkdVb1FuSmxZV3RHYkc5M1RtOWtaU3dnWENKQ2NtVmhhMXdpS1R0Y2JseHVMeW9xSUUxaGJtbG1aWE4wSUdadmNpQjBhR1VnWVdkbGJuUWdibTlrWlNBb1pHVnNaV2RoZEdWeklIZHZjbXNnZEc4Z1lXNGdZV2RsYm5RcExpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElFRkhSVTVVWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRZ1BTQmpiMjF3YVd4bEtFRm5aVzUwVG05a1pTd2dYQ0pCWjJWdWRGd2lLVHRjYmx4dUx5b3FJRUZzYkNCaWRXbHNkQzFwYmlCdWIyUmxJRzFoYm1sbVpYTjBjeXdnYVc0Z1kyRjBZV3h2WjNWbElHUnBjM0JzWVhrZ2IzSmtaWEl1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnUjFKQlVFaGZRbFZKVEZSZlNVNWZUazlFUlY5TlFVNUpSa1ZUVkZNNklFZHlZWEJvVG05a1pVMWhibWxtWlhOMFcxMGdQU0JiWEc0Z0lFMUJUbFZCVEY5VVVrbEhSMFZTWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRc1hHNGdJRmRGUWtoUFQwdGZWRkpKUjBkRlVsOUhVa0ZRU0Y5T1QwUkZYMDFCVGtsR1JWTlVMRnh1SUNCVFEwaEZSRlZNUlY5VVVrbEhSMFZTWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRc1hHNGdJRVZXUlU1VVgxUlNTVWRIUlZKZlIxSkJVRWhmVGs5RVJWOU5RVTVKUmtWVFZDeGNiaUFnUms5U1RWOVVVa2xIUjBWU1gwZFNRVkJJWDA1UFJFVmZUVUZPU1VaRlUxUXNYRzRnSUVOSVFWUmZWRkpKUjBkRlVsOUhVa0ZRU0Y5T1QwUkZYMDFCVGtsR1JWTlVMRnh1SUNCSlJsOUhVa0ZRU0Y5T1QwUkZYMDFCVGtsR1JWTlVMRnh1SUNCVFYwbFVRMGhmUjFKQlVFaGZUazlFUlY5TlFVNUpSa1ZUVkN4Y2JpQWdVRUZTUVV4TVJVeGZSMUpCVUVoZlRrOUVSVjlOUVU1SlJrVlRWQ3hjYmlBZ1RVVlNSMFZmUjFKQlVFaGZUazlFUlY5TlFVNUpSa1ZUVkN4Y2JpQWdUVUZRWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRc1hHNGdJRVJGVEVGWlgwZFNRVkJJWDA1UFJFVmZUVUZPU1VaRlUxUXNYRzRnSUVWU1VrOVNYMEpQVlU1RVFWSlpYMGRTUVZCSVgwNVBSRVZmVFVGT1NVWkZVMVFzWEc0Z0lFaFZUVUZPWDBGUVVGSlBWa0ZNWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRc1hHNGdJRkpGVkZWU1RsOUhVa0ZRU0Y5T1QwUkZYMDFCVGtsR1JWTlVMRnh1SUNCRFQwUkZYMGRTUVZCSVgwNVBSRVZmVFVGT1NVWkZVMVFzWEc0Z0lFeFBSMTlIVWtGUVNGOU9UMFJGWDAxQlRrbEdSVk5VTEZ4dUlDQlZWRWxNU1ZSWlgweFBSMTlIVWtGUVNGOU9UMFJGWDAxQlRrbEdSVk5VTEZ4dUlDQkNVa1ZCUzE5SFVrRlFTRjlPVDBSRlgwMUJUa2xHUlZOVUxGeHVJQ0JCUjBWT1ZGOUhVa0ZRU0Y5T1QwUkZYMDFCVGtsR1JWTlVMRnh1SUNCR1QxSkZRVU5JWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRc1hHNGdJRmRJU1V4RlgwZFNRVkJJWDA1UFJFVmZUVUZPU1VaRlUxUXNYRzRnSUZWT1ZFbE1YMGRTUVZCSVgwNVBSRVZmVFVGT1NVWkZVMVFzWEc1ZE8xeHVYRzR2S2lvZ1FuVnBiSFF0YVc0Z2JXRnVhV1psYzNSeklHbHVaR1Y0WldRZ1lua2dibTlrWlNCZ2EybHVaR0FnNG9DVUlIUm9aU0J6YjNWeVkyVWdabTl5SUdKMWFXeDBMV2x1SUdOaGRHRnNiMmQxWlNCeVpXZHBjM1J5WVhScGIyNXpMaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJRWRTUVZCSVgwSlZTVXhVWDBsT1gwNVBSRVZmVFVGT1NVWkZVMVJUWDBKWlgwdEpUa1E2SUZKbFkyOXlaRHhjYmlBZ2MzUnlhVzVuTEZ4dUlDQkhjbUZ3YUU1dlpHVk5ZVzVwWm1WemRGeHVQaUE5SUU5aWFtVmpkQzVtY205dFJXNTBjbWxsY3loY2JpQWdSMUpCVUVoZlFsVkpURlJmU1U1ZlRrOUVSVjlOUVU1SlJrVlRWRk11YldGd0tDaHRZVzVwWm1WemRDa2dQVDRnVzIxaGJtbG1aWE4wTG10cGJtUXNJRzFoYm1sbVpYTjBYU2xjYmlrN1hHNGlYWDA9Il19