@decaf-ts/for-fabric 0.13.31-experimental.3 → 0.13.32

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 (563) hide show
  1. package/dist/for-fabric.cjs +2 -4001
  2. package/dist/for-fabric.cjs.map +1 -0
  3. package/dist/for-fabric.js +2 -4111
  4. package/dist/for-fabric.js.map +1 -0
  5. package/lib/cjs/bin/cli.cjs +2 -2
  6. package/lib/cjs/bin/cli.cjs.map +1 -0
  7. package/lib/cjs/cli-module.cjs +2 -2
  8. package/lib/cjs/cli-module.cjs.map +1 -0
  9. package/lib/cjs/cli-utils.cjs +2 -2
  10. package/lib/cjs/cli-utils.cjs.map +1 -0
  11. package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
  12. package/lib/cjs/client/FabricClientAdapter.cjs.map +1 -0
  13. package/lib/cjs/client/FabricClientContext.cjs +2 -2
  14. package/lib/cjs/client/FabricClientContext.cjs.map +1 -0
  15. package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
  16. package/lib/cjs/client/FabricClientDispatch.cjs.map +1 -0
  17. package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
  18. package/lib/cjs/client/FabricClientPaginator.cjs.map +1 -0
  19. package/lib/cjs/client/FabricClientRepository.cjs +2 -2
  20. package/lib/cjs/client/FabricClientRepository.cjs.map +1 -0
  21. package/lib/cjs/client/FabricClientStatement.cjs +2 -2
  22. package/lib/cjs/client/FabricClientStatement.cjs.map +1 -0
  23. package/lib/cjs/client/collections/generation.cjs +2 -2
  24. package/lib/cjs/client/collections/generation.cjs.map +1 -0
  25. package/lib/cjs/client/collections/index.cjs +2 -2
  26. package/lib/cjs/client/collections/index.cjs.map +1 -0
  27. package/lib/cjs/client/constants.cjs +2 -2
  28. package/lib/cjs/client/constants.cjs.map +1 -0
  29. package/lib/cjs/client/crypto.cjs +2 -2
  30. package/lib/cjs/client/crypto.cjs.map +1 -0
  31. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
  32. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +1 -0
  33. package/lib/cjs/client/erc20/index.cjs +2 -2
  34. package/lib/cjs/client/erc20/index.cjs.map +1 -0
  35. package/lib/cjs/client/fabric-fs.cjs +2 -2
  36. package/lib/cjs/client/fabric-fs.cjs.map +1 -0
  37. package/lib/cjs/client/fabric-hsm.cjs +2 -2
  38. package/lib/cjs/client/fabric-hsm.cjs.map +1 -0
  39. package/lib/cjs/client/ids/id-extraction.cjs +2 -2
  40. package/lib/cjs/client/ids/id-extraction.cjs.map +1 -0
  41. package/lib/cjs/client/ids/index.cjs +2 -2
  42. package/lib/cjs/client/ids/index.cjs.map +1 -0
  43. package/lib/cjs/client/index.cjs +2 -2
  44. package/lib/cjs/client/index.cjs.map +1 -0
  45. package/lib/cjs/client/indexes/generation.cjs +2 -2
  46. package/lib/cjs/client/indexes/generation.cjs.map +1 -0
  47. package/lib/cjs/client/indexes/index.cjs +2 -2
  48. package/lib/cjs/client/indexes/index.cjs.map +1 -0
  49. package/lib/cjs/client/logging.cjs +2 -2
  50. package/lib/cjs/client/logging.cjs.map +1 -0
  51. package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
  52. package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +1 -0
  53. package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
  54. package/lib/cjs/client/services/FabricIdentityService.cjs.map +1 -0
  55. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
  56. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +1 -0
  57. package/lib/cjs/client/services/constants.cjs +2 -2
  58. package/lib/cjs/client/services/constants.cjs.map +1 -0
  59. package/lib/cjs/client/services/index.cjs +2 -2
  60. package/lib/cjs/client/services/index.cjs.map +1 -0
  61. package/lib/cjs/client/types.cjs +2 -2
  62. package/lib/cjs/client/types.cjs.map +1 -0
  63. package/lib/cjs/client/utils.cjs +2 -2
  64. package/lib/cjs/client/utils.cjs.map +1 -0
  65. package/lib/cjs/contract/Address.cjs +2 -2
  66. package/lib/cjs/contract/Address.cjs.map +1 -0
  67. package/lib/cjs/contract/AddressContract.cjs +2 -2
  68. package/lib/cjs/contract/AddressContract.cjs.map +1 -0
  69. package/lib/cjs/contract/AuditContract.cjs +2 -2
  70. package/lib/cjs/contract/AuditContract.cjs.map +1 -0
  71. package/lib/cjs/contract/BatchContract.cjs +2 -2
  72. package/lib/cjs/contract/BatchContract.cjs.map +1 -0
  73. package/lib/cjs/contract/MarketContract.cjs +2 -2
  74. package/lib/cjs/contract/MarketContract.cjs.map +1 -0
  75. package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
  76. package/lib/cjs/contract/OtherAuditContract.cjs.map +1 -0
  77. package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
  78. package/lib/cjs/contract/OtherBatchContract.cjs.map +1 -0
  79. package/lib/cjs/contract/OtherLeafletContract.cjs +2 -2
  80. package/lib/cjs/contract/OtherLeafletContract.cjs.map +1 -0
  81. package/lib/cjs/contract/OtherLeafletFileContract.cjs +2 -2
  82. package/lib/cjs/contract/OtherLeafletFileContract.cjs.map +1 -0
  83. package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
  84. package/lib/cjs/contract/OtherMarketContract.cjs.map +1 -0
  85. package/lib/cjs/contract/OtherProductContract.cjs +2 -2
  86. package/lib/cjs/contract/OtherProductContract.cjs.map +1 -0
  87. package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
  88. package/lib/cjs/contract/OtherProductImageContract.cjs.map +1 -0
  89. package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
  90. package/lib/cjs/contract/OtherProductSharedContract.cjs.map +1 -0
  91. package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
  92. package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +1 -0
  93. package/lib/cjs/contract/Product.cjs +2 -2
  94. package/lib/cjs/contract/Product.cjs.map +1 -0
  95. package/lib/cjs/contract/ProductContract.cjs +2 -2
  96. package/lib/cjs/contract/ProductContract.cjs.map +1 -0
  97. package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
  98. package/lib/cjs/contract/ProductStrengthContract.cjs.map +1 -0
  99. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
  100. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +1 -0
  101. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
  102. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +1 -0
  103. package/lib/cjs/contract/User.cjs +2 -2
  104. package/lib/cjs/contract/User.cjs.map +1 -0
  105. package/lib/cjs/contract/UserContract.cjs +2 -2
  106. package/lib/cjs/contract/UserContract.cjs.map +1 -0
  107. package/lib/cjs/contract/index.cjs +2 -2
  108. package/lib/cjs/contract/index.cjs.map +1 -0
  109. package/lib/cjs/contract/logging-context.cjs +2 -2
  110. package/lib/cjs/contract/logging-context.cjs.map +1 -0
  111. package/lib/cjs/contract/models/Audit.cjs +2 -2
  112. package/lib/cjs/contract/models/Audit.cjs.map +1 -0
  113. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
  114. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +1 -0
  115. package/lib/cjs/contract/models/BaseModel.cjs +2 -2
  116. package/lib/cjs/contract/models/BaseModel.cjs.map +1 -0
  117. package/lib/cjs/contract/models/Batch.cjs +2 -2
  118. package/lib/cjs/contract/models/Batch.cjs.map +1 -0
  119. package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
  120. package/lib/cjs/contract/models/GtinOwner.cjs.map +1 -0
  121. package/lib/cjs/contract/models/History.cjs +2 -2
  122. package/lib/cjs/contract/models/History.cjs.map +1 -0
  123. package/lib/cjs/contract/models/Leaflet.cjs +2 -2
  124. package/lib/cjs/contract/models/Leaflet.cjs.map +1 -0
  125. package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
  126. package/lib/cjs/contract/models/LeafletFile.cjs.map +1 -0
  127. package/lib/cjs/contract/models/Market.cjs +2 -2
  128. package/lib/cjs/contract/models/Market.cjs.map +1 -0
  129. package/lib/cjs/contract/models/OtherAudit.cjs +2 -2
  130. package/lib/cjs/contract/models/OtherAudit.cjs.map +1 -0
  131. package/lib/cjs/contract/models/OtherBatchShared.cjs +2 -2
  132. package/lib/cjs/contract/models/OtherBatchShared.cjs.map +1 -0
  133. package/lib/cjs/contract/models/OtherLeaflet.cjs +2 -2
  134. package/lib/cjs/contract/models/OtherLeaflet.cjs.map +1 -0
  135. package/lib/cjs/contract/models/OtherLeafletFile.cjs +2 -2
  136. package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +1 -0
  137. package/lib/cjs/contract/models/OtherMarket.cjs +2 -2
  138. package/lib/cjs/contract/models/OtherMarket.cjs.map +1 -0
  139. package/lib/cjs/contract/models/OtherProduct.cjs +2 -2
  140. package/lib/cjs/contract/models/OtherProduct.cjs.map +1 -0
  141. package/lib/cjs/contract/models/OtherProductImage.cjs +2 -2
  142. package/lib/cjs/contract/models/OtherProductImage.cjs.map +1 -0
  143. package/lib/cjs/contract/models/OtherProductShared.cjs +2 -2
  144. package/lib/cjs/contract/models/OtherProductShared.cjs.map +1 -0
  145. package/lib/cjs/contract/models/OtherProductStrength.cjs +2 -2
  146. package/lib/cjs/contract/models/OtherProductStrength.cjs.map +1 -0
  147. package/lib/cjs/contract/models/Product.cjs +2 -2
  148. package/lib/cjs/contract/models/Product.cjs.map +1 -0
  149. package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
  150. package/lib/cjs/contract/models/ProductStrength.cjs.map +1 -0
  151. package/lib/cjs/contract/models/SegregatedDocument.cjs +2 -2
  152. package/lib/cjs/contract/models/SegregatedDocument.cjs.map +1 -0
  153. package/lib/cjs/contract/models/constants.cjs +2 -2
  154. package/lib/cjs/contract/models/constants.cjs.map +1 -0
  155. package/lib/cjs/contract/models/decorators-private.cjs +2 -2
  156. package/lib/cjs/contract/models/decorators-private.cjs.map +1 -0
  157. package/lib/cjs/contract/models/decorators.cjs +2 -2
  158. package/lib/cjs/contract/models/decorators.cjs.map +1 -0
  159. package/lib/cjs/contract/models/gtin.cjs +2 -2
  160. package/lib/cjs/contract/models/gtin.cjs.map +1 -0
  161. package/lib/cjs/contract/models/history-dec.cjs +2 -2
  162. package/lib/cjs/contract/models/history-dec.cjs.map +1 -0
  163. package/lib/cjs/contract/trackedModels/History.cjs +2 -2
  164. package/lib/cjs/contract/trackedModels/History.cjs.map +1 -0
  165. package/lib/cjs/contract/trackedModels/OtherAudit.cjs +2 -2
  166. package/lib/cjs/contract/trackedModels/OtherAudit.cjs.map +1 -0
  167. package/lib/cjs/contract/trackedModels/OtherBatchShared.cjs +2 -2
  168. package/lib/cjs/contract/trackedModels/OtherBatchShared.cjs.map +1 -0
  169. package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs +2 -2
  170. package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs.map +1 -0
  171. package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs +2 -2
  172. package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs.map +1 -0
  173. package/lib/cjs/contract/trackedModels/OtherMarket.cjs +2 -2
  174. package/lib/cjs/contract/trackedModels/OtherMarket.cjs.map +1 -0
  175. package/lib/cjs/contract/trackedModels/OtherProduct.cjs +2 -2
  176. package/lib/cjs/contract/trackedModels/OtherProduct.cjs.map +1 -0
  177. package/lib/cjs/contract/trackedModels/OtherProductImage.cjs +2 -2
  178. package/lib/cjs/contract/trackedModels/OtherProductImage.cjs.map +1 -0
  179. package/lib/cjs/contract/trackedModels/OtherProductShared.cjs +2 -2
  180. package/lib/cjs/contract/trackedModels/OtherProductShared.cjs.map +1 -0
  181. package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs +2 -2
  182. package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs.map +1 -0
  183. package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
  184. package/lib/cjs/contracts/ContractAdapter.cjs.map +1 -0
  185. package/lib/cjs/contracts/ContractContext.cjs +2 -2
  186. package/lib/cjs/contracts/ContractContext.cjs.map +1 -0
  187. package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
  188. package/lib/cjs/contracts/FabricContractDispatch.cjs.map +1 -0
  189. package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
  190. package/lib/cjs/contracts/FabricContractPaginator.cjs.map +1 -0
  191. package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
  192. package/lib/cjs/contracts/FabricContractRepository.cjs.map +1 -0
  193. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
  194. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +1 -0
  195. package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
  196. package/lib/cjs/contracts/FabricContractSequence.cjs.map +1 -0
  197. package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
  198. package/lib/cjs/contracts/FabricContractStatement.cjs.map +1 -0
  199. package/lib/cjs/contracts/MigrationContract.cjs +2 -2
  200. package/lib/cjs/contracts/MigrationContract.cjs.map +1 -0
  201. package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
  202. package/lib/cjs/contracts/PrivateSequence.cjs.map +1 -0
  203. package/lib/cjs/contracts/auth/decorators.cjs +2 -2
  204. package/lib/cjs/contracts/auth/decorators.cjs.map +1 -0
  205. package/lib/cjs/contracts/auth/index.cjs +2 -2
  206. package/lib/cjs/contracts/auth/index.cjs.map +1 -0
  207. package/lib/cjs/contracts/bootstrap.cjs +2 -2
  208. package/lib/cjs/contracts/bootstrap.cjs.map +1 -0
  209. package/lib/cjs/contracts/crud/crud-contract.cjs +2 -2
  210. package/lib/cjs/contracts/crud/crud-contract.cjs.map +1 -0
  211. package/lib/cjs/contracts/crud/index.cjs +2 -2
  212. package/lib/cjs/contracts/crud/index.cjs.map +1 -0
  213. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
  214. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +1 -0
  215. package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
  216. package/lib/cjs/contracts/erc20/erc20contract.cjs.map +1 -0
  217. package/lib/cjs/contracts/erc20/index.cjs +2 -2
  218. package/lib/cjs/contracts/erc20/index.cjs.map +1 -0
  219. package/lib/cjs/contracts/erc20/models.cjs +2 -2
  220. package/lib/cjs/contracts/erc20/models.cjs.map +1 -0
  221. package/lib/cjs/contracts/fabric-overrides.cjs +2 -2
  222. package/lib/cjs/contracts/fabric-overrides.cjs.map +1 -0
  223. package/lib/cjs/contracts/index.cjs +2 -2
  224. package/lib/cjs/contracts/index.cjs.map +1 -0
  225. package/lib/cjs/contracts/logging.cjs +2 -2
  226. package/lib/cjs/contracts/logging.cjs.map +1 -0
  227. package/lib/cjs/contracts/overrides.cjs +2 -2
  228. package/lib/cjs/contracts/overrides.cjs.map +1 -0
  229. package/lib/cjs/contracts/types.cjs +2 -2
  230. package/lib/cjs/contracts/types.cjs.map +1 -0
  231. package/lib/cjs/contracts/uuid.cjs +2 -2
  232. package/lib/cjs/contracts/uuid.cjs.map +1 -0
  233. package/lib/cjs/index.cjs +2 -2
  234. package/lib/cjs/index.cjs.map +1 -0
  235. package/lib/cjs/shared/ClientSerializer.cjs +2 -2
  236. package/lib/cjs/shared/ClientSerializer.cjs.map +1 -0
  237. package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
  238. package/lib/cjs/shared/DeterministicSerializer.cjs.map +1 -0
  239. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
  240. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +1 -0
  241. package/lib/cjs/shared/constants.cjs +2 -2
  242. package/lib/cjs/shared/constants.cjs.map +1 -0
  243. package/lib/cjs/shared/decorators.cjs +2 -2
  244. package/lib/cjs/shared/decorators.cjs.map +1 -0
  245. package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
  246. package/lib/cjs/shared/erc20/erc20-constants.cjs.map +1 -0
  247. package/lib/cjs/shared/erc20/index.cjs +2 -2
  248. package/lib/cjs/shared/erc20/index.cjs.map +1 -0
  249. package/lib/cjs/shared/errors.cjs +2 -2
  250. package/lib/cjs/shared/errors.cjs.map +1 -0
  251. package/lib/cjs/shared/events.cjs +2 -2
  252. package/lib/cjs/shared/events.cjs.map +1 -0
  253. package/lib/cjs/shared/fabric-types.cjs +2 -2
  254. package/lib/cjs/shared/fabric-types.cjs.map +1 -0
  255. package/lib/cjs/shared/index.cjs +2 -2
  256. package/lib/cjs/shared/index.cjs.map +1 -0
  257. package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
  258. package/lib/cjs/shared/interfaces/Checkable.cjs.map +1 -0
  259. package/lib/cjs/shared/interfaces/index.cjs +2 -2
  260. package/lib/cjs/shared/interfaces/index.cjs.map +1 -0
  261. package/lib/cjs/shared/math.cjs +2 -2
  262. package/lib/cjs/shared/math.cjs.map +1 -0
  263. package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
  264. package/lib/cjs/shared/model/FabricBaseModel.cjs.map +1 -0
  265. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
  266. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +1 -0
  267. package/lib/cjs/shared/model/Identity.cjs +2 -2
  268. package/lib/cjs/shared/model/Identity.cjs.map +1 -0
  269. package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
  270. package/lib/cjs/shared/model/IdentityCredentials.cjs.map +1 -0
  271. package/lib/cjs/shared/model/index.cjs +2 -2
  272. package/lib/cjs/shared/model/index.cjs.map +1 -0
  273. package/lib/cjs/shared/overrides/Model.cjs +2 -2
  274. package/lib/cjs/shared/overrides/Model.cjs.map +1 -0
  275. package/lib/cjs/shared/overrides/index.cjs +2 -2
  276. package/lib/cjs/shared/overrides/index.cjs.map +1 -0
  277. package/lib/cjs/shared/overrides/overrides.cjs +2 -2
  278. package/lib/cjs/shared/overrides/overrides.cjs.map +1 -0
  279. package/lib/cjs/shared/types.cjs +2 -2
  280. package/lib/cjs/shared/types.cjs.map +1 -0
  281. package/lib/cjs/version.cjs +5 -5
  282. package/lib/cjs/version.cjs.map +1 -0
  283. package/lib/esm/bin/cli.js +1 -1
  284. package/lib/esm/bin/cli.js.map +1 -0
  285. package/lib/esm/cli-module.js +1 -1
  286. package/lib/esm/cli-module.js.map +1 -0
  287. package/lib/esm/cli-utils.js +1 -1
  288. package/lib/esm/cli-utils.js.map +1 -0
  289. package/lib/esm/client/FabricClientAdapter.js +1 -1
  290. package/lib/esm/client/FabricClientAdapter.js.map +1 -0
  291. package/lib/esm/client/FabricClientContext.js +1 -1
  292. package/lib/esm/client/FabricClientContext.js.map +1 -0
  293. package/lib/esm/client/FabricClientDispatch.js +1 -1
  294. package/lib/esm/client/FabricClientDispatch.js.map +1 -0
  295. package/lib/esm/client/FabricClientPaginator.js +1 -1
  296. package/lib/esm/client/FabricClientPaginator.js.map +1 -0
  297. package/lib/esm/client/FabricClientRepository.js +1 -1
  298. package/lib/esm/client/FabricClientRepository.js.map +1 -0
  299. package/lib/esm/client/FabricClientStatement.js +1 -1
  300. package/lib/esm/client/FabricClientStatement.js.map +1 -0
  301. package/lib/esm/client/collections/generation.js +1 -1
  302. package/lib/esm/client/collections/generation.js.map +1 -0
  303. package/lib/esm/client/collections/index.js +1 -1
  304. package/lib/esm/client/collections/index.js.map +1 -0
  305. package/lib/esm/client/constants.js +1 -1
  306. package/lib/esm/client/constants.js.map +1 -0
  307. package/lib/esm/client/crypto.js +1 -1
  308. package/lib/esm/client/crypto.js.map +1 -0
  309. package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
  310. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -0
  311. package/lib/esm/client/erc20/index.js +1 -1
  312. package/lib/esm/client/erc20/index.js.map +1 -0
  313. package/lib/esm/client/fabric-fs.js +1 -1
  314. package/lib/esm/client/fabric-fs.js.map +1 -0
  315. package/lib/esm/client/fabric-hsm.js +1 -1
  316. package/lib/esm/client/fabric-hsm.js.map +1 -0
  317. package/lib/esm/client/ids/id-extraction.js +1 -1
  318. package/lib/esm/client/ids/id-extraction.js.map +1 -0
  319. package/lib/esm/client/ids/index.js +1 -1
  320. package/lib/esm/client/ids/index.js.map +1 -0
  321. package/lib/esm/client/index.js +1 -1
  322. package/lib/esm/client/index.js.map +1 -0
  323. package/lib/esm/client/indexes/generation.js +1 -1
  324. package/lib/esm/client/indexes/generation.js.map +1 -0
  325. package/lib/esm/client/indexes/index.js +1 -1
  326. package/lib/esm/client/indexes/index.js.map +1 -0
  327. package/lib/esm/client/logging.js +1 -1
  328. package/lib/esm/client/logging.js.map +1 -0
  329. package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
  330. package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -0
  331. package/lib/esm/client/services/FabricIdentityService.js +1 -1
  332. package/lib/esm/client/services/FabricIdentityService.js.map +1 -0
  333. package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
  334. package/lib/esm/client/services/RegistrationRequestBuilder.js.map +1 -0
  335. package/lib/esm/client/services/constants.js +1 -1
  336. package/lib/esm/client/services/constants.js.map +1 -0
  337. package/lib/esm/client/services/index.js +1 -1
  338. package/lib/esm/client/services/index.js.map +1 -0
  339. package/lib/esm/client/types.js +1 -1
  340. package/lib/esm/client/types.js.map +1 -0
  341. package/lib/esm/client/utils.js +1 -1
  342. package/lib/esm/client/utils.js.map +1 -0
  343. package/lib/esm/contract/Address.js +1 -1
  344. package/lib/esm/contract/Address.js.map +1 -0
  345. package/lib/esm/contract/AddressContract.js +1 -1
  346. package/lib/esm/contract/AddressContract.js.map +1 -0
  347. package/lib/esm/contract/AuditContract.js +1 -1
  348. package/lib/esm/contract/AuditContract.js.map +1 -0
  349. package/lib/esm/contract/BatchContract.js +1 -1
  350. package/lib/esm/contract/BatchContract.js.map +1 -0
  351. package/lib/esm/contract/MarketContract.js +1 -1
  352. package/lib/esm/contract/MarketContract.js.map +1 -0
  353. package/lib/esm/contract/OtherAuditContract.js +1 -1
  354. package/lib/esm/contract/OtherAuditContract.js.map +1 -0
  355. package/lib/esm/contract/OtherBatchContract.js +1 -1
  356. package/lib/esm/contract/OtherBatchContract.js.map +1 -0
  357. package/lib/esm/contract/OtherLeafletContract.js +1 -1
  358. package/lib/esm/contract/OtherLeafletContract.js.map +1 -0
  359. package/lib/esm/contract/OtherLeafletFileContract.js +1 -1
  360. package/lib/esm/contract/OtherLeafletFileContract.js.map +1 -0
  361. package/lib/esm/contract/OtherMarketContract.js +1 -1
  362. package/lib/esm/contract/OtherMarketContract.js.map +1 -0
  363. package/lib/esm/contract/OtherProductContract.js +1 -1
  364. package/lib/esm/contract/OtherProductContract.js.map +1 -0
  365. package/lib/esm/contract/OtherProductImageContract.js +1 -1
  366. package/lib/esm/contract/OtherProductImageContract.js.map +1 -0
  367. package/lib/esm/contract/OtherProductSharedContract.js +1 -1
  368. package/lib/esm/contract/OtherProductSharedContract.js.map +1 -0
  369. package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
  370. package/lib/esm/contract/OtherProductStrengthContract.js.map +1 -0
  371. package/lib/esm/contract/Product.js +1 -1
  372. package/lib/esm/contract/Product.js.map +1 -0
  373. package/lib/esm/contract/ProductContract.js +1 -1
  374. package/lib/esm/contract/ProductContract.js.map +1 -0
  375. package/lib/esm/contract/ProductStrengthContract.js +1 -1
  376. package/lib/esm/contract/ProductStrengthContract.js.map +1 -0
  377. package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
  378. package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +1 -0
  379. package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
  380. package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +1 -0
  381. package/lib/esm/contract/User.js +1 -1
  382. package/lib/esm/contract/User.js.map +1 -0
  383. package/lib/esm/contract/UserContract.js +1 -1
  384. package/lib/esm/contract/UserContract.js.map +1 -0
  385. package/lib/esm/contract/index.js +1 -1
  386. package/lib/esm/contract/index.js.map +1 -0
  387. package/lib/esm/contract/logging-context.js +1 -1
  388. package/lib/esm/contract/logging-context.js.map +1 -0
  389. package/lib/esm/contract/models/Audit.js +1 -1
  390. package/lib/esm/contract/models/Audit.js.map +1 -0
  391. package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
  392. package/lib/esm/contract/models/BaseIdentifiedModel.js.map +1 -0
  393. package/lib/esm/contract/models/BaseModel.js +1 -1
  394. package/lib/esm/contract/models/BaseModel.js.map +1 -0
  395. package/lib/esm/contract/models/Batch.js +1 -1
  396. package/lib/esm/contract/models/Batch.js.map +1 -0
  397. package/lib/esm/contract/models/GtinOwner.js +1 -1
  398. package/lib/esm/contract/models/GtinOwner.js.map +1 -0
  399. package/lib/esm/contract/models/History.js +1 -1
  400. package/lib/esm/contract/models/History.js.map +1 -0
  401. package/lib/esm/contract/models/Leaflet.js +1 -1
  402. package/lib/esm/contract/models/Leaflet.js.map +1 -0
  403. package/lib/esm/contract/models/LeafletFile.js +1 -1
  404. package/lib/esm/contract/models/LeafletFile.js.map +1 -0
  405. package/lib/esm/contract/models/Market.js +1 -1
  406. package/lib/esm/contract/models/Market.js.map +1 -0
  407. package/lib/esm/contract/models/OtherAudit.js +1 -1
  408. package/lib/esm/contract/models/OtherAudit.js.map +1 -0
  409. package/lib/esm/contract/models/OtherBatchShared.js +1 -1
  410. package/lib/esm/contract/models/OtherBatchShared.js.map +1 -0
  411. package/lib/esm/contract/models/OtherLeaflet.js +1 -1
  412. package/lib/esm/contract/models/OtherLeaflet.js.map +1 -0
  413. package/lib/esm/contract/models/OtherLeafletFile.js +1 -1
  414. package/lib/esm/contract/models/OtherLeafletFile.js.map +1 -0
  415. package/lib/esm/contract/models/OtherMarket.js +1 -1
  416. package/lib/esm/contract/models/OtherMarket.js.map +1 -0
  417. package/lib/esm/contract/models/OtherProduct.js +1 -1
  418. package/lib/esm/contract/models/OtherProduct.js.map +1 -0
  419. package/lib/esm/contract/models/OtherProductImage.js +1 -1
  420. package/lib/esm/contract/models/OtherProductImage.js.map +1 -0
  421. package/lib/esm/contract/models/OtherProductShared.js +1 -1
  422. package/lib/esm/contract/models/OtherProductShared.js.map +1 -0
  423. package/lib/esm/contract/models/OtherProductStrength.js +1 -1
  424. package/lib/esm/contract/models/OtherProductStrength.js.map +1 -0
  425. package/lib/esm/contract/models/Product.js +1 -1
  426. package/lib/esm/contract/models/Product.js.map +1 -0
  427. package/lib/esm/contract/models/ProductStrength.js +1 -1
  428. package/lib/esm/contract/models/ProductStrength.js.map +1 -0
  429. package/lib/esm/contract/models/SegregatedDocument.js +1 -1
  430. package/lib/esm/contract/models/SegregatedDocument.js.map +1 -0
  431. package/lib/esm/contract/models/constants.js +1 -1
  432. package/lib/esm/contract/models/constants.js.map +1 -0
  433. package/lib/esm/contract/models/decorators-private.js +1 -1
  434. package/lib/esm/contract/models/decorators-private.js.map +1 -0
  435. package/lib/esm/contract/models/decorators.js +1 -1
  436. package/lib/esm/contract/models/decorators.js.map +1 -0
  437. package/lib/esm/contract/models/gtin.js +1 -1
  438. package/lib/esm/contract/models/gtin.js.map +1 -0
  439. package/lib/esm/contract/models/history-dec.js +1 -1
  440. package/lib/esm/contract/models/history-dec.js.map +1 -0
  441. package/lib/esm/contract/trackedModels/History.js +1 -1
  442. package/lib/esm/contract/trackedModels/History.js.map +1 -0
  443. package/lib/esm/contract/trackedModels/OtherAudit.js +1 -1
  444. package/lib/esm/contract/trackedModels/OtherAudit.js.map +1 -0
  445. package/lib/esm/contract/trackedModels/OtherBatchShared.js +1 -1
  446. package/lib/esm/contract/trackedModels/OtherBatchShared.js.map +1 -0
  447. package/lib/esm/contract/trackedModels/OtherLeaflet.js +1 -1
  448. package/lib/esm/contract/trackedModels/OtherLeaflet.js.map +1 -0
  449. package/lib/esm/contract/trackedModels/OtherLeafletFile.js +1 -1
  450. package/lib/esm/contract/trackedModels/OtherLeafletFile.js.map +1 -0
  451. package/lib/esm/contract/trackedModels/OtherMarket.js +1 -1
  452. package/lib/esm/contract/trackedModels/OtherMarket.js.map +1 -0
  453. package/lib/esm/contract/trackedModels/OtherProduct.js +1 -1
  454. package/lib/esm/contract/trackedModels/OtherProduct.js.map +1 -0
  455. package/lib/esm/contract/trackedModels/OtherProductImage.js +1 -1
  456. package/lib/esm/contract/trackedModels/OtherProductImage.js.map +1 -0
  457. package/lib/esm/contract/trackedModels/OtherProductShared.js +1 -1
  458. package/lib/esm/contract/trackedModels/OtherProductShared.js.map +1 -0
  459. package/lib/esm/contract/trackedModels/OtherProductStrength.js +1 -1
  460. package/lib/esm/contract/trackedModels/OtherProductStrength.js.map +1 -0
  461. package/lib/esm/contracts/ContractAdapter.js +1 -1
  462. package/lib/esm/contracts/ContractAdapter.js.map +1 -0
  463. package/lib/esm/contracts/ContractContext.js +1 -1
  464. package/lib/esm/contracts/ContractContext.js.map +1 -0
  465. package/lib/esm/contracts/FabricContractDispatch.js +1 -1
  466. package/lib/esm/contracts/FabricContractDispatch.js.map +1 -0
  467. package/lib/esm/contracts/FabricContractPaginator.js +1 -1
  468. package/lib/esm/contracts/FabricContractPaginator.js.map +1 -0
  469. package/lib/esm/contracts/FabricContractRepository.js +1 -1
  470. package/lib/esm/contracts/FabricContractRepository.js.map +1 -0
  471. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
  472. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
  473. package/lib/esm/contracts/FabricContractSequence.js +1 -1
  474. package/lib/esm/contracts/FabricContractSequence.js.map +1 -0
  475. package/lib/esm/contracts/FabricContractStatement.js +1 -1
  476. package/lib/esm/contracts/FabricContractStatement.js.map +1 -0
  477. package/lib/esm/contracts/MigrationContract.js +1 -1
  478. package/lib/esm/contracts/MigrationContract.js.map +1 -0
  479. package/lib/esm/contracts/PrivateSequence.js +1 -1
  480. package/lib/esm/contracts/PrivateSequence.js.map +1 -0
  481. package/lib/esm/contracts/auth/decorators.js +1 -1
  482. package/lib/esm/contracts/auth/decorators.js.map +1 -0
  483. package/lib/esm/contracts/auth/index.js +1 -1
  484. package/lib/esm/contracts/auth/index.js.map +1 -0
  485. package/lib/esm/contracts/bootstrap.js +1 -1
  486. package/lib/esm/contracts/bootstrap.js.map +1 -0
  487. package/lib/esm/contracts/crud/crud-contract.js +1 -1
  488. package/lib/esm/contracts/crud/crud-contract.js.map +1 -0
  489. package/lib/esm/contracts/crud/index.js +1 -1
  490. package/lib/esm/contracts/crud/index.js.map +1 -0
  491. package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
  492. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -0
  493. package/lib/esm/contracts/erc20/erc20contract.js +1 -1
  494. package/lib/esm/contracts/erc20/erc20contract.js.map +1 -0
  495. package/lib/esm/contracts/erc20/index.js +1 -1
  496. package/lib/esm/contracts/erc20/index.js.map +1 -0
  497. package/lib/esm/contracts/erc20/models.js +1 -1
  498. package/lib/esm/contracts/erc20/models.js.map +1 -0
  499. package/lib/esm/contracts/fabric-overrides.js +1 -1
  500. package/lib/esm/contracts/fabric-overrides.js.map +1 -0
  501. package/lib/esm/contracts/index.js +1 -1
  502. package/lib/esm/contracts/index.js.map +1 -0
  503. package/lib/esm/contracts/logging.js +1 -1
  504. package/lib/esm/contracts/logging.js.map +1 -0
  505. package/lib/esm/contracts/overrides.js +1 -1
  506. package/lib/esm/contracts/overrides.js.map +1 -0
  507. package/lib/esm/contracts/types.js +1 -1
  508. package/lib/esm/contracts/types.js.map +1 -0
  509. package/lib/esm/contracts/uuid.js +1 -1
  510. package/lib/esm/contracts/uuid.js.map +1 -0
  511. package/lib/esm/index.js +1 -1
  512. package/lib/esm/index.js.map +1 -0
  513. package/lib/esm/shared/ClientSerializer.js +1 -1
  514. package/lib/esm/shared/ClientSerializer.js.map +1 -0
  515. package/lib/esm/shared/DeterministicSerializer.js +1 -1
  516. package/lib/esm/shared/DeterministicSerializer.js.map +1 -0
  517. package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
  518. package/lib/esm/shared/SimpleDeterministicSerializer.js.map +1 -0
  519. package/lib/esm/shared/constants.js +1 -1
  520. package/lib/esm/shared/constants.js.map +1 -0
  521. package/lib/esm/shared/decorators.js +1 -1
  522. package/lib/esm/shared/decorators.js.map +1 -0
  523. package/lib/esm/shared/erc20/erc20-constants.js +1 -1
  524. package/lib/esm/shared/erc20/erc20-constants.js.map +1 -0
  525. package/lib/esm/shared/erc20/index.js +1 -1
  526. package/lib/esm/shared/erc20/index.js.map +1 -0
  527. package/lib/esm/shared/errors.js +1 -1
  528. package/lib/esm/shared/errors.js.map +1 -0
  529. package/lib/esm/shared/events.js +1 -1
  530. package/lib/esm/shared/events.js.map +1 -0
  531. package/lib/esm/shared/fabric-types.js +1 -1
  532. package/lib/esm/shared/fabric-types.js.map +1 -0
  533. package/lib/esm/shared/index.js +1 -1
  534. package/lib/esm/shared/index.js.map +1 -0
  535. package/lib/esm/shared/interfaces/Checkable.js +1 -1
  536. package/lib/esm/shared/interfaces/Checkable.js.map +1 -0
  537. package/lib/esm/shared/interfaces/index.js +1 -1
  538. package/lib/esm/shared/interfaces/index.js.map +1 -0
  539. package/lib/esm/shared/math.js +1 -1
  540. package/lib/esm/shared/math.js.map +1 -0
  541. package/lib/esm/shared/model/FabricBaseModel.js +1 -1
  542. package/lib/esm/shared/model/FabricBaseModel.js.map +1 -0
  543. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
  544. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
  545. package/lib/esm/shared/model/Identity.js +1 -1
  546. package/lib/esm/shared/model/Identity.js.map +1 -0
  547. package/lib/esm/shared/model/IdentityCredentials.js +1 -1
  548. package/lib/esm/shared/model/IdentityCredentials.js.map +1 -0
  549. package/lib/esm/shared/model/index.js +1 -1
  550. package/lib/esm/shared/model/index.js.map +1 -0
  551. package/lib/esm/shared/overrides/Model.js +1 -1
  552. package/lib/esm/shared/overrides/Model.js.map +1 -0
  553. package/lib/esm/shared/overrides/index.js +1 -1
  554. package/lib/esm/shared/overrides/index.js.map +1 -0
  555. package/lib/esm/shared/overrides/overrides.js +1 -1
  556. package/lib/esm/shared/overrides/overrides.js.map +1 -0
  557. package/lib/esm/shared/types.js +1 -1
  558. package/lib/esm/shared/types.js.map +1 -0
  559. package/lib/esm/version.js +4 -4
  560. package/lib/esm/version.js.map +1 -0
  561. package/lib/types/version.d.cts +3 -3
  562. package/lib/types/version.d.mts +3 -3
  563. package/package.json +1 -1
@@ -1456,5 +1456,5 @@ __decorate([
1456
1456
  ], FabricClientAdapter.prototype, "view", null);
1457
1457
  FabricClientAdapter.decoration();
1458
1458
  core_1.Adapter.setCurrent(constants_js_1.FabricFlavour);
1459
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50QWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvRmFicmljQ2xpZW50QWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsd0NBQTZCO0FBQzdCLE9BQU8sRUFDTCxXQUFXLEdBR1osTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFDTCxLQUFLLEdBR04sTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQU0xRCxPQUFPLEVBQ0wsT0FBTyxFQU9QLFlBQVksRUFDWixZQUFZLEdBQ2IsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxJQUFJLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRSxPQUFPLEVBQ0wsV0FBVyxFQUNYLFNBQVMsRUFDVCwwQkFBMEIsRUFDMUIsUUFBUSxJQUFJLFVBQVUsR0FDdkIsdUJBQW9CO0FBQ3JCLE9BQU8sRUFFTCxhQUFhLEVBQ2IsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLGFBQWEsRUFDYixlQUFlLEVBRWYsZUFBZSxHQUNoQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDTCxPQUFPLEVBQ1AsT0FBTyxFQUVQLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsY0FBYyxFQUNkLGNBQWMsRUFDZCxhQUFhLEVBQ2IsV0FBVyxFQUNYLGVBQWUsRUFDZixVQUFVLEVBRVYsZ0JBQWdCLEdBUWpCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsaUNB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QUFDO1lBQ3BDLE9BQU8sSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFNLENBQUM7UUFDdkMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQztZQUN2QyxPQUFPLElBQUksa0JBQWtCLENBQUMsR0FBRyxDQUFNLENBQUM7UUFDMUMsT0FBTyxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQU0sQ0FBQztJQUNyQyxDQUFDOztBQWxzQ2M7SUFGZCxLQUFLLEVBQUU7SUFDUCxLQUFLLEVBQUU7O3FFQU1rQixtQkFBbUI7O2lEQXNDNUM7QUFJSztJQUZMLEtBQUssRUFBRTtJQUNQLEtBQUssRUFBRTs7NkNBR2tCLG1CQUFtQjs7c0RBZTVDO0FBV0s7SUFGTCxLQUFLLEVBQUU7SUFDUCxLQUFLLEVBQUU7O3FEQUlrQixtQkFBbUI7OytDQWdCNUM7QUE0Qks7SUFGTCxLQUFLLEVBQUU7SUFDUCxLQUFLLEVBQUU7O3FFQU1rQixtQkFBbUI7O2lEQXVDNUM7QUFXYztJQUZkLEtBQUssRUFBRTtJQUNQLEtBQUssRUFBRTs7cURBSWtCLG1CQUFtQjs7aURBOEI1QztBQTRCSztJQURMLEtBQUssRUFBRTs7aUVBR0ksQ0FBQyxvQkFBRCxDQUFDLHdDQUVhLG1CQUFtQjs7OENBdUM1QztBQWFLO0lBREwsS0FBSyxFQUFFOzs2REFLa0IsbUJBQW1COzsrQ0F3QjVDO0FBbTRCSCxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUNqQyxPQUFPLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiLi4vc2hhcmVkL292ZXJyaWRlc1wiO1xuaW1wb3J0IHtcbiAgQ291Y2hEQktleXMsXG4gIHR5cGUgTWFuZ29RdWVyeSxcbiAgdHlwZSBWaWV3UmVzcG9uc2UsXG59IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcbmltcG9ydCB7IENsaWVudCB9IGZyb20gXCJAZ3JwYy9ncnBjLWpzXCI7XG5pbXBvcnQgKiBhcyBncnBjIGZyb20gXCJAZ3JwYy9ncnBjLWpzXCI7XG5pbXBvcnQge1xuICBNb2RlbCxcbiAgdHlwZSBNb2RlbENvbnN0cnVjdG9yLFxuICB0eXBlIFNlcmlhbGl6ZXIsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IGRlYnVnLCBmaW5hbCwgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHtcbiAgdHlwZSBQZWVyQ29uZmlnLFxuICB0eXBlIFNlZ3JlZ2F0ZWRNb2RlbCxcbiAgdHlwZSBNc3BEZXRhaWxzLFxufSBmcm9tIFwiLi4vc2hhcmVkL3R5cGVzXCI7XG5pbXBvcnQge1xuICBjb25uZWN0LFxuICB0eXBlIENvbm5lY3RPcHRpb25zLFxuICBHYXRld2F5LFxuICBOZXR3b3JrLFxuICBQcm9wb3NhbE9wdGlvbnMsXG4gIENvbnRyYWN0IGFzIENvbnRyYWt0LFxuICB0eXBlIFNpZ25lcixcbiAgR2F0ZXdheUVycm9yLFxuICBFbmRvcnNlRXJyb3IsXG59IGZyb20gXCJAaHlwZXJsZWRnZXIvZmFicmljLWdhdGV3YXlcIjtcbmltcG9ydCB7IEdhdGV3YXkgYXMgTGVnYWN5R2F0ZXdheSwgV2FsbGV0cyB9IGZyb20gXCJmYWJyaWMtbmV0d29ya1wiO1xuaW1wb3J0IHR5cGUgeyBFbmRvcnNlciB9IGZyb20gXCJmYWJyaWMtY29tbW9uXCI7XG5pbXBvcnQge1xuICBnZXRJZGVudGl0eSxcbiAgZ2V0U2lnbmVyLFxuICBnZXRGaXJzdERpckZpbGVOYW1lQ29udGVudCxcbiAgcmVhZEZpbGUgYXMgcmVhZEZzRmlsZSxcbn0gZnJvbSBcIi4vZmFicmljLWZzXCI7XG5pbXBvcnQge1xuICBCYXNlRXJyb3IsXG4gIEludGVybmFsRXJyb3IsXG4gIE9wZXJhdGlvbktleXMsXG4gIFNlcmlhbGl6YXRpb25FcnJvcixcbiAgQnVsa0NydWRPcGVyYXRpb25LZXlzLFxuICBOb3RGb3VuZEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBCYWRSZXF1ZXN0RXJyb3IsXG4gIHR5cGUgUHJpbWFyeUtleVR5cGUsXG4gIFZhbGlkYXRpb25FcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQge1xuICBDb250ZXh0LFxuICBBZGFwdGVyLFxuICB0eXBlIEFkYXB0ZXJGbGFncyxcbiAgQXV0aG9yaXphdGlvbkVycm9yLFxuICBDb25uZWN0aW9uRXJyb3IsXG4gIEZvcmJpZGRlbkVycm9yLFxuICBNaWdyYXRpb25FcnJvcixcbiAgT2JzZXJ2ZXJFcnJvcixcbiAgUGFnaW5nRXJyb3IsXG4gIFBlcnNpc3RlbmNlS2V5cyxcbiAgUXVlcnlFcnJvcixcbiAgUmVwb3NpdG9yeSxcbiAgVW5zdXBwb3J0ZWRFcnJvcixcbiAgU3RhdGVtZW50LFxuICB0eXBlIFByZXBhcmVkU3RhdGVtZW50LFxuICBQYWdpbmF0b3IsXG4gIE1heWJlQ29udGV4dHVhbEFyZyxcbiAgQ29udGV4dHVhbEFyZ3MsXG4gIHR5cGUgUHJlcGFyZWRNb2RlbCxcbiAgQWxsT3BlcmF0aW9uS2V5cyxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBGYWJyaWNGbGF2b3VyLCBGYWJyaWNNb2RlbEtleXMgfSBmcm9tIFwiLi4vc2hhcmVkL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgQ2xpZW50U2VyaWFsaXplciB9IGZyb20gXCIuLi9zaGFyZWQvQ2xpZW50U2VyaWFsaXplclwiO1xuaW1wb3J0IHsgRmFicmljQ2xpZW50Q29udGV4dCB9IGZyb20gXCIuL0ZhYnJpY0NsaWVudENvbnRleHRcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudERpc3BhdGNoIH0gZnJvbSBcIi4vRmFicmljQ2xpZW50RGlzcGF0Y2hcIjtcbi8vIGltcG9ydCB7IEhTTVNpZ25lckZhY3RvcnlDdXN0b20gfSBmcm9tIFwiLi9mYWJyaWMtaHNtXCI7XG5pbXBvcnQgeyB0eXBlIENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnRTdGF0ZW1lbnQgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRTdGF0ZW1lbnRcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudFBhZ2luYXRvciB9IGZyb20gXCIuL0ZhYnJpY0NsaWVudFBhZ2luYXRvclwiO1xuaW1wb3J0IHsgRmFicmljQ2xpZW50UmVwb3NpdG9yeSB9IGZyb20gXCIuL0ZhYnJpY0NsaWVudFJlcG9zaXRvcnlcIjtcbmltcG9ydCB7XG4gIEVuZG9yc2VtZW50RXJyb3IsXG4gIEVuZG9yc2VtZW50UG9saWN5RXJyb3IsXG4gIE12Y2NSZWFkQ29uZmxpY3RFcnJvcixcbiAgUGhhbnRvbVJlYWRDb25mbGljdEVycm9yLFxuICBRdWVyeVJlc3VsdFRvb0xhcmdlRXJyb3IsXG4gIFRyYW5zYWN0aW9uVGltZW91dEVycm9yLFxufSBmcm9tIFwiLi4vc2hhcmVkL2Vycm9yc1wiO1xuaW1wb3J0IHsgRmFicmljQ2xpZW50RmxhZ3MgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgRGVmYXVsdEZhYnJpY0NsaWVudEZsYWdzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgeyBDcnlwdG9VdGlscyB9IGZyb20gXCIuL2NyeXB0b1wiO1xuaW1wb3J0IHsgZXh0cmFjdElkcyB9IGZyb20gXCIuL2lkcy9pZC1leHRyYWN0aW9uXCI7XG5pbXBvcnQgeyBEZWZhdWx0Q29udHJhY3RSZXNvbHZlciwgSWRlbnRpdHkgfSBmcm9tIFwiLi4vc2hhcmVkL2luZGV4XCI7XG5cbnR5cGUgTGVnYWN5UGVlclRhcmdldCA9IHtcbiAgbXNwSWQ6IHN0cmluZztcbiAgcGVlckVuZHBvaW50OiBzdHJpbmc7XG4gIHBlZXJIb3N0QWxpYXM/OiBzdHJpbmc7XG4gIHRsc0NlcnQ/OiBzdHJpbmcgfCBCdWZmZXI7XG59O1xuXG50eXBlIExlZ2FjeVBlZXJXaXRoTmFtZSA9IExlZ2FjeVBlZXJUYXJnZXQgJiB7IG5hbWU6IHN0cmluZyB9O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBBZGFwdGVyIGZvciBpbnRlcmFjdGluZyB3aXRoIEh5cGVybGVkZ2VyIEZhYnJpYyBuZXR3b3Jrc1xuICogQHN1bW1hcnkgVGhlIEZhYnJpY0FkYXB0ZXIgZXh0ZW5kcyBDb3VjaERCQWRhcHRlciB0byBwcm92aWRlIGEgc2VhbWxlc3MgaW50ZXJmYWNlIGZvciBpbnRlcmFjdGluZyB3aXRoIEh5cGVybGVkZ2VyIEZhYnJpYyBuZXR3b3Jrcy5cbiAqIEl0IGhhbmRsZXMgY29ubmVjdGlvbiBtYW5hZ2VtZW50LCB0cmFuc2FjdGlvbiBzdWJtaXNzaW9uLCBhbmQgQ1JVRCBvcGVyYXRpb25zIGFnYWluc3QgRmFicmljIGNoYWluY29kZS5cbiAqIEB0ZW1wbGF0ZSBQZWVyQ29uZmlnIC0gQ29uZmlndXJhdGlvbiB0eXBlIGZvciBjb25uZWN0aW5nIHRvIGEgRmFicmljIHBlZXJcbiAqIEB0ZW1wbGF0ZSBGYWJyaWNGbGFncyAtIEZsYWdzIHNwZWNpZmljIHRvIEZhYnJpYyBvcGVyYXRpb25zXG4gKiBAdGVtcGxhdGUgQ29udGV4dDxGYWJyaWNGbGFncz4gLSBDb250ZXh0IHR5cGUgY29udGFpbmluZyBGYWJyaWMtc3BlY2lmaWMgZmxhZ3NcbiAqIEBwYXJhbSBjb25maWcgLSBDb25maWd1cmF0aW9uIGZvciBjb25uZWN0aW5nIHRvIGEgRmFicmljIHBlZXJcbiAqIEBwYXJhbSBhbGlhcyAtIE9wdGlvbmFsIGFsaWFzIGZvciB0aGUgYWRhcHRlciBpbnN0YW5jZVxuICogQGNsYXNzIEZhYnJpY0NsaWVudEFkYXB0ZXJcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBDcmVhdGUgYSBuZXcgRmFicmljQWRhcHRlciBpbnN0YW5jZVxuICogY29uc3QgY29uZmlnOiBQZWVyQ29uZmlnID0ge1xuICogICBtc3BJZDogJ09yZzFNU1AnLFxuICogICBwZWVyRW5kcG9pbnQ6ICdsb2NhbGhvc3Q6NzA1MScsXG4gKiAgIGNoYW5uZWxOYW1lOiAnbXljaGFubmVsJyxcbiAqICAgY2hhaW5jb2RlTmFtZTogJ215Y2MnLFxuICogICBjb250cmFjdE5hbWU6ICdteWNvbnRyYWN0JyxcbiAqICAgdGxzQ2VydFBhdGg6ICcvcGF0aC90by90bHMvY2VydCcsXG4gKiAgIGNlcnREaXJlY3RvcnlQYXRoOiAnL3BhdGgvdG8vY2VydC9kaXInLFxuICogICBrZXlEaXJlY3RvcnlQYXRoOiAnL3BhdGgvdG8va2V5L2RpcidcbiAqIH07XG4gKlxuICogY29uc3QgYWRhcHRlciA9IG5ldyBGYWJyaWNBZGFwdGVyKGNvbmZpZywgJ29yZzEtYWRhcHRlcicpO1xuICpcbiAqIC8vIFVzZSB0aGUgYWRhcHRlciB0byBpbnRlcmFjdCB3aXRoIHRoZSBGYWJyaWMgbmV0d29ya1xuICogY29uc3QgcmVzdWx0ID0gYXdhaXQgYWRhcHRlci5yZWFkKCd1c2VycycsICd1c2VyMScsIG15U2VyaWFsaXplcik7XG4gKiBgYGBcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gKiAgIHBhcnRpY2lwYW50IEZhYnJpY0FkYXB0ZXJcbiAqICAgcGFydGljaXBhbnQgR2F0ZXdheVxuICogICBwYXJ0aWNpcGFudCBOZXR3b3JrXG4gKiAgIHBhcnRpY2lwYW50IENvbnRyYWN0XG4gKiAgIHBhcnRpY2lwYW50IENoYWluY29kZVxuICpcbiAqICAgQ2xpZW50LT4+RmFicmljQWRhcHRlcjogY3JlYXRlKHRhYmxlTmFtZSwgaWQsIG1vZGVsLCB0cmFuc2llbnQsIHNlcmlhbGl6ZXIpXG4gKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBzdWJtaXRUcmFuc2FjdGlvbihPcGVyYXRpb25LZXlzLkNSRUFURSwgW3NlcmlhbGl6ZWRNb2RlbF0sIHRyYW5zaWVudClcbiAqICAgRmFicmljQWRhcHRlci0+PkdhdGV3YXk6IGNvbm5lY3QoKVxuICogICBHYXRld2F5LT4+TmV0d29yazogZ2V0TmV0d29yayhjaGFubmVsTmFtZSlcbiAqICAgTmV0d29yay0+PkNvbnRyYWN0OiBnZXRDb250cmFjdChjaGFpbmNvZGVOYW1lLCBjb250cmFjdE5hbWUpXG4gKiAgIEZhYnJpY0FkYXB0ZXItPj5Db250cmFjdDogc3VibWl0KGFwaSwgcHJvcG9zYWxPcHRpb25zKVxuICogICBDb250cmFjdC0+PkNoYWluY29kZTogaW52b2tlXG4gKiAgIENoYWluY29kZS0tPj5Db250cmFjdDogcmVzcG9uc2VcbiAqICAgQ29udHJhY3QtLT4+RmFicmljQWRhcHRlcjogcmVzdWx0XG4gKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBkZWNvZGUocmVzdWx0KVxuICogICBGYWJyaWNBZGFwdGVyLT4+RmFicmljQWRhcHRlcjogc2VyaWFsaXplci5kZXNlcmlhbGl6ZShkZWNvZGVkUmVzdWx0KVxuICogICBGYWJyaWNBZGFwdGVyLS0+PkNsaWVudDogZGVzZXJpYWxpemVkUmVzdWx0XG4gKi9cbmV4cG9ydCBjbGFzcyBGYWJyaWNDbGllbnRBZGFwdGVyIGV4dGVuZHMgQWRhcHRlcjxcbiAgUGVlckNvbmZpZyxcbiAgQ2xpZW50LFxuICBNYW5nb1F1ZXJ5LFxuICBGYWJyaWNDbGllbnRDb250ZXh0XG4+IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBTdGF0aWMgdGV4dCBkZWNvZGVyIGZvciBjb252ZXJ0aW5nIFVpbnQ4QXJyYXkgdG8gc3RyaW5nXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKFwidXRmOFwiKTtcblxuICBwcml2YXRlIHN0YXRpYyBzZXJpYWxpemVyID0gbmV3IENsaWVudFNlcmlhbGl6ZXIoKTtcblxuICBwcm90ZWN0ZWQgc3RhdGljIGxvZyA9IExvZ2dpbmcuZm9yKEZhYnJpY0NsaWVudEFkYXB0ZXIpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBzZXJpYWxpemVyOiBTZXJpYWxpemVyPGFueT4gPVxuICAgIEZhYnJpY0NsaWVudEFkYXB0ZXIuc2VyaWFsaXplcjtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZ2V0IENvbnRleHQoKTogQ29uc3RydWN0b3I8RmFicmljQ2xpZW50Q29udGV4dD4ge1xuICAgIHJldHVybiBGYWJyaWNDbGllbnRDb250ZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IEZhYnJpY0FkYXB0ZXIgaW5zdGFuY2VcbiAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBuZXcgYWRhcHRlciBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhIEh5cGVybGVkZ2VyIEZhYnJpYyBuZXR3b3JrXG4gICAqIEBwYXJhbSB7UGVlckNvbmZpZ30gY29uZmlnIC0gQ29uZmlndXJhdGlvbiBmb3IgY29ubmVjdGluZyB0byBhIEZhYnJpYyBwZWVyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbYWxpYXNdIC0gT3B0aW9uYWwgYWxpYXMgZm9yIHRoZSBhZGFwdGVyIGluc3RhbmNlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25maWc6IFBlZXJDb25maWcsIGFsaWFzPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCBEZWZhdWx0RmFicmljQ2xpZW50RmxhZ3MsIGNvbmZpZyksXG4gICAgICBGYWJyaWNGbGF2b3VyLFxuICAgICAgYWxpYXNcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNoYWluY29kZUZvcihcbiAgICBtb2RlbDogQ29uc3RydWN0b3I8TW9kZWw8YW55Pj4sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8RmFicmljQ2xpZW50Q29udGV4dD5cbiAgKSB7XG4gICAgcmV0dXJuIEZhYnJpY0NsaWVudEFkYXB0ZXIuY2hhaW5jb2RlRm9yKG1vZGVsLCB0aGlzLmNvbmZpZywgLi4uYXJncyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hhbm5lbEZvcihcbiAgICBtb2RlbDogQ29uc3RydWN0b3I8TW9kZWw8YW55Pj4sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8RmFicmljQ2xpZW50Q29udGV4dD5cbiAgKSB7XG4gICAgcmV0dXJuIEZhYnJpY0NsaWVudEFkYXB0ZXIuY2hhbm5lbEZvcihtb2RlbCwgdGhpcy5jb25maWcsIC4uLmFyZ3MpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbnRyYWN0Rm9yKFxuICAgIG1vZGVsOiBDb25zdHJ1Y3RvcjxNb2RlbDxhbnk+PixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDbGllbnRDb250ZXh0PlxuICApIHtcbiAgICByZXR1cm4gRmFicmljQ2xpZW50QWRhcHRlci5jb250cmFjdEZvcihtb2RlbCwgdGhpcy5jb25maWcsIC4uLmFyZ3MpO1xuICB9XG5cbiAgb3ZlcnJpZGUgU3RhdGVtZW50PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgb3ZlcnJpZGVzPzogUGFydGlhbDxBZGFwdGVyRmxhZ3M+XG4gICk6IFN0YXRlbWVudDxNLCBGYWJyaWNDbGllbnRBZGFwdGVyLCBhbnksIE1hbmdvUXVlcnk+IHtcbiAgICByZXR1cm4gbmV3IEZhYnJpY0NsaWVudFN0YXRlbWVudCh0aGlzLCBvdmVycmlkZXMpO1xuICB9XG5cbiAgUGFnaW5hdG9yPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgcXVlcnk6IFByZXBhcmVkU3RhdGVtZW50PGFueT4gfCBNYW5nb1F1ZXJ5LFxuICAgIHNpemU6IG51bWJlcixcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT5cbiAgKTogUGFnaW5hdG9yPE0sIGFueSwgTWFuZ29RdWVyeT4ge1xuICAgIHJldHVybiBuZXcgRmFicmljQ2xpZW50UGFnaW5hdG9yKHRoaXMsIHF1ZXJ5LCBzaXplLCBjbGF6eik7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZmxhZ3M8TSBleHRlbmRzIE1vZGVsPihcbiAgICBvcGVyYXRpb246IE9wZXJhdGlvbktleXMgfCBzdHJpbmcsXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yPE0+IHwgQ29uc3RydWN0b3I8TT5bXSB8IHVuZGVmaW5lZCxcbiAgICBmbGFnczogUGFydGlhbDxGYWJyaWNDbGllbnRGbGFncz4sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxGYWJyaWNDbGllbnRGbGFncz4ge1xuICAgIGNvbnN0IG1lcmdlZEZsYWdzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb25maWcsIGZsYWdzKTtcbiAgICBjb25zdCBmID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIGF3YWl0IHN1cGVyLmZsYWdzKG9wZXJhdGlvbiwgbW9kZWwsIG1lcmdlZEZsYWdzLCAuLi5hcmdzKVxuICAgICk7XG4gICAgcmV0dXJuIGY7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBjb250ZXh0PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgb3BlcmF0aW9uOiAoKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnkpIHwgQWxsT3BlcmF0aW9uS2V5cyxcbiAgICBvdmVycmlkZXM6IFBhcnRpYWw8RmFicmljQ2xpZW50RmxhZ3M+LFxuICAgIG1vZGVsOiBDb25zdHJ1Y3RvcjxNPiB8IENvbnN0cnVjdG9yPE0+W10sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPEZhYnJpY0NsaWVudENvbnRleHQ+XG4gICk6IFByb21pc2U8RmFicmljQ2xpZW50Q29udGV4dD4ge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmNvbnRleHQpO1xuICAgIGxvZy5zaWxseShcbiAgICAgIGBjcmVhdGluZyBuZXcgY29udGV4dCBmb3IgJHtvcGVyYXRpb259IG9wZXJhdGlvbiBvbiAke21vZGVsID8gKEFycmF5LmlzQXJyYXkobW9kZWwpID8gbW9kZWwubWFwKChtKSA9PiBNb2RlbC50YWJsZU5hbWUobSkpIDogTW9kZWwudGFibGVOYW1lKG1vZGVsKSkgOiBcIm5vXCJ9IHRhYmxlICR7b3ZlcnJpZGVzICYmIE9iamVjdC5rZXlzKG92ZXJyaWRlcykgPyBPYmplY3Qua2V5cyhvdmVycmlkZXMpLmxlbmd0aCA6IFwibm9cIn0gd2l0aCBmbGFnIG92ZXJyaWRlc2BcbiAgICApO1xuICAgIGxldCBjdHggPSBhcmdzLnBvcCgpO1xuICAgIGlmICh0eXBlb2YgY3R4ICE9PSBcInVuZGVmaW5lZFwiICYmICEoY3R4IGluc3RhbmNlb2YgQ29udGV4dCkpIHtcbiAgICAgIGFyZ3MucHVzaChjdHgpO1xuICAgICAgY3R4ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIG92ZXJyaWRlcyA9IGN0eFxuICAgICAgPyBPYmplY3QuYXNzaWduKHt9LCBjdHgudG9PdmVycmlkZXMoKSwgb3ZlcnJpZGVzKVxuICAgICAgOiBvdmVycmlkZXM7XG4gICAgY29uc3QgZmxhZ3MgPSBhd2FpdCB0aGlzLmZsYWdzKFxuICAgICAgdHlwZW9mIG9wZXJhdGlvbiA9PT0gXCJzdHJpbmdcIiA/IG9wZXJhdGlvbiA6IG9wZXJhdGlvbi5uYW1lLFxuICAgICAgbW9kZWwsXG4gICAgICBvdmVycmlkZXMgYXMgUGFydGlhbDxGYWJyaWNDbGllbnRGbGFncz4sXG4gICAgICAuLi5bLi4uYXJncywgY3R4XS5maWx0ZXIoQm9vbGVhbilcbiAgICApO1xuXG4gICAgaWYgKGN0eCkge1xuICAgICAgaWYgKCEoY3R4IGluc3RhbmNlb2YgdGhpcy5Db250ZXh0KSkge1xuICAgICAgICBjb25zdCBuZXdDdHggPSBuZXcgdGhpcy5Db250ZXh0KCkuYWNjdW11bGF0ZSh7XG4gICAgICAgICAgLi4uY3R4W1wiY2FjaGVcIl0sXG4gICAgICAgICAgLi4uZmxhZ3MsXG4gICAgICAgICAgcGFyZW50Q29udGV4dDogY3R4LFxuICAgICAgICB9KSBhcyBhbnk7XG4gICAgICAgIGN0eC5hY2N1bXVsYXRlKHtcbiAgICAgICAgICBjaGlsZENvbnRleHRzOiBbXG4gICAgICAgICAgICAuLi4oY3R4LmdldE9yVW5kZWZpbmVkKFwiY2hpbGRDb250ZXh0c1wiKSB8fCBbXSksXG4gICAgICAgICAgICBuZXdDdHgsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXdDdHg7XG4gICAgICB9XG4gICAgICBjb25zdCBjdXJyZW50T3AgPSBjdHguZ2V0T3JVbmRlZmluZWQoXCJvcGVyYXRpb25cIik7XG4gICAgICBjb25zdCBjdXJyZW50TW9kZWwgPSBjdHguZ2V0T3JVbmRlZmluZWQoXCJhZmZlY3RlZFRhYmxlc1wiKTtcbiAgICAgIGlmIChcbiAgICAgICAgIWN1cnJlbnRPcCB8fFxuICAgICAgICBjdXJyZW50T3AgIT09IG9wZXJhdGlvbiB8fFxuICAgICAgICAobW9kZWwgJiYgbW9kZWwgIT09IGN1cnJlbnRNb2RlbClcbiAgICAgICkge1xuICAgICAgICBjb25zdCBuZXdDdHggPSBuZXcgdGhpcy5Db250ZXh0KCkuYWNjdW11bGF0ZSh7XG4gICAgICAgICAgLi4uY3R4W1wiY2FjaGVcIl0sXG4gICAgICAgICAgLi4uZmxhZ3MsXG4gICAgICAgICAgcGFyZW50Q29udGV4dDogY3R4LFxuICAgICAgICB9KSBhcyBhbnk7XG5cbiAgICAgICAgY3R4LmFjY3VtdWxhdGUoe1xuICAgICAgICAgIGNoaWxkQ29udGV4dHM6IFtcbiAgICAgICAgICAgIC4uLihjdHguZ2V0T3JVbmRlZmluZWQoXCJjaGlsZENvbnRleHRzXCIpIHx8IFtdKSxcbiAgICAgICAgICAgIG5ld0N0eCxcbiAgICAgICAgICBdLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ld0N0eDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjdHguYWNjdW11bGF0ZShmbGFncykgYXMgYW55O1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgdGhpcy5Db250ZXh0KCkuYWNjdW11bGF0ZSh7XG4gICAgICAuLi5mbGFncyxcbiAgICB9KSBhcyBhbnk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlY29kZXMgYSBVaW50OEFycmF5IHRvIGEgc3RyaW5nXG4gICAqIEBzdW1tYXJ5IENvbnZlcnRzIGJpbmFyeSBkYXRhIHJlY2VpdmVkIGZyb20gRmFicmljIHRvIGEgc3RyaW5nIHVzaW5nIFVURi04IGVuY29kaW5nXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0gZGF0YSAtIFRoZSBiaW5hcnkgZGF0YSB0byBkZWNvZGVcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgZGVjb2RlZCBzdHJpbmdcbiAgICovXG4gIGRlY29kZShkYXRhOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gRmFicmljQ2xpZW50QWRhcHRlci5kZWNvZGVyLmRlY29kZShkYXRhKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHJlcG9zaXRvcnk8XG4gICAgUiBleHRlbmRzIFJlcG9zaXRvcnk8XG4gICAgICBhbnksXG4gICAgICBBZGFwdGVyPFBlZXJDb25maWcsIENsaWVudCwgTWFuZ29RdWVyeSwgRmFicmljQ2xpZW50Q29udGV4dD5cbiAgICA+LFxuICA+KCk6IENvbnN0cnVjdG9yPFI+IHtcbiAgICByZXR1cm4gRmFicmljQ2xpZW50UmVwb3NpdG9yeSBhcyB1bmtub3duIGFzIENvbnN0cnVjdG9yPFI+O1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVByZWZpeDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPEZhYnJpY0NsaWVudENvbnRleHQ+XG4gICk6IFtcbiAgICBDb25zdHJ1Y3RvcjxNPixcbiAgICBQcmltYXJ5S2V5VHlwZSxcbiAgICBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIC4uLmFueVtdLFxuICAgIEZhYnJpY0NsaWVudENvbnRleHQsXG4gIF0ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5jcmVhdGVQcmVmaXgpO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgY29uc3QgcmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgcmVjb3JkW0NvdWNoREJLZXlzLlRBQkxFXSA9IHRhYmxlTmFtZTtcbiAgICBPYmplY3QuYXNzaWduKHJlY29yZCwgbW9kZWwpO1xuICAgIHJldHVybiBbY2xhenosIGlkLCByZWNvcmQsIC4uLmN0eEFyZ3NdO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQcmVwYXJlcyBtdWx0aXBsZSByZWNvcmRzIGZvciBjcmVhdGlvblxuICAgKiBAc3VtbWFyeSBBZGRzIG5lY2Vzc2FyeSBDb3VjaERCIGZpZWxkcyB0byBtdWx0aXBsZSByZWNvcmRzIGJlZm9yZSBjcmVhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlXG4gICAqIEBwYXJhbSB7c3RyaW5nW118bnVtYmVyW119IGlkcyAtIFRoZSBJRHMgb2YgdGhlIHJlY29yZHNcbiAgICogQHBhcmFtIG1vZGVscyAtIFRoZSBtb2RlbHMgdG8gcHJlcGFyZVxuICAgKiBAcmV0dXJuIEEgdHVwbGUgY29udGFpbmluZyB0aGUgdGFibGVOYW1lLCBpZHMsIGFuZCBwcmVwYXJlZCByZWNvcmRzXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IElmIGlkcyBhbmQgbW9kZWxzIGFycmF5cyBoYXZlIGRpZmZlcmVudCBsZW5ndGhzXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlQWxsUHJlZml4PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkczogc3RyaW5nW10gfCBudW1iZXJbXSxcbiAgICBtb2RlbHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8RmFicmljQ2xpZW50Q29udGV4dD5cbiAgKSB7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBpZiAoaWRzLmxlbmd0aCAhPT0gbW9kZWxzLmxlbmd0aClcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiSWRzIGFuZCBtb2RlbHMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiKTtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuY3JlYXRlQWxsUHJlZml4KTtcbiAgICBjb25zdCByZWNvcmRzID0gaWRzLm1hcCgoaWQsIGNvdW50KSA9PiB7XG4gICAgICBjb25zdCByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICAgIHJlY29yZFtDb3VjaERCS2V5cy5UQUJMRV0gPSB0YWJsZU5hbWU7XG4gICAgICBPYmplY3QuYXNzaWduKHJlY29yZCwgbW9kZWxzW2NvdW50XSk7XG4gICAgICByZXR1cm4gcmVjb3JkO1xuICAgIH0pO1xuICAgIHJldHVybiBbY2xhenosIGlkcywgcmVjb3JkcywgLi4uY3R4QXJnc107XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlQWxsUHJlZml4PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkczogUHJpbWFyeUtleVR5cGVbXSxcbiAgICBtb2RlbHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8RmFicmljQ2xpZW50Q29udGV4dD5cbiAgKSB7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBpZiAoaWRzLmxlbmd0aCAhPT0gbW9kZWxzLmxlbmd0aClcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiSWRzIGFuZCBtb2RlbHMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiKTtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlQWxsUHJlZml4KTtcbiAgICBjb25zdCByZWNvcmRzID0gaWRzLm1hcCgoKSA9PiB7XG4gICAgICBjb25zdCByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICAgIHJlY29yZFtDb3VjaERCS2V5cy5UQUJMRV0gPSB0YWJsZU5hbWU7XG4gICAgICByZXR1cm4gcmVjb3JkO1xuICAgIH0pO1xuICAgIHJldHVybiBbY2xhenosIGlkcywgcmVjb3JkcywgLi4uY3R4QXJnc107XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgbXVsdGlwbGUgcmVjb3JkcyBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvblxuICAgKiBAc3VtbWFyeSBTdWJtaXRzIGEgdHJhbnNhY3Rpb24gdG8gY3JlYXRlIG11bHRpcGxlIHJlY29yZHMgaW4gdGhlIEZhYnJpYyBsZWRnZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nW10gfCBudW1iZXJbXX0gaWRzIC0gQXJyYXkgb2YgcmVjb3JkIGlkZW50aWZpZXJzXG4gICAqIEBwYXJhbSB7QXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj59IG1vZGVscyAtIEFycmF5IG9mIHJlY29yZCBkYXRhXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gdHJhbnNpZW50IC0gVHJhbnNpZW50IGRhdGEgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNyZWF0ZWQgcmVjb3Jkc1xuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgY3JlYXRlQWxsPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkczogUHJpbWFyeUtleVR5cGVbXSxcbiAgICBtb2RlbHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDbGllbnRDb250ZXh0PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGlmIChpZHMubGVuZ3RoICE9PSBtb2RlbHMubGVuZ3RoKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJJZHMgYW5kIG1vZGVscyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCIpO1xuICAgIC8vSEVSRSFcbiAgICBjb25zdCBjdHhBcmdzID0gWy4uLihhcmdzIGFzIHVua25vd24gYXMgYW55W10pXTtcbiAgICBjb25zdCB0cmFuc2llbnQgPSBjdHhBcmdzLnNoaWZ0KCkgYXMgUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChcbiAgICAgIGN0eEFyZ3MgYXMgQ29udGV4dHVhbEFyZ3M8RmFicmljQ2xpZW50Q29udGV4dD4sXG4gICAgICB0aGlzLmNyZWF0ZUFsbFxuICAgICk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcblxuICAgIGxvZy5pbmZvKGBhZGRpbmcgJHtpZHMubGVuZ3RofSBlbnRyaWVzIHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgIGxvZy52ZXJib3NlKGBwa3M6ICR7aWRzfWApO1xuICAgIGNvbnN0IGhhc1RyYW5zaWVudCA9IHRyYW5zaWVudCAmJiBPYmplY3Qua2V5cyh0cmFuc2llbnQpLmxlbmd0aCA+IDA7XG4gICAgY29uc3QgbmVlZHNGdWxsUGF5bG9hZCA9XG4gICAgICBoYXNUcmFuc2llbnQgfHwgdGhpcy5zaG91bGRGb3JjZUdhdGV3YXlIeWRyYXRpb24oY3R4KTtcbiAgICBjb25zdCBzZXJpYWxpemVkTW9kZWxzID0gbW9kZWxzLm1hcCgobSkgPT5cbiAgICAgIHRoaXMuc2VyaWFsaXplci5zZXJpYWxpemUobSwgY2xhenoubmFtZSlcbiAgICApO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihcbiAgICAgIGN0eCxcbiAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5DUkVBVEVfQUxMLFxuICAgICAgW0pTT04uc3RyaW5naWZ5KHNlcmlhbGl6ZWRNb2RlbHMpXSxcbiAgICAgIGhhc1RyYW5zaWVudCA/IHsgW3RhYmxlTmFtZV06IHRyYW5zaWVudCB9IDogdW5kZWZpbmVkLFxuICAgICAgdGhpcy5nZXRFbmRvcnNpbmdPcmdhbml6YXRpb25zKGN0eCksXG4gICAgICBjbGF6elxuICAgICk7XG5cbiAgICBsZXQgcmVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W107XG4gICAgdHJ5IHtcbiAgICAgIHJlcyA9IEpTT04ucGFyc2UodGhpcy5kZWNvZGUocmVzdWx0KSkubWFwKChyOiBhbnkpID0+IEpTT04ucGFyc2UocikpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5zaG91bGRSZWZyZXNoQWZ0ZXJXcml0ZShcbiAgICAgICAgY2xhenosXG4gICAgICAgIGN0eCxcbiAgICAgICAgbmVlZHNGdWxsUGF5bG9hZCxcbiAgICAgICAgcmVzWzBdW01vZGVsLnBrKGNsYXp6KSBhcyBzdHJpbmddIHx8IGlkc1swXVxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMucmVhZEFsbChcbiAgICAgICAgY2xhenosXG4gICAgICAgIGV4dHJhY3RJZHMoXG4gICAgICAgICAgY2xhenosXG4gICAgICAgICAgbW9kZWxzLm1hcCgobSwgaSkgPT5cbiAgICAgICAgICAgIE1vZGVsLm1lcmdlKFxuICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBtIGFzIGFueSwgdHJhbnNpZW50Py5baV0gfHwge30pLFxuICAgICAgICAgICAgICByZXNbaV1cbiAgICAgICAgICAgIClcbiAgICAgICAgICApLFxuICAgICAgICAgIGlkc1xuICAgICAgICApLFxuICAgICAgICBjdHhcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgbXVsdGlwbGUgcmVjb3JkcyBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvblxuICAgKiBAc3VtbWFyeSBTdWJtaXRzIGEgdHJhbnNhY3Rpb24gdG8gcmVhZCBtdWx0aXBsZSByZWNvcmRzIGZyb20gdGhlIEZhYnJpYyBsZWRnZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nW10gfCBudW1iZXJbXX0gaWRzIC0gQXJyYXkgb2YgcmVjb3JkIGlkZW50aWZpZXJzIHRvIHJlYWRcbiAgICogQHJldHVybiB7UHJvbWlzZTxBcnJheTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSByZXRyaWV2ZWQgcmVjb3Jkc1xuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgcmVhZEFsbDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZHM6IFByaW1hcnlLZXlUeXBlW10sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8RmFicmljQ2xpZW50Q29udGV4dD5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlYWRBbGwpO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgbG9nLmluZm8oYHJlYWRpbmcgJHtpZHMubGVuZ3RofSBlbnRyaWVzIHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgIGxvZy52ZXJib3NlKGBwa3M6ICR7aWRzfWApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXZhbHVhdGVUcmFuc2FjdGlvbihcbiAgICAgIGN0eCxcbiAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5SRUFEX0FMTCxcbiAgICAgIFtKU09OLnN0cmluZ2lmeShpZHMpXSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGNsYXp6XG4gICAgKTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5kZWNvZGUocmVzdWx0KSkubWFwKChyOiBhbnkpID0+IEpTT04ucGFyc2UocikpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIG11bHRpcGxlIHJlY29yZHMgaW4gYSBzaW5nbGUgdHJhbnNhY3Rpb25cbiAgICogQHN1bW1hcnkgU3VibWl0cyBhIHRyYW5zYWN0aW9uIHRvIHVwZGF0ZSBtdWx0aXBsZSByZWNvcmRzIGluIHRoZSBGYWJyaWMgbGVkZ2VyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ1tdIHwgbnVtYmVyW119IGlkcyAtIEFycmF5IG9mIHJlY29yZCBpZGVudGlmaWVyc1xuICAgKiBAcGFyYW0ge0FycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+fSBtb2RlbHMgLSBBcnJheSBvZiB1cGRhdGVkIHJlY29yZCBkYXRhXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gdHJhbnNpZW50IC0gVHJhbnNpZW50IGRhdGEgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHVwZGF0ZWQgcmVjb3Jkc1xuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgdXBkYXRlQWxsPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkczogUHJpbWFyeUtleVR5cGVbXSxcbiAgICBtb2RlbHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDbGllbnRDb250ZXh0PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGlmIChpZHMubGVuZ3RoICE9PSBtb2RlbHMubGVuZ3RoKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJJZHMgYW5kIG1vZGVscyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCIpO1xuICAgIGNvbnN0IGN0eEFyZ3MgPSBbLi4uKGFyZ3MgYXMgdW5rbm93biBhcyBhbnlbXSldO1xuICAgIGNvbnN0IHRyYW5zaWVudCA9IGN0eEFyZ3Muc2hpZnQoKSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KFxuICAgICAgY3R4QXJncyBhcyBDb250ZXh0dWFsQXJnczxGYWJyaWNDbGllbnRDb250ZXh0PixcbiAgICAgIHRoaXMudXBkYXRlQWxsXG4gICAgKTtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgIGxvZy5pbmZvKGB1cGRhdGluZyAke2lkcy5sZW5ndGh9IGVudHJpZXMgdG8gJHt0YWJsZU5hbWV9IHRhYmxlYCk7XG4gICAgbG9nLnZlcmJvc2UoYHBrczogJHtpZHN9YCk7XG4gICAgY29uc3QgaGFzVHJhbnNpZW50ID0gdHJhbnNpZW50ICYmIE9iamVjdC5rZXlzKHRyYW5zaWVudCkubGVuZ3RoID4gMDtcbiAgICBjb25zdCBuZWVkc0Z1bGxQYXlsb2FkID1cbiAgICAgIGhhc1RyYW5zaWVudCB8fCB0aGlzLnNob3VsZEZvcmNlR2F0ZXdheUh5ZHJhdGlvbihjdHgpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRNb2RlbHMgPSBtb2RlbHMubWFwKChtKSA9PlxuICAgICAgdGhpcy5zZXJpYWxpemVyLnNlcmlhbGl6ZShtLCBjbGF6ei5uYW1lKVxuICAgICk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLlVQREFURV9BTEwsXG4gICAgICBbSlNPTi5zdHJpbmdpZnkoc2VyaWFsaXplZE1vZGVscyldLFxuICAgICAgaGFzVHJhbnNpZW50ID8geyBbdGFibGVOYW1lXTogdHJhbnNpZW50IH0gOiB1bmRlZmluZWQsXG4gICAgICB0aGlzLmdldEVuZG9yc2luZ09yZ2FuaXphdGlvbnMoY3R4KSxcbiAgICAgIGNsYXp6XG4gICAgKTtcblxuICAgIGxldCByZXM6IGFueTtcbiAgICB0cnkge1xuICAgICAgcmVzID0gSlNPTi5wYXJzZSh0aGlzLmRlY29kZShyZXN1bHQpKS5tYXAoKHI6IGFueSkgPT4gSlNPTi5wYXJzZShyKSk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihlIGFzIEVycm9yKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zaG91bGRSZWZyZXNoQWZ0ZXJXcml0ZShjbGF6eiwgY3R4LCBuZWVkc0Z1bGxQYXlsb2FkLCBpZHNbMF0pKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWFkQWxsKFxuICAgICAgICBjbGF6eixcbiAgICAgICAgZXh0cmFjdElkcyhcbiAgICAgICAgICBjbGF6eixcbiAgICAgICAgICBtb2RlbHMubWFwKChtLCBpKSA9PlxuICAgICAgICAgICAgTW9kZWwubWVyZ2UoXG4gICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oe30sIG0gYXMgYW55LCB0cmFuc2llbnQ/LltpXSB8fCB7fSksXG4gICAgICAgICAgICAgIHJlc1tpXVxuICAgICAgICAgICAgKVxuICAgICAgICAgICksXG4gICAgICAgICAgaWRzXG4gICAgICAgICksXG4gICAgICAgIGN0eFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBtdWx0aXBsZSByZWNvcmRzIGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uXG4gICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byBkZWxldGUgbXVsdGlwbGUgcmVjb3JkcyBmcm9tIHRoZSBGYWJyaWMgbGVkZ2VyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD59IGlkcyAtIEFycmF5IG9mIHJlY29yZCBpZGVudGlmaWVycyB0byBkZWxldGVcbiAgICogQHBhcmFtIHtTZXJpYWxpemVyPGFueT59IHNlcmlhbGl6ZXIgLSBTZXJpYWxpemVyIGZvciB0aGUgbW9kZWwgZGF0YVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGRlbGV0ZWQgcmVjb3Jkc1xuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgZGVsZXRlQWxsPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkczogUHJpbWFyeUtleVR5cGVbXSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDbGllbnRDb250ZXh0PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHgsIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZGVsZXRlQWxsKTtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuXG4gICAgY29uc3QgbmVlZHNGdWxsUGF5bG9hZCA9XG4gICAgICBNb2RlbC5pc1RyYW5zaWVudChjbGF6eikgfHwgdGhpcy5zaG91bGRGb3JjZUdhdGV3YXlIeWRyYXRpb24oY3R4KTtcbiAgICBsZXQgcmVzdWx0OiBhbnk7XG4gICAgY29uc3Qgc2hvdWxkSHlkcmF0ZSA9IHRoaXMuc2hvdWxkUmVmcmVzaEFmdGVyV3JpdGUoXG4gICAgICBjbGF6eixcbiAgICAgIGN0eCxcbiAgICAgIG5lZWRzRnVsbFBheWxvYWQsXG4gICAgICBpZHNbMF1cbiAgICApO1xuICAgIGlmIChzaG91bGRIeWRyYXRlKSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCB0aGlzLnJlYWRBbGwoY2xhenosIGlkcywgLi4uY3R4QXJncyk7XG4gICAgfVxuXG4gICAgbG9nLmluZm8oYGRlbGV0aW5nICR7aWRzLmxlbmd0aH0gZW50cmllcyB0byAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICBsb2cudmVyYm9zZShgcGtzOiAke2lkc31gKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLkRFTEVURV9BTEwsXG4gICAgICBbSlNPTi5zdHJpbmdpZnkoaWRzKV0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLmdldEVuZG9yc2luZ09yZ2FuaXphdGlvbnMoY3R4KSxcbiAgICAgIGNsYXp6XG4gICAgKTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHNob3VsZEh5ZHJhdGVcbiAgICAgICAgPyByZXN1bHRcbiAgICAgICAgOiBKU09OLnBhcnNlKHRoaXMuZGVjb2RlKHJlcykpLm1hcCgocjogYW55KSA9PiBKU09OLnBhcnNlKHIpKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUHJlcGFyZXMgYSBtb2RlbCBmb3IgcGVyc2lzdGVuY2VcbiAgICogQHN1bW1hcnkgQ29udmVydHMgYSBtb2RlbCBpbnN0YW5jZSBpbnRvIGEgZm9ybWF0IHN1aXRhYmxlIGZvciBkYXRhYmFzZSBzdG9yYWdlLFxuICAgKiBoYW5kbGluZyBjb2x1bW4gbWFwcGluZyBhbmQgc2VwYXJhdGluZyB0cmFuc2llbnQgcHJvcGVydGllc1xuICAgKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlXG4gICAqIEBwYXJhbSB7TX0gbW9kZWwgLSBUaGUgbW9kZWwgaW5zdGFuY2UgdG8gcHJlcGFyZVxuICAgKiBAcGFyYW0gcGsgLSBUaGUgcHJpbWFyeSBrZXkgcHJvcGVydHkgbmFtZVxuICAgKiBAcmV0dXJuIFRoZSBwcmVwYXJlZCBkYXRhXG4gICAqL1xuICBvdmVycmlkZSBwcmVwYXJlPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgbW9kZWw6IE0sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8RmFicmljQ2xpZW50Q29udGV4dD5cbiAgKTogU2VncmVnYXRlZE1vZGVsPE0+ICYgUHJlcGFyZWRNb2RlbCB7XG4gICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5wcmVwYXJlKTtcbiAgICBjb25zdCBzcGxpdCA9IE1vZGVsLnNlZ3JlZ2F0ZShtb2RlbCk7XG4gICAgaWYgKChtb2RlbCBhcyBhbnkpW1BlcnNpc3RlbmNlS2V5cy5NRVRBREFUQV0pIHtcbiAgICAgIGxvZy5zaWxseShcbiAgICAgICAgYFBhc3NpbmcgYWxvbmcgcGVyc2lzdGVuY2UgbWV0YWRhdGEgZm9yICR7KG1vZGVsIGFzIGFueSlbUGVyc2lzdGVuY2VLZXlzLk1FVEFEQVRBXX1gXG4gICAgICApO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNwbGl0Lm1vZGVsLCBQZXJzaXN0ZW5jZUtleXMuTUVUQURBVEEsIHtcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogKG1vZGVsIGFzIGFueSlbUGVyc2lzdGVuY2VLZXlzLk1FVEFEQVRBXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IG1pcnJvck1ldGEgPSBNb2RlbC5taXJyb3JlZEF0KG1vZGVsKTtcbiAgICBpZiAobWlycm9yTWV0YSkge1xuICAgICAgY29uc3QgbWlycm9yTXNwID0gbWlycm9yTWV0YS5tc3BJZDtcbiAgICAgIGlmICghbWlycm9yTXNwKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gbWlycm9yIE1TUCBjb3VsZCBiZSBmb3VuZGApO1xuICAgICAgbGV0IG1zcHMgPSB0aGlzLmdldEVuZG9yc2luZ09yZ2FuaXphdGlvbnMoY3R4KSB8fCBbXTtcbiAgICAgIG1zcHMgPSBBcnJheS5pc0FycmF5KG1zcHMpID8gbXNwcyA6IFttc3BzXTtcbiAgICAgIGNvbnN0IG1lcmdlZCA9IFsuLi5uZXcgU2V0KFsuLi5tc3BzLCBtaXJyb3JNc3BdKV07XG4gICAgICBjdHguYWNjdW11bGF0ZSh7XG4gICAgICAgIGVuZG9yc2luZ09yZ3M6IG1lcmdlZCxcbiAgICAgICAgZW5kb3JzaW5nT3JnYW5pemF0aW9uczogbWVyZ2VkLFxuICAgICAgICBsZWdhY3k6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVjb3JkOiBzcGxpdC5tb2RlbCxcbiAgICAgIG1vZGVsOiBzcGxpdC5tb2RlbCxcbiAgICAgIGlkOiBtb2RlbFtNb2RlbC5wayhtb2RlbC5jb25zdHJ1Y3RvciBhcyBDb25zdHJ1Y3RvcjxNPildIGFzIHN0cmluZyxcbiAgICAgIHRyYW5zaWVudDogc3BsaXQudHJhbnNpZW50LFxuICAgICAgcHJpdmF0ZXM6IHNwbGl0LnByaXZhdGVzLFxuICAgICAgc2hhcmVkOiBzcGxpdC5zaGFyZWQsXG4gICAgfTtcbiAgfVxuXG4gIG92ZXJyaWRlIHJldmVydDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIG9iajogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWQ6IFByaW1hcnlLZXlUeXBlLFxuICAgIHRyYW5zaWVudD86IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8RmFicmljQ2xpZW50Q29udGV4dD5cbiAgKTogTSB7XG4gICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZXZlcnQpO1xuICAgIGlmIChcbiAgICAgIHRyYW5zaWVudCAmJlxuICAgICAgdGhpcy5zaG91bGRSZWJ1aWxkV2l0aFRyYW5zaWVudChcbiAgICAgICAgY3R4LFxuICAgICAgICBjdHguZ2V0T3JVbmRlZmluZWQoXCJvcGVyYXRpb25cIikgYXMgc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgICApXG4gICAgKSB7XG4gICAgICBsb2cudmVyYm9zZShcbiAgICAgICAgYHJlLWFkZGluZyB0cmFuc2llbnQgcHJvcGVydGllczogJHtPYmplY3Qua2V5cyh0cmFuc2llbnQpLmpvaW4oXCIsIFwiKX1gXG4gICAgICApO1xuICAgICAgT2JqZWN0LmVudHJpZXModHJhbnNpZW50IGFzIFJlY29yZDxzdHJpbmcsIGFueT4pXG4gICAgICAgIC5maWx0ZXIoKFssIHZdKSA9PiB0eXBlb2YgdiAhPT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgLmZvckVhY2goKFtrZXksIHZhbF0pID0+IHtcbiAgICAgICAgICBpZiAoa2V5IGluIG9iaiAmJiAob2JqIGFzIGFueSlba2V5XSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgbG9nLndhcm4oXG4gICAgICAgICAgICAgIGBvdmVyd3JpdGluZyBleGlzdGluZyAke2tleX0uIGlmIHRoaXMgaXMgbm90IGEgZGVmYXVsdCB2YWx1ZSwgdGhpcyBtYXkgcG9zZSBhIHByb2JsZW1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgIChvYmogYXMgTSlba2V5IGFzIGtleW9mIE1dID0gdmFsO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBuZXcgKGNsYXp6IGFzIENvbnN0cnVjdG9yPE0+KShvYmopO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkUmVidWlsZFdpdGhUcmFuc2llbnQoXG4gICAgY3R4OiBGYWJyaWNDbGllbnRDb250ZXh0LFxuICAgIG9wZXJhdGlvbj86IHN0cmluZ1xuICApOiBib29sZWFuIHtcbiAgICBpZiAoIWN0eCkgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChjdHguZ2V0T3JVbmRlZmluZWQoXCJyZWJ1aWxkV2l0aFRyYW5zaWVudFwiKSkgcmV0dXJuIHRydWU7XG4gICAgY29uc3QgY2hpbGRSZWJ1aWxkID1cbiAgICAgIHR5cGVvZiAoY3R4IGFzIGFueSkuZ2V0RnJvbUNoaWxkcmVuID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgPyAoY3R4IGFzIGFueSkuZ2V0RnJvbUNoaWxkcmVuKFwicmVidWlsZFdpdGhUcmFuc2llbnRcIilcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgaWYgKGNoaWxkUmVidWlsZCkgcmV0dXJuIHRydWU7XG4gICAgY29uc3QgcmVzb2x2ZWRPcCA9IHRoaXMucmVzb2x2ZU9wZXJhdGlvbihjdHgsIG9wZXJhdGlvbik7XG4gICAgaWYgKCFyZXNvbHZlZE9wKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3Qgb3AgPSByZXNvbHZlZE9wLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gKFxuICAgICAgb3AuaW5jbHVkZXMoXCJyZWFkXCIpIHx8XG4gICAgICBvcC5pbmNsdWRlcyhcImZpbmRcIikgfHxcbiAgICAgIG9wLmluY2x1ZGVzKFwicXVlcnlcIikgfHxcbiAgICAgIG9wLmluY2x1ZGVzKFwic3RhdGVtZW50XCIpIHx8XG4gICAgICBvcC5pbmNsdWRlcyhcInBhZ2VcIilcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlT3BlcmF0aW9uKFxuICAgIGN0eDogRmFicmljQ2xpZW50Q29udGV4dCxcbiAgICBvcGVyYXRpb24/OiBzdHJpbmdcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAob3BlcmF0aW9uKSByZXR1cm4gb3BlcmF0aW9uO1xuICAgIGlmICh0eXBlb2YgKGN0eCBhcyBhbnkpLmdldEZyb21DaGlsZHJlbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm4gKGN0eCBhcyBhbnkpLmdldEZyb21DaGlsZHJlbihcIm9wZXJhdGlvblwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkUmVmcmVzaEFmdGVyV3JpdGU8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgY3R4OiBGYWJyaWNDbGllbnRDb250ZXh0LFxuICAgIGhhc1RyYW5zaWVudDogYm9vbGVhbixcbiAgICBpZD86IFByaW1hcnlLZXlUeXBlXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICghaGFzVHJhbnNpZW50KSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgcGsgPSBNb2RlbC5wayhjbGF6eik7XG4gICAgY29uc3QgY29tcG9zZWQgPSBNb2RlbC5jb21wb3NlZChjbGF6eiwgcGspO1xuICAgIGNvbnN0IGdlbmVyYXRlZCA9IE1vZGVsLmdlbmVyYXRlZChjbGF6eiwgcGspO1xuICAgIGNvbnN0IGhhc0lkID0gaWQgIT09IHVuZGVmaW5lZCAmJiBpZCAhPT0gbnVsbDtcbiAgICBpZiAoIWhhc0lkICYmIGNvbXBvc2VkKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoIWhhc0lkICYmIGdlbmVyYXRlZCkge1xuICAgICAgY3R4LmxvZ2dlci53YXJuKFxuICAgICAgICBgQ2Fubm90IHJlZnJlc2ggcmVjb3JkIHdpdGggcHJpdmF0ZSBnZW5lcmF0ZWQgcHJpbWFyeSBrZXlgXG4gICAgICApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gaGFzSWQ7XG4gIH1cblxuICBwcml2YXRlIGluamVjdFRyYW5zaWVudE92ZXJyaWRlcyhcbiAgICB0cmFuc2llbnREYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkLFxuICAgIGN0eDogRmFicmljQ2xpZW50Q29udGV4dFxuICApOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBoYXNUcmFuc2llbnREYXRhID0gdGhpcy5oYXNNZWFuaW5nZnVsVHJhbnNpZW50RGF0YSh0cmFuc2llbnREYXRhKTtcbiAgICBjb25zdCBzaG91bGRJbmplY3QgPSAhIWN0eC5nZXRPclVuZGVmaW5lZChcImFsbG93Q29udGV4dFRyYW5zaWVudE1hcFwiKTtcbiAgICBpZiAoIWhhc1RyYW5zaWVudERhdGEgJiYgIXNob3VsZEluamVjdCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBvdmVycmlkZXMgPSBjdHgudG9PdmVycmlkZXMoKTtcbiAgICBjb25zdCBwYXlsb2FkID0gaGFzVHJhbnNpZW50RGF0YSA/IE9iamVjdC5hc3NpZ24oe30sIHRyYW5zaWVudERhdGEpIDoge307XG4gICAgaWYgKHNob3VsZEluamVjdCAmJiBPYmplY3Qua2V5cyhvdmVycmlkZXMpLmxlbmd0aCkge1xuICAgICAgcGF5bG9hZFtGYWJyaWNNb2RlbEtleXMuT1ZFUlJJREVTXSA9IG92ZXJyaWRlcztcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHBheWxvYWQpLmxlbmd0aCA/IHBheWxvYWQgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGhhc01lYW5pbmdmdWxUcmFuc2llbnREYXRhKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICByZXR1cm4gdmFsdWUuc29tZSgoaXRlbSkgPT4gdGhpcy5oYXNNZWFuaW5nZnVsVHJhbnNpZW50RGF0YShpdGVtKSk7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJvYmplY3RcIikgcmV0dXJuIHRydWU7XG4gICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcbiAgICBpZiAoIWVudHJpZXMubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGVudHJpZXMuc29tZSgoWywgZW50cnldKSA9PiB0aGlzLmhhc01lYW5pbmdmdWxUcmFuc2llbnREYXRhKGVudHJ5KSk7XG4gIH1cblxuICBwcml2YXRlIGdldEVuZG9yc2luZ09yZ2FuaXphdGlvbnMoXG4gICAgY3R4OiBGYWJyaWNDbGllbnRDb250ZXh0XG4gICk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBkaXJlY3QgPVxuICAgICAgY3R4LmdldE9yVW5kZWZpbmVkKFwiZW5kb3JzaW5nT3Jnc1wiKSB8fFxuICAgICAgKGN0eC5nZXRPclVuZGVmaW5lZChcImVuZG9yc2luZ09yZ3NcIikgYXMgc3RyaW5nW10gfCB1bmRlZmluZWQpO1xuICAgIGlmIChkaXJlY3QgJiYgZGlyZWN0Lmxlbmd0aCkgcmV0dXJuIGRpcmVjdDtcbiAgICByZXR1cm4gKFxuICAgICAgKGN0eC5nZXRGcm9tQ2hpbGRyZW4oXCJlbmRvcnNpbmdPcmdzXCIpIGFzIHN0cmluZ1tdIHwgdW5kZWZpbmVkKSB8fFxuICAgICAgKGN0eC5nZXRGcm9tQ2hpbGRyZW4oXCJlbmRvcnNpbmdPcmdzXCIpIGFzIHN0cmluZ1tdIHwgdW5kZWZpbmVkKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHNob3VsZEZvcmNlR2F0ZXdheUh5ZHJhdGlvbihcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgY3R4OiBGYWJyaWNDbGllbnRDb250ZXh0XG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuY29uZmlnLmFsbG93R2F0ZXdheU92ZXJyaWRlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgc2luZ2xlIHJlY29yZFxuICAgKiBAc3VtbWFyeSBTdWJtaXRzIGEgdHJhbnNhY3Rpb24gdG8gY3JlYXRlIGEgcmVjb3JkIGluIHRoZSBGYWJyaWMgbGVkZ2VyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gaWQgLSBUaGUgcmVjb3JkIGlkZW50aWZpZXJcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBtb2RlbCAtIFRoZSByZWNvcmQgZGF0YVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHRyYW5zaWVudCAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNyZWF0ZWQgcmVjb3JkXG4gICAqL1xuICBAZGVidWcoKVxuICBAZmluYWwoKVxuICBvdmVycmlkZSBhc3luYyBjcmVhdGU8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWQ6IFByaW1hcnlLZXlUeXBlLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHRyYW5zaWVudDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9LFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPEZhYnJpY0NsaWVudENvbnRleHQ+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGNvbnN0IGN0eEFyZ3MgPSBbLi4uKGFyZ3MgYXMgdW5rbm93biBhcyBhbnlbXSldO1xuICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KFxuICAgICAgY3R4QXJncyBhcyBDb250ZXh0dWFsQXJnczxGYWJyaWNDbGllbnRDb250ZXh0PixcbiAgICAgIHRoaXMuY3JlYXRlXG4gICAgKTtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgIGxvZy52ZXJib3NlKGBhZGRpbmcgZW50cnkgdG8gJHt0YWJsZU5hbWV9IHRhYmxlYCk7XG4gICAgbG9nLmRlYnVnKGBwazogJHtpZH1gKTtcbiAgICBjb25zdCBoYXNUcmFuc2llbnQgPSB0cmFuc2llbnQgJiYgT2JqZWN0LmtleXModHJhbnNpZW50KS5sZW5ndGggPiAwO1xuICAgIGNvbnN0IG5lZWRzRnVsbFBheWxvYWQgPVxuICAgICAgaGFzVHJhbnNpZW50IHx8IHRoaXMuc2hvdWxkRm9yY2VHYXRld2F5SHlkcmF0aW9uKGN0eCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihcbiAgICAgIGN0eCxcbiAgICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgICAgW3RoaXMuc2VyaWFsaXplci5zZXJpYWxpemUobW9kZWwsIGNsYXp6Lm5hbWUpXSxcbiAgICAgIGhhc1RyYW5zaWVudCA/IHsgW3RhYmxlTmFtZV06IHRyYW5zaWVudCB9IDogdW5kZWZpbmVkLFxuICAgICAgdGhpcy5nZXRFbmRvcnNpbmdPcmdhbml6YXRpb25zKGN0eCksXG4gICAgICBjbGF6elxuICAgICk7XG4gICAgY29uc3QgZGVzZXJpYWxpemVkID0gdGhpcy5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHRoaXMuZGVjb2RlKHJlc3VsdCkpO1xuICAgIGlmICh0aGlzLnNob3VsZFJlZnJlc2hBZnRlcldyaXRlKGNsYXp6LCBjdHgsIG5lZWRzRnVsbFBheWxvYWQsIGlkKSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVhZChcbiAgICAgICAgY2xhenosXG4gICAgICAgIGV4dHJhY3RJZHMoXG4gICAgICAgICAgY2xhenosXG4gICAgICAgICAgTW9kZWwubWVyZ2UoXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBtb2RlbCwgdHJhbnNpZW50IHx8IHt9KSxcbiAgICAgICAgICAgIGRlc2VyaWFsaXplZCxcbiAgICAgICAgICAgIGNsYXp6XG4gICAgICAgICAgKSxcbiAgICAgICAgICBpZFxuICAgICAgICApLFxuICAgICAgICBjdHhcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBkZXNlcmlhbGl6ZWQ7XG4gIH1cblxuICBAZGVidWcoKVxuICBAZmluYWwoKVxuICBhc3luYyBoZWFsdGhjaGVjazxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDbGllbnRDb250ZXh0PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmhlYWx0aGNoZWNrKTtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuXG4gICAgbG9nLnZlcmJvc2UoYHJlYWRpbmcgZW50cnkgZnJvbSAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmV2YWx1YXRlVHJhbnNhY3Rpb24oXG4gICAgICBjdHgsXG4gICAgICBcImhlYWx0aGNoZWNrXCIsXG4gICAgICBbXSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGNsYXp6XG4gICAgKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmRlY29kZShyZXN1bHQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgYSBzaW5nbGUgcmVjb3JkXG4gICAqIEBzdW1tYXJ5IEV2YWx1YXRlcyBhIHRyYW5zYWN0aW9uIHRvIHJlYWQgYSByZWNvcmQgZnJvbSB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHJlY29yZCBpZGVudGlmaWVyXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSByZXRyaWV2ZWQgcmVjb3JkXG4gICAqL1xuICBAZGVidWcoKVxuICBAZmluYWwoKVxuICBhc3luYyByZWFkPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkOiBQcmltYXJ5S2V5VHlwZSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDbGllbnRDb250ZXh0PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlYWQpO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG5cbiAgICBsb2cudmVyYm9zZShgcmVhZGluZyBlbnRyeSBmcm9tICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgIGxvZy5kZWJ1ZyhgcGs6ICR7aWR9YCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ldmFsdWF0ZVRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgT3BlcmF0aW9uS2V5cy5SRUFELFxuICAgICAgW2lkLnRvU3RyaW5nKCldLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgY2xhenpcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUodGhpcy5kZWNvZGUocmVzdWx0KSk7XG4gIH1cblxuICB1cGRhdGVQcmVmaXg8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWQ6IFByaW1hcnlLZXlUeXBlLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDbGllbnRDb250ZXh0PlxuICApIHtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy51cGRhdGVQcmVmaXgpO1xuICAgIGNvbnN0IHJlY29yZDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIHJlY29yZFtDb3VjaERCS2V5cy5UQUJMRV0gPSB0YWJsZU5hbWU7XG4gICAgLy8gcmVjb3JkW0NvdWNoREJLZXlzLklEXSA9IHRoaXMuZ2VuZXJhdGVJZCh0YWJsZU5hbWUsIGlkKTtcbiAgICBPYmplY3QuYXNzaWduKHJlY29yZCwgbW9kZWwpO1xuICAgIHJldHVybiBbY2xhenosIGlkLCByZWNvcmQsIC4uLmN0eEFyZ3NdO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIGEgc2luZ2xlIHJlY29yZFxuICAgKiBAc3VtbWFyeSBTdWJtaXRzIGEgdHJhbnNhY3Rpb24gdG8gdXBkYXRlIGEgcmVjb3JkIGluIHRoZSBGYWJyaWMgbGVkZ2VyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gaWQgLSBUaGUgcmVjb3JkIGlkZW50aWZpZXJcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBtb2RlbCAtIFRoZSB1cGRhdGVkIHJlY29yZCBkYXRhXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gdHJhbnNpZW50IC0gVHJhbnNpZW50IGRhdGEgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgdXBkYXRlZCByZWNvcmRcbiAgICovXG4gIEBkZWJ1ZygpXG4gIEBmaW5hbCgpXG4gIGFzeW5jIHVwZGF0ZTxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgdHJhbnNpZW50OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8RmFicmljQ2xpZW50Q29udGV4dD5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgY3R4QXJncyA9IFsuLi4oYXJncyBhcyB1bmtub3duIGFzIGFueVtdKV07XG4gICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoXG4gICAgICBjdHhBcmdzIGFzIENvbnRleHR1YWxBcmdzPEZhYnJpY0NsaWVudENvbnRleHQ+LFxuICAgICAgdGhpcy51cGRhdGVcbiAgICApO1xuICAgIGxvZy5pbmZvKGBDTElFTlQgVVBEQVRFIGNsYXNzIDogJHt0eXBlb2YgY2xhenp9YCk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBsb2cudmVyYm9zZShgdXBkYXRpbmcgZW50cnkgdG8gJHt0YWJsZU5hbWV9IHRhYmxlYCk7XG4gICAgbG9nLmRlYnVnKGBwazogJHtpZH1gKTtcbiAgICBjb25zdCBoYXNUcmFuc2llbnQgPSB0cmFuc2llbnQgJiYgT2JqZWN0LmtleXModHJhbnNpZW50KS5sZW5ndGggPiAwO1xuICAgIGNvbnN0IG5lZWRzRnVsbFBheWxvYWQgPVxuICAgICAgaGFzVHJhbnNpZW50IHx8IHRoaXMuc2hvdWxkRm9yY2VHYXRld2F5SHlkcmF0aW9uKGN0eCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihcbiAgICAgIGN0eCxcbiAgICAgIE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgICAgW3RoaXMuc2VyaWFsaXplci5zZXJpYWxpemUobW9kZWwsIGNsYXp6Lm5hbWUpXSxcbiAgICAgIGhhc1RyYW5zaWVudCA/IHsgW3RhYmxlTmFtZV06IHRyYW5zaWVudCB9IDogdW5kZWZpbmVkLFxuICAgICAgdGhpcy5nZXRFbmRvcnNpbmdPcmdhbml6YXRpb25zKGN0eCksXG4gICAgICBjbGF6elxuICAgICk7XG4gICAgY29uc3QgZGVzZXJpYWxpemVkID0gdGhpcy5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHRoaXMuZGVjb2RlKHJlc3VsdCkpO1xuICAgIGlmICh0aGlzLnNob3VsZFJlZnJlc2hBZnRlcldyaXRlKGNsYXp6LCBjdHgsIG5lZWRzRnVsbFBheWxvYWQsIGlkKSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVhZChcbiAgICAgICAgY2xhenosXG4gICAgICAgIGV4dHJhY3RJZHMoXG4gICAgICAgICAgY2xhenosXG4gICAgICAgICAgTW9kZWwubWVyZ2UoXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBtb2RlbCwgdHJhbnNpZW50IHx8IHt9KSxcbiAgICAgICAgICAgIGRlc2VyaWFsaXplZCxcbiAgICAgICAgICAgIGNsYXp6XG4gICAgICAgICAgKSxcbiAgICAgICAgICBpZFxuICAgICAgICApLFxuICAgICAgICBjdHhcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBkZXNlcmlhbGl6ZWQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZXMgYSBzaW5nbGUgcmVjb3JkXG4gICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byBkZWxldGUgYSByZWNvcmQgZnJvbSB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHJlY29yZCBpZGVudGlmaWVyIHRvIGRlbGV0ZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgZGVsZXRlZCByZWNvcmRcbiAgICovXG4gIEBkZWJ1ZygpXG4gIEBmaW5hbCgpXG4gIG92ZXJyaWRlIGFzeW5jIGRlbGV0ZTxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8RmFicmljQ2xpZW50Q29udGV4dD5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5kZWxldGUpO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgY29uc3QgbmVlZHNGdWxsUGF5bG9hZCA9XG4gICAgICBNb2RlbC5pc1RyYW5zaWVudChjbGF6eikgfHwgdGhpcy5zaG91bGRGb3JjZUdhdGV3YXlIeWRyYXRpb24oY3R4KTtcbiAgICBsZXQgcmVzdWx0OiBhbnk7XG4gICAgY29uc3Qgc2hvdWxkSHlkcmF0ZSA9IHRoaXMuc2hvdWxkUmVmcmVzaEFmdGVyV3JpdGUoXG4gICAgICBjbGF6eixcbiAgICAgIGN0eCxcbiAgICAgIG5lZWRzRnVsbFBheWxvYWQsXG4gICAgICBpZFxuICAgICk7XG4gICAgaWYgKHNob3VsZEh5ZHJhdGUpIHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IHRoaXMucmVhZChjbGF6eiwgaWQsIGN0eCk7XG4gICAgfVxuXG4gICAgbG9nLnZlcmJvc2UoYGRlbGV0aW5nIGVudHJ5IGZyb20gJHt0YWJsZU5hbWV9IHRhYmxlYCk7XG4gICAgbG9nLmRlYnVnKGBwazogJHtpZH1gKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG4gICAgICBbaWQudG9TdHJpbmcoKV0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLmdldEVuZG9yc2luZ09yZ2FuaXphdGlvbnMoY3R4KSxcbiAgICAgIGNsYXp6XG4gICAgKTtcbiAgICByZXR1cm4gc2hvdWxkSHlkcmF0ZVxuICAgICAgPyByZXN1bHRcbiAgICAgIDogdGhpcy5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHRoaXMuZGVjb2RlKHJlcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFeGVjdXRlcyBhIHJhdyBxdWVyeSBhZ2FpbnN0IHRoZSBGYWJyaWMgbGVkZ2VyXG4gICAqIEBzdW1tYXJ5IEV2YWx1YXRlcyBhIHRyYW5zYWN0aW9uIHRvIHBlcmZvcm0gYSBxdWVyeSB1c2luZyBNYW5nbyBRdWVyeSBzeW50YXhcbiAgICogQHRlbXBsYXRlIFYgLSBUaGUgcmV0dXJuIHR5cGVcbiAgICogQHBhcmFtIHtNYW5nb1F1ZXJ5fSByYXdJbnB1dCAtIFRoZSBNYW5nbyBRdWVyeSB0byBleGVjdXRlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcHJvY2VzcyAtIFdoZXRoZXIgdG8gcHJvY2VzcyB0aGUgcmVzdWx0XG4gICAqIEByZXR1cm4ge1Byb21pc2U8Vj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBxdWVyeSByZXN1bHRcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gICAqICAgcGFydGljaXBhbnQgRmFicmljQWRhcHRlclxuICAgKiAgIHBhcnRpY2lwYW50IENvbnRyYWN0XG4gICAqICAgcGFydGljaXBhbnQgQ2hhaW5jb2RlXG4gICAqXG4gICAqICAgQ2xpZW50LT4+RmFicmljQWRhcHRlcjogcmF3KHJhd0lucHV0LCBwcm9jZXNzKVxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBKU09OLnN0cmluZ2lmeShyYXdJbnB1dClcbiAgICogICBGYWJyaWNBZGFwdGVyLT4+RmFicmljQWRhcHRlcjogZXZhbHVhdGVUcmFuc2FjdGlvbihcInF1ZXJ5XCIsIFtpbnB1dF0pXG4gICAqICAgRmFicmljQWRhcHRlci0+PkNvbnRyYWN0OiBldmFsdWF0ZShcInF1ZXJ5XCIsIHByb3Bvc2FsT3B0aW9ucylcbiAgICogICBDb250cmFjdC0+PkNoYWluY29kZTogaW52b2tlXG4gICAqICAgQ2hhaW5jb2RlLS0+PkNvbnRyYWN0OiByZXNwb25zZVxuICAgKiAgIENvbnRyYWN0LS0+PkZhYnJpY0FkYXB0ZXI6IHJlc3VsdFxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBKU09OLnBhcnNlKGRlY29kZShyZXN1bHQpKVxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBQcm9jZXNzIHJlc3VsdCBiYXNlZCBvbiB0eXBlXG4gICAqICAgRmFicmljQWRhcHRlci0tPj5DbGllbnQ6IHByb2Nlc3NlZCByZXN1bHRcbiAgICovXG4gIEBkZWJ1ZygpXG4gIGFzeW5jIHJhdzxWLCBEIGV4dGVuZHMgYm9vbGVhbj4oXG4gICAgcmF3SW5wdXQ6IE1hbmdvUXVlcnksXG4gICAgZG9jc09ubHk6IEQgPSB0cnVlIGFzIEQsXG4gICAgY2xheno6IE1vZGVsQ29uc3RydWN0b3I8YW55PixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDbGllbnRDb250ZXh0PlxuICApOiBQcm9taXNlPFY+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJhdyk7XG4gICAgbG9nLmluZm8oYFBlcmZvcm1pbmcgcmF3IHN0YXRlbWVudCBvbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZShjbGF6eil9YCk7XG4gICAgbGV0IHRyYW5zYWN0aW9uUmVzdWx0OiBhbnk7XG4gICAgdHJ5IHtcbiAgICAgIHRyYW5zYWN0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy5ldmFsdWF0ZVRyYW5zYWN0aW9uKFxuICAgICAgICBjdHgsXG4gICAgICAgIFwicmF3XCIsXG4gICAgICAgIFtKU09OLnN0cmluZ2lmeShyYXdJbnB1dCksIGRvY3NPbmx5XSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIGNsYXp6XG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlIGFzIEVycm9yKTtcbiAgICB9XG4gICAgbGV0IHJlc3VsdDogYW55O1xuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBKU09OLnBhcnNlKHRoaXMuZGVjb2RlKHRyYW5zYWN0aW9uUmVzdWx0KSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGBGYWlsZWQgdG8gcHJvY2VzcyByZXN1bHQ6ICR7ZX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJzZVJlY29yZCA9IChyZWNvcmQ6IFJlY29yZDxhbnksIGFueT4pID0+IHtcbiAgICAgIGlmIChNb2RlbC5pc01vZGVsKHJlY29yZCkpIHJldHVybiBNb2RlbC5idWlsZChyZWNvcmQpO1xuICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICB9O1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgICAgaWYgKCFyZXN1bHQubGVuZ3RoKSByZXR1cm4gcmVzdWx0IGFzIFY7XG4gICAgICBjb25zdCBlbCA9IHJlc3VsdFswXTtcbiAgICAgIGlmIChNb2RlbC5pc01vZGVsKGVsKSlcbiAgICAgICAgLy8gaWYgdGhlIGZpcnN0IG9uZSBpcyBhIG1vZGVsLCBhbGwgYXJlIG1vZGVsc1xuICAgICAgICByZXR1cm4gcmVzdWx0Lm1hcCgoZWwpID0+IE1vZGVsLmJ1aWxkKGVsKSkgYXMgVjtcbiAgICAgIHJldHVybiByZXN1bHQgYXMgVjtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VSZWNvcmQocmVzdWx0IGFzIGFueSkgYXMgVjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgYSBDb3VjaERCIHZpZXcgcXVlcnkgYWdhaW5zdCB0aGUgRmFicmljIGNoYWluY29kZVxuICAgKiBAc3VtbWFyeSBFdmFsdWF0ZXMgYSB0cmFuc2FjdGlvbiB0byBxdWVyeSBhIGRlc2lnbiBkb2N1bWVudCB2aWV3XG4gICAqIEB0ZW1wbGF0ZSBSIC0gVGhlIHZpZXcgcmVzcG9uc2UgdHlwZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gZGRvYyAtIERlc2lnbiBkb2N1bWVudCBuYW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2aWV3TmFtZSAtIFZpZXcgbmFtZVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IG9wdGlvbnMgLSBWaWV3IHF1ZXJ5IG9wdGlvbnNcbiAgICogQHBhcmFtIHsuLi5Db250ZXh0dWFsQXJnczxGYWJyaWNDbGllbnRDb250ZXh0Pn0gYXJncyAtIE9wdGlvbmFsIGNvbnRleHR1YWwgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Vmlld1Jlc3BvbnNlPFI+Pn0gVGhlIHZpZXcgcmVzcG9uc2VcbiAgICovXG4gIEBkZWJ1ZygpXG4gIGFzeW5jIHZpZXc8Uj4oXG4gICAgZGRvYzogc3RyaW5nLFxuICAgIHZpZXdOYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9uczogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDbGllbnRDb250ZXh0PlxuICApOiBQcm9taXNlPFZpZXdSZXNwb25zZTxSPj4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudmlldyk7XG4gICAgbG9nLmluZm8oYFF1ZXJ5aW5nIHZpZXcgJHtkZG9jfS8ke3ZpZXdOYW1lfWApO1xuICAgIGxldCB0cmFuc2FjdGlvblJlc3VsdDogYW55O1xuICAgIHRyeSB7XG4gICAgICB0cmFuc2FjdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMuZXZhbHVhdGVUcmFuc2FjdGlvbihcbiAgICAgICAgY3R4LFxuICAgICAgICBcInZpZXdcIixcbiAgICAgICAgW2Rkb2MsIHZpZXdOYW1lLCBKU09OLnN0cmluZ2lmeShvcHRpb25zKV0sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB1bmRlZmluZWRcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH1cbiAgICBsZXQgcmVzdWx0OiBWaWV3UmVzcG9uc2U8Uj47XG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UodGhpcy5kZWNvZGUodHJhbnNhY3Rpb25SZXN1bHQpKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoYEZhaWxlZCB0byBwcm9jZXNzIHZpZXcgcmVzdWx0OiAke2V9YCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHMgb3IgY3JlYXRlcyBhIGdSUEMgY2xpZW50IGZvciB0aGUgRmFicmljIHBlZXJcbiAgICogQHN1bW1hcnkgUmV0dXJucyBhIGNhY2hlZCBjbGllbnQgb3IgY3JlYXRlcyBhIG5ldyBvbmUgaWYgbm9uZSBleGlzdHNcbiAgICogQHJldHVybiB7UHJvbWlzZTxDbGllbnQ+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgZ1JQQyBjbGllbnRcbiAgICovXG4gIG92ZXJyaWRlIGdldENsaWVudCgpOiBDbGllbnQge1xuICAgIGlmICghdGhpcy5fY2xpZW50KVxuICAgICAgdGhpcy5fY2xpZW50ID0gRmFicmljQ2xpZW50QWRhcHRlci5nZXRDbGllbnQodGhpcy5jb25maWcpO1xuICAgIHJldHVybiB0aGlzLl9jbGllbnQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHMgYSBHYXRld2F5IGluc3RhbmNlIGZvciB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHN1bW1hcnkgQ3JlYXRlcyBhIG5ldyBHYXRld2F5IGluc3RhbmNlIHVzaW5nIHRoZSBjdXJyZW50IGNsaWVudFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEdhdGV3YXk+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgR2F0ZXdheSBpbnN0YW5jZVxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIEdhdGV3YXkoY3R4OiBGYWJyaWNDbGllbnRDb250ZXh0KTogUHJvbWlzZTxHYXRld2F5PiB7XG4gICAgcmV0dXJuIEZhYnJpY0NsaWVudEFkYXB0ZXIuZ2V0R2F0ZXdheShjdHgsIHRoaXMuY29uZmlnLCB0aGlzLmNsaWVudCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHMgYSBDb250cmFjdCBpbnN0YW5jZSBmb3IgdGhlIEZhYnJpYyBjaGFpbmNvZGVcbiAgICogQHN1bW1hcnkgQ3JlYXRlcyBhIG5ldyBDb250cmFjdCBpbnN0YW5jZSB1c2luZyB0aGUgY3VycmVudCBHYXRld2F5XG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q29udHJha3Q+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgQ29udHJhY3QgaW5zdGFuY2VcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBDb250cmFjdChcbiAgICBjdHg6IEZhYnJpY0NsaWVudENvbnRleHQsXG4gICAgY2xhenpPckNvbnRyYWN0TmFtZT86IENvbnN0cnVjdG9yPE1vZGVsPGFueT4+IHwgc3RyaW5nXG4gICk6IFByb21pc2U8Q29udHJha3Q+IHtcbiAgICByZXR1cm4gRmFicmljQ2xpZW50QWRhcHRlci5nZXRDb250cmFjdChcbiAgICAgIGF3YWl0IHRoaXMuR2F0ZXdheShjdHgpLFxuICAgICAgdGhpcy5jb25maWcsXG4gICAgICBjbGF6ek9yQ29udHJhY3ROYW1lLFxuICAgICAgY3R4XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgYSB0cmFuc2FjdGlvbiBvbiB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHN1bW1hcnkgU3VibWl0cyBvciBldmFsdWF0ZXMgYSB0cmFuc2FjdGlvbiBvbiB0aGUgRmFicmljIGNoYWluY29kZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBpIC0gVGhlIGNoYWluY29kZSBmdW5jdGlvbiB0byBjYWxsXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc3VibWl0IC0gV2hldGhlciB0byBzdWJtaXQgKHRydWUpIG9yIGV2YWx1YXRlIChmYWxzZSkgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7YW55W119IFthcmdzXSAtIEFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBjaGFpbmNvZGUgZnVuY3Rpb25cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBbdHJhbnNpZW50RGF0YV0gLSBUcmFuc2llbnQgZGF0YSBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gW2VuZG9yc2luZ09yZ2FuaXphdGlvbnNdIC0gT3JnYW5pemF0aW9ucyB0aGF0IG11c3QgZW5kb3JzZSB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxVaW50OEFycmF5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHRyYW5zYWN0aW9uIHJlc3VsdFxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBGYWJyaWNBZGFwdGVyXG4gICAqICAgcGFydGljaXBhbnQgR2F0ZXdheVxuICAgKiAgIHBhcnRpY2lwYW50IENvbnRyYWN0XG4gICAqICAgcGFydGljaXBhbnQgQ2hhaW5jb2RlXG4gICAqXG4gICAqICAgRmFicmljQWRhcHRlci0+PkdhdGV3YXk6IGNvbm5lY3QoKVxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5Db250cmFjdDogZ2V0Q29udHJhY3QoKVxuICAgKiAgIGFsdCBzdWJtaXQgdHJhbnNhY3Rpb25cbiAgICogICAgIEZhYnJpY0FkYXB0ZXItPj5Db250cmFjdDogc3VibWl0KGFwaSwgcHJvcG9zYWxPcHRpb25zKVxuICAgKiAgIGVsc2UgZXZhbHVhdGUgdHJhbnNhY3Rpb25cbiAgICogICAgIEZhYnJpY0FkYXB0ZXItPj5Db250cmFjdDogZXZhbHVhdGUoYXBpLCBwcm9wb3NhbE9wdGlvbnMpXG4gICAqICAgZW5kXG4gICAqICAgQ29udHJhY3QtPj5DaGFpbmNvZGU6IGludm9rZVxuICAgKiAgIENoYWluY29kZS0tPj5Db250cmFjdDogcmVzcG9uc2VcbiAgICogICBDb250cmFjdC0tPj5GYWJyaWNBZGFwdGVyOiByZXN1bHRcbiAgICogICBGYWJyaWNBZGFwdGVyLT4+R2F0ZXdheTogY2xvc2UoKVxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIHRyYW5zYWN0aW9uKFxuICAgIGN0eDogRmFicmljQ2xpZW50Q29udGV4dCxcbiAgICBhcGk6IHN0cmluZyxcbiAgICBzdWJtaXQgPSB0cnVlLFxuICAgIGFyZ3M/OiBhbnlbXSxcbiAgICB0cmFuc2llbnREYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkID0ge30sXG4gICAgZW5kb3JzaW5nT3JnYW5pemF0aW9ucz86IHN0cmluZ1tdLFxuICAgIGNsYXp6T3JDb250cmFjdE5hbWU/OiBDb25zdHJ1Y3RvcjxNb2RlbDxhbnk+PiB8IHN0cmluZ1xuICApOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy50cmFuc2FjdGlvbik7XG4gICAgdHJhbnNpZW50RGF0YSA9IHRoaXMuaW5qZWN0VHJhbnNpZW50T3ZlcnJpZGVzKHRyYW5zaWVudERhdGEsIGN0eCk7XG4gICAgaWYgKHN1Ym1pdCAmJiB0aGlzLnNob3VsZFVzZUxlZ2FjeUdhdGV3YXkoY3R4KSkge1xuICAgICAgY29uc3QgbGVnYWN5QXJncyA9IHRoaXMucHJlcGFyZUxlZ2FjeUFyZ3MoYXJncyk7XG4gICAgICBjb25zdCB0cmFuc2llbnRNYXAgPSB0aGlzLmJ1aWxkTGVnYWN5VHJhbnNpZW50KHRyYW5zaWVudERhdGEpO1xuICAgICAgY29uc3QgcGVlckNvbmZpZ3MgPSB0aGlzLmJ1aWxkTGVnYWN5UGVlckNvbmZpZ3MoY3R4KTtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnN1Ym1pdExlZ2FjeVdpdGhFeHBsaWNpdEVuZG9yc2VycyhcbiAgICAgICAgY3R4LFxuICAgICAgICBhcGksXG4gICAgICAgIGxlZ2FjeUFyZ3MsXG4gICAgICAgIHRyYW5zaWVudE1hcCxcbiAgICAgICAgcGVlckNvbmZpZ3MsXG4gICAgICAgIGNsYXp6T3JDb250cmFjdE5hbWVcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGdhdGV3YXkgPSBhd2FpdCB0aGlzLkdhdGV3YXkoY3R4KTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY29udHJhY3QgPSBhd2FpdCB0aGlzLkNvbnRyYWN0KGN0eCwgY2xhenpPckNvbnRyYWN0TmFtZSk7XG4gICAgICBsb2cudmVyYm9zZShcbiAgICAgICAgYCR7c3VibWl0ID8gXCJTdWJtaXRcIiA6IFwiRXZhbHVhdGVcIn10aW5nIHRyYW5zYWN0aW9uICR7Y29udHJhY3QuZ2V0Q29udHJhY3ROYW1lKCl9LiR7YXBpfWBcbiAgICAgICk7XG4gICAgICBsb2cuZGVidWcoYGFyZ3M6ICR7YXJncz8ubWFwKChhKSA9PiBhLnRvU3RyaW5nKCkpLmpvaW4oXCJcXG5cIikgfHwgXCJub25lXCJ9YCk7XG4gICAgICBjb25zdCBtZXRob2QgPSBzdWJtaXQgPyBjb250cmFjdC5zdWJtaXQgOiBjb250cmFjdC5ldmFsdWF0ZTtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRBcmdzID0gKGFyZ3MgfHwgW10pLm1hcCgoYXJnKSA9PlxuICAgICAgICB0aGlzLm5vcm1hbGl6ZVRyYW5zYWN0aW9uQXJndW1lbnQoYXJnKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IHRyYW5zaWVudEVudHJpZXMgPSBPYmplY3QuZW50cmllcyh0cmFuc2llbnREYXRhIHx8IHt9KTtcblxuICAgICAgZW5kb3JzaW5nT3JnYW5pemF0aW9ucyA9IGVuZG9yc2luZ09yZ2FuaXphdGlvbnM/Lmxlbmd0aFxuICAgICAgICA/IGVuZG9yc2luZ09yZ2FuaXphdGlvbnNcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBwcm9wb3NhbE9wdGlvbnM6IFByb3Bvc2FsT3B0aW9ucyA9IHtcbiAgICAgICAgYXJndW1lbnRzOiBub3JtYWxpemVkQXJncyxcbiAgICAgICAgdHJhbnNpZW50RGF0YTogdHJhbnNpZW50RW50cmllcy5sZW5ndGhcbiAgICAgICAgICA/IHRyYW5zaWVudEVudHJpZXMucmVkdWNlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxuICAgICAgICAgICAgICAoYWNjLCBba2V5LCB2YWxdKSA9PiB7XG4gICAgICAgICAgICAgICAgYWNjW2tleV0gPSBKU09OLnN0cmluZ2lmeSh2YWwpO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHt9XG4gICAgICAgICAgICApXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIGVuZG9yc2luZ09yZ2FuaXphdGlvbnM6IGN0eC5nZXRPclVuZGVmaW5lZChcImFsbG93TWFudWFsRW5kb3JzaW5nT3Jnc1wiKVxuICAgICAgICAgID8gZW5kb3JzaW5nT3JnYW5pemF0aW9ucyB8fCB1bmRlZmluZWRcbiAgICAgICAgICA6IHVuZGVmaW5lZCwgLy8gbXNwSWQgbGlzdFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGF3YWl0IG1ldGhvZC5jYWxsKGNvbnRyYWN0LCBhcGksIHByb3Bvc2FsT3B0aW9ucyk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBDbG9zaW5nICR7dGhpcy5jb25maWcubXNwSWR9IGdhdGV3YXkgY29ubmVjdGlvbmApO1xuICAgICAgZ2F0ZXdheS5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplVHJhbnNhY3Rpb25Bcmd1bWVudChhcmc6IGFueSk6IGFueSB7XG4gICAgaWYgKGFyZyA9PT0gbnVsbCB8fCBhcmcgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGFyZztcbiAgICBpZiAodHlwZW9mIGFyZyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIGFyZztcbiAgICBpZiAodHlwZW9mIGFyZyAhPT0gXCJvYmplY3RcIikgcmV0dXJuIGFyZztcbiAgICBpZiAoYXJnIGluc3RhbmNlb2YgVWludDhBcnJheSkgcmV0dXJuIGFyZztcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXJnKTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkVXNlTGVnYWN5R2F0ZXdheShjdHg6IEZhYnJpY0NsaWVudENvbnRleHQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFjdHguZ2V0T3JVbmRlZmluZWQoXCJsZWdhY3lcIikgJiYgISF0aGlzLmNvbmZpZy5hbGxvd0dhdGV3YXlPdmVycmlkZTtcbiAgfVxuXG4gIHByaXZhdGUgcHJlcGFyZUxlZ2FjeUFyZ3MoYXJncz86IGFueVtdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiAoYXJncyB8fCBbXSkubWFwKChhcmcpID0+XG4gICAgICB0eXBlb2YgYXJnID09PSBcInN0cmluZ1wiID8gYXJnIDogSlNPTi5zdHJpbmdpZnkoYXJnKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTGVnYWN5VHJhbnNpZW50KFxuICAgIHRyYW5zaWVudERhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IFJlY29yZDxzdHJpbmcsIEJ1ZmZlcj4gfCB1bmRlZmluZWQge1xuICAgIGlmICghdHJhbnNpZW50RGF0YSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXModHJhbnNpZW50RGF0YSk7XG4gICAgaWYgKCFlbnRyaWVzLmxlbmd0aCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBtYXA6IFJlY29yZDxzdHJpbmcsIEJ1ZmZlcj4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBlbnRyaWVzKSB7XG4gICAgICBtYXBba2V5XSA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgfVxuICAgIHJldHVybiBtYXA7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVMZWdhY3lNc3BDb3VudCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGNvbmZpZ3VyZWQgPSB0aGlzLmNvbmZpZy5sZWdhY3lNc3BDb3VudCA/PyAxO1xuICAgIGNvbnN0IHBhcnNlZCA9IE51bWJlcihjb25maWd1cmVkKTtcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShwYXJzZWQpIHx8IHBhcnNlZCA8IDEpIHJldHVybiAxO1xuICAgIHJldHVybiBNYXRoLmZsb29yKHBhcnNlZCk7XG4gIH1cblxuICBwcml2YXRlIHBpY2tMZWdhY3lDYW5kaWRhdGVzKFxuICAgIGNhbmRpZGF0ZXM6IE1zcERldGFpbHNbXSxcbiAgICBsaW1pdDogbnVtYmVyXG4gICk6IE1zcERldGFpbHNbXSB7XG4gICAgaWYgKCFjYW5kaWRhdGVzLmxlbmd0aCB8fCBsaW1pdCA8PSAwKSByZXR1cm4gW107XG4gICAgY29uc3QgYXZhaWxhYmxlID0gWy4uLmNhbmRpZGF0ZXNdO1xuICAgIGNvbnN0IHRhcmdldCA9IE1hdGgubWluKGxpbWl0LCBhdmFpbGFibGUubGVuZ3RoKTtcbiAgICBjb25zdCBwaWNrZWQ6IE1zcERldGFpbHNbXSA9IFtdO1xuICAgIHdoaWxlIChwaWNrZWQubGVuZ3RoIDwgdGFyZ2V0ICYmIGF2YWlsYWJsZS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGlkeCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGF2YWlsYWJsZS5sZW5ndGgpO1xuICAgICAgY29uc3QgW3NlbGVjdGlvbl0gPSBhdmFpbGFibGUuc3BsaWNlKGlkeCwgMSk7XG4gICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgIHBpY2tlZC5wdXNoKHNlbGVjdGlvbik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwaWNrZWQ7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTGVnYWN5UGVlckNvbmZpZ3MoY3R4OiBGYWJyaWNDbGllbnRDb250ZXh0KTogTGVnYWN5UGVlclRhcmdldFtdIHtcbiAgICBjb25zdCBwZWVyczogTGVnYWN5UGVlclRhcmdldFtdID0gW1xuICAgICAge1xuICAgICAgICBtc3BJZDogdGhpcy5jb25maWcubXNwSWQsXG4gICAgICAgIHBlZXJFbmRwb2ludDogdGhpcy5jb25maWcucGVlckVuZHBvaW50LFxuICAgICAgICBwZWVySG9zdEFsaWFzOiB0aGlzLmNvbmZpZy5wZWVySG9zdEFsaWFzLFxuICAgICAgICB0bHNDZXJ0OiB0aGlzLmNvbmZpZy50bHNDZXJ0LFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgbGV0IGVuZG9yc2luZ09yZ3MgPSB0aGlzLmdldEVuZG9yc2luZ09yZ2FuaXphdGlvbnMoY3R4KSB8fCBbXTtcbiAgICBlbmRvcnNpbmdPcmdzID0gQXJyYXkuaXNBcnJheShlbmRvcnNpbmdPcmdzKVxuICAgICAgPyBlbmRvcnNpbmdPcmdzXG4gICAgICA6IFtlbmRvcnNpbmdPcmdzXTtcbiAgICBjb25zdCBlbmRvcnNlcnMgPVxuICAgICAgZW5kb3JzaW5nT3Jncy5maWx0ZXIoKG9yZyk6IG9yZyBpcyBzdHJpbmcgPT4gQm9vbGVhbihvcmcpKSB8fCBbXTtcbiAgICBjb25zdCBleHRyYXMgPSBlbmRvcnNlcnMuZmlsdGVyKChvcmcpID0+IG9yZyAhPT0gdGhpcy5jb25maWcubXNwSWQpO1xuICAgIGlmICghZXh0cmFzLmxlbmd0aCkgcmV0dXJuIHBlZXJzO1xuXG4gICAgY29uc3QgbWFwID0gdGhpcy5jb25maWcubXNwTWFwO1xuICAgIGNvbnN0IGxlZ2FjeUNvdW50ID0gdGhpcy5yZXNvbHZlTGVnYWN5TXNwQ291bnQoKTtcbiAgICBmb3IgKGNvbnN0IG1zcCBvZiBleHRyYXMpIHtcbiAgICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSBtYXA/Llttc3BdO1xuICAgICAgaWYgKCFjYW5kaWRhdGVzPy5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXG4gICAgICAgICAgYE5vIHBlZXIgbWFwcGluZyBhdmFpbGFibGUgZm9yIE1TUCAke21zcH0uIFByb3ZpZGUgaXQgdmlhIGNvbmZpZy5tc3BNYXBgXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCBzZWxlY3Rpb25zID0gdGhpcy5waWNrTGVnYWN5Q2FuZGlkYXRlcyhjYW5kaWRhdGVzLCBsZWdhY3lDb3VudCk7XG4gICAgICBpZiAoIXNlbGVjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFxuICAgICAgICAgIGBObyB2YWxpZCBwZWVyIG1hcHBpbmcgYXZhaWxhYmxlIGZvciBNU1AgJHttc3B9LiBQcm92aWRlIGl0IHZpYSBjb25maWcubXNwTWFwYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBjaG9pY2Ugb2Ygc2VsZWN0aW9ucykge1xuICAgICAgICBpZiAoIWNob2ljZS5lbmRwb2ludCkge1xuICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFxuICAgICAgICAgICAgYEludmFsaWQgcGVlciBtYXBwaW5nIGZvciBNU1AgJHttc3B9OiBtaXNzaW5nIGVuZHBvaW50YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcGVlcnMucHVzaCh7XG4gICAgICAgICAgbXNwSWQ6IG1zcCxcbiAgICAgICAgICBwZWVyRW5kcG9pbnQ6IGNob2ljZS5lbmRwb2ludCxcbiAgICAgICAgICBwZWVySG9zdEFsaWFzOiBjaG9pY2UuYWxpYXMsXG4gICAgICAgICAgdGxzQ2VydDogY2hvaWNlLnRsc0NlcnQgfHwgdGhpcy5jb25maWcudGxzQ2VydCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBlZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzdWJtaXRMZWdhY3lXaXRoRXhwbGljaXRFbmRvcnNlcnMoXG4gICAgY3R4OiBGYWJyaWNDbGllbnRDb250ZXh0LFxuICAgIGZjbjogc3RyaW5nLFxuICAgIGFyZ3M6IHN0cmluZ1tdLFxuICAgIHRyYW5zaWVudE1hcDogUmVjb3JkPHN0cmluZywgQnVmZmVyPiB8IHVuZGVmaW5lZCxcbiAgICBwZWVyQ29uZmlnczogTGVnYWN5UGVlclRhcmdldFtdLFxuICAgIGNsYXp6T3JDb250cmFjdE5hbWU/OiBDb25zdHJ1Y3RvcjxNb2RlbDxhbnk+PiB8IHN0cmluZ1xuICApOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5zdWJtaXRMZWdhY3lXaXRoRXhwbGljaXRFbmRvcnNlcnMpO1xuICAgIGNvbnN0IHBlZXJzID0gdGhpcy5ub3JtYWxpemVMZWdhY3lQZWVycyhwZWVyQ29uZmlncyk7XG4gICAgY29uc3QgaWRlbnRpdHlNYXRlcmlhbCA9IGF3YWl0IHRoaXMucmVzb2x2ZUxlZ2FjeUlkZW50aXR5TWF0ZXJpYWwoKTtcbiAgICBjb25zdCB3YWxsZXQgPSBhd2FpdCBXYWxsZXRzLm5ld0luTWVtb3J5V2FsbGV0KCk7XG4gICAgY29uc3QgaWRlbnRpdHlMYWJlbCA9IGAke3RoaXMuY29uZmlnLm1zcElkfS1sZWdhY3lgO1xuICAgIGF3YWl0IHdhbGxldC5wdXQoaWRlbnRpdHlMYWJlbCwge1xuICAgICAgY3JlZGVudGlhbHM6IHtcbiAgICAgICAgY2VydGlmaWNhdGU6IGlkZW50aXR5TWF0ZXJpYWwuY2VydGlmaWNhdGUsXG4gICAgICAgIHByaXZhdGVLZXk6IGlkZW50aXR5TWF0ZXJpYWwucHJpdmF0ZUtleSxcbiAgICAgIH0sXG4gICAgICBtc3BJZDogdGhpcy5jb25maWcubXNwSWQsXG4gICAgICB0eXBlOiBcIlguNTA5XCIsXG4gICAgfSBhcyBJZGVudGl0eSk7XG5cbiAgICBjb25zdCBjb25uZWN0aW9uUHJvZmlsZSA9IGF3YWl0IHRoaXMuYnVpbGRMZWdhY3lDb25uZWN0aW9uUHJvZmlsZShwZWVycyk7XG4gICAgY29uc3QgZ2F0ZXdheSA9IG5ldyBMZWdhY3lHYXRld2F5KCk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgZ2F0ZXdheS5jb25uZWN0KGNvbm5lY3Rpb25Qcm9maWxlLCB7XG4gICAgICAgIGlkZW50aXR5OiBpZGVudGl0eUxhYmVsLFxuICAgICAgICB3YWxsZXQsXG4gICAgICAgIGRpc2NvdmVyeToge1xuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgYXNMb2NhbGhvc3Q6IHRoaXMuc2hvdWxkVHJlYXRQZWVyc0FzTG9jYWxob3N0KHBlZXJzKSxcbiAgICAgICAgfSxcbiAgICAgICAgdGxzSW5mbzoge1xuICAgICAgICAgIGNlcnRpZmljYXRlOiBpZGVudGl0eU1hdGVyaWFsLmNlcnRpZmljYXRlLFxuICAgICAgICAgIGtleTogaWRlbnRpdHlNYXRlcmlhbC5wcml2YXRlS2V5LFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGxldCBjaGFubmVsID0gdGhpcy5jb25maWcuY2hhbm5lbDtcbiAgICAgIGxldCBjaGFpbmNvZGUgPSB0aGlzLmNvbmZpZy5jaGFpbmNvZGVOYW1lO1xuICAgICAgbGV0IGNvbnRyYWN0TmFtZSA9IHRoaXMuY29uZmlnLmNvbnRyYWN0TmFtZTtcblxuICAgICAgaWYgKGNsYXp6T3JDb250cmFjdE5hbWUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBjbGF6ek9yQ29udHJhY3ROYW1lID09PSBcInN0cmluZ1wiKVxuICAgICAgICAgIGNvbnRyYWN0TmFtZSA9IGNsYXp6T3JDb250cmFjdE5hbWU7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGlmICghY3R4KVxuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgICAgIGBObyBjb250ZXh0IHJlY2VpdmVkIHRvIGRldGVybWluZSBjaGFpbmNvZGUgY29uZmlnYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjaGFubmVsID1cbiAgICAgICAgICAgIChhd2FpdCB0aGlzLmNoYW5uZWxGb3IoY2xhenpPckNvbnRyYWN0TmFtZSwgY3R4KSkgfHwgY2hhbm5lbDtcbiAgICAgICAgICBjaGFpbmNvZGUgPVxuICAgICAgICAgICAgKGF3YWl0IHRoaXMuY2hhaW5jb2RlRm9yKGNsYXp6T3JDb250cmFjdE5hbWUsIGN0eCkpIHx8IGNoYWluY29kZTtcbiAgICAgICAgICBjb250cmFjdE5hbWUgPSBhd2FpdCB0aGlzLmNvbnRyYWN0Rm9yKGNsYXp6T3JDb250cmFjdE5hbWUsIGN0eCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV0d29yayA9IGF3YWl0IGdhdGV3YXkuZ2V0TmV0d29yayhjaGFubmVsKTtcbiAgICAgIGNvbnN0IGNvbnRyYWN0ID0gbmV0d29yay5nZXRDb250cmFjdChjaGFpbmNvZGUsIGNvbnRyYWN0TmFtZSk7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IGNvbnRyYWN0LmNyZWF0ZVRyYW5zYWN0aW9uKGZjbik7XG5cbiAgICAgIGlmICh0cmFuc2llbnRNYXApIHtcbiAgICAgICAgdHJhbnNhY3Rpb24uc2V0VHJhbnNpZW50KHRyYW5zaWVudE1hcCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVuZG9yc2VycyA9IHBlZXJzXG4gICAgICAgIC5tYXAoKHBlZXIpID0+IG5ldHdvcmsuZ2V0Q2hhbm5lbCgpLmdldEVuZG9yc2VyKHBlZXIubmFtZSkpXG4gICAgICAgIC5maWx0ZXIoKGVuZG9yc2VyKTogZW5kb3JzZXIgaXMgRW5kb3JzZXIgPT4gQm9vbGVhbihlbmRvcnNlcikpO1xuICAgICAgaWYgKGVuZG9yc2Vycy5sZW5ndGgpIHtcbiAgICAgICAgdHJhbnNhY3Rpb24uc2V0RW5kb3JzaW5nUGVlcnMoZW5kb3JzZXJzKTtcbiAgICAgIH1cblxuICAgICAgbG9nLnZlcmJvc2UoXG4gICAgICAgIGBMZWdhY3kgc3VibWl0dGluZyAke2NvbnRyYWN0TmFtZX0uJHtmY259IHZpYSBwZWVycyAke3BlZXJzLm1hcCgocCkgPT4gcC5wZWVyRW5kcG9pbnQpLmpvaW4oXCIsIFwiKX1gXG4gICAgICApO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0cmFuc2FjdGlvbi5zdWJtaXQoLi4uYXJncyk7XG4gICAgICByZXR1cm4gVWludDhBcnJheS5mcm9tKHJlc3VsdCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGdhdGV3YXkuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplTGVnYWN5UGVlcnMoXG4gICAgcGVlcnM6IExlZ2FjeVBlZXJUYXJnZXRbXVxuICApOiBMZWdhY3lQZWVyV2l0aE5hbWVbXSB7XG4gICAgY29uc3QgZGVkdXBlZCA9IG5ldyBNYXA8c3RyaW5nLCBMZWdhY3lQZWVyV2l0aE5hbWU+KCk7XG4gICAgY29uc3QgYWRkUGVlciA9IChwZWVyOiBMZWdhY3lQZWVyVGFyZ2V0KSA9PiB7XG4gICAgICBjb25zdCBrZXkgPSBgJHtwZWVyLnBlZXJFbmRwb2ludH18JHtwZWVyLnBlZXJIb3N0QWxpYXMgfHwgXCJcIn1gO1xuICAgICAgaWYgKGRlZHVwZWQuaGFzKGtleSkpIHJldHVybjtcbiAgICAgIGNvbnN0IG5hbWUgPSBgcGVlci0ke3BlZXIubXNwSWR9LSR7ZGVkdXBlZC5zaXplfWA7XG4gICAgICBkZWR1cGVkLnNldChrZXksIHtcbiAgICAgICAgLi4ucGVlcixcbiAgICAgICAgbmFtZSxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBwZWVycy5mb3JFYWNoKGFkZFBlZXIpO1xuICAgIGFkZFBlZXIoe1xuICAgICAgbXNwSWQ6IHRoaXMuY29uZmlnLm1zcElkLFxuICAgICAgcGVlckVuZHBvaW50OiB0aGlzLmNvbmZpZy5wZWVyRW5kcG9pbnQsXG4gICAgICBwZWVySG9zdEFsaWFzOiB0aGlzLmNvbmZpZy5wZWVySG9zdEFsaWFzLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIEFycmF5LmZyb20oZGVkdXBlZC52YWx1ZXMoKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc29sdmVMZWdhY3lJZGVudGl0eU1hdGVyaWFsKCk6IFByb21pc2U8e1xuICAgIGNlcnRpZmljYXRlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZUtleTogc3RyaW5nO1xuICB9PiB7XG4gICAgY29uc3QgY2VydGlmaWNhdGUgPSBhd2FpdCB0aGlzLnJlYWRQZW1JbnB1dChcbiAgICAgIHRoaXMuY29uZmlnLmNlcnRDZXJ0T3JEaXJlY3RvcnlQYXRoXG4gICAgKTtcbiAgICBjb25zdCBwcml2YXRlS2V5ID0gYXdhaXQgdGhpcy5yZWFkUGVtSW5wdXQoXG4gICAgICB0aGlzLmNvbmZpZy5rZXlDZXJ0T3JEaXJlY3RvcnlQYXRoXG4gICAgKTtcbiAgICByZXR1cm4geyBjZXJ0aWZpY2F0ZSwgcHJpdmF0ZUtleSB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBidWlsZExlZ2FjeUNvbm5lY3Rpb25Qcm9maWxlKHBlZXJzOiBMZWdhY3lQZWVyV2l0aE5hbWVbXSkge1xuICAgIGNvbnN0IHBlZXJFbnRyaWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgY29uc3QgY2hhbm5lbFBlZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgY29uc3Qgb3JnczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIGZvciAoY29uc3QgcGVlciBvZiBwZWVycykge1xuICAgICAgY29uc3QgdGxzUGVtID0gYXdhaXQgdGhpcy5yZWFkUGVtSW5wdXQoXG4gICAgICAgIHBlZXIudGxzQ2VydCB8fCB0aGlzLmNvbmZpZy50bHNDZXJ0XG4gICAgICApO1xuICAgICAgY29uc3QgaG9zdG5hbWUgPVxuICAgICAgICBwZWVyLnBlZXJIb3N0QWxpYXMgfHwgdGhpcy5leHRyYWN0SG9zdChwZWVyLnBlZXJFbmRwb2ludCk7XG4gICAgICBwZWVyRW50cmllc1twZWVyLm5hbWVdID0ge1xuICAgICAgICB1cmw6IHRoaXMuZW5zdXJlR3JwY1VybChwZWVyLnBlZXJFbmRwb2ludCksXG4gICAgICAgIHRsc0NBQ2VydHM6IHsgcGVtOiB0bHNQZW0gfSxcbiAgICAgICAgZ3JwY09wdGlvbnM6IHtcbiAgICAgICAgICBcInNzbC10YXJnZXQtbmFtZS1vdmVycmlkZVwiOiBob3N0bmFtZSxcbiAgICAgICAgICBob3N0bmFtZU92ZXJyaWRlOiBob3N0bmFtZSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjaGFubmVsUGVlcnNbcGVlci5uYW1lXSA9IHtcbiAgICAgICAgZW5kb3JzaW5nUGVlcjogdHJ1ZSxcbiAgICAgICAgY2hhaW5jb2RlUXVlcnk6IHRydWUsXG4gICAgICAgIGxlZGdlclF1ZXJ5OiB0cnVlLFxuICAgICAgICBldmVudFNvdXJjZTogdHJ1ZSxcbiAgICAgIH07XG4gICAgICBvcmdzW3BlZXIubXNwSWRdID0gb3Jnc1twZWVyLm1zcElkXSB8fCB7XG4gICAgICAgIG1zcGlkOiBwZWVyLm1zcElkLFxuICAgICAgICBwZWVyczogW10sXG4gICAgICB9O1xuICAgICAgb3Jnc1twZWVyLm1zcElkXS5wZWVycy5wdXNoKHBlZXIubmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IFwibGVnYWN5LW1hbnVhbFwiLFxuICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICAgICAgY2xpZW50OiB7XG4gICAgICAgIG9yZ2FuaXphdGlvbjogdGhpcy5jb25maWcubXNwSWQsXG4gICAgICB9LFxuICAgICAgb3JnYW5pemF0aW9uczogb3JncyxcbiAgICAgIHBlZXJzOiBwZWVyRW50cmllcyxcbiAgICAgIG9yZGVyZXJzOiB7fSxcbiAgICAgIGNoYW5uZWxzOiB7XG4gICAgICAgIFt0aGlzLmNvbmZpZy5jaGFubmVsXToge1xuICAgICAgICAgIHBlZXJzOiBjaGFubmVsUGVlcnMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHNob3VsZFRyZWF0UGVlcnNBc0xvY2FsaG9zdChwZWVyczogTGVnYWN5UGVlcldpdGhOYW1lW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gcGVlcnMuZXZlcnkoKHBlZXIpID0+IHRoaXMuaXNMb2NhbEVuZHBvaW50KHBlZXIucGVlckVuZHBvaW50KSk7XG4gIH1cblxuICBwcml2YXRlIGlzTG9jYWxFbmRwb2ludChlbmRwb2ludDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZXh0cmFjdEhvc3QoZW5kcG9pbnQpLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIGhvc3QgPT09IFwibG9jYWxob3N0XCIgfHwgaG9zdCA9PT0gXCIxMjcuMC4wLjFcIjtcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdEhvc3QoZW5kcG9pbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2FuaXRpemVkID0gZW5kcG9pbnQucmVwbGFjZSgvXmdycGNzPzpcXC9cXC8vLCBcIlwiKTtcbiAgICByZXR1cm4gc2FuaXRpemVkLnNwbGl0KFwiOlwiKVswXTtcbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlR3JwY1VybChlbmRwb2ludDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoL15ncnBjcz86XFwvXFwvL2kudGVzdChlbmRwb2ludCkpIHJldHVybiBlbmRwb2ludDtcbiAgICByZXR1cm4gYGdycGNzOi8vJHtlbmRwb2ludH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWFkUGVtSW5wdXQoc291cmNlPzogc3RyaW5nIHwgQnVmZmVyKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAoIXNvdXJjZSkgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJNaXNzaW5nIGNlcnRpZmljYXRlIG9yIGtleSBtYXRlcmlhbFwiKTtcbiAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKHNvdXJjZSkpIHJldHVybiBzb3VyY2UudG9TdHJpbmcoXCJ1dGY4XCIpO1xuICAgIGNvbnN0IHRyaW1tZWQgPSBzb3VyY2UudHJpbSgpO1xuICAgIGlmICgvLS0tLS1CRUdJTiBbQS1aIF0rLS0tLS0vLnRlc3QodHJpbW1lZCkpIHJldHVybiB0cmltbWVkO1xuICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgZnMucHJvbWlzZXMuc3RhdChzb3VyY2UpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7XG4gICAgaWYgKHN0YXRzPy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICByZXR1cm4gYXdhaXQgZ2V0Rmlyc3REaXJGaWxlTmFtZUNvbnRlbnQoc291cmNlKTtcbiAgICB9XG4gICAgcmV0dXJuIChhd2FpdCByZWFkRnNGaWxlKHNvdXJjZSkpLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBhbiBlcnJvciBpbnRvIGEgQmFzZUVycm9yXG4gICAqIEBzdW1tYXJ5IENvbnZlcnRzIGFueSBlcnJvciBpbnRvIGEgc3RhbmRhcmRpemVkIEJhc2VFcnJvclxuICAgKiBAcGFyYW0ge0Vycm9yIHwgc3RyaW5nfSBlcnIgLSBUaGUgZXJyb3IgdG8gcGFyc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtyZWFzb25dIC0gT3B0aW9uYWwgcmVhc29uIGZvciB0aGUgZXJyb3JcbiAgICogQHJldHVybiB7QmFzZUVycm9yfSBUaGUgcGFyc2VkIGVycm9yXG4gICAqL1xuICBvdmVycmlkZSBwYXJzZUVycm9yPEUgZXh0ZW5kcyBCYXNlRXJyb3I+KGVycjogRXJyb3IgfCBzdHJpbmcpOiBFIHtcbiAgICByZXR1cm4gRmFicmljQ2xpZW50QWRhcHRlci5wYXJzZUVycm9yPEU+KGVycik7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHN1bW1hcnkgRXhlY3V0ZXMgYSB0cmFuc2FjdGlvbiB0aGF0IG1vZGlmaWVzIHRoZSBsZWRnZXIgc3RhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaSAtIFRoZSBjaGFpbmNvZGUgZnVuY3Rpb24gdG8gY2FsbFxuICAgKiBAcGFyYW0ge2FueVtdfSBbYXJnc10gLSBBcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgY2hhaW5jb2RlIGZ1bmN0aW9uXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gW3RyYW5zaWVudERhdGFdIC0gVHJhbnNpZW50IGRhdGEgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IFtlbmRvcnNpbmdPcmdhbml6YXRpb25zXSAtIE9yZ2FuaXphdGlvbnMgdGhhdCBtdXN0IGVuZG9yc2UgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm4ge1Byb21pc2U8VWludDhBcnJheT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB0cmFuc2FjdGlvbiByZXN1bHRcbiAgICovXG4gIGFzeW5jIHN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgIGN0eDogRmFicmljQ2xpZW50Q29udGV4dCxcbiAgICBhcGk6IHN0cmluZyxcbiAgICBhcmdzPzogYW55W10sXG4gICAgdHJhbnNpZW50RGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgZW5kb3JzaW5nT3JnYW5pemF0aW9ucz86IEFycmF5PHN0cmluZz4sXG4gICAgY2xhenpPckNvbnRyYWN0TmFtZT86IENvbnN0cnVjdG9yPE1vZGVsPGFueT4+IHwgc3RyaW5nXG4gICk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgYXBpLFxuICAgICAgdHJ1ZSxcbiAgICAgIGFyZ3MsXG4gICAgICB0cmFuc2llbnREYXRhLFxuICAgICAgZW5kb3JzaW5nT3JnYW5pemF0aW9ucyxcbiAgICAgIGNsYXp6T3JDb250cmFjdE5hbWVcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFdmFsdWF0ZXMgYSB0cmFuc2FjdGlvbiBvbiB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHN1bW1hcnkgRXhlY3V0ZXMgYSB0cmFuc2FjdGlvbiB0aGF0IGRvZXMgbm90IG1vZGlmeSB0aGUgbGVkZ2VyIHN0YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcGkgLSBUaGUgY2hhaW5jb2RlIGZ1bmN0aW9uIHRvIGNhbGxcbiAgICogQHBhcmFtIHthbnlbXX0gW2FyZ3NdIC0gQXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGNoYWluY29kZSBmdW5jdGlvblxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IFt0cmFuc2llbnREYXRhXSAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBbZW5kb3JzaW5nT3JnYW5pemF0aW9uc10gLSBPcmdhbml6YXRpb25zIHRoYXQgbXVzdCBlbmRvcnNlIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFVpbnQ4QXJyYXk+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgdHJhbnNhY3Rpb24gcmVzdWx0XG4gICAqL1xuICBhc3luYyBldmFsdWF0ZVRyYW5zYWN0aW9uKFxuICAgIGN0eDogRmFicmljQ2xpZW50Q29udGV4dCxcbiAgICBhcGk6IHN0cmluZyxcbiAgICBhcmdzPzogYW55W10sXG4gICAgdHJhbnNpZW50RGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgZW5kb3JzaW5nT3JnYW5pemF0aW9ucz86IEFycmF5PHN0cmluZz4sXG4gICAgY2xhenpPckNvbnRyYWN0TmFtZT86IENvbnN0cnVjdG9yPE1vZGVsPGFueT4+IHwgc3RyaW5nXG4gICk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgYXBpLFxuICAgICAgZmFsc2UsXG4gICAgICBhcmdzLFxuICAgICAgdHJhbnNpZW50RGF0YSxcbiAgICAgIGVuZG9yc2luZ09yZ2FuaXphdGlvbnMsXG4gICAgICBjbGF6ek9yQ29udHJhY3ROYW1lXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIG1pZ3JhdGUoXG4gICAgcmVmZXJlbmNlOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPEZhYnJpY0NsaWVudENvbnRleHQ+XG4gICk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICAgIGNvbnN0IGxhc3QgPSBhcmdzW2FyZ3MubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgcHJvdmlkZWRDdHggPVxuICAgICAgbGFzdCBpbnN0YW5jZW9mIENvbnRleHQgPyAobGFzdCBhcyBGYWJyaWNDbGllbnRDb250ZXh0KSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBtaWdyYXRpb25BcmdzID0gcHJvdmlkZWRDdHggPyBhcmdzLnNsaWNlKDAsIC0xKSA6IGFyZ3M7XG4gICAgY29uc3QgY3R4ID1cbiAgICAgIHByb3ZpZGVkQ3R4IHx8XG4gICAgICAoYXdhaXQgdGhpcy5jb250ZXh0KFxuICAgICAgICBQZXJzaXN0ZW5jZUtleXMuTUlHUkFUSU9OLFxuICAgICAgICB7fSxcbiAgICAgICAgdW5kZWZpbmVkIGFzIHVua25vd24gYXMgQ29uc3RydWN0b3I8TW9kZWw8YW55Pj5cbiAgICAgICkpO1xuICAgIHJldHVybiB0aGlzLnN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgXCJtaWdyYXRlXCIsXG4gICAgICBbcmVmZXJlbmNlLCBtaWdyYXRpb25BcmdzXSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIFwiTWlncmF0aW9uQ29udHJhY3RcIlxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFNodXRzIGRvd24gdGhlIGNvbm5lY3Rpb24gdG8gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAqIEBzdW1tYXJ5IENsb3NlcyB0aGUgYWN0aXZlIGRpc3BhdGNoICh3aGljaCBpbiB0dXJuIGNsb3NlcyBhbnkgZ2F0ZXdheVxuICAgKiBldmVudCBzdWJzY3JpcHRpb24pIHZpYSB0aGUgYmFzZSBjbGFzcywgdGhlbiBjbG9zZXMgdGhlIGdSUEMgY2xpZW50LlxuICAgKiBXb3JrcyBjb3JyZWN0bHkgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGBzeW50aGV0aWNFdmVudHNgIGlzIGVuYWJsZWQuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBjb25uZWN0aW9ucyBhcmUgY2xvc2VkXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyBzaHV0ZG93bihcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8RmFicmljQ2xpZW50Q29udGV4dD5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gQmFzZSBjbGFzcyBoYW5kbGVzIGRpc3BhdGNoLmNsb3NlKCkgaW50ZXJuYWxseS5cbiAgICBhd2FpdCBzdXBlci5zaHV0ZG93biguLi5hcmdzKTtcbiAgICBpZiAodGhpcy5jbGllbnQpIHtcbiAgICAgIHRoaXMubG9nLnZlcmJvc2UoYENsb3NpbmcgJHt0aGlzLmNvbmZpZy5tc3BJZH0gZ2F0ZXdheSBjbGllbnRgKTtcbiAgICAgIHRoaXMuY2xpZW50LmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIGEgQ29udHJhY3QgaW5zdGFuY2UgZnJvbSBhIEdhdGV3YXlcbiAgICogQHN1bW1hcnkgUmV0cmlldmVzIGEgY2hhaW5jb2RlIGNvbnRyYWN0IGZyb20gdGhlIHNwZWNpZmllZCBuZXR3b3JrXG4gICAqIEBwYXJhbSB7R2F0ZXdheX0gZ2F0ZXdheSAtIFRoZSBHYXRld2F5IGluc3RhbmNlXG4gICAqIEBwYXJhbSB7UGVlckNvbmZpZ30gY29uZmlnIC0gVGhlIHBlZXIgY29uZmlndXJhdGlvblxuICAgKiBAcmV0dXJuIHtDb250cmFrdH0gVGhlIENvbnRyYWN0IGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgZ2V0Q29udHJhY3QoXG4gICAgZ2F0ZXdheTogR2F0ZXdheSxcbiAgICBjb25maWc6IFBlZXJDb25maWcsXG4gICAgY2xhenpPckNvbnRyYWN0TmFtZT86IHN0cmluZyB8IENvbnN0cnVjdG9yPE1vZGVsPGFueT4+LFxuICAgIGN0eD86IEZhYnJpY0NsaWVudENvbnRleHRcbiAgKTogUHJvbWlzZTxDb250cmFrdD4ge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmdldENvbnRyYWN0KTtcblxuICAgIGxldCBjaGFubmVsID0gY29uZmlnLmNoYW5uZWw7XG4gICAgbGV0IGNoYWluY29kZSA9IGNvbmZpZy5jaGFpbmNvZGVOYW1lO1xuICAgIGxldCBjb250cmFjdE5hbWUgPSBjb25maWcuY29udHJhY3ROYW1lO1xuXG4gICAgaWYgKGNsYXp6T3JDb250cmFjdE5hbWUpIHtcbiAgICAgIGlmICh0eXBlb2YgY2xhenpPckNvbnRyYWN0TmFtZSA9PT0gXCJzdHJpbmdcIilcbiAgICAgICAgY29udHJhY3ROYW1lID0gY2xhenpPckNvbnRyYWN0TmFtZTtcbiAgICAgIGVsc2Uge1xuICAgICAgICBpZiAoIWN0eClcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgIGBObyBjb250ZXh0IHJlY2VpdmVkIHRvIGRldGVybWluZSBjaGFpbmNvZGUgY29uZmlnYFxuICAgICAgICAgICk7XG4gICAgICAgIGNoYW5uZWwgPVxuICAgICAgICAgIChhd2FpdCB0aGlzLmNoYW5uZWxGb3IoY2xhenpPckNvbnRyYWN0TmFtZSwgY29uZmlnLCBjdHgpKSB8fCBjaGFubmVsO1xuICAgICAgICBjaGFpbmNvZGUgPVxuICAgICAgICAgIChhd2FpdCB0aGlzLmNoYWluY29kZUZvcihjbGF6ek9yQ29udHJhY3ROYW1lLCBjb25maWcsIGN0eCkpIHx8XG4gICAgICAgICAgY2hhaW5jb2RlO1xuICAgICAgICBjb250cmFjdE5hbWUgPSBhd2FpdCB0aGlzLmNvbnRyYWN0Rm9yKGNsYXp6T3JDb250cmFjdE5hbWUsIGNvbmZpZywgY3R4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBuZXR3b3JrID0gdGhpcy5nZXROZXR3b3JrKGdhdGV3YXksIGNoYW5uZWwpO1xuICAgIGxldCBjb250cmFjdDogQ29udHJha3Q7XG4gICAgdHJ5IHtcbiAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgYFJldHJpZXZpbmcgY2hhaW5jb2RlICR7Y2hhaW5jb2RlfSBjb250cmFjdCAke2NvbnRyYWN0TmFtZX0gZnJvbSBuZXR3b3JrICR7Y2hhbm5lbH1gXG4gICAgICApO1xuICAgICAgY29udHJhY3QgPSBuZXR3b3JrLmdldENvbnRyYWN0KGNoYWluY29kZSwgY29udHJhY3ROYW1lKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRyYWN0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIGEgTmV0d29yayBpbnN0YW5jZSBmcm9tIGEgR2F0ZXdheVxuICAgKiBAc3VtbWFyeSBDb25uZWN0cyB0byBhIHNwZWNpZmljIGNoYW5uZWwgb24gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAqIEBwYXJhbSB7R2F0ZXdheX0gZ2F0ZXdheSAtIFRoZSBHYXRld2F5IGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFubmVsTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBjaGFubmVsIHRvIGNvbm5lY3QgdG9cbiAgICogQHJldHVybiB7TmV0d29ya30gVGhlIE5ldHdvcmsgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBnZXROZXR3b3JrKGdhdGV3YXk6IEdhdGV3YXksIGNoYW5uZWxOYW1lOiBzdHJpbmcpOiBOZXR3b3JrIHtcbiAgICBjb25zdCBsb2cgPSBMb2dnaW5nLmZvcih0aGlzLmdldE5ldHdvcmspO1xuICAgIGxldCBuZXR3b3JrOiBOZXR3b3JrO1xuICAgIHRyeSB7XG4gICAgICBsb2cuZGVidWcoYENvbm5lY3RpbmcgdG8gY2hhbm5lbCAke2NoYW5uZWxOYW1lfWApO1xuICAgICAgbmV0d29yayA9IGdhdGV3YXkuZ2V0TmV0d29yayhjaGFubmVsTmFtZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldHdvcms7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHMgYSBHYXRld2F5IGluc3RhbmNlIGZvciBjb25uZWN0aW5nIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgKiBAc3VtbWFyeSBDcmVhdGVzIGEgR2F0ZXdheSB1c2luZyB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbiBhbmQgY2xpZW50XG4gICAqIEBwYXJhbSB7UGVlckNvbmZpZ30gY29uZmlnIC0gVGhlIHBlZXIgY29uZmlndXJhdGlvblxuICAgKiBAcGFyYW0ge0NsaWVudH0gW2NsaWVudF0gLSBPcHRpb25hbCBnUlBDIGNsaWVudCwgd2lsbCBiZSBjcmVhdGVkIGlmIG5vdCBwcm92aWRlZFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEdhdGV3YXk+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgR2F0ZXdheSBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGdldEdhdGV3YXkoXG4gICAgY3R4OiBGYWJyaWNDbGllbnRDb250ZXh0LFxuICAgIGNvbmZpZzogUGVlckNvbmZpZyxcbiAgICBjbGllbnQ/OiBDbGllbnRcbiAgKSB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldENvbm5lY3Rpb24oXG4gICAgICBjbGllbnQgfHwgKGF3YWl0IHRoaXMuZ2V0Q2xpZW50KGNvbmZpZykpLFxuICAgICAgY29uZmlnLFxuICAgICAgY3R4XG4gICAgKSkgYXMgR2F0ZXdheTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIGdSUEMgY2xpZW50IGZvciBjb25uZWN0aW5nIHRvIGEgRmFicmljIHBlZXJcbiAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBjbGllbnQgd2l0aCBUTFMgY3JlZGVudGlhbHMgZm9yIHNlY3VyZSBjb21tdW5pY2F0aW9uXG4gICAqIEBwYXJhbSB7UGVlckNvbmZpZ30gY29uZmlnIC0gVGhlIHBlZXIgY29uZmlndXJhdGlvblxuICAgKiBAcmV0dXJuIHtDbGllbnR9IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBnUlBDIGNsaWVudFxuICAgKi9cbiAgc3RhdGljIGdldENsaWVudChjb25maWc6IFBlZXJDb25maWcpOiBDbGllbnQge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmdldENsaWVudCk7XG4gICAgbG9nLmRlYnVnKGBnZW5lcmF0aW5nIFRMUyBjcmVkZW50aWFscyBmb3IgbXNwICR7Y29uZmlnLm1zcElkfWApO1xuICAgIGxldCBwYXRoT3JDZXJ0OiBzdHJpbmcgfCBCdWZmZXIgPSBjb25maWcudGxzQ2VydCBhcyBzdHJpbmcgfCBCdWZmZXI7XG5cbiAgICBpZiAodHlwZW9mIHBhdGhPckNlcnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGlmIChcbiAgICAgICAgcGF0aE9yQ2VydC5tYXRjaChcbiAgICAgICAgICAvLS0tLS1CRUdJTiAoQ0VSVElGSUNBVEV8S0VZfFBSSVZBVEUgS0VZKS0tLS0tLis/LS0tLS1FTkQgXFwxLS0tLS0kL2dtc1xuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgcGF0aE9yQ2VydCA9IEJ1ZmZlci5mcm9tKHBhdGhPckNlcnQsIFwidXRmOFwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcGF0aE9yQ2VydCA9IEJ1ZmZlci5mcm9tKGZzLnJlYWRGaWxlU3luYyhwYXRoT3JDZXJ0LCBcInV0ZjhcIikpO1xuICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgICBgRmFpbGVkIHRvIHJlYWQgdGhlIHRscyBjZXJ0aWZpY2F0ZSBmcm9tICR7cGF0aE9yQ2VydH06ICR7ZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHRsc0NyZWRlbnRpYWxzID0gZ3JwYy5jcmVkZW50aWFscy5jcmVhdGVTc2wocGF0aE9yQ2VydCk7XG4gICAgbG9nLmRlYnVnKGBnZW5lcmF0aW5nIEdhdGV3YXkgQ2xpZW50IGZvciB1cmwgJHtjb25maWcucGVlckVuZHBvaW50fWApO1xuICAgIHJldHVybiBuZXcgQ2xpZW50KGNvbmZpZy5wZWVyRW5kcG9pbnQsIHRsc0NyZWRlbnRpYWxzLCB7XG4gICAgICBcImdycGMubWF4X3JlY2VpdmVfbWVzc2FnZV9sZW5ndGhcIjogKGNvbmZpZy5zaXplTGltaXQgfHwgMTUpICogMTAyNCAqIDEwMjQsXG4gICAgICBcImdycGMubWF4X3NlbmRfbWVzc2FnZV9sZW5ndGhcIjogKGNvbmZpZy5zaXplTGltaXQgfHwgMTUpICogMTAyNCAqIDEwMjQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEVzdGFibGlzaGVzIGEgY29ubmVjdGlvbiB0byB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHN1bW1hcnkgQ3JlYXRlcyBhIEdhdGV3YXkgY29ubmVjdGlvbiB3aXRoIGlkZW50aXR5IGFuZCBzaWduZXJcbiAgICogQHBhcmFtIHtDbGllbnR9IGNsaWVudCAtIFRoZSBnUlBDIGNsaWVudFxuICAgKiBAcGFyYW0ge1BlZXJDb25maWd9IGNvbmZpZyAtIFRoZSBwZWVyIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxHYXRld2F5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNvbm5lY3RlZCBHYXRld2F5XG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICAgKiAgIHBhcnRpY2lwYW50IEZhYnJpY0FkYXB0ZXJcbiAgICogICBwYXJ0aWNpcGFudCBJZGVudGl0eVxuICAgKiAgIHBhcnRpY2lwYW50IFNpZ25lclxuICAgKiAgIHBhcnRpY2lwYW50IEdhdGV3YXlcbiAgICpcbiAgICogICBDYWxsZXItPj5GYWJyaWNBZGFwdGVyOiBnZXRDb25uZWN0aW9uKGNsaWVudCwgY29uZmlnKVxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5JZGVudGl0eTogZ2V0SWRlbnRpdHkobXNwSWQsIGNlcnREaXJlY3RvcnlQYXRoKVxuICAgKiAgIElkZW50aXR5LS0+PkZhYnJpY0FkYXB0ZXI6IGlkZW50aXR5XG4gICAqICAgRmFicmljQWRhcHRlci0+PlNpZ25lcjogZ2V0U2lnbmVyKGtleURpcmVjdG9yeVBhdGgpXG4gICAqICAgU2lnbmVyLS0+PkZhYnJpY0FkYXB0ZXI6IHNpZ25lclxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBDcmVhdGUgQ29ubmVjdE9wdGlvbnNcbiAgICogICBGYWJyaWNBZGFwdGVyLT4+R2F0ZXdheTogY29ubmVjdChvcHRpb25zKVxuICAgKiAgIEdhdGV3YXktLT4+RmFicmljQWRhcHRlcjogZ2F0ZXdheVxuICAgKiAgIEZhYnJpY0FkYXB0ZXItLT4+Q2FsbGVyOiBnYXRld2F5XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgZ2V0Q29ubmVjdGlvbihcbiAgICBjbGllbnQ6IENsaWVudCxcbiAgICBjb25maWc6IFBlZXJDb25maWcsXG4gICAgY3R4OiBGYWJyaWNDbGllbnRDb250ZXh0XG4gICkge1xuICAgIGNvbnN0IGxvZyA9IExvZ2dpbmcuZm9yKHRoaXMuZ2V0Q29ubmVjdGlvbik7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYFJldHJpZXZpbmcgUGVlciBJZGVudGl0eSBmb3IgJHtjb25maWcubXNwSWR9IHVuZGVyICR7Y29uZmlnLmNlcnRDZXJ0T3JEaXJlY3RvcnlQYXRofWBcbiAgICApO1xuICAgIGNvbnN0IGlkZW50aXR5ID0gYXdhaXQgZ2V0SWRlbnRpdHkoXG4gICAgICBjb25maWcubXNwSWQsXG4gICAgICBjb25maWcuY2VydENlcnRPckRpcmVjdG9yeVBhdGggYXMgYW55XG4gICAgKTtcbiAgICB0cnkge1xuICAgICAgbG9nLmRlYnVnKFxuICAgICAgICBgcHJlcGFyaW5nIHRyYW5zYWN0aW9uIHNpZ25lciBmb3IgJHtDcnlwdG9VdGlscy5mYWJyaWNJZEZyb21DZXJ0aWZpY2F0ZShpZGVudGl0eS5jcmVkZW50aWFscy50b1N0cmluZygpKX1gXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIGV4dHJhY3QgRmFicmljIElEIGZyb20gY2VydGlmaWNhdGVgLCBlIGFzIEVycm9yKTtcbiAgICB9XG5cbiAgICBsZXQgc2lnbmVyOiBTaWduZXI7XG4gICAgY29uc3QgY2xvc2UgPSAoKSA9PiB7fTtcbiAgICBpZiAoIWNvbmZpZy5oc20pIHtcbiAgICAgIHNpZ25lciA9IGF3YWl0IGdldFNpZ25lcihjb25maWcua2V5Q2VydE9yRGlyZWN0b3J5UGF0aCBhcyBhbnkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjb25zdCBoc20gPSBuZXcgSFNNU2lnbmVyRmFjdG9yeUN1c3RvbShjb25maWcuaHNtLmxpYnJhcnkpO1xuICAgICAgLy8gY29uc3QgaWRlbnRpZmllciA9IGhzbS5nZXRTS0lGcm9tQ2VydGlmaWNhdGVQYXRoKFxuICAgICAgLy8gICBjb25maWcuY2VydENlcnRPckRpcmVjdG9yeVBhdGggYXMgYW55XG4gICAgICAvLyApO1xuICAgICAgLy8gY29uc3QgcGtjczExU2lnbmVyID0gaHNtLm5ld1NpZ25lcih7XG4gICAgICAvLyAgIGxhYmVsOiBjb25maWcuaHNtLnRva2VuTGFiZWwgYXMgc3RyaW5nLFxuICAgICAgLy8gICBwaW46IFN0cmluZyhjb25maWcuaHNtLnBpbikgYXMgc3RyaW5nLFxuICAgICAgLy8gICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgLy8gICAvLyB1c2VyVHlwZTogMSAvKkNLVV9VU0VSICovLFxuICAgICAgLy8gfSk7XG4gICAgICAvLyBzaWduZXIgPSBwa2NzMTFTaWduZXIuc2lnbmVyO1xuICAgICAgLy8gY2xvc2UgPSBwa2NzMTFTaWduZXIuY2xvc2U7XG4gICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcIkhTTSBOT1QgSU1QTEVNRU5URURcIik7XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGNsaWVudCxcbiAgICAgIGlkZW50aXR5OiBpZGVudGl0eSxcbiAgICAgIHNpZ25lcjogc2lnbmVyLFxuICAgICAgLy8gRGVmYXVsdCB0aW1lb3V0cyBmb3IgZGlmZmVyZW50IGdSUEMgY2FsbHNcbiAgICAgIGV2YWx1YXRlT3B0aW9uczogKCkgPT4ge1xuICAgICAgICByZXR1cm4geyBkZWFkbGluZTogRGF0ZS5ub3coKSArIDEwMDAgKiBjdHguZ2V0KFwiZXZhbHVhdGVUaW1lb3V0XCIpIH07IC8vIGRlZmF1bHRzIHRvIDUgc2Vjb25kc1xuICAgICAgfSxcbiAgICAgIGVuZG9yc2VPcHRpb25zOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7IGRlYWRsaW5lOiBEYXRlLm5vdygpICsgMTAwMCAqIGN0eC5nZXQoXCJlbmRvcnNlVGltZW91dFwiKSB9OyAvLyBkZWZhdWx0cyB0byAxNSBzZWNvbmRzXG4gICAgICB9LFxuICAgICAgc3VibWl0T3B0aW9uczogKCkgPT4ge1xuICAgICAgICByZXR1cm4geyBkZWFkbGluZTogRGF0ZS5ub3coKSArIDEwMDAgKiBjdHguZ2V0KFwic3VibWl0VGltZW91dFwiKSB9OyAvLyBkZWZhdWx0cyB0byA1IHNlY29uZHNcbiAgICAgIH0sXG4gICAgICBjb21taXRTdGF0dXNPcHRpb25zOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7IGRlYWRsaW5lOiBEYXRlLm5vdygpICsgMTAwMCAqIGN0eC5nZXQoXCJjb21taXRUaW1lb3V0XCIpIH07IC8vIGRlZmF1bHRzIHRvIDEgbWludXRlXG4gICAgICB9LFxuICAgIH0gYXMgQ29ubmVjdE9wdGlvbnM7XG5cbiAgICBsb2cuZGVidWcoYENvbm5lY3RpbmcgdG8gJHtjb25maWcubXNwSWR9YCk7XG4gICAgY29uc3QgZ2F0ZXdheSA9IGNvbm5lY3Qob3B0aW9ucyk7XG5cbiAgICAvLyBUT0RPOiByZXBsYWNlP1xuICAgIGlmIChjb25maWcuaHNtKSB7XG4gICAgICBnYXRld2F5LmNsb3NlID0gbmV3IFByb3h5KGdhdGV3YXkuY2xvc2UsIHtcbiAgICAgICAgYXBwbHkodGFyZ2V0OiAoKSA9PiB2b2lkLCB0aGlzQXJnOiBhbnksIGFyZ0FycmF5OiBhbnlbXSk6IGFueSB7XG4gICAgICAgICAgUmVmbGVjdC5hcHBseSh0YXJnZXQsIHRoaXNBcmcsIGFyZ0FycmF5KTtcbiAgICAgICAgICBjbG9zZSgpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdhdGV3YXk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgRGlzcGF0Y2ggaW5zdGFuY2UgZm9yIHRoZSBGYWJyaWMgY2xpZW50LlxuICAgKiBAc3VtbWFyeSBUaGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhIG5ldyBGYWJyaWNDbGllbnREaXNwYXRjaCBpbnN0YW5jZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGludGVyYWN0IHdpdGggdGhlIEZhYnJpYyBuZXR3b3JrLlxuICAgKiBAcmV0dXJucyB7RGlzcGF0Y2h9IEEgbmV3IERpc3BhdGNoIGluc3RhbmNlIGNvbmZpZ3VyZWQgZm9yIHRoZSBGYWJyaWMgY2xpZW50LlxuICAgKiBAcmVtYXJrcyBUaGUgRGlzcGF0Y2ggaW5zdGFuY2UgaXMgdXNlZCB0byBlbmNhcHN1bGF0ZSB0aGUgbG9naWMgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIEZhYnJpYyBuZXR3b3JrLCBzdWNoIGFzIHN1Ym1pdHRpbmcgdHJhbnNhY3Rpb25zIG9yIHF1ZXJ5aW5nIGRhdGEuXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IGZhYnJpY0Rpc3BhdGNoID0gZmFicmljQ2xpZW50QWRhcHRlci5EaXNwYXRjaCgpO1xuICAgKiBmYWJyaWNEaXNwYXRjaC5zdWJtaXRUcmFuc2FjdGlvbignY3JlYXRlUHJvZHVjdCcsIHsgbmFtZTogJ1Byb2R1Y3QgQScsIHByaWNlOiAxMDAgfSk7XG4gICAqL1xuICBvdmVycmlkZSBEaXNwYXRjaCgpOiBGYWJyaWNDbGllbnREaXNwYXRjaCB7XG4gICAgcmV0dXJuIG5ldyBGYWJyaWNDbGllbnRBZGFwdGVyW1wiX2Jhc2VEaXNwYXRjaFwiXSh0aGlzLmNsaWVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3RhdGljIGNoYWluY29kZUZvcihcbiAgICBtb2RlbDogQ29uc3RydWN0b3I8TW9kZWw8YW55Pj4sXG4gICAgY29uZmlnOiBQZWVyQ29uZmlnLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPEZhYnJpY0NsaWVudENvbnRleHQ+XG4gICkge1xuICAgIHJldHVybiBNb2RlbC5jaGFpbmNvZGVPZihtb2RlbCwgLi4uYXJncykgfHwgY29uZmlnLmNoYWluY29kZU5hbWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3RhdGljIGNoYW5uZWxGb3IoXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yPE1vZGVsPGFueT4+LFxuICAgIGNvbmZpZzogUGVlckNvbmZpZyxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDbGllbnRDb250ZXh0PlxuICApIHtcbiAgICByZXR1cm4gTW9kZWwuY2hhbm5lbE9mKG1vZGVsLCAuLi5hcmdzKSB8fCBjb25maWcuY2hhbm5lbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGF0aWMgY29udHJhY3RGb3IoXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yPE1vZGVsPGFueT4+LFxuICAgIGNvbmZpZzogUGVlckNvbmZpZyxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDbGllbnRDb250ZXh0PlxuICApIHtcbiAgICByZXR1cm4gKFxuICAgICAgTW9kZWwuY29udHJhY3RPZihtb2RlbCwgLi4uYXJncykgfHxcbiAgICAgIERlZmF1bHRDb250cmFjdFJlc29sdmVyKG1vZGVsLCAuLi5hcmdzKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBhbiBlcnJvciBpbnRvIGEgQmFzZUVycm9yXG4gICAqIEBzdW1tYXJ5IENvbnZlcnRzIGFueSBlcnJvciBpbnRvIGEgc3RhbmRhcmRpemVkIEJhc2VFcnJvciB1c2luZyB0aGUgcGFyZW50IGNsYXNzIGltcGxlbWVudGF0aW9uXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBzdHJpbmd9IGVyciAtIFRoZSBlcnJvciB0byBwYXJzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3JlYXNvbl0gLSBPcHRpb25hbCByZWFzb24gZm9yIHRoZSBlcnJvclxuICAgKiBAcmV0dXJuIHtCYXNlRXJyb3J9IFRoZSBwYXJzZWQgZXJyb3JcbiAgICovXG4gIHByb3RlY3RlZCBzdGF0aWMgcGFyc2VFcnJvcjxFIGV4dGVuZHMgQmFzZUVycm9yPihcbiAgICBlcnI6IEVycm9yIHwgc3RyaW5nIHwgR2F0ZXdheUVycm9yXG4gICk6IEUge1xuICAgIC8vIGlmIChcbiAgICAvLyAgIE1JU1NJTkdfUFJJVkFURV9EQVRBX1JFR0VYLnRlc3QoXG4gICAgLy8gICAgIHR5cGVvZiBlcnIgPT09IFwic3RyaW5nXCIgPyBlcnIgOiBlcnIubWVzc2FnZVxuICAgIC8vICAgKVxuICAgIC8vIClcbiAgICAvLyAgIHJldHVybiBuZXcgVW5hdXRob3JpemVkUHJpdmF0ZURhdGFBY2Nlc3MoZXJyKSBhcyBFO1xuXG4gICAgbGV0IG1zZyA9IHR5cGVvZiBlcnIgPT09IFwic3RyaW5nXCIgPyBlcnIgOiBlcnIubWVzc2FnZTtcbiAgICBpZiAoZXJyIGluc3RhbmNlb2YgR2F0ZXdheUVycm9yICYmIGVyci5kZXRhaWxzLmxlbmd0aCAmJiBlcnIuY29kZSA9PT0gMTApIHtcbiAgICAgIG1zZyA9IGAke2Vyci5kZXRhaWxzWzBdLm1lc3NhZ2V9YDtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBlcnIgaW5zdGFuY2VvZiBFbmRvcnNlRXJyb3IgJiZcbiAgICAgIGVyci5kZXRhaWxzLmxlbmd0aCAmJlxuICAgICAgZXJyLmNvZGUgPT09IDEwICYmXG4gICAgICBlcnIuZGV0YWlsc1swXS5tZXNzYWdlPy5pbmNsdWRlcyhVbnN1cHBvcnRlZEVycm9yLm5hbWUpXG4gICAgKSB7XG4gICAgICBtc2cgPSBgJHtlcnIuZGV0YWlsc1swXS5tZXNzYWdlfWA7XG4gICAgfVxuXG4gICAgaWYgKG1zZy5pbmNsdWRlcyhcIk1WQ0NfUkVBRF9DT05GTElDVFwiKSlcbiAgICAgIHJldHVybiBuZXcgTXZjY1JlYWRDb25mbGljdEVycm9yKGVycikgYXMgRTtcblxuICAgIGlmIChtc2cuaW5jbHVkZXMoXCJERUFETElORV9FWENFRURFRFwiKSlcbiAgICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25UaW1lb3V0RXJyb3IoZXJyKSBhcyBFO1xuXG4gICAgaWYgKFxuICAgICAgbXNnLmluY2x1ZGVzKFwiY2hhaW5jb2RlIHN0cmVhbSB0ZXJtaW5hdGVkXCIpIHx8XG4gICAgICBtc2cuaW5jbHVkZXMoXCJSRVNPVVJDRV9FWEhBVVNURURcIikgfHxcbiAgICAgIG1zZy5pbmNsdWRlcyhcInJlY2VpdmVkIG1lc3NhZ2UgbGFyZ2VyIHRoYW4gbWF4XCIpIHx8XG4gICAgICBtc2cuaW5jbHVkZXMoXCJncnBjOiByZWNlaXZlZCBtZXNzYWdlIGxhcmdlclwiKVxuICAgIClcbiAgICAgIHJldHVybiBuZXcgUXVlcnlSZXN1bHRUb29MYXJnZUVycm9yKGVycikgYXMgRTtcblxuICAgIGlmIChtc2cuaW5jbHVkZXMoXCJFTkRPUlNFTUVOVF9QT0xJQ1lfRkFJTFVSRVwiKSlcbiAgICAgIHJldHVybiBuZXcgRW5kb3JzZW1lbnRQb2xpY3lFcnJvcihlcnIpIGFzIEU7XG5cbiAgICBpZiAobXNnLmluY2x1ZGVzKFwiUEhBTlRPTV9SRUFEX0NPTkZMSUNUXCIpKVxuICAgICAgcmV0dXJuIG5ldyBQaGFudG9tUmVhZENvbmZsaWN0RXJyb3IoZXJyKSBhcyBFO1xuXG4gICAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yICYmIChlcnIgYXMgYW55KS5jb2RlKSB7XG4gICAgICBzd2l0Y2ggKChlcnIgYXMgYW55KS5jb2RlKSB7XG4gICAgICAgIGNhc2UgOTpcbiAgICAgICAgICByZXR1cm4gbmV3IEVuZG9yc2VtZW50RXJyb3IoZXJyKSBhcyBFO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtc2cuaW5jbHVkZXMoVmFsaWRhdGlvbkVycm9yLm5hbWUpKVxuICAgICAgcmV0dXJuIG5ldyBWYWxpZGF0aW9uRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoTm90Rm91bmRFcnJvci5uYW1lKSkgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKGVycikgYXMgRTtcbiAgICBpZiAobXNnLmluY2x1ZGVzKENvbmZsaWN0RXJyb3IubmFtZSkpIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhCYWRSZXF1ZXN0RXJyb3IubmFtZSkpXG4gICAgICByZXR1cm4gbmV3IEJhZFJlcXVlc3RFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhRdWVyeUVycm9yLm5hbWUpKSByZXR1cm4gbmV3IFF1ZXJ5RXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoUGFnaW5nRXJyb3IubmFtZSkpIHJldHVybiBuZXcgUGFnaW5nRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoVW5zdXBwb3J0ZWRFcnJvci5uYW1lKSlcbiAgICAgIHJldHVybiBuZXcgVW5zdXBwb3J0ZWRFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhNaWdyYXRpb25FcnJvci5uYW1lKSkgcmV0dXJuIG5ldyBNaWdyYXRpb25FcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhPYnNlcnZlckVycm9yLm5hbWUpKSByZXR1cm4gbmV3IE9ic2VydmVyRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoQXV0aG9yaXphdGlvbkVycm9yLm5hbWUpKVxuICAgICAgcmV0dXJuIG5ldyBBdXRob3JpemF0aW9uRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoRm9yYmlkZGVuRXJyb3IubmFtZSkpIHJldHVybiBuZXcgRm9yYmlkZGVuRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoQ29ubmVjdGlvbkVycm9yLm5hbWUpKVxuICAgICAgcmV0dXJuIG5ldyBDb25uZWN0aW9uRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoU2VyaWFsaXphdGlvbkVycm9yLm5hbWUpKVxuICAgICAgcmV0dXJuIG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoZXJyKSBhcyBFO1xuICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihlcnIpIGFzIEU7XG4gIH1cbn1cblxuRmFicmljQ2xpZW50QWRhcHRlci5kZWNvcmF0aW9uKCk7XG5BZGFwdGVyLnNldEN1cnJlbnQoRmFicmljRmxhdm91cik7XG4iXX0=
1460
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50QWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkZhYnJpY0NsaWVudEFkYXB0ZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FB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RSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLDRDQUFtQixDQUFDLENBQUM7SUFDaEosVUFBVSxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQztDQUMzQyxFQUFFLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDL0MsVUFBVSxDQUFDO0lBQ1AsSUFBQSxlQUFLLEdBQUU7SUFDUCxVQUFVLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztJQUNuQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSw0Q0FBbUIsQ0FBQyxDQUFDO0lBQzlFLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUM7Q0FDM0MsRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hELG1CQUFtQixDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ2pDLGNBQU8sQ0FBQyxVQUFVLENBQUMsNEJBQWEsQ0FBQyxDQUFDO0FBQ2xDLDB4d0pBQTB4d0oiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG52YXIgX19tZXRhZGF0YSA9ICh0aGlzICYmIHRoaXMuX19tZXRhZGF0YSkgfHwgZnVuY3Rpb24gKGssIHYpIHtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoaywgdik7XG59O1xudmFyIF9hO1xuaW1wb3J0IFwiLi8uLi9zaGFyZWQvb3ZlcnJpZGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBDb3VjaERCS2V5cywgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgeyBDbGllbnQgfSBmcm9tIFwiQGdycGMvZ3JwYy1qc1wiO1xuaW1wb3J0ICogYXMgZ3JwYyBmcm9tIFwiQGdycGMvZ3JwYy1qc1wiO1xuaW1wb3J0IHsgTW9kZWwsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgZGVidWcsIGZpbmFsLCBMb2dnaW5nIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5pbXBvcnQgeyBjb25uZWN0LCBHYXRld2F5RXJyb3IsIEVuZG9yc2VFcnJvciwgfSBmcm9tIFwiQGh5cGVybGVkZ2VyL2ZhYnJpYy1nYXRld2F5XCI7XG5pbXBvcnQgeyBHYXRld2F5IGFzIExlZ2FjeUdhdGV3YXksIFdhbGxldHMgfSBmcm9tIFwiZmFicmljLW5ldHdvcmtcIjtcbmltcG9ydCB7IGdldElkZW50aXR5LCBnZXRTaWduZXIsIGdldEZpcnN0RGlyRmlsZU5hbWVDb250ZW50LCByZWFkRmlsZSBhcyByZWFkRnNGaWxlLCB9IGZyb20gXCIuL2ZhYnJpYy1mcy5qc1wiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciwgT3BlcmF0aW9uS2V5cywgU2VyaWFsaXphdGlvbkVycm9yLCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsIE5vdEZvdW5kRXJyb3IsIENvbmZsaWN0RXJyb3IsIEJhZFJlcXVlc3RFcnJvciwgVmFsaWRhdGlvbkVycm9yLCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ29udGV4dCwgQWRhcHRlciwgQXV0aG9yaXphdGlvbkVycm9yLCBDb25uZWN0aW9uRXJyb3IsIEZvcmJpZGRlbkVycm9yLCBNaWdyYXRpb25FcnJvciwgT2JzZXJ2ZXJFcnJvciwgUGFnaW5nRXJyb3IsIFBlcnNpc3RlbmNlS2V5cywgUXVlcnlFcnJvciwgVW5zdXBwb3J0ZWRFcnJvciwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IEZhYnJpY0ZsYXZvdXIsIEZhYnJpY01vZGVsS2V5cyB9IGZyb20gXCIuLy4uL3NoYXJlZC9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IENsaWVudFNlcmlhbGl6ZXIgfSBmcm9tIFwiLi8uLi9zaGFyZWQvQ2xpZW50U2VyaWFsaXplci5qc1wiO1xuaW1wb3J0IHsgRmFicmljQ2xpZW50Q29udGV4dCB9IGZyb20gXCIuL0ZhYnJpY0NsaWVudENvbnRleHQuanNcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudFN0YXRlbWVudCB9IGZyb20gXCIuL0ZhYnJpY0NsaWVudFN0YXRlbWVudC5qc1wiO1xuaW1wb3J0IHsgRmFicmljQ2xpZW50UGFnaW5hdG9yIH0gZnJvbSBcIi4vRmFicmljQ2xpZW50UGFnaW5hdG9yLmpzXCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnRSZXBvc2l0b3J5IH0gZnJvbSBcIi4vRmFicmljQ2xpZW50UmVwb3NpdG9yeS5qc1wiO1xuaW1wb3J0IHsgRW5kb3JzZW1lbnRFcnJvciwgRW5kb3JzZW1lbnRQb2xpY3lFcnJvciwgTXZjY1JlYWRDb25mbGljdEVycm9yLCBQaGFudG9tUmVhZENvbmZsaWN0RXJyb3IsIFF1ZXJ5UmVzdWx0VG9vTGFyZ2VFcnJvciwgVHJhbnNhY3Rpb25UaW1lb3V0RXJyb3IsIH0gZnJvbSBcIi4vLi4vc2hhcmVkL2Vycm9ycy5qc1wiO1xuaW1wb3J0IHsgRGVmYXVsdEZhYnJpY0NsaWVudEZsYWdzIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgeyBDcnlwdG9VdGlscyB9IGZyb20gXCIuL2NyeXB0by5qc1wiO1xuaW1wb3J0IHsgZXh0cmFjdElkcyB9IGZyb20gXCIuL2lkcy9pZC1leHRyYWN0aW9uLmpzXCI7XG5pbXBvcnQgeyBEZWZhdWx0Q29udHJhY3RSZXNvbHZlciB9IGZyb20gXCIuLy4uL3NoYXJlZC9pbmRleC5qc1wiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gQWRhcHRlciBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBIeXBlcmxlZGdlciBGYWJyaWMgbmV0d29ya3NcbiAqIEBzdW1tYXJ5IFRoZSBGYWJyaWNBZGFwdGVyIGV4dGVuZHMgQ291Y2hEQkFkYXB0ZXIgdG8gcHJvdmlkZSBhIHNlYW1sZXNzIGludGVyZmFjZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBIeXBlcmxlZGdlciBGYWJyaWMgbmV0d29ya3MuXG4gKiBJdCBoYW5kbGVzIGNvbm5lY3Rpb24gbWFuYWdlbWVudCwgdHJhbnNhY3Rpb24gc3VibWlzc2lvbiwgYW5kIENSVUQgb3BlcmF0aW9ucyBhZ2FpbnN0IEZhYnJpYyBjaGFpbmNvZGUuXG4gKiBAdGVtcGxhdGUgUGVlckNvbmZpZyAtIENvbmZpZ3VyYXRpb24gdHlwZSBmb3IgY29ubmVjdGluZyB0byBhIEZhYnJpYyBwZWVyXG4gKiBAdGVtcGxhdGUgRmFicmljRmxhZ3MgLSBGbGFncyBzcGVjaWZpYyB0byBGYWJyaWMgb3BlcmF0aW9uc1xuICogQHRlbXBsYXRlIENvbnRleHQ8RmFicmljRmxhZ3M+IC0gQ29udGV4dCB0eXBlIGNvbnRhaW5pbmcgRmFicmljLXNwZWNpZmljIGZsYWdzXG4gKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhdGlvbiBmb3IgY29ubmVjdGluZyB0byBhIEZhYnJpYyBwZWVyXG4gKiBAcGFyYW0gYWxpYXMgLSBPcHRpb25hbCBhbGlhcyBmb3IgdGhlIGFkYXB0ZXIgaW5zdGFuY2VcbiAqIEBjbGFzcyBGYWJyaWNDbGllbnRBZGFwdGVyXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQ3JlYXRlIGEgbmV3IEZhYnJpY0FkYXB0ZXIgaW5zdGFuY2VcbiAqIGNvbnN0IGNvbmZpZzogUGVlckNvbmZpZyA9IHtcbiAqICAgbXNwSWQ6ICdPcmcxTVNQJyxcbiAqICAgcGVlckVuZHBvaW50OiAnbG9jYWxob3N0OjcwNTEnLFxuICogICBjaGFubmVsTmFtZTogJ215Y2hhbm5lbCcsXG4gKiAgIGNoYWluY29kZU5hbWU6ICdteWNjJyxcbiAqICAgY29udHJhY3ROYW1lOiAnbXljb250cmFjdCcsXG4gKiAgIHRsc0NlcnRQYXRoOiAnL3BhdGgvdG8vdGxzL2NlcnQnLFxuICogICBjZXJ0RGlyZWN0b3J5UGF0aDogJy9wYXRoL3RvL2NlcnQvZGlyJyxcbiAqICAga2V5RGlyZWN0b3J5UGF0aDogJy9wYXRoL3RvL2tleS9kaXInXG4gKiB9O1xuICpcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgRmFicmljQWRhcHRlcihjb25maWcsICdvcmcxLWFkYXB0ZXInKTtcbiAqXG4gKiAvLyBVc2UgdGhlIGFkYXB0ZXIgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgRmFicmljIG5ldHdvcmtcbiAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFkYXB0ZXIucmVhZCgndXNlcnMnLCAndXNlcjEnLCBteVNlcmlhbGl6ZXIpO1xuICogYGBgXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENsaWVudFxuICogICBwYXJ0aWNpcGFudCBGYWJyaWNBZGFwdGVyXG4gKiAgIHBhcnRpY2lwYW50IEdhdGV3YXlcbiAqICAgcGFydGljaXBhbnQgTmV0d29ya1xuICogICBwYXJ0aWNpcGFudCBDb250cmFjdFxuICogICBwYXJ0aWNpcGFudCBDaGFpbmNvZGVcbiAqXG4gKiAgIENsaWVudC0+PkZhYnJpY0FkYXB0ZXI6IGNyZWF0ZSh0YWJsZU5hbWUsIGlkLCBtb2RlbCwgdHJhbnNpZW50LCBzZXJpYWxpemVyKVxuICogICBGYWJyaWNBZGFwdGVyLT4+RmFicmljQWRhcHRlcjogc3VibWl0VHJhbnNhY3Rpb24oT3BlcmF0aW9uS2V5cy5DUkVBVEUsIFtzZXJpYWxpemVkTW9kZWxdLCB0cmFuc2llbnQpXG4gKiAgIEZhYnJpY0FkYXB0ZXItPj5HYXRld2F5OiBjb25uZWN0KClcbiAqICAgR2F0ZXdheS0+Pk5ldHdvcms6IGdldE5ldHdvcmsoY2hhbm5lbE5hbWUpXG4gKiAgIE5ldHdvcmstPj5Db250cmFjdDogZ2V0Q29udHJhY3QoY2hhaW5jb2RlTmFtZSwgY29udHJhY3ROYW1lKVxuICogICBGYWJyaWNBZGFwdGVyLT4+Q29udHJhY3Q6IHN1Ym1pdChhcGksIHByb3Bvc2FsT3B0aW9ucylcbiAqICAgQ29udHJhY3QtPj5DaGFpbmNvZGU6IGludm9rZVxuICogICBDaGFpbmNvZGUtLT4+Q29udHJhY3Q6IHJlc3BvbnNlXG4gKiAgIENvbnRyYWN0LS0+PkZhYnJpY0FkYXB0ZXI6IHJlc3VsdFxuICogICBGYWJyaWNBZGFwdGVyLT4+RmFicmljQWRhcHRlcjogZGVjb2RlKHJlc3VsdClcbiAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IHNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoZGVjb2RlZFJlc3VsdClcbiAqICAgRmFicmljQWRhcHRlci0tPj5DbGllbnQ6IGRlc2VyaWFsaXplZFJlc3VsdFxuICovXG5leHBvcnQgY2xhc3MgRmFicmljQ2xpZW50QWRhcHRlciBleHRlbmRzIEFkYXB0ZXIge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTdGF0aWMgdGV4dCBkZWNvZGVyIGZvciBjb252ZXJ0aW5nIFVpbnQ4QXJyYXkgdG8gc3RyaW5nXG4gICAgICovXG4gICAgc3RhdGljIHsgdGhpcy5kZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKFwidXRmOFwiKTsgfVxuICAgIHN0YXRpYyB7IHRoaXMuc2VyaWFsaXplciA9IG5ldyBDbGllbnRTZXJpYWxpemVyKCk7IH1cbiAgICBzdGF0aWMgeyB0aGlzLmxvZyA9IExvZ2dpbmcuZm9yKEZhYnJpY0NsaWVudEFkYXB0ZXIpOyB9XG4gICAgZ2V0IENvbnRleHQoKSB7XG4gICAgICAgIHJldHVybiBGYWJyaWNDbGllbnRDb250ZXh0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBGYWJyaWNBZGFwdGVyIGluc3RhbmNlXG4gICAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBuZXcgYWRhcHRlciBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhIEh5cGVybGVkZ2VyIEZhYnJpYyBuZXR3b3JrXG4gICAgICogQHBhcmFtIHtQZWVyQ29uZmlnfSBjb25maWcgLSBDb25maWd1cmF0aW9uIGZvciBjb25uZWN0aW5nIHRvIGEgRmFicmljIHBlZXJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2FsaWFzXSAtIE9wdGlvbmFsIGFsaWFzIGZvciB0aGUgYWRhcHRlciBpbnN0YW5jZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGNvbmZpZywgYWxpYXMpIHtcbiAgICAgICAgc3VwZXIoT2JqZWN0LmFzc2lnbih7fSwgRGVmYXVsdEZhYnJpY0NsaWVudEZsYWdzLCBjb25maWcpLCBGYWJyaWNGbGF2b3VyLCBhbGlhcyk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IEZhYnJpY0NsaWVudEFkYXB0ZXIuc2VyaWFsaXplcjtcbiAgICB9XG4gICAgY2hhaW5jb2RlRm9yKG1vZGVsLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiBGYWJyaWNDbGllbnRBZGFwdGVyLmNoYWluY29kZUZvcihtb2RlbCwgdGhpcy5jb25maWcsIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBjaGFubmVsRm9yKG1vZGVsLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiBGYWJyaWNDbGllbnRBZGFwdGVyLmNoYW5uZWxGb3IobW9kZWwsIHRoaXMuY29uZmlnLCAuLi5hcmdzKTtcbiAgICB9XG4gICAgY29udHJhY3RGb3IobW9kZWwsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIEZhYnJpY0NsaWVudEFkYXB0ZXIuY29udHJhY3RGb3IobW9kZWwsIHRoaXMuY29uZmlnLCAuLi5hcmdzKTtcbiAgICB9XG4gICAgU3RhdGVtZW50KG92ZXJyaWRlcykge1xuICAgICAgICByZXR1cm4gbmV3IEZhYnJpY0NsaWVudFN0YXRlbWVudCh0aGlzLCBvdmVycmlkZXMpO1xuICAgIH1cbiAgICBQYWdpbmF0b3IocXVlcnksIHNpemUsIGNsYXp6KSB7XG4gICAgICAgIHJldHVybiBuZXcgRmFicmljQ2xpZW50UGFnaW5hdG9yKHRoaXMsIHF1ZXJ5LCBzaXplLCBjbGF6eik7XG4gICAgfVxuICAgIGFzeW5jIGZsYWdzKG9wZXJhdGlvbiwgbW9kZWwsIGZsYWdzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IG1lcmdlZEZsYWdzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb25maWcsIGZsYWdzKTtcbiAgICAgICAgY29uc3QgZiA9IE9iamVjdC5hc3NpZ24oYXdhaXQgc3VwZXIuZmxhZ3Mob3BlcmF0aW9uLCBtb2RlbCwgbWVyZ2VkRmxhZ3MsIC4uLmFyZ3MpKTtcbiAgICAgICAgcmV0dXJuIGY7XG4gICAgfVxuICAgIGFzeW5jIGNvbnRleHQob3BlcmF0aW9uLCBvdmVycmlkZXMsIG1vZGVsLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmNvbnRleHQpO1xuICAgICAgICBsb2cuc2lsbHkoYGNyZWF0aW5nIG5ldyBjb250ZXh0IGZvciAke29wZXJhdGlvbn0gb3BlcmF0aW9uIG9uICR7bW9kZWwgPyAoQXJyYXkuaXNBcnJheShtb2RlbCkgPyBtb2RlbC5tYXAoKG0pID0+IE1vZGVsLnRhYmxlTmFtZShtKSkgOiBNb2RlbC50YWJsZU5hbWUobW9kZWwpKSA6IFwibm9cIn0gdGFibGUgJHtvdmVycmlkZXMgJiYgT2JqZWN0LmtleXMob3ZlcnJpZGVzKSA/IE9iamVjdC5rZXlzKG92ZXJyaWRlcykubGVuZ3RoIDogXCJub1wifSB3aXRoIGZsYWcgb3ZlcnJpZGVzYCk7XG4gICAgICAgIGxldCBjdHggPSBhcmdzLnBvcCgpO1xuICAgICAgICBpZiAodHlwZW9mIGN0eCAhPT0gXCJ1bmRlZmluZWRcIiAmJiAhKGN0eCBpbnN0YW5jZW9mIENvbnRleHQpKSB7XG4gICAgICAgICAgICBhcmdzLnB1c2goY3R4KTtcbiAgICAgICAgICAgIGN0eCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBvdmVycmlkZXMgPSBjdHhcbiAgICAgICAgICAgID8gT2JqZWN0LmFzc2lnbih7fSwgY3R4LnRvT3ZlcnJpZGVzKCksIG92ZXJyaWRlcylcbiAgICAgICAgICAgIDogb3ZlcnJpZGVzO1xuICAgICAgICBjb25zdCBmbGFncyA9IGF3YWl0IHRoaXMuZmxhZ3ModHlwZW9mIG9wZXJhdGlvbiA9PT0gXCJzdHJpbmdcIiA/IG9wZXJhdGlvbiA6IG9wZXJhdGlvbi5uYW1lLCBtb2RlbCwgb3ZlcnJpZGVzLCAuLi5bLi4uYXJncywgY3R4XS5maWx0ZXIoQm9vbGVhbikpO1xuICAgICAgICBpZiAoY3R4KSB7XG4gICAgICAgICAgICBpZiAoIShjdHggaW5zdGFuY2VvZiB0aGlzLkNvbnRleHQpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3Q3R4ID0gbmV3IHRoaXMuQ29udGV4dCgpLmFjY3VtdWxhdGUoe1xuICAgICAgICAgICAgICAgICAgICAuLi5jdHhbXCJjYWNoZVwiXSxcbiAgICAgICAgICAgICAgICAgICAgLi4uZmxhZ3MsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudENvbnRleHQ6IGN0eCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjdHguYWNjdW11bGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkQ29udGV4dHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLihjdHguZ2V0T3JVbmRlZmluZWQoXCJjaGlsZENvbnRleHRzXCIpIHx8IFtdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0N0eCxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3Q3R4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY3VycmVudE9wID0gY3R4LmdldE9yVW5kZWZpbmVkKFwib3BlcmF0aW9uXCIpO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3R4LmdldE9yVW5kZWZpbmVkKFwiYWZmZWN0ZWRUYWJsZXNcIik7XG4gICAgICAgICAgICBpZiAoIWN1cnJlbnRPcCB8fFxuICAgICAgICAgICAgICAgIGN1cnJlbnRPcCAhPT0gb3BlcmF0aW9uIHx8XG4gICAgICAgICAgICAgICAgKG1vZGVsICYmIG1vZGVsICE9PSBjdXJyZW50TW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3Q3R4ID0gbmV3IHRoaXMuQ29udGV4dCgpLmFjY3VtdWxhdGUoe1xuICAgICAgICAgICAgICAgICAgICAuLi5jdHhbXCJjYWNoZVwiXSxcbiAgICAgICAgICAgICAgICAgICAgLi4uZmxhZ3MsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudENvbnRleHQ6IGN0eCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjdHguYWNjdW11bGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkQ29udGV4dHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLihjdHguZ2V0T3JVbmRlZmluZWQoXCJjaGlsZENvbnRleHRzXCIpIHx8IFtdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0N0eCxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3Q3R4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGN0eC5hY2N1bXVsYXRlKGZsYWdzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IHRoaXMuQ29udGV4dCgpLmFjY3VtdWxhdGUoe1xuICAgICAgICAgICAgLi4uZmxhZ3MsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVjb2RlcyBhIFVpbnQ4QXJyYXkgdG8gYSBzdHJpbmdcbiAgICAgKiBAc3VtbWFyeSBDb252ZXJ0cyBiaW5hcnkgZGF0YSByZWNlaXZlZCBmcm9tIEZhYnJpYyB0byBhIHN0cmluZyB1c2luZyBVVEYtOCBlbmNvZGluZ1xuICAgICAqIEBwYXJhbSB7VWludDhBcnJheX0gZGF0YSAtIFRoZSBiaW5hcnkgZGF0YSB0byBkZWNvZGVcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBkZWNvZGVkIHN0cmluZ1xuICAgICAqL1xuICAgIGRlY29kZShkYXRhKSB7XG4gICAgICAgIHJldHVybiBGYWJyaWNDbGllbnRBZGFwdGVyLmRlY29kZXIuZGVjb2RlKGRhdGEpO1xuICAgIH1cbiAgICByZXBvc2l0b3J5KCkge1xuICAgICAgICByZXR1cm4gRmFicmljQ2xpZW50UmVwb3NpdG9yeTtcbiAgICB9XG4gICAgY3JlYXRlUHJlZml4KGNsYXp6LCBpZCwgbW9kZWwsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmNyZWF0ZVByZWZpeCk7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IHt9O1xuICAgICAgICByZWNvcmRbQ291Y2hEQktleXMuVEFCTEVdID0gdGFibGVOYW1lO1xuICAgICAgICBPYmplY3QuYXNzaWduKHJlY29yZCwgbW9kZWwpO1xuICAgICAgICByZXR1cm4gW2NsYXp6LCBpZCwgcmVjb3JkLCAuLi5jdHhBcmdzXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFByZXBhcmVzIG11bHRpcGxlIHJlY29yZHMgZm9yIGNyZWF0aW9uXG4gICAgICogQHN1bW1hcnkgQWRkcyBuZWNlc3NhcnkgQ291Y2hEQiBmaWVsZHMgdG8gbXVsdGlwbGUgcmVjb3JkcyBiZWZvcmUgY3JlYXRpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXXxudW1iZXJbXX0gaWRzIC0gVGhlIElEcyBvZiB0aGUgcmVjb3Jkc1xuICAgICAqIEBwYXJhbSBtb2RlbHMgLSBUaGUgbW9kZWxzIHRvIHByZXBhcmVcbiAgICAgKiBAcmV0dXJuIEEgdHVwbGUgY29udGFpbmluZyB0aGUgdGFibGVOYW1lLCBpZHMsIGFuZCBwcmVwYXJlZCByZWNvcmRzXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gSWYgaWRzIGFuZCBtb2RlbHMgYXJyYXlzIGhhdmUgZGlmZmVyZW50IGxlbmd0aHNcbiAgICAgKi9cbiAgICBjcmVhdGVBbGxQcmVmaXgoY2xhenosIGlkcywgbW9kZWxzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgIGlmIChpZHMubGVuZ3RoICE9PSBtb2RlbHMubGVuZ3RoKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJJZHMgYW5kIG1vZGVscyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCIpO1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuY3JlYXRlQWxsUHJlZml4KTtcbiAgICAgICAgY29uc3QgcmVjb3JkcyA9IGlkcy5tYXAoKGlkLCBjb3VudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVjb3JkID0ge307XG4gICAgICAgICAgICByZWNvcmRbQ291Y2hEQktleXMuVEFCTEVdID0gdGFibGVOYW1lO1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihyZWNvcmQsIG1vZGVsc1tjb3VudF0pO1xuICAgICAgICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBbY2xhenosIGlkcywgcmVjb3JkcywgLi4uY3R4QXJnc107XG4gICAgfVxuICAgIHVwZGF0ZUFsbFByZWZpeChjbGF6eiwgaWRzLCBtb2RlbHMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICAgICAgaWYgKGlkcy5sZW5ndGggIT09IG1vZGVscy5sZW5ndGgpXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIklkcyBhbmQgbW9kZWxzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIik7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy51cGRhdGVBbGxQcmVmaXgpO1xuICAgICAgICBjb25zdCByZWNvcmRzID0gaWRzLm1hcCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWNvcmQgPSB7fTtcbiAgICAgICAgICAgIHJlY29yZFtDb3VjaERCS2V5cy5UQUJMRV0gPSB0YWJsZU5hbWU7XG4gICAgICAgICAgICByZXR1cm4gcmVjb3JkO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFtjbGF6eiwgaWRzLCByZWNvcmRzLCAuLi5jdHhBcmdzXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgbXVsdGlwbGUgcmVjb3JkcyBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvblxuICAgICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byBjcmVhdGUgbXVsdGlwbGUgcmVjb3JkcyBpbiB0aGUgRmFicmljIGxlZGdlclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7c3RyaW5nW10gfCBudW1iZXJbXX0gaWRzIC0gQXJyYXkgb2YgcmVjb3JkIGlkZW50aWZpZXJzXG4gICAgICogQHBhcmFtIHtBcnJheTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gbW9kZWxzIC0gQXJyYXkgb2YgcmVjb3JkIGRhdGFcbiAgICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHRyYW5zaWVudCAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNyZWF0ZWQgcmVjb3Jkc1xuICAgICAqL1xuICAgIGFzeW5jIGNyZWF0ZUFsbChjbGF6eiwgaWRzLCBtb2RlbHMsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKGlkcy5sZW5ndGggIT09IG1vZGVscy5sZW5ndGgpXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIklkcyBhbmQgbW9kZWxzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIik7XG4gICAgICAgIC8vSEVSRSFcbiAgICAgICAgY29uc3QgY3R4QXJncyA9IFsuLi5hcmdzXTtcbiAgICAgICAgY29uc3QgdHJhbnNpZW50ID0gY3R4QXJncy5zaGlmdCgpO1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChjdHhBcmdzLCB0aGlzLmNyZWF0ZUFsbCk7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgIGxvZy5pbmZvKGBhZGRpbmcgJHtpZHMubGVuZ3RofSBlbnRyaWVzIHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgICAgICBsb2cudmVyYm9zZShgcGtzOiAke2lkc31gKTtcbiAgICAgICAgY29uc3QgaGFzVHJhbnNpZW50ID0gdHJhbnNpZW50ICYmIE9iamVjdC5rZXlzKHRyYW5zaWVudCkubGVuZ3RoID4gMDtcbiAgICAgICAgY29uc3QgbmVlZHNGdWxsUGF5bG9hZCA9IGhhc1RyYW5zaWVudCB8fCB0aGlzLnNob3VsZEZvcmNlR2F0ZXdheUh5ZHJhdGlvbihjdHgpO1xuICAgICAgICBjb25zdCBzZXJpYWxpemVkTW9kZWxzID0gbW9kZWxzLm1hcCgobSkgPT4gdGhpcy5zZXJpYWxpemVyLnNlcmlhbGl6ZShtLCBjbGF6ei5uYW1lKSk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuc3VibWl0VHJhbnNhY3Rpb24oY3R4LCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuQ1JFQVRFX0FMTCwgW0pTT04uc3RyaW5naWZ5KHNlcmlhbGl6ZWRNb2RlbHMpXSwgaGFzVHJhbnNpZW50ID8geyBbdGFibGVOYW1lXTogdHJhbnNpZW50IH0gOiB1bmRlZmluZWQsIHRoaXMuZ2V0RW5kb3JzaW5nT3JnYW5pemF0aW9ucyhjdHgpLCBjbGF6eik7XG4gICAgICAgIGxldCByZXM7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXMgPSBKU09OLnBhcnNlKHRoaXMuZGVjb2RlKHJlc3VsdCkpLm1hcCgocikgPT4gSlNPTi5wYXJzZShyKSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkUmVmcmVzaEFmdGVyV3JpdGUoY2xhenosIGN0eCwgbmVlZHNGdWxsUGF5bG9hZCwgcmVzWzBdW01vZGVsLnBrKGNsYXp6KV0gfHwgaWRzWzBdKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVhZEFsbChjbGF6eiwgZXh0cmFjdElkcyhjbGF6eiwgbW9kZWxzLm1hcCgobSwgaSkgPT4gTW9kZWwubWVyZ2UoT2JqZWN0LmFzc2lnbih7fSwgbSwgdHJhbnNpZW50Py5baV0gfHwge30pLCByZXNbaV0pKSwgaWRzKSwgY3R4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgbXVsdGlwbGUgcmVjb3JkcyBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvblxuICAgICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byByZWFkIG11bHRpcGxlIHJlY29yZHMgZnJvbSB0aGUgRmFicmljIGxlZGdlclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7c3RyaW5nW10gfCBudW1iZXJbXX0gaWRzIC0gQXJyYXkgb2YgcmVjb3JkIGlkZW50aWZpZXJzIHRvIHJlYWRcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJldHJpZXZlZCByZWNvcmRzXG4gICAgICovXG4gICAgYXN5bmMgcmVhZEFsbChjbGF6eiwgaWRzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVhZEFsbCk7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgIGxvZy5pbmZvKGByZWFkaW5nICR7aWRzLmxlbmd0aH0gZW50cmllcyB0byAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYHBrczogJHtpZHN9YCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXZhbHVhdGVUcmFuc2FjdGlvbihjdHgsIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5SRUFEX0FMTCwgW0pTT04uc3RyaW5naWZ5KGlkcyldLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY2xhenopO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5kZWNvZGUocmVzdWx0KSkubWFwKChyKSA9PiBKU09OLnBhcnNlKHIpKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBtdWx0aXBsZSByZWNvcmRzIGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uXG4gICAgICogQHN1bW1hcnkgU3VibWl0cyBhIHRyYW5zYWN0aW9uIHRvIHVwZGF0ZSBtdWx0aXBsZSByZWNvcmRzIGluIHRoZSBGYWJyaWMgbGVkZ2VyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXSB8IG51bWJlcltdfSBpZHMgLSBBcnJheSBvZiByZWNvcmQgaWRlbnRpZmllcnNcbiAgICAgKiBAcGFyYW0ge0FycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+fSBtb2RlbHMgLSBBcnJheSBvZiB1cGRhdGVkIHJlY29yZCBkYXRhXG4gICAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSB0cmFuc2llbnQgLSBUcmFuc2llbnQgZGF0YSBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxBcnJheTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB1cGRhdGVkIHJlY29yZHNcbiAgICAgKi9cbiAgICBhc3luYyB1cGRhdGVBbGwoY2xhenosIGlkcywgbW9kZWxzLCAuLi5hcmdzKSB7XG4gICAgICAgIGlmIChpZHMubGVuZ3RoICE9PSBtb2RlbHMubGVuZ3RoKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJJZHMgYW5kIG1vZGVscyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCIpO1xuICAgICAgICBjb25zdCBjdHhBcmdzID0gWy4uLmFyZ3NdO1xuICAgICAgICBjb25zdCB0cmFuc2llbnQgPSBjdHhBcmdzLnNoaWZ0KCk7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGN0eEFyZ3MsIHRoaXMudXBkYXRlQWxsKTtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICAgICAgbG9nLmluZm8oYHVwZGF0aW5nICR7aWRzLmxlbmd0aH0gZW50cmllcyB0byAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYHBrczogJHtpZHN9YCk7XG4gICAgICAgIGNvbnN0IGhhc1RyYW5zaWVudCA9IHRyYW5zaWVudCAmJiBPYmplY3Qua2V5cyh0cmFuc2llbnQpLmxlbmd0aCA+IDA7XG4gICAgICAgIGNvbnN0IG5lZWRzRnVsbFBheWxvYWQgPSBoYXNUcmFuc2llbnQgfHwgdGhpcy5zaG91bGRGb3JjZUdhdGV3YXlIeWRyYXRpb24oY3R4KTtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplZE1vZGVscyA9IG1vZGVscy5tYXAoKG0pID0+IHRoaXMuc2VyaWFsaXplci5zZXJpYWxpemUobSwgY2xhenoubmFtZSkpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnN1Ym1pdFRyYW5zYWN0aW9uKGN0eCwgQnVsa0NydWRPcGVyYXRpb25LZXlzLlVQREFURV9BTEwsIFtKU09OLnN0cmluZ2lmeShzZXJpYWxpemVkTW9kZWxzKV0sIGhhc1RyYW5zaWVudCA/IHsgW3RhYmxlTmFtZV06IHRyYW5zaWVudCB9IDogdW5kZWZpbmVkLCB0aGlzLmdldEVuZG9yc2luZ09yZ2FuaXphdGlvbnMoY3R4KSwgY2xhenopO1xuICAgICAgICBsZXQgcmVzO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmVzID0gSlNPTi5wYXJzZSh0aGlzLmRlY29kZShyZXN1bHQpKS5tYXAoKHIpID0+IEpTT04ucGFyc2UocikpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnNob3VsZFJlZnJlc2hBZnRlcldyaXRlKGNsYXp6LCBjdHgsIG5lZWRzRnVsbFBheWxvYWQsIGlkc1swXSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRBbGwoY2xhenosIGV4dHJhY3RJZHMoY2xhenosIG1vZGVscy5tYXAoKG0sIGkpID0+IE1vZGVsLm1lcmdlKE9iamVjdC5hc3NpZ24oe30sIG0sIHRyYW5zaWVudD8uW2ldIHx8IHt9KSwgcmVzW2ldKSksIGlkcyksIGN0eCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIERlbGV0ZXMgbXVsdGlwbGUgcmVjb3JkcyBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvblxuICAgICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byBkZWxldGUgbXVsdGlwbGUgcmVjb3JkcyBmcm9tIHRoZSBGYWJyaWMgbGVkZ2VyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQ+fSBpZHMgLSBBcnJheSBvZiByZWNvcmQgaWRlbnRpZmllcnMgdG8gZGVsZXRlXG4gICAgICogQHBhcmFtIHtTZXJpYWxpemVyPGFueT59IHNlcmlhbGl6ZXIgLSBTZXJpYWxpemVyIGZvciB0aGUgbW9kZWwgZGF0YVxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8QXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgZGVsZXRlZCByZWNvcmRzXG4gICAgICovXG4gICAgYXN5bmMgZGVsZXRlQWxsKGNsYXp6LCBpZHMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eCwgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5kZWxldGVBbGwpO1xuICAgICAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgICAgICBjb25zdCBuZWVkc0Z1bGxQYXlsb2FkID0gTW9kZWwuaXNUcmFuc2llbnQoY2xhenopIHx8IHRoaXMuc2hvdWxkRm9yY2VHYXRld2F5SHlkcmF0aW9uKGN0eCk7XG4gICAgICAgIGxldCByZXN1bHQ7XG4gICAgICAgIGNvbnN0IHNob3VsZEh5ZHJhdGUgPSB0aGlzLnNob3VsZFJlZnJlc2hBZnRlcldyaXRlKGNsYXp6LCBjdHgsIG5lZWRzRnVsbFBheWxvYWQsIGlkc1swXSk7XG4gICAgICAgIGlmIChzaG91bGRIeWRyYXRlKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBhd2FpdCB0aGlzLnJlYWRBbGwoY2xhenosIGlkcywgLi4uY3R4QXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgbG9nLmluZm8oYGRlbGV0aW5nICR7aWRzLmxlbmd0aH0gZW50cmllcyB0byAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYHBrczogJHtpZHN9YCk7XG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuc3VibWl0VHJhbnNhY3Rpb24oY3R4LCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuREVMRVRFX0FMTCwgW0pTT04uc3RyaW5naWZ5KGlkcyldLCB1bmRlZmluZWQsIHRoaXMuZ2V0RW5kb3JzaW5nT3JnYW5pemF0aW9ucyhjdHgpLCBjbGF6eik7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gc2hvdWxkSHlkcmF0ZVxuICAgICAgICAgICAgICAgID8gcmVzdWx0XG4gICAgICAgICAgICAgICAgOiBKU09OLnBhcnNlKHRoaXMuZGVjb2RlKHJlcykpLm1hcCgocikgPT4gSlNPTi5wYXJzZShyKSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFByZXBhcmVzIGEgbW9kZWwgZm9yIHBlcnNpc3RlbmNlXG4gICAgICogQHN1bW1hcnkgQ29udmVydHMgYSBtb2RlbCBpbnN0YW5jZSBpbnRvIGEgZm9ybWF0IHN1aXRhYmxlIGZvciBkYXRhYmFzZSBzdG9yYWdlLFxuICAgICAqIGhhbmRsaW5nIGNvbHVtbiBtYXBwaW5nIGFuZCBzZXBhcmF0aW5nIHRyYW5zaWVudCBwcm9wZXJ0aWVzXG4gICAgICogQHRlbXBsYXRlIE0gLSBUaGUgbW9kZWwgdHlwZVxuICAgICAqIEBwYXJhbSB7TX0gbW9kZWwgLSBUaGUgbW9kZWwgaW5zdGFuY2UgdG8gcHJlcGFyZVxuICAgICAqIEBwYXJhbSBwayAtIFRoZSBwcmltYXJ5IGtleSBwcm9wZXJ0eSBuYW1lXG4gICAgICogQHJldHVybiBUaGUgcHJlcGFyZWQgZGF0YVxuICAgICAqL1xuICAgIHByZXBhcmUobW9kZWwsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5wcmVwYXJlKTtcbiAgICAgICAgY29uc3Qgc3BsaXQgPSBNb2RlbC5zZWdyZWdhdGUobW9kZWwpO1xuICAgICAgICBpZiAobW9kZWxbUGVyc2lzdGVuY2VLZXlzLk1FVEFEQVRBXSkge1xuICAgICAgICAgICAgbG9nLnNpbGx5KGBQYXNzaW5nIGFsb25nIHBlcnNpc3RlbmNlIG1ldGFkYXRhIGZvciAke21vZGVsW1BlcnNpc3RlbmNlS2V5cy5NRVRBREFUQV19YCk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc3BsaXQubW9kZWwsIFBlcnNpc3RlbmNlS2V5cy5NRVRBREFUQSwge1xuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IG1vZGVsW1BlcnNpc3RlbmNlS2V5cy5NRVRBREFUQV0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtaXJyb3JNZXRhID0gTW9kZWwubWlycm9yZWRBdChtb2RlbCk7XG4gICAgICAgIGlmIChtaXJyb3JNZXRhKSB7XG4gICAgICAgICAgICBjb25zdCBtaXJyb3JNc3AgPSBtaXJyb3JNZXRhLm1zcElkO1xuICAgICAgICAgICAgaWYgKCFtaXJyb3JNc3ApXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE5vIG1pcnJvciBNU1AgY291bGQgYmUgZm91bmRgKTtcbiAgICAgICAgICAgIGxldCBtc3BzID0gdGhpcy5nZXRFbmRvcnNpbmdPcmdhbml6YXRpb25zKGN0eCkgfHwgW107XG4gICAgICAgICAgICBtc3BzID0gQXJyYXkuaXNBcnJheShtc3BzKSA/IG1zcHMgOiBbbXNwc107XG4gICAgICAgICAgICBjb25zdCBtZXJnZWQgPSBbLi4ubmV3IFNldChbLi4ubXNwcywgbWlycm9yTXNwXSldO1xuICAgICAgICAgICAgY3R4LmFjY3VtdWxhdGUoe1xuICAgICAgICAgICAgICAgIGVuZG9yc2luZ09yZ3M6IG1lcmdlZCxcbiAgICAgICAgICAgICAgICBlbmRvcnNpbmdPcmdhbml6YXRpb25zOiBtZXJnZWQsXG4gICAgICAgICAgICAgICAgbGVnYWN5OiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlY29yZDogc3BsaXQubW9kZWwsXG4gICAgICAgICAgICBtb2RlbDogc3BsaXQubW9kZWwsXG4gICAgICAgICAgICBpZDogbW9kZWxbTW9kZWwucGsobW9kZWwuY29uc3RydWN0b3IpXSxcbiAgICAgICAgICAgIHRyYW5zaWVudDogc3BsaXQudHJhbnNpZW50LFxuICAgICAgICAgICAgcHJpdmF0ZXM6IHNwbGl0LnByaXZhdGVzLFxuICAgICAgICAgICAgc2hhcmVkOiBzcGxpdC5zaGFyZWQsXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldmVydChvYmosIGNsYXp6LCBpZCwgdHJhbnNpZW50LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmV2ZXJ0KTtcbiAgICAgICAgaWYgKHRyYW5zaWVudCAmJlxuICAgICAgICAgICAgdGhpcy5zaG91bGRSZWJ1aWxkV2l0aFRyYW5zaWVudChjdHgsIGN0eC5nZXRPclVuZGVmaW5lZChcIm9wZXJhdGlvblwiKSkpIHtcbiAgICAgICAgICAgIGxvZy52ZXJib3NlKGByZS1hZGRpbmcgdHJhbnNpZW50IHByb3BlcnRpZXM6ICR7T2JqZWN0LmtleXModHJhbnNpZW50KS5qb2luKFwiLCBcIil9YCk7XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyh0cmFuc2llbnQpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoWywgdl0pID0+IHR5cGVvZiB2ICE9PSBcInVuZGVmaW5lZFwiKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChba2V5LCB2YWxdKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGtleSBpbiBvYmogJiYgb2JqW2tleV0gIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICAgICAgbG9nLndhcm4oYG92ZXJ3cml0aW5nIGV4aXN0aW5nICR7a2V5fS4gaWYgdGhpcyBpcyBub3QgYSBkZWZhdWx0IHZhbHVlLCB0aGlzIG1heSBwb3NlIGEgcHJvYmxlbWApO1xuICAgICAgICAgICAgICAgIG9ialtrZXldID0gdmFsO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IGNsYXp6KG9iaik7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIHNob3VsZFJlYnVpbGRXaXRoVHJhbnNpZW50KGN0eCwgb3BlcmF0aW9uKSB7XG4gICAgICAgIGlmICghY3R4KVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAoY3R4LmdldE9yVW5kZWZpbmVkKFwicmVidWlsZFdpdGhUcmFuc2llbnRcIikpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgY29uc3QgY2hpbGRSZWJ1aWxkID0gdHlwZW9mIGN0eC5nZXRGcm9tQ2hpbGRyZW4gPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgPyBjdHguZ2V0RnJvbUNoaWxkcmVuKFwicmVidWlsZFdpdGhUcmFuc2llbnRcIilcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBpZiAoY2hpbGRSZWJ1aWxkKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkT3AgPSB0aGlzLnJlc29sdmVPcGVyYXRpb24oY3R4LCBvcGVyYXRpb24pO1xuICAgICAgICBpZiAoIXJlc29sdmVkT3ApXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IG9wID0gcmVzb2x2ZWRPcC50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiAob3AuaW5jbHVkZXMoXCJyZWFkXCIpIHx8XG4gICAgICAgICAgICBvcC5pbmNsdWRlcyhcImZpbmRcIikgfHxcbiAgICAgICAgICAgIG9wLmluY2x1ZGVzKFwicXVlcnlcIikgfHxcbiAgICAgICAgICAgIG9wLmluY2x1ZGVzKFwic3RhdGVtZW50XCIpIHx8XG4gICAgICAgICAgICBvcC5pbmNsdWRlcyhcInBhZ2VcIikpO1xuICAgIH1cbiAgICByZXNvbHZlT3BlcmF0aW9uKGN0eCwgb3BlcmF0aW9uKSB7XG4gICAgICAgIGlmIChvcGVyYXRpb24pXG4gICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9uO1xuICAgICAgICBpZiAodHlwZW9mIGN0eC5nZXRGcm9tQ2hpbGRyZW4gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIGN0eC5nZXRGcm9tQ2hpbGRyZW4oXCJvcGVyYXRpb25cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgc2hvdWxkUmVmcmVzaEFmdGVyV3JpdGUoY2xhenosIGN0eCwgaGFzVHJhbnNpZW50LCBpZCkge1xuICAgICAgICBpZiAoIWhhc1RyYW5zaWVudClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgY29uc3QgcGsgPSBNb2RlbC5wayhjbGF6eik7XG4gICAgICAgIGNvbnN0IGNvbXBvc2VkID0gTW9kZWwuY29tcG9zZWQoY2xhenosIHBrKTtcbiAgICAgICAgY29uc3QgZ2VuZXJhdGVkID0gTW9kZWwuZ2VuZXJhdGVkKGNsYXp6LCBwayk7XG4gICAgICAgIGNvbnN0IGhhc0lkID0gaWQgIT09IHVuZGVmaW5lZCAmJiBpZCAhPT0gbnVsbDtcbiAgICAgICAgaWYgKCFoYXNJZCAmJiBjb21wb3NlZClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBpZiAoIWhhc0lkICYmIGdlbmVyYXRlZCkge1xuICAgICAgICAgICAgY3R4LmxvZ2dlci53YXJuKGBDYW5ub3QgcmVmcmVzaCByZWNvcmQgd2l0aCBwcml2YXRlIGdlbmVyYXRlZCBwcmltYXJ5IGtleWApO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYXNJZDtcbiAgICB9XG4gICAgaW5qZWN0VHJhbnNpZW50T3ZlcnJpZGVzKHRyYW5zaWVudERhdGEsIGN0eCkge1xuICAgICAgICBjb25zdCBoYXNUcmFuc2llbnREYXRhID0gdGhpcy5oYXNNZWFuaW5nZnVsVHJhbnNpZW50RGF0YSh0cmFuc2llbnREYXRhKTtcbiAgICAgICAgY29uc3Qgc2hvdWxkSW5qZWN0ID0gISFjdHguZ2V0T3JVbmRlZmluZWQoXCJhbGxvd0NvbnRleHRUcmFuc2llbnRNYXBcIik7XG4gICAgICAgIGlmICghaGFzVHJhbnNpZW50RGF0YSAmJiAhc2hvdWxkSW5qZWN0KVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gY3R4LnRvT3ZlcnJpZGVzKCk7XG4gICAgICAgIGNvbnN0IHBheWxvYWQgPSBoYXNUcmFuc2llbnREYXRhID8gT2JqZWN0LmFzc2lnbih7fSwgdHJhbnNpZW50RGF0YSkgOiB7fTtcbiAgICAgICAgaWYgKHNob3VsZEluamVjdCAmJiBPYmplY3Qua2V5cyhvdmVycmlkZXMpLmxlbmd0aCkge1xuICAgICAgICAgICAgcGF5bG9hZFtGYWJyaWNNb2RlbEtleXMuT1ZFUlJJREVTXSA9IG92ZXJyaWRlcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMocGF5bG9hZCkubGVuZ3RoID8gcGF5bG9hZCA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaGFzTWVhbmluZ2Z1bFRyYW5zaWVudERhdGEodmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSlcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5zb21lKChpdGVtKSA9PiB0aGlzLmhhc01lYW5pbmdmdWxUcmFuc2llbnREYXRhKGl0ZW0pKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJvYmplY3RcIilcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXModmFsdWUpO1xuICAgICAgICBpZiAoIWVudHJpZXMubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICByZXR1cm4gZW50cmllcy5zb21lKChbLCBlbnRyeV0pID0+IHRoaXMuaGFzTWVhbmluZ2Z1bFRyYW5zaWVudERhdGEoZW50cnkpKTtcbiAgICB9XG4gICAgZ2V0RW5kb3JzaW5nT3JnYW5pemF0aW9ucyhjdHgpIHtcbiAgICAgICAgY29uc3QgZGlyZWN0ID0gY3R4LmdldE9yVW5kZWZpbmVkKFwiZW5kb3JzaW5nT3Jnc1wiKSB8fFxuICAgICAgICAgICAgY3R4LmdldE9yVW5kZWZpbmVkKFwiZW5kb3JzaW5nT3Jnc1wiKTtcbiAgICAgICAgaWYgKGRpcmVjdCAmJiBkaXJlY3QubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuIGRpcmVjdDtcbiAgICAgICAgcmV0dXJuIChjdHguZ2V0RnJvbUNoaWxkcmVuKFwiZW5kb3JzaW5nT3Jnc1wiKSB8fFxuICAgICAgICAgICAgY3R4LmdldEZyb21DaGlsZHJlbihcImVuZG9yc2luZ09yZ3NcIikpO1xuICAgIH1cbiAgICBzaG91bGRGb3JjZUdhdGV3YXlIeWRyYXRpb24oXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGN0eCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLmNvbmZpZy5hbGxvd0dhdGV3YXlPdmVycmlkZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBzaW5nbGUgcmVjb3JkXG4gICAgICogQHN1bW1hcnkgU3VibWl0cyBhIHRyYW5zYWN0aW9uIHRvIGNyZWF0ZSBhIHJlY29yZCBpbiB0aGUgRmFicmljIGxlZGdlclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBpZCAtIFRoZSByZWNvcmQgaWRlbnRpZmllclxuICAgICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gbW9kZWwgLSBUaGUgcmVjb3JkIGRhdGFcbiAgICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHRyYW5zaWVudCAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY3JlYXRlZCByZWNvcmRcbiAgICAgKi9cbiAgICBhc3luYyBjcmVhdGUoY2xhenosIGlkLCBtb2RlbCwgdHJhbnNpZW50ID0ge30sIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgY3R4QXJncyA9IFsuLi5hcmdzXTtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoY3R4QXJncywgdGhpcy5jcmVhdGUpO1xuICAgICAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgICAgICBsb2cudmVyYm9zZShgYWRkaW5nIGVudHJ5IHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgICAgICBsb2cuZGVidWcoYHBrOiAke2lkfWApO1xuICAgICAgICBjb25zdCBoYXNUcmFuc2llbnQgPSB0cmFuc2llbnQgJiYgT2JqZWN0LmtleXModHJhbnNpZW50KS5sZW5ndGggPiAwO1xuICAgICAgICBjb25zdCBuZWVkc0Z1bGxQYXlsb2FkID0gaGFzVHJhbnNpZW50IHx8IHRoaXMuc2hvdWxkRm9yY2VHYXRld2F5SHlkcmF0aW9uKGN0eCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuc3VibWl0VHJhbnNhY3Rpb24oY3R4LCBPcGVyYXRpb25LZXlzLkNSRUFURSwgW3RoaXMuc2VyaWFsaXplci5zZXJpYWxpemUobW9kZWwsIGNsYXp6Lm5hbWUpXSwgaGFzVHJhbnNpZW50ID8geyBbdGFibGVOYW1lXTogdHJhbnNpZW50IH0gOiB1bmRlZmluZWQsIHRoaXMuZ2V0RW5kb3JzaW5nT3JnYW5pemF0aW9ucyhjdHgpLCBjbGF6eik7XG4gICAgICAgIGNvbnN0IGRlc2VyaWFsaXplZCA9IHRoaXMuc2VyaWFsaXplci5kZXNlcmlhbGl6ZSh0aGlzLmRlY29kZShyZXN1bHQpKTtcbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkUmVmcmVzaEFmdGVyV3JpdGUoY2xhenosIGN0eCwgbmVlZHNGdWxsUGF5bG9hZCwgaWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkKGNsYXp6LCBleHRyYWN0SWRzKGNsYXp6LCBNb2RlbC5tZXJnZShPYmplY3QuYXNzaWduKHt9LCBtb2RlbCwgdHJhbnNpZW50IHx8IHt9KSwgZGVzZXJpYWxpemVkLCBjbGF6eiksIGlkKSwgY3R4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVkO1xuICAgIH1cbiAgICBhc3luYyBoZWFsdGhjaGVjayhjbGF6eiwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmhlYWx0aGNoZWNrKTtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYHJlYWRpbmcgZW50cnkgZnJvbSAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ldmFsdWF0ZVRyYW5zYWN0aW9uKGN0eCwgXCJoZWFsdGhjaGVja1wiLCBbXSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNsYXp6KTtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5kZWNvZGUocmVzdWx0KSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWFkcyBhIHNpbmdsZSByZWNvcmRcbiAgICAgKiBAc3VtbWFyeSBFdmFsdWF0ZXMgYSB0cmFuc2FjdGlvbiB0byByZWFkIGEgcmVjb3JkIGZyb20gdGhlIEZhYnJpYyBsZWRnZXJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gaWQgLSBUaGUgcmVjb3JkIGlkZW50aWZpZXJcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgcmV0cmlldmVkIHJlY29yZFxuICAgICAqL1xuICAgIGFzeW5jIHJlYWQoY2xhenosIGlkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVhZCk7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgIGxvZy52ZXJib3NlKGByZWFkaW5nIGVudHJ5IGZyb20gJHt0YWJsZU5hbWV9IHRhYmxlYCk7XG4gICAgICAgIGxvZy5kZWJ1ZyhgcGs6ICR7aWR9YCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXZhbHVhdGVUcmFuc2FjdGlvbihjdHgsIE9wZXJhdGlvbktleXMuUkVBRCwgW2lkLnRvU3RyaW5nKCldLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY2xhenopO1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHRoaXMuZGVjb2RlKHJlc3VsdCkpO1xuICAgIH1cbiAgICB1cGRhdGVQcmVmaXgoY2xhenosIGlkLCBtb2RlbCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlUHJlZml4KTtcbiAgICAgICAgY29uc3QgcmVjb3JkID0ge307XG4gICAgICAgIHJlY29yZFtDb3VjaERCS2V5cy5UQUJMRV0gPSB0YWJsZU5hbWU7XG4gICAgICAgIC8vIHJlY29yZFtDb3VjaERCS2V5cy5JRF0gPSB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCk7XG4gICAgICAgIE9iamVjdC5hc3NpZ24ocmVjb3JkLCBtb2RlbCk7XG4gICAgICAgIHJldHVybiBbY2xhenosIGlkLCByZWNvcmQsIC4uLmN0eEFyZ3NdO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBhIHNpbmdsZSByZWNvcmRcbiAgICAgKiBAc3VtbWFyeSBTdWJtaXRzIGEgdHJhbnNhY3Rpb24gdG8gdXBkYXRlIGEgcmVjb3JkIGluIHRoZSBGYWJyaWMgbGVkZ2VyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHJlY29yZCBpZGVudGlmaWVyXG4gICAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBtb2RlbCAtIFRoZSB1cGRhdGVkIHJlY29yZCBkYXRhXG4gICAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSB0cmFuc2llbnQgLSBUcmFuc2llbnQgZGF0YSBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHVwZGF0ZWQgcmVjb3JkXG4gICAgICovXG4gICAgYXN5bmMgdXBkYXRlKGNsYXp6LCBpZCwgbW9kZWwsIHRyYW5zaWVudCA9IHt9LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IGN0eEFyZ3MgPSBbLi4uYXJnc107XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGN0eEFyZ3MsIHRoaXMudXBkYXRlKTtcbiAgICAgICAgbG9nLmluZm8oYENMSUVOVCBVUERBVEUgY2xhc3MgOiAke3R5cGVvZiBjbGF6en1gKTtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYHVwZGF0aW5nIGVudHJ5IHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgICAgICBsb2cuZGVidWcoYHBrOiAke2lkfWApO1xuICAgICAgICBjb25zdCBoYXNUcmFuc2llbnQgPSB0cmFuc2llbnQgJiYgT2JqZWN0LmtleXModHJhbnNpZW50KS5sZW5ndGggPiAwO1xuICAgICAgICBjb25zdCBuZWVkc0Z1bGxQYXlsb2FkID0gaGFzVHJhbnNpZW50IHx8IHRoaXMuc2hvdWxkRm9yY2VHYXRld2F5SHlkcmF0aW9uKGN0eCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuc3VibWl0VHJhbnNhY3Rpb24oY3R4LCBPcGVyYXRpb25LZXlzLlVQREFURSwgW3RoaXMuc2VyaWFsaXplci5zZXJpYWxpemUobW9kZWwsIGNsYXp6Lm5hbWUpXSwgaGFzVHJhbnNpZW50ID8geyBbdGFibGVOYW1lXTogdHJhbnNpZW50IH0gOiB1bmRlZmluZWQsIHRoaXMuZ2V0RW5kb3JzaW5nT3JnYW5pemF0aW9ucyhjdHgpLCBjbGF6eik7XG4gICAgICAgIGNvbnN0IGRlc2VyaWFsaXplZCA9IHRoaXMuc2VyaWFsaXplci5kZXNlcmlhbGl6ZSh0aGlzLmRlY29kZShyZXN1bHQpKTtcbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkUmVmcmVzaEFmdGVyV3JpdGUoY2xhenosIGN0eCwgbmVlZHNGdWxsUGF5bG9hZCwgaWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkKGNsYXp6LCBleHRyYWN0SWRzKGNsYXp6LCBNb2RlbC5tZXJnZShPYmplY3QuYXNzaWduKHt9LCBtb2RlbCwgdHJhbnNpZW50IHx8IHt9KSwgZGVzZXJpYWxpemVkLCBjbGF6eiksIGlkKSwgY3R4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVkO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBhIHNpbmdsZSByZWNvcmRcbiAgICAgKiBAc3VtbWFyeSBTdWJtaXRzIGEgdHJhbnNhY3Rpb24gdG8gZGVsZXRlIGEgcmVjb3JkIGZyb20gdGhlIEZhYnJpYyBsZWRnZXJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gaWQgLSBUaGUgcmVjb3JkIGlkZW50aWZpZXIgdG8gZGVsZXRlXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGRlbGV0ZWQgcmVjb3JkXG4gICAgICovXG4gICAgYXN5bmMgZGVsZXRlKGNsYXp6LCBpZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmRlbGV0ZSk7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgIGNvbnN0IG5lZWRzRnVsbFBheWxvYWQgPSBNb2RlbC5pc1RyYW5zaWVudChjbGF6eikgfHwgdGhpcy5zaG91bGRGb3JjZUdhdGV3YXlIeWRyYXRpb24oY3R4KTtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgY29uc3Qgc2hvdWxkSHlkcmF0ZSA9IHRoaXMuc2hvdWxkUmVmcmVzaEFmdGVyV3JpdGUoY2xhenosIGN0eCwgbmVlZHNGdWxsUGF5bG9hZCwgaWQpO1xuICAgICAgICBpZiAoc2hvdWxkSHlkcmF0ZSkge1xuICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgdGhpcy5yZWFkKGNsYXp6LCBpZCwgY3R4KTtcbiAgICAgICAgfVxuICAgICAgICBsb2cudmVyYm9zZShgZGVsZXRpbmcgZW50cnkgZnJvbSAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICAgICAgbG9nLmRlYnVnKGBwazogJHtpZH1gKTtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihjdHgsIE9wZXJhdGlvbktleXMuREVMRVRFLCBbaWQudG9TdHJpbmcoKV0sIHVuZGVmaW5lZCwgdGhpcy5nZXRFbmRvcnNpbmdPcmdhbml6YXRpb25zKGN0eCksIGNsYXp6KTtcbiAgICAgICAgcmV0dXJuIHNob3VsZEh5ZHJhdGVcbiAgICAgICAgICAgID8gcmVzdWx0XG4gICAgICAgICAgICA6IHRoaXMuc2VyaWFsaXplci5kZXNlcmlhbGl6ZSh0aGlzLmRlY29kZShyZXMpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgcmF3IHF1ZXJ5IGFnYWluc3QgdGhlIEZhYnJpYyBsZWRnZXJcbiAgICAgKiBAc3VtbWFyeSBFdmFsdWF0ZXMgYSB0cmFuc2FjdGlvbiB0byBwZXJmb3JtIGEgcXVlcnkgdXNpbmcgTWFuZ28gUXVlcnkgc3ludGF4XG4gICAgICogQHRlbXBsYXRlIFYgLSBUaGUgcmV0dXJuIHR5cGVcbiAgICAgKiBAcGFyYW0ge01hbmdvUXVlcnl9IHJhd0lucHV0IC0gVGhlIE1hbmdvIFF1ZXJ5IHRvIGV4ZWN1dGVcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHByb2Nlc3MgLSBXaGV0aGVyIHRvIHByb2Nlc3MgdGhlIHJlc3VsdFxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8Vj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBxdWVyeSByZXN1bHRcbiAgICAgKiBAbWVybWFpZFxuICAgICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgICAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gICAgICogICBwYXJ0aWNpcGFudCBGYWJyaWNBZGFwdGVyXG4gICAgICogICBwYXJ0aWNpcGFudCBDb250cmFjdFxuICAgICAqICAgcGFydGljaXBhbnQgQ2hhaW5jb2RlXG4gICAgICpcbiAgICAgKiAgIENsaWVudC0+PkZhYnJpY0FkYXB0ZXI6IHJhdyhyYXdJbnB1dCwgcHJvY2VzcylcbiAgICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBKU09OLnN0cmluZ2lmeShyYXdJbnB1dClcbiAgICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBldmFsdWF0ZVRyYW5zYWN0aW9uKFwicXVlcnlcIiwgW2lucHV0XSlcbiAgICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5Db250cmFjdDogZXZhbHVhdGUoXCJxdWVyeVwiLCBwcm9wb3NhbE9wdGlvbnMpXG4gICAgICogICBDb250cmFjdC0+PkNoYWluY29kZTogaW52b2tlXG4gICAgICogICBDaGFpbmNvZGUtLT4+Q29udHJhY3Q6IHJlc3BvbnNlXG4gICAgICogICBDb250cmFjdC0tPj5GYWJyaWNBZGFwdGVyOiByZXN1bHRcbiAgICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBKU09OLnBhcnNlKGRlY29kZShyZXN1bHQpKVxuICAgICAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IFByb2Nlc3MgcmVzdWx0IGJhc2VkIG9uIHR5cGVcbiAgICAgKiAgIEZhYnJpY0FkYXB0ZXItLT4+Q2xpZW50OiBwcm9jZXNzZWQgcmVzdWx0XG4gICAgICovXG4gICAgYXN5bmMgcmF3KHJhd0lucHV0LCBkb2NzT25seSA9IHRydWUsIGNsYXp6LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmF3KTtcbiAgICAgICAgbG9nLmluZm8oYFBlcmZvcm1pbmcgcmF3IHN0YXRlbWVudCBvbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZShjbGF6eil9YCk7XG4gICAgICAgIGxldCB0cmFuc2FjdGlvblJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRyYW5zYWN0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy5ldmFsdWF0ZVRyYW5zYWN0aW9uKGN0eCwgXCJyYXdcIiwgW0pTT04uc3RyaW5naWZ5KHJhd0lucHV0KSwgZG9jc09ubHldLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY2xhenopO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UodGhpcy5kZWNvZGUodHJhbnNhY3Rpb25SZXN1bHQpKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihgRmFpbGVkIHRvIHByb2Nlc3MgcmVzdWx0OiAke2V9YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyc2VSZWNvcmQgPSAocmVjb3JkKSA9PiB7XG4gICAgICAgICAgICBpZiAoTW9kZWwuaXNNb2RlbChyZWNvcmQpKVxuICAgICAgICAgICAgICAgIHJldHVybiBNb2RlbC5idWlsZChyZWNvcmQpO1xuICAgICAgICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgICAgICAgICAgaWYgKCFyZXN1bHQubGVuZ3RoKVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjb25zdCBlbCA9IHJlc3VsdFswXTtcbiAgICAgICAgICAgIGlmIChNb2RlbC5pc01vZGVsKGVsKSlcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZmlyc3Qgb25lIGlzIGEgbW9kZWwsIGFsbCBhcmUgbW9kZWxzXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5tYXAoKGVsKSA9PiBNb2RlbC5idWlsZChlbCkpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyc2VSZWNvcmQocmVzdWx0KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgQ291Y2hEQiB2aWV3IHF1ZXJ5IGFnYWluc3QgdGhlIEZhYnJpYyBjaGFpbmNvZGVcbiAgICAgKiBAc3VtbWFyeSBFdmFsdWF0ZXMgYSB0cmFuc2FjdGlvbiB0byBxdWVyeSBhIGRlc2lnbiBkb2N1bWVudCB2aWV3XG4gICAgICogQHRlbXBsYXRlIFIgLSBUaGUgdmlldyByZXNwb25zZSB0eXBlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGRkb2MgLSBEZXNpZ24gZG9jdW1lbnQgbmFtZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2aWV3TmFtZSAtIFZpZXcgbmFtZVxuICAgICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gb3B0aW9ucyAtIFZpZXcgcXVlcnkgb3B0aW9uc1xuICAgICAqIEBwYXJhbSB7Li4uQ29udGV4dHVhbEFyZ3M8RmFicmljQ2xpZW50Q29udGV4dD59IGFyZ3MgLSBPcHRpb25hbCBjb250ZXh0dWFsIGFyZ3VtZW50c1xuICAgICAqIEByZXR1cm4ge1Byb21pc2U8Vmlld1Jlc3BvbnNlPFI+Pn0gVGhlIHZpZXcgcmVzcG9uc2VcbiAgICAgKi9cbiAgICBhc3luYyB2aWV3KGRkb2MsIHZpZXdOYW1lLCBvcHRpb25zLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudmlldyk7XG4gICAgICAgIGxvZy5pbmZvKGBRdWVyeWluZyB2aWV3ICR7ZGRvY30vJHt2aWV3TmFtZX1gKTtcbiAgICAgICAgbGV0IHRyYW5zYWN0aW9uUmVzdWx0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdHJhbnNhY3Rpb25SZXN1bHQgPSBhd2FpdCB0aGlzLmV2YWx1YXRlVHJhbnNhY3Rpb24oY3R4LCBcInZpZXdcIiwgW2Rkb2MsIHZpZXdOYW1lLCBKU09OLnN0cmluZ2lmeShvcHRpb25zKV0sIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UodGhpcy5kZWNvZGUodHJhbnNhY3Rpb25SZXN1bHQpKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihgRmFpbGVkIHRvIHByb2Nlc3MgdmlldyByZXN1bHQ6ICR7ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0cyBvciBjcmVhdGVzIGEgZ1JQQyBjbGllbnQgZm9yIHRoZSBGYWJyaWMgcGVlclxuICAgICAqIEBzdW1tYXJ5IFJldHVybnMgYSBjYWNoZWQgY2xpZW50IG9yIGNyZWF0ZXMgYSBuZXcgb25lIGlmIG5vbmUgZXhpc3RzXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxDbGllbnQ+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgZ1JQQyBjbGllbnRcbiAgICAgKi9cbiAgICBnZXRDbGllbnQoKSB7XG4gICAgICAgIGlmICghdGhpcy5fY2xpZW50KVxuICAgICAgICAgICAgdGhpcy5fY2xpZW50ID0gRmFicmljQ2xpZW50QWRhcHRlci5nZXRDbGllbnQodGhpcy5jb25maWcpO1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xpZW50O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0cyBhIEdhdGV3YXkgaW5zdGFuY2UgZm9yIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgICAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBuZXcgR2F0ZXdheSBpbnN0YW5jZSB1c2luZyB0aGUgY3VycmVudCBjbGllbnRcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPEdhdGV3YXk+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgR2F0ZXdheSBpbnN0YW5jZVxuICAgICAqL1xuICAgIGFzeW5jIEdhdGV3YXkoY3R4KSB7XG4gICAgICAgIHJldHVybiBGYWJyaWNDbGllbnRBZGFwdGVyLmdldEdhdGV3YXkoY3R4LCB0aGlzLmNvbmZpZywgdGhpcy5jbGllbnQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0cyBhIENvbnRyYWN0IGluc3RhbmNlIGZvciB0aGUgRmFicmljIGNoYWluY29kZVxuICAgICAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBuZXcgQ29udHJhY3QgaW5zdGFuY2UgdXNpbmcgdGhlIGN1cnJlbnQgR2F0ZXdheVxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8Q29udHJha3Q+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgQ29udHJhY3QgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBhc3luYyBDb250cmFjdChjdHgsIGNsYXp6T3JDb250cmFjdE5hbWUpIHtcbiAgICAgICAgcmV0dXJuIEZhYnJpY0NsaWVudEFkYXB0ZXIuZ2V0Q29udHJhY3QoYXdhaXQgdGhpcy5HYXRld2F5KGN0eCksIHRoaXMuY29uZmlnLCBjbGF6ek9yQ29udHJhY3ROYW1lLCBjdHgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgYSB0cmFuc2FjdGlvbiBvbiB0aGUgRmFicmljIG5ldHdvcmtcbiAgICAgKiBAc3VtbWFyeSBTdWJtaXRzIG9yIGV2YWx1YXRlcyBhIHRyYW5zYWN0aW9uIG9uIHRoZSBGYWJyaWMgY2hhaW5jb2RlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGFwaSAtIFRoZSBjaGFpbmNvZGUgZnVuY3Rpb24gdG8gY2FsbFxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gc3VibWl0IC0gV2hldGhlciB0byBzdWJtaXQgKHRydWUpIG9yIGV2YWx1YXRlIChmYWxzZSkgdGhlIHRyYW5zYWN0aW9uXG4gICAgICogQHBhcmFtIHthbnlbXX0gW2FyZ3NdIC0gQXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGNoYWluY29kZSBmdW5jdGlvblxuICAgICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gW3RyYW5zaWVudERhdGFdIC0gVHJhbnNpZW50IGRhdGEgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gW2VuZG9yc2luZ09yZ2FuaXphdGlvbnNdIC0gT3JnYW5pemF0aW9ucyB0aGF0IG11c3QgZW5kb3JzZSB0aGUgdHJhbnNhY3Rpb25cbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPFVpbnQ4QXJyYXk+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgdHJhbnNhY3Rpb24gcmVzdWx0XG4gICAgICogQG1lcm1haWRcbiAgICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICAgKiAgIHBhcnRpY2lwYW50IEZhYnJpY0FkYXB0ZXJcbiAgICAgKiAgIHBhcnRpY2lwYW50IEdhdGV3YXlcbiAgICAgKiAgIHBhcnRpY2lwYW50IENvbnRyYWN0XG4gICAgICogICBwYXJ0aWNpcGFudCBDaGFpbmNvZGVcbiAgICAgKlxuICAgICAqICAgRmFicmljQWRhcHRlci0+PkdhdGV3YXk6IGNvbm5lY3QoKVxuICAgICAqICAgRmFicmljQWRhcHRlci0+PkNvbnRyYWN0OiBnZXRDb250cmFjdCgpXG4gICAgICogICBhbHQgc3VibWl0IHRyYW5zYWN0aW9uXG4gICAgICogICAgIEZhYnJpY0FkYXB0ZXItPj5Db250cmFjdDogc3VibWl0KGFwaSwgcHJvcG9zYWxPcHRpb25zKVxuICAgICAqICAgZWxzZSBldmFsdWF0ZSB0cmFuc2FjdGlvblxuICAgICAqICAgICBGYWJyaWNBZGFwdGVyLT4+Q29udHJhY3Q6IGV2YWx1YXRlKGFwaSwgcHJvcG9zYWxPcHRpb25zKVxuICAgICAqICAgZW5kXG4gICAgICogICBDb250cmFjdC0+PkNoYWluY29kZTogaW52b2tlXG4gICAgICogICBDaGFpbmNvZGUtLT4+Q29udHJhY3Q6IHJlc3BvbnNlXG4gICAgICogICBDb250cmFjdC0tPj5GYWJyaWNBZGFwdGVyOiByZXN1bHRcbiAgICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5HYXRld2F5OiBjbG9zZSgpXG4gICAgICovXG4gICAgYXN5bmMgdHJhbnNhY3Rpb24oY3R4LCBhcGksIHN1Ym1pdCA9IHRydWUsIGFyZ3MsIHRyYW5zaWVudERhdGEgPSB7fSwgZW5kb3JzaW5nT3JnYW5pemF0aW9ucywgY2xhenpPckNvbnRyYWN0TmFtZSkge1xuICAgICAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy50cmFuc2FjdGlvbik7XG4gICAgICAgIHRyYW5zaWVudERhdGEgPSB0aGlzLmluamVjdFRyYW5zaWVudE92ZXJyaWRlcyh0cmFuc2llbnREYXRhLCBjdHgpO1xuICAgICAgICBpZiAoc3VibWl0ICYmIHRoaXMuc2hvdWxkVXNlTGVnYWN5R2F0ZXdheShjdHgpKSB7XG4gICAgICAgICAgICBjb25zdCBsZWdhY3lBcmdzID0gdGhpcy5wcmVwYXJlTGVnYWN5QXJncyhhcmdzKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zaWVudE1hcCA9IHRoaXMuYnVpbGRMZWdhY3lUcmFuc2llbnQodHJhbnNpZW50RGF0YSk7XG4gICAgICAgICAgICBjb25zdCBwZWVyQ29uZmlncyA9IHRoaXMuYnVpbGRMZWdhY3lQZWVyQ29uZmlncyhjdHgpO1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc3VibWl0TGVnYWN5V2l0aEV4cGxpY2l0RW5kb3JzZXJzKGN0eCwgYXBpLCBsZWdhY3lBcmdzLCB0cmFuc2llbnRNYXAsIHBlZXJDb25maWdzLCBjbGF6ek9yQ29udHJhY3ROYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBnYXRld2F5ID0gYXdhaXQgdGhpcy5HYXRld2F5KGN0eCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjb250cmFjdCA9IGF3YWl0IHRoaXMuQ29udHJhY3QoY3R4LCBjbGF6ek9yQ29udHJhY3ROYW1lKTtcbiAgICAgICAgICAgIGxvZy52ZXJib3NlKGAke3N1Ym1pdCA/IFwiU3VibWl0XCIgOiBcIkV2YWx1YXRlXCJ9dGluZyB0cmFuc2FjdGlvbiAke2NvbnRyYWN0LmdldENvbnRyYWN0TmFtZSgpfS4ke2FwaX1gKTtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhgYXJnczogJHthcmdzPy5tYXAoKGEpID0+IGEudG9TdHJpbmcoKSkuam9pbihcIlxcblwiKSB8fCBcIm5vbmVcIn1gKTtcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZCA9IHN1Ym1pdCA/IGNvbnRyYWN0LnN1Ym1pdCA6IGNvbnRyYWN0LmV2YWx1YXRlO1xuICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZEFyZ3MgPSAoYXJncyB8fCBbXSkubWFwKChhcmcpID0+IHRoaXMubm9ybWFsaXplVHJhbnNhY3Rpb25Bcmd1bWVudChhcmcpKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zaWVudEVudHJpZXMgPSBPYmplY3QuZW50cmllcyh0cmFuc2llbnREYXRhIHx8IHt9KTtcbiAgICAgICAgICAgIGVuZG9yc2luZ09yZ2FuaXphdGlvbnMgPSBlbmRvcnNpbmdPcmdhbml6YXRpb25zPy5sZW5ndGhcbiAgICAgICAgICAgICAgICA/IGVuZG9yc2luZ09yZ2FuaXphdGlvbnNcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHByb3Bvc2FsT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICBhcmd1bWVudHM6IG5vcm1hbGl6ZWRBcmdzLFxuICAgICAgICAgICAgICAgIHRyYW5zaWVudERhdGE6IHRyYW5zaWVudEVudHJpZXMubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgID8gdHJhbnNpZW50RW50cmllcy5yZWR1Y2UoKGFjYywgW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWNjW2tleV0gPSBKU09OLnN0cmluZ2lmeSh2YWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICAgICAgfSwge30pXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGVuZG9yc2luZ09yZ2FuaXphdGlvbnM6IGN0eC5nZXRPclVuZGVmaW5lZChcImFsbG93TWFudWFsRW5kb3JzaW5nT3Jnc1wiKVxuICAgICAgICAgICAgICAgICAgICA/IGVuZG9yc2luZ09yZ2FuaXphdGlvbnMgfHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLCAvLyBtc3BJZCBsaXN0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IG1ldGhvZC5jYWxsKGNvbnRyYWN0LCBhcGksIHByb3Bvc2FsT3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMubG9nLmRlYnVnKGBDbG9zaW5nICR7dGhpcy5jb25maWcubXNwSWR9IGdhdGV3YXkgY29ubmVjdGlvbmApO1xuICAgICAgICAgICAgZ2F0ZXdheS5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG5vcm1hbGl6ZVRyYW5zYWN0aW9uQXJndW1lbnQoYXJnKSB7XG4gICAgICAgIGlmIChhcmcgPT09IG51bGwgfHwgYXJnID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICByZXR1cm4gYXJnO1xuICAgICAgICBpZiAodHlwZW9mIGFyZyA9PT0gXCJzdHJpbmdcIilcbiAgICAgICAgICAgIHJldHVybiBhcmc7XG4gICAgICAgIGlmICh0eXBlb2YgYXJnICE9PSBcIm9iamVjdFwiKVxuICAgICAgICAgICAgcmV0dXJuIGFyZztcbiAgICAgICAgaWYgKGFyZyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpXG4gICAgICAgICAgICByZXR1cm4gYXJnO1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXJnKTtcbiAgICB9XG4gICAgc2hvdWxkVXNlTGVnYWN5R2F0ZXdheShjdHgpIHtcbiAgICAgICAgcmV0dXJuICEhY3R4LmdldE9yVW5kZWZpbmVkKFwibGVnYWN5XCIpICYmICEhdGhpcy5jb25maWcuYWxsb3dHYXRld2F5T3ZlcnJpZGU7XG4gICAgfVxuICAgIHByZXBhcmVMZWdhY3lBcmdzKGFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChhcmdzIHx8IFtdKS5tYXAoKGFyZykgPT4gdHlwZW9mIGFyZyA9PT0gXCJzdHJpbmdcIiA/IGFyZyA6IEpTT04uc3RyaW5naWZ5KGFyZykpO1xuICAgIH1cbiAgICBidWlsZExlZ2FjeVRyYW5zaWVudCh0cmFuc2llbnREYXRhKSB7XG4gICAgICAgIGlmICghdHJhbnNpZW50RGF0YSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyh0cmFuc2llbnREYXRhKTtcbiAgICAgICAgaWYgKCFlbnRyaWVzLmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IG1hcCA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICBtYXBba2V5XSA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICB9XG4gICAgcmVzb2x2ZUxlZ2FjeU1zcENvdW50KCkge1xuICAgICAgICBjb25zdCBjb25maWd1cmVkID0gdGhpcy5jb25maWcubGVnYWN5TXNwQ291bnQgPz8gMTtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gTnVtYmVyKGNvbmZpZ3VyZWQpO1xuICAgICAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShwYXJzZWQpIHx8IHBhcnNlZCA8IDEpXG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IocGFyc2VkKTtcbiAgICB9XG4gICAgcGlja0xlZ2FjeUNhbmRpZGF0ZXMoY2FuZGlkYXRlcywgbGltaXQpIHtcbiAgICAgICAgaWYgKCFjYW5kaWRhdGVzLmxlbmd0aCB8fCBsaW1pdCA8PSAwKVxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICBjb25zdCBhdmFpbGFibGUgPSBbLi4uY2FuZGlkYXRlc107XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IE1hdGgubWluKGxpbWl0LCBhdmFpbGFibGUubGVuZ3RoKTtcbiAgICAgICAgY29uc3QgcGlja2VkID0gW107XG4gICAgICAgIHdoaWxlIChwaWNrZWQubGVuZ3RoIDwgdGFyZ2V0ICYmIGF2YWlsYWJsZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGF2YWlsYWJsZS5sZW5ndGgpO1xuICAgICAgICAgICAgY29uc3QgW3NlbGVjdGlvbl0gPSBhdmFpbGFibGUuc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgcGlja2VkLnB1c2goc2VsZWN0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGlja2VkO1xuICAgIH1cbiAgICBidWlsZExlZ2FjeVBlZXJDb25maWdzKGN0eCkge1xuICAgICAgICBjb25zdCBwZWVycyA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBtc3BJZDogdGhpcy5jb25maWcubXNwSWQsXG4gICAgICAgICAgICAgICAgcGVlckVuZHBvaW50OiB0aGlzLmNvbmZpZy5wZWVyRW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgcGVlckhvc3RBbGlhczogdGhpcy5jb25maWcucGVlckhvc3RBbGlhcyxcbiAgICAgICAgICAgICAgICB0bHNDZXJ0OiB0aGlzLmNvbmZpZy50bHNDZXJ0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgICAgbGV0IGVuZG9yc2luZ09yZ3MgPSB0aGlzLmdldEVuZG9yc2luZ09yZ2FuaXphdGlvbnMoY3R4KSB8fCBbXTtcbiAgICAgICAgZW5kb3JzaW5nT3JncyA9IEFycmF5LmlzQXJyYXkoZW5kb3JzaW5nT3JncylcbiAgICAgICAgICAgID8gZW5kb3JzaW5nT3Jnc1xuICAgICAgICAgICAgOiBbZW5kb3JzaW5nT3Jnc107XG4gICAgICAgIGNvbnN0IGVuZG9yc2VycyA9IGVuZG9yc2luZ09yZ3MuZmlsdGVyKChvcmcpID0+IEJvb2xlYW4ob3JnKSkgfHwgW107XG4gICAgICAgIGNvbnN0IGV4dHJhcyA9IGVuZG9yc2Vycy5maWx0ZXIoKG9yZykgPT4gb3JnICE9PSB0aGlzLmNvbmZpZy5tc3BJZCk7XG4gICAgICAgIGlmICghZXh0cmFzLmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybiBwZWVycztcbiAgICAgICAgY29uc3QgbWFwID0gdGhpcy5jb25maWcubXNwTWFwO1xuICAgICAgICBjb25zdCBsZWdhY3lDb3VudCA9IHRoaXMucmVzb2x2ZUxlZ2FjeU1zcENvdW50KCk7XG4gICAgICAgIGZvciAoY29uc3QgbXNwIG9mIGV4dHJhcykge1xuICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlcyA9IG1hcD8uW21zcF07XG4gICAgICAgICAgICBpZiAoIWNhbmRpZGF0ZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKGBObyBwZWVyIG1hcHBpbmcgYXZhaWxhYmxlIGZvciBNU1AgJHttc3B9LiBQcm92aWRlIGl0IHZpYSBjb25maWcubXNwTWFwYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb25zID0gdGhpcy5waWNrTGVnYWN5Q2FuZGlkYXRlcyhjYW5kaWRhdGVzLCBsZWdhY3lDb3VudCk7XG4gICAgICAgICAgICBpZiAoIXNlbGVjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoYE5vIHZhbGlkIHBlZXIgbWFwcGluZyBhdmFpbGFibGUgZm9yIE1TUCAke21zcH0uIFByb3ZpZGUgaXQgdmlhIGNvbmZpZy5tc3BNYXBgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3QgY2hvaWNlIG9mIHNlbGVjdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWNob2ljZS5lbmRwb2ludCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihgSW52YWxpZCBwZWVyIG1hcHBpbmcgZm9yIE1TUCAke21zcH06IG1pc3NpbmcgZW5kcG9pbnRgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGVlcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIG1zcElkOiBtc3AsXG4gICAgICAgICAgICAgICAgICAgIHBlZXJFbmRwb2ludDogY2hvaWNlLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgICAgICBwZWVySG9zdEFsaWFzOiBjaG9pY2UuYWxpYXMsXG4gICAgICAgICAgICAgICAgICAgIHRsc0NlcnQ6IGNob2ljZS50bHNDZXJ0IHx8IHRoaXMuY29uZmlnLnRsc0NlcnQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBlZXJzO1xuICAgIH1cbiAgICBhc3luYyBzdWJtaXRMZWdhY3lXaXRoRXhwbGljaXRFbmRvcnNlcnMoY3R4LCBmY24sIGFyZ3MsIHRyYW5zaWVudE1hcCwgcGVlckNvbmZpZ3MsIGNsYXp6T3JDb250cmFjdE5hbWUpIHtcbiAgICAgICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuc3VibWl0TGVnYWN5V2l0aEV4cGxpY2l0RW5kb3JzZXJzKTtcbiAgICAgICAgY29uc3QgcGVlcnMgPSB0aGlzLm5vcm1hbGl6ZUxlZ2FjeVBlZXJzKHBlZXJDb25maWdzKTtcbiAgICAgICAgY29uc3QgaWRlbnRpdHlNYXRlcmlhbCA9IGF3YWl0IHRoaXMucmVzb2x2ZUxlZ2FjeUlkZW50aXR5TWF0ZXJpYWwoKTtcbiAgICAgICAgY29uc3Qgd2FsbGV0ID0gYXdhaXQgV2FsbGV0cy5uZXdJbk1lbW9yeVdhbGxldCgpO1xuICAgICAgICBjb25zdCBpZGVudGl0eUxhYmVsID0gYCR7dGhpcy5jb25maWcubXNwSWR9LWxlZ2FjeWA7XG4gICAgICAgIGF3YWl0IHdhbGxldC5wdXQoaWRlbnRpdHlMYWJlbCwge1xuICAgICAgICAgICAgY3JlZGVudGlhbHM6IHtcbiAgICAgICAgICAgICAgICBjZXJ0aWZpY2F0ZTogaWRlbnRpdHlNYXRlcmlhbC5jZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlS2V5OiBpZGVudGl0eU1hdGVyaWFsLnByaXZhdGVLZXksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbXNwSWQ6IHRoaXMuY29uZmlnLm1zcElkLFxuICAgICAgICAgICAgdHlwZTogXCJYLjUwOVwiLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgY29ubmVjdGlvblByb2ZpbGUgPSBhd2FpdCB0aGlzLmJ1aWxkTGVnYWN5Q29ubmVjdGlvblByb2ZpbGUocGVlcnMpO1xuICAgICAgICBjb25zdCBnYXRld2F5ID0gbmV3IExlZ2FjeUdhdGV3YXkoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IGdhdGV3YXkuY29ubmVjdChjb25uZWN0aW9uUHJvZmlsZSwge1xuICAgICAgICAgICAgICAgIGlkZW50aXR5OiBpZGVudGl0eUxhYmVsLFxuICAgICAgICAgICAgICAgIHdhbGxldCxcbiAgICAgICAgICAgICAgICBkaXNjb3Zlcnk6IHtcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgYXNMb2NhbGhvc3Q6IHRoaXMuc2hvdWxkVHJlYXRQZWVyc0FzTG9jYWxob3N0KHBlZXJzKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRsc0luZm86IHtcbiAgICAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGU6IGlkZW50aXR5TWF0ZXJpYWwuY2VydGlmaWNhdGUsXG4gICAgICAgICAgICAgICAgICAgIGtleTogaWRlbnRpdHlNYXRlcmlhbC5wcml2YXRlS2V5LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGxldCBjaGFubmVsID0gdGhpcy5jb25maWcuY2hhbm5lbDtcbiAgICAgICAgICAgIGxldCBjaGFpbmNvZGUgPSB0aGlzLmNvbmZpZy5jaGFpbmNvZGVOYW1lO1xuICAgICAgICAgICAgbGV0IGNvbnRyYWN0TmFtZSA9IHRoaXMuY29uZmlnLmNvbnRyYWN0TmFtZTtcbiAgICAgICAgICAgIGlmIChjbGF6ek9yQ29udHJhY3ROYW1lKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjbGF6ek9yQ29udHJhY3ROYW1lID09PSBcInN0cmluZ1wiKVxuICAgICAgICAgICAgICAgICAgICBjb250cmFjdE5hbWUgPSBjbGF6ek9yQ29udHJhY3ROYW1lO1xuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWN0eClcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBObyBjb250ZXh0IHJlY2VpdmVkIHRvIGRldGVybWluZSBjaGFpbmNvZGUgY29uZmlnYCk7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5uZWwgPVxuICAgICAgICAgICAgICAgICAgICAgICAgKGF3YWl0IHRoaXMuY2hhbm5lbEZvcihjbGF6ek9yQ29udHJhY3ROYW1lLCBjdHgpKSB8fCBjaGFubmVsO1xuICAgICAgICAgICAgICAgICAgICBjaGFpbmNvZGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgKGF3YWl0IHRoaXMuY2hhaW5jb2RlRm9yKGNsYXp6T3JDb250cmFjdE5hbWUsIGN0eCkpIHx8IGNoYWluY29kZTtcbiAgICAgICAgICAgICAgICAgICAgY29udHJhY3ROYW1lID0gYXdhaXQgdGhpcy5jb250cmFjdEZvcihjbGF6ek9yQ29udHJhY3ROYW1lLCBjdHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG5ldHdvcmsgPSBhd2FpdCBnYXRld2F5LmdldE5ldHdvcmsoY2hhbm5lbCk7XG4gICAgICAgICAgICBjb25zdCBjb250cmFjdCA9IG5ldHdvcmsuZ2V0Q29udHJhY3QoY2hhaW5jb2RlLCBjb250cmFjdE5hbWUpO1xuICAgICAgICAgICAgY29uc3QgdHJhbnNhY3Rpb24gPSBjb250cmFjdC5jcmVhdGVUcmFuc2FjdGlvbihmY24pO1xuICAgICAgICAgICAgaWYgKHRyYW5zaWVudE1hcCkge1xuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLnNldFRyYW5zaWVudCh0cmFuc2llbnRNYXApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZW5kb3JzZXJzID0gcGVlcnNcbiAgICAgICAgICAgICAgICAubWFwKChwZWVyKSA9PiBuZXR3b3JrLmdldENoYW5uZWwoKS5nZXRFbmRvcnNlcihwZWVyLm5hbWUpKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGVuZG9yc2VyKSA9PiBCb29sZWFuKGVuZG9yc2VyKSk7XG4gICAgICAgICAgICBpZiAoZW5kb3JzZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLnNldEVuZG9yc2luZ1BlZXJzKGVuZG9yc2Vycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsb2cudmVyYm9zZShgTGVnYWN5IHN1Ym1pdHRpbmcgJHtjb250cmFjdE5hbWV9LiR7ZmNufSB2aWEgcGVlcnMgJHtwZWVycy5tYXAoKHApID0+IHAucGVlckVuZHBvaW50KS5qb2luKFwiLCBcIil9YCk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0cmFuc2FjdGlvbi5zdWJtaXQoLi4uYXJncyk7XG4gICAgICAgICAgICByZXR1cm4gVWludDhBcnJheS5mcm9tKHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIGdhdGV3YXkuZGlzY29ubmVjdCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG5vcm1hbGl6ZUxlZ2FjeVBlZXJzKHBlZXJzKSB7XG4gICAgICAgIGNvbnN0IGRlZHVwZWQgPSBuZXcgTWFwKCk7XG4gICAgICAgIGNvbnN0IGFkZFBlZXIgPSAocGVlcikgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gYCR7cGVlci5wZWVyRW5kcG9pbnR9fCR7cGVlci5wZWVySG9zdEFsaWFzIHx8IFwiXCJ9YDtcbiAgICAgICAgICAgIGlmIChkZWR1cGVkLmhhcyhrZXkpKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBgcGVlci0ke3BlZXIubXNwSWR9LSR7ZGVkdXBlZC5zaXplfWA7XG4gICAgICAgICAgICBkZWR1cGVkLnNldChrZXksIHtcbiAgICAgICAgICAgICAgICAuLi5wZWVyLFxuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgcGVlcnMuZm9yRWFjaChhZGRQZWVyKTtcbiAgICAgICAgYWRkUGVlcih7XG4gICAgICAgICAgICBtc3BJZDogdGhpcy5jb25maWcubXNwSWQsXG4gICAgICAgICAgICBwZWVyRW5kcG9pbnQ6IHRoaXMuY29uZmlnLnBlZXJFbmRwb2ludCxcbiAgICAgICAgICAgIHBlZXJIb3N0QWxpYXM6IHRoaXMuY29uZmlnLnBlZXJIb3N0QWxpYXMsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShkZWR1cGVkLnZhbHVlcygpKTtcbiAgICB9XG4gICAgYXN5bmMgcmVzb2x2ZUxlZ2FjeUlkZW50aXR5TWF0ZXJpYWwoKSB7XG4gICAgICAgIGNvbnN0IGNlcnRpZmljYXRlID0gYXdhaXQgdGhpcy5yZWFkUGVtSW5wdXQodGhpcy5jb25maWcuY2VydENlcnRPckRpcmVjdG9yeVBhdGgpO1xuICAgICAgICBjb25zdCBwcml2YXRlS2V5ID0gYXdhaXQgdGhpcy5yZWFkUGVtSW5wdXQodGhpcy5jb25maWcua2V5Q2VydE9yRGlyZWN0b3J5UGF0aCk7XG4gICAgICAgIHJldHVybiB7IGNlcnRpZmljYXRlLCBwcml2YXRlS2V5IH07XG4gICAgfVxuICAgIGFzeW5jIGJ1aWxkTGVnYWN5Q29ubmVjdGlvblByb2ZpbGUocGVlcnMpIHtcbiAgICAgICAgY29uc3QgcGVlckVudHJpZXMgPSB7fTtcbiAgICAgICAgY29uc3QgY2hhbm5lbFBlZXJzID0ge307XG4gICAgICAgIGNvbnN0IG9yZ3MgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBwZWVyIG9mIHBlZXJzKSB7XG4gICAgICAgICAgICBjb25zdCB0bHNQZW0gPSBhd2FpdCB0aGlzLnJlYWRQZW1JbnB1dChwZWVyLnRsc0NlcnQgfHwgdGhpcy5jb25maWcudGxzQ2VydCk7XG4gICAgICAgICAgICBjb25zdCBob3N0bmFtZSA9IHBlZXIucGVlckhvc3RBbGlhcyB8fCB0aGlzLmV4dHJhY3RIb3N0KHBlZXIucGVlckVuZHBvaW50KTtcbiAgICAgICAgICAgIHBlZXJFbnRyaWVzW3BlZXIubmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgdXJsOiB0aGlzLmVuc3VyZUdycGNVcmwocGVlci5wZWVyRW5kcG9pbnQpLFxuICAgICAgICAgICAgICAgIHRsc0NBQ2VydHM6IHsgcGVtOiB0bHNQZW0gfSxcbiAgICAgICAgICAgICAgICBncnBjT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBcInNzbC10YXJnZXQtbmFtZS1vdmVycmlkZVwiOiBob3N0bmFtZSxcbiAgICAgICAgICAgICAgICAgICAgaG9zdG5hbWVPdmVycmlkZTogaG9zdG5hbWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjaGFubmVsUGVlcnNbcGVlci5uYW1lXSA9IHtcbiAgICAgICAgICAgICAgICBlbmRvcnNpbmdQZWVyOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNoYWluY29kZVF1ZXJ5OiB0cnVlLFxuICAgICAgICAgICAgICAgIGxlZGdlclF1ZXJ5OiB0cnVlLFxuICAgICAgICAgICAgICAgIGV2ZW50U291cmNlOiB0cnVlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIG9yZ3NbcGVlci5tc3BJZF0gPSBvcmdzW3BlZXIubXNwSWRdIHx8IHtcbiAgICAgICAgICAgICAgICBtc3BpZDogcGVlci5tc3BJZCxcbiAgICAgICAgICAgICAgICBwZWVyczogW10sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgb3Jnc1twZWVyLm1zcElkXS5wZWVycy5wdXNoKHBlZXIubmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IFwibGVnYWN5LW1hbnVhbFwiLFxuICAgICAgICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICAgICAgICAgICAgY2xpZW50OiB7XG4gICAgICAgICAgICAgICAgb3JnYW5pemF0aW9uOiB0aGlzLmNvbmZpZy5tc3BJZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvcmdhbml6YXRpb25zOiBvcmdzLFxuICAgICAgICAgICAgcGVlcnM6IHBlZXJFbnRyaWVzLFxuICAgICAgICAgICAgb3JkZXJlcnM6IHt9LFxuICAgICAgICAgICAgY2hhbm5lbHM6IHtcbiAgICAgICAgICAgICAgICBbdGhpcy5jb25maWcuY2hhbm5lbF06IHtcbiAgICAgICAgICAgICAgICAgICAgcGVlcnM6IGNoYW5uZWxQZWVycyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgc2hvdWxkVHJlYXRQZWVyc0FzTG9jYWxob3N0KHBlZXJzKSB7XG4gICAgICAgIHJldHVybiBwZWVycy5ldmVyeSgocGVlcikgPT4gdGhpcy5pc0xvY2FsRW5kcG9pbnQocGVlci5wZWVyRW5kcG9pbnQpKTtcbiAgICB9XG4gICAgaXNMb2NhbEVuZHBvaW50KGVuZHBvaW50KSB7XG4gICAgICAgIGNvbnN0IGhvc3QgPSB0aGlzLmV4dHJhY3RIb3N0KGVuZHBvaW50KS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICByZXR1cm4gaG9zdCA9PT0gXCJsb2NhbGhvc3RcIiB8fCBob3N0ID09PSBcIjEyNy4wLjAuMVwiO1xuICAgIH1cbiAgICBleHRyYWN0SG9zdChlbmRwb2ludCkge1xuICAgICAgICBjb25zdCBzYW5pdGl6ZWQgPSBlbmRwb2ludC5yZXBsYWNlKC9eZ3JwY3M/OlxcL1xcLy8sIFwiXCIpO1xuICAgICAgICByZXR1cm4gc2FuaXRpemVkLnNwbGl0KFwiOlwiKVswXTtcbiAgICB9XG4gICAgZW5zdXJlR3JwY1VybChlbmRwb2ludCkge1xuICAgICAgICBpZiAoL15ncnBjcz86XFwvXFwvL2kudGVzdChlbmRwb2ludCkpXG4gICAgICAgICAgICByZXR1cm4gZW5kcG9pbnQ7XG4gICAgICAgIHJldHVybiBgZ3JwY3M6Ly8ke2VuZHBvaW50fWA7XG4gICAgfVxuICAgIGFzeW5jIHJlYWRQZW1JbnB1dChzb3VyY2UpIHtcbiAgICAgICAgaWYgKCFzb3VyY2UpXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIk1pc3NpbmcgY2VydGlmaWNhdGUgb3Iga2V5IG1hdGVyaWFsXCIpO1xuICAgICAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKHNvdXJjZSkpXG4gICAgICAgICAgICByZXR1cm4gc291cmNlLnRvU3RyaW5nKFwidXRmOFwiKTtcbiAgICAgICAgY29uc3QgdHJpbW1lZCA9IHNvdXJjZS50cmltKCk7XG4gICAgICAgIGlmICgvLS0tLS1CRUdJTiBbQS1aIF0rLS0tLS0vLnRlc3QodHJpbW1lZCkpXG4gICAgICAgICAgICByZXR1cm4gdHJpbW1lZDtcbiAgICAgICAgY29uc3Qgc3RhdHMgPSBhd2FpdCBmcy5wcm9taXNlcy5zdGF0KHNvdXJjZSkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgICAgICAgaWYgKHN0YXRzPy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgZ2V0Rmlyc3REaXJGaWxlTmFtZUNvbnRlbnQoc291cmNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKGF3YWl0IHJlYWRGc0ZpbGUoc291cmNlKSkudG9TdHJpbmcoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBhbiBlcnJvciBpbnRvIGEgQmFzZUVycm9yXG4gICAgICogQHN1bW1hcnkgQ29udmVydHMgYW55IGVycm9yIGludG8gYSBzdGFuZGFyZGl6ZWQgQmFzZUVycm9yXG4gICAgICogQHBhcmFtIHtFcnJvciB8IHN0cmluZ30gZXJyIC0gVGhlIGVycm9yIHRvIHBhcnNlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtyZWFzb25dIC0gT3B0aW9uYWwgcmVhc29uIGZvciB0aGUgZXJyb3JcbiAgICAgKiBAcmV0dXJuIHtCYXNlRXJyb3J9IFRoZSBwYXJzZWQgZXJyb3JcbiAgICAgKi9cbiAgICBwYXJzZUVycm9yKGVycikge1xuICAgICAgICByZXR1cm4gRmFicmljQ2xpZW50QWRhcHRlci5wYXJzZUVycm9yKGVycik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTdWJtaXRzIGEgdHJhbnNhY3Rpb24gdG8gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAgICogQHN1bW1hcnkgRXhlY3V0ZXMgYSB0cmFuc2FjdGlvbiB0aGF0IG1vZGlmaWVzIHRoZSBsZWRnZXIgc3RhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gYXBpIC0gVGhlIGNoYWluY29kZSBmdW5jdGlvbiB0byBjYWxsXG4gICAgICogQHBhcmFtIHthbnlbXX0gW2FyZ3NdIC0gQXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGNoYWluY29kZSBmdW5jdGlvblxuICAgICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gW3RyYW5zaWVudERhdGFdIC0gVHJhbnNpZW50IGRhdGEgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gW2VuZG9yc2luZ09yZ2FuaXphdGlvbnNdIC0gT3JnYW5pemF0aW9ucyB0aGF0IG11c3QgZW5kb3JzZSB0aGUgdHJhbnNhY3Rpb25cbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPFVpbnQ4QXJyYXk+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgdHJhbnNhY3Rpb24gcmVzdWx0XG4gICAgICovXG4gICAgYXN5bmMgc3VibWl0VHJhbnNhY3Rpb24oY3R4LCBhcGksIGFyZ3MsIHRyYW5zaWVudERhdGEsIGVuZG9yc2luZ09yZ2FuaXphdGlvbnMsIGNsYXp6T3JDb250cmFjdE5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb24oY3R4LCBhcGksIHRydWUsIGFyZ3MsIHRyYW5zaWVudERhdGEsIGVuZG9yc2luZ09yZ2FuaXphdGlvbnMsIGNsYXp6T3JDb250cmFjdE5hbWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXZhbHVhdGVzIGEgdHJhbnNhY3Rpb24gb24gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAgICogQHN1bW1hcnkgRXhlY3V0ZXMgYSB0cmFuc2FjdGlvbiB0aGF0IGRvZXMgbm90IG1vZGlmeSB0aGUgbGVkZ2VyIHN0YXRlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGFwaSAtIFRoZSBjaGFpbmNvZGUgZnVuY3Rpb24gdG8gY2FsbFxuICAgICAqIEBwYXJhbSB7YW55W119IFthcmdzXSAtIEFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBjaGFpbmNvZGUgZnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IFt0cmFuc2llbnREYXRhXSAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IFtlbmRvcnNpbmdPcmdhbml6YXRpb25zXSAtIE9yZ2FuaXphdGlvbnMgdGhhdCBtdXN0IGVuZG9yc2UgdGhlIHRyYW5zYWN0aW9uXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxVaW50OEFycmF5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHRyYW5zYWN0aW9uIHJlc3VsdFxuICAgICAqL1xuICAgIGFzeW5jIGV2YWx1YXRlVHJhbnNhY3Rpb24oY3R4LCBhcGksIGFyZ3MsIHRyYW5zaWVudERhdGEsIGVuZG9yc2luZ09yZ2FuaXphdGlvbnMsIGNsYXp6T3JDb250cmFjdE5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb24oY3R4LCBhcGksIGZhbHNlLCBhcmdzLCB0cmFuc2llbnREYXRhLCBlbmRvcnNpbmdPcmdhbml6YXRpb25zLCBjbGF6ek9yQ29udHJhY3ROYW1lKTtcbiAgICB9XG4gICAgYXN5bmMgbWlncmF0ZShyZWZlcmVuY2UsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgbGFzdCA9IGFyZ3NbYXJncy5sZW5ndGggLSAxXTtcbiAgICAgICAgY29uc3QgcHJvdmlkZWRDdHggPSBsYXN0IGluc3RhbmNlb2YgQ29udGV4dCA/IGxhc3QgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IG1pZ3JhdGlvbkFyZ3MgPSBwcm92aWRlZEN0eCA/IGFyZ3Muc2xpY2UoMCwgLTEpIDogYXJncztcbiAgICAgICAgY29uc3QgY3R4ID0gcHJvdmlkZWRDdHggfHxcbiAgICAgICAgICAgIChhd2FpdCB0aGlzLmNvbnRleHQoUGVyc2lzdGVuY2VLZXlzLk1JR1JBVElPTiwge30sIHVuZGVmaW5lZCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihjdHgsIFwibWlncmF0ZVwiLCBbcmVmZXJlbmNlLCBtaWdyYXRpb25BcmdzXSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIFwiTWlncmF0aW9uQ29udHJhY3RcIik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTaHV0cyBkb3duIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgICAqIEBzdW1tYXJ5IENsb3NlcyB0aGUgYWN0aXZlIGRpc3BhdGNoICh3aGljaCBpbiB0dXJuIGNsb3NlcyBhbnkgZ2F0ZXdheVxuICAgICAqIGV2ZW50IHN1YnNjcmlwdGlvbikgdmlhIHRoZSBiYXNlIGNsYXNzLCB0aGVuIGNsb3NlcyB0aGUgZ1JQQyBjbGllbnQuXG4gICAgICogV29ya3MgY29ycmVjdGx5IHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBgc3ludGhldGljRXZlbnRzYCBpcyBlbmFibGVkLlxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBjb25uZWN0aW9ucyBhcmUgY2xvc2VkXG4gICAgICovXG4gICAgYXN5bmMgc2h1dGRvd24oLi4uYXJncykge1xuICAgICAgICAvLyBCYXNlIGNsYXNzIGhhbmRsZXMgZGlzcGF0Y2guY2xvc2UoKSBpbnRlcm5hbGx5LlxuICAgICAgICBhd2FpdCBzdXBlci5zaHV0ZG93biguLi5hcmdzKTtcbiAgICAgICAgaWYgKHRoaXMuY2xpZW50KSB7XG4gICAgICAgICAgICB0aGlzLmxvZy52ZXJib3NlKGBDbG9zaW5nICR7dGhpcy5jb25maWcubXNwSWR9IGdhdGV3YXkgY2xpZW50YCk7XG4gICAgICAgICAgICB0aGlzLmNsaWVudC5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXRzIGEgQ29udHJhY3QgaW5zdGFuY2UgZnJvbSBhIEdhdGV3YXlcbiAgICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgYSBjaGFpbmNvZGUgY29udHJhY3QgZnJvbSB0aGUgc3BlY2lmaWVkIG5ldHdvcmtcbiAgICAgKiBAcGFyYW0ge0dhdGV3YXl9IGdhdGV3YXkgLSBUaGUgR2F0ZXdheSBpbnN0YW5jZVxuICAgICAqIEBwYXJhbSB7UGVlckNvbmZpZ30gY29uZmlnIC0gVGhlIHBlZXIgY29uZmlndXJhdGlvblxuICAgICAqIEByZXR1cm4ge0NvbnRyYWt0fSBUaGUgQ29udHJhY3QgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBzdGF0aWMgYXN5bmMgZ2V0Q29udHJhY3QoZ2F0ZXdheSwgY29uZmlnLCBjbGF6ek9yQ29udHJhY3ROYW1lLCBjdHgpIHtcbiAgICAgICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuZ2V0Q29udHJhY3QpO1xuICAgICAgICBsZXQgY2hhbm5lbCA9IGNvbmZpZy5jaGFubmVsO1xuICAgICAgICBsZXQgY2hhaW5jb2RlID0gY29uZmlnLmNoYWluY29kZU5hbWU7XG4gICAgICAgIGxldCBjb250cmFjdE5hbWUgPSBjb25maWcuY29udHJhY3ROYW1lO1xuICAgICAgICBpZiAoY2xhenpPckNvbnRyYWN0TmFtZSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjbGF6ek9yQ29udHJhY3ROYW1lID09PSBcInN0cmluZ1wiKVxuICAgICAgICAgICAgICAgIGNvbnRyYWN0TmFtZSA9IGNsYXp6T3JDb250cmFjdE5hbWU7XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIWN0eClcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE5vIGNvbnRleHQgcmVjZWl2ZWQgdG8gZGV0ZXJtaW5lIGNoYWluY29kZSBjb25maWdgKTtcbiAgICAgICAgICAgICAgICBjaGFubmVsID1cbiAgICAgICAgICAgICAgICAgICAgKGF3YWl0IHRoaXMuY2hhbm5lbEZvcihjbGF6ek9yQ29udHJhY3ROYW1lLCBjb25maWcsIGN0eCkpIHx8IGNoYW5uZWw7XG4gICAgICAgICAgICAgICAgY2hhaW5jb2RlID1cbiAgICAgICAgICAgICAgICAgICAgKGF3YWl0IHRoaXMuY2hhaW5jb2RlRm9yKGNsYXp6T3JDb250cmFjdE5hbWUsIGNvbmZpZywgY3R4KSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYWluY29kZTtcbiAgICAgICAgICAgICAgICBjb250cmFjdE5hbWUgPSBhd2FpdCB0aGlzLmNvbnRyYWN0Rm9yKGNsYXp6T3JDb250cmFjdE5hbWUsIGNvbmZpZywgY3R4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXR3b3JrID0gdGhpcy5nZXROZXR3b3JrKGdhdGV3YXksIGNoYW5uZWwpO1xuICAgICAgICBsZXQgY29udHJhY3Q7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2cuZGVidWcoYFJldHJpZXZpbmcgY2hhaW5jb2RlICR7Y2hhaW5jb2RlfSBjb250cmFjdCAke2NvbnRyYWN0TmFtZX0gZnJvbSBuZXR3b3JrICR7Y2hhbm5lbH1gKTtcbiAgICAgICAgICAgIGNvbnRyYWN0ID0gbmV0d29yay5nZXRDb250cmFjdChjaGFpbmNvZGUsIGNvbnRyYWN0TmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29udHJhY3Q7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXRzIGEgTmV0d29yayBpbnN0YW5jZSBmcm9tIGEgR2F0ZXdheVxuICAgICAqIEBzdW1tYXJ5IENvbm5lY3RzIHRvIGEgc3BlY2lmaWMgY2hhbm5lbCBvbiB0aGUgRmFicmljIG5ldHdvcmtcbiAgICAgKiBAcGFyYW0ge0dhdGV3YXl9IGdhdGV3YXkgLSBUaGUgR2F0ZXdheSBpbnN0YW5jZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFubmVsTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBjaGFubmVsIHRvIGNvbm5lY3QgdG9cbiAgICAgKiBAcmV0dXJuIHtOZXR3b3JrfSBUaGUgTmV0d29yayBpbnN0YW5jZVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXROZXR3b3JrKGdhdGV3YXksIGNoYW5uZWxOYW1lKSB7XG4gICAgICAgIGNvbnN0IGxvZyA9IExvZ2dpbmcuZm9yKHRoaXMuZ2V0TmV0d29yayk7XG4gICAgICAgIGxldCBuZXR3b3JrO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbG9nLmRlYnVnKGBDb25uZWN0aW5nIHRvIGNoYW5uZWwgJHtjaGFubmVsTmFtZX1gKTtcbiAgICAgICAgICAgIG5ldHdvcmsgPSBnYXRld2F5LmdldE5ldHdvcmsoY2hhbm5lbE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldHdvcms7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXRzIGEgR2F0ZXdheSBpbnN0YW5jZSBmb3IgY29ubmVjdGluZyB0byB0aGUgRmFicmljIG5ldHdvcmtcbiAgICAgKiBAc3VtbWFyeSBDcmVhdGVzIGEgR2F0ZXdheSB1c2luZyB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbiBhbmQgY2xpZW50XG4gICAgICogQHBhcmFtIHtQZWVyQ29uZmlnfSBjb25maWcgLSBUaGUgcGVlciBjb25maWd1cmF0aW9uXG4gICAgICogQHBhcmFtIHtDbGllbnR9IFtjbGllbnRdIC0gT3B0aW9uYWwgZ1JQQyBjbGllbnQsIHdpbGwgYmUgY3JlYXRlZCBpZiBub3QgcHJvdmlkZWRcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPEdhdGV3YXk+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgR2F0ZXdheSBpbnN0YW5jZVxuICAgICAqL1xuICAgIHN0YXRpYyBhc3luYyBnZXRHYXRld2F5KGN0eCwgY29uZmlnLCBjbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldENvbm5lY3Rpb24oY2xpZW50IHx8IChhd2FpdCB0aGlzLmdldENsaWVudChjb25maWcpKSwgY29uZmlnLCBjdHgpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBnUlBDIGNsaWVudCBmb3IgY29ubmVjdGluZyB0byBhIEZhYnJpYyBwZWVyXG4gICAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBjbGllbnQgd2l0aCBUTFMgY3JlZGVudGlhbHMgZm9yIHNlY3VyZSBjb21tdW5pY2F0aW9uXG4gICAgICogQHBhcmFtIHtQZWVyQ29uZmlnfSBjb25maWcgLSBUaGUgcGVlciBjb25maWd1cmF0aW9uXG4gICAgICogQHJldHVybiB7Q2xpZW50fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgZ1JQQyBjbGllbnRcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0Q2xpZW50KGNvbmZpZykge1xuICAgICAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5nZXRDbGllbnQpO1xuICAgICAgICBsb2cuZGVidWcoYGdlbmVyYXRpbmcgVExTIGNyZWRlbnRpYWxzIGZvciBtc3AgJHtjb25maWcubXNwSWR9YCk7XG4gICAgICAgIGxldCBwYXRoT3JDZXJ0ID0gY29uZmlnLnRsc0NlcnQ7XG4gICAgICAgIGlmICh0eXBlb2YgcGF0aE9yQ2VydCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgaWYgKHBhdGhPckNlcnQubWF0Y2goLy0tLS0tQkVHSU4gKENFUlRJRklDQVRFfEtFWXxQUklWQVRFIEtFWSktLS0tLS4rPy0tLS0tRU5EIFxcMS0tLS0tJC9nbXMpKSB7XG4gICAgICAgICAgICAgICAgcGF0aE9yQ2VydCA9IEJ1ZmZlci5mcm9tKHBhdGhPckNlcnQsIFwidXRmOFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhPckNlcnQgPSBCdWZmZXIuZnJvbShmcy5yZWFkRmlsZVN5bmMocGF0aE9yQ2VydCwgXCJ1dGY4XCIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byByZWFkIHRoZSB0bHMgY2VydGlmaWNhdGUgZnJvbSAke3BhdGhPckNlcnR9OiAke2V9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRsc0NyZWRlbnRpYWxzID0gZ3JwYy5jcmVkZW50aWFscy5jcmVhdGVTc2wocGF0aE9yQ2VydCk7XG4gICAgICAgIGxvZy5kZWJ1ZyhgZ2VuZXJhdGluZyBHYXRld2F5IENsaWVudCBmb3IgdXJsICR7Y29uZmlnLnBlZXJFbmRwb2ludH1gKTtcbiAgICAgICAgcmV0dXJuIG5ldyBDbGllbnQoY29uZmlnLnBlZXJFbmRwb2ludCwgdGxzQ3JlZGVudGlhbHMsIHtcbiAgICAgICAgICAgIFwiZ3JwYy5tYXhfcmVjZWl2ZV9tZXNzYWdlX2xlbmd0aFwiOiAoY29uZmlnLnNpemVMaW1pdCB8fCAxNSkgKiAxMDI0ICogMTAyNCxcbiAgICAgICAgICAgIFwiZ3JwYy5tYXhfc2VuZF9tZXNzYWdlX2xlbmd0aFwiOiAoY29uZmlnLnNpemVMaW1pdCB8fCAxNSkgKiAxMDI0ICogMTAyNCxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFc3RhYmxpc2hlcyBhIGNvbm5lY3Rpb24gdG8gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAgICogQHN1bW1hcnkgQ3JlYXRlcyBhIEdhdGV3YXkgY29ubmVjdGlvbiB3aXRoIGlkZW50aXR5IGFuZCBzaWduZXJcbiAgICAgKiBAcGFyYW0ge0NsaWVudH0gY2xpZW50IC0gVGhlIGdSUEMgY2xpZW50XG4gICAgICogQHBhcmFtIHtQZWVyQ29uZmlnfSBjb25maWcgLSBUaGUgcGVlciBjb25maWd1cmF0aW9uXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxHYXRld2F5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNvbm5lY3RlZCBHYXRld2F5XG4gICAgICogQG1lcm1haWRcbiAgICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICAgKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICAgICAqICAgcGFydGljaXBhbnQgRmFicmljQWRhcHRlclxuICAgICAqICAgcGFydGljaXBhbnQgSWRlbnRpdHlcbiAgICAgKiAgIHBhcnRpY2lwYW50IFNpZ25lclxuICAgICAqICAgcGFydGljaXBhbnQgR2F0ZXdheVxuICAgICAqXG4gICAgICogICBDYWxsZXItPj5GYWJyaWNBZGFwdGVyOiBnZXRDb25uZWN0aW9uKGNsaWVudCwgY29uZmlnKVxuICAgICAqICAgRmFicmljQWRhcHRlci0+PklkZW50aXR5OiBnZXRJZGVudGl0eShtc3BJZCwgY2VydERpcmVjdG9yeVBhdGgpXG4gICAgICogICBJZGVudGl0eS0tPj5GYWJyaWNBZGFwdGVyOiBpZGVudGl0eVxuICAgICAqICAgRmFicmljQWRhcHRlci0+PlNpZ25lcjogZ2V0U2lnbmVyKGtleURpcmVjdG9yeVBhdGgpXG4gICAgICogICBTaWduZXItLT4+RmFicmljQWRhcHRlcjogc2lnbmVyXG4gICAgICogICBGYWJyaWNBZGFwdGVyLT4+RmFicmljQWRhcHRlcjogQ3JlYXRlIENvbm5lY3RPcHRpb25zXG4gICAgICogICBGYWJyaWNBZGFwdGVyLT4+R2F0ZXdheTogY29ubmVjdChvcHRpb25zKVxuICAgICAqICAgR2F0ZXdheS0tPj5GYWJyaWNBZGFwdGVyOiBnYXRld2F5XG4gICAgICogICBGYWJyaWNBZGFwdGVyLS0+PkNhbGxlcjogZ2F0ZXdheVxuICAgICAqL1xuICAgIHN0YXRpYyBhc3luYyBnZXRDb25uZWN0aW9uKGNsaWVudCwgY29uZmlnLCBjdHgpIHtcbiAgICAgICAgY29uc3QgbG9nID0gTG9nZ2luZy5mb3IodGhpcy5nZXRDb25uZWN0aW9uKTtcbiAgICAgICAgbG9nLmRlYnVnKGBSZXRyaWV2aW5nIFBlZXIgSWRlbnRpdHkgZm9yICR7Y29uZmlnLm1zcElkfSB1bmRlciAke2NvbmZpZy5jZXJ0Q2VydE9yRGlyZWN0b3J5UGF0aH1gKTtcbiAgICAgICAgY29uc3QgaWRlbnRpdHkgPSBhd2FpdCBnZXRJZGVudGl0eShjb25maWcubXNwSWQsIGNvbmZpZy5jZXJ0Q2VydE9yRGlyZWN0b3J5UGF0aCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2cuZGVidWcoYHByZXBhcmluZyB0cmFuc2FjdGlvbiBzaWduZXIgZm9yICR7Q3J5cHRvVXRpbHMuZmFicmljSWRGcm9tQ2VydGlmaWNhdGUoaWRlbnRpdHkuY3JlZGVudGlhbHMudG9TdHJpbmcoKSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIGV4dHJhY3QgRmFicmljIElEIGZyb20gY2VydGlmaWNhdGVgLCBlKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgc2lnbmVyO1xuICAgICAgICBjb25zdCBjbG9zZSA9ICgpID0+IHsgfTtcbiAgICAgICAgaWYgKCFjb25maWcuaHNtKSB7XG4gICAgICAgICAgICBzaWduZXIgPSBhd2FpdCBnZXRTaWduZXIoY29uZmlnLmtleUNlcnRPckRpcmVjdG9yeVBhdGgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gY29uc3QgaHNtID0gbmV3IEhTTVNpZ25lckZhY3RvcnlDdXN0b20oY29uZmlnLmhzbS5saWJyYXJ5KTtcbiAgICAgICAgICAgIC8vIGNvbnN0IGlkZW50aWZpZXIgPSBoc20uZ2V0U0tJRnJvbUNlcnRpZmljYXRlUGF0aChcbiAgICAgICAgICAgIC8vICAgY29uZmlnLmNlcnRDZXJ0T3JEaXJlY3RvcnlQYXRoIGFzIGFueVxuICAgICAgICAgICAgLy8gKTtcbiAgICAgICAgICAgIC8vIGNvbnN0IHBrY3MxMVNpZ25lciA9IGhzbS5uZXdTaWduZXIoe1xuICAgICAgICAgICAgLy8gICBsYWJlbDogY29uZmlnLmhzbS50b2tlbkxhYmVsIGFzIHN0cmluZyxcbiAgICAgICAgICAgIC8vICAgcGluOiBTdHJpbmcoY29uZmlnLmhzbS5waW4pIGFzIHN0cmluZyxcbiAgICAgICAgICAgIC8vICAgaWRlbnRpZmllcjogaWRlbnRpZmllcixcbiAgICAgICAgICAgIC8vICAgLy8gdXNlclR5cGU6IDEgLypDS1VfVVNFUiAqLyxcbiAgICAgICAgICAgIC8vIH0pO1xuICAgICAgICAgICAgLy8gc2lnbmVyID0gcGtjczExU2lnbmVyLnNpZ25lcjtcbiAgICAgICAgICAgIC8vIGNsb3NlID0gcGtjczExU2lnbmVyLmNsb3NlO1xuICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXCJIU00gTk9UIElNUExFTUVOVEVEXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgICBpZGVudGl0eTogaWRlbnRpdHksXG4gICAgICAgICAgICBzaWduZXI6IHNpZ25lcixcbiAgICAgICAgICAgIC8vIERlZmF1bHQgdGltZW91dHMgZm9yIGRpZmZlcmVudCBnUlBDIGNhbGxzXG4gICAgICAgICAgICBldmFsdWF0ZU9wdGlvbnM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkZWFkbGluZTogRGF0ZS5ub3coKSArIDEwMDAgKiBjdHguZ2V0KFwiZXZhbHVhdGVUaW1lb3V0XCIpIH07IC8vIGRlZmF1bHRzIHRvIDUgc2Vjb25kc1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVuZG9yc2VPcHRpb25zOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGVhZGxpbmU6IERhdGUubm93KCkgKyAxMDAwICogY3R4LmdldChcImVuZG9yc2VUaW1lb3V0XCIpIH07IC8vIGRlZmF1bHRzIHRvIDE1IHNlY29uZHNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdWJtaXRPcHRpb25zOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGVhZGxpbmU6IERhdGUubm93KCkgKyAxMDAwICogY3R4LmdldChcInN1Ym1pdFRpbWVvdXRcIikgfTsgLy8gZGVmYXVsdHMgdG8gNSBzZWNvbmRzXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29tbWl0U3RhdHVzT3B0aW9uczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRlYWRsaW5lOiBEYXRlLm5vdygpICsgMTAwMCAqIGN0eC5nZXQoXCJjb21taXRUaW1lb3V0XCIpIH07IC8vIGRlZmF1bHRzIHRvIDEgbWludXRlXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICBsb2cuZGVidWcoYENvbm5lY3RpbmcgdG8gJHtjb25maWcubXNwSWR9YCk7XG4gICAgICAgIGNvbnN0IGdhdGV3YXkgPSBjb25uZWN0KG9wdGlvbnMpO1xuICAgICAgICAvLyBUT0RPOiByZXBsYWNlP1xuICAgICAgICBpZiAoY29uZmlnLmhzbSkge1xuICAgICAgICAgICAgZ2F0ZXdheS5jbG9zZSA9IG5ldyBQcm94eShnYXRld2F5LmNsb3NlLCB7XG4gICAgICAgICAgICAgICAgYXBwbHkodGFyZ2V0LCB0aGlzQXJnLCBhcmdBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICBSZWZsZWN0LmFwcGx5KHRhcmdldCwgdGhpc0FyZywgYXJnQXJyYXkpO1xuICAgICAgICAgICAgICAgICAgICBjbG9zZSgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2F0ZXdheTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgRGlzcGF0Y2ggaW5zdGFuY2UgZm9yIHRoZSBGYWJyaWMgY2xpZW50LlxuICAgICAqIEBzdW1tYXJ5IFRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIGEgbmV3IEZhYnJpY0NsaWVudERpc3BhdGNoIGluc3RhbmNlIHRoYXQgY2FuIGJlIHVzZWQgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgRmFicmljIG5ldHdvcmsuXG4gICAgICogQHJldHVybnMge0Rpc3BhdGNofSBBIG5ldyBEaXNwYXRjaCBpbnN0YW5jZSBjb25maWd1cmVkIGZvciB0aGUgRmFicmljIGNsaWVudC5cbiAgICAgKiBAcmVtYXJrcyBUaGUgRGlzcGF0Y2ggaW5zdGFuY2UgaXMgdXNlZCB0byBlbmNhcHN1bGF0ZSB0aGUgbG9naWMgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIEZhYnJpYyBuZXR3b3JrLCBzdWNoIGFzIHN1Ym1pdHRpbmcgdHJhbnNhY3Rpb25zIG9yIHF1ZXJ5aW5nIGRhdGEuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCBmYWJyaWNEaXNwYXRjaCA9IGZhYnJpY0NsaWVudEFkYXB0ZXIuRGlzcGF0Y2goKTtcbiAgICAgKiBmYWJyaWNEaXNwYXRjaC5zdWJtaXRUcmFuc2FjdGlvbignY3JlYXRlUHJvZHVjdCcsIHsgbmFtZTogJ1Byb2R1Y3QgQScsIHByaWNlOiAxMDAgfSk7XG4gICAgICovXG4gICAgRGlzcGF0Y2goKSB7XG4gICAgICAgIHJldHVybiBuZXcgRmFicmljQ2xpZW50QWRhcHRlcltcIl9iYXNlRGlzcGF0Y2hcIl0odGhpcy5jbGllbnQpO1xuICAgIH1cbiAgICBzdGF0aWMgY2hhaW5jb2RlRm9yKG1vZGVsLCBjb25maWcsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIE1vZGVsLmNoYWluY29kZU9mKG1vZGVsLCAuLi5hcmdzKSB8fCBjb25maWcuY2hhaW5jb2RlTmFtZTtcbiAgICB9XG4gICAgc3RhdGljIGNoYW5uZWxGb3IobW9kZWwsIGNvbmZpZywgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gTW9kZWwuY2hhbm5lbE9mKG1vZGVsLCAuLi5hcmdzKSB8fCBjb25maWcuY2hhbm5lbDtcbiAgICB9XG4gICAgc3RhdGljIGNvbnRyYWN0Rm9yKG1vZGVsLCBjb25maWcsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChNb2RlbC5jb250cmFjdE9mKG1vZGVsLCAuLi5hcmdzKSB8fFxuICAgICAgICAgICAgRGVmYXVsdENvbnRyYWN0UmVzb2x2ZXIobW9kZWwsIC4uLmFyZ3MpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBhbiBlcnJvciBpbnRvIGEgQmFzZUVycm9yXG4gICAgICogQHN1bW1hcnkgQ29udmVydHMgYW55IGVycm9yIGludG8gYSBzdGFuZGFyZGl6ZWQgQmFzZUVycm9yIHVzaW5nIHRoZSBwYXJlbnQgY2xhc3MgaW1wbGVtZW50YXRpb25cbiAgICAgKiBAcGFyYW0ge0Vycm9yIHwgc3RyaW5nfSBlcnIgLSBUaGUgZXJyb3IgdG8gcGFyc2VcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3JlYXNvbl0gLSBPcHRpb25hbCByZWFzb24gZm9yIHRoZSBlcnJvclxuICAgICAqIEByZXR1cm4ge0Jhc2VFcnJvcn0gVGhlIHBhcnNlZCBlcnJvclxuICAgICAqL1xuICAgIHN0YXRpYyBwYXJzZUVycm9yKGVycikge1xuICAgICAgICAvLyBpZiAoXG4gICAgICAgIC8vICAgTUlTU0lOR19QUklWQVRFX0RBVEFfUkVHRVgudGVzdChcbiAgICAgICAgLy8gICAgIHR5cGVvZiBlcnIgPT09IFwic3RyaW5nXCIgPyBlcnIgOiBlcnIubWVzc2FnZVxuICAgICAgICAvLyAgIClcbiAgICAgICAgLy8gKVxuICAgICAgICAvLyAgIHJldHVybiBuZXcgVW5hdXRob3JpemVkUHJpdmF0ZURhdGFBY2Nlc3MoZXJyKSBhcyBFO1xuICAgICAgICBsZXQgbXNnID0gdHlwZW9mIGVyciA9PT0gXCJzdHJpbmdcIiA/IGVyciA6IGVyci5tZXNzYWdlO1xuICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgR2F0ZXdheUVycm9yICYmIGVyci5kZXRhaWxzLmxlbmd0aCAmJiBlcnIuY29kZSA9PT0gMTApIHtcbiAgICAgICAgICAgIG1zZyA9IGAke2Vyci5kZXRhaWxzWzBdLm1lc3NhZ2V9YDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRW5kb3JzZUVycm9yICYmXG4gICAgICAgICAgICBlcnIuZGV0YWlscy5sZW5ndGggJiZcbiAgICAgICAgICAgIGVyci5jb2RlID09PSAxMCAmJlxuICAgICAgICAgICAgZXJyLmRldGFpbHNbMF0ubWVzc2FnZT8uaW5jbHVkZXMoVW5zdXBwb3J0ZWRFcnJvci5uYW1lKSkge1xuICAgICAgICAgICAgbXNnID0gYCR7ZXJyLmRldGFpbHNbMF0ubWVzc2FnZX1gO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoXCJNVkNDX1JFQURfQ09ORkxJQ1RcIikpXG4gICAgICAgICAgICByZXR1cm4gbmV3IE12Y2NSZWFkQ29uZmxpY3RFcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKFwiREVBRExJTkVfRVhDRUVERURcIikpXG4gICAgICAgICAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uVGltZW91dEVycm9yKGVycik7XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoXCJjaGFpbmNvZGUgc3RyZWFtIHRlcm1pbmF0ZWRcIikgfHxcbiAgICAgICAgICAgIG1zZy5pbmNsdWRlcyhcIlJFU09VUkNFX0VYSEFVU1RFRFwiKSB8fFxuICAgICAgICAgICAgbXNnLmluY2x1ZGVzKFwicmVjZWl2ZWQgbWVzc2FnZSBsYXJnZXIgdGhhbiBtYXhcIikgfHxcbiAgICAgICAgICAgIG1zZy5pbmNsdWRlcyhcImdycGM6IHJlY2VpdmVkIG1lc3NhZ2UgbGFyZ2VyXCIpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBRdWVyeVJlc3VsdFRvb0xhcmdlRXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhcIkVORE9SU0VNRU5UX1BPTElDWV9GQUlMVVJFXCIpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBFbmRvcnNlbWVudFBvbGljeUVycm9yKGVycik7XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoXCJQSEFOVE9NX1JFQURfQ09ORkxJQ1RcIikpXG4gICAgICAgICAgICByZXR1cm4gbmV3IFBoYW50b21SZWFkQ29uZmxpY3RFcnJvcihlcnIpO1xuICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IgJiYgZXJyLmNvZGUpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoZXJyLmNvZGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRW5kb3JzZW1lbnRFcnJvcihlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoVmFsaWRhdGlvbkVycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBWYWxpZGF0aW9uRXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhOb3RGb3VuZEVycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKGVycik7XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoQ29uZmxpY3RFcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKEJhZFJlcXVlc3RFcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKGVycik7XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoUXVlcnlFcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgUXVlcnlFcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKFBhZ2luZ0Vycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQYWdpbmdFcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKFVuc3VwcG9ydGVkRXJyb3IubmFtZSkpXG4gICAgICAgICAgICByZXR1cm4gbmV3IFVuc3VwcG9ydGVkRXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhNaWdyYXRpb25FcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgTWlncmF0aW9uRXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhPYnNlcnZlckVycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZlckVycm9yKGVycik7XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoQXV0aG9yaXphdGlvbkVycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBBdXRob3JpemF0aW9uRXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhGb3JiaWRkZW5FcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgRm9yYmlkZGVuRXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhDb25uZWN0aW9uRXJyb3IubmFtZSkpXG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbm5lY3Rpb25FcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKFNlcmlhbGl6YXRpb25FcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGVycik7XG4gICAgICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihlcnIpO1xuICAgIH1cbn1cbl9fZGVjb3JhdGUoW1xuICAgIGRlYnVnKCksXG4gICAgZmluYWwoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbT2JqZWN0LCBPYmplY3QsIE9iamVjdCwgT2JqZWN0LCBGYWJyaWNDbGllbnRDb250ZXh0XSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBGYWJyaWNDbGllbnRBZGFwdGVyLnByb3RvdHlwZSwgXCJjcmVhdGVcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBkZWJ1ZygpLFxuICAgIGZpbmFsKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW09iamVjdCwgRmFicmljQ2xpZW50Q29udGV4dF0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRmFicmljQ2xpZW50QWRhcHRlci5wcm90b3R5cGUsIFwiaGVhbHRoY2hlY2tcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBkZWJ1ZygpLFxuICAgIGZpbmFsKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW09iamVjdCwgT2JqZWN0LCBGYWJyaWNDbGllbnRDb250ZXh0XSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBGYWJyaWNDbGllbnRBZGFwdGVyLnByb3RvdHlwZSwgXCJyZWFkXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgZGVidWcoKSxcbiAgICBmaW5hbCgpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtPYmplY3QsIE9iamVjdCwgT2JqZWN0LCBPYmplY3QsIEZhYnJpY0NsaWVudENvbnRleHRdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEZhYnJpY0NsaWVudEFkYXB0ZXIucHJvdG90eXBlLCBcInVwZGF0ZVwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIGRlYnVnKCksXG4gICAgZmluYWwoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbT2JqZWN0LCBPYmplY3QsIEZhYnJpY0NsaWVudENvbnRleHRdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEZhYnJpY0NsaWVudEFkYXB0ZXIucHJvdG90eXBlLCBcImRlbGV0ZVwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIGRlYnVnKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW09iamVjdCwgdHlwZW9mIChfYSA9IHR5cGVvZiBEICE9PSBcInVuZGVmaW5lZFwiICYmIEQpID09PSBcImZ1bmN0aW9uXCIgPyBfYSA6IE9iamVjdCwgT2JqZWN0LCBGYWJyaWNDbGllbnRDb250ZXh0XSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBGYWJyaWNDbGllbnRBZGFwdGVyLnByb3RvdHlwZSwgXCJyYXdcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBkZWJ1ZygpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtTdHJpbmcsIFN0cmluZywgT2JqZWN0LCBGYWJyaWNDbGllbnRDb250ZXh0XSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBGYWJyaWNDbGllbnRBZGFwdGVyLnByb3RvdHlwZSwgXCJ2aWV3XCIsIG51bGwpO1xuRmFicmljQ2xpZW50QWRhcHRlci5kZWNvcmF0aW9uKCk7XG5BZGFwdGVyLnNldEN1cnJlbnQoRmFicmljRmxhdm91cik7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lSbUZpY21salEyeHBaVzUwUVdSaGNIUmxjaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUwzTnlZeTlqYkdsbGJuUXZSbUZpY21salEyeHBaVzUwUVdSaGNIUmxjaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3TzBGQlFVRXNkME5CUVRaQ08wRkJRemRDTEU5QlFVOHNSVUZEVEN4WFFVRlhMRWRCUjFvc1RVRkJUU3gxUWtGQmRVSXNRMEZCUXp0QlFVTXZRaXhQUVVGUExFVkJRVVVzVFVGQlRTeEZRVUZGTEUxQlFVMHNaVUZCWlN4RFFVRkRPMEZCUTNaRExFOUJRVThzUzBGQlN5eEpRVUZKTEUxQlFVMHNaVUZCWlN4RFFVRkRPMEZCUTNSRExFOUJRVThzUlVGRFRDeExRVUZMTEVkQlIwNHNUVUZCVFN4blEwRkJaME1zUTBGQlF6dEJRVU40UXl4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUlVGQlJTeFBRVUZQTEVWQlFVVXNUVUZCVFN4dFFrRkJiVUlzUTBGQlF6dEJRVTB4UkN4UFFVRlBMRVZCUTB3c1QwRkJUeXhGUVU5UUxGbEJRVmtzUlVGRFdpeFpRVUZaTEVkQlEySXNUVUZCVFN3MlFrRkJOa0lzUTBGQlF6dEJRVU55UXl4UFFVRlBMRVZCUVVVc1QwRkJUeXhKUVVGSkxHRkJRV0VzUlVGQlJTeFBRVUZQTEVWQlFVVXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVVZ1UlN4UFFVRlBMRVZCUTB3c1YwRkJWeXhGUVVOWUxGTkJRVk1zUlVGRFZDd3dRa0ZCTUVJc1JVRkRNVUlzVVVGQlVTeEpRVUZKTEZWQlFWVXNSMEZEZGtJc2RVSkJRVzlDTzBGQlEzSkNMRTlCUVU4c1JVRkZUQ3hoUVVGaExFVkJRMklzWVVGQllTeEZRVU5pTEd0Q1FVRnJRaXhGUVVOc1FpeHhRa0ZCY1VJc1JVRkRja0lzWVVGQllTeEZRVU5pTEdGQlFXRXNSVUZEWWl4bFFVRmxMRVZCUldZc1pVRkJaU3hIUVVOb1FpeE5RVUZOTEhsQ1FVRjVRaXhEUVVGRE8wRkJRMnBETEU5QlFVOHNSVUZEVEN4UFFVRlBMRVZCUTFBc1QwRkJUeXhGUVVWUUxHdENRVUZyUWl4RlFVTnNRaXhsUVVGbExFVkJRMllzWTBGQll5eEZRVU5rTEdOQlFXTXNSVUZEWkN4aFFVRmhMRVZCUTJJc1YwRkJWeXhGUVVOWUxHVkJRV1VzUlVGRFppeFZRVUZWTEVWQlJWWXNaMEpCUVdkQ0xFZEJVV3BDTEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU03UVVGRGVFSXNUMEZCVHl4RlFVRkZMR0ZCUVdFc1JVRkJSU3hsUVVGbExFVkJRVVVzYVVOQlFUUkNPMEZCUTNKRkxFOUJRVThzUlVGQlJTeG5Ra0ZCWjBJc1JVRkJSU3gzUTBGQmJVTTdRVUZET1VRc1QwRkJUeXhGUVVGRkxHMUNRVUZ0UWl4RlFVRkZMR2xEUVVFNFFqdEJRVWsxUkN4UFFVRlBMRVZCUVVVc2NVSkJRWEZDTEVWQlFVVXNiVU5CUVdkRE8wRkJRMmhGTEU5QlFVOHNSVUZCUlN4eFFrRkJjVUlzUlVGQlJTeHRRMEZCWjBNN1FVRkRhRVVzVDBGQlR5eEZRVUZGTEhOQ1FVRnpRaXhGUVVGRkxHOURRVUZwUXp0QlFVTnNSU3hQUVVGUExFVkJRMHdzWjBKQlFXZENMRVZCUTJoQ0xITkNRVUZ6UWl4RlFVTjBRaXh4UWtGQmNVSXNSVUZEY2tJc2QwSkJRWGRDTEVWQlEzaENMSGRDUVVGM1FpeEZRVU40UWl4MVFrRkJkVUlzUjBGRGVFSXNPRUpCUVhsQ08wRkJSVEZDTEU5QlFVOHNSVUZCUlN4M1FrRkJkMElzUlVGQlJTeDFRa0ZCYjBJN1FVRkRka1FzVDBGQlR5eEZRVUZGTEUxQlFVMHNTVUZCU1N4RFFVRkRPMEZCUTNCQ0xFOUJRVThzUlVGQlJTeFhRVUZYTEVWQlFVVXNiMEpCUVdsQ08wRkJRM1pETEU5QlFVOHNSVUZCUlN4VlFVRlZMRVZCUVVVc0swSkJRVFJDTzBGQlEycEVMRTlCUVU4c1JVRkJSU3gxUWtGQmRVSXNSVUZCV1N3MlFrRkJkMEk3UVVGWGNFVTdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3TzBkQmEwUkhPMEZCUTBnc1RVRkJUU3hQUVVGUExHMUNRVUZ2UWl4VFFVRlJMRTlCUzNoRE8wbEJRME03TzA5QlJVYzdZVUZEV1N4WlFVRlBMRWRCUVVjc1NVRkJTU3hYUVVGWExFTkJRVU1zVFVGQlRTeERRVUZETEVGQlFURkNMRU5CUVRKQ08yRkJSV3hETEdWQlFWVXNSMEZCUnl4SlFVRkpMR2RDUVVGblFpeEZRVUZGTEVGQlFYcENMRU5CUVRCQ08yRkJSV3hETEZGQlFVY3NSMEZCUnl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRUZCUVc1RExFTkJRVzlETzBsQlMzaEVMRWxCUVhWQ0xFOUJRVTg3VVVGRE5VSXNUMEZCVHl4dFFrRkJiVUlzUTBGQlF6dEpRVU0zUWl4RFFVRkRPMGxCUlVRN096czdPMDlCUzBjN1NVRkRTQ3haUVVGWkxFMUJRV3RDTEVWQlFVVXNTMEZCWXp0UlFVTTFReXhMUVVGTExFTkJRMGdzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRVZCUVVVc2QwSkJRWGRDTEVWQlFVVXNUVUZCVFN4RFFVRkRMRVZCUTI1RUxHRkJRV0VzUlVGRFlpeExRVUZMTEVOQlEwNHNRMEZCUXp0UlFXeENaU3hsUVVGVkxFZEJRek5DTEcxQ1FVRnRRaXhEUVVGRExGVkJRVlVzUTBGQlF6dEpRV3RDYWtNc1EwRkJRenRKUVVWVExGbEJRVmtzUTBGRGNFSXNTMEZCT0VJc1JVRkRPVUlzUjBGQlJ5eEpRVUY1UXp0UlFVVTFReXhQUVVGUExHMUNRVUZ0UWl4RFFVRkRMRmxCUVZrc1EwRkJReXhMUVVGTExFVkJRVVVzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRM1pGTEVOQlFVTTdTVUZGVXl4VlFVRlZMRU5CUTJ4Q0xFdEJRVGhDTEVWQlF6bENMRWRCUVVjc1NVRkJlVU03VVVGRk5VTXNUMEZCVHl4dFFrRkJiVUlzUTBGQlF5eFZRVUZWTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTnlSU3hEUVVGRE8wbEJSVk1zVjBGQlZ5eERRVU51UWl4TFFVRTRRaXhGUVVNNVFpeEhRVUZITEVsQlFYbERPMUZCUlRWRExFOUJRVThzYlVKQlFXMUNMRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGRFVXNRMEZCUXp0SlFVVlJMRk5CUVZNc1EwRkRhRUlzVTBGQmFVTTdVVUZGYWtNc1QwRkJUeXhKUVVGSkxIRkNRVUZ4UWl4RFFVRkRMRWxCUVVrc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dEpRVU53UkN4RFFVRkRPMGxCUlVRc1UwRkJVeXhEUVVOUUxFdEJRVEJETEVWQlF6RkRMRWxCUVZrc1JVRkRXaXhMUVVGeFFqdFJRVVZ5UWl4UFFVRlBMRWxCUVVrc2NVSkJRWEZDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSU3hKUVVGSkxFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdTVUZETjBRc1EwRkJRenRKUVVWclFpeExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVTTFRaXhUUVVGcFF5eEZRVU5xUXl4TFFVRnZSQ3hGUVVOd1JDeExRVUZwUXl4RlFVTnFReXhIUVVGSExFbEJRVmM3VVVGRlpDeE5RVUZOTEZkQlFWY3NSMEZCUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRekZFTEUxQlFVMHNRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRM0pDTEUxQlFVMHNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFVkJRVVVzUzBGQlN5eEZRVUZGTEZkQlFWY3NSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVNeFJDeERRVUZETzFGQlEwWXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRXQ3hEUVVGRE8wbEJSVkVzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZEY0VJc1UwRkJkVVFzUlVGRGRrUXNVMEZCY1VNc1JVRkRja01zUzBGQmQwTXNSVUZEZUVNc1IwRkJSeXhKUVVFMlF6dFJRVVZvUkN4TlFVRk5MRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGRrTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkRVQ3cwUWtGQk5FSXNVMEZCVXl4cFFrRkJhVUlzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxGVkJRVlVzVTBGQlV5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMSE5DUVVGelFpeERRVU4wVVN4RFFVRkRPMUZCUTBZc1NVRkJTU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUTNKQ0xFbEJRVWtzVDBGQlR5eEhRVUZITEV0QlFVc3NWMEZCVnl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExGbEJRVmtzVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTTFSQ3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJZc1IwRkJSeXhIUVVGSExGTkJRVk1zUTBGQlF6dFJRVU5zUWl4RFFVRkRPMUZCUlVRc1UwRkJVeXhIUVVGSExFZEJRVWM3V1VGRFlpeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzUjBGQlJ5eERRVUZETEZkQlFWY3NSVUZCUlN4RlFVRkZMRk5CUVZNc1EwRkJRenRaUVVOcVJDeERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRPMUZCUTJRc1RVRkJUU3hMUVVGTExFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVTTFRaXhQUVVGUExGTkJRVk1zUzBGQlN5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NSVUZETVVRc1MwRkJTeXhGUVVOTUxGTkJRWFZETEVWQlEzWkRMRWRCUVVjc1EwRkJReXhIUVVGSExFbEJRVWtzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRMnhETEVOQlFVTTdVVUZGUml4SlFVRkpMRWRCUVVjc1JVRkJSU3hEUVVGRE8xbEJRMUlzU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4WlFVRlpMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETzJkQ1FVTnVReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJReXhWUVVGVkxFTkJRVU03YjBKQlF6TkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF6dHZRa0ZEWml4SFFVRkhMRXRCUVVzN2IwSkJRMUlzWVVGQllTeEZRVUZGTEVkQlFVYzdhVUpCUTI1Q0xFTkJRVkVzUTBGQlF6dG5Ra0ZEVml4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGRE8yOUNRVU5pTEdGQlFXRXNSVUZCUlR0M1FrRkRZaXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEdOQlFXTXNRMEZCUXl4bFFVRmxMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU03ZDBKQlF6bERMRTFCUVUwN2NVSkJRMUE3YVVKQlEwWXNRMEZCUXl4RFFVRkRPMmRDUVVOSUxFOUJRVThzVFVGQlRTeERRVUZETzFsQlEyaENMRU5CUVVNN1dVRkRSQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eEhRVUZITEVOQlFVTXNZMEZCWXl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8xbEJRMnhFTEUxQlFVMHNXVUZCV1N4SFFVRkhMRWRCUVVjc1EwRkJReXhqUVVGakxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJRenRaUVVNeFJDeEpRVU5GTEVOQlFVTXNVMEZCVXp0blFrRkRWaXhUUVVGVExFdEJRVXNzVTBGQlV6dG5Ra0ZEZGtJc1EwRkJReXhMUVVGTExFbEJRVWtzUzBGQlN5eExRVUZMTEZsQlFWa3NRMEZCUXl4RlFVTnFReXhEUVVGRE8yZENRVU5FTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEZWQlFWVXNRMEZCUXp0dlFrRkRNME1zUjBGQlJ5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRPMjlDUVVObUxFZEJRVWNzUzBGQlN6dHZRa0ZEVWl4aFFVRmhMRVZCUVVVc1IwRkJSenRwUWtGRGJrSXNRMEZCVVN4RFFVRkRPMmRDUVVWV0xFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFVTTdiMEpCUTJJc1lVRkJZU3hGUVVGRk8zZENRVU5pTEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1kwRkJZeXhEUVVGRExHVkJRV1VzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0M1FrRkRPVU1zVFVGQlRUdHhRa0ZEVUR0cFFrRkRSaXhEUVVGRExFTkJRVU03WjBKQlEwZ3NUMEZCVHl4TlFVRk5MRU5CUVVNN1dVRkRhRUlzUTBGQlF6dFpRVU5FTEU5QlFVOHNSMEZCUnl4RFFVRkRMRlZCUVZVc1EwRkJReXhMUVVGTExFTkJRVkVzUTBGQlF6dFJRVU4wUXl4RFFVRkRPMUZCUlVRc1QwRkJUeXhKUVVGSkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNN1dVRkRia01zUjBGQlJ5eExRVUZMTzFOQlExUXNRMEZCVVN4RFFVRkRPMGxCUTFvc1EwRkJRenRKUVVWRU96czdPenRQUVV0SE8wbEJRMGdzVFVGQlRTeERRVUZETEVsQlFXZENPMUZCUTNKQ0xFOUJRVThzYlVKQlFXMUNMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTnNSQ3hEUVVGRE8wbEJSVkVzVlVGQlZUdFJRVTFxUWl4UFFVRlBMSE5DUVVGdFJDeERRVUZETzBsQlF6ZEVMRU5CUVVNN1NVRkZVeXhaUVVGWkxFTkJRM0JDTEV0QlFYRkNMRVZCUTNKQ0xFVkJRV3RDTEVWQlEyeENMRXRCUVRCQ0xFVkJRekZDTEVkQlFVY3NTVUZCTmtNN1VVRlJhRVFzVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRSUVVONlJDeE5RVUZOTEZOQlFWTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzcERMRTFCUVUwc1RVRkJUU3hIUVVGM1FpeEZRVUZGTEVOQlFVTTdVVUZEZGtNc1RVRkJUU3hEUVVGRExGZEJRVmNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNN1VVRkRkRU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRE4wSXNUMEZCVHl4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRla01zUTBGQlF6dEpRVVZFT3pzN096czdPenRQUVZGSE8wbEJRMDhzWlVGQlpTeERRVU4yUWl4TFFVRnhRaXhGUVVOeVFpeEhRVUYzUWl4RlFVTjRRaXhOUVVFMlFpeEZRVU0zUWl4SFFVRkhMRWxCUVRaRE8xRkJSV2hFTEUxQlFVMHNVMEZCVXl4SFFVRkhMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEZWtNc1NVRkJTU3hIUVVGSExFTkJRVU1zVFVGQlRTeExRVUZMTEUxQlFVMHNRMEZCUXl4TlFVRk5PMWxCUXpsQ0xFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNNRU5CUVRCRExFTkJRVU1zUTBGQlF6dFJRVU4wUlN4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eERRVUZETzFGQlF6VkVMRTFCUVUwc1QwRkJUeXhIUVVGSExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVU3V1VGRGNFTXNUVUZCVFN4TlFVRk5MRWRCUVhkQ0xFVkJRVVVzUTBGQlF6dFpRVU4yUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXp0WlFVTjBReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU55UXl4UFFVRlBMRTFCUVUwc1EwRkJRenRSUVVOb1FpeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTklMRTlCUVU4c1EwRkJReXhMUVVGTExFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRek5ETEVOQlFVTTdTVUZGVXl4bFFVRmxMRU5CUTNaQ0xFdEJRWEZDTEVWQlEzSkNMRWRCUVhGQ0xFVkJRM0pDTEUxQlFUWkNMRVZCUXpkQ0xFZEJRVWNzU1VGQk5rTTdVVUZGYUVRc1RVRkJUU3hUUVVGVExFZEJRVWNzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVONlF5eEpRVUZKTEVkQlFVY3NRMEZCUXl4TlFVRk5MRXRCUVVzc1RVRkJUU3hEUVVGRExFMUJRVTA3V1VGRE9VSXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXd3UTBGQk1FTXNRMEZCUXl4RFFVRkRPMUZCUTNSRkxFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNN1VVRkROVVFzVFVGQlRTeFBRVUZQTEVkQlFVY3NSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVU3V1VGRE0wSXNUVUZCVFN4TlFVRk5MRWRCUVhkQ0xFVkJRVVVzUTBGQlF6dFpRVU4yUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXp0WlFVTjBReXhQUVVGUExFMUJRVTBzUTBGQlF6dFJRVU5vUWl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOSUxFOUJRVThzUTBGQlF5eExRVUZMTEVWQlFVVXNSMEZCUnl4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzBsQlF6TkRMRU5CUVVNN1NVRkZSRHM3T3pzN096czdUMEZSUnp0SlFVTk5MRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRM1JDTEV0QlFYRkNMRVZCUTNKQ0xFZEJRWEZDTEVWQlEzSkNMRTFCUVRaQ0xFVkJRemRDTEVkQlFVY3NTVUZCZVVNN1VVRkZOVU1zU1VGQlNTeEhRVUZITEVOQlFVTXNUVUZCVFN4TFFVRkxMRTFCUVUwc1EwRkJReXhOUVVGTk8xbEJRemxDTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc01FTkJRVEJETEVOQlFVTXNRMEZCUXp0UlFVTjBSU3hQUVVGUE8xRkJRMUFzVFVGQlRTeFBRVUZQTEVkQlFVY3NRMEZCUXl4SFFVRkpMRWxCUVhsQ0xFTkJRVU1zUTBGQlF6dFJRVU5vUkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhQUVVGUExFTkJRVU1zUzBGQlN5eEZRVUZ4UXl4RFFVRkRPMUZCUTNKRkxFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGRE9VSXNUMEZCT0VNc1JVRkRPVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZEWml4RFFVRkRPMUZCUTBZc1RVRkJUU3hUUVVGVExFZEJRVWNzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVWNlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1IwRkJSeXhEUVVGRExFMUJRVTBzWlVGQlpTeFRRVUZUTEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUXk5RUxFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNVVUZCVVN4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRek5DTEUxQlFVMHNXVUZCV1N4SFFVRkhMRk5CUVZNc1NVRkJTU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGNFVXNUVUZCVFN4blFrRkJaMElzUjBGRGNFSXNXVUZCV1N4SlFVRkpMRWxCUVVrc1EwRkJReXd5UWtGQk1rSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVONFJDeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVONFF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFVkJRVVVzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVTjZReXhEUVVGRE8xRkJSVVlzVFVGQlRTeE5RVUZOTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVOQlEzcERMRWRCUVVjc1JVRkRTQ3h4UWtGQmNVSXNRMEZCUXl4VlFVRlZMRVZCUTJoRExFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVWQlEyeERMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4RlFVRkZMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlEzSkVMRWxCUVVrc1EwRkJReXg1UWtGQmVVSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkRia01zUzBGQlN5eERRVU5PTEVOQlFVTTdVVUZGUml4SlFVRkpMRWRCUVRCQ0xFTkJRVU03VVVGREwwSXNTVUZCU1N4RFFVRkRPMWxCUTBnc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM1pGTEVOQlFVTTdVVUZCUXl4UFFVRlBMRU5CUVZVc1JVRkJSU3hEUVVGRE8xbEJRM0JDTEUxQlFVMHNTVUZCU1N4clFrRkJhMElzUTBGQlF5eERRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTXpReXhEUVVGRE8xRkJSVVFzU1VGRFJTeEpRVUZKTEVOQlFVTXNkVUpCUVhWQ0xFTkJRekZDTEV0QlFVc3NSVUZEVEN4SFFVRkhMRVZCUTBnc1owSkJRV2RDTEVWQlEyaENMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJWeXhEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVTTFReXhGUVVORUxFTkJRVU03V1VGRFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUTJwQ0xFdEJRVXNzUlVGRFRDeFZRVUZWTEVOQlExSXNTMEZCU3l4RlFVTk1MRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkRiRUlzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZEVkN4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZSTEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVWQlEycEVMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGRFVDeERRVU5HTEVWQlEwUXNSMEZCUnl4RFFVTktMRVZCUTBRc1IwRkJSeXhEUVVOS0xFTkJRVU03VVVGRFNpeERRVUZETzFGQlJVUXNUMEZCVHl4SFFVRkhMRU5CUVVNN1NVRkRZaXhEUVVGRE8wbEJSVVE3T3pzN096dFBRVTFITzBsQlEwMHNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkRjRUlzUzBGQmNVSXNSVUZEY2tJc1IwRkJjVUlzUlVGRGNrSXNSMEZCUnl4SlFVRjVRenRSUVVVMVF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU55UkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNwRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4SFFVRkhMRU5CUVVNc1RVRkJUU3hsUVVGbExGTkJRVk1zVVVGQlVTeERRVUZETEVOQlFVTTdVVUZEYUVVc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eFJRVUZSTEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRNMElzVFVGQlRTeE5RVUZOTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlF6TkRMRWRCUVVjc1JVRkRTQ3h4UWtGQmNVSXNRMEZCUXl4UlFVRlJMRVZCUXpsQ0xFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVOeVFpeFRRVUZUTEVWQlExUXNVMEZCVXl4RlFVTlVMRXRCUVVzc1EwRkRUaXhEUVVGRE8xRkJRMFlzU1VGQlNTeERRVUZETzFsQlEwZ3NUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjRSU3hEUVVGRE8xRkJRVU1zVDBGQlR5eERRVUZWTEVWQlFVVXNRMEZCUXp0WlFVTndRaXhOUVVGTkxFbEJRVWtzYTBKQlFXdENMRU5CUVVNc1EwRkJWU3hEUVVGRExFTkJRVU03VVVGRE0wTXNRMEZCUXp0SlFVTklMRU5CUVVNN1NVRkZSRHM3T3pzN096czdUMEZSUnp0SlFVTk5MRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRM1JDTEV0QlFYRkNMRVZCUTNKQ0xFZEJRWEZDTEVWQlEzSkNMRTFCUVRaQ0xFVkJRemRDTEVkQlFVY3NTVUZCZVVNN1VVRkZOVU1zU1VGQlNTeEhRVUZITEVOQlFVTXNUVUZCVFN4TFFVRkxMRTFCUVUwc1EwRkJReXhOUVVGTk8xbEJRemxDTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc01FTkJRVEJETEVOQlFVTXNRMEZCUXp0UlFVTjBSU3hOUVVGTkxFOUJRVThzUjBGQlJ5eERRVUZETEVkQlFVa3NTVUZCZVVJc1EwRkJReXhEUVVGRE8xRkJRMmhFTEUxQlFVMHNVMEZCVXl4SFFVRkhMRTlCUVU4c1EwRkJReXhMUVVGTExFVkJRWEZETEVOQlFVTTdVVUZEY2tVc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVNNVFpeFBRVUU0UXl4RlFVTTVReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVU5tTEVOQlFVTTdVVUZEUml4TlFVRk5MRk5CUVZNc1IwRkJSeXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNwRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4SFFVRkhMRU5CUVVNc1RVRkJUU3hsUVVGbExGTkJRVk1zVVVGQlVTeERRVUZETEVOQlFVTTdVVUZEYWtVc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eFJRVUZSTEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRNMElzVFVGQlRTeFpRVUZaTEVkQlFVY3NVMEZCVXl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOd1JTeE5RVUZOTEdkQ1FVRm5RaXhIUVVOd1FpeFpRVUZaTEVsQlFVa3NTVUZCU1N4RFFVRkRMREpDUVVFeVFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNoRUxFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUTNoRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlEzcERMRU5CUVVNN1VVRkZSaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGRGVrTXNSMEZCUnl4RlFVTklMSEZDUVVGeFFpeERRVUZETEZWQlFWVXNSVUZEYUVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGRGJFTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVTBGQlV5eERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGRGNrUXNTVUZCU1N4RFFVRkRMSGxDUVVGNVFpeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVTnVReXhMUVVGTExFTkJRMDRzUTBGQlF6dFJRVVZHTEVsQlFVa3NSMEZCVVN4RFFVRkRPMUZCUTJJc1NVRkJTU3hEUVVGRE8xbEJRMGdzUjBGQlJ5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzWkZMRU5CUVVNN1VVRkJReXhQUVVGUExFTkJRVlVzUlVGQlJTeERRVUZETzFsQlEzQkNMRTFCUVUwc1NVRkJTU3hyUWtGQmEwSXNRMEZCUXl4RFFVRlZMRU5CUVVNc1EwRkJRenRSUVVNelF5eERRVUZETzFGQlJVUXNTVUZCU1N4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1JVRkJSU3huUWtGQlowSXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEzWkZMRTlCUVU4c1NVRkJTU3hEUVVGRExFOUJRVThzUTBGRGFrSXNTMEZCU3l4RlFVTk1MRlZCUVZVc1EwRkRVaXhMUVVGTExFVkJRMHdzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVU5zUWl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVOVUxFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVZFc1JVRkJSU3hUUVVGVExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1JVRkRha1FzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVTlFMRU5CUTBZc1JVRkRSQ3hIUVVGSExFTkJRMG9zUlVGRFJDeEhRVUZITEVOQlEwb3NRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkRSQ3hQUVVGUExFZEJRVWNzUTBGQlF6dEpRVU5pTEVOQlFVTTdTVUZGUkRzN096czdPenRQUVU5SE8wbEJRMDBzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZEZEVJc1MwRkJjVUlzUlVGRGNrSXNSMEZCY1VJc1JVRkRja0lzUjBGQlJ5eEpRVUY1UXp0UlFVVTFReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRGFFVXNUVUZCVFN4VFFVRlRMRWRCUVVjc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVVjZReXhOUVVGTkxHZENRVUZuUWl4SFFVTndRaXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXd5UWtGQk1rSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOd1JTeEpRVUZKTEUxQlFWY3NRMEZCUXp0UlFVTm9RaXhOUVVGTkxHRkJRV0VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNkVUpCUVhWQ0xFTkJRMmhFTEV0QlFVc3NSVUZEVEN4SFFVRkhMRVZCUTBnc1owSkJRV2RDTEVWQlEyaENMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGRFVDeERRVUZETzFGQlEwWXNTVUZCU1N4aFFVRmhMRVZCUVVVc1EwRkJRenRaUVVOc1FpeE5RVUZOTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOMFJDeERRVUZETzFGQlJVUXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzUTBGQlF5eE5RVUZOTEdWQlFXVXNVMEZCVXl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVOcVJTeEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRkZCUVZFc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU16UWl4TlFVRk5MRWRCUVVjc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkRkRU1zUjBGQlJ5eEZRVU5JTEhGQ1FVRnhRaXhEUVVGRExGVkJRVlVzUlVGRGFFTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVWQlEzSkNMRk5CUVZNc1JVRkRWQ3hKUVVGSkxFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRMjVETEV0QlFVc3NRMEZEVGl4RFFVRkRPMUZCUTBZc1NVRkJTU3hEUVVGRE8xbEJRMGdzVDBGQlR5eGhRVUZoTzJkQ1FVTnNRaXhEUVVGRExFTkJRVU1zVFVGQlRUdG5Ra0ZEVWl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCVFN4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRiRVVzUTBGQlF6dFJRVUZETEU5QlFVOHNRMEZCVlN4RlFVRkZMRU5CUVVNN1dVRkRjRUlzVFVGQlRTeEpRVUZKTEd0Q1FVRnJRaXhEUVVGRExFTkJRVlVzUTBGQlF5eERRVUZETzFGQlF6TkRMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wbEJSVVE3T3pzN096czdPMDlCVVVjN1NVRkRUU3hQUVVGUExFTkJRMlFzUzBGQlVTeEZRVU5TTEVkQlFVY3NTVUZCZVVNN1VVRkZOVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGNrUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTnlReXhKUVVGTExFdEJRV0VzUTBGQlF5eGxRVUZsTEVOQlFVTXNVVUZCVVN4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVNM1F5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVTlFMREJEUVVFeVF5eExRVUZoTEVOQlFVTXNaVUZCWlN4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRkxFTkJRM0pHTEVOQlFVTTdXVUZEUml4TlFVRk5MRU5CUVVNc1kwRkJZeXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVWQlFVVXNaVUZCWlN4RFFVRkRMRkZCUVZFc1JVRkJSVHRuUWtGRE0wUXNWVUZCVlN4RlFVRkZMRXRCUVVzN1owSkJRMnBDTEZGQlFWRXNSVUZCUlN4TFFVRkxPMmRDUVVObUxGbEJRVmtzUlVGQlJTeEpRVUZKTzJkQ1FVTnNRaXhMUVVGTExFVkJRVWNzUzBGQllTeERRVUZETEdWQlFXVXNRMEZCUXl4UlFVRlJMRU5CUVVNN1lVRkRhRVFzUTBGQlF5eERRVUZETzFGQlEwd3NRMEZCUXp0UlFVVkVMRTFCUVUwc1ZVRkJWU3hIUVVGSExFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRNME1zU1VGQlNTeFZRVUZWTEVWQlFVVXNRMEZCUXp0WlFVTm1MRTFCUVUwc1UwRkJVeXhIUVVGSExGVkJRVlVzUTBGQlF5eExRVUZMTEVOQlFVTTdXVUZEYmtNc1NVRkJTU3hEUVVGRExGTkJRVk03WjBKQlFVVXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXc0UWtGQk9FSXNRMEZCUXl4RFFVRkRPMWxCUTNoRkxFbEJRVWtzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4NVFrRkJlVUlzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1dVRkRja1FzU1VGQlNTeEhRVUZITEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFpRVU16UXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhEUVVGRExFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEYkVRc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF6dG5Ra0ZEWWl4aFFVRmhMRVZCUVVVc1RVRkJUVHRuUWtGRGNrSXNjMEpCUVhOQ0xFVkJRVVVzVFVGQlRUdG5Ra0ZET1VJc1RVRkJUU3hGUVVGRkxFbEJRVWs3WVVGRFlpeERRVUZETEVOQlFVTTdVVUZEVEN4RFFVRkRPMUZCUlVRc1QwRkJUenRaUVVOTUxFMUJRVTBzUlVGQlJTeExRVUZMTEVOQlFVTXNTMEZCU3p0WlFVTnVRaXhMUVVGTExFVkJRVVVzUzBGQlN5eERRVUZETEV0QlFVczdXVUZEYkVJc1JVRkJSU3hGUVVGRkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVFMlFpeERRVUZETEVOQlFWYzdXVUZEYkVVc1UwRkJVeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFRRVUZUTzFsQlF6RkNMRkZCUVZFc1JVRkJSU3hMUVVGTExFTkJRVU1zVVVGQlVUdFpRVU40UWl4TlFVRk5MRVZCUVVVc1MwRkJTeXhEUVVGRExFMUJRVTA3VTBGRGNrSXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZVU3hOUVVGTkxFTkJRMklzUjBGQmQwSXNSVUZEZUVJc1MwRkJjVUlzUlVGRGNrSXNSVUZCYTBJc1JVRkRiRUlzVTBGQkswSXNSVUZETDBJc1IwRkJSeXhKUVVGNVF6dFJRVVUxUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTndSQ3hKUVVORkxGTkJRVk03V1VGRFZDeEpRVUZKTEVOQlFVTXNNRUpCUVRCQ0xFTkJRemRDTEVkQlFVY3NSVUZEU0N4SFFVRkhMRU5CUVVNc1kwRkJZeXhEUVVGRExGZEJRVmNzUTBGQmRVSXNRMEZEZEVRc1JVRkRSQ3hEUVVGRE8xbEJRMFFzUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZEVkN4dFEwRkJiVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZEZGtVc1EwRkJRenRaUVVOR0xFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNVMEZCWjBNc1EwRkJRenRwUWtGRE4wTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhYUVVGWExFTkJRVU03YVVKQlF6TkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRVZCUVVVN1owSkJRM1JDTEVsQlFVa3NSMEZCUnl4SlFVRkpMRWRCUVVjc1NVRkJTeXhIUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NVMEZCVXp0dlFrRkRMME1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZEVGl4M1FrRkJkMElzUjBGQlJ5d3lSRUZCTWtRc1EwRkRka1lzUTBGQlF6dG5Ra0ZEU0N4SFFVRlRMRU5CUVVNc1IwRkJZeXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETzFsQlEyNURMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMUFzUTBGQlF6dFJRVVZFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVzc1MwRkJkMElzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVVnNSQ3hQUVVGUExFMUJRVTBzUTBGQlF6dEpRVU5vUWl4RFFVRkRPMGxCUlU4c01FSkJRVEJDTEVOQlEyaERMRWRCUVhkQ0xFVkJRM2hDTEZOQlFXdENPMUZCUld4Q0xFbEJRVWtzUTBGQlF5eEhRVUZITzFsQlFVVXNUMEZCVHl4TFFVRkxMRU5CUVVNN1VVRkRka0lzU1VGQlNTeEhRVUZITEVOQlFVTXNZMEZCWXl4RFFVRkRMSE5DUVVGelFpeERRVUZETzFsQlFVVXNUMEZCVHl4SlFVRkpMRU5CUVVNN1VVRkROVVFzVFVGQlRTeFpRVUZaTEVkQlEyaENMRTlCUVZFc1IwRkJWeXhEUVVGRExHVkJRV1VzUzBGQlN5eFZRVUZWTzFsQlEyaEVMRU5CUVVNc1EwRkJSU3hIUVVGWExFTkJRVU1zWlVGQlpTeERRVUZETEhOQ1FVRnpRaXhEUVVGRE8xbEJRM1JFTEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNN1VVRkRhRUlzU1VGQlNTeFpRVUZaTzFsQlFVVXNUMEZCVHl4SlFVRkpMRU5CUVVNN1VVRkRPVUlzVFVGQlRTeFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEVkQlFVY3NSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVONlJDeEpRVUZKTEVOQlFVTXNWVUZCVlR0WlFVRkZMRTlCUVU4c1MwRkJTeXhEUVVGRE8xRkJRemxDTEUxQlFVMHNSVUZCUlN4SFFVRkhMRlZCUVZVc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0UlFVTXZReXhQUVVGUExFTkJRMHdzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNN1dVRkRia0lzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNN1dVRkRia0lzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNN1dVRkRjRUlzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4WFFVRlhMRU5CUVVNN1dVRkRlRUlzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkRjRUlzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGVHl4blFrRkJaMElzUTBGRGRFSXNSMEZCZDBJc1JVRkRlRUlzVTBGQmEwSTdVVUZGYkVJc1NVRkJTU3hUUVVGVE8xbEJRVVVzVDBGQlR5eFRRVUZUTEVOQlFVTTdVVUZEYUVNc1NVRkJTU3hQUVVGUkxFZEJRVmNzUTBGQlF5eGxRVUZsTEV0QlFVc3NWVUZCVlN4RlFVRkZMRU5CUVVNN1dVRkRka1FzVDBGQlVTeEhRVUZYTEVOQlFVTXNaVUZCWlN4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8xRkJRMjVFTEVOQlFVTTdVVUZEUkN4UFFVRlBMRk5CUVZNc1EwRkJRenRKUVVOdVFpeERRVUZETzBsQlJVOHNkVUpCUVhWQ0xFTkJRemRDTEV0QlFYRkNMRVZCUTNKQ0xFZEJRWGRDTEVWQlEzaENMRmxCUVhGQ0xFVkJRM0pDTEVWQlFXMUNPMUZCUlc1Q0xFbEJRVWtzUTBGQlF5eFpRVUZaTzFsQlFVVXNUMEZCVHl4TFFVRkxMRU5CUVVNN1VVRkRhRU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU16UWl4TlFVRk5MRkZCUVZFc1IwRkJSeXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVNelF5eE5RVUZOTEZOQlFWTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTTNReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEZRVUZGTEV0QlFVc3NVMEZCVXl4SlFVRkpMRVZCUVVVc1MwRkJTeXhKUVVGSkxFTkJRVU03VVVGRE9VTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1NVRkJTU3hSUVVGUk8xbEJRVVVzVDBGQlR5eEpRVUZKTEVOQlFVTTdVVUZEY0VNc1NVRkJTU3hEUVVGRExFdEJRVXNzU1VGQlNTeFRRVUZUTEVWQlFVVXNRMEZCUXp0WlFVTjRRaXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZEWWl3d1JFRkJNRVFzUTBGRE0wUXNRMEZCUXp0WlFVTkdMRTlCUVU4c1MwRkJTeXhEUVVGRE8xRkJRMllzUTBGQlF6dFJRVU5FTEU5QlFVOHNTMEZCU3l4RFFVRkRPMGxCUTJZc1EwRkJRenRKUVVWUExIZENRVUYzUWl4RFFVTTVRaXhoUVVFNFF5eEZRVU01UXl4SFFVRjNRanRSUVVWNFFpeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFbEJRVWtzUTBGQlF5d3dRa0ZCTUVJc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dFJRVU40UlN4TlFVRk5MRmxCUVZrc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEdOQlFXTXNRMEZCUXl3d1FrRkJNRUlzUTBGQlF5eERRVUZETzFGQlEzUkZMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNTVUZCU1N4RFFVRkRMRmxCUVZrN1dVRkJSU3hQUVVGUExGTkJRVk1zUTBGQlF6dFJRVU42UkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhIUVVGSExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTTdVVUZEY0VNc1RVRkJUU3hQUVVGUExFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkZMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdVVUZEZWtVc1NVRkJTU3haUVVGWkxFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dFpRVU5zUkN4UFFVRlBMRU5CUVVNc1pVRkJaU3hEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXp0UlFVTnFSQ3hEUVVGRE8xRkJRMFFzVDBGQlR5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU03U1VGRE0wUXNRMEZCUXp0SlFVVlBMREJDUVVFd1FpeERRVUZETEV0QlFXTTdVVUZETDBNc1NVRkJTU3hMUVVGTExFdEJRVXNzVTBGQlV5eEpRVUZKTEV0QlFVc3NTMEZCU3l4SlFVRkpPMWxCUVVVc1QwRkJUeXhMUVVGTExFTkJRVU03VVVGRGVFUXNTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF6dFpRVU4wUWl4UFFVRlBMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXd3UWtGQk1FSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM0pGTEVsQlFVa3NUMEZCVHl4TFFVRkxMRXRCUVVzc1VVRkJVVHRaUVVGRkxFOUJRVThzU1VGQlNTeERRVUZETzFGQlF6TkRMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCWjBNc1EwRkJReXhEUVVGRE8xRkJRMnBGTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUVHRaUVVGRkxFOUJRVThzUzBGQlN5eERRVUZETzFGQlEyeERMRTlCUVU4c1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETERCQ1FVRXdRaXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZETjBVc1EwRkJRenRKUVVWUExIbENRVUY1UWl4RFFVTXZRaXhIUVVGM1FqdFJRVVY0UWl4TlFVRk5MRTFCUVUwc1IwRkRWaXhIUVVGSExFTkJRVU1zWTBGQll5eERRVUZETEdWQlFXVXNRMEZCUXp0WlFVTnNReXhIUVVGSExFTkJRVU1zWTBGQll5eERRVUZETEdWQlFXVXNRMEZCTUVJc1EwRkJRenRSUVVOb1JTeEpRVUZKTEUxQlFVMHNTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUVHRaUVVGRkxFOUJRVThzVFVGQlRTeERRVUZETzFGQlF6TkRMRTlCUVU4c1EwRkRTaXhIUVVGSExFTkJRVU1zWlVGQlpTeERRVUZETEdWQlFXVXNRMEZCTUVJN1dVRkROMFFzUjBGQlJ5eERRVUZETEdWQlFXVXNRMEZCUXl4bFFVRmxMRU5CUVRCQ0xFTkJReTlFTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlU4c01rSkJRVEpDTzBsQlEycERMRFpFUVVFMlJEdEpRVU0zUkN4SFFVRjNRanRSUVVWNFFpeFBRVUZQTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRPMGxCUXpWRExFTkJRVU03U1VGRlJEczdPenM3T3pzN1QwRlJSenRKUVVkWkxFRkJRVTRzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZEYmtJc1MwRkJjVUlzUlVGRGNrSXNSVUZCYTBJc1JVRkRiRUlzUzBGQk1FSXNSVUZETVVJc1dVRkJhVU1zUlVGQlJTeEZRVU51UXl4SFFVRkhMRWxCUVhsRE8xRkJSVFZETEUxQlFVMHNUMEZCVHl4SFFVRkhMRU5CUVVNc1IwRkJTU3hKUVVGNVFpeERRVUZETEVOQlFVTTdVVUZEYUVRc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVNNVFpeFBRVUU0UXl4RlFVTTVReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVU5hTEVOQlFVTTdVVUZEUml4TlFVRk5MRk5CUVZNc1IwRkJSeXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNwRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNiVUpCUVcxQ0xGTkJRVk1zVVVGQlVTeERRVUZETEVOQlFVTTdVVUZEYkVRc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRka0lzVFVGQlRTeFpRVUZaTEVkQlFVY3NVMEZCVXl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOd1JTeE5RVUZOTEdkQ1FVRm5RaXhIUVVOd1FpeFpRVUZaTEVsQlFVa3NTVUZCU1N4RFFVRkRMREpDUVVFeVFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNoRUxFMUJRVTBzVFVGQlRTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVU42UXl4SFFVRkhMRVZCUTBnc1lVRkJZU3hEUVVGRExFMUJRVTBzUlVGRGNFSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVWQlFVVXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFVkJRemxETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eEZRVUZGTEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRM0pFTEVsQlFVa3NRMEZCUXl4NVFrRkJlVUlzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZEYmtNc1MwRkJTeXhEUVVOT0xFTkJRVU03VVVGRFJpeE5RVUZOTEZsQlFWa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGRFVXNTVUZCU1N4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1JVRkJSU3huUWtGQlowSXNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRMjVGTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkRaQ3hMUVVGTExFVkJRMHdzVlVGQlZTeERRVU5TTEV0QlFVc3NSVUZEVEN4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVOVUxFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hUUVVGVExFbEJRVWtzUlVGQlJTeERRVUZETEVWQlEzcERMRmxCUVZrc1JVRkRXaXhMUVVGTExFTkJRMDRzUlVGRFJDeEZRVUZGTEVOQlEwZ3NSVUZEUkN4SFFVRkhMRU5CUTBvc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGRFJDeFBRVUZQTEZsQlFWa3NRMEZCUXp0SlFVTjBRaXhEUVVGRE8wbEJTVXNzUVVGQlRpeExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVTm1MRXRCUVhGQ0xFVkJRM0pDTEVkQlFVY3NTVUZCZVVNN1VVRkZOVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03VVVGRGVrUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVVjZReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEhOQ1FVRnpRaXhUUVVGVExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlEzSkVMRTFCUVUwc1RVRkJUU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVNelF5eEhRVUZITEVWQlEwZ3NZVUZCWVN4RlFVTmlMRVZCUVVVc1JVRkRSaXhUUVVGVExFVkJRMVFzVTBGQlV5eEZRVU5VTEV0QlFVc3NRMEZEVGl4RFFVRkRPMUZCUTBZc1QwRkJUeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU42UXl4RFFVRkRPMGxCUlVRN096czdPenRQUVUxSE8wbEJSMGNzUVVGQlRpeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVTlNMRXRCUVhGQ0xFVkJRM0pDTEVWQlFXdENMRVZCUTJ4Q0xFZEJRVWNzU1VGQmVVTTdVVUZGTlVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRiRVFzVFVGQlRTeFRRVUZUTEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVVY2UXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExITkNRVUZ6UWl4VFFVRlRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRM0pFTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEzWkNMRTFCUVUwc1RVRkJUU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVNelF5eEhRVUZITEVWQlEwZ3NZVUZCWVN4RFFVRkRMRWxCUVVrc1JVRkRiRUlzUTBGQlF5eEZRVUZGTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUVVNc1JVRkRaaXhUUVVGVExFVkJRMVFzVTBGQlV5eEZRVU5VTEV0QlFVc3NRMEZEVGl4RFFVRkRPMUZCUTBZc1QwRkJUeXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZETVVRc1EwRkJRenRKUVVWRUxGbEJRVmtzUTBGRFZpeExRVUZ4UWl4RlFVTnlRaXhGUVVGclFpeEZRVU5zUWl4TFFVRXdRaXhGUVVNeFFpeEhRVUZITEVsQlFUWkRPMUZCUldoRUxFMUJRVTBzVTBGQlV5eEhRVUZITEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGVrTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVU42UkN4TlFVRk5MRTFCUVUwc1IwRkJkMElzUlVGQlJTeERRVUZETzFGQlEzWkRMRTFCUVUwc1EwRkJReXhYUVVGWExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NVMEZCVXl4RFFVRkRPMUZCUTNSRExESkVRVUV5UkR0UlFVTXpSQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVNM1FpeFBRVUZQTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1JVRkJSU3hOUVVGTkxFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTjZReXhEUVVGRE8wbEJSVVE3T3pzN096czdPMDlCVVVjN1NVRkhSeXhCUVVGT0xFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlExWXNTMEZCY1VJc1JVRkRja0lzUlVGQmEwSXNSVUZEYkVJc1MwRkJNRUlzUlVGRE1VSXNXVUZCYVVNc1JVRkJSU3hGUVVOdVF5eEhRVUZITEVsQlFYbERPMUZCUlRWRExFMUJRVTBzVDBGQlR5eEhRVUZITEVOQlFVTXNSMEZCU1N4SlFVRjVRaXhEUVVGRExFTkJRVU03VVVGRGFFUXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVTTVRaXhQUVVFNFF5eEZRVU01UXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVOYUxFTkJRVU03VVVGRFJpeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMSGxDUVVGNVFpeFBRVUZQTEV0QlFVc3NSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRiRVFzVFVGQlRTeFRRVUZUTEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU42UXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExIRkNRVUZ4UWl4VFFVRlRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRM0JFTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEzWkNMRTFCUVUwc1dVRkJXU3hIUVVGSExGTkJRVk1zU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEY0VVc1RVRkJUU3huUWtGQlowSXNSMEZEY0VJc1dVRkJXU3hKUVVGSkxFbEJRVWtzUTBGQlF5d3lRa0ZCTWtJc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU40UkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkRla01zUjBGQlJ5eEZRVU5JTEdGQlFXRXNRMEZCUXl4TlFVRk5MRVZCUTNCQ0xFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RlFVTTVReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1JVRkJSU3hUUVVGVExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVTnlSQ3hKUVVGSkxFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRMjVETEV0QlFVc3NRMEZEVGl4RFFVRkRPMUZCUTBZc1RVRkJUU3haUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNSRkxFbEJRVWtzU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhEUVVGRExFdEJRVXNzUlVGQlJTeEhRVUZITEVWQlFVVXNaMEpCUVdkQ0xFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTnVSU3hQUVVGUExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlEyUXNTMEZCU3l4RlFVTk1MRlZCUVZVc1EwRkRVaXhMUVVGTExFVkJRMHdzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZEVkN4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVXNVMEZCVXl4SlFVRkpMRVZCUVVVc1EwRkJReXhGUVVONlF5eFpRVUZaTEVWQlExb3NTMEZCU3l4RFFVTk9MRVZCUTBRc1JVRkJSU3hEUVVOSUxFVkJRMFFzUjBGQlJ5eERRVU5LTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUTBRc1QwRkJUeXhaUVVGWkxFTkJRVU03U1VGRGRFSXNRMEZCUXp0SlFVVkVPenM3T3pzN1QwRk5SenRKUVVkWkxFRkJRVTRzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZEYmtJc1MwRkJjVUlzUlVGRGNrSXNSVUZCYTBJc1JVRkRiRUlzUjBGQlJ5eEpRVUY1UXp0UlFVVTFReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVOd1JDeE5RVUZOTEZOQlFWTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzcERMRTFCUVUwc1owSkJRV2RDTEVkQlEzQkNMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMREpDUVVFeVFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNCRkxFbEJRVWtzVFVGQlZ5eERRVUZETzFGQlEyaENMRTFCUVUwc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eDFRa0ZCZFVJc1EwRkRhRVFzUzBGQlN5eEZRVU5NTEVkQlFVY3NSVUZEU0N4blFrRkJaMElzUlVGRGFFSXNSVUZCUlN4RFFVTklMRU5CUVVNN1VVRkRSaXhKUVVGSkxHRkJRV0VzUlVGQlJTeERRVUZETzFsQlEyeENMRTFCUVUwc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU16UXl4RFFVRkRPMUZCUlVRc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eDFRa0ZCZFVJc1UwRkJVeXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU4wUkN4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTjJRaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGRGRFTXNSMEZCUnl4RlFVTklMR0ZCUVdFc1EwRkJReXhOUVVGTkxFVkJRM0JDTEVOQlFVTXNSVUZCUlN4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRExFVkJRMllzVTBGQlV5eEZRVU5VTEVsQlFVa3NRMEZCUXl4NVFrRkJlVUlzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZEYmtNc1MwRkJTeXhEUVVOT0xFTkJRVU03VVVGRFJpeFBRVUZQTEdGQlFXRTdXVUZEYkVJc1EwRkJReXhEUVVGRExFMUJRVTA3V1VGRFVpeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0JFTEVOQlFVTTdTVUZGUkRzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMDlCZDBKSE8wbEJSVWNzUVVGQlRpeExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVTlFMRkZCUVc5Q0xFVkJRM0JDTEZkQlFXTXNTVUZCVXl4RlFVTjJRaXhMUVVFMFFpeEZRVU0xUWl4SFFVRkhMRWxCUVhsRE8xRkJSVFZETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEycEVMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zY1VOQlFYRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUTNoRkxFbEJRVWtzYVVKQlFYTkNMRU5CUVVNN1VVRkRNMElzU1VGQlNTeERRVUZETzFsQlEwZ3NhVUpCUVdsQ0xFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRMmhFTEVkQlFVY3NSVUZEU0N4TFFVRkxMRVZCUTB3c1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMRkZCUVZFc1EwRkJReXhGUVVOd1F5eFRRVUZUTEVWQlExUXNVMEZCVXl4RlFVTlVMRXRCUVVzc1EwRkRUaXhEUVVGRE8xRkJRMG9zUTBGQlF6dFJRVUZETEU5QlFVOHNRMEZCVlN4RlFVRkZMRU5CUVVNN1dVRkRjRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVZVc1EwRkJReXhEUVVGRE8xRkJRM0JETEVOQlFVTTdVVUZEUkN4SlFVRkpMRTFCUVZjc1EwRkJRenRSUVVOb1FpeEpRVUZKTEVOQlFVTTdXVUZEU0N4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjBSQ3hEUVVGRE8xRkJRVU1zVDBGQlR5eERRVUZOTEVWQlFVVXNRMEZCUXp0WlFVTm9RaXhOUVVGTkxFbEJRVWtzYTBKQlFXdENMRU5CUVVNc05rSkJRVFpDTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRha1VzUTBGQlF6dFJRVVZFTEUxQlFVMHNWMEZCVnl4SFFVRkhMRU5CUVVNc1RVRkJkMElzUlVGQlJTeEZRVUZGTzFsQlF5OURMRWxCUVVrc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTTdaMEpCUVVVc1QwRkJUeXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUTNSRUxFOUJRVThzVFVGQlRTeERRVUZETzFGQlEyaENMRU5CUVVNc1EwRkJRenRSUVVWR0xFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRekZDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUVHRuUWtGQlJTeFBRVUZQTEUxQlFWY3NRMEZCUXp0WlFVTjJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRja0lzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJRenRuUWtGRGJrSXNPRU5CUVRoRE8yZENRVU01UXl4UFFVRlBMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVMHNRMEZCUXp0WlFVTnNSQ3hQUVVGUExFMUJRVmNzUTBGQlF6dFJRVU55UWl4RFFVRkRPMUZCUlVRc1QwRkJUeXhYUVVGWExFTkJRVU1zVFVGQllTeERRVUZOTEVOQlFVTTdTVUZEZWtNc1EwRkJRenRKUVVWRU96czdPenM3T3pzN1QwRlRSenRKUVVWSExFRkJRVTRzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZEVWl4SlFVRlpMRVZCUTFvc1VVRkJaMElzUlVGRGFFSXNUMEZCTkVJc1JVRkROVUlzUjBGQlJ5eEpRVUY1UXp0UlFVVTFReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOc1JDeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeEpRVUZKTEVsQlFVa3NVVUZCVVN4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVNNVF5eEpRVUZKTEdsQ1FVRnpRaXhEUVVGRE8xRkJRek5DTEVsQlFVa3NRMEZCUXp0WlFVTklMR2xDUVVGcFFpeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVU5vUkN4SFFVRkhMRVZCUTBnc1RVRkJUU3hGUVVOT0xFTkJRVU1zU1VGQlNTeEZRVUZGTEZGQlFWRXNSVUZCUlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVWQlEzcERMRk5CUVZNc1JVRkRWQ3hUUVVGVExFVkJRMVFzVTBGQlV5eERRVU5XTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUVVNc1QwRkJUeXhEUVVGVkxFVkJRVVVzUTBGQlF6dFpRVU53UWl4TlFVRk5MRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlZTeERRVUZETEVOQlFVTTdVVUZEY0VNc1EwRkJRenRSUVVORUxFbEJRVWtzVFVGQmRVSXNRMEZCUXp0UlFVTTFRaXhKUVVGSkxFTkJRVU03V1VGRFNDeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU4wUkN4RFFVRkRPMUZCUVVNc1QwRkJUeXhEUVVGTkxFVkJRVVVzUTBGQlF6dFpRVU5vUWl4TlFVRk5MRWxCUVVrc2EwSkJRV3RDTEVOQlFVTXNhME5CUVd0RExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEZEVVc1EwRkJRenRSUVVORUxFOUJRVThzVFVGQlRTeERRVUZETzBsQlEyaENMRU5CUVVNN1NVRkZSRHM3T3p0UFFVbEhPMGxCUTAwc1UwRkJVenRSUVVOb1FpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4N1dVRkRaaXhKUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEcxQ1FVRnRRaXhEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkROVVFzVDBGQlR5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRPMGxCUTNSQ0xFTkJRVU03U1VGRlJEczdPenRQUVVsSE8wbEJRMDhzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRjNRanRSUVVNNVF5eFBRVUZQTEcxQ1FVRnRRaXhEUVVGRExGVkJRVlVzUTBGQlF5eEhRVUZITEVWQlFVVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZEZGtVc1EwRkJRenRKUVVWRU96czdPMDlCU1VjN1NVRkRUeXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVU4wUWl4SFFVRjNRaXhGUVVONFFpeHRRa0ZCYzBRN1VVRkZkRVFzVDBGQlR5eHRRa0ZCYlVJc1EwRkJReXhYUVVGWExFTkJRM0JETEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUlVGRGRrSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkRXQ3h0UWtGQmJVSXNSVUZEYmtJc1IwRkJSeXhEUVVOS0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUTdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096dFBRVEpDUnp0SlFVTlBMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRM3BDTEVkQlFYZENMRVZCUTNoQ0xFZEJRVmNzUlVGRFdDeE5RVUZOTEVkQlFVY3NTVUZCU1N4RlFVTmlMRWxCUVZrc1JVRkRXaXhuUWtGQmFVUXNSVUZCUlN4RlFVTnVSQ3h6UWtGQmFVTXNSVUZEYWtNc2JVSkJRWE5FTzFGQlJYUkVMRTFCUVUwc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dFJRVU16UXl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExIZENRVUYzUWl4RFFVRkRMR0ZCUVdFc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5zUlN4SlFVRkpMRTFCUVUwc1NVRkJTU3hKUVVGSkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU12UXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03V1VGRGFFUXNUVUZCVFN4WlFVRlpMRWRCUVVjc1NVRkJTU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8xbEJRemxFTEUxQlFVMHNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOeVJDeFBRVUZQTEUxQlFVMHNTVUZCU1N4RFFVRkRMR2xEUVVGcFF5eERRVU5xUkN4SFFVRkhMRVZCUTBnc1IwRkJSeXhGUVVOSUxGVkJRVlVzUlVGRFZpeFpRVUZaTEVWQlExb3NWMEZCVnl4RlFVTllMRzFDUVVGdFFpeERRVU53UWl4RFFVRkRPMUZCUTBvc1EwRkJRenRSUVVORUxFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU40UXl4SlFVRkpMRU5CUVVNN1dVRkRTQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1IwRkJSeXhGUVVGRkxHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNN1dVRkRMMFFzUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZEVkN4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4VlFVRlZMRzlDUVVGdlFpeFJRVUZSTEVOQlFVTXNaVUZCWlN4RlFVRkZMRWxCUVVrc1IwRkJSeXhGUVVGRkxFTkJRM3BHTEVOQlFVTTdXVUZEUml4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zU1VGQlNTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNN1dVRkRNVVVzVFVGQlRTeE5RVUZOTEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1VVRkJVU3hEUVVGRE8xbEJRelZFTEUxQlFVMHNZMEZCWXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRemxETEVsQlFVa3NRMEZCUXl3MFFrRkJORUlzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZEZGtNc1EwRkJRenRaUVVOR0xFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eGhRVUZoTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1dVRkZOMFFzYzBKQlFYTkNMRWRCUVVjc2MwSkJRWE5DTEVWQlFVVXNUVUZCVFR0blFrRkRja1FzUTBGQlF5eERRVUZETEhOQ1FVRnpRanRuUWtGRGVFSXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJRenRaUVVOa0xFMUJRVTBzWlVGQlpTeEhRVUZ2UWp0blFrRkRka01zVTBGQlV5eEZRVUZGTEdOQlFXTTdaMEpCUTNwQ0xHRkJRV0VzUlVGQlJTeG5Ra0ZCWjBJc1EwRkJReXhOUVVGTk8yOUNRVU53UXl4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4RFFVTnlRaXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hGUVVGRk8zZENRVU5zUWl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenQzUWtGREwwSXNUMEZCVHl4SFFVRkhMRU5CUVVNN2IwSkJRMklzUTBGQlF5eEZRVU5FTEVWQlFVVXNRMEZEU0R0dlFrRkRTQ3hEUVVGRExFTkJRVU1zVTBGQlV6dG5Ra0ZEWWl4elFrRkJjMElzUlVGQlJTeEhRVUZITEVOQlFVTXNZMEZCWXl4RFFVRkRMREJDUVVFd1FpeERRVUZETzI5Q1FVTndSU3hEUVVGRExFTkJRVU1zYzBKQlFYTkNMRWxCUVVrc1UwRkJVenR2UWtGRGNrTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hoUVVGaE8yRkJRemRDTEVOQlFVTTdXVUZGUml4UFFVRlBMRTFCUVUwc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNSMEZCUnl4RlFVRkZMR1ZCUVdVc1EwRkJReXhEUVVGRE8xRkJRek5FTEVOQlFVTTdVVUZCUXl4UFFVRlBMRU5CUVUwc1JVRkJSU3hEUVVGRE8xbEJRMmhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU16UWl4RFFVRkRPMmRDUVVGVExFTkJRVU03V1VGRFZDeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4eFFrRkJjVUlzUTBGQlF5eERRVUZETzFsQlEyeEZMRTlCUVU4c1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF6dFJRVU5zUWl4RFFVRkRPMGxCUTBnc1EwRkJRenRKUVVWUExEUkNRVUUwUWl4RFFVRkRMRWRCUVZFN1VVRkRNME1zU1VGQlNTeEhRVUZITEV0QlFVc3NTVUZCU1N4SlFVRkpMRWRCUVVjc1MwRkJTeXhUUVVGVE8xbEJRVVVzVDBGQlR5eEhRVUZITEVOQlFVTTdVVUZEYkVRc1NVRkJTU3hQUVVGUExFZEJRVWNzUzBGQlN5eFJRVUZSTzFsQlFVVXNUMEZCVHl4SFFVRkhMRU5CUVVNN1VVRkRlRU1zU1VGQlNTeFBRVUZQTEVkQlFVY3NTMEZCU3l4UlFVRlJPMWxCUVVVc1QwRkJUeXhIUVVGSExFTkJRVU03VVVGRGVFTXNTVUZCU1N4SFFVRkhMRmxCUVZrc1ZVRkJWVHRaUVVGRkxFOUJRVThzUjBGQlJ5eERRVUZETzFGQlF6RkRMRTlCUVU4c1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTTNRaXhEUVVGRE8wbEJSVThzYzBKQlFYTkNMRU5CUVVNc1IwRkJkMEk3VVVGRGNrUXNUMEZCVHl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExHTkJRV01zUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eHZRa0ZCYjBJc1EwRkJRenRKUVVNNVJTeERRVUZETzBsQlJVOHNhVUpCUVdsQ0xFTkJRVU1zU1VGQldUdFJRVU53UXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRemxDTEU5QlFVOHNSMEZCUnl4TFFVRkxMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVU53UkN4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWUExHOUNRVUZ2UWl4RFFVTXhRaXhoUVVGdFF6dFJRVVZ1UXl4SlFVRkpMRU5CUVVNc1lVRkJZVHRaUVVGRkxFOUJRVThzVTBGQlV5eERRVUZETzFGQlEzSkRMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1VVRkRPVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5PMWxCUVVVc1QwRkJUeXhUUVVGVExFTkJRVU03VVVGRGRFTXNUVUZCVFN4SFFVRkhMRWRCUVRKQ0xFVkJRVVVzUTBGQlF6dFJRVU4yUXl4TFFVRkxMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUzBGQlN5eERRVUZETEVsQlFVa3NUMEZCVHl4RlFVRkZMRU5CUVVNN1dVRkRia01zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMmhFTEVOQlFVTTdVVUZEUkN4UFFVRlBMRWRCUVVjc1EwRkJRenRKUVVOaUxFTkJRVU03U1VGRlR5eHhRa0ZCY1VJN1VVRkRNMElzVFVGQlRTeFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhqUVVGakxFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEyNUVMRTFCUVUwc1RVRkJUU3hIUVVGSExFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTnNReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hOUVVGTkxFZEJRVWNzUTBGQlF6dFpRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNKRUxFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRKUVVNMVFpeERRVUZETzBsQlJVOHNiMEpCUVc5Q0xFTkJRekZDTEZWQlFYZENMRVZCUTNoQ0xFdEJRV0U3VVVGRllpeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRTFCUVUwc1NVRkJTU3hMUVVGTExFbEJRVWtzUTBGQlF6dFpRVUZGTEU5QlFVOHNSVUZCUlN4RFFVRkRPMUZCUTJoRUxFMUJRVTBzVTBGQlV5eEhRVUZITEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVOc1F5eE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUlVGQlJTeFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRha1FzVFVGQlRTeE5RVUZOTEVkQlFXbENMRVZCUVVVc1EwRkJRenRSUVVOb1F5eFBRVUZQTEUxQlFVMHNRMEZCUXl4TlFVRk5MRWRCUVVjc1RVRkJUU3hKUVVGSkxGTkJRVk1zUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0WlFVTnNSQ3hOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRla1FzVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUXpkRExFbEJRVWtzVTBGQlV5eEZRVUZGTEVOQlFVTTdaMEpCUTJRc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0WlFVTjZRaXhEUVVGRE8xRkJRMGdzUTBGQlF6dFJRVU5FTEU5QlFVOHNUVUZCVFN4RFFVRkRPMGxCUTJoQ0xFTkJRVU03U1VGRlR5eHpRa0ZCYzBJc1EwRkJReXhIUVVGM1FqdFJRVU55UkN4TlFVRk5MRXRCUVVzc1IwRkJkVUk3V1VGRGFFTTdaMEpCUTBVc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3p0blFrRkRlRUlzV1VGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1dVRkJXVHRuUWtGRGRFTXNZVUZCWVN4RlFVRkZMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zWVVGQllUdG5Ra0ZEZUVNc1QwRkJUeXhGUVVGRkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHp0aFFVTTNRanRUUVVOR0xFTkJRVU03VVVGRlJpeEpRVUZKTEdGQlFXRXNSMEZCUnl4SlFVRkpMRU5CUVVNc2VVSkJRWGxDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8xRkJRemxFTEdGQlFXRXNSMEZCUnl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUTBGQlF6dFpRVU14UXl4RFFVRkRMRU5CUVVNc1lVRkJZVHRaUVVObUxFTkJRVU1zUTBGQlF5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRPMUZCUTNCQ0xFMUJRVTBzVTBGQlV5eEhRVU5pTEdGQlFXRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRV2xDTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdVVUZEYmtVc1RVRkJUU3hOUVVGTkxFZEJRVWNzVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eExRVUZMTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGNFVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTk8xbEJRVVVzVDBGQlR5eExRVUZMTEVOQlFVTTdVVUZGYWtNc1RVRkJUU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNN1VVRkRMMElzVFVGQlRTeFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeEZRVUZGTEVOQlFVTTdVVUZEYWtRc1MwRkJTeXhOUVVGTkxFZEJRVWNzU1VGQlNTeE5RVUZOTEVWQlFVVXNRMEZCUXp0WlFVTjZRaXhOUVVGTkxGVkJRVlVzUjBGQlJ5eEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVNNVFpeEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hEUVVGRE8yZENRVU40UWl4TlFVRk5MRWxCUVVrc1owSkJRV2RDTEVOQlEzaENMSEZEUVVGeFF5eEhRVUZITEdkRFFVRm5ReXhEUVVONlJTeERRVUZETzFsQlEwb3NRMEZCUXp0WlFVTkVMRTFCUVUwc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhWUVVGVkxFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlFVTTdXVUZEZEVVc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0blFrRkRka0lzVFVGQlRTeEpRVUZKTEdkQ1FVRm5RaXhEUVVONFFpd3lRMEZCTWtNc1IwRkJSeXhuUTBGQlowTXNRMEZETDBVc1EwRkJRenRaUVVOS0xFTkJRVU03V1VGRFJDeExRVUZMTEUxQlFVMHNUVUZCVFN4SlFVRkpMRlZCUVZVc1JVRkJSU3hEUVVGRE8yZENRVU5vUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzI5Q1FVTnlRaXhOUVVGTkxFbEJRVWtzWjBKQlFXZENMRU5CUTNoQ0xHZERRVUZuUXl4SFFVRkhMRzlDUVVGdlFpeERRVU40UkN4RFFVRkRPMmRDUVVOS0xFTkJRVU03WjBKQlEwUXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJRenR2UWtGRFZDeExRVUZMTEVWQlFVVXNSMEZCUnp0dlFrRkRWaXhaUVVGWkxFVkJRVVVzVFVGQlRTeERRVUZETEZGQlFWRTdiMEpCUXpkQ0xHRkJRV0VzUlVGQlJTeE5RVUZOTEVOQlFVTXNTMEZCU3p0dlFrRkRNMElzVDBGQlR5eEZRVUZGTEUxQlFVMHNRMEZCUXl4UFFVRlBMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFBRVUZQTzJsQ1FVTXZReXhEUVVGRExFTkJRVU03V1VGRFRDeERRVUZETzFGQlEwZ3NRMEZCUXp0UlFVVkVMRTlCUVU4c1MwRkJTeXhEUVVGRE8wbEJRMllzUTBGQlF6dEpRVVZQTEV0QlFVc3NRMEZCUXl4cFEwRkJhVU1zUTBGRE4wTXNSMEZCZDBJc1JVRkRlRUlzUjBGQlZ5eEZRVU5ZTEVsQlFXTXNSVUZEWkN4WlFVRm5SQ3hGUVVOb1JDeFhRVUVyUWl4RlFVTXZRaXh0UWtGQmMwUTdVVUZGZEVRc1RVRkJUU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHbERRVUZwUXl4RFFVRkRMRU5CUVVNN1VVRkRha1VzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRzlDUVVGdlFpeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUTNKRUxFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zTmtKQlFUWkNMRVZCUVVVc1EwRkJRenRSUVVOd1JTeE5RVUZOTEUxQlFVMHNSMEZCUnl4TlFVRk5MRTlCUVU4c1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4RFFVRkRPMUZCUTJwRUxFMUJRVTBzWVVGQllTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExGTkJRVk1zUTBGQlF6dFJRVU53UkN4TlFVRk5MRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zWVVGQllTeEZRVUZGTzFsQlF6bENMRmRCUVZjc1JVRkJSVHRuUWtGRFdDeFhRVUZYTEVWQlFVVXNaMEpCUVdkQ0xFTkJRVU1zVjBGQlZ6dG5Ra0ZEZWtNc1ZVRkJWU3hGUVVGRkxHZENRVUZuUWl4RFFVRkRMRlZCUVZVN1lVRkRlRU03V1VGRFJDeExRVUZMTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTE8xbEJRM2hDTEVsQlFVa3NSVUZCUlN4UFFVRlBPMU5CUTBZc1EwRkJReXhEUVVGRE8xRkJSV1lzVFVGQlRTeHBRa0ZCYVVJc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5dzBRa0ZCTkVJc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU42UlN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxHRkJRV0VzUlVGQlJTeERRVUZETzFGQlJYQkRMRWxCUVVrc1EwRkJRenRaUVVOSUxFMUJRVTBzVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4cFFrRkJhVUlzUlVGQlJUdG5Ra0ZEZGtNc1VVRkJVU3hGUVVGRkxHRkJRV0U3WjBKQlEzWkNMRTFCUVUwN1owSkJRMDRzVTBGQlV5eEZRVUZGTzI5Q1FVTlVMRTlCUVU4c1JVRkJSU3hKUVVGSk8yOUNRVU5pTEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc01rSkJRVEpDTEVOQlFVTXNTMEZCU3l4RFFVRkRPMmxDUVVOeVJEdG5Ra0ZEUkN4UFFVRlBMRVZCUVVVN2IwSkJRMUFzVjBGQlZ5eEZRVUZGTEdkQ1FVRm5RaXhEUVVGRExGZEJRVmM3YjBKQlEzcERMRWRCUVVjc1JVRkJSU3huUWtGQlowSXNRMEZCUXl4VlFVRlZPMmxDUVVOcVF6dGhRVU5HTEVOQlFVTXNRMEZCUXp0WlFVVklMRWxCUVVrc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRPMWxCUTJ4RExFbEJRVWtzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1lVRkJZU3hEUVVGRE8xbEJRekZETEVsQlFVa3NXVUZCV1N4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETzFsQlJUVkRMRWxCUVVrc2JVSkJRVzFDTEVWQlFVVXNRMEZCUXp0blFrRkRlRUlzU1VGQlNTeFBRVUZQTEcxQ1FVRnRRaXhMUVVGTExGRkJRVkU3YjBKQlEzcERMRmxCUVZrc1IwRkJSeXh0UWtGQmJVSXNRMEZCUXp0eFFrRkRhRU1zUTBGQlF6dHZRa0ZEU2l4SlFVRkpMRU5CUVVNc1IwRkJSenQzUWtGRFRpeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVTnlRaXh0UkVGQmJVUXNRMEZEY0VRc1EwRkJRenR2UWtGRFNpeFBRVUZQTzNkQ1FVTk1MRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEcxQ1FVRnRRaXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NUMEZCVHl4RFFVRkRPMjlDUVVNdlJDeFRRVUZUTzNkQ1FVTlFMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEcxQ1FVRnRRaXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NVMEZCVXl4RFFVRkRPMjlDUVVOdVJTeFpRVUZaTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExHMUNRVUZ0UWl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8yZENRVU5zUlN4RFFVRkRPMWxCUTBnc1EwRkJRenRaUVVWRUxFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFpRVU5zUkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETEZOQlFWTXNSVUZCUlN4WlFVRlpMRU5CUVVNc1EwRkJRenRaUVVNNVJDeE5RVUZOTEZkQlFWY3NSMEZCUnl4UlFVRlJMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkZjRVFzU1VGQlNTeFpRVUZaTEVWQlFVVXNRMEZCUXp0blFrRkRha0lzVjBGQlZ5eERRVUZETEZsQlFWa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRaUVVONlF5eERRVUZETzFsQlJVUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1MwRkJTenRwUWtGRGNFSXNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0cFFrRkRNVVFzVFVGQlRTeERRVUZETEVOQlFVTXNVVUZCVVN4RlFVRjNRaXhGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRha1VzU1VGQlNTeFRRVUZUTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1owSkJRM0pDTEZkQlFWY3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0WlFVTXpReXhEUVVGRE8xbEJSVVFzUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZEVkN4eFFrRkJjVUlzV1VGQldTeEpRVUZKTEVkQlFVY3NZMEZCWXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUTNCSExFTkJRVU03V1VGRlJpeE5RVUZOTEUxQlFVMHNSMEZCUnl4TlFVRk5MRmRCUVZjc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0WlFVTnFSQ3hQUVVGUExGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRha01zUTBGQlF6dFJRVUZETEU5QlFVOHNRMEZCVFN4RlFVRkZMRU5CUVVNN1dVRkRhRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRek5DTEVOQlFVTTdaMEpCUVZNc1EwRkJRenRaUVVOVUxFOUJRVThzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXp0UlFVTjJRaXhEUVVGRE8wbEJRMGdzUTBGQlF6dEpRVVZQTEc5Q1FVRnZRaXhEUVVNeFFpeExRVUY1UWp0UlFVVjZRaXhOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEVkQlFVY3NSVUZCT0VJc1EwRkJRenRSUVVOMFJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4RFFVRkRMRWxCUVhOQ0xFVkJRVVVzUlVGQlJUdFpRVU42UXl4TlFVRk5MRWRCUVVjc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZaTEVsQlFVa3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF6dFpRVU12UkN4SlFVRkpMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETzJkQ1FVRkZMRTlCUVU4N1dVRkROMElzVFVGQlRTeEpRVUZKTEVkQlFVY3NVVUZCVVN4SlFVRkpMRU5CUVVNc1MwRkJTeXhKUVVGSkxFOUJRVThzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0WlFVTnNSQ3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlR0blFrRkRaaXhIUVVGSExFbEJRVWs3WjBKQlExQXNTVUZCU1R0aFFVTk1MRU5CUVVNc1EwRkJRenRSUVVOTUxFTkJRVU1zUTBGQlF6dFJRVVZHTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGRrSXNUMEZCVHl4RFFVRkRPMWxCUTA0c1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3p0WlFVTjRRaXhaUVVGWkxFVkJRVVVzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpPMWxCUTNSRExHRkJRV0VzUlVGQlJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMR0ZCUVdFN1UwRkRla01zUTBGQlF5eERRVUZETzFGQlJVZ3NUMEZCVHl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RFFVRkRPMGxCUTNSRExFTkJRVU03U1VGRlR5eExRVUZMTEVOQlFVTXNOa0pCUVRaQ08xRkJTWHBETEUxQlFVMHNWMEZCVnl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGRGVrTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXgxUWtGQmRVSXNRMEZEY0VNc1EwRkJRenRSUVVOR0xFMUJRVTBzVlVGQlZTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkRlRU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4elFrRkJjMElzUTBGRGJrTXNRMEZCUXp0UlFVTkdMRTlCUVU4c1JVRkJSU3hYUVVGWExFVkJRVVVzVlVGQlZTeEZRVUZGTEVOQlFVTTdTVUZEY2tNc1EwRkJRenRKUVVWUExFdEJRVXNzUTBGQlF5dzBRa0ZCTkVJc1EwRkJReXhMUVVFeVFqdFJRVU53UlN4TlFVRk5MRmRCUVZjc1IwRkJkMElzUlVGQlJTeERRVUZETzFGQlF6VkRMRTFCUVUwc1dVRkJXU3hIUVVGM1FpeEZRVUZGTEVOQlFVTTdVVUZETjBNc1RVRkJUU3hKUVVGSkxFZEJRWGRDTEVWQlFVVXNRMEZCUXp0UlFVTnlReXhMUVVGTExFMUJRVTBzU1VGQlNTeEpRVUZKTEV0QlFVc3NSVUZCUlN4RFFVRkRPMWxCUTNwQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkRjRU1zU1VGQlNTeERRVUZETEU5QlFVOHNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGRGNFTXNRMEZCUXp0WlFVTkdMRTFCUVUwc1VVRkJVU3hIUVVOYUxFbEJRVWtzUTBGQlF5eGhRVUZoTEVsQlFVa3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdXVUZETlVRc1YwRkJWeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnp0blFrRkRka0lzUjBGQlJ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF6dG5Ra0ZETVVNc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEUxQlFVMHNSVUZCUlR0blFrRkRNMElzVjBGQlZ5eEZRVUZGTzI5Q1FVTllMREJDUVVFd1FpeEZRVUZGTEZGQlFWRTdiMEpCUTNCRExHZENRVUZuUWl4RlFVRkZMRkZCUVZFN2FVSkJRek5DTzJGQlEwWXNRMEZCUXp0WlFVTkdMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVYzdaMEpCUTNoQ0xHRkJRV0VzUlVGQlJTeEpRVUZKTzJkQ1FVTnVRaXhqUVVGakxFVkJRVVVzU1VGQlNUdG5Ra0ZEY0VJc1YwRkJWeXhGUVVGRkxFbEJRVWs3WjBKQlEycENMRmRCUVZjc1JVRkJSU3hKUVVGSk8yRkJRMnhDTEVOQlFVTTdXVUZEUml4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWs3WjBKQlEzSkRMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN6dG5Ra0ZEYWtJc1MwRkJTeXhGUVVGRkxFVkJRVVU3WVVGRFZpeERRVUZETzFsQlEwWXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU42UXl4RFFVRkRPMUZCUlVRc1QwRkJUenRaUVVOTUxFbEJRVWtzUlVGQlJTeGxRVUZsTzFsQlEzSkNMRTlCUVU4c1JVRkJSU3hQUVVGUE8xbEJRMmhDTEUxQlFVMHNSVUZCUlR0blFrRkRUaXhaUVVGWkxFVkJRVVVzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxPMkZCUTJoRE8xbEJRMFFzWVVGQllTeEZRVUZGTEVsQlFVazdXVUZEYmtJc1MwRkJTeXhGUVVGRkxGZEJRVmM3V1VGRGJFSXNVVUZCVVN4RlFVRkZMRVZCUVVVN1dVRkRXaXhSUVVGUkxFVkJRVVU3WjBKQlExSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTzI5Q1FVTnlRaXhMUVVGTExFVkJRVVVzV1VGQldUdHBRa0ZEY0VJN1lVRkRSanRUUVVOR0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVOHNNa0pCUVRKQ0xFTkJRVU1zUzBGQk1rSTdVVUZETjBRc1QwRkJUeXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNTVUZCU1N4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM2hGTEVOQlFVTTdTVUZGVHl4bFFVRmxMRU5CUVVNc1VVRkJaMEk3VVVGRGRFTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJRenRSUVVOMFJDeFBRVUZQTEVsQlFVa3NTMEZCU3l4WFFVRlhMRWxCUVVrc1NVRkJTU3hMUVVGTExGZEJRVmNzUTBGQlF6dEpRVU4wUkN4RFFVRkRPMGxCUlU4c1YwRkJWeXhEUVVGRExGRkJRV2RDTzFGQlEyeERMRTFCUVUwc1UwRkJVeXhIUVVGSExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZMEZCWXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM1pFTEU5QlFVOHNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnFReXhEUVVGRE8wbEJSVThzWVVGQllTeERRVUZETEZGQlFXZENPMUZCUTNCRExFbEJRVWtzWlVGQlpTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN1dVRkJSU3hQUVVGUExGRkJRVkVzUTBGQlF6dFJRVU53UkN4UFFVRlBMRmRCUVZjc1VVRkJVU3hGUVVGRkxFTkJRVU03U1VGREwwSXNRMEZCUXp0SlFVVlBMRXRCUVVzc1EwRkJReXhaUVVGWkxFTkJRVU1zVFVGQmQwSTdVVUZEYWtRc1NVRkJTU3hEUVVGRExFMUJRVTA3V1VGQlJTeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVRkRMSEZEUVVGeFF5eERRVUZETEVOQlFVTTdVVUZETlVVc1NVRkJTU3hOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXp0WlFVRkZMRTlCUVU4c1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTTFSQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1VVRkRPVUlzU1VGQlNTeDVRa0ZCZVVJc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETzFsQlFVVXNUMEZCVHl4UFFVRlBMRU5CUVVNN1VVRkROVVFzVFVGQlRTeExRVUZMTEVkQlFVY3NUVUZCVFN4RlFVRkZMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdVVUZEY0VVc1NVRkJTU3hMUVVGTExFVkJRVVVzVjBGQlZ5eEZRVUZGTEVWQlFVVXNRMEZCUXp0WlFVTjZRaXhQUVVGUExFMUJRVTBzTUVKQlFUQkNMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRGJFUXNRMEZCUXp0UlFVTkVMRTlCUVU4c1EwRkJReXhOUVVGTkxGVkJRVlVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRE8wbEJReTlETEVOQlFVTTdTVUZGUkRzN096czdPMDlCVFVjN1NVRkRUU3hWUVVGVkxFTkJRWE5DTEVkQlFXMUNPMUZCUXpGRUxFOUJRVThzYlVKQlFXMUNMRU5CUVVNc1ZVRkJWU3hEUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETzBsQlEyaEVMRU5CUVVNN1NVRkZSRHM3T3pzN096czdUMEZSUnp0SlFVTklMRXRCUVVzc1EwRkJReXhwUWtGQmFVSXNRMEZEY2tJc1IwRkJkMElzUlVGRGVFSXNSMEZCVnl4RlFVTllMRWxCUVZrc1JVRkRXaXhoUVVGdFF5eEZRVU51UXl4elFrRkJjME1zUlVGRGRFTXNiVUpCUVhORU8xRkJSWFJFTEU5QlFVOHNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkRja0lzUjBGQlJ5eEZRVU5JTEVkQlFVY3NSVUZEU0N4SlFVRkpMRVZCUTBvc1NVRkJTU3hGUVVOS0xHRkJRV0VzUlVGRFlpeHpRa0ZCYzBJc1JVRkRkRUlzYlVKQlFXMUNMRU5CUTNCQ0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUTdPenM3T3pzN08wOUJVVWM3U1VGRFNDeExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRM1pDTEVkQlFYZENMRVZCUTNoQ0xFZEJRVmNzUlVGRFdDeEpRVUZaTEVWQlExb3NZVUZCYlVNc1JVRkRia01zYzBKQlFYTkRMRVZCUTNSRExHMUNRVUZ6UkR0UlFVVjBSQ3hQUVVGUExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlEzSkNMRWRCUVVjc1JVRkRTQ3hIUVVGSExFVkJRMGdzUzBGQlN5eEZRVU5NTEVsQlFVa3NSVUZEU2l4aFFVRmhMRVZCUTJJc2MwSkJRWE5DTEVWQlEzUkNMRzFDUVVGdFFpeERRVU53UWl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlExZ3NVMEZCYVVJc1JVRkRha0lzUjBGQlJ5eEpRVUUyUXp0UlFVVm9SQ3hOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU51UXl4TlFVRk5MRmRCUVZjc1IwRkRaaXhKUVVGSkxGbEJRVmtzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUlN4SlFVRTBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTTdVVUZEZEVVc1RVRkJUU3hoUVVGaExFZEJRVWNzVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU03VVVGRE4wUXNUVUZCVFN4SFFVRkhMRWRCUTFBc1YwRkJWenRaUVVOWUxFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVTnFRaXhsUVVGbExFTkJRVU1zVTBGQlV5eEZRVU42UWl4RlFVRkZMRVZCUTBZc1UwRkJLME1zUTBGRGFFUXNRMEZCUXl4RFFVRkRPMUZCUTB3c1QwRkJUeXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUXpOQ0xFZEJRVWNzUlVGRFNDeFRRVUZUTEVWQlExUXNRMEZCUXl4VFFVRlRMRVZCUVVVc1lVRkJZU3hEUVVGRExFVkJRekZDTEZOQlFWTXNSVUZEVkN4VFFVRlRMRVZCUTFRc2JVSkJRVzFDTEVOQlEzQkNMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVE3T3pzN096dFBRVTFITzBsQlEwMHNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkRja0lzUjBGQlJ5eEpRVUUyUXp0UlFVVm9SQ3hyUkVGQmEwUTdVVUZEYkVRc1RVRkJUU3hMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRPVUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1dVRkRhRUlzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1YwRkJWeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NhVUpCUVdsQ0xFTkJRVU1zUTBGQlF6dFpRVU5vUlN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETzFGQlEzUkNMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wbEJSVVE3T3pzN096dFBRVTFITzBsQlEwZ3NUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRM1JDTEU5QlFXZENMRVZCUTJoQ0xFMUJRV3RDTEVWQlEyeENMRzFDUVVGelJDeEZRVU4wUkN4SFFVRjVRanRSUVVWNlFpeE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN1VVRkZNME1zU1VGQlNTeFBRVUZQTEVkQlFVY3NUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJRenRSUVVNM1FpeEpRVUZKTEZOQlFWTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1lVRkJZU3hEUVVGRE8xRkJRM0pETEVsQlFVa3NXVUZCV1N4SFFVRkhMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU03VVVGRmRrTXNTVUZCU1N4dFFrRkJiVUlzUlVGQlJTeERRVUZETzFsQlEzaENMRWxCUVVrc1QwRkJUeXh0UWtGQmJVSXNTMEZCU3l4UlFVRlJPMmRDUVVONlF5eFpRVUZaTEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU03YVVKQlEyaERMRU5CUVVNN1owSkJRMG9zU1VGQlNTeERRVUZETEVkQlFVYzdiMEpCUTA0c1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGRGNrSXNiVVJCUVcxRUxFTkJRM0JFTEVOQlFVTTdaMEpCUTBvc1QwRkJUenR2UWtGRFRDeERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXh0UWtGQmJVSXNSVUZCUlN4TlFVRk5MRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlFVTTdaMEpCUTNaRkxGTkJRVk03YjBKQlExQXNRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zYlVKQlFXMUNMRVZCUVVVc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzNkQ1FVTXpSQ3hUUVVGVExFTkJRVU03WjBKQlExb3NXVUZCV1N4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eHRRa0ZCYlVJc1JVRkJSU3hOUVVGTkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZETVVVc1EwRkJRenRSUVVOSUxFTkJRVU03VVVGRlJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFOUJRVThzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnNSQ3hKUVVGSkxGRkJRV3RDTEVOQlFVTTdVVUZEZGtJc1NVRkJTU3hEUVVGRE8xbEJRMGdzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZEVUN4M1FrRkJkMElzVTBGQlV5eGhRVUZoTEZsQlFWa3NhVUpCUVdsQ0xFOUJRVThzUlVGQlJTeERRVU55Uml4RFFVRkRPMWxCUTBZc1VVRkJVU3hIUVVGSExFOUJRVThzUTBGQlF5eFhRVUZYTEVOQlFVTXNVMEZCVXl4RlFVRkZMRmxCUVZrc1EwRkJReXhEUVVGRE8xRkJRekZFTEVOQlFVTTdVVUZCUXl4UFFVRlBMRU5CUVUwc1JVRkJSU3hEUVVGRE8xbEJRMmhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU16UWl4RFFVRkRPMUZCUTBRc1QwRkJUeXhSUVVGUkxFTkJRVU03U1VGRGJFSXNRMEZCUXp0SlFVVkVPenM3T3pzN1QwRk5SenRKUVVOSUxFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTXNUMEZCWjBJc1JVRkJSU3hYUVVGdFFqdFJRVU55UkN4TlFVRk5MRWRCUVVjc1IwRkJSeXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVONlF5eEpRVUZKTEU5QlFXZENMRU5CUVVNN1VVRkRja0lzU1VGQlNTeERRVUZETzFsQlEwZ3NSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXg1UWtGQmVVSXNWMEZCVnl4RlFVRkZMRU5CUVVNc1EwRkJRenRaUVVOc1JDeFBRVUZQTEVkQlFVY3NUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dFJRVU0xUXl4RFFVRkRPMUZCUVVNc1QwRkJUeXhEUVVGTkxFVkJRVVVzUTBGQlF6dFpRVU5vUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZETTBJc1EwRkJRenRSUVVWRUxFOUJRVThzVDBGQlR5eERRVUZETzBsQlEycENMRU5CUVVNN1NVRkZSRHM3T3pzN08wOUJUVWM3U1VGRFNDeE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkRja0lzUjBGQmQwSXNSVUZEZUVJc1RVRkJhMElzUlVGRGJFSXNUVUZCWlR0UlFVVm1MRTlCUVU4c1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlF6bENMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhGUVVONFF5eE5RVUZOTEVWQlEwNHNSMEZCUnl4RFFVTktMRU5CUVZrc1EwRkJRenRKUVVOb1FpeERRVUZETzBsQlJVUTdPenM3TzA5QlMwYzdTVUZEU0N4TlFVRk5MRU5CUVVNc1UwRkJVeXhEUVVGRExFMUJRV3RDTzFGQlEycERMRTFCUVUwc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU42UXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExITkRRVUZ6UXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU5vUlN4SlFVRkpMRlZCUVZVc1IwRkJiMElzVFVGQlRTeERRVUZETEU5QlFUQkNMRU5CUVVNN1VVRkZjRVVzU1VGQlNTeFBRVUZQTEZWQlFWVXNTMEZCU3l4UlFVRlJMRVZCUVVVc1EwRkJRenRaUVVOdVF5eEpRVU5GTEZWQlFWVXNRMEZCUXl4TFFVRkxMRU5CUTJRc2MwVkJRWE5GTEVOQlEzWkZMRVZCUTBRc1EwRkJRenRuUWtGRFJDeFZRVUZWTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdXVUZETDBNc1EwRkJRenRwUWtGQlRTeERRVUZETzJkQ1FVTk9MRWxCUVVrc1EwRkJRenR2UWtGRFNDeFZRVUZWTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zV1VGQldTeERRVUZETEZWQlFWVXNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU5vUlN4RFFVRkRPMmRDUVVGRExFOUJRVThzUTBGQlZTeEZRVUZGTEVOQlFVTTdiMEpCUTNCQ0xFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlEzSkNMREpEUVVFeVF5eFZRVUZWTEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUXpsRUxFTkJRVU03WjBKQlEwb3NRMEZCUXp0WlFVTklMRU5CUVVNN1VVRkRTQ3hEUVVGRE8xRkJSVVFzVFVGQlRTeGpRVUZqTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhUUVVGVExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdVVUZET1VRc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eHhRMEZCY1VNc1RVRkJUU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEZEVVc1QwRkJUeXhKUVVGSkxFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNXVUZCV1N4RlFVRkZMR05CUVdNc1JVRkJSVHRaUVVOeVJDeHBRMEZCYVVNc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eFRRVUZUTEVsQlFVa3NSVUZCUlN4RFFVRkRMRWRCUVVjc1NVRkJTU3hIUVVGSExFbEJRVWs3V1VGRGVrVXNPRUpCUVRoQ0xFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNVMEZCVXl4SlFVRkpMRVZCUVVVc1EwRkJReXhIUVVGSExFbEJRVWtzUjBGQlJ5eEpRVUZKTzFOQlEzWkZMRU5CUVVNc1EwRkJRenRKUVVOTUxFTkJRVU03U1VGRlJEczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3VDBGMVFrYzdTVUZEU0N4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUTBGRGVFSXNUVUZCWXl4RlFVTmtMRTFCUVd0Q0xFVkJRMnhDTEVkQlFYZENPMUZCUlhoQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzFGQlF6VkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRMUFzWjBOQlFXZERMRTFCUVUwc1EwRkJReXhMUVVGTExGVkJRVlVzVFVGQlRTeERRVUZETEhWQ1FVRjFRaXhGUVVGRkxFTkJRM1pHTEVOQlFVTTdVVUZEUml4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxGZEJRVmNzUTBGRGFFTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1JVRkRXaXhOUVVGTkxFTkJRVU1zZFVKQlFUaENMRU5CUTNSRExFTkJRVU03VVVGRFJpeEpRVUZKTEVOQlFVTTdXVUZEU0N4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVOUUxHOURRVUZ2UXl4WFFVRlhMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlF6TkhMRU5CUVVNN1VVRkRTaXhEUVVGRE8xRkJRVU1zVDBGQlR5eERRVUZWTEVWQlFVVXNRMEZCUXp0WlFVTndRaXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETERoRFFVRTRReXhGUVVGRkxFTkJRVlVzUTBGQlF5eERRVUZETzFGQlEzaEZMRU5CUVVNN1VVRkZSQ3hKUVVGSkxFMUJRV01zUTBGQlF6dFJRVU51UWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhIUVVGSExFVkJRVVVzUjBGQlJTeERRVUZETEVOQlFVTTdVVUZEZGtJc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXp0WlFVTm9RaXhOUVVGTkxFZEJRVWNzVFVGQlRTeFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRMSE5DUVVFMlFpeERRVUZETEVOQlFVTTdVVUZEYWtVc1EwRkJRenRoUVVGTkxFTkJRVU03V1VGRFRpdzRSRUZCT0VRN1dVRkRPVVFzYjBSQlFXOUVPMWxCUTNCRUxEQkRRVUV3UXp0WlFVTXhReXhMUVVGTE8xbEJRMHdzZFVOQlFYVkRPMWxCUTNaRExEUkRRVUUwUXp0WlFVTTFReXd5UTBGQk1rTTdXVUZETTBNc05FSkJRVFJDTzFsQlF6VkNMR3REUVVGclF6dFpRVU5zUXl4TlFVRk5PMWxCUTA0c1owTkJRV2RETzFsQlEyaERMRGhDUVVFNFFqdFpRVU01UWl4TlFVRk5MRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zUTBGQlF6dFJRVU53UkN4RFFVRkRPMUZCUlVRc1RVRkJUU3hQUVVGUExFZEJRVWM3V1VGRFpDeE5RVUZOTzFsQlEwNHNVVUZCVVN4RlFVRkZMRkZCUVZFN1dVRkRiRUlzVFVGQlRTeEZRVUZGTEUxQlFVMDdXVUZEWkN3MFEwRkJORU03V1VGRE5VTXNaVUZCWlN4RlFVRkZMRWRCUVVjc1JVRkJSVHRuUWtGRGNFSXNUMEZCVHl4RlFVRkZMRkZCUVZFc1JVRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zZDBKQlFYZENPMWxCUXk5R0xFTkJRVU03V1VGRFJDeGpRVUZqTEVWQlFVVXNSMEZCUnl4RlFVRkZPMmRDUVVOdVFpeFBRVUZQTEVWQlFVVXNVVUZCVVN4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXg1UWtGQmVVSTdXVUZETDBZc1EwRkJRenRaUVVORUxHRkJRV0VzUlVGQlJTeEhRVUZITEVWQlFVVTdaMEpCUTJ4Q0xFOUJRVThzUlVGQlJTeFJRVUZSTEVWQlFVVXNTVUZCU1N4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMR1ZCUVdVc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eDNRa0ZCZDBJN1dVRkROMFlzUTBGQlF6dFpRVU5FTEcxQ1FVRnRRaXhGUVVGRkxFZEJRVWNzUlVGQlJUdG5Ra0ZEZUVJc1QwRkJUeXhGUVVGRkxGRkJRVkVzUlVGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNaVUZCWlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExIVkNRVUYxUWp0WlFVTTFSaXhEUVVGRE8xTkJRMmRDTEVOQlFVTTdVVUZGY0VJc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eHBRa0ZCYVVJc1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZETTBNc1RVRkJUU3hQUVVGUExFZEJRVWNzVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUldwRExHbENRVUZwUWp0UlFVTnFRaXhKUVVGSkxFMUJRVTBzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXp0WlFVTm1MRTlCUVU4c1EwRkJReXhMUVVGTExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1JVRkJSVHRuUWtGRGRrTXNTMEZCU3l4RFFVRkRMRTFCUVd0Q0xFVkJRVVVzVDBGQldTeEZRVUZGTEZGQlFXVTdiMEpCUTNKRUxFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF6dHZRa0ZEZWtNc1MwRkJTeXhGUVVGRkxFTkJRVU03WjBKQlExWXNRMEZCUXp0aFFVTkdMRU5CUVVNc1EwRkJRenRSUVVOTUxFTkJRVU03VVVGRlJDeFBRVUZQTEU5QlFVOHNRMEZCUXp0SlFVTnFRaXhEUVVGRE8wbEJSVVE3T3pzN096czdPMDlCVVVjN1NVRkRUU3hSUVVGUk8xRkJRMllzVDBGQlR5eEpRVUZKTEcxQ1FVRnRRaXhEUVVGRExHVkJRV1VzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRKUVVNdlJDeERRVUZETzBsQlJWTXNUVUZCVFN4RFFVRkRMRmxCUVZrc1EwRkRNMElzUzBGQk9FSXNSVUZET1VJc1RVRkJhMElzUlVGRGJFSXNSMEZCUnl4SlFVRjVRenRSUVVVMVF5eFBRVUZQTEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUVVNc1MwRkJTeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMR0ZCUVdFc1EwRkJRenRKUVVOdVJTeERRVUZETzBsQlJWTXNUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkRla0lzUzBGQk9FSXNSVUZET1VJc1RVRkJhMElzUlVGRGJFSXNSMEZCUnl4SlFVRjVRenRSUVVVMVF5eFBRVUZQTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJRenRKUVVNelJDeERRVUZETzBsQlJWTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1EwRkRNVUlzUzBGQk9FSXNSVUZET1VJc1RVRkJhMElzUlVGRGJFSXNSMEZCUnl4SlFVRjVRenRSUVVVMVF5eFBRVUZQTEVOQlEwd3NTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkJReXhMUVVGTExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTTdXVUZEYUVNc2RVSkJRWFZDTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRM2hETEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRN096czdPenRQUVUxSE8wbEJRMDhzVFVGQlRTeERRVUZETEZWQlFWVXNRMEZEZWtJc1IwRkJhME03VVVGRmJFTXNUMEZCVHp0UlFVTlFMSEZEUVVGeFF6dFJRVU55UXl4clJFRkJhMFE3VVVGRGJFUXNUVUZCVFR0UlFVTk9MRWxCUVVrN1VVRkRTaXgzUkVGQmQwUTdVVUZGZUVRc1NVRkJTU3hIUVVGSExFZEJRVWNzVDBGQlR5eEhRVUZITEV0QlFVc3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNN1VVRkRkRVFzU1VGQlNTeEhRVUZITEZsQlFWa3NXVUZCV1N4SlFVRkpMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NRMEZCUXl4SlFVRkpMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRVU03V1VGRGVrVXNSMEZCUnl4SFFVRkhMRWRCUVVjc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRSUVVOd1F5eERRVUZETzFGQlJVUXNTVUZEUlN4SFFVRkhMRmxCUVZrc1dVRkJXVHRaUVVNelFpeEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwN1dVRkRiRUlzUjBGQlJ5eERRVUZETEVsQlFVa3NTMEZCU3l4RlFVRkZPMWxCUTJZc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1VVRkJVU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVOMlJDeERRVUZETzFsQlEwUXNSMEZCUnl4SFFVRkhMRWRCUVVjc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRSUVVOd1F5eERRVUZETzFGQlJVUXNTVUZCU1N4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRPMWxCUTNCRExFOUJRVThzU1VGQlNTeHhRa0ZCY1VJc1EwRkJReXhIUVVGSExFTkJRVTBzUTBGQlF6dFJRVVUzUXl4SlFVRkpMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNN1dVRkRia01zVDBGQlR5eEpRVUZKTEhWQ1FVRjFRaXhEUVVGRExFZEJRVWNzUTBGQlRTeERRVUZETzFGQlJTOURMRWxCUTBVc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5dzJRa0ZCTmtJc1EwRkJRenRaUVVNelF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRzlDUVVGdlFpeERRVUZETzFsQlEyeERMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zYTBOQlFXdERMRU5CUVVNN1dVRkRhRVFzUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl3clFrRkJLMElzUTBGQlF6dFpRVVUzUXl4UFFVRlBMRWxCUVVrc2QwSkJRWGRDTEVOQlFVTXNSMEZCUnl4RFFVRk5MRU5CUVVNN1VVRkZhRVFzU1VGQlNTeEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRFJDUVVFMFFpeERRVUZETzFsQlF6VkRMRTlCUVU4c1NVRkJTU3h6UWtGQmMwSXNRMEZCUXl4SFFVRkhMRU5CUVUwc1EwRkJRenRSUVVVNVF5eEpRVUZKTEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTTdXVUZEZGtNc1QwRkJUeXhKUVVGSkxIZENRVUYzUWl4RFFVRkRMRWRCUVVjc1EwRkJUU3hEUVVGRE8xRkJSV2hFTEVsQlFVa3NSMEZCUnl4WlFVRlpMRXRCUVVzc1NVRkJTeXhIUVVGWExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdXVUZET1VNc1VVRkJVeXhIUVVGWExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdaMEpCUXpGQ0xFdEJRVXNzUTBGQlF6dHZRa0ZEU2l4UFFVRlBMRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNSMEZCUnl4RFFVRk5MRU5CUVVNN1dVRkRNVU1zUTBGQlF6dFJRVU5JTEVOQlFVTTdVVUZGUkN4SlFVRkpMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zWlVGQlpTeERRVUZETEVsQlFVa3NRMEZCUXp0WlFVTndReXhQUVVGUExFbEJRVWtzWlVGQlpTeERRVUZETEVkQlFVY3NRMEZCVFN4RFFVRkRPMUZCUTNaRExFbEJRVWtzUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1NVRkJTU3hEUVVGRE8xbEJRVVVzVDBGQlR5eEpRVUZKTEdGQlFXRXNRMEZCUXl4SFFVRkhMRU5CUVUwc1EwRkJRenRSUVVONlJTeEpRVUZKTEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF6dFpRVUZGTEU5QlFVOHNTVUZCU1N4aFFVRmhMRU5CUVVNc1IwRkJSeXhEUVVGTkxFTkJRVU03VVVGRGVrVXNTVUZCU1N4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExHVkJRV1VzUTBGQlF5eEpRVUZKTEVOQlFVTTdXVUZEY0VNc1QwRkJUeXhKUVVGSkxHVkJRV1VzUTBGQlF5eEhRVUZITEVOQlFVMHNRMEZCUXp0UlFVTjJReXhKUVVGSkxFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWxCUVVrc1EwRkJRenRaUVVGRkxFOUJRVThzU1VGQlNTeFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRk5MRU5CUVVNN1VVRkRia1VzU1VGQlNTeEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU03V1VGQlJTeFBRVUZQTEVsQlFVa3NWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJUU3hEUVVGRE8xRkJRM0pGTEVsQlFVa3NSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4SlFVRkpMRU5CUVVNN1dVRkRja01zVDBGQlR5eEpRVUZKTEdkQ1FVRm5RaXhEUVVGRExFZEJRVWNzUTBGQlRTeERRVUZETzFGQlEzaERMRWxCUVVrc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eGpRVUZqTEVOQlFVTXNTVUZCU1N4RFFVRkRPMWxCUVVVc1QwRkJUeXhKUVVGSkxHTkJRV01zUTBGQlF5eEhRVUZITEVOQlFVMHNRMEZCUXp0UlFVTXpSU3hKUVVGSkxFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJRenRaUVVGRkxFOUJRVThzU1VGQlNTeGhRVUZoTEVOQlFVTXNSMEZCUnl4RFFVRk5MRU5CUVVNN1VVRkRla1VzU1VGQlNTeEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMR3RDUVVGclFpeERRVUZETEVsQlFVa3NRMEZCUXp0WlFVTjJReXhQUVVGUExFbEJRVWtzYTBKQlFXdENMRU5CUVVNc1IwRkJSeXhEUVVGTkxFTkJRVU03VVVGRE1VTXNTVUZCU1N4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExHTkJRV01zUTBGQlF5eEpRVUZKTEVOQlFVTTdXVUZCUlN4UFFVRlBMRWxCUVVrc1kwRkJZeXhEUVVGRExFZEJRVWNzUTBGQlRTeERRVUZETzFGQlF6TkZMRWxCUVVrc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eGxRVUZsTEVOQlFVTXNTVUZCU1N4RFFVRkRPMWxCUTNCRExFOUJRVThzU1VGQlNTeGxRVUZsTEVOQlFVTXNSMEZCUnl4RFFVRk5MRU5CUVVNN1VVRkRka01zU1VGQlNTeEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMR3RDUVVGclFpeERRVUZETEVsQlFVa3NRMEZCUXp0WlFVTjJReXhQUVVGUExFbEJRVWtzYTBKQlFXdENMRU5CUVVNc1IwRkJSeXhEUVVGTkxFTkJRVU03VVVGRE1VTXNUMEZCVHl4SlFVRkpMR0ZCUVdFc1EwRkJReXhIUVVGSExFTkJRVTBzUTBGQlF6dEpRVU55UXl4RFFVRkRPenRCUVd4elEyTTdTVUZHWkN4TFFVRkxMRVZCUVVVN1NVRkRVQ3hMUVVGTExFVkJRVVU3TzNGRlFVMXJRaXh0UWtGQmJVSTdPMmxFUVhORE5VTTdRVUZKU3p0SlFVWk1MRXRCUVVzc1JVRkJSVHRKUVVOUUxFdEJRVXNzUlVGQlJUczdOa05CUjJ0Q0xHMUNRVUZ0UWpzN2MwUkJaVFZETzBGQlYwczdTVUZHVEN4TFFVRkxMRVZCUVVVN1NVRkRVQ3hMUVVGTExFVkJRVVU3TzNGRVFVbHJRaXh0UWtGQmJVSTdPeXREUVdkQ05VTTdRVUUwUWtzN1NVRkdUQ3hMUVVGTExFVkJRVVU3U1VGRFVDeExRVUZMTEVWQlFVVTdPM0ZGUVUxclFpeHRRa0ZCYlVJN08ybEVRWFZETlVNN1FVRlhZenRKUVVaa0xFdEJRVXNzUlVGQlJUdEpRVU5RTEV0QlFVc3NSVUZCUlRzN2NVUkJTV3RDTEcxQ1FVRnRRanM3YVVSQk9FSTFRenRCUVRSQ1N6dEpRVVJNTEV0QlFVc3NSVUZCUlRzN2FVVkJSMGtzUTBGQlF5eHZRa0ZCUkN4RFFVRkRMSGREUVVWaExHMUNRVUZ0UWpzN09FTkJkVU0xUXp0QlFXRkxPMGxCUkV3c1MwRkJTeXhGUVVGRk96czJSRUZMYTBJc2JVSkJRVzFDT3pzclEwRjNRalZETzBGQmJUUkNTQ3h0UWtGQmJVSXNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJRenRCUVVOcVF5eFBRVUZQTEVOQlFVTXNWVUZCVlN4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElGd2lMaTR2YzJoaGNtVmtMMjkyWlhKeWFXUmxjMXdpTzF4dWFXMXdiM0owSUh0Y2JpQWdRMjkxWTJoRVFrdGxlWE1zWEc0Z0lIUjVjR1VnVFdGdVoyOVJkV1Z5ZVN4Y2JpQWdkSGx3WlNCV2FXVjNVbVZ6Y0c5dWMyVXNYRzU5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12Wm05eUxXTnZkV05vWkdKY0lqdGNibWx0Y0c5eWRDQjdJRU5zYVdWdWRDQjlJR1p5YjIwZ1hDSkFaM0p3WXk5bmNuQmpMV3B6WENJN1hHNXBiWEJ2Y25RZ0tpQmhjeUJuY25CaklHWnliMjBnWENKQVozSndZeTluY25CakxXcHpYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQk5iMlJsYkN4Y2JpQWdkSGx3WlNCTmIyUmxiRU52Ym5OMGNuVmpkRzl5TEZ4dUlDQjBlWEJsSUZObGNtbGhiR2w2WlhJc1hHNTlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR1ZqYjNKaGRHOXlMWFpoYkdsa1lYUnBiMjVjSWp0Y2JtbHRjRzl5ZENCN0lHUmxZblZuTENCbWFXNWhiQ3dnVEc5bloybHVaeUI5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12Ykc5bloybHVaMXdpTzF4dWFXMXdiM0owSUh0Y2JpQWdkSGx3WlNCUVpXVnlRMjl1Wm1sbkxGeHVJQ0IwZVhCbElGTmxaM0psWjJGMFpXUk5iMlJsYkN4Y2JpQWdkSGx3WlNCTmMzQkVaWFJoYVd4ekxGeHVmU0JtY205dElGd2lMaTR2YzJoaGNtVmtMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCamIyNXVaV04wTEZ4dUlDQjBlWEJsSUVOdmJtNWxZM1JQY0hScGIyNXpMRnh1SUNCSFlYUmxkMkY1TEZ4dUlDQk9aWFIzYjNKckxGeHVJQ0JRY205d2IzTmhiRTl3ZEdsdmJuTXNYRzRnSUVOdmJuUnlZV04wSUdGeklFTnZiblJ5WVd0MExGeHVJQ0IwZVhCbElGTnBaMjVsY2l4Y2JpQWdSMkYwWlhkaGVVVnljbTl5TEZ4dUlDQkZibVJ2Y25ObFJYSnliM0lzWEc1OUlHWnliMjBnWENKQWFIbHdaWEpzWldSblpYSXZabUZpY21sakxXZGhkR1YzWVhsY0lqdGNibWx0Y0c5eWRDQjdJRWRoZEdWM1lYa2dZWE1nVEdWbllXTjVSMkYwWlhkaGVTd2dWMkZzYkdWMGN5QjlJR1p5YjIwZ1hDSm1ZV0p5YVdNdGJtVjBkMjl5YTF3aU8xeHVhVzF3YjNKMElIUjVjR1VnZXlCRmJtUnZjbk5sY2lCOUlHWnliMjBnWENKbVlXSnlhV010WTI5dGJXOXVYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQm5aWFJKWkdWdWRHbDBlU3hjYmlBZ1oyVjBVMmxuYm1WeUxGeHVJQ0JuWlhSR2FYSnpkRVJwY2tacGJHVk9ZVzFsUTI5dWRHVnVkQ3hjYmlBZ2NtVmhaRVpwYkdVZ1lYTWdjbVZoWkVaelJtbHNaU3hjYm4wZ1puSnZiU0JjSWk0dlptRmljbWxqTFdaelhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCQ1lYTmxSWEp5YjNJc1hHNGdJRWx1ZEdWeWJtRnNSWEp5YjNJc1hHNGdJRTl3WlhKaGRHbHZia3RsZVhNc1hHNGdJRk5sY21saGJHbDZZWFJwYjI1RmNuSnZjaXhjYmlBZ1FuVnNhME55ZFdSUGNHVnlZWFJwYjI1TFpYbHpMRnh1SUNCT2IzUkdiM1Z1WkVWeWNtOXlMRnh1SUNCRGIyNW1iR2xqZEVWeWNtOXlMRnh1SUNCQ1lXUlNaWEYxWlhOMFJYSnliM0lzWEc0Z0lIUjVjR1VnVUhKcGJXRnllVXRsZVZSNWNHVXNYRzRnSUZaaGJHbGtZWFJwYjI1RmNuSnZjaXhjYm4wZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1lpMWtaV052Y21GMGIzSnpYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQkRiMjUwWlhoMExGeHVJQ0JCWkdGd2RHVnlMRnh1SUNCMGVYQmxJRUZrWVhCMFpYSkdiR0ZuY3l4Y2JpQWdRWFYwYUc5eWFYcGhkR2x2YmtWeWNtOXlMRnh1SUNCRGIyNXVaV04wYVc5dVJYSnliM0lzWEc0Z0lFWnZjbUpwWkdSbGJrVnljbTl5TEZ4dUlDQk5hV2R5WVhScGIyNUZjbkp2Y2l4Y2JpQWdUMkp6WlhKMlpYSkZjbkp2Y2l4Y2JpQWdVR0ZuYVc1blJYSnliM0lzWEc0Z0lGQmxjbk5wYzNSbGJtTmxTMlY1Y3l4Y2JpQWdVWFZsY25sRmNuSnZjaXhjYmlBZ1VtVndiM05wZEc5eWVTeGNiaUFnVlc1emRYQndiM0owWldSRmNuSnZjaXhjYmlBZ1UzUmhkR1Z0Wlc1MExGeHVJQ0IwZVhCbElGQnlaWEJoY21Wa1UzUmhkR1Z0Wlc1MExGeHVJQ0JRWVdkcGJtRjBiM0lzWEc0Z0lFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp5eGNiaUFnUTI5dWRHVjRkSFZoYkVGeVozTXNYRzRnSUhSNWNHVWdVSEpsY0dGeVpXUk5iMlJsYkN4Y2JpQWdRV3hzVDNCbGNtRjBhVzl1UzJWNWN5eGNibjBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdleUJHWVdKeWFXTkdiR0YyYjNWeUxDQkdZV0p5YVdOTmIyUmxiRXRsZVhNZ2ZTQm1jbTl0SUZ3aUxpNHZjMmhoY21Wa0wyTnZibk4wWVc1MGMxd2lPMXh1YVcxd2IzSjBJSHNnUTJ4cFpXNTBVMlZ5YVdGc2FYcGxjaUI5SUdaeWIyMGdYQ0l1TGk5emFHRnlaV1F2UTJ4cFpXNTBVMlZ5YVdGc2FYcGxjbHdpTzF4dWFXMXdiM0owSUhzZ1JtRmljbWxqUTJ4cFpXNTBRMjl1ZEdWNGRDQjlJR1p5YjIwZ1hDSXVMMFpoWW5KcFkwTnNhV1Z1ZEVOdmJuUmxlSFJjSWp0Y2JtbHRjRzl5ZENCN0lFWmhZbkpwWTBOc2FXVnVkRVJwYzNCaGRHTm9JSDBnWm5KdmJTQmNJaTR2Um1GaWNtbGpRMnhwWlc1MFJHbHpjR0YwWTJoY0lqdGNiaTh2SUdsdGNHOXlkQ0I3SUVoVFRWTnBaMjVsY2taaFkzUnZjbmxEZFhOMGIyMGdmU0JtY205dElGd2lMaTltWVdKeWFXTXRhSE50WENJN1hHNXBiWEJ2Y25RZ2V5QjBlWEJsSUVOdmJuTjBjblZqZEc5eUlIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtaV052Y21GMGFXOXVYQ0k3WEc1cGJYQnZjblFnZXlCR1lXSnlhV05EYkdsbGJuUlRkR0YwWlcxbGJuUWdmU0JtY205dElGd2lMaTlHWVdKeWFXTkRiR2xsYm5SVGRHRjBaVzFsYm5SY0lqdGNibWx0Y0c5eWRDQjdJRVpoWW5KcFkwTnNhV1Z1ZEZCaFoybHVZWFJ2Y2lCOUlHWnliMjBnWENJdUwwWmhZbkpwWTBOc2FXVnVkRkJoWjJsdVlYUnZjbHdpTzF4dWFXMXdiM0owSUhzZ1JtRmljbWxqUTJ4cFpXNTBVbVZ3YjNOcGRHOXllU0I5SUdaeWIyMGdYQ0l1TDBaaFluSnBZME5zYVdWdWRGSmxjRzl6YVhSdmNubGNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFVnVaRzl5YzJWdFpXNTBSWEp5YjNJc1hHNGdJRVZ1Wkc5eWMyVnRaVzUwVUc5c2FXTjVSWEp5YjNJc1hHNGdJRTEyWTJOU1pXRmtRMjl1Wm14cFkzUkZjbkp2Y2l4Y2JpQWdVR2hoYm5SdmJWSmxZV1JEYjI1bWJHbGpkRVZ5Y205eUxGeHVJQ0JSZFdWeWVWSmxjM1ZzZEZSdmIweGhjbWRsUlhKeWIzSXNYRzRnSUZSeVlXNXpZV04wYVc5dVZHbHRaVzkxZEVWeWNtOXlMRnh1ZlNCbWNtOXRJRndpTGk0dmMyaGhjbVZrTDJWeWNtOXljMXdpTzF4dWFXMXdiM0owSUhzZ1JtRmljbWxqUTJ4cFpXNTBSbXhoWjNNZ2ZTQm1jbTl0SUZ3aUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2dSR1ZtWVhWc2RFWmhZbkpwWTBOc2FXVnVkRVpzWVdkeklIMGdabkp2YlNCY0lpNHZZMjl1YzNSaGJuUnpYQ0k3WEc1cGJYQnZjblFnWm5NZ1puSnZiU0JjSW1aelhDSTdYRzVwYlhCdmNuUWdleUJEY25sd2RHOVZkR2xzY3lCOUlHWnliMjBnWENJdUwyTnllWEIwYjF3aU8xeHVhVzF3YjNKMElIc2daWGgwY21GamRFbGtjeUI5SUdaeWIyMGdYQ0l1TDJsa2N5OXBaQzFsZUhSeVlXTjBhVzl1WENJN1hHNXBiWEJ2Y25RZ2V5QkVaV1poZFd4MFEyOXVkSEpoWTNSU1pYTnZiSFpsY2l3Z1NXUmxiblJwZEhrZ2ZTQm1jbTl0SUZ3aUxpNHZjMmhoY21Wa0wybHVaR1Y0WENJN1hHNWNiblI1Y0dVZ1RHVm5ZV041VUdWbGNsUmhjbWRsZENBOUlIdGNiaUFnYlhOd1NXUTZJSE4wY21sdVp6dGNiaUFnY0dWbGNrVnVaSEJ2YVc1ME9pQnpkSEpwYm1jN1hHNGdJSEJsWlhKSWIzTjBRV3hwWVhNL09pQnpkSEpwYm1jN1hHNGdJSFJzYzBObGNuUS9PaUJ6ZEhKcGJtY2dmQ0JDZFdabVpYSTdYRzU5TzF4dVhHNTBlWEJsSUV4bFoyRmplVkJsWlhKWGFYUm9UbUZ0WlNBOUlFeGxaMkZqZVZCbFpYSlVZWEpuWlhRZ0ppQjdJRzVoYldVNklITjBjbWx1WnlCOU8xeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCQlpHRndkR1Z5SUdadmNpQnBiblJsY21GamRHbHVaeUIzYVhSb0lFaDVjR1Z5YkdWa1oyVnlJRVpoWW5KcFl5QnVaWFIzYjNKcmMxeHVJQ29nUUhOMWJXMWhjbmtnVkdobElFWmhZbkpwWTBGa1lYQjBaWElnWlhoMFpXNWtjeUJEYjNWamFFUkNRV1JoY0hSbGNpQjBieUJ3Y205MmFXUmxJR0VnYzJWaGJXeGxjM01nYVc1MFpYSm1ZV05sSUdadmNpQnBiblJsY21GamRHbHVaeUIzYVhSb0lFaDVjR1Z5YkdWa1oyVnlJRVpoWW5KcFl5QnVaWFIzYjNKcmN5NWNiaUFxSUVsMElHaGhibVJzWlhNZ1kyOXVibVZqZEdsdmJpQnRZVzVoWjJWdFpXNTBMQ0IwY21GdWMyRmpkR2x2YmlCemRXSnRhWE56YVc5dUxDQmhibVFnUTFKVlJDQnZjR1Z5WVhScGIyNXpJR0ZuWVdsdWMzUWdSbUZpY21saklHTm9ZV2x1WTI5a1pTNWNiaUFxSUVCMFpXMXdiR0YwWlNCUVpXVnlRMjl1Wm1sbklDMGdRMjl1Wm1sbmRYSmhkR2x2YmlCMGVYQmxJR1p2Y2lCamIyNXVaV04wYVc1bklIUnZJR0VnUm1GaWNtbGpJSEJsWlhKY2JpQXFJRUIwWlcxd2JHRjBaU0JHWVdKeWFXTkdiR0ZuY3lBdElFWnNZV2R6SUhOd1pXTnBabWxqSUhSdklFWmhZbkpwWXlCdmNHVnlZWFJwYjI1elhHNGdLaUJBZEdWdGNHeGhkR1VnUTI5dWRHVjRkRHhHWVdKeWFXTkdiR0ZuY3o0Z0xTQkRiMjUwWlhoMElIUjVjR1VnWTI5dWRHRnBibWx1WnlCR1lXSnlhV010YzNCbFkybG1hV01nWm14aFozTmNiaUFxSUVCd1lYSmhiU0JqYjI1bWFXY2dMU0JEYjI1bWFXZDFjbUYwYVc5dUlHWnZjaUJqYjI1dVpXTjBhVzVuSUhSdklHRWdSbUZpY21saklIQmxaWEpjYmlBcUlFQndZWEpoYlNCaGJHbGhjeUF0SUU5d2RHbHZibUZzSUdGc2FXRnpJR1p2Y2lCMGFHVWdZV1JoY0hSbGNpQnBibk4wWVc1alpWeHVJQ29nUUdOc1lYTnpJRVpoWW5KcFkwTnNhV1Z1ZEVGa1lYQjBaWEpjYmlBcUlFQmxlR0Z0Y0d4bFhHNGdLaUJnWUdCMGVYQmxjMk55YVhCMFhHNGdLaUF2THlCRGNtVmhkR1VnWVNCdVpYY2dSbUZpY21salFXUmhjSFJsY2lCcGJuTjBZVzVqWlZ4dUlDb2dZMjl1YzNRZ1kyOXVabWxuT2lCUVpXVnlRMjl1Wm1sbklEMGdlMXh1SUNvZ0lDQnRjM0JKWkRvZ0owOXlaekZOVTFBbkxGeHVJQ29nSUNCd1pXVnlSVzVrY0c5cGJuUTZJQ2RzYjJOaGJHaHZjM1E2TnpBMU1TY3NYRzRnS2lBZ0lHTm9ZVzV1Wld4T1lXMWxPaUFuYlhsamFHRnVibVZzSnl4Y2JpQXFJQ0FnWTJoaGFXNWpiMlJsVG1GdFpUb2dKMjE1WTJNbkxGeHVJQ29nSUNCamIyNTBjbUZqZEU1aGJXVTZJQ2R0ZVdOdmJuUnlZV04wSnl4Y2JpQXFJQ0FnZEd4elEyVnlkRkJoZEdnNklDY3ZjR0YwYUM5MGJ5OTBiSE12WTJWeWRDY3NYRzRnS2lBZ0lHTmxjblJFYVhKbFkzUnZjbmxRWVhSb09pQW5MM0JoZEdndmRHOHZZMlZ5ZEM5a2FYSW5MRnh1SUNvZ0lDQnJaWGxFYVhKbFkzUnZjbmxRWVhSb09pQW5MM0JoZEdndmRHOHZhMlY1TDJScGNpZGNiaUFxSUgwN1hHNGdLbHh1SUNvZ1kyOXVjM1FnWVdSaGNIUmxjaUE5SUc1bGR5QkdZV0p5YVdOQlpHRndkR1Z5S0dOdmJtWnBaeXdnSjI5eVp6RXRZV1JoY0hSbGNpY3BPMXh1SUNwY2JpQXFJQzh2SUZWelpTQjBhR1VnWVdSaGNIUmxjaUIwYnlCcGJuUmxjbUZqZENCM2FYUm9JSFJvWlNCR1lXSnlhV01nYm1WMGQyOXlhMXh1SUNvZ1kyOXVjM1FnY21WemRXeDBJRDBnWVhkaGFYUWdZV1JoY0hSbGNpNXlaV0ZrS0NkMWMyVnljeWNzSUNkMWMyVnlNU2NzSUcxNVUyVnlhV0ZzYVhwbGNpazdYRzRnS2lCZ1lHQmNiaUFxSUVCdFpYSnRZV2xrWEc0Z0tpQnpaWEYxWlc1alpVUnBZV2R5WVcxY2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1EyeHBaVzUwWEc0Z0tpQWdJSEJoY25ScFkybHdZVzUwSUVaaFluSnBZMEZrWVhCMFpYSmNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdSMkYwWlhkaGVWeHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQk9aWFIzYjNKclhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElFTnZiblJ5WVdOMFhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElFTm9ZV2x1WTI5a1pWeHVJQ3BjYmlBcUlDQWdRMnhwWlc1MExUNCtSbUZpY21salFXUmhjSFJsY2pvZ1kzSmxZWFJsS0hSaFlteGxUbUZ0WlN3Z2FXUXNJRzF2WkdWc0xDQjBjbUZ1YzJsbGJuUXNJSE5sY21saGJHbDZaWElwWEc0Z0tpQWdJRVpoWW5KcFkwRmtZWEIwWlhJdFBqNUdZV0p5YVdOQlpHRndkR1Z5T2lCemRXSnRhWFJVY21GdWMyRmpkR2x2YmloUGNHVnlZWFJwYjI1TFpYbHpMa05TUlVGVVJTd2dXM05sY21saGJHbDZaV1JOYjJSbGJGMHNJSFJ5WVc1emFXVnVkQ2xjYmlBcUlDQWdSbUZpY21salFXUmhjSFJsY2kwK1BrZGhkR1YzWVhrNklHTnZibTVsWTNRb0tWeHVJQ29nSUNCSFlYUmxkMkY1TFQ0K1RtVjBkMjl5YXpvZ1oyVjBUbVYwZDI5eWF5aGphR0Z1Ym1Wc1RtRnRaU2xjYmlBcUlDQWdUbVYwZDI5eWF5MCtQa052Ym5SeVlXTjBPaUJuWlhSRGIyNTBjbUZqZENoamFHRnBibU52WkdWT1lXMWxMQ0JqYjI1MGNtRmpkRTVoYldVcFhHNGdLaUFnSUVaaFluSnBZMEZrWVhCMFpYSXRQajVEYjI1MGNtRmpkRG9nYzNWaWJXbDBLR0Z3YVN3Z2NISnZjRzl6WVd4UGNIUnBiMjV6S1Z4dUlDb2dJQ0JEYjI1MGNtRmpkQzArUGtOb1lXbHVZMjlrWlRvZ2FXNTJiMnRsWEc0Z0tpQWdJRU5vWVdsdVkyOWtaUzB0UGo1RGIyNTBjbUZqZERvZ2NtVnpjRzl1YzJWY2JpQXFJQ0FnUTI5dWRISmhZM1F0TFQ0K1JtRmljbWxqUVdSaGNIUmxjam9nY21WemRXeDBYRzRnS2lBZ0lFWmhZbkpwWTBGa1lYQjBaWEl0UGo1R1lXSnlhV05CWkdGd2RHVnlPaUJrWldOdlpHVW9jbVZ6ZFd4MEtWeHVJQ29nSUNCR1lXSnlhV05CWkdGd2RHVnlMVDQrUm1GaWNtbGpRV1JoY0hSbGNqb2djMlZ5YVdGc2FYcGxjaTVrWlhObGNtbGhiR2w2WlNoa1pXTnZaR1ZrVW1WemRXeDBLVnh1SUNvZ0lDQkdZV0p5YVdOQlpHRndkR1Z5TFMwK1BrTnNhV1Z1ZERvZ1pHVnpaWEpwWVd4cGVtVmtVbVZ6ZFd4MFhHNGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5QkdZV0p5YVdORGJHbGxiblJCWkdGd2RHVnlJR1Y0ZEdWdVpITWdRV1JoY0hSbGNqeGNiaUFnVUdWbGNrTnZibVpwWnl4Y2JpQWdRMnhwWlc1MExGeHVJQ0JOWVc1bmIxRjFaWEo1TEZ4dUlDQkdZV0p5YVdORGJHbGxiblJEYjI1MFpYaDBYRzQrSUh0Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCVGRHRjBhV01nZEdWNGRDQmtaV052WkdWeUlHWnZjaUJqYjI1MlpYSjBhVzVuSUZWcGJuUTRRWEp5WVhrZ2RHOGdjM1J5YVc1blhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElITjBZWFJwWXlCa1pXTnZaR1Z5SUQwZ2JtVjNJRlJsZUhSRVpXTnZaR1Z5S0Z3aWRYUm1PRndpS1R0Y2JseHVJQ0J3Y21sMllYUmxJSE4wWVhScFl5QnpaWEpwWVd4cGVtVnlJRDBnYm1WM0lFTnNhV1Z1ZEZObGNtbGhiR2w2WlhJb0tUdGNibHh1SUNCd2NtOTBaV04wWldRZ2MzUmhkR2xqSUd4dlp5QTlJRXh2WjJkcGJtY3VabTl5S0VaaFluSnBZME5zYVdWdWRFRmtZWEIwWlhJcE8xeHVYRzRnSUhCeWIzUmxZM1JsWkNCeVpXRmtiMjVzZVNCelpYSnBZV3hwZW1WeU9pQlRaWEpwWVd4cGVtVnlQR0Z1ZVQ0Z1BWeHVJQ0FnSUVaaFluSnBZME5zYVdWdWRFRmtZWEIwWlhJdWMyVnlhV0ZzYVhwbGNqdGNibHh1SUNCd2NtOTBaV04wWldRZ2IzWmxjbkpwWkdVZ1oyVjBJRU52Ym5SbGVIUW9LVG9nUTI5dWMzUnlkV04wYjNJOFJtRmljbWxqUTJ4cFpXNTBRMjl1ZEdWNGRENGdlMXh1SUNBZ0lISmxkSFZ5YmlCR1lXSnlhV05EYkdsbGJuUkRiMjUwWlhoME8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCRGNtVmhkR1Z6SUdFZ2JtVjNJRVpoWW5KcFkwRmtZWEIwWlhJZ2FXNXpkR0Z1WTJWY2JpQWdJQ29nUUhOMWJXMWhjbmtnU1c1cGRHbGhiR2w2WlhNZ1lTQnVaWGNnWVdSaGNIUmxjaUJtYjNJZ2FXNTBaWEpoWTNScGJtY2dkMmwwYUNCaElFaDVjR1Z5YkdWa1oyVnlJRVpoWW5KcFl5QnVaWFIzYjNKclhHNGdJQ0FxSUVCd1lYSmhiU0I3VUdWbGNrTnZibVpwWjMwZ1kyOXVabWxuSUMwZ1EyOXVabWxuZFhKaGRHbHZiaUJtYjNJZ1kyOXVibVZqZEdsdVp5QjBieUJoSUVaaFluSnBZeUJ3WldWeVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiWVd4cFlYTmRJQzBnVDNCMGFXOXVZV3dnWVd4cFlYTWdabTl5SUhSb1pTQmhaR0Z3ZEdWeUlHbHVjM1JoYm1ObFhHNGdJQ0FxTDF4dUlDQmpiMjV6ZEhKMVkzUnZjaWhqYjI1bWFXYzZJRkJsWlhKRGIyNW1hV2NzSUdGc2FXRnpQem9nYzNSeWFXNW5LU0I3WEc0Z0lDQWdjM1Z3WlhJb1hHNGdJQ0FnSUNCUFltcGxZM1F1WVhOemFXZHVLSHQ5TENCRVpXWmhkV3gwUm1GaWNtbGpRMnhwWlc1MFJteGhaM01zSUdOdmJtWnBaeWtzWEc0Z0lDQWdJQ0JHWVdKeWFXTkdiR0YyYjNWeUxGeHVJQ0FnSUNBZ1lXeHBZWE5jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnY0hKdmRHVmpkR1ZrSUdOb1lXbHVZMjlrWlVadmNpaGNiaUFnSUNCdGIyUmxiRG9nUTI5dWMzUnlkV04wYjNJOFRXOWtaV3c4WVc1NVBqNHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1EyOXVkR1Y0ZEhWaGJFRnlaM004Um1GaWNtbGpRMnhwWlc1MFEyOXVkR1Y0ZEQ1Y2JpQWdLU0I3WEc0Z0lDQWdjbVYwZFhKdUlFWmhZbkpwWTBOc2FXVnVkRUZrWVhCMFpYSXVZMmhoYVc1amIyUmxSbTl5S0cxdlpHVnNMQ0IwYUdsekxtTnZibVpwWnl3Z0xpNHVZWEpuY3lrN1hHNGdJSDFjYmx4dUlDQndjbTkwWldOMFpXUWdZMmhoYm01bGJFWnZjaWhjYmlBZ0lDQnRiMlJsYkRvZ1EyOXVjM1J5ZFdOMGIzSThUVzlrWld3OFlXNTVQajRzWEc0Z0lDQWdMaTR1WVhKbmN6b2dRMjl1ZEdWNGRIVmhiRUZ5WjNNOFJtRmljbWxqUTJ4cFpXNTBRMjl1ZEdWNGRENWNiaUFnS1NCN1hHNGdJQ0FnY21WMGRYSnVJRVpoWW5KcFkwTnNhV1Z1ZEVGa1lYQjBaWEl1WTJoaGJtNWxiRVp2Y2lodGIyUmxiQ3dnZEdocGN5NWpiMjVtYVdjc0lDNHVMbUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdjSEp2ZEdWamRHVmtJR052Ym5SeVlXTjBSbTl5S0Z4dUlDQWdJRzF2WkdWc09pQkRiMjV6ZEhKMVkzUnZjanhOYjJSbGJEeGhibmsrUGl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eEdZV0p5YVdORGJHbGxiblJEYjI1MFpYaDBQbHh1SUNBcElIdGNiaUFnSUNCeVpYUjFjbTRnUm1GaWNtbGpRMnhwWlc1MFFXUmhjSFJsY2k1amIyNTBjbUZqZEVadmNpaHRiMlJsYkN3Z2RHaHBjeTVqYjI1bWFXY3NJQzR1TG1GeVozTXBPMXh1SUNCOVhHNWNiaUFnYjNabGNuSnBaR1VnVTNSaGRHVnRaVzUwUEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWEc0Z0lDQWdiM1psY25KcFpHVnpQem9nVUdGeWRHbGhiRHhCWkdGd2RHVnlSbXhoWjNNK1hHNGdJQ2s2SUZOMFlYUmxiV1Z1ZER4TkxDQkdZV0p5YVdORGJHbGxiblJCWkdGd2RHVnlMQ0JoYm5rc0lFMWhibWR2VVhWbGNuaytJSHRjYmlBZ0lDQnlaWFIxY200Z2JtVjNJRVpoWW5KcFkwTnNhV1Z1ZEZOMFlYUmxiV1Z1ZENoMGFHbHpMQ0J2ZG1WeWNtbGtaWE1wTzF4dUlDQjlYRzVjYmlBZ1VHRm5hVzVoZEc5eVBFMGdaWGgwWlc1a2N5Qk5iMlJsYkQ0b1hHNGdJQ0FnY1hWbGNuazZJRkJ5WlhCaGNtVmtVM1JoZEdWdFpXNTBQR0Z1ZVQ0Z2ZDQk5ZVzVuYjFGMVpYSjVMRnh1SUNBZ0lITnBlbVU2SUc1MWJXSmxjaXhjYmlBZ0lDQmpiR0Y2ZWpvZ1EyOXVjM1J5ZFdOMGIzSThUVDVjYmlBZ0tUb2dVR0ZuYVc1aGRHOXlQRTBzSUdGdWVTd2dUV0Z1WjI5UmRXVnllVDRnZTF4dUlDQWdJSEpsZEhWeWJpQnVaWGNnUm1GaWNtbGpRMnhwWlc1MFVHRm5hVzVoZEc5eUtIUm9hWE1zSUhGMVpYSjVMQ0J6YVhwbExDQmpiR0Y2ZWlrN1hHNGdJSDFjYmx4dUlDQndjbTkwWldOMFpXUWdiM1psY25KcFpHVWdZWE41Ym1NZ1pteGhaM004VFNCbGVIUmxibVJ6SUUxdlpHVnNQaWhjYmlBZ0lDQnZjR1Z5WVhScGIyNDZJRTl3WlhKaGRHbHZia3RsZVhNZ2ZDQnpkSEpwYm1jc1hHNGdJQ0FnYlc5a1pXdzZJRU52Ym5OMGNuVmpkRzl5UEUwK0lId2dRMjl1YzNSeWRXTjBiM0k4VFQ1YlhTQjhJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQm1iR0ZuY3pvZ1VHRnlkR2xoYkR4R1lXSnlhV05EYkdsbGJuUkdiR0ZuY3o0c1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4R1lXSnlhV05EYkdsbGJuUkdiR0ZuY3o0Z2UxeHVJQ0FnSUdOdmJuTjBJRzFsY21kbFpFWnNZV2R6SUQwZ1QySnFaV04wTG1GemMybG5iaWg3ZlN3Z2RHaHBjeTVqYjI1bWFXY3NJR1pzWVdkektUdGNiaUFnSUNCamIyNXpkQ0JtSUQwZ1QySnFaV04wTG1GemMybG5iaWhjYmlBZ0lDQWdJR0YzWVdsMElITjFjR1Z5TG1ac1lXZHpLRzl3WlhKaGRHbHZiaXdnYlc5a1pXd3NJRzFsY21kbFpFWnNZV2R6TENBdUxpNWhjbWR6S1Z4dUlDQWdJQ2s3WEc0Z0lDQWdjbVYwZFhKdUlHWTdYRzRnSUgxY2JseHVJQ0J2ZG1WeWNtbGtaU0JoYzNsdVl5QmpiMjUwWlhoMFBFMGdaWGgwWlc1a2N5Qk5iMlJsYkQ0b1hHNGdJQ0FnYjNCbGNtRjBhVzl1T2lBb0tDNHVMbUZ5WjNNNklHRnVlVnRkS1NBOVBpQmhibmtwSUh3Z1FXeHNUM0JsY21GMGFXOXVTMlY1Y3l4Y2JpQWdJQ0J2ZG1WeWNtbGtaWE02SUZCaGNuUnBZV3c4Um1GaWNtbGpRMnhwWlc1MFJteGhaM00rTEZ4dUlDQWdJRzF2WkdWc09pQkRiMjV6ZEhKMVkzUnZjanhOUGlCOElFTnZibk4wY25WamRHOXlQRTArVzEwc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEVaaFluSnBZME5zYVdWdWRFTnZiblJsZUhRK1hHNGdJQ2s2SUZCeWIyMXBjMlU4Um1GaWNtbGpRMnhwWlc1MFEyOXVkR1Y0ZEQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR3h2WnlBOUlIUm9hWE11Ykc5bkxtWnZjaWgwYUdsekxtTnZiblJsZUhRcE8xeHVJQ0FnSUd4dlp5NXphV3hzZVNoY2JpQWdJQ0FnSUdCamNtVmhkR2x1WnlCdVpYY2dZMjl1ZEdWNGRDQm1iM0lnSkh0dmNHVnlZWFJwYjI1OUlHOXdaWEpoZEdsdmJpQnZiaUFrZTIxdlpHVnNJRDhnS0VGeWNtRjVMbWx6UVhKeVlYa29iVzlrWld3cElEOGdiVzlrWld3dWJXRndLQ2h0S1NBOVBpQk5iMlJsYkM1MFlXSnNaVTVoYldVb2JTa3BJRG9nVFc5a1pXd3VkR0ZpYkdWT1lXMWxLRzF2WkdWc0tTa2dPaUJjSW01dlhDSjlJSFJoWW14bElDUjdiM1psY25KcFpHVnpJQ1ltSUU5aWFtVmpkQzVyWlhsektHOTJaWEp5YVdSbGN5a2dQeUJQWW1wbFkzUXVhMlY1Y3lodmRtVnljbWxrWlhNcExteGxibWQwYUNBNklGd2libTljSW4wZ2QybDBhQ0JtYkdGbklHOTJaWEp5YVdSbGMyQmNiaUFnSUNBcE8xeHVJQ0FnSUd4bGRDQmpkSGdnUFNCaGNtZHpMbkJ2Y0NncE8xeHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ1kzUjRJQ0U5UFNCY0luVnVaR1ZtYVc1bFpGd2lJQ1ltSUNFb1kzUjRJR2x1YzNSaGJtTmxiMllnUTI5dWRHVjRkQ2twSUh0Y2JpQWdJQ0FnSUdGeVozTXVjSFZ6YUNoamRIZ3BPMXh1SUNBZ0lDQWdZM1I0SUQwZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUgxY2JseHVJQ0FnSUc5MlpYSnlhV1JsY3lBOUlHTjBlRnh1SUNBZ0lDQWdQeUJQWW1wbFkzUXVZWE56YVdkdUtIdDlMQ0JqZEhndWRHOVBkbVZ5Y21sa1pYTW9LU3dnYjNabGNuSnBaR1Z6S1Z4dUlDQWdJQ0FnT2lCdmRtVnljbWxrWlhNN1hHNGdJQ0FnWTI5dWMzUWdabXhoWjNNZ1BTQmhkMkZwZENCMGFHbHpMbVpzWVdkektGeHVJQ0FnSUNBZ2RIbHdaVzltSUc5d1pYSmhkR2x2YmlBOVBUMGdYQ0p6ZEhKcGJtZGNJaUEvSUc5d1pYSmhkR2x2YmlBNklHOXdaWEpoZEdsdmJpNXVZVzFsTEZ4dUlDQWdJQ0FnYlc5a1pXd3NYRzRnSUNBZ0lDQnZkbVZ5Y21sa1pYTWdZWE1nVUdGeWRHbGhiRHhHWVdKeWFXTkRiR2xsYm5SR2JHRm5jejRzWEc0Z0lDQWdJQ0F1TGk1YkxpNHVZWEpuY3l3Z1kzUjRYUzVtYVd4MFpYSW9RbTl2YkdWaGJpbGNiaUFnSUNBcE8xeHVYRzRnSUNBZ2FXWWdLR04wZUNrZ2UxeHVJQ0FnSUNBZ2FXWWdLQ0VvWTNSNElHbHVjM1JoYm1ObGIyWWdkR2hwY3k1RGIyNTBaWGgwS1NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdVpYZERkSGdnUFNCdVpYY2dkR2hwY3k1RGIyNTBaWGgwS0NrdVlXTmpkVzExYkdGMFpTaDdYRzRnSUNBZ0lDQWdJQ0FnTGk0dVkzUjRXMXdpWTJGamFHVmNJbDBzWEc0Z0lDQWdJQ0FnSUNBZ0xpNHVabXhoWjNNc1hHNGdJQ0FnSUNBZ0lDQWdjR0Z5Wlc1MFEyOXVkR1Y0ZERvZ1kzUjRMRnh1SUNBZ0lDQWdJQ0I5S1NCaGN5Qmhibms3WEc0Z0lDQWdJQ0FnSUdOMGVDNWhZMk4xYlhWc1lYUmxLSHRjYmlBZ0lDQWdJQ0FnSUNCamFHbHNaRU52Ym5SbGVIUnpPaUJiWEc0Z0lDQWdJQ0FnSUNBZ0lDQXVMaTRvWTNSNExtZGxkRTl5Vlc1a1pXWnBibVZrS0Z3aVkyaHBiR1JEYjI1MFpYaDBjMXdpS1NCOGZDQmJYU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnVaWGREZEhnc1hHNGdJQ0FnSUNBZ0lDQWdYU3hjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdVpYZERkSGc3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JqYjI1emRDQmpkWEp5Wlc1MFQzQWdQU0JqZEhndVoyVjBUM0pWYm1SbFptbHVaV1FvWENKdmNHVnlZWFJwYjI1Y0lpazdYRzRnSUNBZ0lDQmpiMjV6ZENCamRYSnlaVzUwVFc5a1pXd2dQU0JqZEhndVoyVjBUM0pWYm1SbFptbHVaV1FvWENKaFptWmxZM1JsWkZSaFlteGxjMXdpS1R0Y2JpQWdJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lDQWdJV04xY25KbGJuUlBjQ0I4ZkZ4dUlDQWdJQ0FnSUNCamRYSnlaVzUwVDNBZ0lUMDlJRzl3WlhKaGRHbHZiaUI4ZkZ4dUlDQWdJQ0FnSUNBb2JXOWtaV3dnSmlZZ2JXOWtaV3dnSVQwOUlHTjFjbkpsYm5STmIyUmxiQ2xjYmlBZ0lDQWdJQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J1WlhkRGRIZ2dQU0J1WlhjZ2RHaHBjeTVEYjI1MFpYaDBLQ2t1WVdOamRXMTFiR0YwWlNoN1hHNGdJQ0FnSUNBZ0lDQWdMaTR1WTNSNFcxd2lZMkZqYUdWY0lsMHNYRzRnSUNBZ0lDQWdJQ0FnTGk0dVpteGhaM01zWEc0Z0lDQWdJQ0FnSUNBZ2NHRnlaVzUwUTI5dWRHVjRkRG9nWTNSNExGeHVJQ0FnSUNBZ0lDQjlLU0JoY3lCaGJuazdYRzVjYmlBZ0lDQWdJQ0FnWTNSNExtRmpZM1Z0ZFd4aGRHVW9lMXh1SUNBZ0lDQWdJQ0FnSUdOb2FXeGtRMjl1ZEdWNGRITTZJRnRjYmlBZ0lDQWdJQ0FnSUNBZ0lDNHVMaWhqZEhndVoyVjBUM0pWYm1SbFptbHVaV1FvWENKamFHbHNaRU52Ym5SbGVIUnpYQ0lwSUh4OElGdGRLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHNWxkME4wZUN4Y2JpQWdJQ0FnSUNBZ0lDQmRMRnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1bGQwTjBlRHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQmpkSGd1WVdOamRXMTFiR0YwWlNobWJHRm5jeWtnWVhNZ1lXNTVPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCdVpYY2dkR2hwY3k1RGIyNTBaWGgwS0NrdVlXTmpkVzExYkdGMFpTaDdYRzRnSUNBZ0lDQXVMaTVtYkdGbmN5eGNiaUFnSUNCOUtTQmhjeUJoYm5rN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVSbFkyOWtaWE1nWVNCVmFXNTBPRUZ5Y21GNUlIUnZJR0VnYzNSeWFXNW5YRzRnSUNBcUlFQnpkVzF0WVhKNUlFTnZiblpsY25SeklHSnBibUZ5ZVNCa1lYUmhJSEpsWTJWcGRtVmtJR1p5YjIwZ1JtRmljbWxqSUhSdklHRWdjM1J5YVc1bklIVnphVzVuSUZWVVJpMDRJR1Z1WTI5a2FXNW5YRzRnSUNBcUlFQndZWEpoYlNCN1ZXbHVkRGhCY25KaGVYMGdaR0YwWVNBdElGUm9aU0JpYVc1aGNua2daR0YwWVNCMGJ5QmtaV052WkdWY2JpQWdJQ29nUUhKbGRIVnliaUI3YzNSeWFXNW5mU0JVYUdVZ1pHVmpiMlJsWkNCemRISnBibWRjYmlBZ0lDb3ZYRzRnSUdSbFkyOWtaU2hrWVhSaE9pQlZhVzUwT0VGeWNtRjVLVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQnlaWFIxY200Z1JtRmljbWxqUTJ4cFpXNTBRV1JoY0hSbGNpNWtaV052WkdWeUxtUmxZMjlrWlNoa1lYUmhLVHRjYmlBZ2ZWeHVYRzRnSUc5MlpYSnlhV1JsSUhKbGNHOXphWFJ2Y25rOFhHNGdJQ0FnVWlCbGVIUmxibVJ6SUZKbGNHOXphWFJ2Y25rOFhHNGdJQ0FnSUNCaGJua3NYRzRnSUNBZ0lDQkJaR0Z3ZEdWeVBGQmxaWEpEYjI1bWFXY3NJRU5zYVdWdWRDd2dUV0Z1WjI5UmRXVnllU3dnUm1GaWNtbGpRMnhwWlc1MFEyOXVkR1Y0ZEQ1Y2JpQWdJQ0ErTEZ4dUlDQStLQ2s2SUVOdmJuTjBjblZqZEc5eVBGSStJSHRjYmlBZ0lDQnlaWFIxY200Z1JtRmljbWxqUTJ4cFpXNTBVbVZ3YjNOcGRHOXllU0JoY3lCMWJtdHViM2R1SUdGeklFTnZibk4wY25WamRHOXlQRkkrTzF4dUlDQjlYRzVjYmlBZ2NISnZkR1ZqZEdWa0lHTnlaV0YwWlZCeVpXWnBlRHhOSUdWNGRHVnVaSE1nVFc5a1pXdytLRnh1SUNBZ0lHTnNZWHA2T2lCRGIyNXpkSEoxWTNSdmNqeE5QaXhjYmlBZ0lDQnBaRG9nVUhKcGJXRnllVXRsZVZSNWNHVXNYRzRnSUNBZ2JXOWtaV3c2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0c1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEVaaFluSnBZME5zYVdWdWRFTnZiblJsZUhRK1hHNGdJQ2s2SUZ0Y2JpQWdJQ0JEYjI1emRISjFZM1J2Y2p4TlBpeGNiaUFnSUNCUWNtbHRZWEo1UzJWNVZIbHdaU3hjYmlBZ0lDQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytMRnh1SUNBZ0lDNHVMbUZ1ZVZ0ZExGeHVJQ0FnSUVaaFluSnBZME5zYVdWdWRFTnZiblJsZUhRc1hHNGdJRjBnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnZEdocGN5NWpjbVZoZEdWUWNtVm1hWGdwTzF4dUlDQWdJR052Ym5OMElIUmhZbXhsVG1GdFpTQTlJRTF2WkdWc0xuUmhZbXhsVG1GdFpTaGpiR0Y2ZWlrN1hHNGdJQ0FnWTI5dWMzUWdjbVZqYjNKa09pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytJRDBnZTMwN1hHNGdJQ0FnY21WamIzSmtXME52ZFdOb1JFSkxaWGx6TGxSQlFreEZYU0E5SUhSaFlteGxUbUZ0WlR0Y2JpQWdJQ0JQWW1wbFkzUXVZWE56YVdkdUtISmxZMjl5WkN3Z2JXOWtaV3dwTzF4dUlDQWdJSEpsZEhWeWJpQmJZMnhoZW5vc0lHbGtMQ0J5WldOdmNtUXNJQzR1TG1OMGVFRnlaM05kTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJRY21Wd1lYSmxjeUJ0ZFd4MGFYQnNaU0J5WldOdmNtUnpJR1p2Y2lCamNtVmhkR2x2Ymx4dUlDQWdLaUJBYzNWdGJXRnllU0JCWkdSeklHNWxZMlZ6YzJGeWVTQkRiM1ZqYUVSQ0lHWnBaV3hrY3lCMGJ5QnRkV3gwYVhCc1pTQnlaV052Y21SeklHSmxabTl5WlNCamNtVmhkR2x2Ymx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdkR0ZpYkdWT1lXMWxJQzBnVkdobElHNWhiV1VnYjJZZ2RHaGxJSFJoWW14bFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5XMTE4Ym5WdFltVnlXMTE5SUdsa2N5QXRJRlJvWlNCSlJITWdiMllnZEdobElISmxZMjl5WkhOY2JpQWdJQ29nUUhCaGNtRnRJRzF2WkdWc2N5QXRJRlJvWlNCdGIyUmxiSE1nZEc4Z2NISmxjR0Z5WlZ4dUlDQWdLaUJBY21WMGRYSnVJRUVnZEhWd2JHVWdZMjl1ZEdGcGJtbHVaeUIwYUdVZ2RHRmliR1ZPWVcxbExDQnBaSE1zSUdGdVpDQndjbVZ3WVhKbFpDQnlaV052Y21SelhHNGdJQ0FxSUVCMGFISnZkM01nZTBsdWRHVnlibUZzUlhKeWIzSjlJRWxtSUdsa2N5QmhibVFnYlc5a1pXeHpJR0Z5Y21GNWN5Qm9ZWFpsSUdScFptWmxjbVZ1ZENCc1pXNW5kR2h6WEc0Z0lDQXFMMXh1SUNCd2NtOTBaV04wWldRZ1kzSmxZWFJsUVd4c1VISmxabWw0UEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWEc0Z0lDQWdZMnhoZW5vNklFTnZibk4wY25WamRHOXlQRTArTEZ4dUlDQWdJR2xrY3pvZ2MzUnlhVzVuVzEwZ2ZDQnVkVzFpWlhKYlhTeGNiaUFnSUNCdGIyUmxiSE02SUZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ1YlhTeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFJtRmljbWxqUTJ4cFpXNTBRMjl1ZEdWNGRENWNiaUFnS1NCN1hHNGdJQ0FnWTI5dWMzUWdkR0ZpYkdWT1lXMWxJRDBnVFc5a1pXd3VkR0ZpYkdWT1lXMWxLR05zWVhwNktUdGNiaUFnSUNCcFppQW9hV1J6TG14bGJtZDBhQ0FoUFQwZ2JXOWtaV3h6TG14bGJtZDBhQ2xjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtGd2lTV1J6SUdGdVpDQnRiMlJsYkhNZ2JYVnpkQ0JvWVhabElIUm9aU0J6WVcxbElHeGxibWQwYUZ3aUtUdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lIUm9hWE11WTNKbFlYUmxRV3hzVUhKbFptbDRLVHRjYmlBZ0lDQmpiMjV6ZENCeVpXTnZjbVJ6SUQwZ2FXUnpMbTFoY0Nnb2FXUXNJR052ZFc1MEtTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQnlaV052Y21RNklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNGdQU0I3ZlR0Y2JpQWdJQ0FnSUhKbFkyOXlaRnREYjNWamFFUkNTMlY1Y3k1VVFVSk1SVjBnUFNCMFlXSnNaVTVoYldVN1hHNGdJQ0FnSUNCUFltcGxZM1F1WVhOemFXZHVLSEpsWTI5eVpDd2diVzlrWld4elcyTnZkVzUwWFNrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnY21WamIzSmtPMXh1SUNBZ0lIMHBPMXh1SUNBZ0lISmxkSFZ5YmlCYlkyeGhlbm9zSUdsa2N5d2djbVZqYjNKa2N5d2dMaTR1WTNSNFFYSm5jMTA3WEc0Z0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ2RYQmtZWFJsUVd4c1VISmxabWw0UEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWEc0Z0lDQWdZMnhoZW5vNklFTnZibk4wY25WamRHOXlQRTArTEZ4dUlDQWdJR2xrY3pvZ1VISnBiV0Z5ZVV0bGVWUjVjR1ZiWFN4Y2JpQWdJQ0J0YjJSbGJITTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDViWFN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4Um1GaWNtbGpRMnhwWlc1MFEyOXVkR1Y0ZEQ1Y2JpQWdLU0I3WEc0Z0lDQWdZMjl1YzNRZ2RHRmliR1ZPWVcxbElEMGdUVzlrWld3dWRHRmliR1ZPWVcxbEtHTnNZWHA2S1R0Y2JpQWdJQ0JwWmlBb2FXUnpMbXhsYm1kMGFDQWhQVDBnYlc5a1pXeHpMbXhsYm1kMGFDbGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkpiblJsY201aGJFVnljbTl5S0Z3aVNXUnpJR0Z1WkNCdGIyUmxiSE1nYlhWemRDQm9ZWFpsSUhSb1pTQnpZVzFsSUd4bGJtZDBhRndpS1R0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUhSb2FYTXVkWEJrWVhSbFFXeHNVSEpsWm1sNEtUdGNiaUFnSUNCamIyNXpkQ0J5WldOdmNtUnpJRDBnYVdSekxtMWhjQ2dvS1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCeVpXTnZjbVE2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0Z1BTQjdmVHRjYmlBZ0lDQWdJSEpsWTI5eVpGdERiM1ZqYUVSQ1MyVjVjeTVVUVVKTVJWMGdQU0IwWVdKc1pVNWhiV1U3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbVZqYjNKa08xeHVJQ0FnSUgwcE8xeHVJQ0FnSUhKbGRIVnliaUJiWTJ4aGVub3NJR2xrY3l3Z2NtVmpiM0prY3l3Z0xpNHVZM1I0UVhKbmMxMDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFTnlaV0YwWlhNZ2JYVnNkR2x3YkdVZ2NtVmpiM0prY3lCcGJpQmhJSE5wYm1kc1pTQjBjbUZ1YzJGamRHbHZibHh1SUNBZ0tpQkFjM1Z0YldGeWVTQlRkV0p0YVhSeklHRWdkSEpoYm5OaFkzUnBiMjRnZEc4Z1kzSmxZWFJsSUcxMWJIUnBjR3hsSUhKbFkyOXlaSE1nYVc0Z2RHaGxJRVpoWW5KcFl5QnNaV1JuWlhKY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSFJoWW14bFRtRnRaU0F0SUZSb1pTQnVZVzFsSUc5bUlIUm9aU0IwWVdKc1pTOWpiMnhzWldOMGFXOXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuVzEwZ2ZDQnVkVzFpWlhKYlhYMGdhV1J6SUMwZ1FYSnlZWGtnYjJZZ2NtVmpiM0prSUdsa1pXNTBhV1pwWlhKelhHNGdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYazhVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQajU5SUcxdlpHVnNjeUF0SUVGeWNtRjVJRzltSUhKbFkyOXlaQ0JrWVhSaFhHNGdJQ0FxSUVCd1lYSmhiU0I3VW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UG4wZ2RISmhibk5wWlc1MElDMGdWSEpoYm5OcFpXNTBJR1JoZEdFZ1ptOXlJSFJvWlNCMGNtRnVjMkZqZEdsdmJseHVJQ0FnS2lCQWNtVjBkWEp1SUh0UWNtOXRhWE5sUEVGeWNtRjVQRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDQrUG4wZ1VISnZiV2x6WlNCeVpYTnZiSFpwYm1jZ2RHOGdkR2hsSUdOeVpXRjBaV1FnY21WamIzSmtjMXh1SUNBZ0tpOWNiaUFnYjNabGNuSnBaR1VnWVhONWJtTWdZM0psWVhSbFFXeHNQRTBnWlhoMFpXNWtjeUJOYjJSbGJENG9YRzRnSUNBZ1kyeGhlbm82SUVOdmJuTjBjblZqZEc5eVBFMCtMRnh1SUNBZ0lHbGtjem9nVUhKcGJXRnllVXRsZVZSNWNHVmJYU3hjYmlBZ0lDQnRiMlJsYkhNNklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNWJYU3hjYmlBZ0lDQXVMaTVoY21kek9pQkRiMjUwWlhoMGRXRnNRWEpuY3p4R1lXSnlhV05EYkdsbGJuUkRiMjUwWlhoMFBseHVJQ0FwT2lCUWNtOXRhWE5sUEZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ1YlhUNGdlMXh1SUNBZ0lHbG1JQ2hwWkhNdWJHVnVaM1JvSUNFOVBTQnRiMlJsYkhNdWJHVnVaM1JvS1Z4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YQ0pKWkhNZ1lXNWtJRzF2WkdWc2N5QnRkWE4wSUdoaGRtVWdkR2hsSUhOaGJXVWdiR1Z1WjNSb1hDSXBPMXh1SUNBZ0lDOHZTRVZTUlNGY2JpQWdJQ0JqYjI1emRDQmpkSGhCY21keklEMGdXeTR1TGloaGNtZHpJR0Z6SUhWdWEyNXZkMjRnWVhNZ1lXNTVXMTBwWFR0Y2JpQWdJQ0JqYjI1emRDQjBjbUZ1YzJsbGJuUWdQU0JqZEhoQmNtZHpMbk5vYVdaMEtDa2dZWE1nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGlCOElIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCamIyNXpkQ0I3SUd4dlp5d2dZM1I0SUgwZ1BTQjBhR2x6TG14dlowTjBlQ2hjYmlBZ0lDQWdJR04wZUVGeVozTWdZWE1nUTI5dWRHVjRkSFZoYkVGeVozTThSbUZpY21salEyeHBaVzUwUTI5dWRHVjRkRDRzWEc0Z0lDQWdJQ0IwYUdsekxtTnlaV0YwWlVGc2JGeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdkR0ZpYkdWT1lXMWxJRDBnVFc5a1pXd3VkR0ZpYkdWT1lXMWxLR05zWVhwNktUdGNibHh1SUNBZ0lHeHZaeTVwYm1adktHQmhaR1JwYm1jZ0pIdHBaSE11YkdWdVozUm9mU0JsYm5SeWFXVnpJSFJ2SUNSN2RHRmliR1ZPWVcxbGZTQjBZV0pzWldBcE8xeHVJQ0FnSUd4dlp5NTJaWEppYjNObEtHQndhM002SUNSN2FXUnpmV0FwTzF4dUlDQWdJR052Ym5OMElHaGhjMVJ5WVc1emFXVnVkQ0E5SUhSeVlXNXphV1Z1ZENBbUppQlBZbXBsWTNRdWEyVjVjeWgwY21GdWMybGxiblFwTG14bGJtZDBhQ0ErSURBN1hHNGdJQ0FnWTI5dWMzUWdibVZsWkhOR2RXeHNVR0Y1Ykc5aFpDQTlYRzRnSUNBZ0lDQm9ZWE5VY21GdWMybGxiblFnZkh3Z2RHaHBjeTV6YUc5MWJHUkdiM0pqWlVkaGRHVjNZWGxJZVdSeVlYUnBiMjRvWTNSNEtUdGNiaUFnSUNCamIyNXpkQ0J6WlhKcFlXeHBlbVZrVFc5a1pXeHpJRDBnYlc5a1pXeHpMbTFoY0Nnb2JTa2dQVDVjYmlBZ0lDQWdJSFJvYVhNdWMyVnlhV0ZzYVhwbGNpNXpaWEpwWVd4cGVtVW9iU3dnWTJ4aGVub3VibUZ0WlNsY2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWTI5dWMzUWdjbVZ6ZFd4MElEMGdZWGRoYVhRZ2RHaHBjeTV6ZFdKdGFYUlVjbUZ1YzJGamRHbHZiaWhjYmlBZ0lDQWdJR04wZUN4Y2JpQWdJQ0FnSUVKMWJHdERjblZrVDNCbGNtRjBhVzl1UzJWNWN5NURVa1ZCVkVWZlFVeE1MRnh1SUNBZ0lDQWdXMHBUVDA0dWMzUnlhVzVuYVdaNUtITmxjbWxoYkdsNlpXUk5iMlJsYkhNcFhTeGNiaUFnSUNBZ0lHaGhjMVJ5WVc1emFXVnVkQ0EvSUhzZ1czUmhZbXhsVG1GdFpWMDZJSFJ5WVc1emFXVnVkQ0I5SURvZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ2RHaHBjeTVuWlhSRmJtUnZjbk5wYm1kUGNtZGhibWw2WVhScGIyNXpLR04wZUNrc1hHNGdJQ0FnSUNCamJHRjZlbHh1SUNBZ0lDazdYRzVjYmlBZ0lDQnNaWFFnY21Wek9pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytXMTA3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUhKbGN5QTlJRXBUVDA0dWNHRnljMlVvZEdocGN5NWtaV052WkdVb2NtVnpkV3gwS1NrdWJXRndLQ2h5T2lCaGJua3BJRDArSUVwVFQwNHVjR0Z5YzJVb2Npa3BPMXh1SUNBZ0lIMGdZMkYwWTJnZ0tHVTZJSFZ1YTI1dmQyNHBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJUWlhKcFlXeHBlbUYwYVc5dVJYSnliM0lvWlNCaGN5QkZjbkp2Y2lrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ2RHaHBjeTV6YUc5MWJHUlNaV1p5WlhOb1FXWjBaWEpYY21sMFpTaGNiaUFnSUNBZ0lDQWdZMnhoZW5vc1hHNGdJQ0FnSUNBZ0lHTjBlQ3hjYmlBZ0lDQWdJQ0FnYm1WbFpITkdkV3hzVUdGNWJHOWhaQ3hjYmlBZ0lDQWdJQ0FnY21Weld6QmRXMDF2WkdWc0xuQnJLR05zWVhwNktTQmhjeUJ6ZEhKcGJtZGRJSHg4SUdsa2Mxc3dYVnh1SUNBZ0lDQWdLVnh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11Y21WaFpFRnNiQ2hjYmlBZ0lDQWdJQ0FnWTJ4aGVub3NYRzRnSUNBZ0lDQWdJR1Y0ZEhKaFkzUkpaSE1vWEc0Z0lDQWdJQ0FnSUNBZ1kyeGhlbm9zWEc0Z0lDQWdJQ0FnSUNBZ2JXOWtaV3h6TG0xaGNDZ29iU3dnYVNrZ1BUNWNiaUFnSUNBZ0lDQWdJQ0FnSUUxdlpHVnNMbTFsY21kbEtGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCUFltcGxZM1F1WVhOemFXZHVLSHQ5TENCdElHRnpJR0Z1ZVN3Z2RISmhibk5wWlc1MFB5NWJhVjBnZkh3Z2UzMHBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWE5iYVYxY2JpQWdJQ0FnSUNBZ0lDQWdJQ2xjYmlBZ0lDQWdJQ0FnSUNBcExGeHVJQ0FnSUNBZ0lDQWdJR2xrYzF4dUlDQWdJQ0FnSUNBcExGeHVJQ0FnSUNBZ0lDQmpkSGhjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlISmxjenRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdVbVZoWkhNZ2JYVnNkR2x3YkdVZ2NtVmpiM0prY3lCcGJpQmhJSE5wYm1kc1pTQjBjbUZ1YzJGamRHbHZibHh1SUNBZ0tpQkFjM1Z0YldGeWVTQlRkV0p0YVhSeklHRWdkSEpoYm5OaFkzUnBiMjRnZEc4Z2NtVmhaQ0J0ZFd4MGFYQnNaU0J5WldOdmNtUnpJR1p5YjIwZ2RHaGxJRVpoWW5KcFl5QnNaV1JuWlhKY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSFJoWW14bFRtRnRaU0F0SUZSb1pTQnVZVzFsSUc5bUlIUm9aU0IwWVdKc1pTOWpiMnhzWldOMGFXOXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuVzEwZ2ZDQnVkVzFpWlhKYlhYMGdhV1J6SUMwZ1FYSnlZWGtnYjJZZ2NtVmpiM0prSUdsa1pXNTBhV1pwWlhKeklIUnZJSEpsWVdSY2JpQWdJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHhCY25KaGVUeFNaV052Y21ROGMzUnlhVzVuTENCaGJuaytQajU5SUZCeWIyMXBjMlVnY21WemIyeDJhVzVuSUhSdklIUm9aU0J5WlhSeWFXVjJaV1FnY21WamIzSmtjMXh1SUNBZ0tpOWNiaUFnYjNabGNuSnBaR1VnWVhONWJtTWdjbVZoWkVGc2JEeE5JR1Y0ZEdWdVpITWdUVzlrWld3K0tGeHVJQ0FnSUdOc1lYcDZPaUJEYjI1emRISjFZM1J2Y2p4TlBpeGNiaUFnSUNCcFpITTZJRkJ5YVcxaGNubExaWGxVZVhCbFcxMHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1EyOXVkR1Y0ZEhWaGJFRnlaM004Um1GaWNtbGpRMnhwWlc1MFEyOXVkR1Y0ZEQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHhTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrVzEwK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUd4dlp5d2dZM1I0SUgwZ1BTQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQjBhR2x6TG5KbFlXUkJiR3dwTzF4dUlDQWdJR052Ym5OMElIUmhZbXhsVG1GdFpTQTlJRTF2WkdWc0xuUmhZbXhsVG1GdFpTaGpiR0Y2ZWlrN1hHNGdJQ0FnYkc5bkxtbHVabThvWUhKbFlXUnBibWNnSkh0cFpITXViR1Z1WjNSb2ZTQmxiblJ5YVdWeklIUnZJQ1I3ZEdGaWJHVk9ZVzFsZlNCMFlXSnNaV0FwTzF4dUlDQWdJR3h2Wnk1MlpYSmliM05sS0dCd2EzTTZJQ1I3YVdSemZXQXBPMXh1SUNBZ0lHTnZibk4wSUhKbGMzVnNkQ0E5SUdGM1lXbDBJSFJvYVhNdVpYWmhiSFZoZEdWVWNtRnVjMkZqZEdsdmJpaGNiaUFnSUNBZ0lHTjBlQ3hjYmlBZ0lDQWdJRUoxYkd0RGNuVmtUM0JsY21GMGFXOXVTMlY1Y3k1U1JVRkVYMEZNVEN4Y2JpQWdJQ0FnSUZ0S1UwOU9Mbk4wY21sdVoybG1lU2hwWkhNcFhTeGNiaUFnSUNBZ0lIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lHTnNZWHA2WEc0Z0lDQWdLVHRjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRXBUVDA0dWNHRnljMlVvZEdocGN5NWtaV052WkdVb2NtVnpkV3gwS1NrdWJXRndLQ2h5T2lCaGJua3BJRDArSUVwVFQwNHVjR0Z5YzJVb2Npa3BPMXh1SUNBZ0lIMGdZMkYwWTJnZ0tHVTZJSFZ1YTI1dmQyNHBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJUWlhKcFlXeHBlbUYwYVc5dVJYSnliM0lvWlNCaGN5QkZjbkp2Y2lrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJWY0dSaGRHVnpJRzExYkhScGNHeGxJSEpsWTI5eVpITWdhVzRnWVNCemFXNW5iR1VnZEhKaGJuTmhZM1JwYjI1Y2JpQWdJQ29nUUhOMWJXMWhjbmtnVTNWaWJXbDBjeUJoSUhSeVlXNXpZV04wYVc5dUlIUnZJSFZ3WkdGMFpTQnRkV3gwYVhCc1pTQnlaV052Y21SeklHbHVJSFJvWlNCR1lXSnlhV01nYkdWa1oyVnlYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCMFlXSnNaVTVoYldVZ0xTQlVhR1VnYm1GdFpTQnZaaUIwYUdVZ2RHRmliR1V2WTI5c2JHVmpkR2x2Ymx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVoxdGRJSHdnYm5WdFltVnlXMTE5SUdsa2N5QXRJRUZ5Y21GNUlHOW1JSEpsWTI5eVpDQnBaR1Z1ZEdsbWFXVnljMXh1SUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1UEZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0K2ZTQnRiMlJsYkhNZ0xTQkJjbkpoZVNCdlppQjFjR1JoZEdWa0lISmxZMjl5WkNCa1lYUmhYRzRnSUNBcUlFQndZWEpoYlNCN1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBuMGdkSEpoYm5OcFpXNTBJQzBnVkhKaGJuTnBaVzUwSUdSaGRHRWdabTl5SUhSb1pTQjBjbUZ1YzJGamRHbHZibHh1SUNBZ0tpQkFjbVYwZFhKdUlIdFFjbTl0YVhObFBFRnljbUY1UEZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0K1BuMGdVSEp2YldselpTQnlaWE52YkhacGJtY2dkRzhnZEdobElIVndaR0YwWldRZ2NtVmpiM0prYzF4dUlDQWdLaTljYmlBZ2IzWmxjbkpwWkdVZ1lYTjVibU1nZFhCa1lYUmxRV3hzUEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWEc0Z0lDQWdZMnhoZW5vNklFTnZibk4wY25WamRHOXlQRTArTEZ4dUlDQWdJR2xrY3pvZ1VISnBiV0Z5ZVV0bGVWUjVjR1ZiWFN4Y2JpQWdJQ0J0YjJSbGJITTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDViWFN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eEdZV0p5YVdORGJHbGxiblJEYjI1MFpYaDBQbHh1SUNBcE9pQlFjbTl0YVhObFBGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNWJYVDRnZTF4dUlDQWdJR2xtSUNocFpITXViR1Z1WjNSb0lDRTlQU0J0YjJSbGJITXViR1Z1WjNSb0tWeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFbHVkR1Z5Ym1Gc1JYSnliM0lvWENKSlpITWdZVzVrSUcxdlpHVnNjeUJ0ZFhOMElHaGhkbVVnZEdobElITmhiV1VnYkdWdVozUm9YQ0lwTzF4dUlDQWdJR052Ym5OMElHTjBlRUZ5WjNNZ1BTQmJMaTR1S0dGeVozTWdZWE1nZFc1cmJtOTNiaUJoY3lCaGJubGJYU2xkTzF4dUlDQWdJR052Ym5OMElIUnlZVzV6YVdWdWRDQTlJR04wZUVGeVozTXVjMmhwWm5Rb0tTQmhjeUJTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrSUh3Z2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUdOdmJuTjBJSHNnYkc5bkxDQmpkSGdnZlNBOUlIUm9hWE11Ykc5blEzUjRLRnh1SUNBZ0lDQWdZM1I0UVhKbmN5QmhjeUJEYjI1MFpYaDBkV0ZzUVhKbmN6eEdZV0p5YVdORGJHbGxiblJEYjI1MFpYaDBQaXhjYmlBZ0lDQWdJSFJvYVhNdWRYQmtZWFJsUVd4c1hHNGdJQ0FnS1R0Y2JpQWdJQ0JqYjI1emRDQjBZV0pzWlU1aGJXVWdQU0JOYjJSbGJDNTBZV0pzWlU1aGJXVW9ZMnhoZW5vcE8xeHVJQ0FnSUd4dlp5NXBibVp2S0dCMWNHUmhkR2x1WnlBa2UybGtjeTVzWlc1bmRHaDlJR1Z1ZEhKcFpYTWdkRzhnSkh0MFlXSnNaVTVoYldWOUlIUmhZbXhsWUNrN1hHNGdJQ0FnYkc5bkxuWmxjbUp2YzJVb1lIQnJjem9nSkh0cFpITjlZQ2s3WEc0Z0lDQWdZMjl1YzNRZ2FHRnpWSEpoYm5OcFpXNTBJRDBnZEhKaGJuTnBaVzUwSUNZbUlFOWlhbVZqZEM1clpYbHpLSFJ5WVc1emFXVnVkQ2t1YkdWdVozUm9JRDRnTUR0Y2JpQWdJQ0JqYjI1emRDQnVaV1ZrYzBaMWJHeFFZWGxzYjJGa0lEMWNiaUFnSUNBZ0lHaGhjMVJ5WVc1emFXVnVkQ0I4ZkNCMGFHbHpMbk5vYjNWc1pFWnZjbU5sUjJGMFpYZGhlVWg1WkhKaGRHbHZiaWhqZEhncE8xeHVJQ0FnSUdOdmJuTjBJSE5sY21saGJHbDZaV1JOYjJSbGJITWdQU0J0YjJSbGJITXViV0Z3S0NodEtTQTlQbHh1SUNBZ0lDQWdkR2hwY3k1elpYSnBZV3hwZW1WeUxuTmxjbWxoYkdsNlpTaHRMQ0JqYkdGNmVpNXVZVzFsS1Z4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0JqYjI1emRDQnlaWE4xYkhRZ1BTQmhkMkZwZENCMGFHbHpMbk4xWW0xcGRGUnlZVzV6WVdOMGFXOXVLRnh1SUNBZ0lDQWdZM1I0TEZ4dUlDQWdJQ0FnUW5Wc2EwTnlkV1JQY0dWeVlYUnBiMjVMWlhsekxsVlFSRUZVUlY5QlRFd3NYRzRnSUNBZ0lDQmJTbE5QVGk1emRISnBibWRwWm5rb2MyVnlhV0ZzYVhwbFpFMXZaR1ZzY3lsZExGeHVJQ0FnSUNBZ2FHRnpWSEpoYm5OcFpXNTBJRDhnZXlCYmRHRmliR1ZPWVcxbFhUb2dkSEpoYm5OcFpXNTBJSDBnT2lCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNCMGFHbHpMbWRsZEVWdVpHOXljMmx1WjA5eVoyRnVhWHBoZEdsdmJuTW9ZM1I0S1N4Y2JpQWdJQ0FnSUdOc1lYcDZYRzRnSUNBZ0tUdGNibHh1SUNBZ0lHeGxkQ0J5WlhNNklHRnVlVHRjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnY21WeklEMGdTbE5QVGk1d1lYSnpaU2gwYUdsekxtUmxZMjlrWlNoeVpYTjFiSFFwS1M1dFlYQW9LSEk2SUdGdWVTa2dQVDRnU2xOUFRpNXdZWEp6WlNoeUtTazdYRzRnSUNBZ2ZTQmpZWFJqYUNBb1pUb2dkVzVyYm05M2Jpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRk5sY21saGJHbDZZWFJwYjI1RmNuSnZjaWhsSUdGeklFVnljbTl5S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2RHaHBjeTV6YUc5MWJHUlNaV1p5WlhOb1FXWjBaWEpYY21sMFpTaGpiR0Y2ZWl3Z1kzUjRMQ0J1WldWa2MwWjFiR3hRWVhsc2IyRmtMQ0JwWkhOYk1GMHBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1eVpXRmtRV3hzS0Z4dUlDQWdJQ0FnSUNCamJHRjZlaXhjYmlBZ0lDQWdJQ0FnWlhoMGNtRmpkRWxrY3loY2JpQWdJQ0FnSUNBZ0lDQmpiR0Y2ZWl4Y2JpQWdJQ0FnSUNBZ0lDQnRiMlJsYkhNdWJXRndLQ2h0TENCcEtTQTlQbHh1SUNBZ0lDQWdJQ0FnSUNBZ1RXOWtaV3d1YldWeVoyVW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lFOWlhbVZqZEM1aGMzTnBaMjRvZTMwc0lHMGdZWE1nWVc1NUxDQjBjbUZ1YzJsbGJuUS9MbHRwWFNCOGZDQjdmU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSEpsYzF0cFhWeHVJQ0FnSUNBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnSUNBZ0lDa3NYRzRnSUNBZ0lDQWdJQ0FnYVdSelhHNGdJQ0FnSUNBZ0lDa3NYRzRnSUNBZ0lDQWdJR04wZUZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlISmxjenRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSR1ZzWlhSbGN5QnRkV3gwYVhCc1pTQnlaV052Y21SeklHbHVJR0VnYzJsdVoyeGxJSFJ5WVc1ellXTjBhVzl1WEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRk4xWW0xcGRITWdZU0IwY21GdWMyRmpkR2x2YmlCMGJ5QmtaV3hsZEdVZ2JYVnNkR2x3YkdVZ2NtVmpiM0prY3lCbWNtOXRJSFJvWlNCR1lXSnlhV01nYkdWa1oyVnlYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCMFlXSnNaVTVoYldVZ0xTQlVhR1VnYm1GdFpTQnZaaUIwYUdVZ2RHRmliR1V2WTI5c2JHVmpkR2x2Ymx4dUlDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNVBITjBjbWx1WnlCOElHNTFiV0psY2lCOElHSnBaMmx1ZEQ1OUlHbGtjeUF0SUVGeWNtRjVJRzltSUhKbFkyOXlaQ0JwWkdWdWRHbG1hV1Z5Y3lCMGJ5QmtaV3hsZEdWY2JpQWdJQ29nUUhCaGNtRnRJSHRUWlhKcFlXeHBlbVZ5UEdGdWVUNTlJSE5sY21saGJHbDZaWElnTFNCVFpYSnBZV3hwZW1WeUlHWnZjaUIwYUdVZ2JXOWtaV3dnWkdGMFlWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0UWNtOXRhWE5sUEVGeWNtRjVQRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDQrUG4wZ1VISnZiV2x6WlNCeVpYTnZiSFpwYm1jZ2RHOGdkR2hsSUdSbGJHVjBaV1FnY21WamIzSmtjMXh1SUNBZ0tpOWNiaUFnYjNabGNuSnBaR1VnWVhONWJtTWdaR1ZzWlhSbFFXeHNQRTBnWlhoMFpXNWtjeUJOYjJSbGJENG9YRzRnSUNBZ1kyeGhlbm82SUVOdmJuTjBjblZqZEc5eVBFMCtMRnh1SUNBZ0lHbGtjem9nVUhKcGJXRnllVXRsZVZSNWNHVmJYU3hjYmlBZ0lDQXVMaTVoY21kek9pQkRiMjUwWlhoMGRXRnNRWEpuY3p4R1lXSnlhV05EYkdsbGJuUkRiMjUwWlhoMFBseHVJQ0FwT2lCUWNtOXRhWE5sUEZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ1YlhUNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhnc0lHTjBlRUZ5WjNNZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJSFJvYVhNdVpHVnNaWFJsUVd4c0tUdGNiaUFnSUNCamIyNXpkQ0IwWVdKc1pVNWhiV1VnUFNCTmIyUmxiQzUwWVdKc1pVNWhiV1VvWTJ4aGVub3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ2JtVmxaSE5HZFd4c1VHRjViRzloWkNBOVhHNGdJQ0FnSUNCTmIyUmxiQzVwYzFSeVlXNXphV1Z1ZENoamJHRjZlaWtnZkh3Z2RHaHBjeTV6YUc5MWJHUkdiM0pqWlVkaGRHVjNZWGxJZVdSeVlYUnBiMjRvWTNSNEtUdGNiaUFnSUNCc1pYUWdjbVZ6ZFd4ME9pQmhibms3WEc0Z0lDQWdZMjl1YzNRZ2MyaHZkV3hrU0hsa2NtRjBaU0E5SUhSb2FYTXVjMmh2ZFd4a1VtVm1jbVZ6YUVGbWRHVnlWM0pwZEdVb1hHNGdJQ0FnSUNCamJHRjZlaXhjYmlBZ0lDQWdJR04wZUN4Y2JpQWdJQ0FnSUc1bFpXUnpSblZzYkZCaGVXeHZZV1FzWEc0Z0lDQWdJQ0JwWkhOYk1GMWNiaUFnSUNBcE8xeHVJQ0FnSUdsbUlDaHphRzkxYkdSSWVXUnlZWFJsS1NCN1hHNGdJQ0FnSUNCeVpYTjFiSFFnUFNCaGQyRnBkQ0IwYUdsekxuSmxZV1JCYkd3b1kyeGhlbm9zSUdsa2N5d2dMaTR1WTNSNFFYSm5jeWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdiRzluTG1sdVptOG9ZR1JsYkdWMGFXNW5JQ1I3YVdSekxteGxibWQwYUgwZ1pXNTBjbWxsY3lCMGJ5QWtlM1JoWW14bFRtRnRaWDBnZEdGaWJHVmdLVHRjYmlBZ0lDQnNiMmN1ZG1WeVltOXpaU2hnY0d0ek9pQWtlMmxrYzMxZ0tUdGNiaUFnSUNCamIyNXpkQ0J5WlhNZ1BTQmhkMkZwZENCMGFHbHpMbk4xWW0xcGRGUnlZVzV6WVdOMGFXOXVLRnh1SUNBZ0lDQWdZM1I0TEZ4dUlDQWdJQ0FnUW5Wc2EwTnlkV1JQY0dWeVlYUnBiMjVMWlhsekxrUkZURVZVUlY5QlRFd3NYRzRnSUNBZ0lDQmJTbE5QVGk1emRISnBibWRwWm5rb2FXUnpLVjBzWEc0Z0lDQWdJQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdJQ0IwYUdsekxtZGxkRVZ1Wkc5eWMybHVaMDl5WjJGdWFYcGhkR2x2Ym5Nb1kzUjRLU3hjYmlBZ0lDQWdJR05zWVhwNlhHNGdJQ0FnS1R0Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhOb2IzVnNaRWg1WkhKaGRHVmNiaUFnSUNBZ0lDQWdQeUJ5WlhOMWJIUmNiaUFnSUNBZ0lDQWdPaUJLVTA5T0xuQmhjbk5sS0hSb2FYTXVaR1ZqYjJSbEtISmxjeWtwTG0xaGNDZ29jam9nWVc1NUtTQTlQaUJLVTA5T0xuQmhjbk5sS0hJcEtUdGNiaUFnSUNCOUlHTmhkR05vSUNobE9pQjFibXR1YjNkdUtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dVMlZ5YVdGc2FYcGhkR2x2YmtWeWNtOXlLR1VnWVhNZ1JYSnliM0lwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdVSEpsY0dGeVpYTWdZU0J0YjJSbGJDQm1iM0lnY0dWeWMybHpkR1Z1WTJWY2JpQWdJQ29nUUhOMWJXMWhjbmtnUTI5dWRtVnlkSE1nWVNCdGIyUmxiQ0JwYm5OMFlXNWpaU0JwYm5SdklHRWdabTl5YldGMElITjFhWFJoWW14bElHWnZjaUJrWVhSaFltRnpaU0J6ZEc5eVlXZGxMRnh1SUNBZ0tpQm9ZVzVrYkdsdVp5QmpiMngxYlc0Z2JXRndjR2x1WnlCaGJtUWdjMlZ3WVhKaGRHbHVaeUIwY21GdWMybGxiblFnY0hKdmNHVnlkR2xsYzF4dUlDQWdLaUJBZEdWdGNHeGhkR1VnVFNBdElGUm9aU0J0YjJSbGJDQjBlWEJsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdUWDBnYlc5a1pXd2dMU0JVYUdVZ2JXOWtaV3dnYVc1emRHRnVZMlVnZEc4Z2NISmxjR0Z5WlZ4dUlDQWdLaUJBY0dGeVlXMGdjR3NnTFNCVWFHVWdjSEpwYldGeWVTQnJaWGtnY0hKdmNHVnlkSGtnYm1GdFpWeHVJQ0FnS2lCQWNtVjBkWEp1SUZSb1pTQndjbVZ3WVhKbFpDQmtZWFJoWEc0Z0lDQXFMMXh1SUNCdmRtVnljbWxrWlNCd2NtVndZWEpsUEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWEc0Z0lDQWdiVzlrWld3NklFMHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1EyOXVkR1Y0ZEhWaGJFRnlaM004Um1GaWNtbGpRMnhwWlc1MFEyOXVkR1Y0ZEQ1Y2JpQWdLVG9nVTJWbmNtVm5ZWFJsWkUxdlpHVnNQRTArSUNZZ1VISmxjR0Z5WldSTmIyUmxiQ0I3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNzSUdOMGVDQjlJRDBnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnZEdocGN5NXdjbVZ3WVhKbEtUdGNiaUFnSUNCamIyNXpkQ0J6Y0d4cGRDQTlJRTF2WkdWc0xuTmxaM0psWjJGMFpTaHRiMlJsYkNrN1hHNGdJQ0FnYVdZZ0tDaHRiMlJsYkNCaGN5QmhibmtwVzFCbGNuTnBjM1JsYm1ObFMyVjVjeTVOUlZSQlJFRlVRVjBwSUh0Y2JpQWdJQ0FnSUd4dlp5NXphV3hzZVNoY2JpQWdJQ0FnSUNBZ1lGQmhjM05wYm1jZ1lXeHZibWNnY0dWeWMybHpkR1Z1WTJVZ2JXVjBZV1JoZEdFZ1ptOXlJQ1I3S0cxdlpHVnNJR0Z6SUdGdWVTbGJVR1Z5YzJsemRHVnVZMlZMWlhsekxrMUZWRUZFUVZSQlhYMWdYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0hOd2JHbDBMbTF2WkdWc0xDQlFaWEp6YVhOMFpXNWpaVXRsZVhNdVRVVlVRVVJCVkVFc0lIdGNiaUFnSUNBZ0lDQWdaVzUxYldWeVlXSnNaVG9nWm1Gc2MyVXNYRzRnSUNBZ0lDQWdJSGR5YVhSaFlteGxPaUJtWVd4elpTeGNiaUFnSUNBZ0lDQWdZMjl1Wm1sbmRYSmhZbXhsT2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0IyWVd4MVpUb2dLRzF2WkdWc0lHRnpJR0Z1ZVNsYlVHVnljMmx6ZEdWdVkyVkxaWGx6TGsxRlZFRkVRVlJCWFN4Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJRzFwY25KdmNrMWxkR0VnUFNCTmIyUmxiQzV0YVhKeWIzSmxaRUYwS0cxdlpHVnNLVHRjYmlBZ0lDQnBaaUFvYldseWNtOXlUV1YwWVNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYldseWNtOXlUWE53SUQwZ2JXbHljbTl5VFdWMFlTNXRjM0JKWkR0Y2JpQWdJQ0FnSUdsbUlDZ2hiV2x5Y205eVRYTndLU0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGdUbThnYldseWNtOXlJRTFUVUNCamIzVnNaQ0JpWlNCbWIzVnVaR0FwTzF4dUlDQWdJQ0FnYkdWMElHMXpjSE1nUFNCMGFHbHpMbWRsZEVWdVpHOXljMmx1WjA5eVoyRnVhWHBoZEdsdmJuTW9ZM1I0S1NCOGZDQmJYVHRjYmlBZ0lDQWdJRzF6Y0hNZ1BTQkJjbkpoZVM1cGMwRnljbUY1S0cxemNITXBJRDhnYlhOd2N5QTZJRnR0YzNCelhUdGNiaUFnSUNBZ0lHTnZibk4wSUcxbGNtZGxaQ0E5SUZzdUxpNXVaWGNnVTJWMEtGc3VMaTV0YzNCekxDQnRhWEp5YjNKTmMzQmRLVjA3WEc0Z0lDQWdJQ0JqZEhndVlXTmpkVzExYkdGMFpTaDdYRzRnSUNBZ0lDQWdJR1Z1Wkc5eWMybHVaMDl5WjNNNklHMWxjbWRsWkN4Y2JpQWdJQ0FnSUNBZ1pXNWtiM0p6YVc1blQzSm5ZVzVwZW1GMGFXOXVjem9nYldWeVoyVmtMRnh1SUNBZ0lDQWdJQ0JzWldkaFkzazZJSFJ5ZFdVc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnY21WamIzSmtPaUJ6Y0d4cGRDNXRiMlJsYkN4Y2JpQWdJQ0FnSUcxdlpHVnNPaUJ6Y0d4cGRDNXRiMlJsYkN4Y2JpQWdJQ0FnSUdsa09pQnRiMlJsYkZ0TmIyUmxiQzV3YXlodGIyUmxiQzVqYjI1emRISjFZM1J2Y2lCaGN5QkRiMjV6ZEhKMVkzUnZjanhOUGlsZElHRnpJSE4wY21sdVp5eGNiaUFnSUNBZ0lIUnlZVzV6YVdWdWREb2djM0JzYVhRdWRISmhibk5wWlc1MExGeHVJQ0FnSUNBZ2NISnBkbUYwWlhNNklITndiR2wwTG5CeWFYWmhkR1Z6TEZ4dUlDQWdJQ0FnYzJoaGNtVmtPaUJ6Y0d4cGRDNXphR0Z5WldRc1hHNGdJQ0FnZlR0Y2JpQWdmVnh1WEc0Z0lHOTJaWEp5YVdSbElISmxkbVZ5ZER4TklHVjRkR1Z1WkhNZ1RXOWtaV3crS0Z4dUlDQWdJRzlpYWpvZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBpeGNiaUFnSUNCamJHRjZlam9nUTI5dWMzUnlkV04wYjNJOFRUNHNYRzRnSUNBZ2FXUTZJRkJ5YVcxaGNubExaWGxVZVhCbExGeHVJQ0FnSUhSeVlXNXphV1Z1ZEQ4NklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1EyOXVkR1Y0ZEhWaGJFRnlaM004Um1GaWNtbGpRMnhwWlc1MFEyOXVkR1Y0ZEQ1Y2JpQWdLVG9nVFNCN1hHNGdJQ0FnWTI5dWMzUWdleUJzYjJjc0lHTjBlQ0I5SUQwZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z2RHaHBjeTV5WlhabGNuUXBPMXh1SUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJSFJ5WVc1emFXVnVkQ0FtSmx4dUlDQWdJQ0FnZEdocGN5NXphRzkxYkdSU1pXSjFhV3hrVjJsMGFGUnlZVzV6YVdWdWRDaGNiaUFnSUNBZ0lDQWdZM1I0TEZ4dUlDQWdJQ0FnSUNCamRIZ3VaMlYwVDNKVmJtUmxabWx1WldRb1hDSnZjR1Z5WVhScGIyNWNJaWtnWVhNZ2MzUnlhVzVuSUh3Z2RXNWtaV1pwYm1Wa1hHNGdJQ0FnSUNBcFhHNGdJQ0FnS1NCN1hHNGdJQ0FnSUNCc2IyY3VkbVZ5WW05elpTaGNiaUFnSUNBZ0lDQWdZSEpsTFdGa1pHbHVaeUIwY21GdWMybGxiblFnY0hKdmNHVnlkR2xsY3pvZ0pIdFBZbXBsWTNRdWEyVjVjeWgwY21GdWMybGxiblFwTG1wdmFXNG9YQ0lzSUZ3aUtYMWdYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdUMkpxWldOMExtVnVkSEpwWlhNb2RISmhibk5wWlc1MElHRnpJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRwWEc0Z0lDQWdJQ0FnSUM1bWFXeDBaWElvS0Zzc0lIWmRLU0E5UGlCMGVYQmxiMllnZGlBaFBUMGdYQ0oxYm1SbFptbHVaV1JjSWlsY2JpQWdJQ0FnSUNBZ0xtWnZja1ZoWTJnb0tGdHJaWGtzSUhaaGJGMHBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvYTJWNUlHbHVJRzlpYWlBbUppQW9iMkpxSUdGeklHRnVlU2xiYTJWNVhTQWhQVDBnZFc1a1pXWnBibVZrS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdiRzluTG5kaGNtNG9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHQnZkbVZ5ZDNKcGRHbHVaeUJsZUdsemRHbHVaeUFrZTJ0bGVYMHVJR2xtSUhSb2FYTWdhWE1nYm05MElHRWdaR1ZtWVhWc2RDQjJZV3gxWlN3Z2RHaHBjeUJ0WVhrZ2NHOXpaU0JoSUhCeWIySnNaVzFnWEc0Z0lDQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0FnSUNodlltb2dZWE1nVFNsYmEyVjVJR0Z6SUd0bGVXOW1JRTFkSUQwZ2RtRnNPMXh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQnlaWE4xYkhRZ1BTQnVaWGNnS0dOc1lYcDZJR0Z6SUVOdmJuTjBjblZqZEc5eVBFMCtLU2h2WW1vcE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnYzJodmRXeGtVbVZpZFdsc1pGZHBkR2hVY21GdWMybGxiblFvWEc0Z0lDQWdZM1I0T2lCR1lXSnlhV05EYkdsbGJuUkRiMjUwWlhoMExGeHVJQ0FnSUc5d1pYSmhkR2x2Ymo4NklITjBjbWx1WjF4dUlDQXBPaUJpYjI5c1pXRnVJSHRjYmlBZ0lDQnBaaUFvSVdOMGVDa2djbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJR2xtSUNoamRIZ3VaMlYwVDNKVmJtUmxabWx1WldRb1hDSnlaV0oxYVd4a1YybDBhRlJ5WVc1emFXVnVkRndpS1NrZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ1kyOXVjM1FnWTJocGJHUlNaV0oxYVd4a0lEMWNiaUFnSUNBZ0lIUjVjR1Z2WmlBb1kzUjRJR0Z6SUdGdWVTa3VaMlYwUm5KdmJVTm9hV3hrY21WdUlEMDlQU0JjSW1aMWJtTjBhVzl1WENKY2JpQWdJQ0FnSUNBZ1B5QW9ZM1I0SUdGeklHRnVlU2t1WjJWMFJuSnZiVU5vYVd4a2NtVnVLRndpY21WaWRXbHNaRmRwZEdoVWNtRnVjMmxsYm5SY0lpbGNiaUFnSUNBZ0lDQWdPaUIxYm1SbFptbHVaV1E3WEc0Z0lDQWdhV1lnS0dOb2FXeGtVbVZpZFdsc1pDa2djbVYwZFhKdUlIUnlkV1U3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpiMngyWldSUGNDQTlJSFJvYVhNdWNtVnpiMngyWlU5d1pYSmhkR2x2YmloamRIZ3NJRzl3WlhKaGRHbHZiaWs3WEc0Z0lDQWdhV1lnS0NGeVpYTnZiSFpsWkU5d0tTQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdZMjl1YzNRZ2IzQWdQU0J5WlhOdmJIWmxaRTl3TG5SdlUzUnlhVzVuS0NrdWRHOU1iM2RsY2tOaGMyVW9LVHRjYmlBZ0lDQnlaWFIxY200Z0tGeHVJQ0FnSUNBZ2IzQXVhVzVqYkhWa1pYTW9YQ0p5WldGa1hDSXBJSHg4WEc0Z0lDQWdJQ0J2Y0M1cGJtTnNkV1JsY3loY0ltWnBibVJjSWlrZ2ZIeGNiaUFnSUNBZ0lHOXdMbWx1WTJ4MVpHVnpLRndpY1hWbGNubGNJaWtnZkh4Y2JpQWdJQ0FnSUc5d0xtbHVZMngxWkdWektGd2ljM1JoZEdWdFpXNTBYQ0lwSUh4OFhHNGdJQ0FnSUNCdmNDNXBibU5zZFdSbGN5aGNJbkJoWjJWY0lpbGNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQnlaWE52YkhabFQzQmxjbUYwYVc5dUtGeHVJQ0FnSUdOMGVEb2dSbUZpY21salEyeHBaVzUwUTI5dWRHVjRkQ3hjYmlBZ0lDQnZjR1Z5WVhScGIyNC9PaUJ6ZEhKcGJtZGNiaUFnS1RvZ2MzUnlhVzVuSUh3Z2RXNWtaV1pwYm1Wa0lIdGNiaUFnSUNCcFppQW9iM0JsY21GMGFXOXVLU0J5WlhSMWNtNGdiM0JsY21GMGFXOXVPMXh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdLR04wZUNCaGN5QmhibmtwTG1kbGRFWnliMjFEYUdsc1pISmxiaUE5UFQwZ1hDSm1kVzVqZEdsdmJsd2lLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdLR04wZUNCaGN5QmhibmtwTG1kbGRFWnliMjFEYUdsc1pISmxiaWhjSW05d1pYSmhkR2x2Ymx3aUtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnYzJodmRXeGtVbVZtY21WemFFRm1kR1Z5VjNKcGRHVThUU0JsZUhSbGJtUnpJRTF2WkdWc1BpaGNiaUFnSUNCamJHRjZlam9nUTI5dWMzUnlkV04wYjNJOFRUNHNYRzRnSUNBZ1kzUjRPaUJHWVdKeWFXTkRiR2xsYm5SRGIyNTBaWGgwTEZ4dUlDQWdJR2hoYzFSeVlXNXphV1Z1ZERvZ1ltOXZiR1ZoYml4Y2JpQWdJQ0JwWkQ4NklGQnlhVzFoY25sTFpYbFVlWEJsWEc0Z0lDazZJR0p2YjJ4bFlXNGdlMXh1SUNBZ0lHbG1JQ2doYUdGelZISmhibk5wWlc1MEtTQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdZMjl1YzNRZ2NHc2dQU0JOYjJSbGJDNXdheWhqYkdGNmVpazdYRzRnSUNBZ1kyOXVjM1FnWTI5dGNHOXpaV1FnUFNCTmIyUmxiQzVqYjIxd2IzTmxaQ2hqYkdGNmVpd2djR3NwTzF4dUlDQWdJR052Ym5OMElHZGxibVZ5WVhSbFpDQTlJRTF2WkdWc0xtZGxibVZ5WVhSbFpDaGpiR0Y2ZWl3Z2NHc3BPMXh1SUNBZ0lHTnZibk4wSUdoaGMwbGtJRDBnYVdRZ0lUMDlJSFZ1WkdWbWFXNWxaQ0FtSmlCcFpDQWhQVDBnYm5Wc2JEdGNiaUFnSUNCcFppQW9JV2hoYzBsa0lDWW1JR052YlhCdmMyVmtLU0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdJQ0JwWmlBb0lXaGhjMGxrSUNZbUlHZGxibVZ5WVhSbFpDa2dlMXh1SUNBZ0lDQWdZM1I0TG14dloyZGxjaTUzWVhKdUtGeHVJQ0FnSUNBZ0lDQmdRMkZ1Ym05MElISmxabkpsYzJnZ2NtVmpiM0prSUhkcGRHZ2djSEpwZG1GMFpTQm5aVzVsY21GMFpXUWdjSEpwYldGeWVTQnJaWGxnWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdhR0Z6U1dRN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHbHVhbVZqZEZSeVlXNXphV1Z1ZEU5MlpYSnlhV1JsY3loY2JpQWdJQ0IwY21GdWMybGxiblJFWVhSaE9pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytJSHdnZFc1a1pXWnBibVZrTEZ4dUlDQWdJR04wZURvZ1JtRmljbWxqUTJ4cFpXNTBRMjl1ZEdWNGRGeHVJQ0FwT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK0lId2dkVzVrWldacGJtVmtJSHRjYmlBZ0lDQmpiMjV6ZENCb1lYTlVjbUZ1YzJsbGJuUkVZWFJoSUQwZ2RHaHBjeTVvWVhOTlpXRnVhVzVuWm5Wc1ZISmhibk5wWlc1MFJHRjBZU2gwY21GdWMybGxiblJFWVhSaEtUdGNiaUFnSUNCamIyNXpkQ0J6YUc5MWJHUkpibXBsWTNRZ1BTQWhJV04wZUM1blpYUlBjbFZ1WkdWbWFXNWxaQ2hjSW1Gc2JHOTNRMjl1ZEdWNGRGUnlZVzV6YVdWdWRFMWhjRndpS1R0Y2JpQWdJQ0JwWmlBb0lXaGhjMVJ5WVc1emFXVnVkRVJoZEdFZ0ppWWdJWE5vYjNWc1pFbHVhbVZqZENrZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JqYjI1emRDQnZkbVZ5Y21sa1pYTWdQU0JqZEhndWRHOVBkbVZ5Y21sa1pYTW9LVHRjYmlBZ0lDQmpiMjV6ZENCd1lYbHNiMkZrSUQwZ2FHRnpWSEpoYm5OcFpXNTBSR0YwWVNBL0lFOWlhbVZqZEM1aGMzTnBaMjRvZTMwc0lIUnlZVzV6YVdWdWRFUmhkR0VwSURvZ2UzMDdYRzRnSUNBZ2FXWWdLSE5vYjNWc1pFbHVhbVZqZENBbUppQlBZbXBsWTNRdWEyVjVjeWh2ZG1WeWNtbGtaWE1wTG14bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnY0dGNWJHOWhaRnRHWVdKeWFXTk5iMlJsYkV0bGVYTXVUMVpGVWxKSlJFVlRYU0E5SUc5MlpYSnlhV1JsY3p0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlFOWlhbVZqZEM1clpYbHpLSEJoZVd4dllXUXBMbXhsYm1kMGFDQS9JSEJoZVd4dllXUWdPaUIxYm1SbFptbHVaV1E3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdoaGMwMWxZVzVwYm1kbWRXeFVjbUZ1YzJsbGJuUkVZWFJoS0haaGJIVmxPaUIxYm10dWIzZHVLVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdhV1lnS0haaGJIVmxJRDA5UFNCMWJtUmxabWx1WldRZ2ZId2dkbUZzZFdVZ1BUMDlJRzUxYkd3cElISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQnBaaUFvUVhKeVlYa3VhWE5CY25KaGVTaDJZV3gxWlNrcFhHNGdJQ0FnSUNCeVpYUjFjbTRnZG1Gc2RXVXVjMjl0WlNnb2FYUmxiU2tnUFQ0Z2RHaHBjeTVvWVhOTlpXRnVhVzVuWm5Wc1ZISmhibk5wWlc1MFJHRjBZU2hwZEdWdEtTazdYRzRnSUNBZ2FXWWdLSFI1Y0dWdlppQjJZV3gxWlNBaFBUMGdYQ0p2WW1wbFkzUmNJaWtnY21WMGRYSnVJSFJ5ZFdVN1hHNGdJQ0FnWTI5dWMzUWdaVzUwY21sbGN5QTlJRTlpYW1WamRDNWxiblJ5YVdWektIWmhiSFZsSUdGeklGSmxZMjl5WkR4emRISnBibWNzSUhWdWEyNXZkMjQrS1R0Y2JpQWdJQ0JwWmlBb0lXVnVkSEpwWlhNdWJHVnVaM1JvS1NCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUNBZ2NtVjBkWEp1SUdWdWRISnBaWE11YzI5dFpTZ29XeXdnWlc1MGNubGRLU0E5UGlCMGFHbHpMbWhoYzAxbFlXNXBibWRtZFd4VWNtRnVjMmxsYm5SRVlYUmhLR1Z1ZEhKNUtTazdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR2RsZEVWdVpHOXljMmx1WjA5eVoyRnVhWHBoZEdsdmJuTW9YRzRnSUNBZ1kzUjRPaUJHWVdKeWFXTkRiR2xsYm5SRGIyNTBaWGgwWEc0Z0lDazZJSE4wY21sdVoxdGRJSHdnZFc1a1pXWnBibVZrSUh0Y2JpQWdJQ0JqYjI1emRDQmthWEpsWTNRZ1BWeHVJQ0FnSUNBZ1kzUjRMbWRsZEU5eVZXNWtaV1pwYm1Wa0tGd2laVzVrYjNKemFXNW5UM0puYzF3aUtTQjhmRnh1SUNBZ0lDQWdLR04wZUM1blpYUlBjbFZ1WkdWbWFXNWxaQ2hjSW1WdVpHOXljMmx1WjA5eVozTmNJaWtnWVhNZ2MzUnlhVzVuVzEwZ2ZDQjFibVJsWm1sdVpXUXBPMXh1SUNBZ0lHbG1JQ2hrYVhKbFkzUWdKaVlnWkdseVpXTjBMbXhsYm1kMGFDa2djbVYwZFhKdUlHUnBjbVZqZER0Y2JpQWdJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lDQWdLR04wZUM1blpYUkdjbTl0UTJocGJHUnlaVzRvWENKbGJtUnZjbk5wYm1kUGNtZHpYQ0lwSUdGeklITjBjbWx1WjF0ZElId2dkVzVrWldacGJtVmtLU0I4ZkZ4dUlDQWdJQ0FnS0dOMGVDNW5aWFJHY205dFEyaHBiR1J5Wlc0b1hDSmxibVJ2Y25OcGJtZFBjbWR6WENJcElHRnpJSE4wY21sdVoxdGRJSHdnZFc1a1pXWnBibVZrS1Z4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhOb2IzVnNaRVp2Y21ObFIyRjBaWGRoZVVoNVpISmhkR2x2YmloY2JpQWdJQ0F2THlCbGMyeHBiblF0WkdsellXSnNaUzF1WlhoMExXeHBibVVnUUhSNWNHVnpZM0pwY0hRdFpYTnNhVzUwTDI1dkxYVnVkWE5sWkMxMllYSnpYRzRnSUNBZ1kzUjRPaUJHWVdKeWFXTkRiR2xsYm5SRGIyNTBaWGgwWEc0Z0lDazZJR0p2YjJ4bFlXNGdlMXh1SUNBZ0lISmxkSFZ5YmlBaElYUm9hWE11WTI5dVptbG5MbUZzYkc5M1IyRjBaWGRoZVU5MlpYSnlhV1JsTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJEY21WaGRHVnpJR0VnYzJsdVoyeGxJSEpsWTI5eVpGeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCVGRXSnRhWFJ6SUdFZ2RISmhibk5oWTNScGIyNGdkRzhnWTNKbFlYUmxJR0VnY21WamIzSmtJR2x1SUhSb1pTQkdZV0p5YVdNZ2JHVmtaMlZ5WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQjBZV0pzWlU1aGJXVWdMU0JVYUdVZ2JtRnRaU0J2WmlCMGFHVWdkR0ZpYkdVdlkyOXNiR1ZqZEdsdmJseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaeUI4SUc1MWJXSmxjbjBnYVdRZ0xTQlVhR1VnY21WamIzSmtJR2xrWlc1MGFXWnBaWEpjYmlBZ0lDb2dRSEJoY21GdElIdFNaV052Y21ROGMzUnlhVzVuTENCaGJuaytmU0J0YjJSbGJDQXRJRlJvWlNCeVpXTnZjbVFnWkdGMFlWeHVJQ0FnS2lCQWNHRnlZVzBnZTFKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ1OUlIUnlZVzV6YVdWdWRDQXRJRlJ5WVc1emFXVnVkQ0JrWVhSaElHWnZjaUIwYUdVZ2RISmhibk5oWTNScGIyNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1VISnZiV2x6WlR4U1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK1BuMGdVSEp2YldselpTQnlaWE52YkhacGJtY2dkRzhnZEdobElHTnlaV0YwWldRZ2NtVmpiM0prWEc0Z0lDQXFMMXh1SUNCQVpHVmlkV2NvS1Z4dUlDQkFabWx1WVd3b0tWeHVJQ0J2ZG1WeWNtbGtaU0JoYzNsdVl5QmpjbVZoZEdVOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloY2JpQWdJQ0JqYkdGNmVqb2dRMjl1YzNSeWRXTjBiM0k4VFQ0c1hHNGdJQ0FnYVdRNklGQnlhVzFoY25sTFpYbFVlWEJsTEZ4dUlDQWdJRzF2WkdWc09pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytMRnh1SUNBZ0lIUnlZVzV6YVdWdWREb2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQaUE5SUh0OUxGeHVJQ0FnSUM0dUxtRnlaM002SUVOdmJuUmxlSFIxWVd4QmNtZHpQRVpoWW5KcFkwTnNhV1Z1ZEVOdmJuUmxlSFErWEc0Z0lDazZJRkJ5YjIxcGMyVThVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQajRnZTF4dUlDQWdJR052Ym5OMElHTjBlRUZ5WjNNZ1BTQmJMaTR1S0dGeVozTWdZWE1nZFc1cmJtOTNiaUJoY3lCaGJubGJYU2xkTzF4dUlDQWdJR052Ym5OMElIc2diRzluTENCamRIZ2dmU0E5SUhSb2FYTXViRzluUTNSNEtGeHVJQ0FnSUNBZ1kzUjRRWEpuY3lCaGN5QkRiMjUwWlhoMGRXRnNRWEpuY3p4R1lXSnlhV05EYkdsbGJuUkRiMjUwWlhoMFBpeGNiaUFnSUNBZ0lIUm9hWE11WTNKbFlYUmxYRzRnSUNBZ0tUdGNiaUFnSUNCamIyNXpkQ0IwWVdKc1pVNWhiV1VnUFNCTmIyUmxiQzUwWVdKc1pVNWhiV1VvWTJ4aGVub3BPMXh1SUNBZ0lHeHZaeTUyWlhKaWIzTmxLR0JoWkdScGJtY2daVzUwY25rZ2RHOGdKSHQwWVdKc1pVNWhiV1Y5SUhSaFlteGxZQ2s3WEc0Z0lDQWdiRzluTG1SbFluVm5LR0J3YXpvZ0pIdHBaSDFnS1R0Y2JpQWdJQ0JqYjI1emRDQm9ZWE5VY21GdWMybGxiblFnUFNCMGNtRnVjMmxsYm5RZ0ppWWdUMkpxWldOMExtdGxlWE1vZEhKaGJuTnBaVzUwS1M1c1pXNW5kR2dnUGlBd08xeHVJQ0FnSUdOdmJuTjBJRzVsWldSelJuVnNiRkJoZVd4dllXUWdQVnh1SUNBZ0lDQWdhR0Z6VkhKaGJuTnBaVzUwSUh4OElIUm9hWE11YzJodmRXeGtSbTl5WTJWSFlYUmxkMkY1U0hsa2NtRjBhVzl1S0dOMGVDazdYRzRnSUNBZ1kyOXVjM1FnY21WemRXeDBJRDBnWVhkaGFYUWdkR2hwY3k1emRXSnRhWFJVY21GdWMyRmpkR2x2YmloY2JpQWdJQ0FnSUdOMGVDeGNiaUFnSUNBZ0lFOXdaWEpoZEdsdmJrdGxlWE11UTFKRlFWUkZMRnh1SUNBZ0lDQWdXM1JvYVhNdWMyVnlhV0ZzYVhwbGNpNXpaWEpwWVd4cGVtVW9iVzlrWld3c0lHTnNZWHA2TG01aGJXVXBYU3hjYmlBZ0lDQWdJR2hoYzFSeVlXNXphV1Z1ZENBL0lIc2dXM1JoWW14bFRtRnRaVjA2SUhSeVlXNXphV1Z1ZENCOUlEb2dkVzVrWldacGJtVmtMRnh1SUNBZ0lDQWdkR2hwY3k1blpYUkZibVJ2Y25OcGJtZFBjbWRoYm1sNllYUnBiMjV6S0dOMGVDa3NYRzRnSUNBZ0lDQmpiR0Y2ZWx4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ1pHVnpaWEpwWVd4cGVtVmtJRDBnZEdocGN5NXpaWEpwWVd4cGVtVnlMbVJsYzJWeWFXRnNhWHBsS0hSb2FYTXVaR1ZqYjJSbEtISmxjM1ZzZENrcE8xeHVJQ0FnSUdsbUlDaDBhR2x6TG5Ob2IzVnNaRkpsWm5KbGMyaEJablJsY2xkeWFYUmxLR05zWVhwNkxDQmpkSGdzSUc1bFpXUnpSblZzYkZCaGVXeHZZV1FzSUdsa0tTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11Y21WaFpDaGNiaUFnSUNBZ0lDQWdZMnhoZW5vc1hHNGdJQ0FnSUNBZ0lHVjRkSEpoWTNSSlpITW9YRzRnSUNBZ0lDQWdJQ0FnWTJ4aGVub3NYRzRnSUNBZ0lDQWdJQ0FnVFc5a1pXd3ViV1Z5WjJVb1hHNGdJQ0FnSUNBZ0lDQWdJQ0JQWW1wbFkzUXVZWE56YVdkdUtIdDlMQ0J0YjJSbGJDd2dkSEpoYm5OcFpXNTBJSHg4SUh0OUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUdSbGMyVnlhV0ZzYVhwbFpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUdOc1lYcDZYRzRnSUNBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUNBZ0lDQnBaRnh1SUNBZ0lDQWdJQ0FwTEZ4dUlDQWdJQ0FnSUNCamRIaGNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJrWlhObGNtbGhiR2w2WldRN1hHNGdJSDFjYmx4dUlDQkFaR1ZpZFdjb0tWeHVJQ0JBWm1sdVlXd29LVnh1SUNCaGMzbHVZeUJvWldGc2RHaGphR1ZqYXp4TklHVjRkR1Z1WkhNZ1RXOWtaV3crS0Z4dUlDQWdJR05zWVhwNk9pQkRiMjV6ZEhKMVkzUnZjanhOUGl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eEdZV0p5YVdORGJHbGxiblJEYjI1MFpYaDBQbHh1SUNBcE9pQlFjbTl0YVhObFBGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNCtJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHeHZaeXdnWTNSNElIMGdQU0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0IwYUdsekxtaGxZV3gwYUdOb1pXTnJLVHRjYmlBZ0lDQmpiMjV6ZENCMFlXSnNaVTVoYldVZ1BTQk5iMlJsYkM1MFlXSnNaVTVoYldVb1kyeGhlbm9wTzF4dVhHNGdJQ0FnYkc5bkxuWmxjbUp2YzJVb1lISmxZV1JwYm1jZ1pXNTBjbmtnWm5KdmJTQWtlM1JoWW14bFRtRnRaWDBnZEdGaWJHVmdLVHRjYmlBZ0lDQmpiMjV6ZENCeVpYTjFiSFFnUFNCaGQyRnBkQ0IwYUdsekxtVjJZV3gxWVhSbFZISmhibk5oWTNScGIyNG9YRzRnSUNBZ0lDQmpkSGdzWEc0Z0lDQWdJQ0JjSW1obFlXeDBhR05vWldOclhDSXNYRzRnSUNBZ0lDQmJYU3hjYmlBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJR05zWVhwNlhHNGdJQ0FnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdTbE5QVGk1d1lYSnpaU2gwYUdsekxtUmxZMjlrWlNoeVpYTjFiSFFwS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnVW1WaFpITWdZU0J6YVc1bmJHVWdjbVZqYjNKa1hHNGdJQ0FxSUVCemRXMXRZWEo1SUVWMllXeDFZWFJsY3lCaElIUnlZVzV6WVdOMGFXOXVJSFJ2SUhKbFlXUWdZU0J5WldOdmNtUWdabkp2YlNCMGFHVWdSbUZpY21saklHeGxaR2RsY2x4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdkR0ZpYkdWT1lXMWxJQzBnVkdobElHNWhiV1VnYjJZZ2RHaGxJSFJoWW14bEwyTnZiR3hsWTNScGIyNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWNnZkNCdWRXMWlaWEo5SUdsa0lDMGdWR2hsSUhKbFkyOXlaQ0JwWkdWdWRHbG1hV1Z5WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMUJ5YjIxcGMyVThVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQajU5SUZCeWIyMXBjMlVnY21WemIyeDJhVzVuSUhSdklIUm9aU0J5WlhSeWFXVjJaV1FnY21WamIzSmtYRzRnSUNBcUwxeHVJQ0JBWkdWaWRXY29LVnh1SUNCQVptbHVZV3dvS1Z4dUlDQmhjM2x1WXlCeVpXRmtQRTBnWlhoMFpXNWtjeUJOYjJSbGJENG9YRzRnSUNBZ1kyeGhlbm82SUVOdmJuTjBjblZqZEc5eVBFMCtMRnh1SUNBZ0lHbGtPaUJRY21sdFlYSjVTMlY1Vkhsd1pTeGNiaUFnSUNBdUxpNWhjbWR6T2lCRGIyNTBaWGgwZFdGc1FYSm5jenhHWVdKeWFXTkRiR2xsYm5SRGIyNTBaWGgwUGx4dUlDQXBPaUJRY205dGFYTmxQRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDQrSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR3h2Wnl3Z1kzUjRJSDBnUFNCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCMGFHbHpMbkpsWVdRcE8xeHVJQ0FnSUdOdmJuTjBJSFJoWW14bFRtRnRaU0E5SUUxdlpHVnNMblJoWW14bFRtRnRaU2hqYkdGNmVpazdYRzVjYmlBZ0lDQnNiMmN1ZG1WeVltOXpaU2hnY21WaFpHbHVaeUJsYm5SeWVTQm1jbTl0SUNSN2RHRmliR1ZPWVcxbGZTQjBZV0pzWldBcE8xeHVJQ0FnSUd4dlp5NWtaV0oxWnloZ2NHczZJQ1I3YVdSOVlDazdYRzRnSUNBZ1kyOXVjM1FnY21WemRXeDBJRDBnWVhkaGFYUWdkR2hwY3k1bGRtRnNkV0YwWlZSeVlXNXpZV04wYVc5dUtGeHVJQ0FnSUNBZ1kzUjRMRnh1SUNBZ0lDQWdUM0JsY21GMGFXOXVTMlY1Y3k1U1JVRkVMRnh1SUNBZ0lDQWdXMmxrTG5SdlUzUnlhVzVuS0NsZExGeHVJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ1kyeGhlbnBjYmlBZ0lDQXBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbk5sY21saGJHbDZaWEl1WkdWelpYSnBZV3hwZW1Vb2RHaHBjeTVrWldOdlpHVW9jbVZ6ZFd4MEtTazdYRzRnSUgxY2JseHVJQ0IxY0dSaGRHVlFjbVZtYVhnOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloY2JpQWdJQ0JqYkdGNmVqb2dRMjl1YzNSeWRXTjBiM0k4VFQ0c1hHNGdJQ0FnYVdRNklGQnlhVzFoY25sTFpYbFVlWEJsTEZ4dUlDQWdJRzF2WkdWc09pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eEdZV0p5YVdORGJHbGxiblJEYjI1MFpYaDBQbHh1SUNBcElIdGNiaUFnSUNCamIyNXpkQ0IwWVdKc1pVNWhiV1VnUFNCTmIyUmxiQzUwWVdKc1pVNWhiV1VvWTJ4aGVub3BPMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dkR2hwY3k1MWNHUmhkR1ZRY21WbWFYZ3BPMXh1SUNBZ0lHTnZibk4wSUhKbFkyOXlaRG9nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGlBOUlIdDlPMXh1SUNBZ0lISmxZMjl5WkZ0RGIzVmphRVJDUzJWNWN5NVVRVUpNUlYwZ1BTQjBZV0pzWlU1aGJXVTdYRzRnSUNBZ0x5OGdjbVZqYjNKa1cwTnZkV05vUkVKTFpYbHpMa2xFWFNBOUlIUm9hWE11WjJWdVpYSmhkR1ZKWkNoMFlXSnNaVTVoYldVc0lHbGtLVHRjYmlBZ0lDQlBZbXBsWTNRdVlYTnphV2R1S0hKbFkyOXlaQ3dnYlc5a1pXd3BPMXh1SUNBZ0lISmxkSFZ5YmlCYlkyeGhlbm9zSUdsa0xDQnlaV052Y21Rc0lDNHVMbU4wZUVGeVozTmRPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQlZjR1JoZEdWeklHRWdjMmx1WjJ4bElISmxZMjl5WkZ4dUlDQWdLaUJBYzNWdGJXRnllU0JUZFdKdGFYUnpJR0VnZEhKaGJuTmhZM1JwYjI0Z2RHOGdkWEJrWVhSbElHRWdjbVZqYjNKa0lHbHVJSFJvWlNCR1lXSnlhV01nYkdWa1oyVnlYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCMFlXSnNaVTVoYldVZ0xTQlVhR1VnYm1GdFpTQnZaaUIwYUdVZ2RHRmliR1V2WTI5c2JHVmpkR2x2Ymx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVp5QjhJRzUxYldKbGNuMGdhV1FnTFNCVWFHVWdjbVZqYjNKa0lHbGtaVzUwYVdacFpYSmNiaUFnSUNvZ1FIQmhjbUZ0SUh0U1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK2ZTQnRiMlJsYkNBdElGUm9aU0IxY0dSaGRHVmtJSEpsWTI5eVpDQmtZWFJoWEc0Z0lDQXFJRUJ3WVhKaGJTQjdVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQbjBnZEhKaGJuTnBaVzUwSUMwZ1ZISmhibk5wWlc1MElHUmhkR0VnWm05eUlIUm9aU0IwY21GdWMyRmpkR2x2Ymx4dUlDQWdLaUJBY21WMGRYSnVJSHRRY205dGFYTmxQRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDQrZlNCUWNtOXRhWE5sSUhKbGMyOXNkbWx1WnlCMGJ5QjBhR1VnZFhCa1lYUmxaQ0J5WldOdmNtUmNiaUFnSUNvdlhHNGdJRUJrWldKMVp5Z3BYRzRnSUVCbWFXNWhiQ2dwWEc0Z0lHRnplVzVqSUhWd1pHRjBaVHhOSUdWNGRHVnVaSE1nVFc5a1pXdytLRnh1SUNBZ0lHTnNZWHA2T2lCRGIyNXpkSEoxWTNSdmNqeE5QaXhjYmlBZ0lDQnBaRG9nVUhKcGJXRnllVXRsZVZSNWNHVXNYRzRnSUNBZ2JXOWtaV3c2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0c1hHNGdJQ0FnZEhKaGJuTnBaVzUwT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK0lEMGdlMzBzWEc0Z0lDQWdMaTR1WVhKbmN6b2dRMjl1ZEdWNGRIVmhiRUZ5WjNNOFJtRmljbWxqUTJ4cFpXNTBRMjl1ZEdWNGRENWNiaUFnS1RvZ1VISnZiV2x6WlR4U1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK1BpQjdYRzRnSUNBZ1kyOXVjM1FnWTNSNFFYSm5jeUE5SUZzdUxpNG9ZWEpuY3lCaGN5QjFibXR1YjNkdUlHRnpJR0Z1ZVZ0ZEtWMDdYRzRnSUNBZ1kyOXVjM1FnZXlCc2IyY3NJR04wZUNCOUlEMGdkR2hwY3k1c2IyZERkSGdvWEc0Z0lDQWdJQ0JqZEhoQmNtZHpJR0Z6SUVOdmJuUmxlSFIxWVd4QmNtZHpQRVpoWW5KcFkwTnNhV1Z1ZEVOdmJuUmxlSFErTEZ4dUlDQWdJQ0FnZEdocGN5NTFjR1JoZEdWY2JpQWdJQ0FwTzF4dUlDQWdJR3h2Wnk1cGJtWnZLR0JEVEVsRlRsUWdWVkJFUVZSRklHTnNZWE56SURvZ0pIdDBlWEJsYjJZZ1kyeGhlbnA5WUNrN1hHNGdJQ0FnWTI5dWMzUWdkR0ZpYkdWT1lXMWxJRDBnVFc5a1pXd3VkR0ZpYkdWT1lXMWxLR05zWVhwNktUdGNiaUFnSUNCc2IyY3VkbVZ5WW05elpTaGdkWEJrWVhScGJtY2daVzUwY25rZ2RHOGdKSHQwWVdKc1pVNWhiV1Y5SUhSaFlteGxZQ2s3WEc0Z0lDQWdiRzluTG1SbFluVm5LR0J3YXpvZ0pIdHBaSDFnS1R0Y2JpQWdJQ0JqYjI1emRDQm9ZWE5VY21GdWMybGxiblFnUFNCMGNtRnVjMmxsYm5RZ0ppWWdUMkpxWldOMExtdGxlWE1vZEhKaGJuTnBaVzUwS1M1c1pXNW5kR2dnUGlBd08xeHVJQ0FnSUdOdmJuTjBJRzVsWldSelJuVnNiRkJoZVd4dllXUWdQVnh1SUNBZ0lDQWdhR0Z6VkhKaGJuTnBaVzUwSUh4OElIUm9hWE11YzJodmRXeGtSbTl5WTJWSFlYUmxkMkY1U0hsa2NtRjBhVzl1S0dOMGVDazdYRzRnSUNBZ1kyOXVjM1FnY21WemRXeDBJRDBnWVhkaGFYUWdkR2hwY3k1emRXSnRhWFJVY21GdWMyRmpkR2x2YmloY2JpQWdJQ0FnSUdOMGVDeGNiaUFnSUNBZ0lFOXdaWEpoZEdsdmJrdGxlWE11VlZCRVFWUkZMRnh1SUNBZ0lDQWdXM1JvYVhNdWMyVnlhV0ZzYVhwbGNpNXpaWEpwWVd4cGVtVW9iVzlrWld3c0lHTnNZWHA2TG01aGJXVXBYU3hjYmlBZ0lDQWdJR2hoYzFSeVlXNXphV1Z1ZENBL0lIc2dXM1JoWW14bFRtRnRaVjA2SUhSeVlXNXphV1Z1ZENCOUlEb2dkVzVrWldacGJtVmtMRnh1SUNBZ0lDQWdkR2hwY3k1blpYUkZibVJ2Y25OcGJtZFBjbWRoYm1sNllYUnBiMjV6S0dOMGVDa3NYRzRnSUNBZ0lDQmpiR0Y2ZWx4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ1pHVnpaWEpwWVd4cGVtVmtJRDBnZEdocGN5NXpaWEpwWVd4cGVtVnlMbVJsYzJWeWFXRnNhWHBsS0hSb2FYTXVaR1ZqYjJSbEtISmxjM1ZzZENrcE8xeHVJQ0FnSUdsbUlDaDBhR2x6TG5Ob2IzVnNaRkpsWm5KbGMyaEJablJsY2xkeWFYUmxLR05zWVhwNkxDQmpkSGdzSUc1bFpXUnpSblZzYkZCaGVXeHZZV1FzSUdsa0tTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11Y21WaFpDaGNiaUFnSUNBZ0lDQWdZMnhoZW5vc1hHNGdJQ0FnSUNBZ0lHVjRkSEpoWTNSSlpITW9YRzRnSUNBZ0lDQWdJQ0FnWTJ4aGVub3NYRzRnSUNBZ0lDQWdJQ0FnVFc5a1pXd3ViV1Z5WjJVb1hHNGdJQ0FnSUNBZ0lDQWdJQ0JQWW1wbFkzUXVZWE56YVdkdUtIdDlMQ0J0YjJSbGJDd2dkSEpoYm5OcFpXNTBJSHg4SUh0OUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUdSbGMyVnlhV0ZzYVhwbFpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUdOc1lYcDZYRzRnSUNBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUNBZ0lDQnBaRnh1SUNBZ0lDQWdJQ0FwTEZ4dUlDQWdJQ0FnSUNCamRIaGNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJrWlhObGNtbGhiR2w2WldRN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVSbGJHVjBaWE1nWVNCemFXNW5iR1VnY21WamIzSmtYRzRnSUNBcUlFQnpkVzF0WVhKNUlGTjFZbTFwZEhNZ1lTQjBjbUZ1YzJGamRHbHZiaUIwYnlCa1pXeGxkR1VnWVNCeVpXTnZjbVFnWm5KdmJTQjBhR1VnUm1GaWNtbGpJR3hsWkdkbGNseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZEdGaWJHVk9ZVzFsSUMwZ1ZHaGxJRzVoYldVZ2IyWWdkR2hsSUhSaFlteGxMMk52Ykd4bFkzUnBiMjVjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1jZ2ZDQnVkVzFpWlhKOUlHbGtJQzBnVkdobElISmxZMjl5WkNCcFpHVnVkR2xtYVdWeUlIUnZJR1JsYkdWMFpWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0UWNtOXRhWE5sUEZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0K2ZTQlFjbTl0YVhObElISmxjMjlzZG1sdVp5QjBieUIwYUdVZ1pHVnNaWFJsWkNCeVpXTnZjbVJjYmlBZ0lDb3ZYRzRnSUVCa1pXSjFaeWdwWEc0Z0lFQm1hVzVoYkNncFhHNGdJRzkyWlhKeWFXUmxJR0Z6ZVc1aklHUmxiR1YwWlR4TklHVjRkR1Z1WkhNZ1RXOWtaV3crS0Z4dUlDQWdJR05zWVhwNk9pQkRiMjV6ZEhKMVkzUnZjanhOUGl4Y2JpQWdJQ0JwWkRvZ1VISnBiV0Z5ZVV0bGVWUjVjR1VzWEc0Z0lDQWdMaTR1WVhKbmN6b2dRMjl1ZEdWNGRIVmhiRUZ5WjNNOFJtRmljbWxqUTJ4cFpXNTBRMjl1ZEdWNGRENWNiaUFnS1RvZ1VISnZiV2x6WlR4U1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK1BpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCc2IyY3NJR04wZUNCOUlEMGdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dkR2hwY3k1a1pXeGxkR1VwTzF4dUlDQWdJR052Ym5OMElIUmhZbXhsVG1GdFpTQTlJRTF2WkdWc0xuUmhZbXhsVG1GdFpTaGpiR0Y2ZWlrN1hHNGdJQ0FnWTI5dWMzUWdibVZsWkhOR2RXeHNVR0Y1Ykc5aFpDQTlYRzRnSUNBZ0lDQk5iMlJsYkM1cGMxUnlZVzV6YVdWdWRDaGpiR0Y2ZWlrZ2ZId2dkR2hwY3k1emFHOTFiR1JHYjNKalpVZGhkR1YzWVhsSWVXUnlZWFJwYjI0b1kzUjRLVHRjYmlBZ0lDQnNaWFFnY21WemRXeDBPaUJoYm5rN1hHNGdJQ0FnWTI5dWMzUWdjMmh2ZFd4a1NIbGtjbUYwWlNBOUlIUm9hWE11YzJodmRXeGtVbVZtY21WemFFRm1kR1Z5VjNKcGRHVW9YRzRnSUNBZ0lDQmpiR0Y2ZWl4Y2JpQWdJQ0FnSUdOMGVDeGNiaUFnSUNBZ0lHNWxaV1J6Um5Wc2JGQmhlV3h2WVdRc1hHNGdJQ0FnSUNCcFpGeHVJQ0FnSUNrN1hHNGdJQ0FnYVdZZ0tITm9iM1ZzWkVoNVpISmhkR1VwSUh0Y2JpQWdJQ0FnSUhKbGMzVnNkQ0E5SUdGM1lXbDBJSFJvYVhNdWNtVmhaQ2hqYkdGNmVpd2dhV1FzSUdOMGVDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2JHOW5MblpsY21KdmMyVW9ZR1JsYkdWMGFXNW5JR1Z1ZEhKNUlHWnliMjBnSkh0MFlXSnNaVTVoYldWOUlIUmhZbXhsWUNrN1hHNGdJQ0FnYkc5bkxtUmxZblZuS0dCd2F6b2dKSHRwWkgxZ0tUdGNiaUFnSUNCamIyNXpkQ0J5WlhNZ1BTQmhkMkZwZENCMGFHbHpMbk4xWW0xcGRGUnlZVzV6WVdOMGFXOXVLRnh1SUNBZ0lDQWdZM1I0TEZ4dUlDQWdJQ0FnVDNCbGNtRjBhVzl1UzJWNWN5NUVSVXhGVkVVc1hHNGdJQ0FnSUNCYmFXUXVkRzlUZEhKcGJtY29LVjBzWEc0Z0lDQWdJQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdJQ0IwYUdsekxtZGxkRVZ1Wkc5eWMybHVaMDl5WjJGdWFYcGhkR2x2Ym5Nb1kzUjRLU3hjYmlBZ0lDQWdJR05zWVhwNlhHNGdJQ0FnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdjMmh2ZFd4a1NIbGtjbUYwWlZ4dUlDQWdJQ0FnUHlCeVpYTjFiSFJjYmlBZ0lDQWdJRG9nZEdocGN5NXpaWEpwWVd4cGVtVnlMbVJsYzJWeWFXRnNhWHBsS0hSb2FYTXVaR1ZqYjJSbEtISmxjeWtwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJGZUdWamRYUmxjeUJoSUhKaGR5QnhkV1Z5ZVNCaFoyRnBibk4wSUhSb1pTQkdZV0p5YVdNZ2JHVmtaMlZ5WEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRVYyWVd4MVlYUmxjeUJoSUhSeVlXNXpZV04wYVc5dUlIUnZJSEJsY21admNtMGdZU0J4ZFdWeWVTQjFjMmx1WnlCTllXNW5ieUJSZFdWeWVTQnplVzUwWVhoY2JpQWdJQ29nUUhSbGJYQnNZWFJsSUZZZ0xTQlVhR1VnY21WMGRYSnVJSFI1Y0dWY2JpQWdJQ29nUUhCaGNtRnRJSHROWVc1bmIxRjFaWEo1ZlNCeVlYZEpibkIxZENBdElGUm9aU0JOWVc1bmJ5QlJkV1Z5ZVNCMGJ5QmxlR1ZqZFhSbFhHNGdJQ0FxSUVCd1lYSmhiU0I3WW05dmJHVmhibjBnY0hKdlkyVnpjeUF0SUZkb1pYUm9aWElnZEc4Z2NISnZZMlZ6Y3lCMGFHVWdjbVZ6ZFd4MFhHNGdJQ0FxSUVCeVpYUjFjbTRnZTFCeWIyMXBjMlU4Vmo1OUlGQnliMjFwYzJVZ2NtVnpiMngyYVc1bklIUnZJSFJvWlNCeGRXVnllU0J5WlhOMWJIUmNiaUFnSUNvZ1FHMWxjbTFoYVdSY2JpQWdJQ29nYzJWeGRXVnVZMlZFYVdGbmNtRnRYRzRnSUNBcUlDQWdjR0Z5ZEdsamFYQmhiblFnUTJ4cFpXNTBYRzRnSUNBcUlDQWdjR0Z5ZEdsamFYQmhiblFnUm1GaWNtbGpRV1JoY0hSbGNseHVJQ0FnS2lBZ0lIQmhjblJwWTJsd1lXNTBJRU52Ym5SeVlXTjBYRzRnSUNBcUlDQWdjR0Z5ZEdsamFYQmhiblFnUTJoaGFXNWpiMlJsWEc0Z0lDQXFYRzRnSUNBcUlDQWdRMnhwWlc1MExUNCtSbUZpY21salFXUmhjSFJsY2pvZ2NtRjNLSEpoZDBsdWNIVjBMQ0J3Y205alpYTnpLVnh1SUNBZ0tpQWdJRVpoWW5KcFkwRmtZWEIwWlhJdFBqNUdZV0p5YVdOQlpHRndkR1Z5T2lCS1UwOU9Mbk4wY21sdVoybG1lU2h5WVhkSmJuQjFkQ2xjYmlBZ0lDb2dJQ0JHWVdKeWFXTkJaR0Z3ZEdWeUxUNCtSbUZpY21salFXUmhjSFJsY2pvZ1pYWmhiSFZoZEdWVWNtRnVjMkZqZEdsdmJpaGNJbkYxWlhKNVhDSXNJRnRwYm5CMWRGMHBYRzRnSUNBcUlDQWdSbUZpY21salFXUmhjSFJsY2kwK1BrTnZiblJ5WVdOME9pQmxkbUZzZFdGMFpTaGNJbkYxWlhKNVhDSXNJSEJ5YjNCdmMyRnNUM0IwYVc5dWN5bGNiaUFnSUNvZ0lDQkRiMjUwY21GamRDMCtQa05vWVdsdVkyOWtaVG9nYVc1MmIydGxYRzRnSUNBcUlDQWdRMmhoYVc1amIyUmxMUzArUGtOdmJuUnlZV04wT2lCeVpYTndiMjV6WlZ4dUlDQWdLaUFnSUVOdmJuUnlZV04wTFMwK1BrWmhZbkpwWTBGa1lYQjBaWEk2SUhKbGMzVnNkRnh1SUNBZ0tpQWdJRVpoWW5KcFkwRmtZWEIwWlhJdFBqNUdZV0p5YVdOQlpHRndkR1Z5T2lCS1UwOU9MbkJoY25ObEtHUmxZMjlrWlNoeVpYTjFiSFFwS1Z4dUlDQWdLaUFnSUVaaFluSnBZMEZrWVhCMFpYSXRQajVHWVdKeWFXTkJaR0Z3ZEdWeU9pQlFjbTlqWlhOeklISmxjM1ZzZENCaVlYTmxaQ0J2YmlCMGVYQmxYRzRnSUNBcUlDQWdSbUZpY21salFXUmhjSFJsY2kwdFBqNURiR2xsYm5RNklIQnliMk5sYzNObFpDQnlaWE4xYkhSY2JpQWdJQ292WEc0Z0lFQmtaV0oxWnlncFhHNGdJR0Z6ZVc1aklISmhkenhXTENCRUlHVjRkR1Z1WkhNZ1ltOXZiR1ZoYmo0b1hHNGdJQ0FnY21GM1NXNXdkWFE2SUUxaGJtZHZVWFZsY25rc1hHNGdJQ0FnWkc5amMwOXViSGs2SUVRZ1BTQjBjblZsSUdGeklFUXNYRzRnSUNBZ1kyeGhlbm82SUUxdlpHVnNRMjl1YzNSeWRXTjBiM0k4WVc1NVBpeGNiaUFnSUNBdUxpNWhjbWR6T2lCRGIyNTBaWGgwZFdGc1FYSm5jenhHWVdKeWFXTkRiR2xsYm5SRGIyNTBaWGgwUGx4dUlDQXBPaUJRY205dGFYTmxQRlkrSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR3h2Wnl3Z1kzUjRJSDBnUFNCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCMGFHbHpMbkpoZHlrN1hHNGdJQ0FnYkc5bkxtbHVabThvWUZCbGNtWnZjbTFwYm1jZ2NtRjNJSE4wWVhSbGJXVnVkQ0J2YmlCMFlXSnNaU0FrZTAxdlpHVnNMblJoWW14bFRtRnRaU2hqYkdGNmVpbDlZQ2s3WEc0Z0lDQWdiR1YwSUhSeVlXNXpZV04wYVc5dVVtVnpkV3gwT2lCaGJuazdYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJSFJ5WVc1ellXTjBhVzl1VW1WemRXeDBJRDBnWVhkaGFYUWdkR2hwY3k1bGRtRnNkV0YwWlZSeVlXNXpZV04wYVc5dUtGeHVJQ0FnSUNBZ0lDQmpkSGdzWEc0Z0lDQWdJQ0FnSUZ3aWNtRjNYQ0lzWEc0Z0lDQWdJQ0FnSUZ0S1UwOU9Mbk4wY21sdVoybG1lU2h5WVhkSmJuQjFkQ2tzSUdSdlkzTlBibXg1WFN4Y2JpQWdJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ0lDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ0lDQWdJR05zWVhwNlhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dVNklIVnVhMjV2ZDI0cElIdGNiaUFnSUNBZ0lIUm9jbTkzSUhSb2FYTXVjR0Z5YzJWRmNuSnZjaWhsSUdGeklFVnljbTl5S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdiR1YwSUhKbGMzVnNkRG9nWVc1NU8xeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQnlaWE4xYkhRZ1BTQktVMDlPTG5CaGNuTmxLSFJvYVhNdVpHVmpiMlJsS0hSeVlXNXpZV04wYVc5dVVtVnpkV3gwS1NrN1hHNGdJQ0FnZlNCallYUmphQ0FvWlRvZ1lXNTVLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVTJWeWFXRnNhWHBoZEdsdmJrVnljbTl5S0dCR1lXbHNaV1FnZEc4Z2NISnZZMlZ6Y3lCeVpYTjFiSFE2SUNSN1pYMWdLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCd1lYSnpaVkpsWTI5eVpDQTlJQ2h5WldOdmNtUTZJRkpsWTI5eVpEeGhibmtzSUdGdWVUNHBJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDaE5iMlJsYkM1cGMwMXZaR1ZzS0hKbFkyOXlaQ2twSUhKbGRIVnliaUJOYjJSbGJDNWlkV2xzWkNoeVpXTnZjbVFwTzF4dUlDQWdJQ0FnY21WMGRYSnVJSEpsWTI5eVpEdGNiaUFnSUNCOU8xeHVYRzRnSUNBZ2FXWWdLRUZ5Y21GNUxtbHpRWEp5WVhrb2NtVnpkV3gwS1NrZ2UxeHVJQ0FnSUNBZ2FXWWdLQ0Z5WlhOMWJIUXViR1Z1WjNSb0tTQnlaWFIxY200Z2NtVnpkV3gwSUdGeklGWTdYRzRnSUNBZ0lDQmpiMjV6ZENCbGJDQTlJSEpsYzNWc2RGc3dYVHRjYmlBZ0lDQWdJR2xtSUNoTmIyUmxiQzVwYzAxdlpHVnNLR1ZzS1NsY2JpQWdJQ0FnSUNBZ0x5OGdhV1lnZEdobElHWnBjbk4wSUc5dVpTQnBjeUJoSUcxdlpHVnNMQ0JoYkd3Z1lYSmxJRzF2WkdWc2MxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTG0xaGNDZ29aV3dwSUQwK0lFMXZaR1ZzTG1KMWFXeGtLR1ZzS1NrZ1lYTWdWanRjYmlBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRZ1lYTWdWanRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2NHRnljMlZTWldOdmNtUW9jbVZ6ZFd4MElHRnpJR0Z1ZVNrZ1lYTWdWanRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSWGhsWTNWMFpYTWdZU0JEYjNWamFFUkNJSFpwWlhjZ2NYVmxjbmtnWVdkaGFXNXpkQ0IwYUdVZ1JtRmljbWxqSUdOb1lXbHVZMjlrWlZ4dUlDQWdLaUJBYzNWdGJXRnllU0JGZG1Gc2RXRjBaWE1nWVNCMGNtRnVjMkZqZEdsdmJpQjBieUJ4ZFdWeWVTQmhJR1JsYzJsbmJpQmtiMk4xYldWdWRDQjJhV1YzWEc0Z0lDQXFJRUIwWlcxd2JHRjBaU0JTSUMwZ1ZHaGxJSFpwWlhjZ2NtVnpjRzl1YzJVZ2RIbHdaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1pHUnZZeUF0SUVSbGMybG5iaUJrYjJOMWJXVnVkQ0J1WVcxbFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0IyYVdWM1RtRnRaU0F0SUZacFpYY2dibUZ0WlZ4dUlDQWdLaUJBY0dGeVlXMGdlMUpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDU5SUc5d2RHbHZibk1nTFNCV2FXVjNJSEYxWlhKNUlHOXdkR2x2Ym5OY2JpQWdJQ29nUUhCaGNtRnRJSHN1TGk1RGIyNTBaWGgwZFdGc1FYSm5jenhHWVdKeWFXTkRiR2xsYm5SRGIyNTBaWGgwUG4wZ1lYSm5jeUF0SUU5d2RHbHZibUZzSUdOdmJuUmxlSFIxWVd3Z1lYSm5kVzFsYm5SelhHNGdJQ0FxSUVCeVpYUjFjbTRnZTFCeWIyMXBjMlU4Vm1sbGQxSmxjM0J2Ym5ObFBGSStQbjBnVkdobElIWnBaWGNnY21WemNHOXVjMlZjYmlBZ0lDb3ZYRzRnSUVCa1pXSjFaeWdwWEc0Z0lHRnplVzVqSUhacFpYYzhVajRvWEc0Z0lDQWdaR1J2WXpvZ2MzUnlhVzVuTEZ4dUlDQWdJSFpwWlhkT1lXMWxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2IzQjBhVzl1Y3pvZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBpeGNiaUFnSUNBdUxpNWhjbWR6T2lCRGIyNTBaWGgwZFdGc1FYSm5jenhHWVdKeWFXTkRiR2xsYm5SRGIyNTBaWGgwUGx4dUlDQXBPaUJRY205dGFYTmxQRlpwWlhkU1pYTndiMjV6WlR4U1BqNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhnZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJSFJvYVhNdWRtbGxkeWs3WEc0Z0lDQWdiRzluTG1sdVptOG9ZRkYxWlhKNWFXNW5JSFpwWlhjZ0pIdGtaRzlqZlM4a2UzWnBaWGRPWVcxbGZXQXBPMXh1SUNBZ0lHeGxkQ0IwY21GdWMyRmpkR2x2YmxKbGMzVnNkRG9nWVc1NU8xeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQjBjbUZ1YzJGamRHbHZibEpsYzNWc2RDQTlJR0YzWVdsMElIUm9hWE11WlhaaGJIVmhkR1ZVY21GdWMyRmpkR2x2YmloY2JpQWdJQ0FnSUNBZ1kzUjRMRnh1SUNBZ0lDQWdJQ0JjSW5acFpYZGNJaXhjYmlBZ0lDQWdJQ0FnVzJSa2IyTXNJSFpwWlhkT1lXMWxMQ0JLVTA5T0xuTjBjbWx1WjJsbWVTaHZjSFJwYjI1ektWMHNYRzRnSUNBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJQ0FnZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnSUNCMWJtUmxabWx1WldSY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlNCallYUmphQ0FvWlRvZ2RXNXJibTkzYmlrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnZEdocGN5NXdZWEp6WlVWeWNtOXlLR1VnWVhNZ1JYSnliM0lwTzF4dUlDQWdJSDFjYmlBZ0lDQnNaWFFnY21WemRXeDBPaUJXYVdWM1VtVnpjRzl1YzJVOFVqNDdYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJSEpsYzNWc2RDQTlJRXBUVDA0dWNHRnljMlVvZEdocGN5NWtaV052WkdVb2RISmhibk5oWTNScGIyNVNaWE4xYkhRcEtUdGNiaUFnSUNCOUlHTmhkR05vSUNobE9pQmhibmtwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCVFpYSnBZV3hwZW1GMGFXOXVSWEp5YjNJb1lFWmhhV3hsWkNCMGJ5QndjbTlqWlhOeklIWnBaWGNnY21WemRXeDBPaUFrZTJWOVlDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFZGxkSE1nYjNJZ1kzSmxZWFJsY3lCaElHZFNVRU1nWTJ4cFpXNTBJR1p2Y2lCMGFHVWdSbUZpY21saklIQmxaWEpjYmlBZ0lDb2dRSE4xYlcxaGNua2dVbVYwZFhKdWN5QmhJR05oWTJobFpDQmpiR2xsYm5RZ2IzSWdZM0psWVhSbGN5QmhJRzVsZHlCdmJtVWdhV1lnYm05dVpTQmxlR2x6ZEhOY2JpQWdJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHhEYkdsbGJuUStmU0JRY205dGFYTmxJSEpsYzI5c2RtbHVaeUIwYnlCMGFHVWdaMUpRUXlCamJHbGxiblJjYmlBZ0lDb3ZYRzRnSUc5MlpYSnlhV1JsSUdkbGRFTnNhV1Z1ZENncE9pQkRiR2xsYm5RZ2UxeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1ZlkyeHBaVzUwS1Z4dUlDQWdJQ0FnZEdocGN5NWZZMnhwWlc1MElEMGdSbUZpY21salEyeHBaVzUwUVdSaGNIUmxjaTVuWlhSRGJHbGxiblFvZEdocGN5NWpiMjVtYVdjcE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxsOWpiR2xsYm5RN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVkbGRITWdZU0JIWVhSbGQyRjVJR2x1YzNSaGJtTmxJR1p2Y2lCMGFHVWdSbUZpY21saklHNWxkSGR2Y210Y2JpQWdJQ29nUUhOMWJXMWhjbmtnUTNKbFlYUmxjeUJoSUc1bGR5QkhZWFJsZDJGNUlHbHVjM1JoYm1ObElIVnphVzVuSUhSb1pTQmpkWEp5Wlc1MElHTnNhV1Z1ZEZ4dUlDQWdLaUJBY21WMGRYSnVJSHRRY205dGFYTmxQRWRoZEdWM1lYaytmU0JRY205dGFYTmxJSEpsYzI5c2RtbHVaeUIwYnlCMGFHVWdSMkYwWlhkaGVTQnBibk4wWVc1alpWeHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJR0Z6ZVc1aklFZGhkR1YzWVhrb1kzUjRPaUJHWVdKeWFXTkRiR2xsYm5SRGIyNTBaWGgwS1RvZ1VISnZiV2x6WlR4SFlYUmxkMkY1UGlCN1hHNGdJQ0FnY21WMGRYSnVJRVpoWW5KcFkwTnNhV1Z1ZEVGa1lYQjBaWEl1WjJWMFIyRjBaWGRoZVNoamRIZ3NJSFJvYVhNdVkyOXVabWxuTENCMGFHbHpMbU5zYVdWdWRDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFZGxkSE1nWVNCRGIyNTBjbUZqZENCcGJuTjBZVzVqWlNCbWIzSWdkR2hsSUVaaFluSnBZeUJqYUdGcGJtTnZaR1ZjYmlBZ0lDb2dRSE4xYlcxaGNua2dRM0psWVhSbGN5QmhJRzVsZHlCRGIyNTBjbUZqZENCcGJuTjBZVzVqWlNCMWMybHVaeUIwYUdVZ1kzVnljbVZ1ZENCSFlYUmxkMkY1WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMUJ5YjIxcGMyVThRMjl1ZEhKaGEzUStmU0JRY205dGFYTmxJSEpsYzI5c2RtbHVaeUIwYnlCMGFHVWdRMjl1ZEhKaFkzUWdhVzV6ZEdGdVkyVmNiaUFnSUNvdlhHNGdJSEJ5YjNSbFkzUmxaQ0JoYzNsdVl5QkRiMjUwY21GamRDaGNiaUFnSUNCamRIZzZJRVpoWW5KcFkwTnNhV1Z1ZEVOdmJuUmxlSFFzWEc0Z0lDQWdZMnhoZW5wUGNrTnZiblJ5WVdOMFRtRnRaVDg2SUVOdmJuTjBjblZqZEc5eVBFMXZaR1ZzUEdGdWVUNCtJSHdnYzNSeWFXNW5YRzRnSUNrNklGQnliMjFwYzJVOFEyOXVkSEpoYTNRK0lIdGNiaUFnSUNCeVpYUjFjbTRnUm1GaWNtbGpRMnhwWlc1MFFXUmhjSFJsY2k1blpYUkRiMjUwY21GamRDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXVSMkYwWlhkaGVTaGpkSGdwTEZ4dUlDQWdJQ0FnZEdocGN5NWpiMjVtYVdjc1hHNGdJQ0FnSUNCamJHRjZlazl5UTI5dWRISmhZM1JPWVcxbExGeHVJQ0FnSUNBZ1kzUjRYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1JYaGxZM1YwWlhNZ1lTQjBjbUZ1YzJGamRHbHZiaUJ2YmlCMGFHVWdSbUZpY21saklHNWxkSGR2Y210Y2JpQWdJQ29nUUhOMWJXMWhjbmtnVTNWaWJXbDBjeUJ2Y2lCbGRtRnNkV0YwWlhNZ1lTQjBjbUZ1YzJGamRHbHZiaUJ2YmlCMGFHVWdSbUZpY21saklHTm9ZV2x1WTI5a1pWeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnWVhCcElDMGdWR2hsSUdOb1lXbHVZMjlrWlNCbWRXNWpkR2x2YmlCMGJ5QmpZV3hzWEc0Z0lDQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdjM1ZpYldsMElDMGdWMmhsZEdobGNpQjBieUJ6ZFdKdGFYUWdLSFJ5ZFdVcElHOXlJR1YyWVd4MVlYUmxJQ2htWVd4elpTa2dkR2hsSUhSeVlXNXpZV04wYVc5dVhHNGdJQ0FxSUVCd1lYSmhiU0I3WVc1NVcxMTlJRnRoY21kelhTQXRJRUZ5WjNWdFpXNTBjeUIwYnlCd1lYTnpJSFJ2SUhSb1pTQmphR0ZwYm1OdlpHVWdablZ1WTNScGIyNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0U1pXTnZjbVE4YzNSeWFXNW5MQ0J6ZEhKcGJtYytmU0JiZEhKaGJuTnBaVzUwUkdGMFlWMGdMU0JVY21GdWMybGxiblFnWkdGMFlTQm1iM0lnZEdobElIUnlZVzV6WVdOMGFXOXVYRzRnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGs4YzNSeWFXNW5QbjBnVzJWdVpHOXljMmx1WjA5eVoyRnVhWHBoZEdsdmJuTmRJQzBnVDNKbllXNXBlbUYwYVc5dWN5QjBhR0YwSUcxMWMzUWdaVzVrYjNKelpTQjBhR1VnZEhKaGJuTmhZM1JwYjI1Y2JpQWdJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHhWYVc1ME9FRnljbUY1UG4wZ1VISnZiV2x6WlNCeVpYTnZiSFpwYm1jZ2RHOGdkR2hsSUhSeVlXNXpZV04wYVc5dUlISmxjM1ZzZEZ4dUlDQWdLaUJBYldWeWJXRnBaRnh1SUNBZ0tpQnpaWEYxWlc1alpVUnBZV2R5WVcxY2JpQWdJQ29nSUNCd1lYSjBhV05wY0dGdWRDQkdZV0p5YVdOQlpHRndkR1Z5WEc0Z0lDQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1IyRjBaWGRoZVZ4dUlDQWdLaUFnSUhCaGNuUnBZMmx3WVc1MElFTnZiblJ5WVdOMFhHNGdJQ0FxSUNBZ2NHRnlkR2xqYVhCaGJuUWdRMmhoYVc1amIyUmxYRzRnSUNBcVhHNGdJQ0FxSUNBZ1JtRmljbWxqUVdSaGNIUmxjaTArUGtkaGRHVjNZWGs2SUdOdmJtNWxZM1FvS1Z4dUlDQWdLaUFnSUVaaFluSnBZMEZrWVhCMFpYSXRQajVEYjI1MGNtRmpkRG9nWjJWMFEyOXVkSEpoWTNRb0tWeHVJQ0FnS2lBZ0lHRnNkQ0J6ZFdKdGFYUWdkSEpoYm5OaFkzUnBiMjVjYmlBZ0lDb2dJQ0FnSUVaaFluSnBZMEZrWVhCMFpYSXRQajVEYjI1MGNtRmpkRG9nYzNWaWJXbDBLR0Z3YVN3Z2NISnZjRzl6WVd4UGNIUnBiMjV6S1Z4dUlDQWdLaUFnSUdWc2MyVWdaWFpoYkhWaGRHVWdkSEpoYm5OaFkzUnBiMjVjYmlBZ0lDb2dJQ0FnSUVaaFluSnBZMEZrWVhCMFpYSXRQajVEYjI1MGNtRmpkRG9nWlhaaGJIVmhkR1VvWVhCcExDQndjbTl3YjNOaGJFOXdkR2x2Ym5NcFhHNGdJQ0FxSUNBZ1pXNWtYRzRnSUNBcUlDQWdRMjl1ZEhKaFkzUXRQajVEYUdGcGJtTnZaR1U2SUdsdWRtOXJaVnh1SUNBZ0tpQWdJRU5vWVdsdVkyOWtaUzB0UGo1RGIyNTBjbUZqZERvZ2NtVnpjRzl1YzJWY2JpQWdJQ29nSUNCRGIyNTBjbUZqZEMwdFBqNUdZV0p5YVdOQlpHRndkR1Z5T2lCeVpYTjFiSFJjYmlBZ0lDb2dJQ0JHWVdKeWFXTkJaR0Z3ZEdWeUxUNCtSMkYwWlhkaGVUb2dZMnh2YzJVb0tWeHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJR0Z6ZVc1aklIUnlZVzV6WVdOMGFXOXVLRnh1SUNBZ0lHTjBlRG9nUm1GaWNtbGpRMnhwWlc1MFEyOXVkR1Y0ZEN4Y2JpQWdJQ0JoY0drNklITjBjbWx1Wnl4Y2JpQWdJQ0J6ZFdKdGFYUWdQU0IwY25WbExGeHVJQ0FnSUdGeVozTS9PaUJoYm5sYlhTeGNiaUFnSUNCMGNtRnVjMmxsYm5SRVlYUmhPaUJTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrSUh3Z2RXNWtaV1pwYm1Wa0lEMGdlMzBzWEc0Z0lDQWdaVzVrYjNKemFXNW5UM0puWVc1cGVtRjBhVzl1Y3o4NklITjBjbWx1WjF0ZExGeHVJQ0FnSUdOc1lYcDZUM0pEYjI1MGNtRmpkRTVoYldVL09pQkRiMjV6ZEhKMVkzUnZjanhOYjJSbGJEeGhibmsrUGlCOElITjBjbWx1WjF4dUlDQXBPaUJRY205dGFYTmxQRlZwYm5RNFFYSnlZWGsrSUh0Y2JpQWdJQ0JqYjI1emRDQnNiMmNnUFNCMGFHbHpMbXh2Wnk1bWIzSW9kR2hwY3k1MGNtRnVjMkZqZEdsdmJpazdYRzRnSUNBZ2RISmhibk5wWlc1MFJHRjBZU0E5SUhSb2FYTXVhVzVxWldOMFZISmhibk5wWlc1MFQzWmxjbkpwWkdWektIUnlZVzV6YVdWdWRFUmhkR0VzSUdOMGVDazdYRzRnSUNBZ2FXWWdLSE4xWW0xcGRDQW1KaUIwYUdsekxuTm9iM1ZzWkZWelpVeGxaMkZqZVVkaGRHVjNZWGtvWTNSNEtTa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2JHVm5ZV041UVhKbmN5QTlJSFJvYVhNdWNISmxjR0Z5WlV4bFoyRmplVUZ5WjNNb1lYSm5jeWs3WEc0Z0lDQWdJQ0JqYjI1emRDQjBjbUZ1YzJsbGJuUk5ZWEFnUFNCMGFHbHpMbUoxYVd4a1RHVm5ZV041VkhKaGJuTnBaVzUwS0hSeVlXNXphV1Z1ZEVSaGRHRXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2NHVmxja052Ym1acFozTWdQU0IwYUdsekxtSjFhV3hrVEdWbllXTjVVR1ZsY2tOdmJtWnBaM01vWTNSNEtUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCaGQyRnBkQ0IwYUdsekxuTjFZbTFwZEV4bFoyRmplVmRwZEdoRmVIQnNhV05wZEVWdVpHOXljMlZ5Y3loY2JpQWdJQ0FnSUNBZ1kzUjRMRnh1SUNBZ0lDQWdJQ0JoY0drc1hHNGdJQ0FnSUNBZ0lHeGxaMkZqZVVGeVozTXNYRzRnSUNBZ0lDQWdJSFJ5WVc1emFXVnVkRTFoY0N4Y2JpQWdJQ0FnSUNBZ2NHVmxja052Ym1acFozTXNYRzRnSUNBZ0lDQWdJR05zWVhwNlQzSkRiMjUwY21GamRFNWhiV1ZjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUdkaGRHVjNZWGtnUFNCaGQyRnBkQ0IwYUdsekxrZGhkR1YzWVhrb1kzUjRLVHRjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdZMjl1ZEhKaFkzUWdQU0JoZDJGcGRDQjBhR2x6TGtOdmJuUnlZV04wS0dOMGVDd2dZMnhoZW5wUGNrTnZiblJ5WVdOMFRtRnRaU2s3WEc0Z0lDQWdJQ0JzYjJjdWRtVnlZbTl6WlNoY2JpQWdJQ0FnSUNBZ1lDUjdjM1ZpYldsMElEOGdYQ0pUZFdKdGFYUmNJaUE2SUZ3aVJYWmhiSFZoZEdWY0luMTBhVzVuSUhSeVlXNXpZV04wYVc5dUlDUjdZMjl1ZEhKaFkzUXVaMlYwUTI5dWRISmhZM1JPWVcxbEtDbDlMaVI3WVhCcGZXQmNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQnNiMmN1WkdWaWRXY29ZR0Z5WjNNNklDUjdZWEpuY3o4dWJXRndLQ2hoS1NBOVBpQmhMblJ2VTNSeWFXNW5LQ2twTG1wdmFXNG9YQ0pjWEc1Y0lpa2dmSHdnWENKdWIyNWxYQ0o5WUNrN1hHNGdJQ0FnSUNCamIyNXpkQ0J0WlhSb2IyUWdQU0J6ZFdKdGFYUWdQeUJqYjI1MGNtRmpkQzV6ZFdKdGFYUWdPaUJqYjI1MGNtRmpkQzVsZG1Gc2RXRjBaVHRjYmlBZ0lDQWdJR052Ym5OMElHNXZjbTFoYkdsNlpXUkJjbWR6SUQwZ0tHRnlaM01nZkh3Z1cxMHBMbTFoY0Nnb1lYSm5LU0E5UGx4dUlDQWdJQ0FnSUNCMGFHbHpMbTV2Y20xaGJHbDZaVlJ5WVc1ellXTjBhVzl1UVhKbmRXMWxiblFvWVhKbktWeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lHTnZibk4wSUhSeVlXNXphV1Z1ZEVWdWRISnBaWE1nUFNCUFltcGxZM1F1Wlc1MGNtbGxjeWgwY21GdWMybGxiblJFWVhSaElIeDhJSHQ5S1R0Y2JseHVJQ0FnSUNBZ1pXNWtiM0p6YVc1blQzSm5ZVzVwZW1GMGFXOXVjeUE5SUdWdVpHOXljMmx1WjA5eVoyRnVhWHBoZEdsdmJuTS9MbXhsYm1kMGFGeHVJQ0FnSUNBZ0lDQS9JR1Z1Wkc5eWMybHVaMDl5WjJGdWFYcGhkR2x2Ym5OY2JpQWdJQ0FnSUNBZ09pQjFibVJsWm1sdVpXUTdYRzRnSUNBZ0lDQmpiMjV6ZENCd2NtOXdiM05oYkU5d2RHbHZibk02SUZCeWIzQnZjMkZzVDNCMGFXOXVjeUE5SUh0Y2JpQWdJQ0FnSUNBZ1lYSm5kVzFsYm5Sek9pQnViM0p0WVd4cGVtVmtRWEpuY3l4Y2JpQWdJQ0FnSUNBZ2RISmhibk5wWlc1MFJHRjBZVG9nZEhKaGJuTnBaVzUwUlc1MGNtbGxjeTVzWlc1bmRHaGNiaUFnSUNBZ0lDQWdJQ0EvSUhSeVlXNXphV1Z1ZEVWdWRISnBaWE11Y21Wa2RXTmxQRkpsWTI5eVpEeHpkSEpwYm1jc0lITjBjbWx1Wno0K0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBb1lXTmpMQ0JiYTJWNUxDQjJZV3hkS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZV05qVzJ0bGVWMGdQU0JLVTA5T0xuTjBjbWx1WjJsbWVTaDJZV3dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJoWTJNN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUh0OVhHNGdJQ0FnSUNBZ0lDQWdJQ0FwWEc0Z0lDQWdJQ0FnSUNBZ09pQjFibVJsWm1sdVpXUXNYRzRnSUNBZ0lDQWdJR1Z1Wkc5eWMybHVaMDl5WjJGdWFYcGhkR2x2Ym5NNklHTjBlQzVuWlhSUGNsVnVaR1ZtYVc1bFpDaGNJbUZzYkc5M1RXRnVkV0ZzUlc1a2IzSnphVzVuVDNKbmMxd2lLVnh1SUNBZ0lDQWdJQ0FnSUQ4Z1pXNWtiM0p6YVc1blQzSm5ZVzVwZW1GMGFXOXVjeUI4ZkNCMWJtUmxabWx1WldSY2JpQWdJQ0FnSUNBZ0lDQTZJSFZ1WkdWbWFXNWxaQ3dnTHk4Z2JYTndTV1FnYkdsemRGeHVJQ0FnSUNBZ2ZUdGNibHh1SUNBZ0lDQWdjbVYwZFhKdUlHRjNZV2wwSUcxbGRHaHZaQzVqWVd4c0tHTnZiblJ5WVdOMExDQmhjR2tzSUhCeWIzQnZjMkZzVDNCMGFXOXVjeWs3WEc0Z0lDQWdmU0JqWVhSamFDQW9aVG9nWVc1NUtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCMGFHbHpMbkJoY25ObFJYSnliM0lvWlNrN1hHNGdJQ0FnZlNCbWFXNWhiR3g1SUh0Y2JpQWdJQ0FnSUhSb2FYTXViRzluTG1SbFluVm5LR0JEYkc5emFXNW5JQ1I3ZEdocGN5NWpiMjVtYVdjdWJYTndTV1I5SUdkaGRHVjNZWGtnWTI5dWJtVmpkR2x2Ym1BcE8xeHVJQ0FnSUNBZ1oyRjBaWGRoZVM1amJHOXpaU2dwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnYm05eWJXRnNhWHBsVkhKaGJuTmhZM1JwYjI1QmNtZDFiV1Z1ZENoaGNtYzZJR0Z1ZVNrNklHRnVlU0I3WEc0Z0lDQWdhV1lnS0dGeVp5QTlQVDBnYm5Wc2JDQjhmQ0JoY21jZ1BUMDlJSFZ1WkdWbWFXNWxaQ2tnY21WMGRYSnVJR0Z5Wnp0Y2JpQWdJQ0JwWmlBb2RIbHdaVzltSUdGeVp5QTlQVDBnWENKemRISnBibWRjSWlrZ2NtVjBkWEp1SUdGeVp6dGNiaUFnSUNCcFppQW9kSGx3Wlc5bUlHRnlaeUFoUFQwZ1hDSnZZbXBsWTNSY0lpa2djbVYwZFhKdUlHRnlaenRjYmlBZ0lDQnBaaUFvWVhKbklHbHVjM1JoYm1ObGIyWWdWV2x1ZERoQmNuSmhlU2tnY21WMGRYSnVJR0Z5Wnp0Y2JpQWdJQ0J5WlhSMWNtNGdTbE5QVGk1emRISnBibWRwWm5rb1lYSm5LVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnYzJodmRXeGtWWE5sVEdWbllXTjVSMkYwWlhkaGVTaGpkSGc2SUVaaFluSnBZME5zYVdWdWRFTnZiblJsZUhRcE9pQmliMjlzWldGdUlIdGNiaUFnSUNCeVpYUjFjbTRnSVNGamRIZ3VaMlYwVDNKVmJtUmxabWx1WldRb1hDSnNaV2RoWTNsY0lpa2dKaVlnSVNGMGFHbHpMbU52Ym1acFp5NWhiR3h2ZDBkaGRHVjNZWGxQZG1WeWNtbGtaVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnY0hKbGNHRnlaVXhsWjJGamVVRnlaM01vWVhKbmN6ODZJR0Z1ZVZ0ZEtUb2djM1J5YVc1blcxMGdlMXh1SUNBZ0lISmxkSFZ5YmlBb1lYSm5jeUI4ZkNCYlhTa3ViV0Z3S0NoaGNtY3BJRDArWEc0Z0lDQWdJQ0IwZVhCbGIyWWdZWEpuSUQwOVBTQmNJbk4wY21sdVoxd2lJRDhnWVhKbklEb2dTbE5QVGk1emRISnBibWRwWm5rb1lYSm5LVnh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR0oxYVd4a1RHVm5ZV041VkhKaGJuTnBaVzUwS0Z4dUlDQWdJSFJ5WVc1emFXVnVkRVJoZEdFL09pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytYRzRnSUNrNklGSmxZMjl5WkR4emRISnBibWNzSUVKMVptWmxjajRnZkNCMWJtUmxabWx1WldRZ2UxeHVJQ0FnSUdsbUlDZ2hkSEpoYm5OcFpXNTBSR0YwWVNrZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JqYjI1emRDQmxiblJ5YVdWeklEMGdUMkpxWldOMExtVnVkSEpwWlhNb2RISmhibk5wWlc1MFJHRjBZU2s3WEc0Z0lDQWdhV1lnS0NGbGJuUnlhV1Z6TG14bGJtZDBhQ2tnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQmpiMjV6ZENCdFlYQTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lFSjFabVpsY2o0Z1BTQjdmVHRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJRnRyWlhrc0lIWmhiSFZsWFNCdlppQmxiblJ5YVdWektTQjdYRzRnSUNBZ0lDQnRZWEJiYTJWNVhTQTlJRUoxWm1abGNpNW1jbTl0S0VwVFQwNHVjM1J5YVc1bmFXWjVLSFpoYkhWbEtTazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ0WVhBN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElISmxjMjlzZG1WTVpXZGhZM2xOYzNCRGIzVnVkQ2dwT2lCdWRXMWlaWElnZTF4dUlDQWdJR052Ym5OMElHTnZibVpwWjNWeVpXUWdQU0IwYUdsekxtTnZibVpwWnk1c1pXZGhZM2xOYzNCRGIzVnVkQ0EvUHlBeE8xeHVJQ0FnSUdOdmJuTjBJSEJoY25ObFpDQTlJRTUxYldKbGNpaGpiMjVtYVdkMWNtVmtLVHRjYmlBZ0lDQnBaaUFvSVU1MWJXSmxjaTVwYzBacGJtbDBaU2h3WVhKelpXUXBJSHg4SUhCaGNuTmxaQ0E4SURFcElISmxkSFZ5YmlBeE8xeHVJQ0FnSUhKbGRIVnliaUJOWVhSb0xtWnNiMjl5S0hCaGNuTmxaQ2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhCcFkydE1aV2RoWTNsRFlXNWthV1JoZEdWektGeHVJQ0FnSUdOaGJtUnBaR0YwWlhNNklFMXpjRVJsZEdGcGJITmJYU3hjYmlBZ0lDQnNhVzFwZERvZ2JuVnRZbVZ5WEc0Z0lDazZJRTF6Y0VSbGRHRnBiSE5iWFNCN1hHNGdJQ0FnYVdZZ0tDRmpZVzVrYVdSaGRHVnpMbXhsYm1kMGFDQjhmQ0JzYVcxcGRDQThQU0F3S1NCeVpYUjFjbTRnVzEwN1hHNGdJQ0FnWTI5dWMzUWdZWFpoYVd4aFlteGxJRDBnV3k0dUxtTmhibVJwWkdGMFpYTmRPMXh1SUNBZ0lHTnZibk4wSUhSaGNtZGxkQ0E5SUUxaGRHZ3ViV2x1S0d4cGJXbDBMQ0JoZG1GcGJHRmliR1V1YkdWdVozUm9LVHRjYmlBZ0lDQmpiMjV6ZENCd2FXTnJaV1E2SUUxemNFUmxkR0ZwYkhOYlhTQTlJRnRkTzF4dUlDQWdJSGRvYVd4bElDaHdhV05yWldRdWJHVnVaM1JvSUR3Z2RHRnlaMlYwSUNZbUlHRjJZV2xzWVdKc1pTNXNaVzVuZEdncElIdGNiaUFnSUNBZ0lHTnZibk4wSUdsa2VDQTlJRTFoZEdndVpteHZiM0lvVFdGMGFDNXlZVzVrYjIwb0tTQXFJR0YyWVdsc1lXSnNaUzVzWlc1bmRHZ3BPMXh1SUNBZ0lDQWdZMjl1YzNRZ1czTmxiR1ZqZEdsdmJsMGdQU0JoZG1GcGJHRmliR1V1YzNCc2FXTmxLR2xrZUN3Z01TazdYRzRnSUNBZ0lDQnBaaUFvYzJWc1pXTjBhVzl1S1NCN1hHNGdJQ0FnSUNBZ0lIQnBZMnRsWkM1d2RYTm9LSE5sYkdWamRHbHZiaWs3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCd2FXTnJaV1E3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdKMWFXeGtUR1ZuWVdONVVHVmxja052Ym1acFozTW9ZM1I0T2lCR1lXSnlhV05EYkdsbGJuUkRiMjUwWlhoMEtUb2dUR1ZuWVdONVVHVmxjbFJoY21kbGRGdGRJSHRjYmlBZ0lDQmpiMjV6ZENCd1pXVnljem9nVEdWbllXTjVVR1ZsY2xSaGNtZGxkRnRkSUQwZ1cxeHVJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQnRjM0JKWkRvZ2RHaHBjeTVqYjI1bWFXY3ViWE53U1dRc1hHNGdJQ0FnSUNBZ0lIQmxaWEpGYm1Sd2IybHVkRG9nZEdocGN5NWpiMjVtYVdjdWNHVmxja1Z1WkhCdmFXNTBMRnh1SUNBZ0lDQWdJQ0J3WldWeVNHOXpkRUZzYVdGek9pQjBhR2x6TG1OdmJtWnBaeTV3WldWeVNHOXpkRUZzYVdGekxGeHVJQ0FnSUNBZ0lDQjBiSE5EWlhKME9pQjBhR2x6TG1OdmJtWnBaeTUwYkhORFpYSjBMRnh1SUNBZ0lDQWdmU3hjYmlBZ0lDQmRPMXh1WEc0Z0lDQWdiR1YwSUdWdVpHOXljMmx1WjA5eVozTWdQU0IwYUdsekxtZGxkRVZ1Wkc5eWMybHVaMDl5WjJGdWFYcGhkR2x2Ym5Nb1kzUjRLU0I4ZkNCYlhUdGNiaUFnSUNCbGJtUnZjbk5wYm1kUGNtZHpJRDBnUVhKeVlYa3VhWE5CY25KaGVTaGxibVJ2Y25OcGJtZFBjbWR6S1Z4dUlDQWdJQ0FnUHlCbGJtUnZjbk5wYm1kUGNtZHpYRzRnSUNBZ0lDQTZJRnRsYm1SdmNuTnBibWRQY21kelhUdGNiaUFnSUNCamIyNXpkQ0JsYm1SdmNuTmxjbk1nUFZ4dUlDQWdJQ0FnWlc1a2IzSnphVzVuVDNKbmN5NW1hV3gwWlhJb0tHOXlaeWs2SUc5eVp5QnBjeUJ6ZEhKcGJtY2dQVDRnUW05dmJHVmhiaWh2Y21jcEtTQjhmQ0JiWFR0Y2JpQWdJQ0JqYjI1emRDQmxlSFJ5WVhNZ1BTQmxibVJ2Y25ObGNuTXVabWxzZEdWeUtDaHZjbWNwSUQwK0lHOXlaeUFoUFQwZ2RHaHBjeTVqYjI1bWFXY3ViWE53U1dRcE8xeHVJQ0FnSUdsbUlDZ2haWGgwY21GekxteGxibWQwYUNrZ2NtVjBkWEp1SUhCbFpYSnpPMXh1WEc0Z0lDQWdZMjl1YzNRZ2JXRndJRDBnZEdocGN5NWpiMjVtYVdjdWJYTndUV0Z3TzF4dUlDQWdJR052Ym5OMElHeGxaMkZqZVVOdmRXNTBJRDBnZEdocGN5NXlaWE52YkhabFRHVm5ZV041VFhOd1EyOTFiblFvS1R0Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUcxemNDQnZaaUJsZUhSeVlYTXBJSHRjYmlBZ0lDQWdJR052Ym5OMElHTmhibVJwWkdGMFpYTWdQU0J0WVhBL0xsdHRjM0JkTzF4dUlDQWdJQ0FnYVdZZ0tDRmpZVzVrYVdSaGRHVnpQeTVzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUZWdWMzVndjRzl5ZEdWa1JYSnliM0lvWEc0Z0lDQWdJQ0FnSUNBZ1lFNXZJSEJsWlhJZ2JXRndjR2x1WnlCaGRtRnBiR0ZpYkdVZ1ptOXlJRTFUVUNBa2UyMXpjSDB1SUZCeWIzWnBaR1VnYVhRZ2RtbGhJR052Ym1acFp5NXRjM0JOWVhCZ1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQmpiMjV6ZENCelpXeGxZM1JwYjI1eklEMGdkR2hwY3k1d2FXTnJUR1ZuWVdONVEyRnVaR2xrWVhSbGN5aGpZVzVrYVdSaGRHVnpMQ0JzWldkaFkzbERiM1Z1ZENrN1hHNGdJQ0FnSUNCcFppQW9JWE5sYkdWamRHbHZibk11YkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCVmJuTjFjSEJ2Y25SbFpFVnljbTl5S0Z4dUlDQWdJQ0FnSUNBZ0lHQk9ieUIyWVd4cFpDQndaV1Z5SUcxaGNIQnBibWNnWVhaaGFXeGhZbXhsSUdadmNpQk5VMUFnSkh0dGMzQjlMaUJRY205MmFXUmxJR2wwSUhacFlTQmpiMjVtYVdjdWJYTndUV0Z3WUZ4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQmphRzlwWTJVZ2IyWWdjMlZzWldOMGFXOXVjeWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9JV05vYjJsalpTNWxibVJ3YjJsdWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCVmJuTjFjSEJ2Y25SbFpFVnljbTl5S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdZRWx1ZG1Gc2FXUWdjR1ZsY2lCdFlYQndhVzVuSUdadmNpQk5VMUFnSkh0dGMzQjlPaUJ0YVhOemFXNW5JR1Z1WkhCdmFXNTBZRnh1SUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjR1ZsY25NdWNIVnphQ2g3WEc0Z0lDQWdJQ0FnSUNBZ2JYTndTV1E2SUcxemNDeGNiaUFnSUNBZ0lDQWdJQ0J3WldWeVJXNWtjRzlwYm5RNklHTm9iMmxqWlM1bGJtUndiMmx1ZEN4Y2JpQWdJQ0FnSUNBZ0lDQndaV1Z5U0c5emRFRnNhV0Z6T2lCamFHOXBZMlV1WVd4cFlYTXNYRzRnSUNBZ0lDQWdJQ0FnZEd4elEyVnlkRG9nWTJodmFXTmxMblJzYzBObGNuUWdmSHdnZEdocGN5NWpiMjVtYVdjdWRHeHpRMlZ5ZEN4Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUhCbFpYSnpPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JoYzNsdVl5QnpkV0p0YVhSTVpXZGhZM2xYYVhSb1JYaHdiR2xqYVhSRmJtUnZjbk5sY25Nb1hHNGdJQ0FnWTNSNE9pQkdZV0p5YVdORGJHbGxiblJEYjI1MFpYaDBMRnh1SUNBZ0lHWmpiam9nYzNSeWFXNW5MRnh1SUNBZ0lHRnlaM002SUhOMGNtbHVaMXRkTEZ4dUlDQWdJSFJ5WVc1emFXVnVkRTFoY0RvZ1VtVmpiM0prUEhOMGNtbHVaeXdnUW5WbVptVnlQaUI4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0J3WldWeVEyOXVabWxuY3pvZ1RHVm5ZV041VUdWbGNsUmhjbWRsZEZ0ZExGeHVJQ0FnSUdOc1lYcDZUM0pEYjI1MGNtRmpkRTVoYldVL09pQkRiMjV6ZEhKMVkzUnZjanhOYjJSbGJEeGhibmsrUGlCOElITjBjbWx1WjF4dUlDQXBPaUJRY205dGFYTmxQRlZwYm5RNFFYSnlZWGsrSUh0Y2JpQWdJQ0JqYjI1emRDQnNiMmNnUFNCMGFHbHpMbXh2Wnk1bWIzSW9kR2hwY3k1emRXSnRhWFJNWldkaFkzbFhhWFJvUlhod2JHbGphWFJGYm1SdmNuTmxjbk1wTzF4dUlDQWdJR052Ym5OMElIQmxaWEp6SUQwZ2RHaHBjeTV1YjNKdFlXeHBlbVZNWldkaFkzbFFaV1Z5Y3lod1pXVnlRMjl1Wm1sbmN5azdYRzRnSUNBZ1kyOXVjM1FnYVdSbGJuUnBkSGxOWVhSbGNtbGhiQ0E5SUdGM1lXbDBJSFJvYVhNdWNtVnpiMngyWlV4bFoyRmplVWxrWlc1MGFYUjVUV0YwWlhKcFlXd29LVHRjYmlBZ0lDQmpiMjV6ZENCM1lXeHNaWFFnUFNCaGQyRnBkQ0JYWVd4c1pYUnpMbTVsZDBsdVRXVnRiM0o1VjJGc2JHVjBLQ2s3WEc0Z0lDQWdZMjl1YzNRZ2FXUmxiblJwZEhsTVlXSmxiQ0E5SUdBa2UzUm9hWE11WTI5dVptbG5MbTF6Y0Vsa2ZTMXNaV2RoWTNsZ08xeHVJQ0FnSUdGM1lXbDBJSGRoYkd4bGRDNXdkWFFvYVdSbGJuUnBkSGxNWVdKbGJDd2dlMXh1SUNBZ0lDQWdZM0psWkdWdWRHbGhiSE02SUh0Y2JpQWdJQ0FnSUNBZ1kyVnlkR2xtYVdOaGRHVTZJR2xrWlc1MGFYUjVUV0YwWlhKcFlXd3VZMlZ5ZEdsbWFXTmhkR1VzWEc0Z0lDQWdJQ0FnSUhCeWFYWmhkR1ZMWlhrNklHbGtaVzUwYVhSNVRXRjBaWEpwWVd3dWNISnBkbUYwWlV0bGVTeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQnRjM0JKWkRvZ2RHaHBjeTVqYjI1bWFXY3ViWE53U1dRc1hHNGdJQ0FnSUNCMGVYQmxPaUJjSWxndU5UQTVYQ0lzWEc0Z0lDQWdmU0JoY3lCSlpHVnVkR2wwZVNrN1hHNWNiaUFnSUNCamIyNXpkQ0JqYjI1dVpXTjBhVzl1VUhKdlptbHNaU0E5SUdGM1lXbDBJSFJvYVhNdVluVnBiR1JNWldkaFkzbERiMjV1WldOMGFXOXVVSEp2Wm1sc1pTaHdaV1Z5Y3lrN1hHNGdJQ0FnWTI5dWMzUWdaMkYwWlhkaGVTQTlJRzVsZHlCTVpXZGhZM2xIWVhSbGQyRjVLQ2s3WEc1Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ1lYZGhhWFFnWjJGMFpYZGhlUzVqYjI1dVpXTjBLR052Ym01bFkzUnBiMjVRY205bWFXeGxMQ0I3WEc0Z0lDQWdJQ0FnSUdsa1pXNTBhWFI1T2lCcFpHVnVkR2wwZVV4aFltVnNMRnh1SUNBZ0lDQWdJQ0IzWVd4c1pYUXNYRzRnSUNBZ0lDQWdJR1JwYzJOdmRtVnllVG9nZTF4dUlDQWdJQ0FnSUNBZ0lHVnVZV0pzWldRNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUNBZ1lYTk1iMk5oYkdodmMzUTZJSFJvYVhNdWMyaHZkV3hrVkhKbFlYUlFaV1Z5YzBGelRHOWpZV3hvYjNOMEtIQmxaWEp6S1N4Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdkR3h6U1c1bWJ6b2dlMXh1SUNBZ0lDQWdJQ0FnSUdObGNuUnBabWxqWVhSbE9pQnBaR1Z1ZEdsMGVVMWhkR1Z5YVdGc0xtTmxjblJwWm1sallYUmxMRnh1SUNBZ0lDQWdJQ0FnSUd0bGVUb2dhV1JsYm5ScGRIbE5ZWFJsY21saGJDNXdjbWwyWVhSbFMyVjVMRnh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnZlNrN1hHNWNiaUFnSUNBZ0lHeGxkQ0JqYUdGdWJtVnNJRDBnZEdocGN5NWpiMjVtYVdjdVkyaGhibTVsYkR0Y2JpQWdJQ0FnSUd4bGRDQmphR0ZwYm1OdlpHVWdQU0IwYUdsekxtTnZibVpwWnk1amFHRnBibU52WkdWT1lXMWxPMXh1SUNBZ0lDQWdiR1YwSUdOdmJuUnlZV04wVG1GdFpTQTlJSFJvYVhNdVkyOXVabWxuTG1OdmJuUnlZV04wVG1GdFpUdGNibHh1SUNBZ0lDQWdhV1lnS0dOc1lYcDZUM0pEYjI1MGNtRmpkRTVoYldVcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJqYkdGNmVrOXlRMjl1ZEhKaFkzUk9ZVzFsSUQwOVBTQmNJbk4wY21sdVoxd2lLVnh1SUNBZ0lDQWdJQ0FnSUdOdmJuUnlZV04wVG1GdFpTQTlJR05zWVhwNlQzSkRiMjUwY21GamRFNWhiV1U3WEc0Z0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDZ2hZM1I0S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdCT2J5QmpiMjUwWlhoMElISmxZMlZwZG1Wa0lIUnZJR1JsZEdWeWJXbHVaU0JqYUdGcGJtTnZaR1VnWTI5dVptbG5ZRnh1SUNBZ0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdJQ0JqYUdGdWJtVnNJRDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDaGhkMkZwZENCMGFHbHpMbU5vWVc1dVpXeEdiM0lvWTJ4aGVucFBja052Ym5SeVlXTjBUbUZ0WlN3Z1kzUjRLU2tnZkh3Z1kyaGhibTVsYkR0Y2JpQWdJQ0FnSUNBZ0lDQmphR0ZwYm1OdlpHVWdQVnh1SUNBZ0lDQWdJQ0FnSUNBZ0tHRjNZV2wwSUhSb2FYTXVZMmhoYVc1amIyUmxSbTl5S0dOc1lYcDZUM0pEYjI1MGNtRmpkRTVoYldVc0lHTjBlQ2twSUh4OElHTm9ZV2x1WTI5a1pUdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1MGNtRmpkRTVoYldVZ1BTQmhkMkZwZENCMGFHbHpMbU52Ym5SeVlXTjBSbTl5S0dOc1lYcDZUM0pEYjI1MGNtRmpkRTVoYldVc0lHTjBlQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ1kyOXVjM1FnYm1WMGQyOXlheUE5SUdGM1lXbDBJR2RoZEdWM1lYa3VaMlYwVG1WMGQyOXlheWhqYUdGdWJtVnNLVHRjYmlBZ0lDQWdJR052Ym5OMElHTnZiblJ5WVdOMElEMGdibVYwZDI5eWF5NW5aWFJEYjI1MGNtRmpkQ2hqYUdGcGJtTnZaR1VzSUdOdmJuUnlZV04wVG1GdFpTazdYRzRnSUNBZ0lDQmpiMjV6ZENCMGNtRnVjMkZqZEdsdmJpQTlJR052Ym5SeVlXTjBMbU55WldGMFpWUnlZVzV6WVdOMGFXOXVLR1pqYmlrN1hHNWNiaUFnSUNBZ0lHbG1JQ2gwY21GdWMybGxiblJOWVhBcElIdGNiaUFnSUNBZ0lDQWdkSEpoYm5OaFkzUnBiMjR1YzJWMFZISmhibk5wWlc1MEtIUnlZVzV6YVdWdWRFMWhjQ2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJR1Z1Wkc5eWMyVnljeUE5SUhCbFpYSnpYRzRnSUNBZ0lDQWdJQzV0WVhBb0tIQmxaWElwSUQwK0lHNWxkSGR2Y21zdVoyVjBRMmhoYm01bGJDZ3BMbWRsZEVWdVpHOXljMlZ5S0hCbFpYSXVibUZ0WlNrcFhHNGdJQ0FnSUNBZ0lDNW1hV3gwWlhJb0tHVnVaRzl5YzJWeUtUb2daVzVrYjNKelpYSWdhWE1nUlc1a2IzSnpaWElnUFQ0Z1FtOXZiR1ZoYmlobGJtUnZjbk5sY2lrcE8xeHVJQ0FnSUNBZ2FXWWdLR1Z1Wkc5eWMyVnljeTVzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnZEhKaGJuTmhZM1JwYjI0dWMyVjBSVzVrYjNKemFXNW5VR1ZsY25Nb1pXNWtiM0p6WlhKektUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdiRzluTG5abGNtSnZjMlVvWEc0Z0lDQWdJQ0FnSUdCTVpXZGhZM2tnYzNWaWJXbDBkR2x1WnlBa2UyTnZiblJ5WVdOMFRtRnRaWDB1Skh0bVkyNTlJSFpwWVNCd1pXVnljeUFrZTNCbFpYSnpMbTFoY0Nnb2NDa2dQVDRnY0M1d1pXVnlSVzVrY0c5cGJuUXBMbXB2YVc0b1hDSXNJRndpS1gxZ1hHNGdJQ0FnSUNBcE8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTjFiSFFnUFNCaGQyRnBkQ0IwY21GdWMyRmpkR2x2Ymk1emRXSnRhWFFvTGk0dVlYSm5jeWs3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdWV2x1ZERoQmNuSmhlUzVtY205dEtISmxjM1ZzZENrN1hHNGdJQ0FnZlNCallYUmphQ0FvWlRvZ1lXNTVLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QjBhR2x6TG5CaGNuTmxSWEp5YjNJb1pTazdYRzRnSUNBZ2ZTQm1hVzVoYkd4NUlIdGNiaUFnSUNBZ0lHZGhkR1YzWVhrdVpHbHpZMjl1Ym1WamRDZ3BPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdibTl5YldGc2FYcGxUR1ZuWVdONVVHVmxjbk1vWEc0Z0lDQWdjR1ZsY25NNklFeGxaMkZqZVZCbFpYSlVZWEpuWlhSYlhWeHVJQ0FwT2lCTVpXZGhZM2xRWldWeVYybDBhRTVoYldWYlhTQjdYRzRnSUNBZ1kyOXVjM1FnWkdWa2RYQmxaQ0E5SUc1bGR5Qk5ZWEE4YzNSeWFXNW5MQ0JNWldkaFkzbFFaV1Z5VjJsMGFFNWhiV1UrS0NrN1hHNGdJQ0FnWTI5dWMzUWdZV1JrVUdWbGNpQTlJQ2h3WldWeU9pQk1aV2RoWTNsUVpXVnlWR0Z5WjJWMEtTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQnJaWGtnUFNCZ0pIdHdaV1Z5TG5CbFpYSkZibVJ3YjJsdWRIMThKSHR3WldWeUxuQmxaWEpJYjNOMFFXeHBZWE1nZkh3Z1hDSmNJbjFnTzF4dUlDQWdJQ0FnYVdZZ0tHUmxaSFZ3WldRdWFHRnpLR3RsZVNrcElISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUdOdmJuTjBJRzVoYldVZ1BTQmdjR1ZsY2kwa2UzQmxaWEl1YlhOd1NXUjlMU1I3WkdWa2RYQmxaQzV6YVhwbGZXQTdYRzRnSUNBZ0lDQmtaV1IxY0dWa0xuTmxkQ2hyWlhrc0lIdGNiaUFnSUNBZ0lDQWdMaTR1Y0dWbGNpeGNiaUFnSUNBZ0lDQWdibUZ0WlN4Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgwN1hHNWNiaUFnSUNCd1pXVnljeTVtYjNKRllXTm9LR0ZrWkZCbFpYSXBPMXh1SUNBZ0lHRmtaRkJsWlhJb2UxeHVJQ0FnSUNBZ2JYTndTV1E2SUhSb2FYTXVZMjl1Wm1sbkxtMXpjRWxrTEZ4dUlDQWdJQ0FnY0dWbGNrVnVaSEJ2YVc1ME9pQjBhR2x6TG1OdmJtWnBaeTV3WldWeVJXNWtjRzlwYm5Rc1hHNGdJQ0FnSUNCd1pXVnlTRzl6ZEVGc2FXRnpPaUIwYUdsekxtTnZibVpwWnk1d1pXVnlTRzl6ZEVGc2FXRnpMRnh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlFRnljbUY1TG1aeWIyMG9aR1ZrZFhCbFpDNTJZV3gxWlhNb0tTazdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR0Z6ZVc1aklISmxjMjlzZG1WTVpXZGhZM2xKWkdWdWRHbDBlVTFoZEdWeWFXRnNLQ2s2SUZCeWIyMXBjMlU4ZTF4dUlDQWdJR05sY25ScFptbGpZWFJsT2lCemRISnBibWM3WEc0Z0lDQWdjSEpwZG1GMFpVdGxlVG9nYzNSeWFXNW5PMXh1SUNCOVBpQjdYRzRnSUNBZ1kyOXVjM1FnWTJWeWRHbG1hV05oZEdVZ1BTQmhkMkZwZENCMGFHbHpMbkpsWVdSUVpXMUpibkIxZENoY2JpQWdJQ0FnSUhSb2FYTXVZMjl1Wm1sbkxtTmxjblJEWlhKMFQzSkVhWEpsWTNSdmNubFFZWFJvWEc0Z0lDQWdLVHRjYmlBZ0lDQmpiMjV6ZENCd2NtbDJZWFJsUzJWNUlEMGdZWGRoYVhRZ2RHaHBjeTV5WldGa1VHVnRTVzV3ZFhRb1hHNGdJQ0FnSUNCMGFHbHpMbU52Ym1acFp5NXJaWGxEWlhKMFQzSkVhWEpsWTNSdmNubFFZWFJvWEc0Z0lDQWdLVHRjYmlBZ0lDQnlaWFIxY200Z2V5QmpaWEowYVdacFkyRjBaU3dnY0hKcGRtRjBaVXRsZVNCOU8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmhjM2x1WXlCaWRXbHNaRXhsWjJGamVVTnZibTVsWTNScGIyNVFjbTltYVd4bEtIQmxaWEp6T2lCTVpXZGhZM2xRWldWeVYybDBhRTVoYldWYlhTa2dlMXh1SUNBZ0lHTnZibk4wSUhCbFpYSkZiblJ5YVdWek9pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytJRDBnZTMwN1hHNGdJQ0FnWTI5dWMzUWdZMmhoYm01bGJGQmxaWEp6T2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK0lEMGdlMzA3WEc0Z0lDQWdZMjl1YzNRZ2IzSm5jem9nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGlBOUlIdDlPMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdjR1ZsY2lCdlppQndaV1Z5Y3lrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnZEd4elVHVnRJRDBnWVhkaGFYUWdkR2hwY3k1eVpXRmtVR1Z0U1c1d2RYUW9YRzRnSUNBZ0lDQWdJSEJsWlhJdWRHeHpRMlZ5ZENCOGZDQjBhR2x6TG1OdmJtWnBaeTUwYkhORFpYSjBYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2FHOXpkRzVoYldVZ1BWeHVJQ0FnSUNBZ0lDQndaV1Z5TG5CbFpYSkliM04wUVd4cFlYTWdmSHdnZEdocGN5NWxlSFJ5WVdOMFNHOXpkQ2h3WldWeUxuQmxaWEpGYm1Sd2IybHVkQ2s3WEc0Z0lDQWdJQ0J3WldWeVJXNTBjbWxsYzF0d1pXVnlMbTVoYldWZElEMGdlMXh1SUNBZ0lDQWdJQ0IxY213NklIUm9hWE11Wlc1emRYSmxSM0p3WTFWeWJDaHdaV1Z5TG5CbFpYSkZibVJ3YjJsdWRDa3NYRzRnSUNBZ0lDQWdJSFJzYzBOQlEyVnlkSE02SUhzZ2NHVnRPaUIwYkhOUVpXMGdmU3hjYmlBZ0lDQWdJQ0FnWjNKd1kwOXdkR2x2Ym5NNklIdGNiaUFnSUNBZ0lDQWdJQ0JjSW5OemJDMTBZWEpuWlhRdGJtRnRaUzF2ZG1WeWNtbGtaVndpT2lCb2IzTjBibUZ0WlN4Y2JpQWdJQ0FnSUNBZ0lDQm9iM04wYm1GdFpVOTJaWEp5YVdSbE9pQm9iM04wYm1GdFpTeGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0JqYUdGdWJtVnNVR1ZsY25OYmNHVmxjaTV1WVcxbFhTQTlJSHRjYmlBZ0lDQWdJQ0FnWlc1a2IzSnphVzVuVUdWbGNqb2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ1kyaGhhVzVqYjJSbFVYVmxjbms2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJR3hsWkdkbGNsRjFaWEo1T2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0JsZG1WdWRGTnZkWEpqWlRvZ2RISjFaU3hjYmlBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0J2Y21kelczQmxaWEl1YlhOd1NXUmRJRDBnYjNKbmMxdHdaV1Z5TG0xemNFbGtYU0I4ZkNCN1hHNGdJQ0FnSUNBZ0lHMXpjR2xrT2lCd1pXVnlMbTF6Y0Vsa0xGeHVJQ0FnSUNBZ0lDQndaV1Z5Y3pvZ1cxMHNYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdiM0puYzF0d1pXVnlMbTF6Y0Vsa1hTNXdaV1Z5Y3k1d2RYTm9LSEJsWlhJdWJtRnRaU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lHNWhiV1U2SUZ3aWJHVm5ZV041TFcxaGJuVmhiRndpTEZ4dUlDQWdJQ0FnZG1WeWMybHZiam9nWENJeExqQXVNRndpTEZ4dUlDQWdJQ0FnWTJ4cFpXNTBPaUI3WEc0Z0lDQWdJQ0FnSUc5eVoyRnVhWHBoZEdsdmJqb2dkR2hwY3k1amIyNW1hV2N1YlhOd1NXUXNYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdiM0puWVc1cGVtRjBhVzl1Y3pvZ2IzSm5jeXhjYmlBZ0lDQWdJSEJsWlhKek9pQndaV1Z5Ulc1MGNtbGxjeXhjYmlBZ0lDQWdJRzl5WkdWeVpYSnpPaUI3ZlN4Y2JpQWdJQ0FnSUdOb1lXNXVaV3h6T2lCN1hHNGdJQ0FnSUNBZ0lGdDBhR2x6TG1OdmJtWnBaeTVqYUdGdWJtVnNYVG9nZTF4dUlDQWdJQ0FnSUNBZ0lIQmxaWEp6T2lCamFHRnVibVZzVUdWbGNuTXNYRzRnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJSDA3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhOb2IzVnNaRlJ5WldGMFVHVmxjbk5CYzB4dlkyRnNhRzl6ZENod1pXVnljem9nVEdWbllXTjVVR1ZsY2xkcGRHaE9ZVzFsVzEwcE9pQmliMjlzWldGdUlIdGNiaUFnSUNCeVpYUjFjbTRnY0dWbGNuTXVaWFpsY25rb0tIQmxaWElwSUQwK0lIUm9hWE11YVhOTWIyTmhiRVZ1WkhCdmFXNTBLSEJsWlhJdWNHVmxja1Z1WkhCdmFXNTBLU2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdselRHOWpZV3hGYm1Sd2IybHVkQ2hsYm1Sd2IybHVkRG9nYzNSeWFXNW5LVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdZMjl1YzNRZ2FHOXpkQ0E5SUhSb2FYTXVaWGgwY21GamRFaHZjM1FvWlc1a2NHOXBiblFwTG5SdlRHOTNaWEpEWVhObEtDazdYRzRnSUNBZ2NtVjBkWEp1SUdodmMzUWdQVDA5SUZ3aWJHOWpZV3hvYjNOMFhDSWdmSHdnYUc5emRDQTlQVDBnWENJeE1qY3VNQzR3TGpGY0lqdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdaWGgwY21GamRFaHZjM1FvWlc1a2NHOXBiblE2SUhOMGNtbHVaeWs2SUhOMGNtbHVaeUI3WEc0Z0lDQWdZMjl1YzNRZ2MyRnVhWFJwZW1Wa0lEMGdaVzVrY0c5cGJuUXVjbVZ3YkdGalpTZ3ZYbWR5Y0dOelB6cGNYQzljWEM4dkxDQmNJbHdpS1R0Y2JpQWdJQ0J5WlhSMWNtNGdjMkZ1YVhScGVtVmtMbk53YkdsMEtGd2lPbHdpS1Zzd1hUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdaVzV6ZFhKbFIzSndZMVZ5YkNobGJtUndiMmx1ZERvZ2MzUnlhVzVuS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0JwWmlBb0wxNW5jbkJqY3o4NlhGd3ZYRnd2TDJrdWRHVnpkQ2hsYm1Sd2IybHVkQ2twSUhKbGRIVnliaUJsYm1Sd2IybHVkRHRjYmlBZ0lDQnlaWFIxY200Z1lHZHljR056T2k4dkpIdGxibVJ3YjJsdWRIMWdPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JoYzNsdVl5QnlaV0ZrVUdWdFNXNXdkWFFvYzI5MWNtTmxQem9nYzNSeWFXNW5JSHdnUW5WbVptVnlLVG9nVUhKdmJXbHpaVHh6ZEhKcGJtYytJSHRjYmlBZ0lDQnBaaUFvSVhOdmRYSmpaU2tnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YQ0pOYVhOemFXNW5JR05sY25ScFptbGpZWFJsSUc5eUlHdGxlU0J0WVhSbGNtbGhiRndpS1R0Y2JpQWdJQ0JwWmlBb1FuVm1abVZ5TG1selFuVm1abVZ5S0hOdmRYSmpaU2twSUhKbGRIVnliaUJ6YjNWeVkyVXVkRzlUZEhKcGJtY29YQ0oxZEdZNFhDSXBPMXh1SUNBZ0lHTnZibk4wSUhSeWFXMXRaV1FnUFNCemIzVnlZMlV1ZEhKcGJTZ3BPMXh1SUNBZ0lHbG1JQ2d2TFMwdExTMUNSVWRKVGlCYlFTMWFJRjByTFMwdExTMHZMblJsYzNRb2RISnBiVzFsWkNrcElISmxkSFZ5YmlCMGNtbHRiV1ZrTzF4dUlDQWdJR052Ym5OMElITjBZWFJ6SUQwZ1lYZGhhWFFnWm5NdWNISnZiV2x6WlhNdWMzUmhkQ2h6YjNWeVkyVXBMbU5oZEdOb0tDZ3BJRDArSUhWdVpHVm1hVzVsWkNrN1hHNGdJQ0FnYVdZZ0tITjBZWFJ6UHk1cGMwUnBjbVZqZEc5eWVTZ3BLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZWGRoYVhRZ1oyVjBSbWx5YzNSRWFYSkdhV3hsVG1GdFpVTnZiblJsYm5Rb2MyOTFjbU5sS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlDaGhkMkZwZENCeVpXRmtSbk5HYVd4bEtITnZkWEpqWlNrcExuUnZVM1J5YVc1bktDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGQmhjbk5sY3lCaGJpQmxjbkp2Y2lCcGJuUnZJR0VnUW1GelpVVnljbTl5WEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRU52Ym5abGNuUnpJR0Z1ZVNCbGNuSnZjaUJwYm5SdklHRWdjM1JoYm1SaGNtUnBlbVZrSUVKaGMyVkZjbkp2Y2x4dUlDQWdLaUJBY0dGeVlXMGdlMFZ5Y205eUlId2djM1J5YVc1bmZTQmxjbklnTFNCVWFHVWdaWEp5YjNJZ2RHOGdjR0Z5YzJWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR5WldGemIyNWRJQzBnVDNCMGFXOXVZV3dnY21WaGMyOXVJR1p2Y2lCMGFHVWdaWEp5YjNKY2JpQWdJQ29nUUhKbGRIVnliaUI3UW1GelpVVnljbTl5ZlNCVWFHVWdjR0Z5YzJWa0lHVnljbTl5WEc0Z0lDQXFMMXh1SUNCdmRtVnljbWxrWlNCd1lYSnpaVVZ5Y205eVBFVWdaWGgwWlc1a2N5QkNZWE5sUlhKeWIzSStLR1Z5Y2pvZ1JYSnliM0lnZkNCemRISnBibWNwT2lCRklIdGNiaUFnSUNCeVpYUjFjbTRnUm1GaWNtbGpRMnhwWlc1MFFXUmhjSFJsY2k1d1lYSnpaVVZ5Y205eVBFVStLR1Z5Y2lrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUZOMVltMXBkSE1nWVNCMGNtRnVjMkZqZEdsdmJpQjBieUIwYUdVZ1JtRmljbWxqSUc1bGRIZHZjbXRjYmlBZ0lDb2dRSE4xYlcxaGNua2dSWGhsWTNWMFpYTWdZU0IwY21GdWMyRmpkR2x2YmlCMGFHRjBJRzF2WkdsbWFXVnpJSFJvWlNCc1pXUm5aWElnYzNSaGRHVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUdGd2FTQXRJRlJvWlNCamFHRnBibU52WkdVZ1puVnVZM1JwYjI0Z2RHOGdZMkZzYkZ4dUlDQWdLaUJBY0dGeVlXMGdlMkZ1ZVZ0ZGZTQmJZWEpuYzEwZ0xTQkJjbWQxYldWdWRITWdkRzhnY0dGemN5QjBieUIwYUdVZ1kyaGhhVzVqYjJSbElHWjFibU4wYVc5dVhHNGdJQ0FxSUVCd1lYSmhiU0I3VW1WamIzSmtQSE4wY21sdVp5d2djM1J5YVc1blBuMGdXM1J5WVc1emFXVnVkRVJoZEdGZElDMGdWSEpoYm5OcFpXNTBJR1JoZEdFZ1ptOXlJSFJvWlNCMGNtRnVjMkZqZEdsdmJseHVJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVQSE4wY21sdVp6NTlJRnRsYm1SdmNuTnBibWRQY21kaGJtbDZZWFJwYjI1elhTQXRJRTl5WjJGdWFYcGhkR2x2Ym5NZ2RHaGhkQ0J0ZFhOMElHVnVaRzl5YzJVZ2RHaGxJSFJ5WVc1ellXTjBhVzl1WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMUJ5YjIxcGMyVThWV2x1ZERoQmNuSmhlVDU5SUZCeWIyMXBjMlVnY21WemIyeDJhVzVuSUhSdklIUm9aU0IwY21GdWMyRmpkR2x2YmlCeVpYTjFiSFJjYmlBZ0lDb3ZYRzRnSUdGemVXNWpJSE4xWW0xcGRGUnlZVzV6WVdOMGFXOXVLRnh1SUNBZ0lHTjBlRG9nUm1GaWNtbGpRMnhwWlc1MFEyOXVkR1Y0ZEN4Y2JpQWdJQ0JoY0drNklITjBjbWx1Wnl4Y2JpQWdJQ0JoY21kelB6b2dZVzU1VzEwc1hHNGdJQ0FnZEhKaGJuTnBaVzUwUkdGMFlUODZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRzWEc0Z0lDQWdaVzVrYjNKemFXNW5UM0puWVc1cGVtRjBhVzl1Y3o4NklFRnljbUY1UEhOMGNtbHVaejRzWEc0Z0lDQWdZMnhoZW5wUGNrTnZiblJ5WVdOMFRtRnRaVDg2SUVOdmJuTjBjblZqZEc5eVBFMXZaR1ZzUEdGdWVUNCtJSHdnYzNSeWFXNW5YRzRnSUNrNklGQnliMjFwYzJVOFZXbHVkRGhCY25KaGVUNGdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMblJ5WVc1ellXTjBhVzl1S0Z4dUlDQWdJQ0FnWTNSNExGeHVJQ0FnSUNBZ1lYQnBMRnh1SUNBZ0lDQWdkSEoxWlN4Y2JpQWdJQ0FnSUdGeVozTXNYRzRnSUNBZ0lDQjBjbUZ1YzJsbGJuUkVZWFJoTEZ4dUlDQWdJQ0FnWlc1a2IzSnphVzVuVDNKbllXNXBlbUYwYVc5dWN5eGNiaUFnSUNBZ0lHTnNZWHA2VDNKRGIyNTBjbUZqZEU1aGJXVmNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCRmRtRnNkV0YwWlhNZ1lTQjBjbUZ1YzJGamRHbHZiaUJ2YmlCMGFHVWdSbUZpY21saklHNWxkSGR2Y210Y2JpQWdJQ29nUUhOMWJXMWhjbmtnUlhobFkzVjBaWE1nWVNCMGNtRnVjMkZqZEdsdmJpQjBhR0YwSUdSdlpYTWdibTkwSUcxdlpHbG1lU0IwYUdVZ2JHVmtaMlZ5SUhOMFlYUmxYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCaGNHa2dMU0JVYUdVZ1kyaGhhVzVqYjJSbElHWjFibU4wYVc5dUlIUnZJR05oYkd4Y2JpQWdJQ29nUUhCaGNtRnRJSHRoYm5sYlhYMGdXMkZ5WjNOZElDMGdRWEpuZFcxbGJuUnpJSFJ2SUhCaGMzTWdkRzhnZEdobElHTm9ZV2x1WTI5a1pTQm1kVzVqZEdsdmJseHVJQ0FnS2lCQWNHRnlZVzBnZTFKbFkyOXlaRHh6ZEhKcGJtY3NJSE4wY21sdVp6NTlJRnQwY21GdWMybGxiblJFWVhSaFhTQXRJRlJ5WVc1emFXVnVkQ0JrWVhSaElHWnZjaUIwYUdVZ2RISmhibk5oWTNScGIyNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlVHh6ZEhKcGJtYytmU0JiWlc1a2IzSnphVzVuVDNKbllXNXBlbUYwYVc5dWMxMGdMU0JQY21kaGJtbDZZWFJwYjI1eklIUm9ZWFFnYlhWemRDQmxibVJ2Y25ObElIUm9aU0IwY21GdWMyRmpkR2x2Ymx4dUlDQWdLaUJBY21WMGRYSnVJSHRRY205dGFYTmxQRlZwYm5RNFFYSnlZWGsrZlNCUWNtOXRhWE5sSUhKbGMyOXNkbWx1WnlCMGJ5QjBhR1VnZEhKaGJuTmhZM1JwYjI0Z2NtVnpkV3gwWEc0Z0lDQXFMMXh1SUNCaGMzbHVZeUJsZG1Gc2RXRjBaVlJ5WVc1ellXTjBhVzl1S0Z4dUlDQWdJR04wZURvZ1JtRmljbWxqUTJ4cFpXNTBRMjl1ZEdWNGRDeGNiaUFnSUNCaGNHazZJSE4wY21sdVp5eGNiaUFnSUNCaGNtZHpQem9nWVc1NVcxMHNYRzRnSUNBZ2RISmhibk5wWlc1MFJHRjBZVDg2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0c1hHNGdJQ0FnWlc1a2IzSnphVzVuVDNKbllXNXBlbUYwYVc5dWN6ODZJRUZ5Y21GNVBITjBjbWx1Wno0c1hHNGdJQ0FnWTJ4aGVucFBja052Ym5SeVlXTjBUbUZ0WlQ4NklFTnZibk4wY25WamRHOXlQRTF2WkdWc1BHRnVlVDQrSUh3Z2MzUnlhVzVuWEc0Z0lDazZJRkJ5YjIxcGMyVThWV2x1ZERoQmNuSmhlVDRnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5SeVlXNXpZV04wYVc5dUtGeHVJQ0FnSUNBZ1kzUjRMRnh1SUNBZ0lDQWdZWEJwTEZ4dUlDQWdJQ0FnWm1Gc2MyVXNYRzRnSUNBZ0lDQmhjbWR6TEZ4dUlDQWdJQ0FnZEhKaGJuTnBaVzUwUkdGMFlTeGNiaUFnSUNBZ0lHVnVaRzl5YzJsdVowOXlaMkZ1YVhwaGRHbHZibk1zWEc0Z0lDQWdJQ0JqYkdGNmVrOXlRMjl1ZEhKaFkzUk9ZVzFsWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJRzFwWjNKaGRHVW9YRzRnSUNBZ2NtVm1aWEpsYm1ObE9pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEVaaFluSnBZME5zYVdWdWRFTnZiblJsZUhRK1hHNGdJQ2s2SUZCeWIyMXBjMlU4VldsdWREaEJjbkpoZVQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR3hoYzNRZ1BTQmhjbWR6VzJGeVozTXViR1Z1WjNSb0lDMGdNVjA3WEc0Z0lDQWdZMjl1YzNRZ2NISnZkbWxrWldSRGRIZ2dQVnh1SUNBZ0lDQWdiR0Z6ZENCcGJuTjBZVzVqWlc5bUlFTnZiblJsZUhRZ1B5QW9iR0Z6ZENCaGN5QkdZV0p5YVdORGJHbGxiblJEYjI1MFpYaDBLU0E2SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JqYjI1emRDQnRhV2R5WVhScGIyNUJjbWR6SUQwZ2NISnZkbWxrWldSRGRIZ2dQeUJoY21kekxuTnNhV05sS0RBc0lDMHhLU0E2SUdGeVozTTdYRzRnSUNBZ1kyOXVjM1FnWTNSNElEMWNiaUFnSUNBZ0lIQnliM1pwWkdWa1EzUjRJSHg4WEc0Z0lDQWdJQ0FvWVhkaGFYUWdkR2hwY3k1amIyNTBaWGgwS0Z4dUlDQWdJQ0FnSUNCUVpYSnphWE4wWlc1alpVdGxlWE11VFVsSFVrRlVTVTlPTEZ4dUlDQWdJQ0FnSUNCN2ZTeGNiaUFnSUNBZ0lDQWdkVzVrWldacGJtVmtJR0Z6SUhWdWEyNXZkMjRnWVhNZ1EyOXVjM1J5ZFdOMGIzSThUVzlrWld3OFlXNTVQajVjYmlBZ0lDQWdJQ2twTzF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5OMVltMXBkRlJ5WVc1ellXTjBhVzl1S0Z4dUlDQWdJQ0FnWTNSNExGeHVJQ0FnSUNBZ1hDSnRhV2R5WVhSbFhDSXNYRzRnSUNBZ0lDQmJjbVZtWlhKbGJtTmxMQ0J0YVdkeVlYUnBiMjVCY21kelhTeGNiaUFnSUNBZ0lIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lGd2lUV2xuY21GMGFXOXVRMjl1ZEhKaFkzUmNJbHh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGTm9kWFJ6SUdSdmQyNGdkR2hsSUdOdmJtNWxZM1JwYjI0Z2RHOGdkR2hsSUVaaFluSnBZeUJ1WlhSM2IzSnJYRzRnSUNBcUlFQnpkVzF0WVhKNUlFTnNiM05sY3lCMGFHVWdZV04wYVhabElHUnBjM0JoZEdOb0lDaDNhR2xqYUNCcGJpQjBkWEp1SUdOc2IzTmxjeUJoYm5rZ1oyRjBaWGRoZVZ4dUlDQWdLaUJsZG1WdWRDQnpkV0p6WTNKcGNIUnBiMjRwSUhacFlTQjBhR1VnWW1GelpTQmpiR0Z6Y3l3Z2RHaGxiaUJqYkc5elpYTWdkR2hsSUdkU1VFTWdZMnhwWlc1MExseHVJQ0FnS2lCWGIzSnJjeUJqYjNKeVpXTjBiSGtnY21WbllYSmtiR1Z6Y3lCdlppQjNhR1YwYUdWeUlHQnplVzUwYUdWMGFXTkZkbVZ1ZEhOZ0lHbHpJR1Z1WVdKc1pXUXVYRzRnSUNBcUlFQnlaWFIxY200Z2UxQnliMjFwYzJVOGRtOXBaRDU5SUZCeWIyMXBjMlVnZEdoaGRDQnlaWE52YkhabGN5QjNhR1Z1SUdGc2JDQmpiMjV1WldOMGFXOXVjeUJoY21VZ1kyeHZjMlZrWEc0Z0lDQXFMMXh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJ6YUhWMFpHOTNiaWhjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhSbUZpY21salEyeHBaVzUwUTI5dWRHVjRkRDVjYmlBZ0tUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJQ0FnTHk4Z1FtRnpaU0JqYkdGemN5Qm9ZVzVrYkdWeklHUnBjM0JoZEdOb0xtTnNiM05sS0NrZ2FXNTBaWEp1WVd4c2VTNWNiaUFnSUNCaGQyRnBkQ0J6ZFhCbGNpNXphSFYwWkc5M2JpZ3VMaTVoY21kektUdGNiaUFnSUNCcFppQW9kR2hwY3k1amJHbGxiblFwSUh0Y2JpQWdJQ0FnSUhSb2FYTXViRzluTG5abGNtSnZjMlVvWUVOc2IzTnBibWNnSkh0MGFHbHpMbU52Ym1acFp5NXRjM0JKWkgwZ1oyRjBaWGRoZVNCamJHbGxiblJnS1R0Y2JpQWdJQ0FnSUhSb2FYTXVZMnhwWlc1MExtTnNiM05sS0NrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJIWlhSeklHRWdRMjl1ZEhKaFkzUWdhVzV6ZEdGdVkyVWdabkp2YlNCaElFZGhkR1YzWVhsY2JpQWdJQ29nUUhOMWJXMWhjbmtnVW1WMGNtbGxkbVZ6SUdFZ1kyaGhhVzVqYjJSbElHTnZiblJ5WVdOMElHWnliMjBnZEdobElITndaV05wWm1sbFpDQnVaWFIzYjNKclhHNGdJQ0FxSUVCd1lYSmhiU0I3UjJGMFpYZGhlWDBnWjJGMFpYZGhlU0F0SUZSb1pTQkhZWFJsZDJGNUlHbHVjM1JoYm1ObFhHNGdJQ0FxSUVCd1lYSmhiU0I3VUdWbGNrTnZibVpwWjMwZ1kyOXVabWxuSUMwZ1ZHaGxJSEJsWlhJZ1kyOXVabWxuZFhKaGRHbHZibHh1SUNBZ0tpQkFjbVYwZFhKdUlIdERiMjUwY21GcmRIMGdWR2hsSUVOdmJuUnlZV04wSUdsdWMzUmhibU5sWEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWVhONWJtTWdaMlYwUTI5dWRISmhZM1FvWEc0Z0lDQWdaMkYwWlhkaGVUb2dSMkYwWlhkaGVTeGNiaUFnSUNCamIyNW1hV2M2SUZCbFpYSkRiMjVtYVdjc1hHNGdJQ0FnWTJ4aGVucFBja052Ym5SeVlXTjBUbUZ0WlQ4NklITjBjbWx1WnlCOElFTnZibk4wY25WamRHOXlQRTF2WkdWc1BHRnVlVDQrTEZ4dUlDQWdJR04wZUQ4NklFWmhZbkpwWTBOc2FXVnVkRU52Ym5SbGVIUmNiaUFnS1RvZ1VISnZiV2x6WlR4RGIyNTBjbUZyZEQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR3h2WnlBOUlIUm9hWE11Ykc5bkxtWnZjaWgwYUdsekxtZGxkRU52Ym5SeVlXTjBLVHRjYmx4dUlDQWdJR3hsZENCamFHRnVibVZzSUQwZ1kyOXVabWxuTG1Ob1lXNXVaV3c3WEc0Z0lDQWdiR1YwSUdOb1lXbHVZMjlrWlNBOUlHTnZibVpwWnk1amFHRnBibU52WkdWT1lXMWxPMXh1SUNBZ0lHeGxkQ0JqYjI1MGNtRmpkRTVoYldVZ1BTQmpiMjVtYVdjdVkyOXVkSEpoWTNST1lXMWxPMXh1WEc0Z0lDQWdhV1lnS0dOc1lYcDZUM0pEYjI1MGNtRmpkRTVoYldVcElIdGNiaUFnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdZMnhoZW5wUGNrTnZiblJ5WVdOMFRtRnRaU0E5UFQwZ1hDSnpkSEpwYm1kY0lpbGNiaUFnSUNBZ0lDQWdZMjl1ZEhKaFkzUk9ZVzFsSUQwZ1kyeGhlbnBQY2tOdmJuUnlZV04wVG1GdFpUdGNiaUFnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCcFppQW9JV04wZUNsY2JpQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY2JpQWdJQ0FnSUNBZ0lDQWdJR0JPYnlCamIyNTBaWGgwSUhKbFkyVnBkbVZrSUhSdklHUmxkR1Z5YldsdVpTQmphR0ZwYm1OdlpHVWdZMjl1Wm1sbllGeHVJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUdOb1lXNXVaV3dnUFZ4dUlDQWdJQ0FnSUNBZ0lDaGhkMkZwZENCMGFHbHpMbU5vWVc1dVpXeEdiM0lvWTJ4aGVucFBja052Ym5SeVlXTjBUbUZ0WlN3Z1kyOXVabWxuTENCamRIZ3BLU0I4ZkNCamFHRnVibVZzTzF4dUlDQWdJQ0FnSUNCamFHRnBibU52WkdVZ1BWeHVJQ0FnSUNBZ0lDQWdJQ2hoZDJGcGRDQjBhR2x6TG1Ob1lXbHVZMjlrWlVadmNpaGpiR0Y2ZWs5eVEyOXVkSEpoWTNST1lXMWxMQ0JqYjI1bWFXY3NJR04wZUNrcElIeDhYRzRnSUNBZ0lDQWdJQ0FnWTJoaGFXNWpiMlJsTzF4dUlDQWdJQ0FnSUNCamIyNTBjbUZqZEU1aGJXVWdQU0JoZDJGcGRDQjBhR2x6TG1OdmJuUnlZV04wUm05eUtHTnNZWHA2VDNKRGIyNTBjbUZqZEU1aGJXVXNJR052Ym1acFp5d2dZM1I0S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQnVaWFIzYjNKcklEMGdkR2hwY3k1blpYUk9aWFIzYjNKcktHZGhkR1YzWVhrc0lHTm9ZVzV1Wld3cE8xeHVJQ0FnSUd4bGRDQmpiMjUwY21GamREb2dRMjl1ZEhKaGEzUTdYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJR3h2Wnk1a1pXSjFaeWhjYmlBZ0lDQWdJQ0FnWUZKbGRISnBaWFpwYm1jZ1kyaGhhVzVqYjJSbElDUjdZMmhoYVc1amIyUmxmU0JqYjI1MGNtRmpkQ0FrZTJOdmJuUnlZV04wVG1GdFpYMGdabkp2YlNCdVpYUjNiM0pySUNSN1kyaGhibTVsYkgxZ1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ1kyOXVkSEpoWTNRZ1BTQnVaWFIzYjNKckxtZGxkRU52Ym5SeVlXTjBLR05vWVdsdVkyOWtaU3dnWTI5dWRISmhZM1JPWVcxbEtUdGNiaUFnSUNCOUlHTmhkR05vSUNobE9pQmhibmtwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJSFJvYVhNdWNHRnljMlZGY25KdmNpaGxLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUdOdmJuUnlZV04wTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJIWlhSeklHRWdUbVYwZDI5eWF5QnBibk4wWVc1alpTQm1jbTl0SUdFZ1IyRjBaWGRoZVZ4dUlDQWdLaUJBYzNWdGJXRnllU0JEYjI1dVpXTjBjeUIwYnlCaElITndaV05wWm1saklHTm9ZVzV1Wld3Z2IyNGdkR2hsSUVaaFluSnBZeUJ1WlhSM2IzSnJYRzRnSUNBcUlFQndZWEpoYlNCN1IyRjBaWGRoZVgwZ1oyRjBaWGRoZVNBdElGUm9aU0JIWVhSbGQyRjVJR2x1YzNSaGJtTmxYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCamFHRnVibVZzVG1GdFpTQXRJRlJvWlNCdVlXMWxJRzltSUhSb1pTQmphR0Z1Ym1Wc0lIUnZJR052Ym01bFkzUWdkRzljYmlBZ0lDb2dRSEpsZEhWeWJpQjdUbVYwZDI5eWEzMGdWR2hsSUU1bGRIZHZjbXNnYVc1emRHRnVZMlZjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJuWlhST1pYUjNiM0pyS0dkaGRHVjNZWGs2SUVkaGRHVjNZWGtzSUdOb1lXNXVaV3hPWVcxbE9pQnpkSEpwYm1jcE9pQk9aWFIzYjNKcklIdGNiaUFnSUNCamIyNXpkQ0JzYjJjZ1BTQk1iMmRuYVc1bkxtWnZjaWgwYUdsekxtZGxkRTVsZEhkdmNtc3BPMXh1SUNBZ0lHeGxkQ0J1WlhSM2IzSnJPaUJPWlhSM2IzSnJPMXh1SUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0JzYjJjdVpHVmlkV2NvWUVOdmJtNWxZM1JwYm1jZ2RHOGdZMmhoYm01bGJDQWtlMk5vWVc1dVpXeE9ZVzFsZldBcE8xeHVJQ0FnSUNBZ2JtVjBkMjl5YXlBOUlHZGhkR1YzWVhrdVoyVjBUbVYwZDI5eWF5aGphR0Z1Ym1Wc1RtRnRaU2s3WEc0Z0lDQWdmU0JqWVhSamFDQW9aVG9nWVc1NUtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCMGFHbHpMbkJoY25ObFJYSnliM0lvWlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJRzVsZEhkdmNtczdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFZGxkSE1nWVNCSFlYUmxkMkY1SUdsdWMzUmhibU5sSUdadmNpQmpiMjV1WldOMGFXNW5JSFJ2SUhSb1pTQkdZV0p5YVdNZ2JtVjBkMjl5YTF4dUlDQWdLaUJBYzNWdGJXRnllU0JEY21WaGRHVnpJR0VnUjJGMFpYZGhlU0IxYzJsdVp5QjBhR1VnY0hKdmRtbGtaV1FnWTI5dVptbG5kWEpoZEdsdmJpQmhibVFnWTJ4cFpXNTBYRzRnSUNBcUlFQndZWEpoYlNCN1VHVmxja052Ym1acFozMGdZMjl1Wm1sbklDMGdWR2hsSUhCbFpYSWdZMjl1Wm1sbmRYSmhkR2x2Ymx4dUlDQWdLaUJBY0dGeVlXMGdlME5zYVdWdWRIMGdXMk5zYVdWdWRGMGdMU0JQY0hScGIyNWhiQ0JuVWxCRElHTnNhV1Z1ZEN3Z2QybHNiQ0JpWlNCamNtVmhkR1ZrSUdsbUlHNXZkQ0J3Y205MmFXUmxaRnh1SUNBZ0tpQkFjbVYwZFhKdUlIdFFjbTl0YVhObFBFZGhkR1YzWVhrK2ZTQlFjbTl0YVhObElISmxjMjlzZG1sdVp5QjBieUIwYUdVZ1IyRjBaWGRoZVNCcGJuTjBZVzVqWlZ4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUdGemVXNWpJR2RsZEVkaGRHVjNZWGtvWEc0Z0lDQWdZM1I0T2lCR1lXSnlhV05EYkdsbGJuUkRiMjUwWlhoMExGeHVJQ0FnSUdOdmJtWnBaem9nVUdWbGNrTnZibVpwWnl4Y2JpQWdJQ0JqYkdsbGJuUS9PaUJEYkdsbGJuUmNiaUFnS1NCN1hHNGdJQ0FnY21WMGRYSnVJQ2hoZDJGcGRDQjBhR2x6TG1kbGRFTnZibTVsWTNScGIyNG9YRzRnSUNBZ0lDQmpiR2xsYm5RZ2ZId2dLR0YzWVdsMElIUm9hWE11WjJWMFEyeHBaVzUwS0dOdmJtWnBaeWtwTEZ4dUlDQWdJQ0FnWTI5dVptbG5MRnh1SUNBZ0lDQWdZM1I0WEc0Z0lDQWdLU2tnWVhNZ1IyRjBaWGRoZVR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUTNKbFlYUmxjeUJoSUdkU1VFTWdZMnhwWlc1MElHWnZjaUJqYjI1dVpXTjBhVzVuSUhSdklHRWdSbUZpY21saklIQmxaWEpjYmlBZ0lDb2dRSE4xYlcxaGNua2dTVzVwZEdsaGJHbDZaWE1nWVNCamJHbGxiblFnZDJsMGFDQlVURk1nWTNKbFpHVnVkR2xoYkhNZ1ptOXlJSE5sWTNWeVpTQmpiMjF0ZFc1cFkyRjBhVzl1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdVR1ZsY2tOdmJtWnBaMzBnWTI5dVptbG5JQzBnVkdobElIQmxaWElnWTI5dVptbG5kWEpoZEdsdmJseHVJQ0FnS2lCQWNtVjBkWEp1SUh0RGJHbGxiblI5SUZCeWIyMXBjMlVnY21WemIyeDJhVzVuSUhSdklIUm9aU0JuVWxCRElHTnNhV1Z1ZEZ4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUdkbGRFTnNhV1Z1ZENoamIyNW1hV2M2SUZCbFpYSkRiMjVtYVdjcE9pQkRiR2xsYm5RZ2UxeHVJQ0FnSUdOdmJuTjBJR3h2WnlBOUlIUm9hWE11Ykc5bkxtWnZjaWgwYUdsekxtZGxkRU5zYVdWdWRDazdYRzRnSUNBZ2JHOW5MbVJsWW5WbktHQm5aVzVsY21GMGFXNW5JRlJNVXlCamNtVmtaVzUwYVdGc2N5Qm1iM0lnYlhOd0lDUjdZMjl1Wm1sbkxtMXpjRWxrZldBcE8xeHVJQ0FnSUd4bGRDQndZWFJvVDNKRFpYSjBPaUJ6ZEhKcGJtY2dmQ0JDZFdabVpYSWdQU0JqYjI1bWFXY3VkR3h6UTJWeWRDQmhjeUJ6ZEhKcGJtY2dmQ0JDZFdabVpYSTdYRzVjYmlBZ0lDQnBaaUFvZEhsd1pXOW1JSEJoZEdoUGNrTmxjblFnUFQwOUlGd2ljM1J5YVc1blhDSXBJSHRjYmlBZ0lDQWdJR2xtSUNoY2JpQWdJQ0FnSUNBZ2NHRjBhRTl5UTJWeWRDNXRZWFJqYUNoY2JpQWdJQ0FnSUNBZ0lDQXZMUzB0TFMxQ1JVZEpUaUFvUTBWU1ZFbEdTVU5CVkVWOFMwVlpmRkJTU1ZaQlZFVWdTMFZaS1MwdExTMHRMaXMvTFMwdExTMUZUa1FnWEZ3eExTMHRMUzBrTDJkdGMxeHVJQ0FnSUNBZ0lDQXBYRzRnSUNBZ0lDQXBJSHRjYmlBZ0lDQWdJQ0FnY0dGMGFFOXlRMlZ5ZENBOUlFSjFabVpsY2k1bWNtOXRLSEJoZEdoUGNrTmxjblFzSUZ3aWRYUm1PRndpS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQWdJQ0FnY0dGMGFFOXlRMlZ5ZENBOUlFSjFabVpsY2k1bWNtOXRLR1p6TG5KbFlXUkdhV3hsVTNsdVl5aHdZWFJvVDNKRFpYSjBMQ0JjSW5WMFpqaGNJaWtwTzF4dUlDQWdJQ0FnSUNCOUlHTmhkR05vSUNobE9pQjFibXR1YjNkdUtTQjdYRzRnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YRzRnSUNBZ0lDQWdJQ0FnSUNCZ1JtRnBiR1ZrSUhSdklISmxZV1FnZEdobElIUnNjeUJqWlhKMGFXWnBZMkYwWlNCbWNtOXRJQ1I3Y0dGMGFFOXlRMlZ5ZEgwNklDUjdaWDFnWEc0Z0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhSc2MwTnlaV1JsYm5ScFlXeHpJRDBnWjNKd1l5NWpjbVZrWlc1MGFXRnNjeTVqY21WaGRHVlRjMndvY0dGMGFFOXlRMlZ5ZENrN1hHNGdJQ0FnYkc5bkxtUmxZblZuS0dCblpXNWxjbUYwYVc1bklFZGhkR1YzWVhrZ1EyeHBaVzUwSUdadmNpQjFjbXdnSkh0amIyNW1hV2N1Y0dWbGNrVnVaSEJ2YVc1MGZXQXBPMXh1SUNBZ0lISmxkSFZ5YmlCdVpYY2dRMnhwWlc1MEtHTnZibVpwWnk1d1pXVnlSVzVrY0c5cGJuUXNJSFJzYzBOeVpXUmxiblJwWVd4ekxDQjdYRzRnSUNBZ0lDQmNJbWR5Y0dNdWJXRjRYM0psWTJWcGRtVmZiV1Z6YzJGblpWOXNaVzVuZEdoY0lqb2dLR052Ym1acFp5NXphWHBsVEdsdGFYUWdmSHdnTVRVcElDb2dNVEF5TkNBcUlERXdNalFzWEc0Z0lDQWdJQ0JjSW1keWNHTXViV0Y0WDNObGJtUmZiV1Z6YzJGblpWOXNaVzVuZEdoY0lqb2dLR052Ym1acFp5NXphWHBsVEdsdGFYUWdmSHdnTVRVcElDb2dNVEF5TkNBcUlERXdNalFzWEc0Z0lDQWdmU2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRVZ6ZEdGaWJHbHphR1Z6SUdFZ1kyOXVibVZqZEdsdmJpQjBieUIwYUdVZ1JtRmljbWxqSUc1bGRIZHZjbXRjYmlBZ0lDb2dRSE4xYlcxaGNua2dRM0psWVhSbGN5QmhJRWRoZEdWM1lYa2dZMjl1Ym1WamRHbHZiaUIzYVhSb0lHbGtaVzUwYVhSNUlHRnVaQ0J6YVdkdVpYSmNiaUFnSUNvZ1FIQmhjbUZ0SUh0RGJHbGxiblI5SUdOc2FXVnVkQ0F0SUZSb1pTQm5VbEJESUdOc2FXVnVkRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UxQmxaWEpEYjI1bWFXZDlJR052Ym1acFp5QXRJRlJvWlNCd1pXVnlJR052Ym1acFozVnlZWFJwYjI1Y2JpQWdJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHhIWVhSbGQyRjVQbjBnVUhKdmJXbHpaU0J5WlhOdmJIWnBibWNnZEc4Z2RHaGxJR052Ym01bFkzUmxaQ0JIWVhSbGQyRjVYRzRnSUNBcUlFQnRaWEp0WVdsa1hHNGdJQ0FxSUhObGNYVmxibU5sUkdsaFozSmhiVnh1SUNBZ0tpQWdJSEJoY25ScFkybHdZVzUwSUVOaGJHeGxjbHh1SUNBZ0tpQWdJSEJoY25ScFkybHdZVzUwSUVaaFluSnBZMEZrWVhCMFpYSmNiaUFnSUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JKWkdWdWRHbDBlVnh1SUNBZ0tpQWdJSEJoY25ScFkybHdZVzUwSUZOcFoyNWxjbHh1SUNBZ0tpQWdJSEJoY25ScFkybHdZVzUwSUVkaGRHVjNZWGxjYmlBZ0lDcGNiaUFnSUNvZ0lDQkRZV3hzWlhJdFBqNUdZV0p5YVdOQlpHRndkR1Z5T2lCblpYUkRiMjV1WldOMGFXOXVLR05zYVdWdWRDd2dZMjl1Wm1sbktWeHVJQ0FnS2lBZ0lFWmhZbkpwWTBGa1lYQjBaWEl0UGo1SlpHVnVkR2wwZVRvZ1oyVjBTV1JsYm5ScGRIa29iWE53U1dRc0lHTmxjblJFYVhKbFkzUnZjbmxRWVhSb0tWeHVJQ0FnS2lBZ0lFbGtaVzUwYVhSNUxTMCtQa1poWW5KcFkwRmtZWEIwWlhJNklHbGtaVzUwYVhSNVhHNGdJQ0FxSUNBZ1JtRmljbWxqUVdSaGNIUmxjaTArUGxOcFoyNWxjam9nWjJWMFUybG5ibVZ5S0d0bGVVUnBjbVZqZEc5eWVWQmhkR2dwWEc0Z0lDQXFJQ0FnVTJsbmJtVnlMUzArUGtaaFluSnBZMEZrWVhCMFpYSTZJSE5wWjI1bGNseHVJQ0FnS2lBZ0lFWmhZbkpwWTBGa1lYQjBaWEl0UGo1R1lXSnlhV05CWkdGd2RHVnlPaUJEY21WaGRHVWdRMjl1Ym1WamRFOXdkR2x2Ym5OY2JpQWdJQ29nSUNCR1lXSnlhV05CWkdGd2RHVnlMVDQrUjJGMFpYZGhlVG9nWTI5dWJtVmpkQ2h2Y0hScGIyNXpLVnh1SUNBZ0tpQWdJRWRoZEdWM1lYa3RMVDQrUm1GaWNtbGpRV1JoY0hSbGNqb2daMkYwWlhkaGVWeHVJQ0FnS2lBZ0lFWmhZbkpwWTBGa1lYQjBaWEl0TFQ0K1EyRnNiR1Z5T2lCbllYUmxkMkY1WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWVhONWJtTWdaMlYwUTI5dWJtVmpkR2x2YmloY2JpQWdJQ0JqYkdsbGJuUTZJRU5zYVdWdWRDeGNiaUFnSUNCamIyNW1hV2M2SUZCbFpYSkRiMjVtYVdjc1hHNGdJQ0FnWTNSNE9pQkdZV0p5YVdORGJHbGxiblJEYjI1MFpYaDBYRzRnSUNrZ2UxeHVJQ0FnSUdOdmJuTjBJR3h2WnlBOUlFeHZaMmRwYm1jdVptOXlLSFJvYVhNdVoyVjBRMjl1Ym1WamRHbHZiaWs3WEc0Z0lDQWdiRzluTG1SbFluVm5LRnh1SUNBZ0lDQWdZRkpsZEhKcFpYWnBibWNnVUdWbGNpQkpaR1Z1ZEdsMGVTQm1iM0lnSkh0amIyNW1hV2N1YlhOd1NXUjlJSFZ1WkdWeUlDUjdZMjl1Wm1sbkxtTmxjblJEWlhKMFQzSkVhWEpsWTNSdmNubFFZWFJvZldCY2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElHbGtaVzUwYVhSNUlEMGdZWGRoYVhRZ1oyVjBTV1JsYm5ScGRIa29YRzRnSUNBZ0lDQmpiMjVtYVdjdWJYTndTV1FzWEc0Z0lDQWdJQ0JqYjI1bWFXY3VZMlZ5ZEVObGNuUlBja1JwY21WamRHOXllVkJoZEdnZ1lYTWdZVzU1WEc0Z0lDQWdLVHRjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnYkc5bkxtUmxZblZuS0Z4dUlDQWdJQ0FnSUNCZ2NISmxjR0Z5YVc1bklIUnlZVzV6WVdOMGFXOXVJSE5wWjI1bGNpQm1iM0lnSkh0RGNubHdkRzlWZEdsc2N5NW1ZV0p5YVdOSlpFWnliMjFEWlhKMGFXWnBZMkYwWlNocFpHVnVkR2wwZVM1amNtVmtaVzUwYVdGc2N5NTBiMU4wY21sdVp5Z3BLWDFnWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1U2SUhWdWEyNXZkMjRwSUh0Y2JpQWdJQ0FnSUd4dlp5NWxjbkp2Y2loZ1JtRnBiR1ZrSUhSdklHVjRkSEpoWTNRZ1JtRmljbWxqSUVsRUlHWnliMjBnWTJWeWRHbG1hV05oZEdWZ0xDQmxJR0Z6SUVWeWNtOXlLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnNaWFFnYzJsbmJtVnlPaUJUYVdkdVpYSTdYRzRnSUNBZ1kyOXVjM1FnWTJ4dmMyVWdQU0FvS1NBOVBpQjdmVHRjYmlBZ0lDQnBaaUFvSVdOdmJtWnBaeTVvYzIwcElIdGNiaUFnSUNBZ0lITnBaMjVsY2lBOUlHRjNZV2wwSUdkbGRGTnBaMjVsY2loamIyNW1hV2N1YTJWNVEyVnlkRTl5UkdseVpXTjBiM0o1VUdGMGFDQmhjeUJoYm5rcE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0F2THlCamIyNXpkQ0JvYzIwZ1BTQnVaWGNnU0ZOTlUybG5ibVZ5Um1GamRHOXllVU4xYzNSdmJTaGpiMjVtYVdjdWFITnRMbXhwWW5KaGNua3BPMXh1SUNBZ0lDQWdMeThnWTI5dWMzUWdhV1JsYm5ScFptbGxjaUE5SUdoemJTNW5aWFJUUzBsR2NtOXRRMlZ5ZEdsbWFXTmhkR1ZRWVhSb0tGeHVJQ0FnSUNBZ0x5OGdJQ0JqYjI1bWFXY3VZMlZ5ZEVObGNuUlBja1JwY21WamRHOXllVkJoZEdnZ1lYTWdZVzU1WEc0Z0lDQWdJQ0F2THlBcE8xeHVJQ0FnSUNBZ0x5OGdZMjl1YzNRZ2NHdGpjekV4VTJsbmJtVnlJRDBnYUhOdExtNWxkMU5wWjI1bGNpaDdYRzRnSUNBZ0lDQXZMeUFnSUd4aFltVnNPaUJqYjI1bWFXY3VhSE50TG5SdmEyVnVUR0ZpWld3Z1lYTWdjM1J5YVc1bkxGeHVJQ0FnSUNBZ0x5OGdJQ0J3YVc0NklGTjBjbWx1WnloamIyNW1hV2N1YUhOdExuQnBiaWtnWVhNZ2MzUnlhVzVuTEZ4dUlDQWdJQ0FnTHk4Z0lDQnBaR1Z1ZEdsbWFXVnlPaUJwWkdWdWRHbG1hV1Z5TEZ4dUlDQWdJQ0FnTHk4Z0lDQXZMeUIxYzJWeVZIbHdaVG9nTVNBdktrTkxWVjlWVTBWU0lDb3ZMRnh1SUNBZ0lDQWdMeThnZlNrN1hHNGdJQ0FnSUNBdkx5QnphV2R1WlhJZ1BTQndhMk56TVRGVGFXZHVaWEl1YzJsbmJtVnlPMXh1SUNBZ0lDQWdMeThnWTJ4dmMyVWdQU0J3YTJOek1URlRhV2R1WlhJdVkyeHZjMlU3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVlc1emRYQndiM0owWldSRmNuSnZjaWhjSWtoVFRTQk9UMVFnU1UxUVRFVk5SVTVVUlVSY0lpazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYjNCMGFXOXVjeUE5SUh0Y2JpQWdJQ0FnSUdOc2FXVnVkQ3hjYmlBZ0lDQWdJR2xrWlc1MGFYUjVPaUJwWkdWdWRHbDBlU3hjYmlBZ0lDQWdJSE5wWjI1bGNqb2djMmxuYm1WeUxGeHVJQ0FnSUNBZ0x5OGdSR1ZtWVhWc2RDQjBhVzFsYjNWMGN5Qm1iM0lnWkdsbVptVnlaVzUwSUdkU1VFTWdZMkZzYkhOY2JpQWdJQ0FnSUdWMllXeDFZWFJsVDNCMGFXOXVjem9nS0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdleUJrWldGa2JHbHVaVG9nUkdGMFpTNXViM2NvS1NBcklERXdNREFnS2lCamRIZ3VaMlYwS0Z3aVpYWmhiSFZoZEdWVWFXMWxiM1YwWENJcElIMDdJQzh2SUdSbFptRjFiSFJ6SUhSdklEVWdjMlZqYjI1a2MxeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lHVnVaRzl5YzJWUGNIUnBiMjV6T2lBb0tTQTlQaUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3SUdSbFlXUnNhVzVsT2lCRVlYUmxMbTV2ZHlncElDc2dNVEF3TUNBcUlHTjBlQzVuWlhRb1hDSmxibVJ2Y25ObFZHbHRaVzkxZEZ3aUtTQjlPeUF2THlCa1pXWmhkV3gwY3lCMGJ5QXhOU0J6WldOdmJtUnpYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdjM1ZpYldsMFQzQjBhVzl1Y3pvZ0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZXlCa1pXRmtiR2x1WlRvZ1JHRjBaUzV1YjNjb0tTQXJJREV3TURBZ0tpQmpkSGd1WjJWMEtGd2ljM1ZpYldsMFZHbHRaVzkxZEZ3aUtTQjlPeUF2THlCa1pXWmhkV3gwY3lCMGJ5QTFJSE5sWTI5dVpITmNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQmpiMjF0YVhSVGRHRjBkWE5QY0hScGIyNXpPaUFvS1NBOVBpQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjdJR1JsWVdSc2FXNWxPaUJFWVhSbExtNXZkeWdwSUNzZ01UQXdNQ0FxSUdOMGVDNW5aWFFvWENKamIyMXRhWFJVYVcxbGIzVjBYQ0lwSUgwN0lDOHZJR1JsWm1GMWJIUnpJSFJ2SURFZ2JXbHVkWFJsWEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJSDBnWVhNZ1EyOXVibVZqZEU5d2RHbHZibk03WEc1Y2JpQWdJQ0JzYjJjdVpHVmlkV2NvWUVOdmJtNWxZM1JwYm1jZ2RHOGdKSHRqYjI1bWFXY3ViWE53U1dSOVlDazdYRzRnSUNBZ1kyOXVjM1FnWjJGMFpYZGhlU0E5SUdOdmJtNWxZM1FvYjNCMGFXOXVjeWs3WEc1Y2JpQWdJQ0F2THlCVVQwUlBPaUJ5WlhCc1lXTmxQMXh1SUNBZ0lHbG1JQ2hqYjI1bWFXY3VhSE50S1NCN1hHNGdJQ0FnSUNCbllYUmxkMkY1TG1Oc2IzTmxJRDBnYm1WM0lGQnliM2g1S0dkaGRHVjNZWGt1WTJ4dmMyVXNJSHRjYmlBZ0lDQWdJQ0FnWVhCd2JIa29kR0Z5WjJWME9pQW9LU0E5UGlCMmIybGtMQ0IwYUdselFYSm5PaUJoYm5rc0lHRnlaMEZ5Y21GNU9pQmhibmxiWFNrNklHRnVlU0I3WEc0Z0lDQWdJQ0FnSUNBZ1VtVm1iR1ZqZEM1aGNIQnNlU2gwWVhKblpYUXNJSFJvYVhOQmNtY3NJR0Z5WjBGeWNtRjVLVHRjYmlBZ0lDQWdJQ0FnSUNCamJHOXpaU2dwTzF4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUdkaGRHVjNZWGs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRU55WldGMFpYTWdZU0J1WlhjZ1JHbHpjR0YwWTJnZ2FXNXpkR0Z1WTJVZ1ptOXlJSFJvWlNCR1lXSnlhV01nWTJ4cFpXNTBMbHh1SUNBZ0tpQkFjM1Z0YldGeWVTQlVhR2x6SUdaMWJtTjBhVzl1SUdseklISmxjM0J2Ym5OcFlteGxJR1p2Y2lCamNtVmhkR2x1WnlCaElHNWxkeUJHWVdKeWFXTkRiR2xsYm5SRWFYTndZWFJqYUNCcGJuTjBZVzVqWlNCMGFHRjBJR05oYmlCaVpTQjFjMlZrSUhSdklHbHVkR1Z5WVdOMElIZHBkR2dnZEdobElFWmhZbkpwWXlCdVpYUjNiM0pyTGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3UkdsemNHRjBZMmg5SUVFZ2JtVjNJRVJwYzNCaGRHTm9JR2x1YzNSaGJtTmxJR052Ym1acFozVnlaV1FnWm05eUlIUm9aU0JHWVdKeWFXTWdZMnhwWlc1MExseHVJQ0FnS2lCQWNtVnRZWEpyY3lCVWFHVWdSR2x6Y0dGMFkyZ2dhVzV6ZEdGdVkyVWdhWE1nZFhObFpDQjBieUJsYm1OaGNITjFiR0YwWlNCMGFHVWdiRzluYVdNZ1ptOXlJR2x1ZEdWeVlXTjBhVzVuSUhkcGRHZ2dkR2hsSUVaaFluSnBZeUJ1WlhSM2IzSnJMQ0J6ZFdOb0lHRnpJSE4xWW0xcGRIUnBibWNnZEhKaGJuTmhZM1JwYjI1eklHOXlJSEYxWlhKNWFXNW5JR1JoZEdFdVhHNGdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQXFJR052Ym5OMElHWmhZbkpwWTBScGMzQmhkR05vSUQwZ1ptRmljbWxqUTJ4cFpXNTBRV1JoY0hSbGNpNUVhWE53WVhSamFDZ3BPMXh1SUNBZ0tpQm1ZV0p5YVdORWFYTndZWFJqYUM1emRXSnRhWFJVY21GdWMyRmpkR2x2YmlnblkzSmxZWFJsVUhKdlpIVmpkQ2NzSUhzZ2JtRnRaVG9nSjFCeWIyUjFZM1FnUVNjc0lIQnlhV05sT2lBeE1EQWdmU2s3WEc0Z0lDQXFMMXh1SUNCdmRtVnljbWxrWlNCRWFYTndZWFJqYUNncE9pQkdZV0p5YVdORGJHbGxiblJFYVhOd1lYUmphQ0I3WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUJHWVdKeWFXTkRiR2xsYm5SQlpHRndkR1Z5VzF3aVgySmhjMlZFYVhOd1lYUmphRndpWFNoMGFHbHpMbU5zYVdWdWRDazdYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnYzNSaGRHbGpJR05vWVdsdVkyOWtaVVp2Y2loY2JpQWdJQ0J0YjJSbGJEb2dRMjl1YzNSeWRXTjBiM0k4VFc5a1pXdzhZVzU1UGo0c1hHNGdJQ0FnWTI5dVptbG5PaUJRWldWeVEyOXVabWxuTEZ4dUlDQWdJQzR1TG1GeVozTTZJRU52Ym5SbGVIUjFZV3hCY21kelBFWmhZbkpwWTBOc2FXVnVkRU52Ym5SbGVIUStYRzRnSUNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJOYjJSbGJDNWphR0ZwYm1OdlpHVlBaaWh0YjJSbGJDd2dMaTR1WVhKbmN5a2dmSHdnWTI5dVptbG5MbU5vWVdsdVkyOWtaVTVoYldVN1hHNGdJSDFjYmx4dUlDQndjbTkwWldOMFpXUWdjM1JoZEdsaklHTm9ZVzV1Wld4R2IzSW9YRzRnSUNBZ2JXOWtaV3c2SUVOdmJuTjBjblZqZEc5eVBFMXZaR1ZzUEdGdWVUNCtMRnh1SUNBZ0lHTnZibVpwWnpvZ1VHVmxja052Ym1acFp5eGNiaUFnSUNBdUxpNWhjbWR6T2lCRGIyNTBaWGgwZFdGc1FYSm5jenhHWVdKeWFXTkRiR2xsYm5SRGIyNTBaWGgwUGx4dUlDQXBJSHRjYmlBZ0lDQnlaWFIxY200Z1RXOWtaV3d1WTJoaGJtNWxiRTltS0cxdlpHVnNMQ0F1TGk1aGNtZHpLU0I4ZkNCamIyNW1hV2N1WTJoaGJtNWxiRHRjYmlBZ2ZWeHVYRzRnSUhCeWIzUmxZM1JsWkNCemRHRjBhV01nWTI5dWRISmhZM1JHYjNJb1hHNGdJQ0FnYlc5a1pXdzZJRU52Ym5OMGNuVmpkRzl5UEUxdlpHVnNQR0Z1ZVQ0K0xGeHVJQ0FnSUdOdmJtWnBaem9nVUdWbGNrTnZibVpwWnl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eEdZV0p5YVdORGJHbGxiblJEYjI1MFpYaDBQbHh1SUNBcElIdGNiaUFnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnVFc5a1pXd3VZMjl1ZEhKaFkzUlBaaWh0YjJSbGJDd2dMaTR1WVhKbmN5a2dmSHhjYmlBZ0lDQWdJRVJsWm1GMWJIUkRiMjUwY21GamRGSmxjMjlzZG1WeUtHMXZaR1ZzTENBdUxpNWhjbWR6S1Z4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRkJoY25ObGN5QmhiaUJsY25KdmNpQnBiblJ2SUdFZ1FtRnpaVVZ5Y205eVhHNGdJQ0FxSUVCemRXMXRZWEo1SUVOdmJuWmxjblJ6SUdGdWVTQmxjbkp2Y2lCcGJuUnZJR0VnYzNSaGJtUmhjbVJwZW1Wa0lFSmhjMlZGY25KdmNpQjFjMmx1WnlCMGFHVWdjR0Z5Wlc1MElHTnNZWE56SUdsdGNHeGxiV1Z1ZEdGMGFXOXVYRzRnSUNBcUlFQndZWEpoYlNCN1JYSnliM0lnZkNCemRISnBibWQ5SUdWeWNpQXRJRlJvWlNCbGNuSnZjaUIwYnlCd1lYSnpaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1czSmxZWE52YmwwZ0xTQlBjSFJwYjI1aGJDQnlaV0Z6YjI0Z1ptOXlJSFJvWlNCbGNuSnZjbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdENZWE5sUlhKeWIzSjlJRlJvWlNCd1lYSnpaV1FnWlhKeWIzSmNiaUFnSUNvdlhHNGdJSEJ5YjNSbFkzUmxaQ0J6ZEdGMGFXTWdjR0Z5YzJWRmNuSnZjanhGSUdWNGRHVnVaSE1nUW1GelpVVnljbTl5UGloY2JpQWdJQ0JsY25JNklFVnljbTl5SUh3Z2MzUnlhVzVuSUh3Z1IyRjBaWGRoZVVWeWNtOXlYRzRnSUNrNklFVWdlMXh1SUNBZ0lDOHZJR2xtSUNoY2JpQWdJQ0F2THlBZ0lFMUpVMU5KVGtkZlVGSkpWa0ZVUlY5RVFWUkJYMUpGUjBWWUxuUmxjM1FvWEc0Z0lDQWdMeThnSUNBZ0lIUjVjR1Z2WmlCbGNuSWdQVDA5SUZ3aWMzUnlhVzVuWENJZ1B5QmxjbklnT2lCbGNuSXViV1Z6YzJGblpWeHVJQ0FnSUM4dklDQWdLVnh1SUNBZ0lDOHZJQ2xjYmlBZ0lDQXZMeUFnSUhKbGRIVnliaUJ1WlhjZ1ZXNWhkWFJvYjNKcGVtVmtVSEpwZG1GMFpVUmhkR0ZCWTJObGMzTW9aWEp5S1NCaGN5QkZPMXh1WEc0Z0lDQWdiR1YwSUcxelp5QTlJSFI1Y0dWdlppQmxjbklnUFQwOUlGd2ljM1J5YVc1blhDSWdQeUJsY25JZ09pQmxjbkl1YldWemMyRm5aVHRjYmlBZ0lDQnBaaUFvWlhKeUlHbHVjM1JoYm1ObGIyWWdSMkYwWlhkaGVVVnljbTl5SUNZbUlHVnljaTVrWlhSaGFXeHpMbXhsYm1kMGFDQW1KaUJsY25JdVkyOWtaU0E5UFQwZ01UQXBJSHRjYmlBZ0lDQWdJRzF6WnlBOUlHQWtlMlZ5Y2k1a1pYUmhhV3h6V3pCZExtMWxjM05oWjJWOVlEdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9YRzRnSUNBZ0lDQmxjbklnYVc1emRHRnVZMlZ2WmlCRmJtUnZjbk5sUlhKeWIzSWdKaVpjYmlBZ0lDQWdJR1Z5Y2k1a1pYUmhhV3h6TG14bGJtZDBhQ0FtSmx4dUlDQWdJQ0FnWlhKeUxtTnZaR1VnUFQwOUlERXdJQ1ltWEc0Z0lDQWdJQ0JsY25JdVpHVjBZV2xzYzFzd1hTNXRaWE56WVdkbFB5NXBibU5zZFdSbGN5aFZibk4xY0hCdmNuUmxaRVZ5Y205eUxtNWhiV1VwWEc0Z0lDQWdLU0I3WEc0Z0lDQWdJQ0J0YzJjZ1BTQmdKSHRsY25JdVpHVjBZV2xzYzFzd1hTNXRaWE56WVdkbGZXQTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLRzF6Wnk1cGJtTnNkV1JsY3loY0lrMVdRME5mVWtWQlJGOURUMDVHVEVsRFZGd2lLU2xjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVFhaalkxSmxZV1JEYjI1bWJHbGpkRVZ5Y205eUtHVnljaWtnWVhNZ1JUdGNibHh1SUNBZ0lHbG1JQ2h0YzJjdWFXNWpiSFZrWlhNb1hDSkVSVUZFVEVsT1JWOUZXRU5GUlVSRlJGd2lLU2xjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVkhKaGJuTmhZM1JwYjI1VWFXMWxiM1YwUlhKeWIzSW9aWEp5S1NCaGN5QkZPMXh1WEc0Z0lDQWdhV1lnS0Z4dUlDQWdJQ0FnYlhObkxtbHVZMngxWkdWektGd2lZMmhoYVc1amIyUmxJSE4wY21WaGJTQjBaWEp0YVc1aGRHVmtYQ0lwSUh4OFhHNGdJQ0FnSUNCdGMyY3VhVzVqYkhWa1pYTW9YQ0pTUlZOUFZWSkRSVjlGV0VoQlZWTlVSVVJjSWlrZ2ZIeGNiaUFnSUNBZ0lHMXpaeTVwYm1Oc2RXUmxjeWhjSW5KbFkyVnBkbVZrSUcxbGMzTmhaMlVnYkdGeVoyVnlJSFJvWVc0Z2JXRjRYQ0lwSUh4OFhHNGdJQ0FnSUNCdGMyY3VhVzVqYkhWa1pYTW9YQ0puY25Cak9pQnlaV05sYVhabFpDQnRaWE56WVdkbElHeGhjbWRsY2x3aUtWeHVJQ0FnSUNsY2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1VYVmxjbmxTWlhOMWJIUlViMjlNWVhKblpVVnljbTl5S0dWeWNpa2dZWE1nUlR0Y2JseHVJQ0FnSUdsbUlDaHRjMmN1YVc1amJIVmtaWE1vWENKRlRrUlBVbE5GVFVWT1ZGOVFUMHhKUTFsZlJrRkpURlZTUlZ3aUtTbGNiaUFnSUNBZ0lISmxkSFZ5YmlCdVpYY2dSVzVrYjNKelpXMWxiblJRYjJ4cFkzbEZjbkp2Y2lobGNuSXBJR0Z6SUVVN1hHNWNiaUFnSUNCcFppQW9iWE5uTG1sdVkyeDFaR1Z6S0Z3aVVFaEJUbFJQVFY5U1JVRkVYME5QVGtaTVNVTlVYQ0lwS1Z4dUlDQWdJQ0FnY21WMGRYSnVJRzVsZHlCUWFHRnVkRzl0VW1WaFpFTnZibVpzYVdOMFJYSnliM0lvWlhKeUtTQmhjeUJGTzF4dVhHNGdJQ0FnYVdZZ0tHVnljaUJwYm5OMFlXNWpaVzltSUVWeWNtOXlJQ1ltSUNobGNuSWdZWE1nWVc1NUtTNWpiMlJsS1NCN1hHNGdJQ0FnSUNCemQybDBZMmdnS0NobGNuSWdZWE1nWVc1NUtTNWpiMlJsS1NCN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnT1RwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRVZ1Wkc5eWMyVnRaVzUwUlhKeWIzSW9aWEp5S1NCaGN5QkZPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2h0YzJjdWFXNWpiSFZrWlhNb1ZtRnNhV1JoZEdsdmJrVnljbTl5TG01aGJXVXBLVnh1SUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJXWVd4cFpHRjBhVzl1UlhKeWIzSW9aWEp5S1NCaGN5QkZPMXh1SUNBZ0lHbG1JQ2h0YzJjdWFXNWpiSFZrWlhNb1RtOTBSbTkxYm1SRmNuSnZjaTV1WVcxbEtTa2djbVYwZFhKdUlHNWxkeUJPYjNSR2IzVnVaRVZ5Y205eUtHVnljaWtnWVhNZ1JUdGNiaUFnSUNCcFppQW9iWE5uTG1sdVkyeDFaR1Z6S0VOdmJtWnNhV04wUlhKeWIzSXVibUZ0WlNrcElISmxkSFZ5YmlCdVpYY2dRMjl1Wm14cFkzUkZjbkp2Y2lobGNuSXBJR0Z6SUVVN1hHNGdJQ0FnYVdZZ0tHMXpaeTVwYm1Oc2RXUmxjeWhDWVdSU1pYRjFaWE4wUlhKeWIzSXVibUZ0WlNrcFhHNGdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lFSmhaRkpsY1hWbGMzUkZjbkp2Y2lobGNuSXBJR0Z6SUVVN1hHNGdJQ0FnYVdZZ0tHMXpaeTVwYm1Oc2RXUmxjeWhSZFdWeWVVVnljbTl5TG01aGJXVXBLU0J5WlhSMWNtNGdibVYzSUZGMVpYSjVSWEp5YjNJb1pYSnlLU0JoY3lCRk8xeHVJQ0FnSUdsbUlDaHRjMmN1YVc1amJIVmtaWE1vVUdGbmFXNW5SWEp5YjNJdWJtRnRaU2twSUhKbGRIVnliaUJ1WlhjZ1VHRm5hVzVuUlhKeWIzSW9aWEp5S1NCaGN5QkZPMXh1SUNBZ0lHbG1JQ2h0YzJjdWFXNWpiSFZrWlhNb1ZXNXpkWEJ3YjNKMFpXUkZjbkp2Y2k1dVlXMWxLU2xjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVlc1emRYQndiM0owWldSRmNuSnZjaWhsY25JcElHRnpJRVU3WEc0Z0lDQWdhV1lnS0cxelp5NXBibU5zZFdSbGN5aE5hV2R5WVhScGIyNUZjbkp2Y2k1dVlXMWxLU2tnY21WMGRYSnVJRzVsZHlCTmFXZHlZWFJwYjI1RmNuSnZjaWhsY25JcElHRnpJRVU3WEc0Z0lDQWdhV1lnS0cxelp5NXBibU5zZFdSbGN5aFBZbk5sY25abGNrVnljbTl5TG01aGJXVXBLU0J5WlhSMWNtNGdibVYzSUU5aWMyVnlkbVZ5UlhKeWIzSW9aWEp5S1NCaGN5QkZPMXh1SUNBZ0lHbG1JQ2h0YzJjdWFXNWpiSFZrWlhNb1FYVjBhRzl5YVhwaGRHbHZia1Z5Y205eUxtNWhiV1VwS1Z4dUlDQWdJQ0FnY21WMGRYSnVJRzVsZHlCQmRYUm9iM0pwZW1GMGFXOXVSWEp5YjNJb1pYSnlLU0JoY3lCRk8xeHVJQ0FnSUdsbUlDaHRjMmN1YVc1amJIVmtaWE1vUm05eVltbGtaR1Z1UlhKeWIzSXVibUZ0WlNrcElISmxkSFZ5YmlCdVpYY2dSbTl5WW1sa1pHVnVSWEp5YjNJb1pYSnlLU0JoY3lCRk8xeHVJQ0FnSUdsbUlDaHRjMmN1YVc1amJIVmtaWE1vUTI5dWJtVmpkR2x2YmtWeWNtOXlMbTVoYldVcEtWeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5QkRiMjV1WldOMGFXOXVSWEp5YjNJb1pYSnlLU0JoY3lCRk8xeHVJQ0FnSUdsbUlDaHRjMmN1YVc1amJIVmtaWE1vVTJWeWFXRnNhWHBoZEdsdmJrVnljbTl5TG01aGJXVXBLVnh1SUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJUWlhKcFlXeHBlbUYwYVc5dVJYSnliM0lvWlhKeUtTQmhjeUJGTzF4dUlDQWdJSEpsZEhWeWJpQnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGxjbklwSUdGeklFVTdYRzRnSUgxY2JuMWNibHh1Um1GaWNtbGpRMnhwWlc1MFFXUmhjSFJsY2k1a1pXTnZjbUYwYVc5dUtDazdYRzVCWkdGd2RHVnlMbk5sZEVOMWNuSmxiblFvUm1GaWNtbGpSbXhoZG05MWNpazdYRzRpWFgwPSJdfQ==
1459
+ //# sourceMappingURL=FabricClientAdapter.js.map
1460
+ //# sourceMappingURL=FabricClientAdapter.cjs.map