@decaf-ts/for-fabric 0.12.6 → 0.12.8

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 (590) hide show
  1. package/README.md +177 -146
  2. package/dist/for-fabric.cjs +2 -3797
  3. package/dist/for-fabric.cjs.map +1 -0
  4. package/dist/for-fabric.js +2 -3901
  5. package/dist/for-fabric.js.map +1 -0
  6. package/lib/cjs/bin/cli.cjs +2 -2
  7. package/lib/cjs/bin/cli.cjs.map +1 -0
  8. package/lib/cjs/cli-module.cjs +107 -3
  9. package/lib/cjs/cli-module.cjs.map +1 -0
  10. package/lib/cjs/cli-utils.cjs +2 -2
  11. package/lib/cjs/cli-utils.cjs.map +1 -0
  12. package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
  13. package/lib/cjs/client/FabricClientAdapter.cjs.map +1 -0
  14. package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
  15. package/lib/cjs/client/FabricClientDispatch.cjs.map +1 -0
  16. package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
  17. package/lib/cjs/client/FabricClientPaginator.cjs.map +1 -0
  18. package/lib/cjs/client/FabricClientRepository.cjs +2 -2
  19. package/lib/cjs/client/FabricClientRepository.cjs.map +1 -0
  20. package/lib/cjs/client/FabricClientStatement.cjs +2 -2
  21. package/lib/cjs/client/FabricClientStatement.cjs.map +1 -0
  22. package/lib/cjs/client/collections/generation.cjs +2 -2
  23. package/lib/cjs/client/collections/generation.cjs.map +1 -0
  24. package/lib/cjs/client/collections/index.cjs +2 -2
  25. package/lib/cjs/client/collections/index.cjs.map +1 -0
  26. package/lib/cjs/client/constants.cjs +2 -2
  27. package/lib/cjs/client/constants.cjs.map +1 -0
  28. package/lib/cjs/client/crypto.cjs +2 -2
  29. package/lib/cjs/client/crypto.cjs.map +1 -0
  30. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
  31. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +1 -0
  32. package/lib/cjs/client/erc20/index.cjs +2 -2
  33. package/lib/cjs/client/erc20/index.cjs.map +1 -0
  34. package/lib/cjs/client/fabric-fs.cjs +2 -2
  35. package/lib/cjs/client/fabric-fs.cjs.map +1 -0
  36. package/lib/cjs/client/fabric-hsm.cjs +2 -2
  37. package/lib/cjs/client/fabric-hsm.cjs.map +1 -0
  38. package/lib/cjs/client/ids/id-extraction.cjs +2 -2
  39. package/lib/cjs/client/ids/id-extraction.cjs.map +1 -0
  40. package/lib/cjs/client/ids/index.cjs +2 -2
  41. package/lib/cjs/client/ids/index.cjs.map +1 -0
  42. package/lib/cjs/client/index.cjs +2 -2
  43. package/lib/cjs/client/index.cjs.map +1 -0
  44. package/lib/cjs/client/indexes/generation.cjs +9 -4
  45. package/lib/cjs/client/indexes/generation.cjs.map +1 -0
  46. package/lib/cjs/client/indexes/index.cjs +2 -2
  47. package/lib/cjs/client/indexes/index.cjs.map +1 -0
  48. package/lib/cjs/client/logging.cjs +2 -2
  49. package/lib/cjs/client/logging.cjs.map +1 -0
  50. package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
  51. package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +1 -0
  52. package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
  53. package/lib/cjs/client/services/FabricIdentityService.cjs.map +1 -0
  54. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
  55. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +1 -0
  56. package/lib/cjs/client/services/constants.cjs +2 -2
  57. package/lib/cjs/client/services/constants.cjs.map +1 -0
  58. package/lib/cjs/client/services/index.cjs +2 -2
  59. package/lib/cjs/client/services/index.cjs.map +1 -0
  60. package/lib/cjs/client/types.cjs +2 -2
  61. package/lib/cjs/client/types.cjs.map +1 -0
  62. package/lib/cjs/client/utils.cjs +2 -2
  63. package/lib/cjs/client/utils.cjs.map +1 -0
  64. package/lib/cjs/contract/Address.cjs +2 -2
  65. package/lib/cjs/contract/Address.cjs.map +1 -0
  66. package/lib/cjs/contract/AddressContract.cjs +2 -2
  67. package/lib/cjs/contract/AddressContract.cjs.map +1 -0
  68. package/lib/cjs/contract/AuditContract.cjs +2 -2
  69. package/lib/cjs/contract/AuditContract.cjs.map +1 -0
  70. package/lib/cjs/contract/BatchContract.cjs +2 -2
  71. package/lib/cjs/contract/BatchContract.cjs.map +1 -0
  72. package/lib/cjs/contract/MarketContract.cjs +2 -2
  73. package/lib/cjs/contract/MarketContract.cjs.map +1 -0
  74. package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
  75. package/lib/cjs/contract/OtherAuditContract.cjs.map +1 -0
  76. package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
  77. package/lib/cjs/contract/OtherBatchContract.cjs.map +1 -0
  78. package/lib/cjs/contract/OtherLeafletContract.cjs +72 -0
  79. package/lib/cjs/contract/OtherLeafletContract.cjs.map +1 -0
  80. package/lib/cjs/contract/OtherLeafletFileContract.cjs +76 -0
  81. package/lib/cjs/contract/OtherLeafletFileContract.cjs.map +1 -0
  82. package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
  83. package/lib/cjs/contract/OtherMarketContract.cjs.map +1 -0
  84. package/lib/cjs/contract/OtherProductContract.cjs +2 -2
  85. package/lib/cjs/contract/OtherProductContract.cjs.map +1 -0
  86. package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
  87. package/lib/cjs/contract/OtherProductImageContract.cjs.map +1 -0
  88. package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
  89. package/lib/cjs/contract/OtherProductSharedContract.cjs.map +1 -0
  90. package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
  91. package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +1 -0
  92. package/lib/cjs/contract/Product.cjs +2 -2
  93. package/lib/cjs/contract/Product.cjs.map +1 -0
  94. package/lib/cjs/contract/ProductContract.cjs +2 -2
  95. package/lib/cjs/contract/ProductContract.cjs.map +1 -0
  96. package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
  97. package/lib/cjs/contract/ProductStrengthContract.cjs.map +1 -0
  98. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
  99. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +1 -0
  100. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
  101. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +1 -0
  102. package/lib/cjs/contract/User.cjs +2 -2
  103. package/lib/cjs/contract/User.cjs.map +1 -0
  104. package/lib/cjs/contract/UserContract.cjs +2 -2
  105. package/lib/cjs/contract/UserContract.cjs.map +1 -0
  106. package/lib/cjs/contract/index.cjs +20 -20
  107. package/lib/cjs/contract/index.cjs.map +1 -0
  108. package/lib/cjs/contract/logging-context.cjs +2 -2
  109. package/lib/cjs/contract/logging-context.cjs.map +1 -0
  110. package/lib/cjs/contract/models/Audit.cjs +2 -2
  111. package/lib/cjs/contract/models/Audit.cjs.map +1 -0
  112. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
  113. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +1 -0
  114. package/lib/cjs/contract/models/BaseModel.cjs +2 -2
  115. package/lib/cjs/contract/models/BaseModel.cjs.map +1 -0
  116. package/lib/cjs/contract/models/Batch.cjs +2 -2
  117. package/lib/cjs/contract/models/Batch.cjs.map +1 -0
  118. package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
  119. package/lib/cjs/contract/models/GtinOwner.cjs.map +1 -0
  120. package/lib/cjs/contract/models/History.cjs +2 -2
  121. package/lib/cjs/contract/models/History.cjs.map +1 -0
  122. package/lib/cjs/contract/models/Leaflet.cjs +2 -2
  123. package/lib/cjs/contract/models/Leaflet.cjs.map +1 -0
  124. package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
  125. package/lib/cjs/contract/models/LeafletFile.cjs.map +1 -0
  126. package/lib/cjs/contract/models/Market.cjs +2 -2
  127. package/lib/cjs/contract/models/Market.cjs.map +1 -0
  128. package/lib/cjs/contract/models/OtherAudit.cjs +3 -3
  129. package/lib/cjs/contract/models/OtherAudit.cjs.map +1 -0
  130. package/lib/cjs/contract/models/OtherBatchShared.cjs +137 -28
  131. package/lib/cjs/contract/models/OtherBatchShared.cjs.map +1 -0
  132. package/lib/cjs/contract/models/OtherLeaflet.cjs +3 -3
  133. package/lib/cjs/contract/models/OtherLeaflet.cjs.map +1 -0
  134. package/lib/cjs/contract/models/OtherLeafletFile.cjs +3 -3
  135. package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +1 -0
  136. package/lib/cjs/contract/models/OtherMarket.cjs +3 -3
  137. package/lib/cjs/contract/models/OtherMarket.cjs.map +1 -0
  138. package/lib/cjs/contract/models/OtherProduct.cjs +3 -3
  139. package/lib/cjs/contract/models/OtherProduct.cjs.map +1 -0
  140. package/lib/cjs/contract/models/OtherProductImage.cjs +3 -3
  141. package/lib/cjs/contract/models/OtherProductImage.cjs.map +1 -0
  142. package/lib/cjs/contract/models/OtherProductShared.cjs +3 -3
  143. package/lib/cjs/contract/models/OtherProductShared.cjs.map +1 -0
  144. package/lib/cjs/contract/models/OtherProductStrength.cjs +3 -5
  145. package/lib/cjs/contract/models/OtherProductStrength.cjs.map +1 -0
  146. package/lib/cjs/contract/models/Product.cjs +2 -2
  147. package/lib/cjs/contract/models/Product.cjs.map +1 -0
  148. package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
  149. package/lib/cjs/contract/models/ProductStrength.cjs.map +1 -0
  150. package/lib/cjs/contract/models/SegregatedDocument.cjs +2 -2
  151. package/lib/cjs/contract/models/SegregatedDocument.cjs.map +1 -0
  152. package/lib/cjs/contract/models/constants.cjs +2 -2
  153. package/lib/cjs/contract/models/constants.cjs.map +1 -0
  154. package/lib/cjs/contract/models/decorators-private.cjs +2 -2
  155. package/lib/cjs/contract/models/decorators-private.cjs.map +1 -0
  156. package/lib/cjs/contract/models/decorators.cjs +2 -2
  157. package/lib/cjs/contract/models/decorators.cjs.map +1 -0
  158. package/lib/cjs/contract/models/gtin.cjs +2 -2
  159. package/lib/cjs/contract/models/gtin.cjs.map +1 -0
  160. package/lib/cjs/contract/models/history-dec.cjs +2 -2
  161. package/lib/cjs/contract/models/history-dec.cjs.map +1 -0
  162. package/lib/cjs/contract/trackedModels/History.cjs +81 -0
  163. package/lib/cjs/contract/trackedModels/History.cjs.map +1 -0
  164. package/lib/cjs/contract/trackedModels/OtherAudit.cjs +124 -0
  165. package/lib/cjs/contract/trackedModels/OtherAudit.cjs.map +1 -0
  166. package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs +121 -0
  167. package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs.map +1 -0
  168. package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs +71 -0
  169. package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs.map +1 -0
  170. package/lib/cjs/contract/trackedModels/OtherMarket.cjs +90 -0
  171. package/lib/cjs/contract/trackedModels/OtherMarket.cjs.map +1 -0
  172. package/lib/cjs/contract/trackedModels/OtherProduct.cjs +83 -0
  173. package/lib/cjs/contract/trackedModels/OtherProduct.cjs.map +1 -0
  174. package/lib/cjs/contract/trackedModels/OtherProductImage.cjs +65 -0
  175. package/lib/cjs/contract/trackedModels/OtherProductImage.cjs.map +1 -0
  176. package/lib/cjs/contract/trackedModels/OtherProductShared.cjs +105 -0
  177. package/lib/cjs/contract/trackedModels/OtherProductShared.cjs.map +1 -0
  178. package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs +91 -0
  179. package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs.map +1 -0
  180. package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
  181. package/lib/cjs/contracts/ContractAdapter.cjs.map +1 -0
  182. package/lib/cjs/contracts/ContractContext.cjs +2 -2
  183. package/lib/cjs/contracts/ContractContext.cjs.map +1 -0
  184. package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
  185. package/lib/cjs/contracts/FabricContractDispatch.cjs.map +1 -0
  186. package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
  187. package/lib/cjs/contracts/FabricContractPaginator.cjs.map +1 -0
  188. package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
  189. package/lib/cjs/contracts/FabricContractRepository.cjs.map +1 -0
  190. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
  191. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +1 -0
  192. package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
  193. package/lib/cjs/contracts/FabricContractSequence.cjs.map +1 -0
  194. package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
  195. package/lib/cjs/contracts/FabricContractStatement.cjs.map +1 -0
  196. package/lib/cjs/contracts/MigrationContract.cjs +2 -2
  197. package/lib/cjs/contracts/MigrationContract.cjs.map +1 -0
  198. package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
  199. package/lib/cjs/contracts/PrivateSequence.cjs.map +1 -0
  200. package/lib/cjs/contracts/auth/decorators.cjs +2 -2
  201. package/lib/cjs/contracts/auth/decorators.cjs.map +1 -0
  202. package/lib/cjs/contracts/auth/index.cjs +2 -2
  203. package/lib/cjs/contracts/auth/index.cjs.map +1 -0
  204. package/lib/cjs/contracts/bootstrap.cjs +14 -0
  205. package/lib/cjs/contracts/bootstrap.cjs.map +1 -0
  206. package/lib/cjs/contracts/crud/crud-contract.cjs +3 -2
  207. package/lib/cjs/contracts/crud/crud-contract.cjs.map +1 -0
  208. package/lib/cjs/contracts/crud/index.cjs +2 -2
  209. package/lib/cjs/contracts/crud/index.cjs.map +1 -0
  210. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
  211. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +1 -0
  212. package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
  213. package/lib/cjs/contracts/erc20/erc20contract.cjs.map +1 -0
  214. package/lib/cjs/contracts/erc20/index.cjs +2 -2
  215. package/lib/cjs/contracts/erc20/index.cjs.map +1 -0
  216. package/lib/cjs/contracts/erc20/models.cjs +2 -2
  217. package/lib/cjs/contracts/erc20/models.cjs.map +1 -0
  218. package/lib/cjs/contracts/fabric-overrides.cjs +65 -0
  219. package/lib/cjs/contracts/fabric-overrides.cjs.map +1 -0
  220. package/lib/cjs/contracts/index.cjs +3 -2
  221. package/lib/cjs/contracts/index.cjs.map +1 -0
  222. package/lib/cjs/contracts/logging.cjs +2 -2
  223. package/lib/cjs/contracts/logging.cjs.map +1 -0
  224. package/lib/cjs/contracts/overrides.cjs +2 -2
  225. package/lib/cjs/contracts/overrides.cjs.map +1 -0
  226. package/lib/cjs/contracts/types.cjs +2 -2
  227. package/lib/cjs/contracts/types.cjs.map +1 -0
  228. package/lib/cjs/contracts/uuid.cjs +2 -2
  229. package/lib/cjs/contracts/uuid.cjs.map +1 -0
  230. package/lib/cjs/index.cjs +2 -2
  231. package/lib/cjs/index.cjs.map +1 -0
  232. package/lib/cjs/shared/ClientSerializer.cjs +2 -2
  233. package/lib/cjs/shared/ClientSerializer.cjs.map +1 -0
  234. package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
  235. package/lib/cjs/shared/DeterministicSerializer.cjs.map +1 -0
  236. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
  237. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +1 -0
  238. package/lib/cjs/shared/constants.cjs +2 -2
  239. package/lib/cjs/shared/constants.cjs.map +1 -0
  240. package/lib/cjs/shared/decorators.cjs +2 -2
  241. package/lib/cjs/shared/decorators.cjs.map +1 -0
  242. package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
  243. package/lib/cjs/shared/erc20/erc20-constants.cjs.map +1 -0
  244. package/lib/cjs/shared/erc20/index.cjs +2 -2
  245. package/lib/cjs/shared/erc20/index.cjs.map +1 -0
  246. package/lib/cjs/shared/errors.cjs +2 -2
  247. package/lib/cjs/shared/errors.cjs.map +1 -0
  248. package/lib/cjs/shared/events.cjs +2 -2
  249. package/lib/cjs/shared/events.cjs.map +1 -0
  250. package/lib/cjs/shared/fabric-types.cjs +2 -2
  251. package/lib/cjs/shared/fabric-types.cjs.map +1 -0
  252. package/lib/cjs/shared/index.cjs +2 -2
  253. package/lib/cjs/shared/index.cjs.map +1 -0
  254. package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
  255. package/lib/cjs/shared/interfaces/Checkable.cjs.map +1 -0
  256. package/lib/cjs/shared/interfaces/index.cjs +2 -2
  257. package/lib/cjs/shared/interfaces/index.cjs.map +1 -0
  258. package/lib/cjs/shared/math.cjs +2 -2
  259. package/lib/cjs/shared/math.cjs.map +1 -0
  260. package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
  261. package/lib/cjs/shared/model/FabricBaseModel.cjs.map +1 -0
  262. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
  263. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +1 -0
  264. package/lib/cjs/shared/model/Identity.cjs +2 -2
  265. package/lib/cjs/shared/model/Identity.cjs.map +1 -0
  266. package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
  267. package/lib/cjs/shared/model/IdentityCredentials.cjs.map +1 -0
  268. package/lib/cjs/shared/model/index.cjs +2 -2
  269. package/lib/cjs/shared/model/index.cjs.map +1 -0
  270. package/lib/cjs/shared/overrides/Model.cjs +2 -2
  271. package/lib/cjs/shared/overrides/Model.cjs.map +1 -0
  272. package/lib/cjs/shared/overrides/index.cjs +2 -2
  273. package/lib/cjs/shared/overrides/index.cjs.map +1 -0
  274. package/lib/cjs/shared/overrides/overrides.cjs +2 -2
  275. package/lib/cjs/shared/overrides/overrides.cjs.map +1 -0
  276. package/lib/cjs/shared/types.cjs +2 -2
  277. package/lib/cjs/shared/types.cjs.map +1 -0
  278. package/lib/cjs/version.cjs +3 -3
  279. package/lib/cjs/version.cjs.map +1 -0
  280. package/lib/esm/bin/cli.js +1 -1
  281. package/lib/esm/bin/cli.js.map +1 -0
  282. package/lib/esm/cli-module.js +106 -2
  283. package/lib/esm/cli-module.js.map +1 -0
  284. package/lib/esm/cli-utils.js +1 -1
  285. package/lib/esm/cli-utils.js.map +1 -0
  286. package/lib/esm/client/FabricClientAdapter.js +1 -1
  287. package/lib/esm/client/FabricClientAdapter.js.map +1 -0
  288. package/lib/esm/client/FabricClientDispatch.js +1 -1
  289. package/lib/esm/client/FabricClientDispatch.js.map +1 -0
  290. package/lib/esm/client/FabricClientPaginator.js +1 -1
  291. package/lib/esm/client/FabricClientPaginator.js.map +1 -0
  292. package/lib/esm/client/FabricClientRepository.js +1 -1
  293. package/lib/esm/client/FabricClientRepository.js.map +1 -0
  294. package/lib/esm/client/FabricClientStatement.js +1 -1
  295. package/lib/esm/client/FabricClientStatement.js.map +1 -0
  296. package/lib/esm/client/collections/generation.js +1 -1
  297. package/lib/esm/client/collections/generation.js.map +1 -0
  298. package/lib/esm/client/collections/index.js +1 -1
  299. package/lib/esm/client/collections/index.js.map +1 -0
  300. package/lib/esm/client/constants.js +1 -1
  301. package/lib/esm/client/constants.js.map +1 -0
  302. package/lib/esm/client/crypto.js +1 -1
  303. package/lib/esm/client/crypto.js.map +1 -0
  304. package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
  305. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -0
  306. package/lib/esm/client/erc20/index.js +1 -1
  307. package/lib/esm/client/erc20/index.js.map +1 -0
  308. package/lib/esm/client/fabric-fs.js +1 -1
  309. package/lib/esm/client/fabric-fs.js.map +1 -0
  310. package/lib/esm/client/fabric-hsm.js +1 -1
  311. package/lib/esm/client/fabric-hsm.js.map +1 -0
  312. package/lib/esm/client/ids/id-extraction.js +1 -1
  313. package/lib/esm/client/ids/id-extraction.js.map +1 -0
  314. package/lib/esm/client/ids/index.js +1 -1
  315. package/lib/esm/client/ids/index.js.map +1 -0
  316. package/lib/esm/client/index.js +1 -1
  317. package/lib/esm/client/index.js.map +1 -0
  318. package/lib/esm/client/indexes/generation.js +8 -3
  319. package/lib/esm/client/indexes/generation.js.map +1 -0
  320. package/lib/esm/client/indexes/index.js +1 -1
  321. package/lib/esm/client/indexes/index.js.map +1 -0
  322. package/lib/esm/client/logging.js +1 -1
  323. package/lib/esm/client/logging.js.map +1 -0
  324. package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
  325. package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -0
  326. package/lib/esm/client/services/FabricIdentityService.js +1 -1
  327. package/lib/esm/client/services/FabricIdentityService.js.map +1 -0
  328. package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
  329. package/lib/esm/client/services/RegistrationRequestBuilder.js.map +1 -0
  330. package/lib/esm/client/services/constants.js +1 -1
  331. package/lib/esm/client/services/constants.js.map +1 -0
  332. package/lib/esm/client/services/index.js +1 -1
  333. package/lib/esm/client/services/index.js.map +1 -0
  334. package/lib/esm/client/types.js +1 -1
  335. package/lib/esm/client/types.js.map +1 -0
  336. package/lib/esm/client/utils.js +1 -1
  337. package/lib/esm/client/utils.js.map +1 -0
  338. package/lib/esm/contract/Address.js +1 -1
  339. package/lib/esm/contract/Address.js.map +1 -0
  340. package/lib/esm/contract/AddressContract.js +1 -1
  341. package/lib/esm/contract/AddressContract.js.map +1 -0
  342. package/lib/esm/contract/AuditContract.js +1 -1
  343. package/lib/esm/contract/AuditContract.js.map +1 -0
  344. package/lib/esm/contract/BatchContract.js +1 -1
  345. package/lib/esm/contract/BatchContract.js.map +1 -0
  346. package/lib/esm/contract/MarketContract.js +1 -1
  347. package/lib/esm/contract/MarketContract.js.map +1 -0
  348. package/lib/esm/contract/OtherAuditContract.js +1 -1
  349. package/lib/esm/contract/OtherAuditContract.js.map +1 -0
  350. package/lib/esm/contract/OtherBatchContract.js +1 -1
  351. package/lib/esm/contract/OtherBatchContract.js.map +1 -0
  352. package/lib/esm/contract/OtherLeafletContract.js +63 -0
  353. package/lib/esm/contract/OtherLeafletContract.js.map +1 -0
  354. package/lib/esm/contract/OtherLeafletFileContract.js +67 -0
  355. package/lib/esm/contract/OtherLeafletFileContract.js.map +1 -0
  356. package/lib/esm/contract/OtherMarketContract.js +1 -1
  357. package/lib/esm/contract/OtherMarketContract.js.map +1 -0
  358. package/lib/esm/contract/OtherProductContract.js +1 -1
  359. package/lib/esm/contract/OtherProductContract.js.map +1 -0
  360. package/lib/esm/contract/OtherProductImageContract.js +1 -1
  361. package/lib/esm/contract/OtherProductImageContract.js.map +1 -0
  362. package/lib/esm/contract/OtherProductSharedContract.js +1 -1
  363. package/lib/esm/contract/OtherProductSharedContract.js.map +1 -0
  364. package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
  365. package/lib/esm/contract/OtherProductStrengthContract.js.map +1 -0
  366. package/lib/esm/contract/Product.js +1 -1
  367. package/lib/esm/contract/Product.js.map +1 -0
  368. package/lib/esm/contract/ProductContract.js +1 -1
  369. package/lib/esm/contract/ProductContract.js.map +1 -0
  370. package/lib/esm/contract/ProductStrengthContract.js +1 -1
  371. package/lib/esm/contract/ProductStrengthContract.js.map +1 -0
  372. package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
  373. package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +1 -0
  374. package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
  375. package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +1 -0
  376. package/lib/esm/contract/User.js +1 -1
  377. package/lib/esm/contract/User.js.map +1 -0
  378. package/lib/esm/contract/UserContract.js +1 -1
  379. package/lib/esm/contract/UserContract.js.map +1 -0
  380. package/lib/esm/contract/index.js +19 -19
  381. package/lib/esm/contract/index.js.map +1 -0
  382. package/lib/esm/contract/logging-context.js +1 -1
  383. package/lib/esm/contract/logging-context.js.map +1 -0
  384. package/lib/esm/contract/models/Audit.js +1 -1
  385. package/lib/esm/contract/models/Audit.js.map +1 -0
  386. package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
  387. package/lib/esm/contract/models/BaseIdentifiedModel.js.map +1 -0
  388. package/lib/esm/contract/models/BaseModel.js +1 -1
  389. package/lib/esm/contract/models/BaseModel.js.map +1 -0
  390. package/lib/esm/contract/models/Batch.js +1 -1
  391. package/lib/esm/contract/models/Batch.js.map +1 -0
  392. package/lib/esm/contract/models/GtinOwner.js +1 -1
  393. package/lib/esm/contract/models/GtinOwner.js.map +1 -0
  394. package/lib/esm/contract/models/History.js +1 -1
  395. package/lib/esm/contract/models/History.js.map +1 -0
  396. package/lib/esm/contract/models/Leaflet.js +1 -1
  397. package/lib/esm/contract/models/Leaflet.js.map +1 -0
  398. package/lib/esm/contract/models/LeafletFile.js +1 -1
  399. package/lib/esm/contract/models/LeafletFile.js.map +1 -0
  400. package/lib/esm/contract/models/Market.js +1 -1
  401. package/lib/esm/contract/models/Market.js.map +1 -0
  402. package/lib/esm/contract/models/OtherAudit.js +2 -2
  403. package/lib/esm/contract/models/OtherAudit.js.map +1 -0
  404. package/lib/esm/contract/models/OtherBatchShared.js +139 -31
  405. package/lib/esm/contract/models/OtherBatchShared.js.map +1 -0
  406. package/lib/esm/contract/models/OtherLeaflet.js +2 -2
  407. package/lib/esm/contract/models/OtherLeaflet.js.map +1 -0
  408. package/lib/esm/contract/models/OtherLeafletFile.js +2 -2
  409. package/lib/esm/contract/models/OtherLeafletFile.js.map +1 -0
  410. package/lib/esm/contract/models/OtherMarket.js +2 -2
  411. package/lib/esm/contract/models/OtherMarket.js.map +1 -0
  412. package/lib/esm/contract/models/OtherProduct.js +2 -2
  413. package/lib/esm/contract/models/OtherProduct.js.map +1 -0
  414. package/lib/esm/contract/models/OtherProductImage.js +2 -2
  415. package/lib/esm/contract/models/OtherProductImage.js.map +1 -0
  416. package/lib/esm/contract/models/OtherProductShared.js +2 -2
  417. package/lib/esm/contract/models/OtherProductShared.js.map +1 -0
  418. package/lib/esm/contract/models/OtherProductStrength.js +2 -4
  419. package/lib/esm/contract/models/OtherProductStrength.js.map +1 -0
  420. package/lib/esm/contract/models/Product.js +1 -1
  421. package/lib/esm/contract/models/Product.js.map +1 -0
  422. package/lib/esm/contract/models/ProductStrength.js +1 -1
  423. package/lib/esm/contract/models/ProductStrength.js.map +1 -0
  424. package/lib/esm/contract/models/SegregatedDocument.js +1 -1
  425. package/lib/esm/contract/models/SegregatedDocument.js.map +1 -0
  426. package/lib/esm/contract/models/constants.js +1 -1
  427. package/lib/esm/contract/models/constants.js.map +1 -0
  428. package/lib/esm/contract/models/decorators-private.js +1 -1
  429. package/lib/esm/contract/models/decorators-private.js.map +1 -0
  430. package/lib/esm/contract/models/decorators.js +1 -1
  431. package/lib/esm/contract/models/decorators.js.map +1 -0
  432. package/lib/esm/contract/models/gtin.js +1 -1
  433. package/lib/esm/contract/models/gtin.js.map +1 -0
  434. package/lib/esm/contract/models/history-dec.js +1 -1
  435. package/lib/esm/contract/models/history-dec.js.map +1 -0
  436. package/lib/esm/contract/trackedModels/History.js +72 -0
  437. package/lib/esm/contract/trackedModels/History.js.map +1 -0
  438. package/lib/esm/contract/trackedModels/OtherAudit.js +115 -0
  439. package/lib/esm/contract/trackedModels/OtherAudit.js.map +1 -0
  440. package/lib/esm/contract/trackedModels/OtherLeaflet.js +112 -0
  441. package/lib/esm/contract/trackedModels/OtherLeaflet.js.map +1 -0
  442. package/lib/esm/contract/trackedModels/OtherLeafletFile.js +62 -0
  443. package/lib/esm/contract/trackedModels/OtherLeafletFile.js.map +1 -0
  444. package/lib/esm/contract/trackedModels/OtherMarket.js +81 -0
  445. package/lib/esm/contract/trackedModels/OtherMarket.js.map +1 -0
  446. package/lib/esm/contract/trackedModels/OtherProduct.js +74 -0
  447. package/lib/esm/contract/trackedModels/OtherProduct.js.map +1 -0
  448. package/lib/esm/contract/trackedModels/OtherProductImage.js +56 -0
  449. package/lib/esm/contract/trackedModels/OtherProductImage.js.map +1 -0
  450. package/lib/esm/contract/trackedModels/OtherProductShared.js +96 -0
  451. package/lib/esm/contract/trackedModels/OtherProductShared.js.map +1 -0
  452. package/lib/esm/contract/trackedModels/OtherProductStrength.js +82 -0
  453. package/lib/esm/contract/trackedModels/OtherProductStrength.js.map +1 -0
  454. package/lib/esm/contracts/ContractAdapter.js +1 -1
  455. package/lib/esm/contracts/ContractAdapter.js.map +1 -0
  456. package/lib/esm/contracts/ContractContext.js +1 -1
  457. package/lib/esm/contracts/ContractContext.js.map +1 -0
  458. package/lib/esm/contracts/FabricContractDispatch.js +1 -1
  459. package/lib/esm/contracts/FabricContractDispatch.js.map +1 -0
  460. package/lib/esm/contracts/FabricContractPaginator.js +1 -1
  461. package/lib/esm/contracts/FabricContractPaginator.js.map +1 -0
  462. package/lib/esm/contracts/FabricContractRepository.js +1 -1
  463. package/lib/esm/contracts/FabricContractRepository.js.map +1 -0
  464. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
  465. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
  466. package/lib/esm/contracts/FabricContractSequence.js +1 -1
  467. package/lib/esm/contracts/FabricContractSequence.js.map +1 -0
  468. package/lib/esm/contracts/FabricContractStatement.js +1 -1
  469. package/lib/esm/contracts/FabricContractStatement.js.map +1 -0
  470. package/lib/esm/contracts/MigrationContract.js +1 -1
  471. package/lib/esm/contracts/MigrationContract.js.map +1 -0
  472. package/lib/esm/contracts/PrivateSequence.js +1 -1
  473. package/lib/esm/contracts/PrivateSequence.js.map +1 -0
  474. package/lib/esm/contracts/auth/decorators.js +1 -1
  475. package/lib/esm/contracts/auth/decorators.js.map +1 -0
  476. package/lib/esm/contracts/auth/index.js +1 -1
  477. package/lib/esm/contracts/auth/index.js.map +1 -0
  478. package/lib/esm/contracts/bootstrap.js +11 -0
  479. package/lib/esm/contracts/bootstrap.js.map +1 -0
  480. package/lib/esm/contracts/crud/crud-contract.js +2 -1
  481. package/lib/esm/contracts/crud/crud-contract.js.map +1 -0
  482. package/lib/esm/contracts/crud/index.js +1 -1
  483. package/lib/esm/contracts/crud/index.js.map +1 -0
  484. package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
  485. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -0
  486. package/lib/esm/contracts/erc20/erc20contract.js +1 -1
  487. package/lib/esm/contracts/erc20/erc20contract.js.map +1 -0
  488. package/lib/esm/contracts/erc20/index.js +1 -1
  489. package/lib/esm/contracts/erc20/index.js.map +1 -0
  490. package/lib/esm/contracts/erc20/models.js +1 -1
  491. package/lib/esm/contracts/erc20/models.js.map +1 -0
  492. package/lib/esm/contracts/fabric-overrides.js +61 -0
  493. package/lib/esm/contracts/fabric-overrides.js.map +1 -0
  494. package/lib/esm/contracts/index.js +2 -1
  495. package/lib/esm/contracts/index.js.map +1 -0
  496. package/lib/esm/contracts/logging.js +1 -1
  497. package/lib/esm/contracts/logging.js.map +1 -0
  498. package/lib/esm/contracts/overrides.js +1 -1
  499. package/lib/esm/contracts/overrides.js.map +1 -0
  500. package/lib/esm/contracts/types.js +1 -1
  501. package/lib/esm/contracts/types.js.map +1 -0
  502. package/lib/esm/contracts/uuid.js +1 -1
  503. package/lib/esm/contracts/uuid.js.map +1 -0
  504. package/lib/esm/index.js +1 -1
  505. package/lib/esm/index.js.map +1 -0
  506. package/lib/esm/shared/ClientSerializer.js +1 -1
  507. package/lib/esm/shared/ClientSerializer.js.map +1 -0
  508. package/lib/esm/shared/DeterministicSerializer.js +1 -1
  509. package/lib/esm/shared/DeterministicSerializer.js.map +1 -0
  510. package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
  511. package/lib/esm/shared/SimpleDeterministicSerializer.js.map +1 -0
  512. package/lib/esm/shared/constants.js +1 -1
  513. package/lib/esm/shared/constants.js.map +1 -0
  514. package/lib/esm/shared/decorators.js +1 -1
  515. package/lib/esm/shared/decorators.js.map +1 -0
  516. package/lib/esm/shared/erc20/erc20-constants.js +1 -1
  517. package/lib/esm/shared/erc20/erc20-constants.js.map +1 -0
  518. package/lib/esm/shared/erc20/index.js +1 -1
  519. package/lib/esm/shared/erc20/index.js.map +1 -0
  520. package/lib/esm/shared/errors.js +1 -1
  521. package/lib/esm/shared/errors.js.map +1 -0
  522. package/lib/esm/shared/events.js +1 -1
  523. package/lib/esm/shared/events.js.map +1 -0
  524. package/lib/esm/shared/fabric-types.js +1 -1
  525. package/lib/esm/shared/fabric-types.js.map +1 -0
  526. package/lib/esm/shared/index.js +1 -1
  527. package/lib/esm/shared/index.js.map +1 -0
  528. package/lib/esm/shared/interfaces/Checkable.js +1 -1
  529. package/lib/esm/shared/interfaces/Checkable.js.map +1 -0
  530. package/lib/esm/shared/interfaces/index.js +1 -1
  531. package/lib/esm/shared/interfaces/index.js.map +1 -0
  532. package/lib/esm/shared/math.js +1 -1
  533. package/lib/esm/shared/math.js.map +1 -0
  534. package/lib/esm/shared/model/FabricBaseModel.js +1 -1
  535. package/lib/esm/shared/model/FabricBaseModel.js.map +1 -0
  536. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
  537. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
  538. package/lib/esm/shared/model/Identity.js +1 -1
  539. package/lib/esm/shared/model/Identity.js.map +1 -0
  540. package/lib/esm/shared/model/IdentityCredentials.js +1 -1
  541. package/lib/esm/shared/model/IdentityCredentials.js.map +1 -0
  542. package/lib/esm/shared/model/index.js +1 -1
  543. package/lib/esm/shared/model/index.js.map +1 -0
  544. package/lib/esm/shared/overrides/Model.js +1 -1
  545. package/lib/esm/shared/overrides/Model.js.map +1 -0
  546. package/lib/esm/shared/overrides/index.js +1 -1
  547. package/lib/esm/shared/overrides/index.js.map +1 -0
  548. package/lib/esm/shared/overrides/overrides.js +1 -1
  549. package/lib/esm/shared/overrides/overrides.js.map +1 -0
  550. package/lib/esm/shared/types.js +1 -1
  551. package/lib/esm/shared/types.js.map +1 -0
  552. package/lib/esm/version.js +2 -2
  553. package/lib/esm/version.js.map +1 -0
  554. package/lib/types/contract/OtherLeafletContract.d.cts +18 -0
  555. package/lib/types/contract/OtherLeafletContract.d.mts +18 -0
  556. package/lib/types/contract/OtherLeafletFileContract.d.cts +17 -0
  557. package/lib/types/contract/OtherLeafletFileContract.d.mts +17 -0
  558. package/lib/types/contract/index.d.cts +1 -0
  559. package/lib/types/contract/index.d.mts +1 -0
  560. package/lib/types/contract/models/OtherBatchShared.d.cts +43 -6
  561. package/lib/types/contract/models/OtherBatchShared.d.mts +43 -6
  562. package/lib/types/contract/trackedModels/History.d.cts +9 -0
  563. package/lib/types/contract/trackedModels/History.d.mts +9 -0
  564. package/lib/types/contract/trackedModels/OtherAudit.d.cts +15 -0
  565. package/lib/types/contract/trackedModels/OtherAudit.d.mts +15 -0
  566. package/lib/types/contract/trackedModels/OtherLeaflet.d.cts +16 -0
  567. package/lib/types/contract/trackedModels/OtherLeaflet.d.mts +16 -0
  568. package/lib/types/contract/trackedModels/OtherLeafletFile.d.cts +10 -0
  569. package/lib/types/contract/trackedModels/OtherLeafletFile.d.mts +10 -0
  570. package/lib/types/contract/trackedModels/OtherMarket.d.cts +13 -0
  571. package/lib/types/contract/trackedModels/OtherMarket.d.mts +13 -0
  572. package/lib/types/contract/trackedModels/OtherProduct.d.cts +12 -0
  573. package/lib/types/contract/trackedModels/OtherProduct.d.mts +12 -0
  574. package/lib/types/contract/trackedModels/OtherProductImage.d.cts +9 -0
  575. package/lib/types/contract/trackedModels/OtherProductImage.d.mts +9 -0
  576. package/lib/types/contract/trackedModels/OtherProductShared.d.cts +18 -0
  577. package/lib/types/contract/trackedModels/OtherProductShared.d.mts +18 -0
  578. package/lib/types/contract/trackedModels/OtherProductStrength.d.cts +12 -0
  579. package/lib/types/contract/trackedModels/OtherProductStrength.d.mts +12 -0
  580. package/lib/types/contracts/bootstrap.d.cts +10 -0
  581. package/lib/types/contracts/bootstrap.d.mts +10 -0
  582. package/lib/types/contracts/crud/crud-contract.d.cts +1 -0
  583. package/lib/types/contracts/crud/crud-contract.d.mts +1 -0
  584. package/lib/types/contracts/fabric-overrides.d.cts +1 -0
  585. package/lib/types/contracts/fabric-overrides.d.mts +1 -0
  586. package/lib/types/contracts/index.d.cts +1 -0
  587. package/lib/types/contracts/index.d.mts +1 -0
  588. package/lib/types/version.d.cts +1 -1
  589. package/lib/types/version.d.mts +1 -1
  590. package/package.json +31 -5
@@ -583,5 +583,5 @@ __decorate([
583
583
  __metadata("design:paramtypes", [fabric_contract_api_1.Context]),
584
584
  __metadata("design:returntype", Promise)
585
585
  ], FabricERC20Contract.prototype, "ClientAccountID", null);
586
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJjMjBjb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmFjdHMvZXJjMjAvZXJjMjBjb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSwrQkFBMEI7QUFDN0MsT0FBTyxFQUNMLGNBQWMsRUFDZCxZQUFZLEVBQ1osbUJBQW1CLEdBQ3BCLGlDQUE0QjtBQUM3QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0NBQTJCO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxvQkFBaUI7QUFDOUQsT0FBTyxFQUFFLEtBQUssRUFBRSxxQ0FBZ0M7QUFDaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHlDQUFvQztBQUV2RSxPQUFPLEVBQ0wsU0FBUyxFQUNULGFBQWEsRUFDYixhQUFhLEVBQ2IsZUFBZSxHQUNoQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQ0FBOEI7QUFFM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxnREFBMkM7QUFFakU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQUNILE1BQU0sT0FBZ0IsbUJBQW9CLFNBQVEsa0JBQStCO0lBTy9FLFlBQXNCLElBQVk7UUFDaEMsS0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUV6QixtQkFBbUIsQ0FBQyxPQUFPO1lBQ3pCLG1CQUFtQixDQUFDLE9BQU8sSUFBSSxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFFN0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDLFFBQVEs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RjtBQXRtQk87SUFETCxXQUFXLENBQUMsS0FBSyxDQUFDOztxQ0FDTSxPQUFPOztvREFTL0I7QUFTSztJQURMLFdBQVcsQ0FBQyxLQUFLLENBQUM7O3FDQUNHLE9BQU87O2lEQVM1QjtBQVVLO0lBREwsV0FBVyxDQUFDLEtBQUssQ0FBQzs7cUNBQ0ssT0FBTzs7bURBUzlCO0FBU0s7SUFETCxXQUFXLENBQUMsS0FBSyxDQUFDOztxQ0FDUSxPQUFPOztzREFtQmpDO0FBVUs7SUFETCxXQUFXLENBQUMsS0FBSyxDQUFDOztxQ0FDTSxPQUFPOztvREFRL0I7QUFhSztJQURMLFdBQVcsRUFBRTs7cUNBRUgsT0FBTzs7bURBZ0JqQjtBQVlLO0lBREwsV0FBVyxFQUFFOztxQ0FFSCxPQUFPOzt1REE0Q2pCO0FBd0dLO0lBREwsV0FBVyxFQUFFOztxQ0FFSCxPQUFPOztrREEyQ2pCO0FBV0s7SUFETCxXQUFXLENBQUMsS0FBSyxDQUFDOztxQ0FFUixPQUFPOztvREFnQmpCO0FBK0JLO0lBREwsV0FBVyxFQUFFOztxQ0FDWSxPQUFPLEVBQVMsVUFBVTs7cURBZW5EO0FBSUs7SUFETCxXQUFXLENBQUMsS0FBSyxDQUFDOztxQ0FDYSxPQUFPOzsyREFRdEM7QUFXSztJQUZMLEtBQUssRUFBRTtJQUNQLFdBQVcsRUFBRTs7cUNBQ00sT0FBTzs7K0NBc0QxQjtBQVdLO0lBRkwsS0FBSyxFQUFFO0lBQ1AsV0FBVyxFQUFFOztxQ0FDTSxPQUFPOzsrQ0FvQzFCO0FBWUs7SUFGTCxLQUFLLEVBQUU7SUFDUCxXQUFXLEVBQUU7O3FDQUVILE9BQU87O21EQXFDakI7QUFTSztJQURMLFdBQVcsQ0FBQyxLQUFLLENBQUM7O3FDQUNpQixPQUFPOzsrREFlMUM7QUFNSztJQURMLFdBQVcsQ0FBQyxLQUFLLENBQUM7O3FDQUNZLE9BQU87OzBEQVFyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhvcml6YXRpb25FcnJvciwgQ29uZGl0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBDb250ZXh0LCBUcmFuc2FjdGlvbiB9IGZyb20gXCJmYWJyaWMtY29udHJhY3QtYXBpXCI7XG5pbXBvcnQgeyBhZGQsIHN1YiB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbWF0aFwiO1xuaW1wb3J0IHtcbiAgQWxsb3dhbmNlRXJyb3IsXG4gIEJhbGFuY2VFcnJvcixcbiAgTm90SW5pdGlhbGl6ZWRFcnJvcixcbn0gZnJvbSBcIi4uLy4uL3NoYXJlZC9lcnJvcnNcIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0QWRhcHRlciB9IGZyb20gXCIuLi9Db250cmFjdEFkYXB0ZXJcIjtcbmltcG9ydCB7IEFsbG93YW5jZSwgRVJDMjBUb2tlbiwgRVJDMjBXYWxsZXQgfSBmcm9tIFwiLi9tb2RlbHNcIjtcbmltcG9ydCB7IE93bmVyIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vRmFicmljQ29udHJhY3RSZXBvc2l0b3J5XCI7XG5pbXBvcnQgdHlwZSB7IEZhYnJpY0NvbnRyYWN0Q29udGV4dCB9IGZyb20gXCIuLi9Db250cmFjdENvbnRleHRcIjtcbmltcG9ydCB7XG4gIEJhc2VFcnJvcixcbiAgSW50ZXJuYWxFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IEZhYnJpY0NydWRDb250cmFjdCB9IGZyb20gXCIuLi9jcnVkL2NydWQtY29udHJhY3RcIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeU9ic2VydmFibGVIYW5kbGVyIH0gZnJvbSBcIi4uL0ZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeU9ic2VydmFibGVIYW5kbGVyXCI7XG5pbXBvcnQgeyBFUkMyMEV2ZW50cyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvZXJjMjAvZXJjMjAtY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEVSQzIwIHRva2VuIGNvbnRyYWN0IGJhc2UgZm9yIEh5cGVybGVkZ2VyIEZhYnJpY1xuICogQHN1bW1hcnkgSW1wbGVtZW50cyBFUkMyMC1saWtlIHRva2VuIGxvZ2ljIHVzaW5nIHJlcG9zaXRvcmllcyBhbmQgYWRhcHRlcnMsIHByb3ZpZGluZyBzdGFuZGFyZCB0b2tlbiBvcGVyYXRpb25zIHN1Y2ggYXMgYmFsYW5jZSBxdWVyaWVzLCB0cmFuc2ZlcnMsIGFwcHJvdmFscywgbWludGluZyBhbmQgYnVybmluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gVGhlIGNvbnRyYWN0IG5hbWUgdXNlZCB0byBzY29wZSB0b2tlbiBpZGVudGl0eVxuICogQG5vdGUgaHR0cHM6Ly9laXBzLmV0aGVyZXVtLm9yZy9FSVBTL2VpcC0yMFxuICogQHJldHVybiB7dm9pZH1cbiAqIEBjbGFzcyBGYWJyaWNFUkMyMENvbnRyYWN0XG4gKiBAZXhhbXBsZVxuICogY2xhc3MgTXlUb2tlbkNvbnRyYWN0IGV4dGVuZHMgRmFicmljRVJDMjBDb250cmFjdCB7XG4gKiAgIGNvbnN0cnVjdG9yKCkgeyBzdXBlcignTXlUb2tlbicpOyB9XG4gKiB9XG4gKiAvLyBUaGUgY29udHJhY3QgZXhwb3NlcyBtZXRob2RzIGxpa2UgVHJhbnNmZXIsIEFwcHJvdmUsIE1pbnQsIEJ1cm4sIGV0Yy5cbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gKiAgIHBhcnRpY2lwYW50IENvbnRyYWN0XG4gKiAgIHBhcnRpY2lwYW50IFdhbGxldFJlcG9cbiAqICAgcGFydGljaXBhbnQgVG9rZW5SZXBvXG4gKiAgIHBhcnRpY2lwYW50IExlZGdlclxuICogICBDbGllbnQtPj5Db250cmFjdDogVHJhbnNmZXIoY3R4LCB0bywgdmFsdWUpXG4gKiAgIENvbnRyYWN0LT4+V2FsbGV0UmVwbzogcmVhZChmcm9tKVxuICogICBDb250cmFjdC0+PldhbGxldFJlcG86IHJlYWQodG8pXG4gKiAgIENvbnRyYWN0LT4+TGVkZ2VyOiBwdXRTdGF0ZSh1cGRhdGVkIGJhbGFuY2VzKVxuICogICBDb250cmFjdC0tPj5DbGllbnQ6IHN1Y2Nlc3NcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZhYnJpY0VSQzIwQ29udHJhY3QgZXh0ZW5kcyBGYWJyaWNDcnVkQ29udHJhY3Q8RVJDMjBXYWxsZXQ+IHtcbiAgcHJpdmF0ZSB3YWxsZXRSZXBvc2l0b3J5OiBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnk8RVJDMjBXYWxsZXQ+O1xuXG4gIHByaXZhdGUgdG9rZW5SZXBvc2l0b3J5OiBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnk8RVJDMjBUb2tlbj47XG5cbiAgcHJpdmF0ZSBhbGxvd2FuY2VSZXBvc2l0b3J5OiBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnk8QWxsb3dhbmNlPjtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IobmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobmFtZSwgRVJDMjBXYWxsZXQpO1xuXG4gICAgRmFicmljRVJDMjBDb250cmFjdC5hZGFwdGVyID1cbiAgICAgIEZhYnJpY0VSQzIwQ29udHJhY3QuYWRhcHRlciB8fCBuZXcgRmFicmljQ29udHJhY3RBZGFwdGVyKCk7XG5cbiAgICB0aGlzLndhbGxldFJlcG9zaXRvcnkgPSBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnkuZm9yTW9kZWwoXG4gICAgICBFUkMyMFdhbGxldCxcbiAgICAgIEZhYnJpY0VSQzIwQ29udHJhY3QuYWRhcHRlci5hbGlhc1xuICAgICk7XG5cbiAgICB0aGlzLnRva2VuUmVwb3NpdG9yeSA9IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeS5mb3JNb2RlbChcbiAgICAgIEVSQzIwVG9rZW4sXG4gICAgICBGYWJyaWNFUkMyMENvbnRyYWN0LmFkYXB0ZXIuYWxpYXNcbiAgICApO1xuXG4gICAgdGhpcy5hbGxvd2FuY2VSZXBvc2l0b3J5ID0gRmFicmljQ29udHJhY3RSZXBvc2l0b3J5LmZvck1vZGVsKFxuICAgICAgQWxsb3dhbmNlLFxuICAgICAgRmFicmljRVJDMjBDb250cmFjdC5hZGFwdGVyLmFsaWFzXG4gICAgKTtcbiAgfVxuXG4gIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgYXN5bmMgVG9rZW5OYW1lKGNvbnRleHQ6IENvbnRleHQpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuVG9rZW5OYW1lKTtcbiAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBhbHJlYWR5IHNldCBmaXJzdCB0byBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgIGF3YWl0IHRoaXMuQ2hlY2tJbml0aWFsaXplZChjdHggYXMgYW55KTtcblxuICAgIGNvbnN0IHNlbGVjdCA9IHRoaXMudG9rZW5SZXBvc2l0b3J5LnNlbGVjdCgpO1xuICAgIGNvbnN0IHRva2VuID0gKGF3YWl0IHNlbGVjdC5leGVjdXRlKGN0eCkpWzBdO1xuXG4gICAgcmV0dXJuIHRva2VuLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBzeW1ib2wgb2YgdGhlIHRva2VuLiBFLmcuIOKAnEhJWOKAnS5cbiAgICpcbiAgICogQHBhcmFtIHtDb250ZXh0fSBjb250ZXh0IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAqIEByZXR1cm5zIHtTdHJpbmd9IFJldHVybnMgdGhlIHN5bWJvbCBvZiB0aGUgdG9rZW5cbiAgICovXG4gIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgYXN5bmMgU3ltYm9sKGNvbnRleHQ6IENvbnRleHQpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuVG9rZW5OYW1lKTtcbiAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBhbHJlYWR5IHNldCBmaXJzdCB0byBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgIGF3YWl0IHRoaXMuQ2hlY2tJbml0aWFsaXplZChjdHggYXMgYW55KTtcblxuICAgIGNvbnN0IHNlbGVjdCA9IHRoaXMudG9rZW5SZXBvc2l0b3J5LnNlbGVjdCgpO1xuICAgIGNvbnN0IHRva2VuID0gKGF3YWl0IHNlbGVjdC5leGVjdXRlKGN0eCkpWzBdO1xuXG4gICAgcmV0dXJuIHRva2VuLnN5bWJvbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBkZWNpbWFscyB0aGUgdG9rZW4gdXNlc1xuICAgKiBlLmcuIDgsIG1lYW5zIHRvIGRpdmlkZSB0aGUgdG9rZW4gYW1vdW50IGJ5IDEwMDAwMDAwMCB0byBnZXQgaXRzIHVzZXIgcmVwcmVzZW50YXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7Q29udGV4dH0gY29udGV4dCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgKiBAcmV0dXJucyB7TnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGVjaW1hbHNcbiAgICovXG4gIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgYXN5bmMgRGVjaW1hbHMoY29udGV4dDogQ29udGV4dCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgeyBjdHggfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5Ub2tlbk5hbWUpO1xuICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCBhcyBhbnkpO1xuXG4gICAgY29uc3Qgc2VsZWN0ID0gdGhpcy50b2tlblJlcG9zaXRvcnkuc2VsZWN0KCk7XG4gICAgY29uc3QgdG9rZW4gPSAoYXdhaXQgc2VsZWN0LmV4ZWN1dGUoY3R4KSlbMF07XG5cbiAgICByZXR1cm4gdG9rZW4uZGVjaW1hbHM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSB0b3RhbCB0b2tlbiBzdXBwbHkuXG4gICAqXG4gICAqIEBwYXJhbSB7Q29udGV4dH0gY29udGV4dCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgKiBAcmV0dXJucyB7TnVtYmVyfSBSZXR1cm5zIHRoZSB0b3RhbCB0b2tlbiBzdXBwbHlcbiAgICovXG4gIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgYXN5bmMgVG90YWxTdXBwbHkoY29udGV4dDogQ29udGV4dCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgeyBjdHggfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5Ub2tlbk5hbWUpO1xuICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCBhcyBhbnkpO1xuXG4gICAgY29uc3Qgc2VsZWN0ID0gdGhpcy53YWxsZXRSZXBvc2l0b3J5LnNlbGVjdCgpO1xuICAgIGNvbnN0IHdhbGxldHMgPSBhd2FpdCBzZWxlY3QuZXhlY3V0ZShjdHgpO1xuXG4gICAgaWYgKHdhbGxldHMubGVuZ3RoID09IDApIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBUaGUgdG9rZW4gJHt0aGlzLmdldE5hbWUoKX0gZG9lcyBub3QgZXhpc3RgKTtcbiAgICB9XG5cbiAgICBsZXQgdG90YWwgPSAwO1xuXG4gICAgd2FsbGV0cy5mb3JFYWNoKCh3YWxsZXQpID0+IHtcbiAgICAgIHRvdGFsICs9IHdhbGxldC5iYWxhbmNlO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRvdGFsO1xuICB9XG5cbiAgLyoqXG4gICAqIEJhbGFuY2VPZiByZXR1cm5zIHRoZSBiYWxhbmNlIG9mIHRoZSBnaXZlbiBhY2NvdW50LlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbnRleHR9IGN0eCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3duZXIgVGhlIG93bmVyIGZyb20gd2hpY2ggdGhlIGJhbGFuY2Ugd2lsbCBiZSByZXRyaWV2ZWRcbiAgICogQHJldHVybnMge051bWJlcn0gUmV0dXJucyB0aGUgYWNjb3VudCBiYWxhbmNlXG4gICAqL1xuICBAVHJhbnNhY3Rpb24oZmFsc2UpXG4gIGFzeW5jIEJhbGFuY2VPZihjb250ZXh0OiBDb250ZXh0LCBvd25lcjogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLlRva2VuTmFtZSk7XG4gICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4IGFzIGFueSk7XG5cbiAgICBjb25zdCB3YWxsZXQgPSBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkucmVhZChvd25lciwgY3R4KTtcblxuICAgIHJldHVybiB3YWxsZXQuYmFsYW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBUcmFuc2ZlciB0cmFuc2ZlcnMgdG9rZW5zIGZyb20gY2xpZW50IGFjY291bnQgdG8gcmVjaXBpZW50IGFjY291bnQuXG4gICAqIEBkZXNjcmlwdGlvbiByZWNpcGllbnQgYWNjb3VudCBtdXN0IGJlIGEgdmFsaWQgY2xpZW50SUQgYXMgcmV0dXJuZWQgYnkgdGhlIENsaWVudEFjY291bnRJRCgpIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbnRleHR9IGNvbnRleHQgdGhlIHRyYW5zYWN0aW9uIGNvbnRleHRcbiAgICogQHBhcmFtIHtTdHJpbmd9IHRvIFRoZSByZWNpcGllbnRcbiAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIFRoZSBhbW91bnQgb2YgdG9rZW4gdG8gYmUgdHJhbnNmZXJyZWRcbiAgICpcbiAgICogQHJldHVybnMge0Jvb2xlYW59IFJldHVybiB3aGV0aGVyIHRoZSB0cmFuc2ZlciB3YXMgc3VjY2Vzc2Z1bCBvciBub3RcbiAgICovXG4gIEBUcmFuc2FjdGlvbigpXG4gIGFzeW5jIFRyYW5zZmVyKFxuICAgIGNvbnRleHQ6IENvbnRleHQsXG4gICAgdG86IHN0cmluZyxcbiAgICB2YWx1ZTogbnVtYmVyXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgY29uc3QgeyBjdHggfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5UcmFuc2Zlcik7XG4gICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCBhcyBhbnkpO1xuXG4gICAgY29uc3QgZnJvbSA9IGN0eC5pZGVudGl0eS5nZXRJRCgpO1xuXG4gICAgY29uc3QgdHJhbnNmZXJSZXNwID0gYXdhaXQgdGhpcy5fdHJhbnNmZXIoZnJvbSwgdG8sIHZhbHVlLCBjdHgpO1xuICAgIGlmICghdHJhbnNmZXJSZXNwKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIkZhaWxlZCB0byB0cmFuc2ZlclwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2ZlciBgdmFsdWVgIGFtb3VudCBvZiB0b2tlbnMgZnJvbSBgZnJvbWAgdG8gYHRvYC5cbiAgICpcbiAgICogQHBhcmFtIHtDb250ZXh0fSBjb250ZXh0IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBmcm9tIFRoZSBzZW5kZXJcbiAgICogQHBhcmFtIHtTdHJpbmd9IHRvIFRoZSByZWNpcGllbnRcbiAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIFRoZSBhbW91bnQgb2YgdG9rZW4gdG8gYmUgdHJhbnNmZXJyZWRcbiAgICogQHJldHVybnMge0Jvb2xlYW59IFJldHVybiB3aGV0aGVyIHRoZSB0cmFuc2ZlciB3YXMgc3VjY2Vzc2Z1bCBvciBub3RcbiAgICovXG4gIEBUcmFuc2FjdGlvbigpXG4gIGFzeW5jIFRyYW5zZmVyRnJvbShcbiAgICBjb250ZXh0OiBDb250ZXh0LFxuICAgIGZyb206IHN0cmluZyxcbiAgICB0bzogc3RyaW5nLFxuICAgIHZhbHVlOiBudW1iZXJcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLkJ1cm5Gcm9tKTtcbiAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4IGFzIGFueSk7XG5cbiAgICAvLyBSZXRyaWV2ZSB0aGUgYWxsb3dhbmNlIG9mIHRoZSBzcGVuZGVyXG5cbiAgICBjb25zdCBzcGVuZGVyID0gY3R4LmlkZW50aXR5LmdldElEKCk7XG5cbiAgICBjb25zdCBhbGxvd2FuY2UgPSBhd2FpdCB0aGlzLl9nZXRBbGxvd2FuY2UoZnJvbSwgc3BlbmRlciwgY3R4KTtcbiAgICBpZiAoIWFsbG93YW5jZSB8fCBhbGxvd2FuY2UudmFsdWUgPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgQWxsb3dhbmNlRXJyb3IoXG4gICAgICAgIGBzcGVuZGVyICR7c3BlbmRlcn0gaGFzIG5vIGFsbG93YW5jZSBmcm9tICR7ZnJvbX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRBbGxvd2FuY2UgPSBhbGxvd2FuY2UudmFsdWU7XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgdHJhbnNmZXJyZWQgdmFsdWUgaXMgbGVzcyB0aGFuIHRoZSBhbGxvd2FuY2VcbiAgICBpZiAoY3VycmVudEFsbG93YW5jZSA8IHZhbHVlKSB7XG4gICAgICB0aHJvdyBuZXcgQmFsYW5jZUVycm9yKFxuICAgICAgICBcIlRoZSBzcGVuZGVyIGRvZXMgbm90IGhhdmUgZW5vdWdoIGFsbG93YW5jZSB0byBzcGVuZC5cIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBEZWNyZWFzZSB0aGUgYWxsb3dhbmNlXG4gICAgY29uc3QgdXBkYXRlZEFsbG93YW5jZSA9IHN1YihjdXJyZW50QWxsb3dhbmNlLCB2YWx1ZSk7XG4gICAgY29uc3QgbmV3QWxsb3dhbmNlID0gT2JqZWN0LmFzc2lnbih7fSwgYWxsb3dhbmNlLCB7XG4gICAgICB2YWx1ZTogdXBkYXRlZEFsbG93YW5jZSxcbiAgICB9KTtcblxuICAgIGF3YWl0IHRoaXMuYWxsb3dhbmNlUmVwb3NpdG9yeS51cGRhdGUobmV3QWxsb3dhbmNlLCBjdHgpO1xuXG4gICAgLy9SZWFsaXplIHRoZSB0cmFuc2ZlclxuICAgIGNvbnN0IHRyYW5zZmVyUmVzcCA9IGF3YWl0IHRoaXMuX3RyYW5zZmVyKGZyb20sIHRvLCB2YWx1ZSwgY3R4KTtcbiAgICBpZiAoIXRyYW5zZmVyUmVzcCkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJGYWlsZWQgdG8gdHJhbnNmZXJcIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBfdHJhbnNmZXIoXG4gICAgZnJvbTogc3RyaW5nLFxuICAgIHRvOiBzdHJpbmcsXG4gICAgdmFsdWU6IG51bWJlcixcbiAgICBjdHg6IEZhYnJpY0NvbnRyYWN0Q29udGV4dFxuICApIHtcbiAgICBjb25zdCBsb2cgPSBjdHgubG9nZ2VyO1xuXG4gICAgaWYgKGZyb20gPT09IHRvKSB7XG4gICAgICB0aHJvdyBuZXcgQXV0aG9yaXphdGlvbkVycm9yKFxuICAgICAgICBcImNhbm5vdCB0cmFuc2ZlciB0byBhbmQgZnJvbSBzYW1lIGNsaWVudCBhY2NvdW50XCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlIDwgMCkge1xuICAgICAgLy8gdHJhbnNmZXIgb2YgMCBpcyBhbGxvd2VkIGluIEVSQzIwLCBzbyBqdXN0IHZhbGlkYXRlIGFnYWluc3QgbmVnYXRpdmUgYW1vdW50c1xuICAgICAgdGhyb3cgbmV3IEJhbGFuY2VFcnJvcihcInRyYW5zZmVyIGFtb3VudCBjYW5ub3QgYmUgbmVnYXRpdmVcIik7XG4gICAgfVxuXG4gICAgLy8gUmV0cmlldmUgdGhlIGN1cnJlbnQgYmFsYW5jZSBvZiB0aGUgc2VuZGVyXG5cbiAgICBjb25zdCBmcm9tV2FsbGV0ID0gYXdhaXQgdGhpcy53YWxsZXRSZXBvc2l0b3J5LnJlYWQoZnJvbSwgY3R4KTtcblxuICAgIGNvbnN0IGZyb21CYWxhbmNlID0gZnJvbVdhbGxldC5iYWxhbmNlO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIHNlbmRlciBoYXMgZW5vdWdoIHRva2VucyB0byBzcGVuZC5cbiAgICBpZiAoZnJvbUJhbGFuY2UgPCB2YWx1ZSkge1xuICAgICAgdGhyb3cgbmV3IEJhbGFuY2VFcnJvcihgY2xpZW50IGFjY291bnQgJHtmcm9tfSBoYXMgaW5zdWZmaWNpZW50IGZ1bmRzLmApO1xuICAgIH1cblxuICAgIC8vIFJldHJpZXZlIHRoZSBjdXJyZW50IGJhbGFuY2Ugb2YgdGhlIHJlY2VwaWVudFxuXG4gICAgbGV0IHRvV2FsbGV0OiBFUkMyMFdhbGxldDtcbiAgICBsZXQgbmV3VG9XYWxsZXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgdG9XYWxsZXQgPSBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkucmVhZCh0bywgY3R4KTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEJhc2VFcnJvcikge1xuICAgICAgICBpZiAoZS5jb2RlID09PSA0MDQpIHtcbiAgICAgICAgICAvLyBDcmVhdGUgYSBuZXcgd2FsbGV0IGZvciB0aGUgbWludGVyXG4gICAgICAgICAgdG9XYWxsZXQgPSBuZXcgRVJDMjBXYWxsZXQoe1xuICAgICAgICAgICAgaWQ6IHRvLFxuICAgICAgICAgICAgYmFsYW5jZTogMCxcbiAgICAgICAgICAgIHRva2VuOiBhd2FpdCB0aGlzLlRva2VuTmFtZShjdHggYXMgYW55KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBuZXdUb1dhbGxldCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZSBhcyBzdHJpbmcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHRvQmFsYW5jZSA9IHRvV2FsbGV0LmJhbGFuY2U7XG5cbiAgICAvLyBVcGRhdGUgdGhlIGJhbGFuY2VcbiAgICBjb25zdCBmcm9tVXBkYXRlZEJhbGFuY2UgPSBzdWIoZnJvbUJhbGFuY2UsIHZhbHVlKTtcbiAgICBjb25zdCB0b1VwZGF0ZWRCYWxhbmNlID0gYWRkKHRvQmFsYW5jZSwgdmFsdWUpO1xuXG4gICAgY29uc3QgdXBkYXRlZEZyb21XYWxsZXQgPSBPYmplY3QuYXNzaWduKHt9LCBmcm9tV2FsbGV0LCB7XG4gICAgICBiYWxhbmNlOiBmcm9tVXBkYXRlZEJhbGFuY2UsXG4gICAgfSk7XG5cbiAgICBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkudXBkYXRlKHVwZGF0ZWRGcm9tV2FsbGV0LCBjdHgpO1xuXG4gICAgY29uc3QgdXBkYXRlZFRvV2FsbGV0ID0gT2JqZWN0LmFzc2lnbih7fSwgdG9XYWxsZXQsIHtcbiAgICAgIGJhbGFuY2U6IHRvVXBkYXRlZEJhbGFuY2UsXG4gICAgfSk7XG5cbiAgICBpZiAobmV3VG9XYWxsZXQpIHtcbiAgICAgIGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS5jcmVhdGUodXBkYXRlZFRvV2FsbGV0LCBjdHgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkudXBkYXRlKHVwZGF0ZWRUb1dhbGxldCwgY3R4KTtcbiAgICB9XG5cbiAgICAvLyBFbWl0IHRoZSBUcmFuc2ZlciBldmVudFxuICAgIGNvbnN0IHRyYW5zZmVyRXZlbnQgPSB7IGZyb20sIHRvLCB2YWx1ZTogdmFsdWUgfTtcblxuICAgIHRoaXMucmVwb1xuICAgICAgLnJlZnJlc2goXG4gICAgICAgIEVSQzIwVG9rZW4gYXMgYW55LFxuICAgICAgICBFUkMyMEV2ZW50cy5UUkFOU0ZFUixcbiAgICAgICAgXCJcIixcbiAgICAgICAgdHJhbnNmZXJFdmVudCxcbiAgICAgICAgY3R4IGFzIHVua25vd24gYXMgRmFicmljQ29udHJhY3RDb250ZXh0XG4gICAgICApXG4gICAgICAuY2F0Y2goKGUpID0+IGxvZy5lcnJvcihgRmFpbGVkIHRvIG5vdGlmeSB0cmFuc2ZlcjogJHtlfWApKTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93cyBgc3BlbmRlcmAgdG8gc3BlbmQgYHZhbHVlYCBhbW91bnQgb2YgdG9rZW5zIGZyb20gdGhlIG93bmVyLiBOZXcgQXBwcm92ZSBjYWxscyBvdmVycmlkZSB0aGUgcHJldmlvdXMgYWxsb3dhbmNlLlxuICAgKiBAbm90ZSBodHRwczovL2VpcHMuZXRoZXJldW0ub3JnL0VJUFMvZWlwLTIwXG4gICAqXG4gICAqIEBwYXJhbSB7Q29udGV4dH0gY3R4IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBzcGVuZGVyIFRoZSBzcGVuZGVyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSBUaGUgYW1vdW50IG9mIHRva2VucyB0byBiZSBhcHByb3ZlZCBmb3IgdHJhbnNmZXJcbiAgICogQHJldHVybnMge0Jvb2xlYW59IFJldHVybiB3aGV0aGVyIHRoZSBhcHByb3ZhbCB3YXMgc3VjY2Vzc2Z1bCBvciBub3RcbiAgICovXG4gIEBUcmFuc2FjdGlvbigpXG4gIGFzeW5jIEFwcHJvdmUoXG4gICAgY29udGV4dDogQ29udGV4dCxcbiAgICBzcGVuZGVyOiBzdHJpbmcsXG4gICAgdmFsdWU6IG51bWJlclxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IGN0eCwgY3R4QXJncyB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLkFwcHJvdmUpO1xuICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCBhcyBhbnkpO1xuXG4gICAgY29uc3Qgb3duZXIgPSBjdHguaWRlbnRpdHkuZ2V0SUQoKTtcblxuICAgIGxldCBhbGxvd2FuY2UgPSBhd2FpdCB0aGlzLl9nZXRBbGxvd2FuY2Uob3duZXIsIHNwZW5kZXIsIGN0eCk7XG5cbiAgICBjb25zdCBvd25lcldhbGxldCA9IGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS5yZWFkKG93bmVyLCAuLi5jdHhBcmdzKTtcblxuICAgIGlmIChvd25lcldhbGxldC5iYWxhbmNlIDwgdmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBCYWxhbmNlRXJyb3IoYGNsaWVudCBhY2NvdW50ICR7b3duZXJ9IGhhcyBpbnN1ZmZpY2llbnQgZnVuZHMuYCk7XG4gICAgfVxuXG4gICAgaWYgKGFsbG93YW5jZSkge1xuICAgICAgLy8gT3ZlcndyaXRlIHRoZSBhbGxvd2FuY2VcbiAgICAgIGFsbG93YW5jZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgYXdhaXQgdGhpcy5hbGxvd2FuY2VSZXBvc2l0b3J5LnVwZGF0ZShhbGxvd2FuY2UsIC4uLmN0eEFyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhbGxvd2FuY2UgPSBuZXcgQWxsb3dhbmNlKHtcbiAgICAgICAgb3duZXI6IG93bmVyLFxuICAgICAgICBzcGVuZGVyOiBzcGVuZGVyLFxuICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgdGhpcy5hbGxvd2FuY2VSZXBvc2l0b3J5LmNyZWF0ZShhbGxvd2FuY2UsIC4uLmN0eEFyZ3MpO1xuICAgIH1cblxuICAgIC8vIEVtaXQgdGhlIEFwcHJvdmFsIGV2ZW50XG4gICAgY29uc3QgYXBwcm92YWxFdmVudCA9IHsgb3duZXIsIHNwZW5kZXIsIHZhbHVlOiB2YWx1ZSB9O1xuICAgIHRoaXMucmVwby5yZWZyZXNoKFxuICAgICAgRVJDMjBUb2tlbiBhcyBhbnksXG4gICAgICBFUkMyMEV2ZW50cy5BUFBST1ZBTCxcbiAgICAgIFwiXCIsXG4gICAgICBhcHByb3ZhbEV2ZW50LFxuICAgICAgY3R4IGFzIHVua25vd24gYXMgRmFicmljQ29udHJhY3RDb250ZXh0XG4gICAgKTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGFtb3VudCBvZiB0b2tlbnMgd2hpY2ggYCBgIGlzIGFsbG93ZWQgdG8gd2l0aGRyYXcgZnJvbSBgb3duZXJgLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbnRleHR9IGN0eCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3duZXIgVGhlIG93bmVyIG9mIHRva2Vuc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gc3BlbmRlciBUaGUgc3BlbmRlciB3aG8gYXJlIGFibGUgdG8gdHJhbnNmZXIgdGhlIHRva2Vuc1xuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm4gdGhlIGFtb3VudCBvZiByZW1haW5pbmcgdG9rZW5zIGFsbG93ZWQgdG8gc3BlbnRcbiAgICovXG4gIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgYXN5bmMgQWxsb3dhbmNlKFxuICAgIGNvbnRleHQ6IENvbnRleHQsXG4gICAgb3duZXI6IHN0cmluZyxcbiAgICBzcGVuZGVyOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLkFsbG93YW5jZSk7XG4gICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4IGFzIGFueSk7XG5cbiAgICBjb25zdCBhbGxvd2FuY2UgPSBhd2FpdCB0aGlzLl9nZXRBbGxvd2FuY2Uob3duZXIsIHNwZW5kZXIsIGN0eCk7XG5cbiAgICBpZiAoIWFsbG93YW5jZSkge1xuICAgICAgdGhyb3cgbmV3IEFsbG93YW5jZUVycm9yKFxuICAgICAgICBgc3BlbmRlciAke3NwZW5kZXJ9IGhhcyBubyBhbGxvd2FuY2UgZnJvbSAke293bmVyfWBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBhbGxvd2FuY2UudmFsdWU7XG4gIH1cblxuICBhc3luYyBfZ2V0QWxsb3dhbmNlKFxuICAgIG93bmVyOiBzdHJpbmcsXG4gICAgc3BlbmRlcjogc3RyaW5nLFxuICAgIGN0eDogRmFicmljQ29udHJhY3RDb250ZXh0XG4gICk6IFByb21pc2U8QWxsb3dhbmNlPiB7XG4gICAgY29uc3QgYWxsb3dhbmNlQ29uZGl0aW9uID0gQ29uZGl0aW9uLmFuZChcbiAgICAgIENvbmRpdGlvbi5hdHRyaWJ1dGU8QWxsb3dhbmNlPihcIm93bmVyXCIpLmVxKG93bmVyKSxcbiAgICAgIENvbmRpdGlvbi5hdHRyaWJ1dGU8QWxsb3dhbmNlPihcInNwZW5kZXJcIikuZXEoc3BlbmRlcilcbiAgICApO1xuXG4gICAgY29uc3QgYWxsb3dhbmNlID0gYXdhaXQgdGhpcy5hbGxvd2FuY2VSZXBvc2l0b3J5XG4gICAgICAuc2VsZWN0KClcbiAgICAgIC53aGVyZShhbGxvd2FuY2VDb25kaXRpb24pXG4gICAgICAuZXhlY3V0ZShjdHgpO1xuICAgIHJldHVybiBhbGxvd2FuY2U/LlswXTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PSBFeHRlbmRlZCBGdW5jdGlvbnMgPT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogU2V0IG9wdGlvbmFsIGluZm9tYXRpb24gZm9yIGEgdG9rZW4uXG4gICAqXG4gICAqIEBwYXJhbSB7Q29udGV4dH0gY3R4IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIFRoZSBuYW1lIG9mIHRoZSB0b2tlblxuICAgKiBAcGFyYW0ge1N0cmluZ30gc3ltYm9sIFRoZSBzeW1ib2wgb2YgdGhlIHRva2VuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBkZWNpbWFscyBUaGUgZGVjaW1hbHMgb2YgdGhlIHRva2VuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB0b3RhbFN1cHBseSBUaGUgdG90YWxTdXBwbHkgb2YgdGhlIHRva2VuXG4gICAqL1xuICBAVHJhbnNhY3Rpb24oKVxuICBhc3luYyBJbml0aWFsaXplKGNvbnRleHQ6IENvbnRleHQsIHRva2VuOiBFUkMyMFRva2VuKSB7XG4gICAgY29uc3QgeyBjdHggfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5Jbml0aWFsaXplKTtcbiAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBub3QgYWxyZWFkeSBzZXQsIGNsaWVudCBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlbSBvbmNlIGludGl0aWFsaXplZFxuICAgIGNvbnN0IHRva2VucyA9IGF3YWl0IHRoaXMudG9rZW5SZXBvc2l0b3J5LnNlbGVjdCgpLmV4ZWN1dGUoY3R4KTtcbiAgICBpZiAodG9rZW5zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBBdXRob3JpemF0aW9uRXJyb3IoXG4gICAgICAgIFwiY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQsIGNsaWVudCBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlbVwiXG4gICAgICApO1xuICAgIH1cblxuICAgIHRva2VuLm93bmVyID0gY3R4LmlkZW50aXR5LmdldElEKCk7XG5cbiAgICBhd2FpdCB0aGlzLnRva2VuUmVwb3NpdG9yeS5jcmVhdGUodG9rZW4sIGN0eCk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIENoZWNrcyB0aGF0IGNvbnRyYWN0IG9wdGlvbnMgaGF2ZSBiZWVuIGFscmVhZHkgaW5pdGlhbGl6ZWRcbiAgQFRyYW5zYWN0aW9uKGZhbHNlKVxuICBhc3luYyBDaGVja0luaXRpYWxpemVkKGNvbnRleHQ6IENvbnRleHQpIHtcbiAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQpO1xuICAgIGNvbnN0IHRva2VucyA9IGF3YWl0IHRoaXMudG9rZW5SZXBvc2l0b3J5LnNlbGVjdCgpLmV4ZWN1dGUoY3R4KTtcbiAgICBpZiAodG9rZW5zLmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgTm90SW5pdGlhbGl6ZWRFcnJvcihcbiAgICAgICAgXCJjb250cmFjdCBvcHRpb25zIG5lZWQgdG8gYmUgc2V0IGJlZm9yZSBjYWxsaW5nIGFueSBmdW5jdGlvbiwgY2FsbCBJbml0aWFsaXplKCkgdG8gaW5pdGlhbGl6ZSBjb250cmFjdFwiXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNaW50IGNyZWF0ZXMgbmV3IHRva2VucyBhbmQgYWRkcyB0aGVtIHRvIG1pbnRlcidzIGFjY291bnQgYmFsYW5jZVxuICAgKlxuICAgKiBAcGFyYW0ge0NvbnRleHR9IGNvbnRleHQgdGhlIHRyYW5zYWN0aW9uIGNvbnRleHRcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudCBhbW91bnQgb2YgdG9rZW5zIHRvIGJlIG1pbnRlZFxuICAgKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgYmFsYW5jZVxuICAgKi9cbiAgQE93bmVyKClcbiAgQFRyYW5zYWN0aW9uKClcbiAgYXN5bmMgTWludChjb250ZXh0OiBDb250ZXh0LCBhbW91bnQ6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuTWludCk7XG4gICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4IGFzIGFueSk7XG5cbiAgICAvLyBHZXQgSUQgb2Ygc3VibWl0dGluZyBjbGllbnQgaWRlbnRpdHlcbiAgICBjb25zdCBtaW50ZXIgPSBjdHguaWRlbnRpdHkuZ2V0SUQoKTtcblxuICAgIGlmIChhbW91bnQgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcIm1pbnQgYW1vdW50IG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyXCIpO1xuICAgIH1cblxuICAgIGxldCBtaW50ZXJXYWxsZXQ6IEVSQzIwV2FsbGV0O1xuICAgIHRyeSB7XG4gICAgICBtaW50ZXJXYWxsZXQgPSBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkucmVhZChtaW50ZXIsIGN0eCk7XG5cbiAgICAgIGNvbnN0IGN1cnJlbnRCYWxhbmNlID0gbWludGVyV2FsbGV0LmJhbGFuY2U7XG5cbiAgICAgIGNvbnN0IHVwZGF0ZWRCYWxhbmNlID0gYWRkKGN1cnJlbnRCYWxhbmNlLCBhbW91bnQpO1xuXG4gICAgICBjb25zdCB1cGRhdGVkbWludGVyID0gT2JqZWN0LmFzc2lnbih7fSwgbWludGVyV2FsbGV0LCB7XG4gICAgICAgIGJhbGFuY2U6IHVwZGF0ZWRCYWxhbmNlLFxuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS51cGRhdGUodXBkYXRlZG1pbnRlciwgY3R4KTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEJhc2VFcnJvcikge1xuICAgICAgICBpZiAoZS5jb2RlID09PSA0MDQpIHtcbiAgICAgICAgICAvLyBDcmVhdGUgYSBuZXcgd2FsbGV0IGZvciB0aGUgbWludGVyXG4gICAgICAgICAgY29uc3QgbmV3V2FsbGV0ID0gbmV3IEVSQzIwV2FsbGV0KHtcbiAgICAgICAgICAgIGlkOiBtaW50ZXIsXG4gICAgICAgICAgICBiYWxhbmNlOiBhbW91bnQsXG4gICAgICAgICAgICB0b2tlbjogYXdhaXQgdGhpcy5Ub2tlbk5hbWUoY29udGV4dCksXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYXdhaXQgdGhpcy53YWxsZXRSZXBvc2l0b3J5LmNyZWF0ZShuZXdXYWxsZXQsIGN0eCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZSBhcyBzdHJpbmcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVtaXQgdGhlIFRyYW5zZmVyIGV2ZW50XG4gICAgY29uc3QgdHJhbnNmZXJFdmVudCA9IHsgZnJvbTogXCIweDBcIiwgdG86IG1pbnRlciwgdmFsdWU6IGFtb3VudCB9O1xuICAgIGNvbnN0IGV2ZW50SGFuZGxlciA9XG4gICAgICB0aGlzLnJlcG8uT2JzZXJ2ZXJIYW5kbGVyKCkgYXMgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5T2JzZXJ2YWJsZUhhbmRsZXI7XG4gICAgZXZlbnRIYW5kbGVyLnVwZGF0ZU9ic2VydmVycyhcbiAgICAgIEVSQzIwVG9rZW4sXG4gICAgICBFUkMyMEV2ZW50cy5UUkFOU0ZFUixcbiAgICAgIFwiXCIsXG4gICAgICB0cmFuc2ZlckV2ZW50LFxuICAgICAgY3R4IGFzIHVua25vd24gYXMgRmFicmljQ29udHJhY3RDb250ZXh0XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdXJuIHJlZGVlbSB0b2tlbnMgZnJvbSBtaW50ZXIncyBhY2NvdW50IGJhbGFuY2VcbiAgICpcbiAgICogQHBhcmFtIHtDb250ZXh0fSBjb250ZXh0IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBhbW91bnQgYW1vdW50IG9mIHRva2VucyB0byBiZSBidXJuZWRcbiAgICogQHJldHVybnMge09iamVjdH0gVGhlIGJhbGFuY2VcbiAgICovXG4gIEBPd25lcigpXG4gIEBUcmFuc2FjdGlvbigpXG4gIGFzeW5jIEJ1cm4oY29udGV4dDogQ29udGV4dCwgYW1vdW50OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuQnVybik7XG4gICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4IGFzIGFueSk7XG5cbiAgICBjb25zdCBtaW50ZXIgPSBjdHguaWRlbnRpdHkuZ2V0SUQoKTtcblxuICAgIGNvbnN0IG1pbnRlcldhbGxldCA9IGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS5yZWFkKG1pbnRlciwgY3R4KTtcblxuICAgIGNvbnN0IGN1cnJlbnRCYWxhbmNlID0gbWludGVyV2FsbGV0LmJhbGFuY2U7XG5cbiAgICBpZiAoY3VycmVudEJhbGFuY2UgPCBhbW91bnQpIHtcbiAgICAgIHRocm93IG5ldyBCYWxhbmNlRXJyb3IoYE1pbnRlciBoYXMgaW5zdWZmaWNpZW50IGZ1bmRzLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRCYWxhbmNlID0gc3ViKGN1cnJlbnRCYWxhbmNlLCBhbW91bnQpO1xuXG4gICAgY29uc3QgdXBkYXRlZG1pbnRlciA9IE9iamVjdC5hc3NpZ24oe30sIG1pbnRlcldhbGxldCwge1xuICAgICAgYmFsYW5jZTogdXBkYXRlZEJhbGFuY2UsXG4gICAgfSk7XG5cbiAgICBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkudXBkYXRlKHVwZGF0ZWRtaW50ZXIsIGN0eCk7XG5cbiAgICBsb2cuaW5mbyhgJHthbW91bnR9IHRva2VucyB3ZXJlIGJ1cm5lZGApO1xuXG4gICAgLy8gRW1pdCB0aGUgVHJhbnNmZXIgZXZlbnRcbiAgICBjb25zdCB0cmFuc2ZlckV2ZW50ID0geyBmcm9tOiBtaW50ZXIsIHRvOiBcIjB4MFwiLCB2YWx1ZTogYW1vdW50IH07XG4gICAgY29uc3QgZXZlbnRIYW5kbGVyID1cbiAgICAgIHRoaXMucmVwby5PYnNlcnZlckhhbmRsZXIoKSBhcyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnlPYnNlcnZhYmxlSGFuZGxlcjtcbiAgICBldmVudEhhbmRsZXIudXBkYXRlT2JzZXJ2ZXJzKFxuICAgICAgRVJDMjBUb2tlbixcbiAgICAgIEVSQzIwRXZlbnRzLlRSQU5TRkVSLFxuICAgICAgXCJcIixcbiAgICAgIHRyYW5zZmVyRXZlbnQsXG4gICAgICBjdHggYXMgdW5rbm93biBhcyBGYWJyaWNDb250cmFjdENvbnRleHRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1cm5Gcm9tIHJlZGVlbSB0b2tlbnMgZnJvbSBhY2NvdW50IGFsbG93ZW5jZSBhbmQgYmFsYW5jZVxuICAgKlxuICAgKiBAcGFyYW0ge0NvbnRleHR9IGNvbnRleHQgdGhlIHRyYW5zYWN0aW9uIGNvbnRleHRcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFjY291bnQgYWNjb3VudCBmcm9tIHdoZXJlIHRva2VucyB3aWxsIGJlIGJ1cm5lZFxuICAgKiBAcGFyYW0ge251bWJlcn0gYW1vdW50IGFtb3VudCBvZiB0b2tlbnMgdG8gYmUgYnVybmVkXG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBiYWxhbmNlXG4gICAqL1xuICBAT3duZXIoKVxuICBAVHJhbnNhY3Rpb24oKVxuICBhc3luYyBCdXJuRnJvbShcbiAgICBjb250ZXh0OiBDb250ZXh0LFxuICAgIGFjY291bnQ6IHN0cmluZyxcbiAgICBhbW91bnQ6IG51bWJlclxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuQnVybkZyb20pO1xuICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCBhcyBhbnkpO1xuXG4gICAgY29uc3QgYWNjb3VudFdhbGxldCA9IGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS5yZWFkKGFjY291bnQsIGN0eCk7XG5cbiAgICBjb25zdCBjdXJyZW50QmFsYW5jZSA9IGFjY291bnRXYWxsZXQuYmFsYW5jZTtcblxuICAgIGlmIChjdXJyZW50QmFsYW5jZSA8IGFtb3VudCkge1xuICAgICAgdGhyb3cgbmV3IEJhbGFuY2VFcnJvcihgJHthY2NvdW50fSBoYXMgaW5zdWZmaWNpZW50IGZ1bmRzLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRCYWxhbmNlID0gc3ViKGN1cnJlbnRCYWxhbmNlLCBhbW91bnQpO1xuXG4gICAgY29uc3QgdXBkYXRlZGFjY291bnQgPSBPYmplY3QuYXNzaWduKHt9LCBhY2NvdW50V2FsbGV0LCB7XG4gICAgICBiYWxhbmNlOiB1cGRhdGVkQmFsYW5jZSxcbiAgICB9KTtcblxuICAgIGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS51cGRhdGUodXBkYXRlZGFjY291bnQsIGN0eCk7XG5cbiAgICBsb2cuaW5mbyhgJHthbW91bnR9IHRva2VucyB3ZXJlIGJ1cm5lZCBmcm9tICR7YWNjb3VudH1gKTtcblxuICAgIC8vIEVtaXQgdGhlIFRyYW5zZmVyIGV2ZW50XG4gICAgY29uc3QgdHJhbnNmZXJFdmVudCA9IHsgZnJvbTogYWNjb3VudCwgdG86IFwiMHgwXCIsIHZhbHVlOiBhbW91bnQgfTtcbiAgICBjb25zdCBldmVudEhhbmRsZXIgPVxuICAgICAgdGhpcy5yZXBvLk9ic2VydmVySGFuZGxlcigpIGFzIEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeU9ic2VydmFibGVIYW5kbGVyO1xuICAgIGV2ZW50SGFuZGxlci51cGRhdGVPYnNlcnZlcnMoXG4gICAgICBFUkMyMFRva2VuLFxuICAgICAgRVJDMjBFdmVudHMuVFJBTlNGRVIsXG4gICAgICBcIlwiLFxuICAgICAgdHJhbnNmZXJFdmVudCxcbiAgICAgIGN0eCBhcyB1bmtub3duIGFzIEZhYnJpY0NvbnRyYWN0Q29udGV4dFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpZW50QWNjb3VudEJhbGFuY2UgcmV0dXJucyB0aGUgYmFsYW5jZSBvZiB0aGUgcmVxdWVzdGluZyBjbGllbnQncyBhY2NvdW50LlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbnRleHR9IGNvbnRleHQgdGhlIHRyYW5zYWN0aW9uIGNvbnRleHRcbiAgICogQHJldHVybnMge051bWJlcn0gUmV0dXJucyB0aGUgYWNjb3VudCBiYWxhbmNlXG4gICAqL1xuICBAVHJhbnNhY3Rpb24oZmFsc2UpXG4gIGFzeW5jIENsaWVudEFjY291bnRCYWxhbmNlKGNvbnRleHQ6IENvbnRleHQpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuVG9rZW5OYW1lKTtcbiAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBhbHJlYWR5IHNldCBmaXJzdCB0byBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgIGF3YWl0IHRoaXMuQ2hlY2tJbml0aWFsaXplZChjdHggYXMgYW55KTtcblxuICAgIC8vIEdldCBJRCBvZiBzdWJtaXR0aW5nIGNsaWVudCBpZGVudGl0eVxuICAgIGNvbnN0IGNsaWVudEFjY291bnRJRCA9IGN0eC5pZGVudGl0eS5nZXRJRCgpO1xuXG4gICAgY29uc3QgY2xpZW50V2FsbGV0ID0gYXdhaXQgdGhpcy53YWxsZXRSZXBvc2l0b3J5LnJlYWQoY2xpZW50QWNjb3VudElELCBjdHgpO1xuXG4gICAgaWYgKCFjbGllbnRXYWxsZXQpIHtcbiAgICAgIHRocm93IG5ldyBCYWxhbmNlRXJyb3IoYFRoZSBhY2NvdW50ICR7Y2xpZW50QWNjb3VudElEfSBkb2VzIG5vdCBleGlzdGApO1xuICAgIH1cblxuICAgIHJldHVybiBjbGllbnRXYWxsZXQuYmFsYW5jZTtcbiAgfVxuXG4gIC8vIENsaWVudEFjY291bnRJRCByZXR1cm5zIHRoZSBpZCBvZiB0aGUgcmVxdWVzdGluZyBjbGllbnQncyBhY2NvdW50LlxuICAvLyBJbiB0aGlzIGltcGxlbWVudGF0aW9uLCB0aGUgY2xpZW50IGFjY291bnQgSUQgaXMgdGhlIGNsaWVudElkIGl0c2VsZi5cbiAgLy8gVXNlcnMgY2FuIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGdldCB0aGVpciBvd24gYWNjb3VudCBpZCwgd2hpY2ggdGhleSBjYW4gdGhlbiBnaXZlIHRvIG90aGVycyBhcyB0aGUgcGF5bWVudCBhZGRyZXNzXG4gIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgYXN5bmMgQ2xpZW50QWNjb3VudElEKGNvbnRleHQ6IENvbnRleHQpIHtcbiAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLkNsaWVudEFjY291bnRJRCk7XG4gICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4IGFzIGFueSk7XG5cbiAgICAvLyBHZXQgSUQgb2Ygc3VibWl0dGluZyBjbGllbnQgaWRlbnRpdHlcbiAgICBjb25zdCBjbGllbnRBY2NvdW50SUQgPSBjdHguaWRlbnRpdHkuZ2V0SUQoKTtcbiAgICByZXR1cm4gY2xpZW50QWNjb3VudElEO1xuICB9XG59XG4iXX0=
587
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJjMjBjb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVyYzIwY29udHJhY3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxD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b3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG52YXIgX19tZXRhZGF0YSA9ICh0aGlzICYmIHRoaXMuX19tZXRhZGF0YSkgfHwgZnVuY3Rpb24gKGssIHYpIHtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoaywgdik7XG59O1xuaW1wb3J0IHsgQXV0aG9yaXphdGlvbkVycm9yLCBDb25kaXRpb24gfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENvbnRleHQsIFRyYW5zYWN0aW9uIH0gZnJvbSBcImZhYnJpYy1jb250cmFjdC1hcGlcIjtcbmltcG9ydCB7IGFkZCwgc3ViIH0gZnJvbSBcIi4vLi4vLi4vc2hhcmVkL21hdGguanNcIjtcbmltcG9ydCB7IEFsbG93YW5jZUVycm9yLCBCYWxhbmNlRXJyb3IsIE5vdEluaXRpYWxpemVkRXJyb3IsIH0gZnJvbSBcIi4vLi4vLi4vc2hhcmVkL2Vycm9ycy5qc1wiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RBZGFwdGVyIH0gZnJvbSBcIi4vLi4vQ29udHJhY3RBZGFwdGVyLmpzXCI7XG5pbXBvcnQgeyBBbGxvd2FuY2UsIEVSQzIwVG9rZW4sIEVSQzIwV2FsbGV0IH0gZnJvbSBcIi4vbW9kZWxzLmpzXCI7XG5pbXBvcnQgeyBPd25lciB9IGZyb20gXCIuLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzLmpzXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnkgfSBmcm9tIFwiLi8uLi9GYWJyaWNDb250cmFjdFJlcG9zaXRvcnkuanNcIjtcbmltcG9ydCB7IEJhc2VFcnJvciwgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciwgVmFsaWRhdGlvbkVycm9yLCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgRmFicmljQ3J1ZENvbnRyYWN0IH0gZnJvbSBcIi4vLi4vY3J1ZC9jcnVkLWNvbnRyYWN0LmpzXCI7XG5pbXBvcnQgeyBFUkMyMEV2ZW50cyB9IGZyb20gXCIuLy4uLy4uL3NoYXJlZC9lcmMyMC9lcmMyMC1jb25zdGFudHMuanNcIjtcbi8qKlxuICogQGRlc2NyaXB0aW9uIEVSQzIwIHRva2VuIGNvbnRyYWN0IGJhc2UgZm9yIEh5cGVybGVkZ2VyIEZhYnJpY1xuICogQHN1bW1hcnkgSW1wbGVtZW50cyBFUkMyMC1saWtlIHRva2VuIGxvZ2ljIHVzaW5nIHJlcG9zaXRvcmllcyBhbmQgYWRhcHRlcnMsIHByb3ZpZGluZyBzdGFuZGFyZCB0b2tlbiBvcGVyYXRpb25zIHN1Y2ggYXMgYmFsYW5jZSBxdWVyaWVzLCB0cmFuc2ZlcnMsIGFwcHJvdmFscywgbWludGluZyBhbmQgYnVybmluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gVGhlIGNvbnRyYWN0IG5hbWUgdXNlZCB0byBzY29wZSB0b2tlbiBpZGVudGl0eVxuICogQG5vdGUgaHR0cHM6Ly9laXBzLmV0aGVyZXVtLm9yZy9FSVBTL2VpcC0yMFxuICogQHJldHVybiB7dm9pZH1cbiAqIEBjbGFzcyBGYWJyaWNFUkMyMENvbnRyYWN0XG4gKiBAZXhhbXBsZVxuICogY2xhc3MgTXlUb2tlbkNvbnRyYWN0IGV4dGVuZHMgRmFicmljRVJDMjBDb250cmFjdCB7XG4gKiAgIGNvbnN0cnVjdG9yKCkgeyBzdXBlcignTXlUb2tlbicpOyB9XG4gKiB9XG4gKiAvLyBUaGUgY29udHJhY3QgZXhwb3NlcyBtZXRob2RzIGxpa2UgVHJhbnNmZXIsIEFwcHJvdmUsIE1pbnQsIEJ1cm4sIGV0Yy5cbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gKiAgIHBhcnRpY2lwYW50IENvbnRyYWN0XG4gKiAgIHBhcnRpY2lwYW50IFdhbGxldFJlcG9cbiAqICAgcGFydGljaXBhbnQgVG9rZW5SZXBvXG4gKiAgIHBhcnRpY2lwYW50IExlZGdlclxuICogICBDbGllbnQtPj5Db250cmFjdDogVHJhbnNmZXIoY3R4LCB0bywgdmFsdWUpXG4gKiAgIENvbnRyYWN0LT4+V2FsbGV0UmVwbzogcmVhZChmcm9tKVxuICogICBDb250cmFjdC0+PldhbGxldFJlcG86IHJlYWQodG8pXG4gKiAgIENvbnRyYWN0LT4+TGVkZ2VyOiBwdXRTdGF0ZSh1cGRhdGVkIGJhbGFuY2VzKVxuICogICBDb250cmFjdC0tPj5DbGllbnQ6IHN1Y2Nlc3NcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0VSQzIwQ29udHJhY3QgZXh0ZW5kcyBGYWJyaWNDcnVkQ29udHJhY3Qge1xuICAgIGNvbnN0cnVjdG9yKG5hbWUpIHtcbiAgICAgICAgc3VwZXIobmFtZSwgRVJDMjBXYWxsZXQpO1xuICAgICAgICBGYWJyaWNFUkMyMENvbnRyYWN0LmFkYXB0ZXIgPVxuICAgICAgICAgICAgRmFicmljRVJDMjBDb250cmFjdC5hZGFwdGVyIHx8IG5ldyBGYWJyaWNDb250cmFjdEFkYXB0ZXIoKTtcbiAgICAgICAgdGhpcy53YWxsZXRSZXBvc2l0b3J5ID0gRmFicmljQ29udHJhY3RSZXBvc2l0b3J5LmZvck1vZGVsKEVSQzIwV2FsbGV0LCBGYWJyaWNFUkMyMENvbnRyYWN0LmFkYXB0ZXIuYWxpYXMpO1xuICAgICAgICB0aGlzLnRva2VuUmVwb3NpdG9yeSA9IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeS5mb3JNb2RlbChFUkMyMFRva2VuLCBGYWJyaWNFUkMyMENvbnRyYWN0LmFkYXB0ZXIuYWxpYXMpO1xuICAgICAgICB0aGlzLmFsbG93YW5jZVJlcG9zaXRvcnkgPSBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnkuZm9yTW9kZWwoQWxsb3dhbmNlLCBGYWJyaWNFUkMyMENvbnRyYWN0LmFkYXB0ZXIuYWxpYXMpO1xuICAgIH1cbiAgICBhc3luYyBUb2tlbk5hbWUoY29udGV4dCkge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLlRva2VuTmFtZSk7XG4gICAgICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgICAgIGF3YWl0IHRoaXMuQ2hlY2tJbml0aWFsaXplZChjdHgpO1xuICAgICAgICBjb25zdCBzZWxlY3QgPSB0aGlzLnRva2VuUmVwb3NpdG9yeS5zZWxlY3QoKTtcbiAgICAgICAgY29uc3QgdG9rZW4gPSAoYXdhaXQgc2VsZWN0LmV4ZWN1dGUoY3R4KSlbMF07XG4gICAgICAgIHJldHVybiB0b2tlbi5uYW1lO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gdGhlIHN5bWJvbCBvZiB0aGUgdG9rZW4uIEUuZy4g4oCcSElY4oCdLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtDb250ZXh0fSBjb250ZXh0IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAgICogQHJldHVybnMge1N0cmluZ30gUmV0dXJucyB0aGUgc3ltYm9sIG9mIHRoZSB0b2tlblxuICAgICAqL1xuICAgIGFzeW5jIFN5bWJvbChjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuVG9rZW5OYW1lKTtcbiAgICAgICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICAgICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdCA9IHRoaXMudG9rZW5SZXBvc2l0b3J5LnNlbGVjdCgpO1xuICAgICAgICBjb25zdCB0b2tlbiA9IChhd2FpdCBzZWxlY3QuZXhlY3V0ZShjdHgpKVswXTtcbiAgICAgICAgcmV0dXJuIHRva2VuLnN5bWJvbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgZGVjaW1hbHMgdGhlIHRva2VuIHVzZXNcbiAgICAgKiBlLmcuIDgsIG1lYW5zIHRvIGRpdmlkZSB0aGUgdG9rZW4gYW1vdW50IGJ5IDEwMDAwMDAwMCB0byBnZXQgaXRzIHVzZXIgcmVwcmVzZW50YXRpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NvbnRleHR9IGNvbnRleHQgdGhlIHRyYW5zYWN0aW9uIGNvbnRleHRcbiAgICAgKiBAcmV0dXJucyB7TnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGVjaW1hbHNcbiAgICAgKi9cbiAgICBhc3luYyBEZWNpbWFscyhjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuVG9rZW5OYW1lKTtcbiAgICAgICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICAgICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdCA9IHRoaXMudG9rZW5SZXBvc2l0b3J5LnNlbGVjdCgpO1xuICAgICAgICBjb25zdCB0b2tlbiA9IChhd2FpdCBzZWxlY3QuZXhlY3V0ZShjdHgpKVswXTtcbiAgICAgICAgcmV0dXJuIHRva2VuLmRlY2ltYWxzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gdGhlIHRvdGFsIHRva2VuIHN1cHBseS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q29udGV4dH0gY29udGV4dCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgICAqIEByZXR1cm5zIHtOdW1iZXJ9IFJldHVybnMgdGhlIHRvdGFsIHRva2VuIHN1cHBseVxuICAgICAqL1xuICAgIGFzeW5jIFRvdGFsU3VwcGx5KGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgeyBjdHggfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5Ub2tlbk5hbWUpO1xuICAgICAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBhbHJlYWR5IHNldCBmaXJzdCB0byBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgICAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4KTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ID0gdGhpcy53YWxsZXRSZXBvc2l0b3J5LnNlbGVjdCgpO1xuICAgICAgICBjb25zdCB3YWxsZXRzID0gYXdhaXQgc2VsZWN0LmV4ZWN1dGUoY3R4KTtcbiAgICAgICAgaWYgKHdhbGxldHMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBUaGUgdG9rZW4gJHt0aGlzLmdldE5hbWUoKX0gZG9lcyBub3QgZXhpc3RgKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdG90YWwgPSAwO1xuICAgICAgICB3YWxsZXRzLmZvckVhY2goKHdhbGxldCkgPT4ge1xuICAgICAgICAgICAgdG90YWwgKz0gd2FsbGV0LmJhbGFuY2U7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdG90YWw7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEJhbGFuY2VPZiByZXR1cm5zIHRoZSBiYWxhbmNlIG9mIHRoZSBnaXZlbiBhY2NvdW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIHtDb250ZXh0fSBjdHggdGhlIHRyYW5zYWN0aW9uIGNvbnRleHRcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gb3duZXIgVGhlIG93bmVyIGZyb20gd2hpY2ggdGhlIGJhbGFuY2Ugd2lsbCBiZSByZXRyaWV2ZWRcbiAgICAgKiBAcmV0dXJucyB7TnVtYmVyfSBSZXR1cm5zIHRoZSBhY2NvdW50IGJhbGFuY2VcbiAgICAgKi9cbiAgICBhc3luYyBCYWxhbmNlT2YoY29udGV4dCwgb3duZXIpIHtcbiAgICAgICAgY29uc3QgeyBjdHggfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5Ub2tlbk5hbWUpO1xuICAgICAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBhbHJlYWR5IHNldCBmaXJzdCB0byBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgICAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4KTtcbiAgICAgICAgY29uc3Qgd2FsbGV0ID0gYXdhaXQgdGhpcy53YWxsZXRSZXBvc2l0b3J5LnJlYWQob3duZXIsIGN0eCk7XG4gICAgICAgIHJldHVybiB3YWxsZXQuYmFsYW5jZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQHN1bW1hcnkgVHJhbnNmZXIgdHJhbnNmZXJzIHRva2VucyBmcm9tIGNsaWVudCBhY2NvdW50IHRvIHJlY2lwaWVudCBhY2NvdW50LlxuICAgICAqIEBkZXNjcmlwdGlvbiByZWNpcGllbnQgYWNjb3VudCBtdXN0IGJlIGEgdmFsaWQgY2xpZW50SUQgYXMgcmV0dXJuZWQgYnkgdGhlIENsaWVudEFjY291bnRJRCgpIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtDb250ZXh0fSBjb250ZXh0IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHRvIFRoZSByZWNpcGllbnRcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgVGhlIGFtb3VudCBvZiB0b2tlbiB0byBiZSB0cmFuc2ZlcnJlZFxuICAgICAqXG4gICAgICogQHJldHVybnMge0Jvb2xlYW59IFJldHVybiB3aGV0aGVyIHRoZSB0cmFuc2ZlciB3YXMgc3VjY2Vzc2Z1bCBvciBub3RcbiAgICAgKi9cbiAgICBhc3luYyBUcmFuc2Zlcihjb250ZXh0LCB0bywgdmFsdWUpIHtcbiAgICAgICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICAgICAgY29uc3QgeyBjdHggfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5UcmFuc2Zlcik7XG4gICAgICAgIGF3YWl0IHRoaXMuQ2hlY2tJbml0aWFsaXplZChjdHgpO1xuICAgICAgICBjb25zdCBmcm9tID0gY3R4LmlkZW50aXR5LmdldElEKCk7XG4gICAgICAgIGNvbnN0IHRyYW5zZmVyUmVzcCA9IGF3YWl0IHRoaXMuX3RyYW5zZmVyKGZyb20sIHRvLCB2YWx1ZSwgY3R4KTtcbiAgICAgICAgaWYgKCF0cmFuc2ZlclJlc3ApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiRmFpbGVkIHRvIHRyYW5zZmVyXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBUcmFuc2ZlciBgdmFsdWVgIGFtb3VudCBvZiB0b2tlbnMgZnJvbSBgZnJvbWAgdG8gYHRvYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q29udGV4dH0gY29udGV4dCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBmcm9tIFRoZSBzZW5kZXJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gdG8gVGhlIHJlY2lwaWVudFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSBUaGUgYW1vdW50IG9mIHRva2VuIHRvIGJlIHRyYW5zZmVycmVkXG4gICAgICogQHJldHVybnMge0Jvb2xlYW59IFJldHVybiB3aGV0aGVyIHRoZSB0cmFuc2ZlciB3YXMgc3VjY2Vzc2Z1bCBvciBub3RcbiAgICAgKi9cbiAgICBhc3luYyBUcmFuc2ZlckZyb20oY29udGV4dCwgZnJvbSwgdG8sIHZhbHVlKSB7XG4gICAgICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuQnVybkZyb20pO1xuICAgICAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4KTtcbiAgICAgICAgLy8gUmV0cmlldmUgdGhlIGFsbG93YW5jZSBvZiB0aGUgc3BlbmRlclxuICAgICAgICBjb25zdCBzcGVuZGVyID0gY3R4LmlkZW50aXR5LmdldElEKCk7XG4gICAgICAgIGNvbnN0IGFsbG93YW5jZSA9IGF3YWl0IHRoaXMuX2dldEFsbG93YW5jZShmcm9tLCBzcGVuZGVyLCBjdHgpO1xuICAgICAgICBpZiAoIWFsbG93YW5jZSB8fCBhbGxvd2FuY2UudmFsdWUgPCAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQWxsb3dhbmNlRXJyb3IoYHNwZW5kZXIgJHtzcGVuZGVyfSBoYXMgbm8gYWxsb3dhbmNlIGZyb20gJHtmcm9tfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnRBbGxvd2FuY2UgPSBhbGxvd2FuY2UudmFsdWU7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSB0cmFuc2ZlcnJlZCB2YWx1ZSBpcyBsZXNzIHRoYW4gdGhlIGFsbG93YW5jZVxuICAgICAgICBpZiAoY3VycmVudEFsbG93YW5jZSA8IHZhbHVlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFsYW5jZUVycm9yKFwiVGhlIHNwZW5kZXIgZG9lcyBub3QgaGF2ZSBlbm91Z2ggYWxsb3dhbmNlIHRvIHNwZW5kLlwiKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBEZWNyZWFzZSB0aGUgYWxsb3dhbmNlXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRBbGxvd2FuY2UgPSBzdWIoY3VycmVudEFsbG93YW5jZSwgdmFsdWUpO1xuICAgICAgICBjb25zdCBuZXdBbGxvd2FuY2UgPSBPYmplY3QuYXNzaWduKHt9LCBhbGxvd2FuY2UsIHtcbiAgICAgICAgICAgIHZhbHVlOiB1cGRhdGVkQWxsb3dhbmNlLFxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgdGhpcy5hbGxvd2FuY2VSZXBvc2l0b3J5LnVwZGF0ZShuZXdBbGxvd2FuY2UsIGN0eCk7XG4gICAgICAgIC8vUmVhbGl6ZSB0aGUgdHJhbnNmZXJcbiAgICAgICAgY29uc3QgdHJhbnNmZXJSZXNwID0gYXdhaXQgdGhpcy5fdHJhbnNmZXIoZnJvbSwgdG8sIHZhbHVlLCBjdHgpO1xuICAgICAgICBpZiAoIXRyYW5zZmVyUmVzcCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJGYWlsZWQgdG8gdHJhbnNmZXJcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGFzeW5jIF90cmFuc2Zlcihmcm9tLCB0bywgdmFsdWUsIGN0eCkge1xuICAgICAgICBjb25zdCBsb2cgPSBjdHgubG9nZ2VyO1xuICAgICAgICBpZiAoZnJvbSA9PT0gdG8pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBBdXRob3JpemF0aW9uRXJyb3IoXCJjYW5ub3QgdHJhbnNmZXIgdG8gYW5kIGZyb20gc2FtZSBjbGllbnQgYWNjb3VudFwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPCAwKSB7XG4gICAgICAgICAgICAvLyB0cmFuc2ZlciBvZiAwIGlzIGFsbG93ZWQgaW4gRVJDMjAsIHNvIGp1c3QgdmFsaWRhdGUgYWdhaW5zdCBuZWdhdGl2ZSBhbW91bnRzXG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFsYW5jZUVycm9yKFwidHJhbnNmZXIgYW1vdW50IGNhbm5vdCBiZSBuZWdhdGl2ZVwiKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBSZXRyaWV2ZSB0aGUgY3VycmVudCBiYWxhbmNlIG9mIHRoZSBzZW5kZXJcbiAgICAgICAgY29uc3QgZnJvbVdhbGxldCA9IGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS5yZWFkKGZyb20sIGN0eCk7XG4gICAgICAgIGNvbnN0IGZyb21CYWxhbmNlID0gZnJvbVdhbGxldC5iYWxhbmNlO1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgc2VuZGVyIGhhcyBlbm91Z2ggdG9rZW5zIHRvIHNwZW5kLlxuICAgICAgICBpZiAoZnJvbUJhbGFuY2UgPCB2YWx1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEJhbGFuY2VFcnJvcihgY2xpZW50IGFjY291bnQgJHtmcm9tfSBoYXMgaW5zdWZmaWNpZW50IGZ1bmRzLmApO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJldHJpZXZlIHRoZSBjdXJyZW50IGJhbGFuY2Ugb2YgdGhlIHJlY2VwaWVudFxuICAgICAgICBsZXQgdG9XYWxsZXQ7XG4gICAgICAgIGxldCBuZXdUb1dhbGxldCA9IGZhbHNlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdG9XYWxsZXQgPSBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkucmVhZCh0bywgY3R4KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBCYXNlRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoZS5jb2RlID09PSA0MDQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHdhbGxldCBmb3IgdGhlIG1pbnRlclxuICAgICAgICAgICAgICAgICAgICB0b1dhbGxldCA9IG5ldyBFUkMyMFdhbGxldCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogdG8sXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWxhbmNlOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW46IGF3YWl0IHRoaXMuVG9rZW5OYW1lKGN0eCksXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBuZXdUb1dhbGxldCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRvQmFsYW5jZSA9IHRvV2FsbGV0LmJhbGFuY2U7XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgYmFsYW5jZVxuICAgICAgICBjb25zdCBmcm9tVXBkYXRlZEJhbGFuY2UgPSBzdWIoZnJvbUJhbGFuY2UsIHZhbHVlKTtcbiAgICAgICAgY29uc3QgdG9VcGRhdGVkQmFsYW5jZSA9IGFkZCh0b0JhbGFuY2UsIHZhbHVlKTtcbiAgICAgICAgY29uc3QgdXBkYXRlZEZyb21XYWxsZXQgPSBPYmplY3QuYXNzaWduKHt9LCBmcm9tV2FsbGV0LCB7XG4gICAgICAgICAgICBiYWxhbmNlOiBmcm9tVXBkYXRlZEJhbGFuY2UsXG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkudXBkYXRlKHVwZGF0ZWRGcm9tV2FsbGV0LCBjdHgpO1xuICAgICAgICBjb25zdCB1cGRhdGVkVG9XYWxsZXQgPSBPYmplY3QuYXNzaWduKHt9LCB0b1dhbGxldCwge1xuICAgICAgICAgICAgYmFsYW5jZTogdG9VcGRhdGVkQmFsYW5jZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChuZXdUb1dhbGxldCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy53YWxsZXRSZXBvc2l0b3J5LmNyZWF0ZSh1cGRhdGVkVG9XYWxsZXQsIGN0eCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkudXBkYXRlKHVwZGF0ZWRUb1dhbGxldCwgY3R4KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBFbWl0IHRoZSBUcmFuc2ZlciBldmVudFxuICAgICAgICBjb25zdCB0cmFuc2ZlckV2ZW50ID0geyBmcm9tLCB0bywgdmFsdWU6IHZhbHVlIH07XG4gICAgICAgIHRoaXMucmVwb1xuICAgICAgICAgICAgLnJlZnJlc2goRVJDMjBUb2tlbiwgRVJDMjBFdmVudHMuVFJBTlNGRVIsIFwiXCIsIHRyYW5zZmVyRXZlbnQsIGN0eClcbiAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4gbG9nLmVycm9yKGBGYWlsZWQgdG8gbm90aWZ5IHRyYW5zZmVyOiAke2V9YCkpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWxsb3dzIGBzcGVuZGVyYCB0byBzcGVuZCBgdmFsdWVgIGFtb3VudCBvZiB0b2tlbnMgZnJvbSB0aGUgb3duZXIuIE5ldyBBcHByb3ZlIGNhbGxzIG92ZXJyaWRlIHRoZSBwcmV2aW91cyBhbGxvd2FuY2UuXG4gICAgICogQG5vdGUgaHR0cHM6Ly9laXBzLmV0aGVyZXVtLm9yZy9FSVBTL2VpcC0yMFxuICAgICAqXG4gICAgICogQHBhcmFtIHtDb250ZXh0fSBjdHggdGhlIHRyYW5zYWN0aW9uIGNvbnRleHRcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gc3BlbmRlciBUaGUgc3BlbmRlclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSBUaGUgYW1vdW50IG9mIHRva2VucyB0byBiZSBhcHByb3ZlZCBmb3IgdHJhbnNmZXJcbiAgICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gUmV0dXJuIHdoZXRoZXIgdGhlIGFwcHJvdmFsIHdhcyBzdWNjZXNzZnVsIG9yIG5vdFxuICAgICAqL1xuICAgIGFzeW5jIEFwcHJvdmUoY29udGV4dCwgc3BlbmRlciwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgeyBjdHgsIGN0eEFyZ3MgfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5BcHByb3ZlKTtcbiAgICAgICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICAgICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCk7XG4gICAgICAgIGNvbnN0IG93bmVyID0gY3R4LmlkZW50aXR5LmdldElEKCk7XG4gICAgICAgIGxldCBhbGxvd2FuY2UgPSBhd2FpdCB0aGlzLl9nZXRBbGxvd2FuY2Uob3duZXIsIHNwZW5kZXIsIGN0eCk7XG4gICAgICAgIGNvbnN0IG93bmVyV2FsbGV0ID0gYXdhaXQgdGhpcy53YWxsZXRSZXBvc2l0b3J5LnJlYWQob3duZXIsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBpZiAob3duZXJXYWxsZXQuYmFsYW5jZSA8IHZhbHVlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFsYW5jZUVycm9yKGBjbGllbnQgYWNjb3VudCAke293bmVyfSBoYXMgaW5zdWZmaWNpZW50IGZ1bmRzLmApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbGxvd2FuY2UpIHtcbiAgICAgICAgICAgIC8vIE92ZXJ3cml0ZSB0aGUgYWxsb3dhbmNlXG4gICAgICAgICAgICBhbGxvd2FuY2UudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuYWxsb3dhbmNlUmVwb3NpdG9yeS51cGRhdGUoYWxsb3dhbmNlLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGFsbG93YW5jZSA9IG5ldyBBbGxvd2FuY2Uoe1xuICAgICAgICAgICAgICAgIG93bmVyOiBvd25lcixcbiAgICAgICAgICAgICAgICBzcGVuZGVyOiBzcGVuZGVyLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5hbGxvd2FuY2VSZXBvc2l0b3J5LmNyZWF0ZShhbGxvd2FuY2UsIC4uLmN0eEFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEVtaXQgdGhlIEFwcHJvdmFsIGV2ZW50XG4gICAgICAgIGNvbnN0IGFwcHJvdmFsRXZlbnQgPSB7IG93bmVyLCBzcGVuZGVyLCB2YWx1ZTogdmFsdWUgfTtcbiAgICAgICAgdGhpcy5yZXBvLnJlZnJlc2goRVJDMjBUb2tlbiwgRVJDMjBFdmVudHMuQVBQUk9WQUwsIFwiXCIsIGFwcHJvdmFsRXZlbnQsIGN0eCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBhbW91bnQgb2YgdG9rZW5zIHdoaWNoIGAgYCBpcyBhbGxvd2VkIHRvIHdpdGhkcmF3IGZyb20gYG93bmVyYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q29udGV4dH0gY3R4IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG93bmVyIFRoZSBvd25lciBvZiB0b2tlbnNcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gc3BlbmRlciBUaGUgc3BlbmRlciB3aG8gYXJlIGFibGUgdG8gdHJhbnNmZXIgdGhlIHRva2Vuc1xuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybiB0aGUgYW1vdW50IG9mIHJlbWFpbmluZyB0b2tlbnMgYWxsb3dlZCB0byBzcGVudFxuICAgICAqL1xuICAgIGFzeW5jIEFsbG93YW5jZShjb250ZXh0LCBvd25lciwgc3BlbmRlcikge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLkFsbG93YW5jZSk7XG4gICAgICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgICAgIGF3YWl0IHRoaXMuQ2hlY2tJbml0aWFsaXplZChjdHgpO1xuICAgICAgICBjb25zdCBhbGxvd2FuY2UgPSBhd2FpdCB0aGlzLl9nZXRBbGxvd2FuY2Uob3duZXIsIHNwZW5kZXIsIGN0eCk7XG4gICAgICAgIGlmICghYWxsb3dhbmNlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQWxsb3dhbmNlRXJyb3IoYHNwZW5kZXIgJHtzcGVuZGVyfSBoYXMgbm8gYWxsb3dhbmNlIGZyb20gJHtvd25lcn1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWxsb3dhbmNlLnZhbHVlO1xuICAgIH1cbiAgICBhc3luYyBfZ2V0QWxsb3dhbmNlKG93bmVyLCBzcGVuZGVyLCBjdHgpIHtcbiAgICAgICAgY29uc3QgYWxsb3dhbmNlQ29uZGl0aW9uID0gQ29uZGl0aW9uLmFuZChDb25kaXRpb24uYXR0cmlidXRlKFwib3duZXJcIikuZXEob3duZXIpLCBDb25kaXRpb24uYXR0cmlidXRlKFwic3BlbmRlclwiKS5lcShzcGVuZGVyKSk7XG4gICAgICAgIGNvbnN0IGFsbG93YW5jZSA9IGF3YWl0IHRoaXMuYWxsb3dhbmNlUmVwb3NpdG9yeVxuICAgICAgICAgICAgLnNlbGVjdCgpXG4gICAgICAgICAgICAud2hlcmUoYWxsb3dhbmNlQ29uZGl0aW9uKVxuICAgICAgICAgICAgLmV4ZWN1dGUoY3R4KTtcbiAgICAgICAgcmV0dXJuIGFsbG93YW5jZT8uWzBdO1xuICAgIH1cbiAgICAvLyA9PT09PT09PT09PT09PT09PT0gRXh0ZW5kZWQgRnVuY3Rpb25zID09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLyoqXG4gICAgICogU2V0IG9wdGlvbmFsIGluZm9tYXRpb24gZm9yIGEgdG9rZW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NvbnRleHR9IGN0eCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIFRoZSBuYW1lIG9mIHRoZSB0b2tlblxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBzeW1ib2wgVGhlIHN5bWJvbCBvZiB0aGUgdG9rZW5cbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZGVjaW1hbHMgVGhlIGRlY2ltYWxzIG9mIHRoZSB0b2tlblxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0b3RhbFN1cHBseSBUaGUgdG90YWxTdXBwbHkgb2YgdGhlIHRva2VuXG4gICAgICovXG4gICAgYXN5bmMgSW5pdGlhbGl6ZShjb250ZXh0LCB0b2tlbikge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLkluaXRpYWxpemUpO1xuICAgICAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBub3QgYWxyZWFkeSBzZXQsIGNsaWVudCBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlbSBvbmNlIGludGl0aWFsaXplZFxuICAgICAgICBjb25zdCB0b2tlbnMgPSBhd2FpdCB0aGlzLnRva2VuUmVwb3NpdG9yeS5zZWxlY3QoKS5leGVjdXRlKGN0eCk7XG4gICAgICAgIGlmICh0b2tlbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEF1dGhvcml6YXRpb25FcnJvcihcImNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0LCBjbGllbnQgaXMgbm90IGF1dGhvcml6ZWQgdG8gY2hhbmdlIHRoZW1cIik7XG4gICAgICAgIH1cbiAgICAgICAgdG9rZW4ub3duZXIgPSBjdHguaWRlbnRpdHkuZ2V0SUQoKTtcbiAgICAgICAgYXdhaXQgdGhpcy50b2tlblJlcG9zaXRvcnkuY3JlYXRlKHRva2VuLCBjdHgpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gQ2hlY2tzIHRoYXQgY29udHJhY3Qgb3B0aW9ucyBoYXZlIGJlZW4gYWxyZWFkeSBpbml0aWFsaXplZFxuICAgIGFzeW5jIENoZWNrSW5pdGlhbGl6ZWQoY29udGV4dCkge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQpO1xuICAgICAgICBjb25zdCB0b2tlbnMgPSBhd2FpdCB0aGlzLnRva2VuUmVwb3NpdG9yeS5zZWxlY3QoKS5leGVjdXRlKGN0eCk7XG4gICAgICAgIGlmICh0b2tlbnMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RJbml0aWFsaXplZEVycm9yKFwiY29udHJhY3Qgb3B0aW9ucyBuZWVkIHRvIGJlIHNldCBiZWZvcmUgY2FsbGluZyBhbnkgZnVuY3Rpb24sIGNhbGwgSW5pdGlhbGl6ZSgpIHRvIGluaXRpYWxpemUgY29udHJhY3RcIik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogTWludCBjcmVhdGVzIG5ldyB0b2tlbnMgYW5kIGFkZHMgdGhlbSB0byBtaW50ZXIncyBhY2NvdW50IGJhbGFuY2VcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q29udGV4dH0gY29udGV4dCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBhbW91bnQgYW1vdW50IG9mIHRva2VucyB0byBiZSBtaW50ZWRcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgYmFsYW5jZVxuICAgICAqL1xuICAgIGFzeW5jIE1pbnQoY29udGV4dCwgYW1vdW50KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuTWludCk7XG4gICAgICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgICAgIGF3YWl0IHRoaXMuQ2hlY2tJbml0aWFsaXplZChjdHgpO1xuICAgICAgICAvLyBHZXQgSUQgb2Ygc3VibWl0dGluZyBjbGllbnQgaWRlbnRpdHlcbiAgICAgICAgY29uc3QgbWludGVyID0gY3R4LmlkZW50aXR5LmdldElEKCk7XG4gICAgICAgIGlmIChhbW91bnQgPD0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcIm1pbnQgYW1vdW50IG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyXCIpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBtaW50ZXJXYWxsZXQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBtaW50ZXJXYWxsZXQgPSBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkucmVhZChtaW50ZXIsIGN0eCk7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50QmFsYW5jZSA9IG1pbnRlcldhbGxldC5iYWxhbmNlO1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJhbGFuY2UgPSBhZGQoY3VycmVudEJhbGFuY2UsIGFtb3VudCk7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkbWludGVyID0gT2JqZWN0LmFzc2lnbih7fSwgbWludGVyV2FsbGV0LCB7XG4gICAgICAgICAgICAgICAgYmFsYW5jZTogdXBkYXRlZEJhbGFuY2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS51cGRhdGUodXBkYXRlZG1pbnRlciwgY3R4KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBCYXNlRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoZS5jb2RlID09PSA0MDQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHdhbGxldCBmb3IgdGhlIG1pbnRlclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdXYWxsZXQgPSBuZXcgRVJDMjBXYWxsZXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IG1pbnRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhbGFuY2U6IGFtb3VudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuOiBhd2FpdCB0aGlzLlRva2VuTmFtZShjb250ZXh0KSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS5jcmVhdGUobmV3V2FsbGV0LCBjdHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZS5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBFbWl0IHRoZSBUcmFuc2ZlciBldmVudFxuICAgICAgICBjb25zdCB0cmFuc2ZlckV2ZW50ID0geyBmcm9tOiBcIjB4MFwiLCB0bzogbWludGVyLCB2YWx1ZTogYW1vdW50IH07XG4gICAgICAgIGNvbnN0IGV2ZW50SGFuZGxlciA9IHRoaXMucmVwby5PYnNlcnZlckhhbmRsZXIoKTtcbiAgICAgICAgZXZlbnRIYW5kbGVyLnVwZGF0ZU9ic2VydmVycyhFUkMyMFRva2VuLCBFUkMyMEV2ZW50cy5UUkFOU0ZFUiwgXCJcIiwgdHJhbnNmZXJFdmVudCwgY3R4KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQnVybiByZWRlZW0gdG9rZW5zIGZyb20gbWludGVyJ3MgYWNjb3VudCBiYWxhbmNlXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NvbnRleHR9IGNvbnRleHQgdGhlIHRyYW5zYWN0aW9uIGNvbnRleHRcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYW1vdW50IGFtb3VudCBvZiB0b2tlbnMgdG8gYmUgYnVybmVkXG4gICAgICogQHJldHVybnMge09iamVjdH0gVGhlIGJhbGFuY2VcbiAgICAgKi9cbiAgICBhc3luYyBCdXJuKGNvbnRleHQsIGFtb3VudCkge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuQnVybik7XG4gICAgICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgICAgIGF3YWl0IHRoaXMuQ2hlY2tJbml0aWFsaXplZChjdHgpO1xuICAgICAgICBjb25zdCBtaW50ZXIgPSBjdHguaWRlbnRpdHkuZ2V0SUQoKTtcbiAgICAgICAgY29uc3QgbWludGVyV2FsbGV0ID0gYXdhaXQgdGhpcy53YWxsZXRSZXBvc2l0b3J5LnJlYWQobWludGVyLCBjdHgpO1xuICAgICAgICBjb25zdCBjdXJyZW50QmFsYW5jZSA9IG1pbnRlcldhbGxldC5iYWxhbmNlO1xuICAgICAgICBpZiAoY3VycmVudEJhbGFuY2UgPCBhbW91bnQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBCYWxhbmNlRXJyb3IoYE1pbnRlciBoYXMgaW5zdWZmaWNpZW50IGZ1bmRzLmApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRCYWxhbmNlID0gc3ViKGN1cnJlbnRCYWxhbmNlLCBhbW91bnQpO1xuICAgICAgICBjb25zdCB1cGRhdGVkbWludGVyID0gT2JqZWN0LmFzc2lnbih7fSwgbWludGVyV2FsbGV0LCB7XG4gICAgICAgICAgICBiYWxhbmNlOiB1cGRhdGVkQmFsYW5jZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS51cGRhdGUodXBkYXRlZG1pbnRlciwgY3R4KTtcbiAgICAgICAgbG9nLmluZm8oYCR7YW1vdW50fSB0b2tlbnMgd2VyZSBidXJuZWRgKTtcbiAgICAgICAgLy8gRW1pdCB0aGUgVHJhbnNmZXIgZXZlbnRcbiAgICAgICAgY29uc3QgdHJhbnNmZXJFdmVudCA9IHsgZnJvbTogbWludGVyLCB0bzogXCIweDBcIiwgdmFsdWU6IGFtb3VudCB9O1xuICAgICAgICBjb25zdCBldmVudEhhbmRsZXIgPSB0aGlzLnJlcG8uT2JzZXJ2ZXJIYW5kbGVyKCk7XG4gICAgICAgIGV2ZW50SGFuZGxlci51cGRhdGVPYnNlcnZlcnMoRVJDMjBUb2tlbiwgRVJDMjBFdmVudHMuVFJBTlNGRVIsIFwiXCIsIHRyYW5zZmVyRXZlbnQsIGN0eCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEJ1cm5Gcm9tIHJlZGVlbSB0b2tlbnMgZnJvbSBhY2NvdW50IGFsbG93ZW5jZSBhbmQgYmFsYW5jZVxuICAgICAqXG4gICAgICogQHBhcmFtIHtDb250ZXh0fSBjb250ZXh0IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGFjY291bnQgYWNjb3VudCBmcm9tIHdoZXJlIHRva2VucyB3aWxsIGJlIGJ1cm5lZFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBhbW91bnQgYW1vdW50IG9mIHRva2VucyB0byBiZSBidXJuZWRcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgYmFsYW5jZVxuICAgICAqL1xuICAgIGFzeW5jIEJ1cm5Gcm9tKGNvbnRleHQsIGFjY291bnQsIGFtb3VudCkge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuQnVybkZyb20pO1xuICAgICAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBhbHJlYWR5IHNldCBmaXJzdCB0byBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgICAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4KTtcbiAgICAgICAgY29uc3QgYWNjb3VudFdhbGxldCA9IGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS5yZWFkKGFjY291bnQsIGN0eCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRCYWxhbmNlID0gYWNjb3VudFdhbGxldC5iYWxhbmNlO1xuICAgICAgICBpZiAoY3VycmVudEJhbGFuY2UgPCBhbW91bnQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBCYWxhbmNlRXJyb3IoYCR7YWNjb3VudH0gaGFzIGluc3VmZmljaWVudCBmdW5kcy5gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cGRhdGVkQmFsYW5jZSA9IHN1YihjdXJyZW50QmFsYW5jZSwgYW1vdW50KTtcbiAgICAgICAgY29uc3QgdXBkYXRlZGFjY291bnQgPSBPYmplY3QuYXNzaWduKHt9LCBhY2NvdW50V2FsbGV0LCB7XG4gICAgICAgICAgICBiYWxhbmNlOiB1cGRhdGVkQmFsYW5jZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS51cGRhdGUodXBkYXRlZGFjY291bnQsIGN0eCk7XG4gICAgICAgIGxvZy5pbmZvKGAke2Ftb3VudH0gdG9rZW5zIHdlcmUgYnVybmVkIGZyb20gJHthY2NvdW50fWApO1xuICAgICAgICAvLyBFbWl0IHRoZSBUcmFuc2ZlciBldmVudFxuICAgICAgICBjb25zdCB0cmFuc2ZlckV2ZW50ID0geyBmcm9tOiBhY2NvdW50LCB0bzogXCIweDBcIiwgdmFsdWU6IGFtb3VudCB9O1xuICAgICAgICBjb25zdCBldmVudEhhbmRsZXIgPSB0aGlzLnJlcG8uT2JzZXJ2ZXJIYW5kbGVyKCk7XG4gICAgICAgIGV2ZW50SGFuZGxlci51cGRhdGVPYnNlcnZlcnMoRVJDMjBUb2tlbiwgRVJDMjBFdmVudHMuVFJBTlNGRVIsIFwiXCIsIHRyYW5zZmVyRXZlbnQsIGN0eCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENsaWVudEFjY291bnRCYWxhbmNlIHJldHVybnMgdGhlIGJhbGFuY2Ugb2YgdGhlIHJlcXVlc3RpbmcgY2xpZW50J3MgYWNjb3VudC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q29udGV4dH0gY29udGV4dCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgICAqIEByZXR1cm5zIHtOdW1iZXJ9IFJldHVybnMgdGhlIGFjY291bnQgYmFsYW5jZVxuICAgICAqL1xuICAgIGFzeW5jIENsaWVudEFjY291bnRCYWxhbmNlKGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgeyBjdHggfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5Ub2tlbk5hbWUpO1xuICAgICAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBhbHJlYWR5IHNldCBmaXJzdCB0byBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgICAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4KTtcbiAgICAgICAgLy8gR2V0IElEIG9mIHN1Ym1pdHRpbmcgY2xpZW50IGlkZW50aXR5XG4gICAgICAgIGNvbnN0IGNsaWVudEFjY291bnRJRCA9IGN0eC5pZGVudGl0eS5nZXRJRCgpO1xuICAgICAgICBjb25zdCBjbGllbnRXYWxsZXQgPSBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkucmVhZChjbGllbnRBY2NvdW50SUQsIGN0eCk7XG4gICAgICAgIGlmICghY2xpZW50V2FsbGV0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFsYW5jZUVycm9yKGBUaGUgYWNjb3VudCAke2NsaWVudEFjY291bnRJRH0gZG9lcyBub3QgZXhpc3RgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xpZW50V2FsbGV0LmJhbGFuY2U7XG4gICAgfVxuICAgIC8vIENsaWVudEFjY291bnRJRCByZXR1cm5zIHRoZSBpZCBvZiB0aGUgcmVxdWVzdGluZyBjbGllbnQncyBhY2NvdW50LlxuICAgIC8vIEluIHRoaXMgaW1wbGVtZW50YXRpb24sIHRoZSBjbGllbnQgYWNjb3VudCBJRCBpcyB0aGUgY2xpZW50SWQgaXRzZWxmLlxuICAgIC8vIFVzZXJzIGNhbiB1c2UgdGhpcyBmdW5jdGlvbiB0byBnZXQgdGhlaXIgb3duIGFjY291bnQgaWQsIHdoaWNoIHRoZXkgY2FuIHRoZW4gZ2l2ZSB0byBvdGhlcnMgYXMgdGhlIHBheW1lbnQgYWRkcmVzc1xuICAgIGFzeW5jIENsaWVudEFjY291bnRJRChjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuQ2xpZW50QWNjb3VudElEKTtcbiAgICAgICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICAgICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCk7XG4gICAgICAgIC8vIEdldCBJRCBvZiBzdWJtaXR0aW5nIGNsaWVudCBpZGVudGl0eVxuICAgICAgICBjb25zdCBjbGllbnRBY2NvdW50SUQgPSBjdHguaWRlbnRpdHkuZ2V0SUQoKTtcbiAgICAgICAgcmV0dXJuIGNsaWVudEFjY291bnRJRDtcbiAgICB9XG59XG5fX2RlY29yYXRlKFtcbiAgICBUcmFuc2FjdGlvbihmYWxzZSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW0NvbnRleHRdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEZhYnJpY0VSQzIwQ29udHJhY3QucHJvdG90eXBlLCBcIlRva2VuTmFtZVwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIFRyYW5zYWN0aW9uKGZhbHNlKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ29udGV4dF0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRmFicmljRVJDMjBDb250cmFjdC5wcm90b3R5cGUsIFwiU3ltYm9sXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oZmFsc2UpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDb250ZXh0XSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBGYWJyaWNFUkMyMENvbnRyYWN0LnByb3RvdHlwZSwgXCJEZWNpbWFsc1wiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIFRyYW5zYWN0aW9uKGZhbHNlKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ29udGV4dF0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRmFicmljRVJDMjBDb250cmFjdC5wcm90b3R5cGUsIFwiVG90YWxTdXBwbHlcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBUcmFuc2FjdGlvbihmYWxzZSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW0NvbnRleHQsIFN0cmluZ10pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRmFicmljRVJDMjBDb250cmFjdC5wcm90b3R5cGUsIFwiQmFsYW5jZU9mXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ29udGV4dCwgU3RyaW5nLCBOdW1iZXJdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEZhYnJpY0VSQzIwQ29udHJhY3QucHJvdG90eXBlLCBcIlRyYW5zZmVyXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ29udGV4dCwgU3RyaW5nLCBTdHJpbmcsIE51bWJlcl0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRmFicmljRVJDMjBDb250cmFjdC5wcm90b3R5cGUsIFwiVHJhbnNmZXJGcm9tXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ29udGV4dCwgU3RyaW5nLCBOdW1iZXJdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEZhYnJpY0VSQzIwQ29udHJhY3QucHJvdG90eXBlLCBcIkFwcHJvdmVcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBUcmFuc2FjdGlvbihmYWxzZSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW0NvbnRleHQsIFN0cmluZywgU3RyaW5nXSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBGYWJyaWNFUkMyMENvbnRyYWN0LnByb3RvdHlwZSwgXCJBbGxvd2FuY2VcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBUcmFuc2FjdGlvbigpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDb250ZXh0LCBFUkMyMFRva2VuXSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBGYWJyaWNFUkMyMENvbnRyYWN0LnByb3RvdHlwZSwgXCJJbml0aWFsaXplXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oZmFsc2UpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDb250ZXh0XSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBGYWJyaWNFUkMyMENvbnRyYWN0LnByb3RvdHlwZSwgXCJDaGVja0luaXRpYWxpemVkXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgT3duZXIoKSxcbiAgICBUcmFuc2FjdGlvbigpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDb250ZXh0LCBOdW1iZXJdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEZhYnJpY0VSQzIwQ29udHJhY3QucHJvdG90eXBlLCBcIk1pbnRcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBPd25lcigpLFxuICAgIFRyYW5zYWN0aW9uKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW0NvbnRleHQsIE51bWJlcl0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRmFicmljRVJDMjBDb250cmFjdC5wcm90b3R5cGUsIFwiQnVyblwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIE93bmVyKCksXG4gICAgVHJhbnNhY3Rpb24oKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ29udGV4dCwgU3RyaW5nLCBOdW1iZXJdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEZhYnJpY0VSQzIwQ29udHJhY3QucHJvdG90eXBlLCBcIkJ1cm5Gcm9tXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oZmFsc2UpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDb250ZXh0XSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBGYWJyaWNFUkMyMENvbnRyYWN0LnByb3RvdHlwZSwgXCJDbGllbnRBY2NvdW50QmFsYW5jZVwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIFRyYW5zYWN0aW9uKGZhbHNlKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ29udGV4dF0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRmFicmljRVJDMjBDb250cmFjdC5wcm90b3R5cGUsIFwiQ2xpZW50QWNjb3VudElEXCIsIG51bGwpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWlhKak1qQmpiMjUwY21GamRDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTlqYjI1MGNtRmpkSE12WlhKak1qQXZaWEpqTWpCamIyNTBjbUZqZEM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN1FVRkJRU3hQUVVGUExFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1UwRkJVeXhGUVVGRkxFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkRMMFFzVDBGQlR5eEZRVUZGTEU5QlFVOHNSVUZCUlN4WFFVRlhMRVZCUVVVc1RVRkJUU3h4UWtGQmNVSXNRMEZCUXp0QlFVTXpSQ3hQUVVGUExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN3clFrRkJNRUk3UVVGRE4wTXNUMEZCVHl4RlFVTk1MR05CUVdNc1JVRkRaQ3haUVVGWkxFVkJRMW9zYlVKQlFXMUNMRWRCUTNCQ0xHbERRVUUwUWp0QlFVTTNRaXhQUVVGUExFVkJRVVVzY1VKQlFYRkNMRVZCUVVVc1owTkJRVEpDTzBGQlF6TkVMRTlCUVU4c1JVRkJSU3hUUVVGVExFVkJRVVVzVlVGQlZTeEZRVUZGTEZkQlFWY3NSVUZCUlN4dlFrRkJhVUk3UVVGRE9VUXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3h4UTBGQlowTTdRVUZEYUVRc1QwRkJUeXhGUVVGRkxIZENRVUYzUWl4RlFVRkZMSGxEUVVGdlF6dEJRVVYyUlN4UFFVRlBMRVZCUTB3c1UwRkJVeXhGUVVOVUxHRkJRV0VzUlVGRFlpeGhRVUZoTEVWQlEySXNaVUZCWlN4SFFVTm9RaXhOUVVGTkxIbENRVUY1UWl4RFFVRkRPMEZCUTJwRExFOUJRVThzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3h0UTBGQk9FSTdRVUZGTTBRc1QwRkJUeXhGUVVGRkxGZEJRVmNzUlVGQlJTeG5SRUZCTWtNN1FVRkZha1U3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096dEhRWGRDUnp0QlFVTklMRTFCUVUwc1QwRkJaMElzYlVKQlFXOUNMRk5CUVZFc2EwSkJRU3RDTzBsQlR5OUZMRmxCUVhOQ0xFbEJRVms3VVVGRGFFTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dFJRVVY2UWl4dFFrRkJiVUlzUTBGQlF5eFBRVUZQTzFsQlEzcENMRzFDUVVGdFFpeERRVUZETEU5QlFVOHNTVUZCU1N4SlFVRkpMSEZDUVVGeFFpeEZRVUZGTEVOQlFVTTdVVUZGTjBRc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4SFFVRkhMSGRDUVVGM1FpeERRVUZETEZGQlFWRXNRMEZEZGtRc1YwRkJWeXhGUVVOWUxHMUNRVUZ0UWl4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRMnhETEVOQlFVTTdVVUZGUml4SlFVRkpMRU5CUVVNc1pVRkJaU3hIUVVGSExIZENRVUYzUWl4RFFVRkRMRkZCUVZFc1EwRkRkRVFzVlVGQlZTeEZRVU5XTEcxQ1FVRnRRaXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlEyeERMRU5CUVVNN1VVRkZSaXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRWRCUVVjc2QwSkJRWGRDTEVOQlFVTXNVVUZCVVN4RFFVTXhSQ3hUUVVGVExFVkJRMVFzYlVKQlFXMUNMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGRGJFTXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkhTeXhCUVVGT0xFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCWjBJN1VVRkRPVUlzVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU0zUkN4MVJVRkJkVVU3VVVGRGRrVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNSMEZCVlN4RFFVRkRMRU5CUVVNN1VVRkZlRU1zVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dFJRVU0zUXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFMUJRVTBzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJUZERMRTlCUVU4c1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF6dEpRVU53UWl4RFFVRkRPMGxCUlVRN096czdPMDlCUzBjN1NVRkZSeXhCUVVGT0xFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCWjBJN1VVRkRNMElzVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU0zUkN4MVJVRkJkVVU3VVVGRGRrVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNSMEZCVlN4RFFVRkRMRU5CUVVNN1VVRkZlRU1zVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dFJRVU0zUXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFMUJRVTBzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJUZERMRTlCUVU4c1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF6dEpRVU4wUWl4RFFVRkRPMGxCUlVRN096czdPenRQUVUxSE8wbEJSVWNzUVVGQlRpeExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVdkQ08xRkJRemRDTEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdVVUZETjBRc2RVVkJRWFZGTzFGQlEzWkZMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWRCUVZVc1EwRkJReXhEUVVGRE8xRkJSWGhETEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdVVUZETjBNc1RVRkJUU3hMUVVGTExFZEJRVWNzUTBGQlF5eE5RVUZOTEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVTNReXhQUVVGUExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTTdTVUZEZUVJc1EwRkJRenRKUVVWRU96czdPenRQUVV0SE8wbEJSVWNzUVVGQlRpeExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTlCUVdkQ08xRkJRMmhETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdVVUZETjBRc2RVVkJRWFZGTzFGQlEzWkZMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWRCUVZVc1EwRkJReXhEUVVGRE8xRkJSWGhETEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRSUVVNNVF5eE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZGTVVNc1NVRkJTU3hQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUTNoQ0xFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNZVUZCWVN4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1VVRkRlRVVzUTBGQlF6dFJRVVZFTEVsQlFVa3NTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVWa0xFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSVHRaUVVONlFpeExRVUZMTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJRenRSUVVNeFFpeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVklMRTlCUVU4c1MwRkJTeXhEUVVGRE8wbEJRMllzUTBGQlF6dEpRVVZFT3pzN096czdUMEZOUnp0SlFVVkhMRUZCUVU0c1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZuUWl4RlFVRkZMRXRCUVdFN1VVRkROME1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU0zUkN4MVJVRkJkVVU3VVVGRGRrVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNSMEZCVlN4RFFVRkRMRU5CUVVNN1VVRkZlRU1zVFVGQlRTeE5RVUZOTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFJRVVUxUkN4UFFVRlBMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU03U1VGRGVFSXNRMEZCUXp0SlFVVkVPenM3T3pzN096czdUMEZUUnp0SlFVVkhMRUZCUVU0c1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGRFdpeFBRVUZuUWl4RlFVTm9RaXhGUVVGVkxFVkJRMVlzUzBGQllUdFJRVVZpTEhWRlFVRjFSVHRSUVVOMlJTeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlF6VkVMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWRCUVZVc1EwRkJReXhEUVVGRE8xRkJSWGhETEUxQlFVMHNTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdVVUZGYkVNc1RVRkJUU3haUVVGWkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hGUVVGRkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTJoRkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVWQlFVVXNRMEZCUXp0WlFVTnNRaXhOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFTkJRVU03VVVGRGFFUXNRMEZCUXp0UlFVVkVMRTlCUVU4c1NVRkJTU3hEUVVGRE8wbEJRMlFzUTBGQlF6dEpRVVZFT3pzN096czdPenRQUVZGSE8wbEJSVWNzUVVGQlRpeExRVUZMTEVOQlFVTXNXVUZCV1N4RFFVTm9RaXhQUVVGblFpeEZRVU5vUWl4SlFVRlpMRVZCUTFvc1JVRkJWU3hGUVVOV0xFdEJRV0U3VVVGRllpeDFSVUZCZFVVN1VVRkRka1VzVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU0xUkN4TlFVRk5MRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4SFFVRlZMRU5CUVVNc1EwRkJRenRSUVVWNFF5eDNRMEZCZDBNN1VVRkZlRU1zVFVGQlRTeFBRVUZQTEVkQlFVY3NSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF6dFJRVVZ5UXl4TlFVRk5MRk5CUVZNc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU12UkN4SlFVRkpMRU5CUVVNc1UwRkJVeXhKUVVGSkxGTkJRVk1zUTBGQlF5eExRVUZMTEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRkRU1zVFVGQlRTeEpRVUZKTEdOQlFXTXNRMEZEZEVJc1YwRkJWeXhQUVVGUExEQkNRVUV3UWl4SlFVRkpMRVZCUVVVc1EwRkRia1FzUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZGUkN4TlFVRk5MR2RDUVVGblFpeEhRVUZITEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1VVRkZla01zTkVSQlFUUkVPMUZCUXpWRUxFbEJRVWtzWjBKQlFXZENMRWRCUVVjc1MwRkJTeXhGUVVGRkxFTkJRVU03V1VGRE4wSXNUVUZCVFN4SlFVRkpMRmxCUVZrc1EwRkRjRUlzYzBSQlFYTkVMRU5CUTNaRUxFTkJRVU03VVVGRFNpeERRVUZETzFGQlJVUXNlVUpCUVhsQ08xRkJRM3BDTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzUjBGQlJ5eERRVUZETEdkQ1FVRm5RaXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzUkVMRTFCUVUwc1dVRkJXU3hIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkZMRk5CUVZNc1JVRkJSVHRaUVVOb1JDeExRVUZMTEVWQlFVVXNaMEpCUVdkQ08xTkJRM2hDTEVOQlFVTXNRMEZCUXp0UlFVVklMRTFCUVUwc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZGZWtRc2MwSkJRWE5DTzFGQlEzUkNMRTFCUVUwc1dVRkJXU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTm9SU3hKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEVOQlFVTTdXVUZEYkVJc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhEUVVGRE8xRkJRMmhFTEVOQlFVTTdVVUZGUkN4UFFVRlBMRWxCUVVrc1EwRkJRenRKUVVOa0xFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVTmlMRWxCUVZrc1JVRkRXaXhGUVVGVkxFVkJRMVlzUzBGQllTeEZRVU5pTEVkQlFUQkNPMUZCUlRGQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNN1VVRkZka0lzU1VGQlNTeEpRVUZKTEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUVVNN1dVRkRhRUlzVFVGQlRTeEpRVUZKTEd0Q1FVRnJRaXhEUVVNeFFpeHBSRUZCYVVRc1EwRkRiRVFzUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZGUkN4SlFVRkpMRXRCUVVzc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU5rTEN0RlFVRXJSVHRaUVVNdlJTeE5RVUZOTEVsQlFVa3NXVUZCV1N4RFFVRkRMRzlEUVVGdlF5eERRVUZETEVOQlFVTTdVVUZETDBRc1EwRkJRenRSUVVWRUxEWkRRVUUyUXp0UlFVVTNReXhOUVVGTkxGVkJRVlVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJSUzlFTEUxQlFVMHNWMEZCVnl4SFFVRkhMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU03VVVGRmRrTXNhMFJCUVd0RU8xRkJRMnhFTEVsQlFVa3NWMEZCVnl4SFFVRkhMRXRCUVVzc1JVRkJSU3hEUVVGRE8xbEJRM2hDTEUxQlFVMHNTVUZCU1N4WlFVRlpMRU5CUVVNc2EwSkJRV3RDTEVsQlFVa3NNRUpCUVRCQ0xFTkJRVU1zUTBGQlF6dFJRVU16UlN4RFFVRkRPMUZCUlVRc1owUkJRV2RFTzFGQlJXaEVMRWxCUVVrc1VVRkJjVUlzUTBGQlF6dFJRVU14UWl4SlFVRkpMRmRCUVZjc1IwRkJXU3hMUVVGTExFTkJRVU03VVVGRGFrTXNTVUZCU1N4RFFVRkRPMWxCUTBnc1VVRkJVU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRka1FzUTBGQlF6dFJRVUZETEU5QlFVOHNRMEZCVlN4RlFVRkZMRU5CUVVNN1dVRkRjRUlzU1VGQlNTeERRVUZETEZsQlFWa3NVMEZCVXl4RlFVRkZMRU5CUVVNN1owSkJRek5DTEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1MwRkJTeXhIUVVGSExFVkJRVVVzUTBGQlF6dHZRa0ZEYmtJc2NVTkJRWEZETzI5Q1FVTnlReXhSUVVGUkxFZEJRVWNzU1VGQlNTeFhRVUZYTEVOQlFVTTdkMEpCUTNwQ0xFVkJRVVVzUlVGQlJTeEZRVUZGTzNkQ1FVTk9MRTlCUVU4c1JVRkJSU3hEUVVGRE8zZENRVU5XTEV0QlFVc3NSVUZCUlN4TlFVRk5MRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlZTeERRVUZETzNGQ1FVTjRReXhEUVVGRExFTkJRVU03YjBKQlEwZ3NWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJRenRuUWtGRGNrSXNRMEZCUXp0eFFrRkJUU3hEUVVGRE8yOUNRVU5PTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzJkQ1FVTnlReXhEUVVGRE8xbEJRMGdzUTBGQlF6dHBRa0ZCVFN4RFFVRkRPMmRDUVVOT0xFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNRMEZCVnl4RFFVRkRMRU5CUVVNN1dVRkRka01zUTBGQlF6dFJRVU5JTEVOQlFVTTdVVUZGUkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETzFGQlJXNURMSEZDUVVGeFFqdFJRVU55UWl4TlFVRk5MR3RDUVVGclFpeEhRVUZITEVkQlFVY3NRMEZCUXl4WFFVRlhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGJrUXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eEhRVUZITEVOQlFVTXNVMEZCVXl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJSUzlETEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRVZCUVVVc1ZVRkJWU3hGUVVGRk8xbEJRM1JFTEU5QlFVOHNSVUZCUlN4clFrRkJhMEk3VTBGRE5VSXNRMEZCUXl4RFFVRkRPMUZCUlVnc1RVRkJUU3hKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hEUVVGRExHbENRVUZwUWl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJSVE5FTEUxQlFVMHNaVUZCWlN4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEZGQlFWRXNSVUZCUlR0WlFVTnNSQ3hQUVVGUExFVkJRVVVzWjBKQlFXZENPMU5CUXpGQ0xFTkJRVU1zUTBGQlF6dFJRVVZJTEVsQlFVa3NWMEZCVnl4RlFVRkZMRU5CUVVNN1dVRkRhRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeERRVUZETEdWQlFXVXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVNelJDeERRVUZETzJGQlFVMHNRMEZCUXp0WlFVTk9MRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhsUVVGbExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZETTBRc1EwRkJRenRSUVVWRUxEQkNRVUV3UWp0UlFVTXhRaXhOUVVGTkxHRkJRV0VzUjBGQlJ5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUlVGQlJTeERRVUZETzFGQlJXcEVMRWxCUVVrc1EwRkJReXhKUVVGSk8yRkJRMDRzVDBGQlR5eERRVU5PTEZWQlFXbENMRVZCUTJwQ0xGZEJRVmNzUTBGQlF5eFJRVUZSTEVWQlEzQkNMRVZCUVVVc1JVRkRSaXhoUVVGaExFVkJRMklzUjBGQmRVTXNRMEZEZUVNN1lVRkRRU3hMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zT0VKQlFUaENMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVU1UkN4UFFVRlBMRWxCUVVrc1EwRkJRenRKUVVOa0xFTkJRVU03U1VGRlJEczdPenM3T3pzN1QwRlJSenRKUVVWSExFRkJRVTRzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZEV0N4UFFVRm5RaXhGUVVOb1FpeFBRVUZsTEVWQlEyWXNTMEZCWVR0UlFVVmlMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0JGTEhWRlFVRjFSVHRSUVVOMlJTeE5RVUZOTEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eEhRVUZWTEVOQlFVTXNRMEZCUXp0UlFVVjRReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRE8xRkJSVzVETEVsQlFVa3NVMEZCVXl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eExRVUZMTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJSVGxFTEUxQlFVMHNWMEZCVnl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVVjRSU3hKUVVGSkxGZEJRVmNzUTBGQlF5eFBRVUZQTEVkQlFVY3NTMEZCU3l4RlFVRkZMRU5CUVVNN1dVRkRhRU1zVFVGQlRTeEpRVUZKTEZsQlFWa3NRMEZCUXl4clFrRkJhMElzUzBGQlN5d3dRa0ZCTUVJc1EwRkJReXhEUVVGRE8xRkJRelZGTEVOQlFVTTdVVUZGUkN4SlFVRkpMRk5CUVZNc1JVRkJSU3hEUVVGRE8xbEJRMlFzTUVKQlFUQkNPMWxCUXpGQ0xGTkJRVk1zUTBGQlF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRPMWxCUTNoQ0xFMUJRVTBzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFMUJRVTBzUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVNdlJDeERRVUZETzJGQlFVMHNRMEZCUXp0WlFVTk9MRk5CUVZNc1IwRkJSeXhKUVVGSkxGTkJRVk1zUTBGQlF6dG5Ra0ZEZUVJc1MwRkJTeXhGUVVGRkxFdEJRVXM3WjBKQlExb3NUMEZCVHl4RlFVRkZMRTlCUVU4N1owSkJRMmhDTEV0QlFVc3NSVUZCUlN4TFFVRkxPMkZCUTJJc1EwRkJReXhEUVVGRE8xbEJSVWdzVFVGQlRTeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJReTlFTEVOQlFVTTdVVUZGUkN3d1FrRkJNRUk3VVVGRE1VSXNUVUZCVFN4aFFVRmhMRWRCUVVjc1JVRkJSU3hMUVVGTExFVkJRVVVzVDBGQlR5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVc1EwRkJRenRSUVVOMlJDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkRaaXhWUVVGcFFpeEZRVU5xUWl4WFFVRlhMRU5CUVVNc1VVRkJVU3hGUVVOd1FpeEZRVUZGTEVWQlEwWXNZVUZCWVN4RlFVTmlMRWRCUVhWRExFTkJRM2hETEVOQlFVTTdVVUZGUml4UFFVRlBMRWxCUVVrc1EwRkJRenRKUVVOa0xFTkJRVU03U1VGRlJEczdPenM3T3p0UFFVOUhPMGxCUlVjc1FVRkJUaXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVU5pTEU5QlFXZENMRVZCUTJoQ0xFdEJRV0VzUlVGRFlpeFBRVUZsTzFGQlJXWXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3gxUlVGQmRVVTdVVUZEZGtVc1RVRkJUU3hKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1IwRkJWU3hEUVVGRExFTkJRVU03VVVGRmVFTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEV0QlFVc3NSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRmFFVXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8xbEJRMllzVFVGQlRTeEpRVUZKTEdOQlFXTXNRMEZEZEVJc1YwRkJWeXhQUVVGUExEQkNRVUV3UWl4TFFVRkxMRVZCUVVVc1EwRkRjRVFzUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZEUkN4UFFVRlBMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU03U1VGRGVrSXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhoUVVGaExFTkJRMnBDTEV0QlFXRXNSVUZEWWl4UFFVRmxMRVZCUTJZc1IwRkJNRUk3VVVGRk1VSXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVTjBReXhUUVVGVExFTkJRVU1zVTBGQlV5eERRVUZaTEU5QlFVOHNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGRGFrUXNVMEZCVXl4RFFVRkRMRk5CUVZNc1EwRkJXU3hUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUTNSRUxFTkJRVU03VVVGRlJpeE5RVUZOTEZOQlFWTXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXh0UWtGQmJVSTdZVUZETjBNc1RVRkJUU3hGUVVGRk8yRkJRMUlzUzBGQlN5eERRVUZETEd0Q1FVRnJRaXhEUVVGRE8yRkJRM3BDTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOb1FpeFBRVUZQTEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM2hDTEVOQlFVTTdTVUZGUkN4dFJVRkJiVVU3U1VGRmJrVTdPenM3T3pzN08wOUJVVWM3U1VGRlJ5eEJRVUZPTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1QwRkJaMElzUlVGQlJTeExRVUZwUWp0UlFVTnNSQ3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8xRkJRemxFTEhkSFFVRjNSenRSUVVONFJ5eE5RVUZOTEUxQlFVMHNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMmhGTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU4wUWl4TlFVRk5MRWxCUVVrc2EwSkJRV3RDTEVOQlF6RkNMREpGUVVFeVJTeERRVU0xUlN4RFFVRkRPMUZCUTBvc1EwRkJRenRSUVVWRUxFdEJRVXNzUTBGQlF5eExRVUZMTEVkQlFVY3NSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF6dFJRVVZ1UXl4TlFVRk5MRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVVNVF5eFBRVUZQTEVsQlFVa3NRMEZCUXp0SlFVTmtMRU5CUVVNN1NVRkZSQ3cyUkVGQk5rUTdTVUZGZGtRc1FVRkJUaXhMUVVGTExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1QwRkJaMEk3VVVGRGNrTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRE8xRkJRM0JGTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGFFVXNTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEzWkNMRTFCUVUwc1NVRkJTU3h0UWtGQmJVSXNRMEZETTBJc2RVZEJRWFZITEVOQlEzaEhMRU5CUVVNN1VVRkRTaXhEUVVGRE8wbEJRMGdzUTBGQlF6dEpRVVZFT3pzN096czdUMEZOUnp0SlFVZEhMRUZCUVU0c1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZuUWl4RlFVRkZMRTFCUVdNN1VVRkRla01zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU40UkN4MVJVRkJkVVU3VVVGRGRrVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNSMEZCVlN4RFFVRkRMRU5CUVVNN1VVRkZlRU1zZFVOQlFYVkRPMUZCUTNaRExFMUJRVTBzVFVGQlRTeEhRVUZITEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03VVVGRmNFTXNTVUZCU1N4TlFVRk5MRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGFFSXNUVUZCVFN4SlFVRkpMR1ZCUVdVc1EwRkJReXgzUTBGQmQwTXNRMEZCUXl4RFFVRkRPMUZCUTNSRkxFTkJRVU03VVVGRlJDeEpRVUZKTEZsQlFYbENMRU5CUVVNN1VVRkRPVUlzU1VGQlNTeERRVUZETzFsQlEwZ3NXVUZCV1N4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZGTjBRc1RVRkJUU3hqUVVGakxFZEJRVWNzV1VGQldTeERRVUZETEU5QlFVOHNRMEZCUXp0WlFVVTFReXhOUVVGTkxHTkJRV01zUjBGQlJ5eEhRVUZITEVOQlFVTXNZMEZCWXl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8xbEJSVzVFTEUxQlFVMHNZVUZCWVN4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEZsQlFWa3NSVUZCUlR0blFrRkRjRVFzVDBGQlR5eEZRVUZGTEdOQlFXTTdZVUZEZUVJc1EwRkJReXhEUVVGRE8xbEJSVWdzVFVGQlRTeEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeERRVUZETEdGQlFXRXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVONlJDeERRVUZETzFGQlFVTXNUMEZCVHl4RFFVRlZMRVZCUVVVc1EwRkJRenRaUVVOd1FpeEpRVUZKTEVOQlFVTXNXVUZCV1N4VFFVRlRMRVZCUVVVc1EwRkJRenRuUWtGRE0wSXNTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hMUVVGTExFZEJRVWNzUlVGQlJTeERRVUZETzI5Q1FVTnVRaXh4UTBGQmNVTTdiMEpCUTNKRExFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NWMEZCVnl4RFFVRkRPM2RDUVVOb1F5eEZRVUZGTEVWQlFVVXNUVUZCVFR0M1FrRkRWaXhQUVVGUExFVkJRVVVzVFVGQlRUdDNRa0ZEWml4TFFVRkxMRVZCUVVVc1RVRkJUU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXp0eFFrRkRja01zUTBGQlF5eERRVUZETzI5Q1FVTklMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUTNKRUxFTkJRVU03Y1VKQlFVMHNRMEZCUXp0dlFrRkRUaXhOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRuUWtGRGNrTXNRMEZCUXp0WlFVTklMRU5CUVVNN2FVSkJRVTBzUTBGQlF6dG5Ra0ZEVGl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExFTkJRVmNzUTBGQlF5eERRVUZETzFsQlEzWkRMRU5CUVVNN1VVRkRTQ3hEUVVGRE8xRkJSVVFzTUVKQlFUQkNPMUZCUXpGQ0xFMUJRVTBzWVVGQllTeEhRVUZITEVWQlFVVXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJRenRSUVVOcVJTeE5RVUZOTEZsQlFWa3NSMEZEYUVJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eGxRVUZsTEVWQlFTdERMRU5CUVVNN1VVRkRNMFVzV1VGQldTeERRVUZETEdWQlFXVXNRMEZETVVJc1ZVRkJWU3hGUVVOV0xGZEJRVmNzUTBGQlF5eFJRVUZSTEVWQlEzQkNMRVZCUVVVc1JVRkRSaXhoUVVGaExFVkJRMklzUjBGQmRVTXNRMEZEZUVNc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJEczdPenM3TzA5QlRVYzdTVUZIUnl4QlFVRk9MRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlowSXNSVUZCUlN4TlFVRmpPMUZCUTNwRExFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlF6ZEVMSFZGUVVGMVJUdFJRVU4yUlN4TlFVRk5MRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4SFFVRlZMRU5CUVVNc1EwRkJRenRSUVVWNFF5eE5RVUZOTEUxQlFVMHNSMEZCUnl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETzFGQlJYQkRMRTFCUVUwc1dVRkJXU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkZia1VzVFVGQlRTeGpRVUZqTEVkQlFVY3NXVUZCV1N4RFFVRkRMRTlCUVU4c1EwRkJRenRSUVVVMVF5eEpRVUZKTEdOQlFXTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVNMVFpeE5RVUZOTEVsQlFVa3NXVUZCV1N4RFFVRkRMR2REUVVGblF5eERRVUZETEVOQlFVTTdVVUZETTBRc1EwRkJRenRSUVVWRUxFMUJRVTBzWTBGQll5eEhRVUZITEVkQlFVY3NRMEZCUXl4alFVRmpMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRmJrUXNUVUZCVFN4aFFVRmhMRWRCUVVjc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVWQlFVVXNXVUZCV1N4RlFVRkZPMWxCUTNCRUxFOUJRVThzUlVGQlJTeGpRVUZqTzFOQlEzaENMRU5CUVVNc1EwRkJRenRSUVVWSUxFMUJRVTBzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUTBGQlF5eGhRVUZoTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkZka1FzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRTFCUVUwc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXp0UlFVVjZReXd3UWtGQk1FSTdVVUZETVVJc1RVRkJUU3hoUVVGaExFZEJRVWNzUlVGQlJTeEpRVUZKTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1JVRkJSU3hMUVVGTExFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNSVUZCUlN4RFFVRkRPMUZCUTJwRkxFMUJRVTBzV1VGQldTeEhRVU5vUWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExHVkJRV1VzUlVGQkswTXNRMEZCUXp0UlFVTXpSU3haUVVGWkxFTkJRVU1zWlVGQlpTeERRVU14UWl4VlFVRlZMRVZCUTFZc1YwRkJWeXhEUVVGRExGRkJRVkVzUlVGRGNFSXNSVUZCUlN4RlFVTkdMR0ZCUVdFc1JVRkRZaXhIUVVGMVF5eERRVU40UXl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRU96czdPenM3TzA5QlQwYzdTVUZIUnl4QlFVRk9MRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRMW9zVDBGQlowSXNSVUZEYUVJc1QwRkJaU3hGUVVObUxFMUJRV003VVVGRlpDeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVTnFSU3gxUlVGQmRVVTdVVUZEZGtVc1RVRkJUU3hKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1IwRkJWU3hEUVVGRExFTkJRVU03VVVGRmVFTXNUVUZCVFN4aFFVRmhMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVVnlSU3hOUVVGTkxHTkJRV01zUjBGQlJ5eGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRPMUZCUlRkRExFbEJRVWtzWTBGQll5eEhRVUZITEUxQlFVMHNSVUZCUlN4RFFVRkRPMWxCUXpWQ0xFMUJRVTBzU1VGQlNTeFpRVUZaTEVOQlFVTXNSMEZCUnl4UFFVRlBMREJDUVVFd1FpeERRVUZETEVOQlFVTTdVVUZETDBRc1EwRkJRenRSUVVWRUxFMUJRVTBzWTBGQll5eEhRVUZITEVkQlFVY3NRMEZCUXl4alFVRmpMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRmJrUXNUVUZCVFN4alFVRmpMRWRCUVVjc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVWQlFVVXNZVUZCWVN4RlFVRkZPMWxCUTNSRUxFOUJRVThzUlVGQlJTeGpRVUZqTzFOQlEzaENMRU5CUVVNc1EwRkJRenRSUVVWSUxFMUJRVTBzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUTBGQlF5eGpRVUZqTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkZlRVFzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRTFCUVUwc05FSkJRVFJDTEU5QlFVOHNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkZla1FzTUVKQlFUQkNPMUZCUXpGQ0xFMUJRVTBzWVVGQllTeEhRVUZITEVWQlFVVXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hGUVVGRkxFVkJRVVVzUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJRenRSUVVOc1JTeE5RVUZOTEZsQlFWa3NSMEZEYUVJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eGxRVUZsTEVWQlFTdERMRU5CUVVNN1VVRkRNMFVzV1VGQldTeERRVUZETEdWQlFXVXNRMEZETVVJc1ZVRkJWU3hGUVVOV0xGZEJRVmNzUTBGQlF5eFJRVUZSTEVWQlEzQkNMRVZCUVVVc1JVRkRSaXhoUVVGaExFVkJRMklzUjBGQmRVTXNRMEZEZUVNc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJEczdPenM3VDBGTFJ6dEpRVVZITEVGQlFVNHNTMEZCU3l4RFFVRkRMRzlDUVVGdlFpeERRVUZETEU5QlFXZENPMUZCUTNwRExFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRE4wUXNkVVZCUVhWRk8xRkJRM1pGTEUxQlFVMHNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEVkQlFWVXNRMEZCUXl4RFFVRkRPMUZCUlhoRExIVkRRVUYxUXp0UlFVTjJReXhOUVVGTkxHVkJRV1VzUjBGQlJ5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRE8xRkJSVGRETEUxQlFVMHNXVUZCV1N4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZGTlVVc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzFsQlEyeENMRTFCUVUwc1NVRkJTU3haUVVGWkxFTkJRVU1zWlVGQlpTeGxRVUZsTEdsQ1FVRnBRaXhEUVVGRExFTkJRVU03VVVGRE1VVXNRMEZCUXp0UlFVVkVMRTlCUVU4c1dVRkJXU3hEUVVGRExFOUJRVThzUTBGQlF6dEpRVU01UWl4RFFVRkRPMGxCUlVRc2NVVkJRWEZGTzBsQlEzSkZMSGRGUVVGM1JUdEpRVU40UlN4eFNFRkJjVWc3U1VGRkwwY3NRVUZCVGl4TFFVRkxMRU5CUVVNc1pVRkJaU3hEUVVGRExFOUJRV2RDTzFGQlEzQkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNN1VVRkRia1VzZFVWQlFYVkZPMUZCUTNaRkxFMUJRVTBzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFZEJRVlVzUTBGQlF5eERRVUZETzFGQlJYaERMSFZEUVVGMVF6dFJRVU4yUXl4TlFVRk5MR1ZCUVdVc1IwRkJSeXhIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRPMUZCUXpkRExFOUJRVThzWlVGQlpTeERRVUZETzBsQlEzcENMRU5CUVVNN1EwRkRSanRCUVhSdFFrODdTVUZFVEN4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRE96dHhRMEZEVFN4UFFVRlBPenR2UkVGVEwwSTdRVUZUU3p0SlFVUk1MRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU03TzNGRFFVTkhMRTlCUVU4N08ybEVRVk0xUWp0QlFWVkxPMGxCUkV3c1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF6czdjVU5CUTBzc1QwRkJUenM3YlVSQlV6bENPMEZCVTBzN1NVRkVUQ3hYUVVGWExFTkJRVU1zUzBGQlN5eERRVUZET3p0eFEwRkRVU3hQUVVGUE96dHpSRUZ0UW1wRE8wRkJWVXM3U1VGRVRDeFhRVUZYTEVOQlFVTXNTMEZCU3l4RFFVRkRPenR4UTBGRFRTeFBRVUZQT3p0dlJFRlJMMEk3UVVGaFN6dEpRVVJNTEZkQlFWY3NSVUZCUlRzN2NVTkJSVWdzVDBGQlR6czdiVVJCWjBKcVFqdEJRVmxMTzBsQlJFd3NWMEZCVnl4RlFVRkZPenR4UTBGRlNDeFBRVUZQT3p0MVJFRTBRMnBDTzBGQmQwZExPMGxCUkV3c1YwRkJWeXhGUVVGRk96dHhRMEZGU0N4UFFVRlBPenRyUkVFeVEycENPMEZCVjBzN1NVRkVUQ3hYUVVGWExFTkJRVU1zUzBGQlN5eERRVUZET3p0eFEwRkZVaXhQUVVGUE96dHZSRUZuUW1wQ08wRkJLMEpMTzBsQlJFd3NWMEZCVnl4RlFVRkZPenR4UTBGRFdTeFBRVUZQTEVWQlFWTXNWVUZCVlRzN2NVUkJaVzVFTzBGQlNVczdTVUZFVEN4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRE96dHhRMEZEWVN4UFFVRlBPenN5UkVGUmRFTTdRVUZYU3p0SlFVWk1MRXRCUVVzc1JVRkJSVHRKUVVOUUxGZEJRVmNzUlVGQlJUczdjVU5CUTAwc1QwRkJUenM3SzBOQmMwUXhRanRCUVZkTE8wbEJSa3dzUzBGQlN5eEZRVUZGTzBsQlExQXNWMEZCVnl4RlFVRkZPenR4UTBGRFRTeFBRVUZQT3pzclEwRnZRekZDTzBGQldVczdTVUZHVEN4TFFVRkxMRVZCUVVVN1NVRkRVQ3hYUVVGWExFVkJRVVU3TzNGRFFVVklMRTlCUVU4N08yMUVRWEZEYWtJN1FVRlRTenRKUVVSTUxGZEJRVmNzUTBGQlF5eExRVUZMTEVOQlFVTTdPM0ZEUVVOcFFpeFBRVUZQT3pzclJFRmxNVU03UVVGTlN6dEpRVVJNTEZkQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNN08zRkRRVU5aTEU5QlFVODdPekJFUVZGeVF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJRUYxZEdodmNtbDZZWFJwYjI1RmNuSnZjaXdnUTI5dVpHbDBhVzl1SUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amIzSmxYQ0k3WEc1cGJYQnZjblFnZXlCRGIyNTBaWGgwTENCVWNtRnVjMkZqZEdsdmJpQjlJR1p5YjIwZ1hDSm1ZV0p5YVdNdFkyOXVkSEpoWTNRdFlYQnBYQ0k3WEc1cGJYQnZjblFnZXlCaFpHUXNJSE4xWWlCOUlHWnliMjBnWENJdUxpOHVMaTl6YUdGeVpXUXZiV0YwYUZ3aU8xeHVhVzF3YjNKMElIdGNiaUFnUVd4c2IzZGhibU5sUlhKeWIzSXNYRzRnSUVKaGJHRnVZMlZGY25KdmNpeGNiaUFnVG05MFNXNXBkR2xoYkdsNlpXUkZjbkp2Y2l4Y2JuMGdabkp2YlNCY0lpNHVMeTR1TDNOb1lYSmxaQzlsY25KdmNuTmNJanRjYm1sdGNHOXlkQ0I3SUVaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNpQjlJR1p5YjIwZ1hDSXVMaTlEYjI1MGNtRmpkRUZrWVhCMFpYSmNJanRjYm1sdGNHOXlkQ0I3SUVGc2JHOTNZVzVqWlN3Z1JWSkRNakJVYjJ0bGJpd2dSVkpETWpCWFlXeHNaWFFnZlNCbWNtOXRJRndpTGk5dGIyUmxiSE5jSWp0Y2JtbHRjRzl5ZENCN0lFOTNibVZ5SUgwZ1puSnZiU0JjSWk0dUx5NHVMM05vWVhKbFpDOWtaV052Y21GMGIzSnpYQ0k3WEc1cGJYQnZjblFnZXlCR1lXSnlhV05EYjI1MGNtRmpkRkpsY0c5emFYUnZjbmtnZlNCbWNtOXRJRndpTGk0dlJtRmljbWxqUTI5dWRISmhZM1JTWlhCdmMybDBiM0o1WENJN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDQjlJR1p5YjIwZ1hDSXVMaTlEYjI1MGNtRmpkRU52Ym5SbGVIUmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFSmhjMlZGY25KdmNpeGNiaUFnU1c1MFpYSnVZV3hGY25KdmNpeGNiaUFnVG05MFJtOTFibVJGY25KdmNpeGNiaUFnVm1Gc2FXUmhkR2x2YmtWeWNtOXlMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSaUxXUmxZMjl5WVhSdmNuTmNJanRjYm1sdGNHOXlkQ0I3SUVaaFluSnBZME55ZFdSRGIyNTBjbUZqZENCOUlHWnliMjBnWENJdUxpOWpjblZrTDJOeWRXUXRZMjl1ZEhKaFkzUmNJanRjYm1sdGNHOXlkQ0I3SUVaaFluSnBZME52Ym5SeVlXTjBVbVZ3YjNOcGRHOXllVTlpYzJWeWRtRmliR1ZJWVc1a2JHVnlJSDBnWm5KdmJTQmNJaTR1TDBaaFluSnBZME52Ym5SeVlXTjBVbVZ3YjNOcGRHOXllVTlpYzJWeWRtRmliR1ZJWVc1a2JHVnlYQ0k3WEc1cGJYQnZjblFnZXlCRlVrTXlNRVYyWlc1MGN5QjlJR1p5YjIwZ1hDSXVMaTh1TGk5emFHRnlaV1F2WlhKak1qQXZaWEpqTWpBdFkyOXVjM1JoYm5SelhDSTdYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFVlNRekl3SUhSdmEyVnVJR052Ym5SeVlXTjBJR0poYzJVZ1ptOXlJRWg1Y0dWeWJHVmtaMlZ5SUVaaFluSnBZMXh1SUNvZ1FITjFiVzFoY25rZ1NXMXdiR1Z0Wlc1MGN5QkZVa015TUMxc2FXdGxJSFJ2YTJWdUlHeHZaMmxqSUhWemFXNW5JSEpsY0c5emFYUnZjbWxsY3lCaGJtUWdZV1JoY0hSbGNuTXNJSEJ5YjNacFpHbHVaeUJ6ZEdGdVpHRnlaQ0IwYjJ0bGJpQnZjR1Z5WVhScGIyNXpJSE4xWTJnZ1lYTWdZbUZzWVc1alpTQnhkV1Z5YVdWekxDQjBjbUZ1YzJabGNuTXNJR0Z3Y0hKdmRtRnNjeXdnYldsdWRHbHVaeUJoYm1RZ1luVnlibWx1Wnk1Y2JpQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnVZVzFsSUMwZ1ZHaGxJR052Ym5SeVlXTjBJRzVoYldVZ2RYTmxaQ0IwYnlCelkyOXdaU0IwYjJ0bGJpQnBaR1Z1ZEdsMGVWeHVJQ29nUUc1dmRHVWdhSFIwY0hNNkx5OWxhWEJ6TG1WMGFHVnlaWFZ0TG05eVp5OUZTVkJUTDJWcGNDMHlNRnh1SUNvZ1FISmxkSFZ5YmlCN2RtOXBaSDFjYmlBcUlFQmpiR0Z6Y3lCR1lXSnlhV05GVWtNeU1FTnZiblJ5WVdOMFhHNGdLaUJBWlhoaGJYQnNaVnh1SUNvZ1kyeGhjM01nVFhsVWIydGxia052Ym5SeVlXTjBJR1Y0ZEdWdVpITWdSbUZpY21salJWSkRNakJEYjI1MGNtRmpkQ0I3WEc0Z0tpQWdJR052Ym5OMGNuVmpkRzl5S0NrZ2V5QnpkWEJsY2lnblRYbFViMnRsYmljcE95QjlYRzRnS2lCOVhHNGdLaUF2THlCVWFHVWdZMjl1ZEhKaFkzUWdaWGh3YjNObGN5QnRaWFJvYjJSeklHeHBhMlVnVkhKaGJuTm1aWElzSUVGd2NISnZkbVVzSUUxcGJuUXNJRUoxY200c0lHVjBZeTVjYmlBcUlFQnRaWEp0WVdsa1hHNGdLaUJ6WlhGMVpXNWpaVVJwWVdkeVlXMWNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdRMnhwWlc1MFhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElFTnZiblJ5WVdOMFhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElGZGhiR3hsZEZKbGNHOWNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdWRzlyWlc1U1pYQnZYRzRnS2lBZ0lIQmhjblJwWTJsd1lXNTBJRXhsWkdkbGNseHVJQ29nSUNCRGJHbGxiblF0UGo1RGIyNTBjbUZqZERvZ1ZISmhibk5tWlhJb1kzUjRMQ0IwYnl3Z2RtRnNkV1VwWEc0Z0tpQWdJRU52Ym5SeVlXTjBMVDQrVjJGc2JHVjBVbVZ3YnpvZ2NtVmhaQ2htY205dEtWeHVJQ29nSUNCRGIyNTBjbUZqZEMwK1BsZGhiR3hsZEZKbGNHODZJSEpsWVdRb2RHOHBYRzRnS2lBZ0lFTnZiblJ5WVdOMExUNCtUR1ZrWjJWeU9pQndkWFJUZEdGMFpTaDFjR1JoZEdWa0lHSmhiR0Z1WTJWektWeHVJQ29nSUNCRGIyNTBjbUZqZEMwdFBqNURiR2xsYm5RNklITjFZMk5sYzNOY2JpQXFMMXh1Wlhod2IzSjBJR0ZpYzNSeVlXTjBJR05zWVhOeklFWmhZbkpwWTBWU1F6SXdRMjl1ZEhKaFkzUWdaWGgwWlc1a2N5QkdZV0p5YVdORGNuVmtRMjl1ZEhKaFkzUThSVkpETWpCWFlXeHNaWFErSUh0Y2JpQWdjSEpwZG1GMFpTQjNZV3hzWlhSU1pYQnZjMmwwYjNKNU9pQkdZV0p5YVdORGIyNTBjbUZqZEZKbGNHOXphWFJ2Y25rOFJWSkRNakJYWVd4c1pYUStPMXh1WEc0Z0lIQnlhWFpoZEdVZ2RHOXJaVzVTWlhCdmMybDBiM0o1T2lCR1lXSnlhV05EYjI1MGNtRmpkRkpsY0c5emFYUnZjbms4UlZKRE1qQlViMnRsYmo0N1hHNWNiaUFnY0hKcGRtRjBaU0JoYkd4dmQyRnVZMlZTWlhCdmMybDBiM0o1T2lCR1lXSnlhV05EYjI1MGNtRmpkRkpsY0c5emFYUnZjbms4UVd4c2IzZGhibU5sUGp0Y2JseHVJQ0J3Y205MFpXTjBaV1FnWTI5dWMzUnlkV04wYjNJb2JtRnRaVG9nYzNSeWFXNW5LU0I3WEc0Z0lDQWdjM1Z3WlhJb2JtRnRaU3dnUlZKRE1qQlhZV3hzWlhRcE8xeHVYRzRnSUNBZ1JtRmljbWxqUlZKRE1qQkRiMjUwY21GamRDNWhaR0Z3ZEdWeUlEMWNiaUFnSUNBZ0lFWmhZbkpwWTBWU1F6SXdRMjl1ZEhKaFkzUXVZV1JoY0hSbGNpQjhmQ0J1WlhjZ1JtRmljbWxqUTI5dWRISmhZM1JCWkdGd2RHVnlLQ2s3WEc1Y2JpQWdJQ0IwYUdsekxuZGhiR3hsZEZKbGNHOXphWFJ2Y25rZ1BTQkdZV0p5YVdORGIyNTBjbUZqZEZKbGNHOXphWFJ2Y25rdVptOXlUVzlrWld3b1hHNGdJQ0FnSUNCRlVrTXlNRmRoYkd4bGRDeGNiaUFnSUNBZ0lFWmhZbkpwWTBWU1F6SXdRMjl1ZEhKaFkzUXVZV1JoY0hSbGNpNWhiR2xoYzF4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0IwYUdsekxuUnZhMlZ1VW1Wd2IzTnBkRzl5ZVNBOUlFWmhZbkpwWTBOdmJuUnlZV04wVW1Wd2IzTnBkRzl5ZVM1bWIzSk5iMlJsYkNoY2JpQWdJQ0FnSUVWU1F6SXdWRzlyWlc0c1hHNGdJQ0FnSUNCR1lXSnlhV05GVWtNeU1FTnZiblJ5WVdOMExtRmtZWEIwWlhJdVlXeHBZWE5jYmlBZ0lDQXBPMXh1WEc0Z0lDQWdkR2hwY3k1aGJHeHZkMkZ1WTJWU1pYQnZjMmwwYjNKNUlEMGdSbUZpY21salEyOXVkSEpoWTNSU1pYQnZjMmwwYjNKNUxtWnZjazF2WkdWc0tGeHVJQ0FnSUNBZ1FXeHNiM2RoYm1ObExGeHVJQ0FnSUNBZ1JtRmljbWxqUlZKRE1qQkRiMjUwY21GamRDNWhaR0Z3ZEdWeUxtRnNhV0Z6WEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUVCVWNtRnVjMkZqZEdsdmJpaG1ZV3h6WlNsY2JpQWdZWE41Ym1NZ1ZHOXJaVzVPWVcxbEtHTnZiblJsZUhRNklFTnZiblJsZUhRcE9pQlFjbTl0YVhObFBITjBjbWx1Wno0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNElIMGdQU0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hiWTI5dWRHVjRkRjBzSUhSb2FYTXVWRzlyWlc1T1lXMWxLVHRjYmlBZ0lDQXZMeUJEYUdWamF5QmpiMjUwY21GamRDQnZjSFJwYjI1eklHRnlaU0JoYkhKbFlXUjVJSE5sZENCbWFYSnpkQ0IwYnlCbGVHVmpkWFJsSUhSb1pTQm1kVzVqZEdsdmJseHVJQ0FnSUdGM1lXbDBJSFJvYVhNdVEyaGxZMnRKYm1sMGFXRnNhWHBsWkNoamRIZ2dZWE1nWVc1NUtUdGNibHh1SUNBZ0lHTnZibk4wSUhObGJHVmpkQ0E5SUhSb2FYTXVkRzlyWlc1U1pYQnZjMmwwYjNKNUxuTmxiR1ZqZENncE8xeHVJQ0FnSUdOdmJuTjBJSFJ2YTJWdUlEMGdLR0YzWVdsMElITmxiR1ZqZEM1bGVHVmpkWFJsS0dOMGVDa3BXekJkTzF4dVhHNGdJQ0FnY21WMGRYSnVJSFJ2YTJWdUxtNWhiV1U3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1SUhSb1pTQnplVzFpYjJ3Z2IyWWdkR2hsSUhSdmEyVnVMaUJGTG1jdUlPS0FuRWhKV09LQW5TNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHREYjI1MFpYaDBmU0JqYjI1MFpYaDBJSFJvWlNCMGNtRnVjMkZqZEdsdmJpQmpiMjUwWlhoMFhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0VGRISnBibWQ5SUZKbGRIVnlibk1nZEdobElITjViV0p2YkNCdlppQjBhR1VnZEc5clpXNWNiaUFnSUNvdlhHNGdJRUJVY21GdWMyRmpkR2x2YmlobVlXeHpaU2xjYmlBZ1lYTjVibU1nVTNsdFltOXNLR052Ym5SbGVIUTZJRU52Ym5SbGVIUXBPaUJRY205dGFYTmxQSE4wY21sdVp6NGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRJSDBnUFNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoYlkyOXVkR1Y0ZEYwc0lIUm9hWE11Vkc5clpXNU9ZVzFsS1R0Y2JpQWdJQ0F2THlCRGFHVmpheUJqYjI1MGNtRmpkQ0J2Y0hScGIyNXpJR0Z5WlNCaGJISmxZV1I1SUhObGRDQm1hWEp6ZENCMGJ5QmxlR1ZqZFhSbElIUm9aU0JtZFc1amRHbHZibHh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVRMmhsWTJ0SmJtbDBhV0ZzYVhwbFpDaGpkSGdnWVhNZ1lXNTVLVHRjYmx4dUlDQWdJR052Ym5OMElITmxiR1ZqZENBOUlIUm9hWE11ZEc5clpXNVNaWEJ2YzJsMGIzSjVMbk5sYkdWamRDZ3BPMXh1SUNBZ0lHTnZibk4wSUhSdmEyVnVJRDBnS0dGM1lXbDBJSE5sYkdWamRDNWxlR1ZqZFhSbEtHTjBlQ2twV3pCZE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUhSdmEyVnVMbk41YldKdmJEdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNGdkR2hsSUc1MWJXSmxjaUJ2WmlCa1pXTnBiV0ZzY3lCMGFHVWdkRzlyWlc0Z2RYTmxjMXh1SUNBZ0tpQmxMbWN1SURnc0lHMWxZVzV6SUhSdklHUnBkbWxrWlNCMGFHVWdkRzlyWlc0Z1lXMXZkVzUwSUdKNUlERXdNREF3TURBd01DQjBieUJuWlhRZ2FYUnpJSFZ6WlhJZ2NtVndjbVZ6Wlc1MFlYUnBiMjR1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN1EyOXVkR1Y0ZEgwZ1kyOXVkR1Y0ZENCMGFHVWdkSEpoYm5OaFkzUnBiMjRnWTI5dWRHVjRkRnh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdUblZ0WW1WeWZTQlNaWFIxY201eklIUm9aU0J1ZFcxaVpYSWdiMllnWkdWamFXMWhiSE5jYmlBZ0lDb3ZYRzRnSUVCVWNtRnVjMkZqZEdsdmJpaG1ZV3h6WlNsY2JpQWdZWE41Ym1NZ1JHVmphVzFoYkhNb1kyOXVkR1Y0ZERvZ1EyOXVkR1Y0ZENrNklGQnliMjFwYzJVOGJuVnRZbVZ5UGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhnZ2ZTQTlJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLRnRqYjI1MFpYaDBYU3dnZEdocGN5NVViMnRsYms1aGJXVXBPMXh1SUNBZ0lDOHZJRU5vWldOcklHTnZiblJ5WVdOMElHOXdkR2x2Ym5NZ1lYSmxJR0ZzY21WaFpIa2djMlYwSUdacGNuTjBJSFJ2SUdWNFpXTjFkR1VnZEdobElHWjFibU4wYVc5dVhHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1RGFHVmphMGx1YVhScFlXeHBlbVZrS0dOMGVDQmhjeUJoYm5rcE8xeHVYRzRnSUNBZ1kyOXVjM1FnYzJWc1pXTjBJRDBnZEdocGN5NTBiMnRsYmxKbGNHOXphWFJ2Y25rdWMyVnNaV04wS0NrN1hHNGdJQ0FnWTI5dWMzUWdkRzlyWlc0Z1BTQW9ZWGRoYVhRZ2MyVnNaV04wTG1WNFpXTjFkR1VvWTNSNEtTbGJNRjA3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkRzlyWlc0dVpHVmphVzFoYkhNN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdUlIUm9aU0IwYjNSaGJDQjBiMnRsYmlCemRYQndiSGt1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN1EyOXVkR1Y0ZEgwZ1kyOXVkR1Y0ZENCMGFHVWdkSEpoYm5OaFkzUnBiMjRnWTI5dWRHVjRkRnh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdUblZ0WW1WeWZTQlNaWFIxY201eklIUm9aU0IwYjNSaGJDQjBiMnRsYmlCemRYQndiSGxjYmlBZ0lDb3ZYRzRnSUVCVWNtRnVjMkZqZEdsdmJpaG1ZV3h6WlNsY2JpQWdZWE41Ym1NZ1ZHOTBZV3hUZFhCd2JIa29ZMjl1ZEdWNGREb2dRMjl1ZEdWNGRDazZJRkJ5YjIxcGMyVThiblZ0WW1WeVBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIZ2dmU0E5SUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0Z0amIyNTBaWGgwWFN3Z2RHaHBjeTVVYjJ0bGJrNWhiV1VwTzF4dUlDQWdJQzh2SUVOb1pXTnJJR052Ym5SeVlXTjBJRzl3ZEdsdmJuTWdZWEpsSUdGc2NtVmhaSGtnYzJWMElHWnBjbk4wSUhSdklHVjRaV04xZEdVZ2RHaGxJR1oxYm1OMGFXOXVYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NURhR1ZqYTBsdWFYUnBZV3hwZW1Wa0tHTjBlQ0JoY3lCaGJua3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ2MyVnNaV04wSUQwZ2RHaHBjeTUzWVd4c1pYUlNaWEJ2YzJsMGIzSjVMbk5sYkdWamRDZ3BPMXh1SUNBZ0lHTnZibk4wSUhkaGJHeGxkSE1nUFNCaGQyRnBkQ0J6Wld4bFkzUXVaWGhsWTNWMFpTaGpkSGdwTzF4dVhHNGdJQ0FnYVdZZ0tIZGhiR3hsZEhNdWJHVnVaM1JvSUQwOUlEQXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJPYjNSR2IzVnVaRVZ5Y205eUtHQlVhR1VnZEc5clpXNGdKSHQwYUdsekxtZGxkRTVoYldVb0tYMGdaRzlsY3lCdWIzUWdaWGhwYzNSZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCc1pYUWdkRzkwWVd3Z1BTQXdPMXh1WEc0Z0lDQWdkMkZzYkdWMGN5NW1iM0pGWVdOb0tDaDNZV3hzWlhRcElEMCtJSHRjYmlBZ0lDQWdJSFJ2ZEdGc0lDczlJSGRoYkd4bGRDNWlZV3hoYm1ObE8xeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUhSdmRHRnNPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVKaGJHRnVZMlZQWmlCeVpYUjFjbTV6SUhSb1pTQmlZV3hoYm1ObElHOW1JSFJvWlNCbmFYWmxiaUJoWTJOdmRXNTBMbHh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTBOdmJuUmxlSFI5SUdOMGVDQjBhR1VnZEhKaGJuTmhZM1JwYjI0Z1kyOXVkR1Y0ZEZ4dUlDQWdLaUJBY0dGeVlXMGdlMU4wY21sdVozMGdiM2R1WlhJZ1ZHaGxJRzkzYm1WeUlHWnliMjBnZDJocFkyZ2dkR2hsSUdKaGJHRnVZMlVnZDJsc2JDQmlaU0J5WlhSeWFXVjJaV1JjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMDUxYldKbGNuMGdVbVYwZFhKdWN5QjBhR1VnWVdOamIzVnVkQ0JpWVd4aGJtTmxYRzRnSUNBcUwxeHVJQ0JBVkhKaGJuTmhZM1JwYjI0b1ptRnNjMlVwWEc0Z0lHRnplVzVqSUVKaGJHRnVZMlZQWmloamIyNTBaWGgwT2lCRGIyNTBaWGgwTENCdmQyNWxjam9nYzNSeWFXNW5LVG9nVUhKdmJXbHpaVHh1ZFcxaVpYSStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlQ0I5SUQwZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1cyTnZiblJsZUhSZExDQjBhR2x6TGxSdmEyVnVUbUZ0WlNrN1hHNGdJQ0FnTHk4Z1EyaGxZMnNnWTI5dWRISmhZM1FnYjNCMGFXOXVjeUJoY21VZ1lXeHlaV0ZrZVNCelpYUWdabWx5YzNRZ2RHOGdaWGhsWTNWMFpTQjBhR1VnWm5WdVkzUnBiMjVjYmlBZ0lDQmhkMkZwZENCMGFHbHpMa05vWldOclNXNXBkR2xoYkdsNlpXUW9ZM1I0SUdGeklHRnVlU2s3WEc1Y2JpQWdJQ0JqYjI1emRDQjNZV3hzWlhRZ1BTQmhkMkZwZENCMGFHbHpMbmRoYkd4bGRGSmxjRzl6YVhSdmNua3VjbVZoWkNodmQyNWxjaXdnWTNSNEtUdGNibHh1SUNBZ0lISmxkSFZ5YmlCM1lXeHNaWFF1WW1Gc1lXNWpaVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCVWNtRnVjMlpsY2lCMGNtRnVjMlpsY25NZ2RHOXJaVzV6SUdaeWIyMGdZMnhwWlc1MElHRmpZMjkxYm5RZ2RHOGdjbVZqYVhCcFpXNTBJR0ZqWTI5MWJuUXVYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJ5WldOcGNHbGxiblFnWVdOamIzVnVkQ0J0ZFhOMElHSmxJR0VnZG1Gc2FXUWdZMnhwWlc1MFNVUWdZWE1nY21WMGRYSnVaV1FnWW5rZ2RHaGxJRU5zYVdWdWRFRmpZMjkxYm5SSlJDZ3BJR1oxYm1OMGFXOXVMbHh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTBOdmJuUmxlSFI5SUdOdmJuUmxlSFFnZEdobElIUnlZVzV6WVdOMGFXOXVJR052Ym5SbGVIUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0VGRISnBibWQ5SUhSdklGUm9aU0J5WldOcGNHbGxiblJjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlIWmhiSFZsSUZSb1pTQmhiVzkxYm5RZ2IyWWdkRzlyWlc0Z2RHOGdZbVVnZEhKaGJuTm1aWEp5WldSY2JpQWdJQ3BjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMEp2YjJ4bFlXNTlJRkpsZEhWeWJpQjNhR1YwYUdWeUlIUm9aU0IwY21GdWMyWmxjaUIzWVhNZ2MzVmpZMlZ6YzJaMWJDQnZjaUJ1YjNSY2JpQWdJQ292WEc0Z0lFQlVjbUZ1YzJGamRHbHZiaWdwWEc0Z0lHRnplVzVqSUZSeVlXNXpabVZ5S0Z4dUlDQWdJR052Ym5SbGVIUTZJRU52Ym5SbGVIUXNYRzRnSUNBZ2RHODZJSE4wY21sdVp5eGNiaUFnSUNCMllXeDFaVG9nYm5WdFltVnlYRzRnSUNrNklGQnliMjFwYzJVOFltOXZiR1ZoYmo0Z2UxeHVJQ0FnSUM4dklFTm9aV05ySUdOdmJuUnlZV04wSUc5d2RHbHZibk1nWVhKbElHRnNjbVZoWkhrZ2MyVjBJR1pwY25OMElIUnZJR1Y0WldOMWRHVWdkR2hsSUdaMWJtTjBhVzl1WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGdnZlNBOUlHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtGdGpiMjUwWlhoMFhTd2dkR2hwY3k1VWNtRnVjMlpsY2lrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1RGFHVmphMGx1YVhScFlXeHBlbVZrS0dOMGVDQmhjeUJoYm5rcE8xeHVYRzRnSUNBZ1kyOXVjM1FnWm5KdmJTQTlJR04wZUM1cFpHVnVkR2wwZVM1blpYUkpSQ2dwTzF4dVhHNGdJQ0FnWTI5dWMzUWdkSEpoYm5ObVpYSlNaWE53SUQwZ1lYZGhhWFFnZEdocGN5NWZkSEpoYm5ObVpYSW9abkp2YlN3Z2RHOHNJSFpoYkhWbExDQmpkSGdwTzF4dUlDQWdJR2xtSUNnaGRISmhibk5tWlhKU1pYTndLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGNJa1poYVd4bFpDQjBieUIwY21GdWMyWmxjbHdpS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlVjbUZ1YzJabGNpQmdkbUZzZFdWZ0lHRnRiM1Z1ZENCdlppQjBiMnRsYm5NZ1puSnZiU0JnWm5KdmJXQWdkRzhnWUhSdllDNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHREYjI1MFpYaDBmU0JqYjI1MFpYaDBJSFJvWlNCMGNtRnVjMkZqZEdsdmJpQmpiMjUwWlhoMFhHNGdJQ0FxSUVCd1lYSmhiU0I3VTNSeWFXNW5mU0JtY205dElGUm9aU0J6Wlc1a1pYSmNiaUFnSUNvZ1FIQmhjbUZ0SUh0VGRISnBibWQ5SUhSdklGUm9aU0J5WldOcGNHbGxiblJjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlIWmhiSFZsSUZSb1pTQmhiVzkxYm5RZ2IyWWdkRzlyWlc0Z2RHOGdZbVVnZEhKaGJuTm1aWEp5WldSY2JpQWdJQ29nUUhKbGRIVnlibk1nZTBKdmIyeGxZVzU5SUZKbGRIVnliaUIzYUdWMGFHVnlJSFJvWlNCMGNtRnVjMlpsY2lCM1lYTWdjM1ZqWTJWemMyWjFiQ0J2Y2lCdWIzUmNiaUFnSUNvdlhHNGdJRUJVY21GdWMyRmpkR2x2YmlncFhHNGdJR0Z6ZVc1aklGUnlZVzV6Wm1WeVJuSnZiU2hjYmlBZ0lDQmpiMjUwWlhoME9pQkRiMjUwWlhoMExGeHVJQ0FnSUdaeWIyMDZJSE4wY21sdVp5eGNiaUFnSUNCMGJ6b2djM1J5YVc1bkxGeHVJQ0FnSUhaaGJIVmxPaUJ1ZFcxaVpYSmNiaUFnS1RvZ1VISnZiV2x6WlR4aWIyOXNaV0Z1UGlCN1hHNGdJQ0FnTHk4Z1EyaGxZMnNnWTI5dWRISmhZM1FnYjNCMGFXOXVjeUJoY21VZ1lXeHlaV0ZrZVNCelpYUWdabWx5YzNRZ2RHOGdaWGhsWTNWMFpTQjBhR1VnWm5WdVkzUnBiMjVjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlQ0I5SUQwZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1cyTnZiblJsZUhSZExDQjBhR2x6TGtKMWNtNUdjbTl0S1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TGtOb1pXTnJTVzVwZEdsaGJHbDZaV1FvWTNSNElHRnpJR0Z1ZVNrN1hHNWNiaUFnSUNBdkx5QlNaWFJ5YVdWMlpTQjBhR1VnWVd4c2IzZGhibU5sSUc5bUlIUm9aU0J6Y0dWdVpHVnlYRzVjYmlBZ0lDQmpiMjV6ZENCemNHVnVaR1Z5SUQwZ1kzUjRMbWxrWlc1MGFYUjVMbWRsZEVsRUtDazdYRzVjYmlBZ0lDQmpiMjV6ZENCaGJHeHZkMkZ1WTJVZ1BTQmhkMkZwZENCMGFHbHpMbDluWlhSQmJHeHZkMkZ1WTJVb1puSnZiU3dnYzNCbGJtUmxjaXdnWTNSNEtUdGNiaUFnSUNCcFppQW9JV0ZzYkc5M1lXNWpaU0I4ZkNCaGJHeHZkMkZ1WTJVdWRtRnNkV1VnUENBd0tTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dRV3hzYjNkaGJtTmxSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lHQnpjR1Z1WkdWeUlDUjdjM0JsYm1SbGNuMGdhR0Z6SUc1dklHRnNiRzkzWVc1alpTQm1jbTl0SUNSN1puSnZiWDFnWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHTjFjbkpsYm5SQmJHeHZkMkZ1WTJVZ1BTQmhiR3h2ZDJGdVkyVXVkbUZzZFdVN1hHNWNiaUFnSUNBdkx5QkRhR1ZqYXlCcFppQjBhR1VnZEhKaGJuTm1aWEp5WldRZ2RtRnNkV1VnYVhNZ2JHVnpjeUIwYUdGdUlIUm9aU0JoYkd4dmQyRnVZMlZjYmlBZ0lDQnBaaUFvWTNWeWNtVnVkRUZzYkc5M1lXNWpaU0E4SUhaaGJIVmxLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUW1Gc1lXNWpaVVZ5Y205eUtGeHVJQ0FnSUNBZ0lDQmNJbFJvWlNCemNHVnVaR1Z5SUdSdlpYTWdibTkwSUdoaGRtVWdaVzV2ZFdkb0lHRnNiRzkzWVc1alpTQjBieUJ6Y0dWdVpDNWNJbHh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJFWldOeVpXRnpaU0IwYUdVZ1lXeHNiM2RoYm1ObFhHNGdJQ0FnWTI5dWMzUWdkWEJrWVhSbFpFRnNiRzkzWVc1alpTQTlJSE4xWWloamRYSnlaVzUwUVd4c2IzZGhibU5sTENCMllXeDFaU2s3WEc0Z0lDQWdZMjl1YzNRZ2JtVjNRV3hzYjNkaGJtTmxJRDBnVDJKcVpXTjBMbUZ6YzJsbmJpaDdmU3dnWVd4c2IzZGhibU5sTENCN1hHNGdJQ0FnSUNCMllXeDFaVG9nZFhCa1lYUmxaRUZzYkc5M1lXNWpaU3hjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJR0YzWVdsMElIUm9hWE11WVd4c2IzZGhibU5sVW1Wd2IzTnBkRzl5ZVM1MWNHUmhkR1VvYm1WM1FXeHNiM2RoYm1ObExDQmpkSGdwTzF4dVhHNGdJQ0FnTHk5U1pXRnNhWHBsSUhSb1pTQjBjbUZ1YzJabGNseHVJQ0FnSUdOdmJuTjBJSFJ5WVc1elptVnlVbVZ6Y0NBOUlHRjNZV2wwSUhSb2FYTXVYM1J5WVc1elptVnlLR1p5YjIwc0lIUnZMQ0IyWVd4MVpTd2dZM1I0S1R0Y2JpQWdJQ0JwWmlBb0lYUnlZVzV6Wm1WeVVtVnpjQ2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YQ0pHWVdsc1pXUWdkRzhnZEhKaGJuTm1aWEpjSWlrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSFJ5ZFdVN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCZmRISmhibk5tWlhJb1hHNGdJQ0FnWm5KdmJUb2djM1J5YVc1bkxGeHVJQ0FnSUhSdk9pQnpkSEpwYm1jc1hHNGdJQ0FnZG1Gc2RXVTZJRzUxYldKbGNpeGNiaUFnSUNCamRIZzZJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEZ4dUlDQXBJSHRjYmlBZ0lDQmpiMjV6ZENCc2IyY2dQU0JqZEhndWJHOW5aMlZ5TzF4dVhHNGdJQ0FnYVdZZ0tHWnliMjBnUFQwOUlIUnZLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUVhWMGFHOXlhWHBoZEdsdmJrVnljbTl5S0Z4dUlDQWdJQ0FnSUNCY0ltTmhibTV2ZENCMGNtRnVjMlpsY2lCMGJ5QmhibVFnWm5KdmJTQnpZVzFsSUdOc2FXVnVkQ0JoWTJOdmRXNTBYQ0pjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0haaGJIVmxJRHdnTUNrZ2UxeHVJQ0FnSUNBZ0x5OGdkSEpoYm5ObVpYSWdiMllnTUNCcGN5QmhiR3h2ZDJWa0lHbHVJRVZTUXpJd0xDQnpieUJxZFhOMElIWmhiR2xrWVhSbElHRm5ZV2x1YzNRZ2JtVm5ZWFJwZG1VZ1lXMXZkVzUwYzF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVKaGJHRnVZMlZGY25KdmNpaGNJblJ5WVc1elptVnlJR0Z0YjNWdWRDQmpZVzV1YjNRZ1ltVWdibVZuWVhScGRtVmNJaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnVW1WMGNtbGxkbVVnZEdobElHTjFjbkpsYm5RZ1ltRnNZVzVqWlNCdlppQjBhR1VnYzJWdVpHVnlYRzVjYmlBZ0lDQmpiMjV6ZENCbWNtOXRWMkZzYkdWMElEMGdZWGRoYVhRZ2RHaHBjeTUzWVd4c1pYUlNaWEJ2YzJsMGIzSjVMbkpsWVdRb1puSnZiU3dnWTNSNEtUdGNibHh1SUNBZ0lHTnZibk4wSUdaeWIyMUNZV3hoYm1ObElEMGdabkp2YlZkaGJHeGxkQzVpWVd4aGJtTmxPMXh1WEc0Z0lDQWdMeThnUTJobFkyc2dhV1lnZEdobElITmxibVJsY2lCb1lYTWdaVzV2ZFdkb0lIUnZhMlZ1Y3lCMGJ5QnpjR1Z1WkM1Y2JpQWdJQ0JwWmlBb1puSnZiVUpoYkdGdVkyVWdQQ0IyWVd4MVpTa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRUpoYkdGdVkyVkZjbkp2Y2loZ1kyeHBaVzUwSUdGalkyOTFiblFnSkh0bWNtOXRmU0JvWVhNZ2FXNXpkV1ptYVdOcFpXNTBJR1oxYm1SekxtQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZJRkpsZEhKcFpYWmxJSFJvWlNCamRYSnlaVzUwSUdKaGJHRnVZMlVnYjJZZ2RHaGxJSEpsWTJWd2FXVnVkRnh1WEc0Z0lDQWdiR1YwSUhSdlYyRnNiR1YwT2lCRlVrTXlNRmRoYkd4bGREdGNiaUFnSUNCc1pYUWdibVYzVkc5WFlXeHNaWFE2SUdKdmIyeGxZVzRnUFNCbVlXeHpaVHRjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnZEc5WFlXeHNaWFFnUFNCaGQyRnBkQ0IwYUdsekxuZGhiR3hsZEZKbGNHOXphWFJ2Y25rdWNtVmhaQ2gwYnl3Z1kzUjRLVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxPaUIxYm10dWIzZHVLU0I3WEc0Z0lDQWdJQ0JwWmlBb1pTQnBibk4wWVc1alpXOW1JRUpoYzJWRmNuSnZjaWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9aUzVqYjJSbElEMDlQU0EwTURRcElIdGNiaUFnSUNBZ0lDQWdJQ0F2THlCRGNtVmhkR1VnWVNCdVpYY2dkMkZzYkdWMElHWnZjaUIwYUdVZ2JXbHVkR1Z5WEc0Z0lDQWdJQ0FnSUNBZ2RHOVhZV3hzWlhRZ1BTQnVaWGNnUlZKRE1qQlhZV3hzWlhRb2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdRNklIUnZMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1ltRnNZVzVqWlRvZ01DeGNiaUFnSUNBZ0lDQWdJQ0FnSUhSdmEyVnVPaUJoZDJGcGRDQjBhR2x6TGxSdmEyVnVUbUZ0WlNoamRIZ2dZWE1nWVc1NUtTeGNiaUFnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQnVaWGRVYjFkaGJHeGxkQ0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9aUzV0WlhOellXZGxLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9aU0JoY3lCemRISnBibWNwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElIUnZRbUZzWVc1alpTQTlJSFJ2VjJGc2JHVjBMbUpoYkdGdVkyVTdYRzVjYmlBZ0lDQXZMeUJWY0dSaGRHVWdkR2hsSUdKaGJHRnVZMlZjYmlBZ0lDQmpiMjV6ZENCbWNtOXRWWEJrWVhSbFpFSmhiR0Z1WTJVZ1BTQnpkV0lvWm5KdmJVSmhiR0Z1WTJVc0lIWmhiSFZsS1R0Y2JpQWdJQ0JqYjI1emRDQjBiMVZ3WkdGMFpXUkNZV3hoYm1ObElEMGdZV1JrS0hSdlFtRnNZVzVqWlN3Z2RtRnNkV1VwTzF4dVhHNGdJQ0FnWTI5dWMzUWdkWEJrWVhSbFpFWnliMjFYWVd4c1pYUWdQU0JQWW1wbFkzUXVZWE56YVdkdUtIdDlMQ0JtY205dFYyRnNiR1YwTENCN1hHNGdJQ0FnSUNCaVlXeGhibU5sT2lCbWNtOXRWWEJrWVhSbFpFSmhiR0Z1WTJVc1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCaGQyRnBkQ0IwYUdsekxuZGhiR3hsZEZKbGNHOXphWFJ2Y25rdWRYQmtZWFJsS0hWd1pHRjBaV1JHY205dFYyRnNiR1YwTENCamRIZ3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ2RYQmtZWFJsWkZSdlYyRnNiR1YwSUQwZ1QySnFaV04wTG1GemMybG5iaWg3ZlN3Z2RHOVhZV3hzWlhRc0lIdGNiaUFnSUNBZ0lHSmhiR0Z1WTJVNklIUnZWWEJrWVhSbFpFSmhiR0Z1WTJVc1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCcFppQW9ibVYzVkc5WFlXeHNaWFFwSUh0Y2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWQyRnNiR1YwVW1Wd2IzTnBkRzl5ZVM1amNtVmhkR1VvZFhCa1lYUmxaRlJ2VjJGc2JHVjBMQ0JqZEhncE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG5kaGJHeGxkRkpsY0c5emFYUnZjbmt1ZFhCa1lYUmxLSFZ3WkdGMFpXUlViMWRoYkd4bGRDd2dZM1I0S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2THlCRmJXbDBJSFJvWlNCVWNtRnVjMlpsY2lCbGRtVnVkRnh1SUNBZ0lHTnZibk4wSUhSeVlXNXpabVZ5UlhabGJuUWdQU0I3SUdaeWIyMHNJSFJ2TENCMllXeDFaVG9nZG1Gc2RXVWdmVHRjYmx4dUlDQWdJSFJvYVhNdWNtVndiMXh1SUNBZ0lDQWdMbkpsWm5KbGMyZ29YRzRnSUNBZ0lDQWdJRVZTUXpJd1ZHOXJaVzRnWVhNZ1lXNTVMRnh1SUNBZ0lDQWdJQ0JGVWtNeU1FVjJaVzUwY3k1VVVrRk9VMFpGVWl4Y2JpQWdJQ0FnSUNBZ1hDSmNJaXhjYmlBZ0lDQWdJQ0FnZEhKaGJuTm1aWEpGZG1WdWRDeGNiaUFnSUNBZ0lDQWdZM1I0SUdGeklIVnVhMjV2ZDI0Z1lYTWdSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwWEc0Z0lDQWdJQ0FwWEc0Z0lDQWdJQ0F1WTJGMFkyZ29LR1VwSUQwK0lHeHZaeTVsY25KdmNpaGdSbUZwYkdWa0lIUnZJRzV2ZEdsbWVTQjBjbUZ1YzJabGNqb2dKSHRsZldBcEtUdGNibHh1SUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVGc2JHOTNjeUJnYzNCbGJtUmxjbUFnZEc4Z2MzQmxibVFnWUhaaGJIVmxZQ0JoYlc5MWJuUWdiMllnZEc5clpXNXpJR1p5YjIwZ2RHaGxJRzkzYm1WeUxpQk9aWGNnUVhCd2NtOTJaU0JqWVd4c2N5QnZkbVZ5Y21sa1pTQjBhR1VnY0hKbGRtbHZkWE1nWVd4c2IzZGhibU5sTGx4dUlDQWdLaUJBYm05MFpTQm9kSFJ3Y3pvdkwyVnBjSE11WlhSb1pYSmxkVzB1YjNKbkwwVkpVRk12Wldsd0xUSXdYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0I3UTI5dWRHVjRkSDBnWTNSNElIUm9aU0IwY21GdWMyRmpkR2x2YmlCamIyNTBaWGgwWEc0Z0lDQXFJRUJ3WVhKaGJTQjdVM1J5YVc1bmZTQnpjR1Z1WkdWeUlGUm9aU0J6Y0dWdVpHVnlYRzRnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCMllXeDFaU0JVYUdVZ1lXMXZkVzUwSUc5bUlIUnZhMlZ1Y3lCMGJ5QmlaU0JoY0hCeWIzWmxaQ0JtYjNJZ2RISmhibk5tWlhKY2JpQWdJQ29nUUhKbGRIVnlibk1nZTBKdmIyeGxZVzU5SUZKbGRIVnliaUIzYUdWMGFHVnlJSFJvWlNCaGNIQnliM1poYkNCM1lYTWdjM1ZqWTJWemMyWjFiQ0J2Y2lCdWIzUmNiaUFnSUNvdlhHNGdJRUJVY21GdWMyRmpkR2x2YmlncFhHNGdJR0Z6ZVc1aklFRndjSEp2ZG1Vb1hHNGdJQ0FnWTI5dWRHVjRkRG9nUTI5dWRHVjRkQ3hjYmlBZ0lDQnpjR1Z1WkdWeU9pQnpkSEpwYm1jc1hHNGdJQ0FnZG1Gc2RXVTZJRzUxYldKbGNseHVJQ0FwT2lCUWNtOXRhWE5sUEdKdmIyeGxZVzQrSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUN3Z1kzUjRRWEpuY3lCOUlEMGdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29XMk52Ym5SbGVIUmRMQ0IwYUdsekxrRndjSEp2ZG1VcE8xeHVJQ0FnSUM4dklFTm9aV05ySUdOdmJuUnlZV04wSUc5d2RHbHZibk1nWVhKbElHRnNjbVZoWkhrZ2MyVjBJR1pwY25OMElIUnZJR1Y0WldOMWRHVWdkR2hsSUdaMWJtTjBhVzl1WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTVEYUdWamEwbHVhWFJwWVd4cGVtVmtLR04wZUNCaGN5QmhibmtwTzF4dVhHNGdJQ0FnWTI5dWMzUWdiM2R1WlhJZ1BTQmpkSGd1YVdSbGJuUnBkSGt1WjJWMFNVUW9LVHRjYmx4dUlDQWdJR3hsZENCaGJHeHZkMkZ1WTJVZ1BTQmhkMkZwZENCMGFHbHpMbDluWlhSQmJHeHZkMkZ1WTJVb2IzZHVaWElzSUhOd1pXNWtaWElzSUdOMGVDazdYRzVjYmlBZ0lDQmpiMjV6ZENCdmQyNWxjbGRoYkd4bGRDQTlJR0YzWVdsMElIUm9hWE11ZDJGc2JHVjBVbVZ3YjNOcGRHOXllUzV5WldGa0tHOTNibVZ5TENBdUxpNWpkSGhCY21kektUdGNibHh1SUNBZ0lHbG1JQ2h2ZDI1bGNsZGhiR3hsZEM1aVlXeGhibU5sSUR3Z2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCQ1lXeGhibU5sUlhKeWIzSW9ZR05zYVdWdWRDQmhZMk52ZFc1MElDUjdiM2R1WlhKOUlHaGhjeUJwYm5OMVptWnBZMmxsYm5RZ1puVnVaSE11WUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHRnNiRzkzWVc1alpTa2dlMXh1SUNBZ0lDQWdMeThnVDNabGNuZHlhWFJsSUhSb1pTQmhiR3h2ZDJGdVkyVmNiaUFnSUNBZ0lHRnNiRzkzWVc1alpTNTJZV3gxWlNBOUlIWmhiSFZsTzF4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1aGJHeHZkMkZ1WTJWU1pYQnZjMmwwYjNKNUxuVndaR0YwWlNoaGJHeHZkMkZ1WTJVc0lDNHVMbU4wZUVGeVozTXBPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCaGJHeHZkMkZ1WTJVZ1BTQnVaWGNnUVd4c2IzZGhibU5sS0h0Y2JpQWdJQ0FnSUNBZ2IzZHVaWEk2SUc5M2JtVnlMRnh1SUNBZ0lDQWdJQ0J6Y0dWdVpHVnlPaUJ6Y0dWdVpHVnlMRnh1SUNBZ0lDQWdJQ0IyWVd4MVpUb2dkbUZzZFdVc1hHNGdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVoYkd4dmQyRnVZMlZTWlhCdmMybDBiM0o1TG1OeVpXRjBaU2hoYkd4dmQyRnVZMlVzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklFVnRhWFFnZEdobElFRndjSEp2ZG1Gc0lHVjJaVzUwWEc0Z0lDQWdZMjl1YzNRZ1lYQndjbTkyWVd4RmRtVnVkQ0E5SUhzZ2IzZHVaWElzSUhOd1pXNWtaWElzSUhaaGJIVmxPaUIyWVd4MVpTQjlPMXh1SUNBZ0lIUm9hWE11Y21Wd2J5NXlaV1p5WlhOb0tGeHVJQ0FnSUNBZ1JWSkRNakJVYjJ0bGJpQmhjeUJoYm5rc1hHNGdJQ0FnSUNCRlVrTXlNRVYyWlc1MGN5NUJVRkJTVDFaQlRDeGNiaUFnSUNBZ0lGd2lYQ0lzWEc0Z0lDQWdJQ0JoY0hCeWIzWmhiRVYyWlc1MExGeHVJQ0FnSUNBZ1kzUjRJR0Z6SUhWdWEyNXZkMjRnWVhNZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBYRzRnSUNBZ0tUdGNibHh1SUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nZEdobElHRnRiM1Z1ZENCdlppQjBiMnRsYm5NZ2QyaHBZMmdnWUNCZ0lHbHpJR0ZzYkc5M1pXUWdkRzhnZDJsMGFHUnlZWGNnWm5KdmJTQmdiM2R1WlhKZ0xseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdlME52Ym5SbGVIUjlJR04wZUNCMGFHVWdkSEpoYm5OaFkzUnBiMjRnWTI5dWRHVjRkRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UxTjBjbWx1WjMwZ2IzZHVaWElnVkdobElHOTNibVZ5SUc5bUlIUnZhMlZ1YzF4dUlDQWdLaUJBY0dGeVlXMGdlMU4wY21sdVozMGdjM0JsYm1SbGNpQlVhR1VnYzNCbGJtUmxjaUIzYUc4Z1lYSmxJR0ZpYkdVZ2RHOGdkSEpoYm5ObVpYSWdkR2hsSUhSdmEyVnVjMXh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdiblZ0WW1WeWZTQlNaWFIxY200Z2RHaGxJR0Z0YjNWdWRDQnZaaUJ5WlcxaGFXNXBibWNnZEc5clpXNXpJR0ZzYkc5M1pXUWdkRzhnYzNCbGJuUmNiaUFnSUNvdlhHNGdJRUJVY21GdWMyRmpkR2x2YmlobVlXeHpaU2xjYmlBZ1lYTjVibU1nUVd4c2IzZGhibU5sS0Z4dUlDQWdJR052Ym5SbGVIUTZJRU52Ym5SbGVIUXNYRzRnSUNBZ2IzZHVaWEk2SUhOMGNtbHVaeXhjYmlBZ0lDQnpjR1Z1WkdWeU9pQnpkSEpwYm1kY2JpQWdLVG9nVUhKdmJXbHpaVHh1ZFcxaVpYSStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlQ0I5SUQwZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1cyTnZiblJsZUhSZExDQjBhR2x6TGtGc2JHOTNZVzVqWlNrN1hHNGdJQ0FnTHk4Z1EyaGxZMnNnWTI5dWRISmhZM1FnYjNCMGFXOXVjeUJoY21VZ1lXeHlaV0ZrZVNCelpYUWdabWx5YzNRZ2RHOGdaWGhsWTNWMFpTQjBhR1VnWm5WdVkzUnBiMjVjYmlBZ0lDQmhkMkZwZENCMGFHbHpMa05vWldOclNXNXBkR2xoYkdsNlpXUW9ZM1I0SUdGeklHRnVlU2s3WEc1Y2JpQWdJQ0JqYjI1emRDQmhiR3h2ZDJGdVkyVWdQU0JoZDJGcGRDQjBhR2x6TGw5blpYUkJiR3h2ZDJGdVkyVW9iM2R1WlhJc0lITndaVzVrWlhJc0lHTjBlQ2s3WEc1Y2JpQWdJQ0JwWmlBb0lXRnNiRzkzWVc1alpTa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRUZzYkc5M1lXNWpaVVZ5Y205eUtGeHVJQ0FnSUNBZ0lDQmdjM0JsYm1SbGNpQWtlM053Wlc1a1pYSjlJR2hoY3lCdWJ5QmhiR3h2ZDJGdVkyVWdabkp2YlNBa2UyOTNibVZ5ZldCY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQmhiR3h2ZDJGdVkyVXVkbUZzZFdVN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCZloyVjBRV3hzYjNkaGJtTmxLRnh1SUNBZ0lHOTNibVZ5T2lCemRISnBibWNzWEc0Z0lDQWdjM0JsYm1SbGNqb2djM1J5YVc1bkxGeHVJQ0FnSUdOMGVEb2dSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwWEc0Z0lDazZJRkJ5YjIxcGMyVThRV3hzYjNkaGJtTmxQaUI3WEc0Z0lDQWdZMjl1YzNRZ1lXeHNiM2RoYm1ObFEyOXVaR2wwYVc5dUlEMGdRMjl1WkdsMGFXOXVMbUZ1WkNoY2JpQWdJQ0FnSUVOdmJtUnBkR2x2Ymk1aGRIUnlhV0oxZEdVOFFXeHNiM2RoYm1ObFBpaGNJbTkzYm1WeVhDSXBMbVZ4S0c5M2JtVnlLU3hjYmlBZ0lDQWdJRU52Ym1ScGRHbHZiaTVoZEhSeWFXSjFkR1U4UVd4c2IzZGhibU5sUGloY0luTndaVzVrWlhKY0lpa3VaWEVvYzNCbGJtUmxjaWxjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdZMjl1YzNRZ1lXeHNiM2RoYm1ObElEMGdZWGRoYVhRZ2RHaHBjeTVoYkd4dmQyRnVZMlZTWlhCdmMybDBiM0o1WEc0Z0lDQWdJQ0F1YzJWc1pXTjBLQ2xjYmlBZ0lDQWdJQzUzYUdWeVpTaGhiR3h2ZDJGdVkyVkRiMjVrYVhScGIyNHBYRzRnSUNBZ0lDQXVaWGhsWTNWMFpTaGpkSGdwTzF4dUlDQWdJSEpsZEhWeWJpQmhiR3h2ZDJGdVkyVS9MbHN3WFR0Y2JpQWdmVnh1WEc0Z0lDOHZJRDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQU0JGZUhSbGJtUmxaQ0JHZFc1amRHbHZibk1nUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVMlYwSUc5d2RHbHZibUZzSUdsdVptOXRZWFJwYjI0Z1ptOXlJR0VnZEc5clpXNHVYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0I3UTI5dWRHVjRkSDBnWTNSNElIUm9aU0IwY21GdWMyRmpkR2x2YmlCamIyNTBaWGgwWEc0Z0lDQXFJRUJ3WVhKaGJTQjdVM1J5YVc1bmZTQnVZVzFsSUZSb1pTQnVZVzFsSUc5bUlIUm9aU0IwYjJ0bGJseHVJQ0FnS2lCQWNHRnlZVzBnZTFOMGNtbHVaMzBnYzNsdFltOXNJRlJvWlNCemVXMWliMndnYjJZZ2RHaGxJSFJ2YTJWdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VTNSeWFXNW5mU0JrWldOcGJXRnNjeUJVYUdVZ1pHVmphVzFoYkhNZ2IyWWdkR2hsSUhSdmEyVnVYRzRnSUNBcUlFQndZWEpoYlNCN1UzUnlhVzVuZlNCMGIzUmhiRk4xY0hCc2VTQlVhR1VnZEc5MFlXeFRkWEJ3YkhrZ2IyWWdkR2hsSUhSdmEyVnVYRzRnSUNBcUwxeHVJQ0JBVkhKaGJuTmhZM1JwYjI0b0tWeHVJQ0JoYzNsdVl5QkpibWwwYVdGc2FYcGxLR052Ym5SbGVIUTZJRU52Ym5SbGVIUXNJSFJ2YTJWdU9pQkZVa015TUZSdmEyVnVLU0I3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGdnZlNBOUlHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtGdGpiMjUwWlhoMFhTd2dkR2hwY3k1SmJtbDBhV0ZzYVhwbEtUdGNiaUFnSUNBdkx5QkRhR1ZqYXlCamIyNTBjbUZqZENCdmNIUnBiMjV6SUdGeVpTQnViM1FnWVd4eVpXRmtlU0J6WlhRc0lHTnNhV1Z1ZENCcGN5QnViM1FnWVhWMGFHOXlhWHBsWkNCMGJ5QmphR0Z1WjJVZ2RHaGxiU0J2Ym1ObElHbHVkR2wwYVdGc2FYcGxaRnh1SUNBZ0lHTnZibk4wSUhSdmEyVnVjeUE5SUdGM1lXbDBJSFJvYVhNdWRHOXJaVzVTWlhCdmMybDBiM0o1TG5ObGJHVmpkQ2dwTG1WNFpXTjFkR1VvWTNSNEtUdGNiaUFnSUNCcFppQW9kRzlyWlc1ekxteGxibWQwYUNBK0lEQXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJCZFhSb2IzSnBlbUYwYVc5dVJYSnliM0lvWEc0Z0lDQWdJQ0FnSUZ3aVkyOXVkSEpoWTNRZ2IzQjBhVzl1Y3lCaGNtVWdZV3h5WldGa2VTQnpaWFFzSUdOc2FXVnVkQ0JwY3lCdWIzUWdZWFYwYUc5eWFYcGxaQ0IwYnlCamFHRnVaMlVnZEdobGJWd2lYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIUnZhMlZ1TG05M2JtVnlJRDBnWTNSNExtbGtaVzUwYVhSNUxtZGxkRWxFS0NrN1hHNWNiaUFnSUNCaGQyRnBkQ0IwYUdsekxuUnZhMlZ1VW1Wd2IzTnBkRzl5ZVM1amNtVmhkR1VvZEc5clpXNHNJR04wZUNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnZlZ4dVhHNGdJQzh2SUVOb1pXTnJjeUIwYUdGMElHTnZiblJ5WVdOMElHOXdkR2x2Ym5NZ2FHRjJaU0JpWldWdUlHRnNjbVZoWkhrZ2FXNXBkR2xoYkdsNlpXUmNiaUFnUUZSeVlXNXpZV04wYVc5dUtHWmhiSE5sS1Z4dUlDQmhjM2x1WXlCRGFHVmphMGx1YVhScFlXeHBlbVZrS0dOdmJuUmxlSFE2SUVOdmJuUmxlSFFwSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUNCOUlEMGdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29XMk52Ym5SbGVIUmRMQ0IwYUdsekxrTm9aV05yU1c1cGRHbGhiR2w2WldRcE8xeHVJQ0FnSUdOdmJuTjBJSFJ2YTJWdWN5QTlJR0YzWVdsMElIUm9hWE11ZEc5clpXNVNaWEJ2YzJsMGIzSjVMbk5sYkdWamRDZ3BMbVY0WldOMWRHVW9ZM1I0S1R0Y2JpQWdJQ0JwWmlBb2RHOXJaVzV6TG14bGJtZDBhQ0E5UFNBd0tTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dUbTkwU1c1cGRHbGhiR2w2WldSRmNuSnZjaWhjYmlBZ0lDQWdJQ0FnWENKamIyNTBjbUZqZENCdmNIUnBiMjV6SUc1bFpXUWdkRzhnWW1VZ2MyVjBJR0psWm05eVpTQmpZV3hzYVc1bklHRnVlU0JtZFc1amRHbHZiaXdnWTJGc2JDQkpibWwwYVdGc2FYcGxLQ2tnZEc4Z2FXNXBkR2xoYkdsNlpTQmpiMjUwY21GamRGd2lYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJOYVc1MElHTnlaV0YwWlhNZ2JtVjNJSFJ2YTJWdWN5QmhibVFnWVdSa2N5QjBhR1Z0SUhSdklHMXBiblJsY2lkeklHRmpZMjkxYm5RZ1ltRnNZVzVqWlZ4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwTnZiblJsZUhSOUlHTnZiblJsZUhRZ2RHaGxJSFJ5WVc1ellXTjBhVzl1SUdOdmJuUmxlSFJjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHRnRiM1Z1ZENCaGJXOTFiblFnYjJZZ2RHOXJaVzV6SUhSdklHSmxJRzFwYm5SbFpGeHVJQ0FnS2lCQWNtVjBkWEp1Y3lCN1QySnFaV04wZlNCVWFHVWdZbUZzWVc1alpWeHVJQ0FnS2k5Y2JpQWdRRTkzYm1WeUtDbGNiaUFnUUZSeVlXNXpZV04wYVc5dUtDbGNiaUFnWVhONWJtTWdUV2x1ZENoamIyNTBaWGgwT2lCRGIyNTBaWGgwTENCaGJXOTFiblE2SUc1MWJXSmxjaWs2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRJSDBnUFNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoYlkyOXVkR1Y0ZEYwc0lIUm9hWE11VFdsdWRDazdYRzRnSUNBZ0x5OGdRMmhsWTJzZ1kyOXVkSEpoWTNRZ2IzQjBhVzl1Y3lCaGNtVWdZV3h5WldGa2VTQnpaWFFnWm1seWMzUWdkRzhnWlhobFkzVjBaU0IwYUdVZ1puVnVZM1JwYjI1Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TGtOb1pXTnJTVzVwZEdsaGJHbDZaV1FvWTNSNElHRnpJR0Z1ZVNrN1hHNWNiaUFnSUNBdkx5QkhaWFFnU1VRZ2IyWWdjM1ZpYldsMGRHbHVaeUJqYkdsbGJuUWdhV1JsYm5ScGRIbGNiaUFnSUNCamIyNXpkQ0J0YVc1MFpYSWdQU0JqZEhndWFXUmxiblJwZEhrdVoyVjBTVVFvS1R0Y2JseHVJQ0FnSUdsbUlDaGhiVzkxYm5RZ1BEMGdNQ2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUZaaGJHbGtZWFJwYjI1RmNuSnZjaWhjSW0xcGJuUWdZVzF2ZFc1MElHMTFjM1FnWW1VZ1lTQndiM05wZEdsMlpTQnBiblJsWjJWeVhDSXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHeGxkQ0J0YVc1MFpYSlhZV3hzWlhRNklFVlNRekl3VjJGc2JHVjBPMXh1SUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0J0YVc1MFpYSlhZV3hzWlhRZ1BTQmhkMkZwZENCMGFHbHpMbmRoYkd4bGRGSmxjRzl6YVhSdmNua3VjbVZoWkNodGFXNTBaWElzSUdOMGVDazdYRzVjYmlBZ0lDQWdJR052Ym5OMElHTjFjbkpsYm5SQ1lXeGhibU5sSUQwZ2JXbHVkR1Z5VjJGc2JHVjBMbUpoYkdGdVkyVTdYRzVjYmlBZ0lDQWdJR052Ym5OMElIVndaR0YwWldSQ1lXeGhibU5sSUQwZ1lXUmtLR04xY25KbGJuUkNZV3hoYm1ObExDQmhiVzkxYm5RcE8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCMWNHUmhkR1ZrYldsdWRHVnlJRDBnVDJKcVpXTjBMbUZ6YzJsbmJpaDdmU3dnYldsdWRHVnlWMkZzYkdWMExDQjdYRzRnSUNBZ0lDQWdJR0poYkdGdVkyVTZJSFZ3WkdGMFpXUkNZV3hoYm1ObExGeHVJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11ZDJGc2JHVjBVbVZ3YjNOcGRHOXllUzUxY0dSaGRHVW9kWEJrWVhSbFpHMXBiblJsY2l3Z1kzUjRLVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxPaUIxYm10dWIzZHVLU0I3WEc0Z0lDQWdJQ0JwWmlBb1pTQnBibk4wWVc1alpXOW1JRUpoYzJWRmNuSnZjaWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9aUzVqYjJSbElEMDlQU0EwTURRcElIdGNiaUFnSUNBZ0lDQWdJQ0F2THlCRGNtVmhkR1VnWVNCdVpYY2dkMkZzYkdWMElHWnZjaUIwYUdVZ2JXbHVkR1Z5WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYm1WM1YyRnNiR1YwSUQwZ2JtVjNJRVZTUXpJd1YyRnNiR1YwS0h0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xrT2lCdGFXNTBaWElzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmlZV3hoYm1ObE9pQmhiVzkxYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYjJ0bGJqb2dZWGRoYVhRZ2RHaHBjeTVVYjJ0bGJrNWhiV1VvWTI5dWRHVjRkQ2tzWEc0Z0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1M1lXeHNaWFJTWlhCdmMybDBiM0o1TG1OeVpXRjBaU2h1WlhkWFlXeHNaWFFzSUdOMGVDazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9aUzV0WlhOellXZGxLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9aU0JoY3lCemRISnBibWNwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUVWdGFYUWdkR2hsSUZSeVlXNXpabVZ5SUdWMlpXNTBYRzRnSUNBZ1kyOXVjM1FnZEhKaGJuTm1aWEpGZG1WdWRDQTlJSHNnWm5KdmJUb2dYQ0l3ZURCY0lpd2dkRzg2SUcxcGJuUmxjaXdnZG1Gc2RXVTZJR0Z0YjNWdWRDQjlPMXh1SUNBZ0lHTnZibk4wSUdWMlpXNTBTR0Z1Wkd4bGNpQTlYRzRnSUNBZ0lDQjBhR2x6TG5KbGNHOHVUMkp6WlhKMlpYSklZVzVrYkdWeUtDa2dZWE1nUm1GaWNtbGpRMjl1ZEhKaFkzUlNaWEJ2YzJsMGIzSjVUMkp6WlhKMllXSnNaVWhoYm1Sc1pYSTdYRzRnSUNBZ1pYWmxiblJJWVc1a2JHVnlMblZ3WkdGMFpVOWljMlZ5ZG1WeWN5aGNiaUFnSUNBZ0lFVlNRekl3Vkc5clpXNHNYRzRnSUNBZ0lDQkZVa015TUVWMlpXNTBjeTVVVWtGT1UwWkZVaXhjYmlBZ0lDQWdJRndpWENJc1hHNGdJQ0FnSUNCMGNtRnVjMlpsY2tWMlpXNTBMRnh1SUNBZ0lDQWdZM1I0SUdGeklIVnVhMjV2ZDI0Z1lYTWdSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQ2RYSnVJSEpsWkdWbGJTQjBiMnRsYm5NZ1puSnZiU0J0YVc1MFpYSW5jeUJoWTJOdmRXNTBJR0poYkdGdVkyVmNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHREYjI1MFpYaDBmU0JqYjI1MFpYaDBJSFJvWlNCMGNtRnVjMkZqZEdsdmJpQmpiMjUwWlhoMFhHNGdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JoYlc5MWJuUWdZVzF2ZFc1MElHOW1JSFJ2YTJWdWN5QjBieUJpWlNCaWRYSnVaV1JjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMDlpYW1WamRIMGdWR2hsSUdKaGJHRnVZMlZjYmlBZ0lDb3ZYRzRnSUVCUGQyNWxjaWdwWEc0Z0lFQlVjbUZ1YzJGamRHbHZiaWdwWEc0Z0lHRnplVzVqSUVKMWNtNG9ZMjl1ZEdWNGREb2dRMjl1ZEdWNGRDd2dZVzF2ZFc1ME9pQnVkVzFpWlhJcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR3h2Wnl3Z1kzUjRJSDBnUFNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoYlkyOXVkR1Y0ZEYwc0lIUm9hWE11UW5WeWJpazdYRzRnSUNBZ0x5OGdRMmhsWTJzZ1kyOXVkSEpoWTNRZ2IzQjBhVzl1Y3lCaGNtVWdZV3h5WldGa2VTQnpaWFFnWm1seWMzUWdkRzhnWlhobFkzVjBaU0IwYUdVZ1puVnVZM1JwYjI1Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TGtOb1pXTnJTVzVwZEdsaGJHbDZaV1FvWTNSNElHRnpJR0Z1ZVNrN1hHNWNiaUFnSUNCamIyNXpkQ0J0YVc1MFpYSWdQU0JqZEhndWFXUmxiblJwZEhrdVoyVjBTVVFvS1R0Y2JseHVJQ0FnSUdOdmJuTjBJRzFwYm5SbGNsZGhiR3hsZENBOUlHRjNZV2wwSUhSb2FYTXVkMkZzYkdWMFVtVndiM05wZEc5eWVTNXlaV0ZrS0cxcGJuUmxjaXdnWTNSNEtUdGNibHh1SUNBZ0lHTnZibk4wSUdOMWNuSmxiblJDWVd4aGJtTmxJRDBnYldsdWRHVnlWMkZzYkdWMExtSmhiR0Z1WTJVN1hHNWNiaUFnSUNCcFppQW9ZM1Z5Y21WdWRFSmhiR0Z1WTJVZ1BDQmhiVzkxYm5RcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkNZV3hoYm1ObFJYSnliM0lvWUUxcGJuUmxjaUJvWVhNZ2FXNXpkV1ptYVdOcFpXNTBJR1oxYm1SekxtQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhWd1pHRjBaV1JDWVd4aGJtTmxJRDBnYzNWaUtHTjFjbkpsYm5SQ1lXeGhibU5sTENCaGJXOTFiblFwTzF4dVhHNGdJQ0FnWTI5dWMzUWdkWEJrWVhSbFpHMXBiblJsY2lBOUlFOWlhbVZqZEM1aGMzTnBaMjRvZTMwc0lHMXBiblJsY2xkaGJHeGxkQ3dnZTF4dUlDQWdJQ0FnWW1Gc1lXNWpaVG9nZFhCa1lYUmxaRUpoYkdGdVkyVXNYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbmRoYkd4bGRGSmxjRzl6YVhSdmNua3VkWEJrWVhSbEtIVndaR0YwWldSdGFXNTBaWElzSUdOMGVDazdYRzVjYmlBZ0lDQnNiMmN1YVc1bWJ5aGdKSHRoYlc5MWJuUjlJSFJ2YTJWdWN5QjNaWEpsSUdKMWNtNWxaR0FwTzF4dVhHNGdJQ0FnTHk4Z1JXMXBkQ0IwYUdVZ1ZISmhibk5tWlhJZ1pYWmxiblJjYmlBZ0lDQmpiMjV6ZENCMGNtRnVjMlpsY2tWMlpXNTBJRDBnZXlCbWNtOXRPaUJ0YVc1MFpYSXNJSFJ2T2lCY0lqQjRNRndpTENCMllXeDFaVG9nWVcxdmRXNTBJSDA3WEc0Z0lDQWdZMjl1YzNRZ1pYWmxiblJJWVc1a2JHVnlJRDFjYmlBZ0lDQWdJSFJvYVhNdWNtVndieTVQWW5ObGNuWmxja2hoYm1Sc1pYSW9LU0JoY3lCR1lXSnlhV05EYjI1MGNtRmpkRkpsY0c5emFYUnZjbmxQWW5ObGNuWmhZbXhsU0dGdVpHeGxjanRjYmlBZ0lDQmxkbVZ1ZEVoaGJtUnNaWEl1ZFhCa1lYUmxUMkp6WlhKMlpYSnpLRnh1SUNBZ0lDQWdSVkpETWpCVWIydGxiaXhjYmlBZ0lDQWdJRVZTUXpJd1JYWmxiblJ6TGxSU1FVNVRSa1ZTTEZ4dUlDQWdJQ0FnWENKY0lpeGNiaUFnSUNBZ0lIUnlZVzV6Wm1WeVJYWmxiblFzWEc0Z0lDQWdJQ0JqZEhnZ1lYTWdkVzVyYm05M2JpQmhjeUJHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhSY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFSjFjbTVHY205dElISmxaR1ZsYlNCMGIydGxibk1nWm5KdmJTQmhZMk52ZFc1MElHRnNiRzkzWlc1alpTQmhibVFnWW1Gc1lXNWpaVnh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTBOdmJuUmxlSFI5SUdOdmJuUmxlSFFnZEdobElIUnlZVzV6WVdOMGFXOXVJR052Ym5SbGVIUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUdGalkyOTFiblFnWVdOamIzVnVkQ0JtY205dElIZG9aWEpsSUhSdmEyVnVjeUIzYVd4c0lHSmxJR0oxY201bFpGeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnWVcxdmRXNTBJR0Z0YjNWdWRDQnZaaUIwYjJ0bGJuTWdkRzhnWW1VZ1luVnlibVZrWEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRQWW1wbFkzUjlJRlJvWlNCaVlXeGhibU5sWEc0Z0lDQXFMMXh1SUNCQVQzZHVaWElvS1Z4dUlDQkFWSEpoYm5OaFkzUnBiMjRvS1Z4dUlDQmhjM2x1WXlCQ2RYSnVSbkp2YlNoY2JpQWdJQ0JqYjI1MFpYaDBPaUJEYjI1MFpYaDBMRnh1SUNBZ0lHRmpZMjkxYm5RNklITjBjbWx1Wnl4Y2JpQWdJQ0JoYlc5MWJuUTZJRzUxYldKbGNseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHeHZaeXdnWTNSNElIMGdQU0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hiWTI5dWRHVjRkRjBzSUhSb2FYTXVRblZ5YmtaeWIyMHBPMXh1SUNBZ0lDOHZJRU5vWldOcklHTnZiblJ5WVdOMElHOXdkR2x2Ym5NZ1lYSmxJR0ZzY21WaFpIa2djMlYwSUdacGNuTjBJSFJ2SUdWNFpXTjFkR1VnZEdobElHWjFibU4wYVc5dVhHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1RGFHVmphMGx1YVhScFlXeHBlbVZrS0dOMGVDQmhjeUJoYm5rcE8xeHVYRzRnSUNBZ1kyOXVjM1FnWVdOamIzVnVkRmRoYkd4bGRDQTlJR0YzWVdsMElIUm9hWE11ZDJGc2JHVjBVbVZ3YjNOcGRHOXllUzV5WldGa0tHRmpZMjkxYm5Rc0lHTjBlQ2s3WEc1Y2JpQWdJQ0JqYjI1emRDQmpkWEp5Wlc1MFFtRnNZVzVqWlNBOUlHRmpZMjkxYm5SWFlXeHNaWFF1WW1Gc1lXNWpaVHRjYmx4dUlDQWdJR2xtSUNoamRYSnlaVzUwUW1Gc1lXNWpaU0E4SUdGdGIzVnVkQ2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVKaGJHRnVZMlZGY25KdmNpaGdKSHRoWTJOdmRXNTBmU0JvWVhNZ2FXNXpkV1ptYVdOcFpXNTBJR1oxYm1SekxtQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhWd1pHRjBaV1JDWVd4aGJtTmxJRDBnYzNWaUtHTjFjbkpsYm5SQ1lXeGhibU5sTENCaGJXOTFiblFwTzF4dVhHNGdJQ0FnWTI5dWMzUWdkWEJrWVhSbFpHRmpZMjkxYm5RZ1BTQlBZbXBsWTNRdVlYTnphV2R1S0h0OUxDQmhZMk52ZFc1MFYyRnNiR1YwTENCN1hHNGdJQ0FnSUNCaVlXeGhibU5sT2lCMWNHUmhkR1ZrUW1Gc1lXNWpaU3hjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJR0YzWVdsMElIUm9hWE11ZDJGc2JHVjBVbVZ3YjNOcGRHOXllUzUxY0dSaGRHVW9kWEJrWVhSbFpHRmpZMjkxYm5Rc0lHTjBlQ2s3WEc1Y2JpQWdJQ0JzYjJjdWFXNW1ieWhnSkh0aGJXOTFiblI5SUhSdmEyVnVjeUIzWlhKbElHSjFjbTVsWkNCbWNtOXRJQ1I3WVdOamIzVnVkSDFnS1R0Y2JseHVJQ0FnSUM4dklFVnRhWFFnZEdobElGUnlZVzV6Wm1WeUlHVjJaVzUwWEc0Z0lDQWdZMjl1YzNRZ2RISmhibk5tWlhKRmRtVnVkQ0E5SUhzZ1puSnZiVG9nWVdOamIzVnVkQ3dnZEc4NklGd2lNSGd3WENJc0lIWmhiSFZsT2lCaGJXOTFiblFnZlR0Y2JpQWdJQ0JqYjI1emRDQmxkbVZ1ZEVoaGJtUnNaWElnUFZ4dUlDQWdJQ0FnZEdocGN5NXlaWEJ2TGs5aWMyVnlkbVZ5U0dGdVpHeGxjaWdwSUdGeklFWmhZbkpwWTBOdmJuUnlZV04wVW1Wd2IzTnBkRzl5ZVU5aWMyVnlkbUZpYkdWSVlXNWtiR1Z5TzF4dUlDQWdJR1YyWlc1MFNHRnVaR3hsY2k1MWNHUmhkR1ZQWW5ObGNuWmxjbk1vWEc0Z0lDQWdJQ0JGVWtNeU1GUnZhMlZ1TEZ4dUlDQWdJQ0FnUlZKRE1qQkZkbVZ1ZEhNdVZGSkJUbE5HUlZJc1hHNGdJQ0FnSUNCY0lsd2lMRnh1SUNBZ0lDQWdkSEpoYm5ObVpYSkZkbVZ1ZEN4Y2JpQWdJQ0FnSUdOMGVDQmhjeUIxYm10dWIzZHVJR0Z6SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRGeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRMnhwWlc1MFFXTmpiM1Z1ZEVKaGJHRnVZMlVnY21WMGRYSnVjeUIwYUdVZ1ltRnNZVzVqWlNCdlppQjBhR1VnY21WeGRXVnpkR2x1WnlCamJHbGxiblFuY3lCaFkyTnZkVzUwTGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwTnZiblJsZUhSOUlHTnZiblJsZUhRZ2RHaGxJSFJ5WVc1ellXTjBhVzl1SUdOdmJuUmxlSFJjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMDUxYldKbGNuMGdVbVYwZFhKdWN5QjBhR1VnWVdOamIzVnVkQ0JpWVd4aGJtTmxYRzRnSUNBcUwxeHVJQ0JBVkhKaGJuTmhZM1JwYjI0b1ptRnNjMlVwWEc0Z0lHRnplVzVqSUVOc2FXVnVkRUZqWTI5MWJuUkNZV3hoYm1ObEtHTnZiblJsZUhRNklFTnZiblJsZUhRcE9pQlFjbTl0YVhObFBHNTFiV0psY2o0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNElIMGdQU0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hiWTI5dWRHVjRkRjBzSUhSb2FYTXVWRzlyWlc1T1lXMWxLVHRjYmlBZ0lDQXZMeUJEYUdWamF5QmpiMjUwY21GamRDQnZjSFJwYjI1eklHRnlaU0JoYkhKbFlXUjVJSE5sZENCbWFYSnpkQ0IwYnlCbGVHVmpkWFJsSUhSb1pTQm1kVzVqZEdsdmJseHVJQ0FnSUdGM1lXbDBJSFJvYVhNdVEyaGxZMnRKYm1sMGFXRnNhWHBsWkNoamRIZ2dZWE1nWVc1NUtUdGNibHh1SUNBZ0lDOHZJRWRsZENCSlJDQnZaaUJ6ZFdKdGFYUjBhVzVuSUdOc2FXVnVkQ0JwWkdWdWRHbDBlVnh1SUNBZ0lHTnZibk4wSUdOc2FXVnVkRUZqWTI5MWJuUkpSQ0E5SUdOMGVDNXBaR1Z1ZEdsMGVTNW5aWFJKUkNncE8xeHVYRzRnSUNBZ1kyOXVjM1FnWTJ4cFpXNTBWMkZzYkdWMElEMGdZWGRoYVhRZ2RHaHBjeTUzWVd4c1pYUlNaWEJ2YzJsMGIzSjVMbkpsWVdRb1kyeHBaVzUwUVdOamIzVnVkRWxFTENCamRIZ3BPMXh1WEc0Z0lDQWdhV1lnS0NGamJHbGxiblJYWVd4c1pYUXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJDWVd4aGJtTmxSWEp5YjNJb1lGUm9aU0JoWTJOdmRXNTBJQ1I3WTJ4cFpXNTBRV05qYjNWdWRFbEVmU0JrYjJWeklHNXZkQ0JsZUdsemRHQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCamJHbGxiblJYWVd4c1pYUXVZbUZzWVc1alpUdGNiaUFnZlZ4dVhHNGdJQzh2SUVOc2FXVnVkRUZqWTI5MWJuUkpSQ0J5WlhSMWNtNXpJSFJvWlNCcFpDQnZaaUIwYUdVZ2NtVnhkV1Z6ZEdsdVp5QmpiR2xsYm5RbmN5QmhZMk52ZFc1MExseHVJQ0F2THlCSmJpQjBhR2x6SUdsdGNHeGxiV1Z1ZEdGMGFXOXVMQ0IwYUdVZ1kyeHBaVzUwSUdGalkyOTFiblFnU1VRZ2FYTWdkR2hsSUdOc2FXVnVkRWxrSUdsMGMyVnNaaTVjYmlBZ0x5OGdWWE5sY25NZ1kyRnVJSFZ6WlNCMGFHbHpJR1oxYm1OMGFXOXVJSFJ2SUdkbGRDQjBhR1ZwY2lCdmQyNGdZV05qYjNWdWRDQnBaQ3dnZDJocFkyZ2dkR2hsZVNCallXNGdkR2hsYmlCbmFYWmxJSFJ2SUc5MGFHVnljeUJoY3lCMGFHVWdjR0Y1YldWdWRDQmhaR1J5WlhOelhHNGdJRUJVY21GdWMyRmpkR2x2YmlobVlXeHpaU2xjYmlBZ1lYTjVibU1nUTJ4cFpXNTBRV05qYjNWdWRFbEVLR052Ym5SbGVIUTZJRU52Ym5SbGVIUXBJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlQ0I5SUQwZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1cyTnZiblJsZUhSZExDQjBhR2x6TGtOc2FXVnVkRUZqWTI5MWJuUkpSQ2s3WEc0Z0lDQWdMeThnUTJobFkyc2dZMjl1ZEhKaFkzUWdiM0IwYVc5dWN5QmhjbVVnWVd4eVpXRmtlU0J6WlhRZ1ptbHljM1FnZEc4Z1pYaGxZM1YwWlNCMGFHVWdablZ1WTNScGIyNWNiaUFnSUNCaGQyRnBkQ0IwYUdsekxrTm9aV05yU1c1cGRHbGhiR2w2WldRb1kzUjRJR0Z6SUdGdWVTazdYRzVjYmlBZ0lDQXZMeUJIWlhRZ1NVUWdiMllnYzNWaWJXbDBkR2x1WnlCamJHbGxiblFnYVdSbGJuUnBkSGxjYmlBZ0lDQmpiMjV6ZENCamJHbGxiblJCWTJOdmRXNTBTVVFnUFNCamRIZ3VhV1JsYm5ScGRIa3VaMlYwU1VRb0tUdGNiaUFnSUNCeVpYUjFjbTRnWTJ4cFpXNTBRV05qYjNWdWRFbEVPMXh1SUNCOVhHNTlYRzRpWFgwPSJdfQ==
586
+ //# sourceMappingURL=erc20contract.js.map
587
+ //# sourceMappingURL=erc20contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc20contract.js","sourceRoot":"","sources":["erc20contract.js"],"names":[],"mappings":"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"}
@@ -18,5 +18,5 @@ exports.contracts = void 0;
18
18
  const erc20contract_js_1 = require("./erc20contract.cjs");
19
19
  __exportStar(require("./../FabricContractStatement.cjs"), exports);
20
20
  exports.contracts = [erc20contract_js_1.FabricERC20Contract];
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJhY3RzL2VyYzIwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSwyQkFBd0I7QUFFdEQsZ0RBQTJDO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBVSxDQUFDLG1CQUFtQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYWJyaWNFUkMyMENvbnRyYWN0IH0gZnJvbSBcIi4vZXJjMjBjb250cmFjdFwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi4vRmFicmljQ29udHJhY3RTdGF0ZW1lbnRcIjtcblxuZXhwb3J0IGNvbnN0IGNvbnRyYWN0czogYW55W10gPSBbRmFicmljRVJDMjBDb250cmFjdF07XG4iXX0=
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlEQUF5RDtBQUN6RCxrRUFBZ0Q7QUFDbkMsUUFBQSxTQUFTLEdBQUcsQ0FBQyxzQ0FBbUIsQ0FBQyxDQUFDO0FBQy9DLDBsQkFBMGxCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFicmljRVJDMjBDb250cmFjdCB9IGZyb20gXCIuL2VyYzIwY29udHJhY3QuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuLy4uL0ZhYnJpY0NvbnRyYWN0U3RhdGVtZW50LmpzXCI7XG5leHBvcnQgY29uc3QgY29udHJhY3RzID0gW0ZhYnJpY0VSQzIwQ29udHJhY3RdO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOXpjbU12WTI5dWRISmhZM1J6TDJWeVl6SXdMMmx1WkdWNExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNSVUZCUlN4dFFrRkJiVUlzUlVGQlJTd3lRa0ZCZDBJN1FVRkZkRVFzWjBSQlFUSkRPMEZCUlRORExFMUJRVTBzUTBGQlF5eE5RVUZOTEZOQlFWTXNSMEZCVlN4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJHWVdKeWFXTkZVa015TUVOdmJuUnlZV04wSUgwZ1puSnZiU0JjSWk0dlpYSmpNakJqYjI1MGNtRmpkRndpTzF4dVhHNWxlSEJ2Y25RZ0tpQm1jbTl0SUZ3aUxpNHZSbUZpY21salEyOXVkSEpoWTNSVGRHRjBaVzFsYm5SY0lqdGNibHh1Wlhod2IzSjBJR052Ym5OMElHTnZiblJ5WVdOMGN6b2dZVzU1VzEwZ1BTQmJSbUZpY21salJWSkRNakJEYjI1MGNtRmpkRjA3WEc0aVhYMD0iXX0=
21
+ //# sourceMappingURL=index.js.map
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yDAAyD;AACzD,kEAAgD;AACnC,QAAA,SAAS,GAAG,CAAC,sCAAmB,CAAC,CAAC;AAC/C,iCAAiC"}
@@ -211,5 +211,5 @@ exports.Allowance = Allowance = __decorate([
211
211
  (0, decorator_validation_1.model)(),
212
212
  __metadata("design:paramtypes", [Object])
213
213
  ], Allowance);
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyYWN0cy9lcmMyMC9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQWlCLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWhGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFHSSxJQUFNLFVBQVUsR0FBaEIsTUFBTSxVQUFXLFNBQVEsU0FBUztJQThCdkMsWUFBWSxDQUF5QjtRQUNuQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0NBQ0YsQ0FBQTtBQTNCQztJQUxDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNyQjs7O09BR0c7Ozt3Q0FDVztBQVFkO0lBTkMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1g7OztPQUdHOzs7eUNBQ1k7QUFPZjtJQU5DLE1BQU0sRUFBRTtJQUNSLFFBQVEsRUFBRTtJQUNYOzs7T0FHRzs7OzBDQUNhO0FBT2hCO0lBTkMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1g7OztPQUdHOzs7NENBQ2U7QUE1QlAsVUFBVTtJQUZ0QixLQUFLLENBQUMsY0FBYyxDQUFDO0lBQ3JCLEtBQUssRUFBRTs7R0FDSyxVQUFVLENBaUN0Qjs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFHSSxJQUFNLFdBQVcsR0FBakIsTUFBTSxXQUFZLFNBQVEsU0FBUztJQStCeEMsWUFBWSxDQUF5QjtRQUNuQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0NBQ0YsQ0FBQTtBQTVCQztJQUxDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNyQjs7O09BR0c7Ozt1Q0FDUztBQVFaO0lBTkMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1g7OztPQUdHOzs7MENBQ1k7QUFRZjtJQU5DLE1BQU0sRUFBRTtJQUNSLFFBQVEsRUFBRTtJQUNYOzs7T0FHRzs7OzRDQUNjO0FBT2pCO0lBTEMsTUFBTSxFQUFFO0lBQ1Q7OztPQUdHOzs7NENBQ2M7QUE3Qk4sV0FBVztJQUZ2QixLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3RCLEtBQUssRUFBRTs7R0FDSyxXQUFXLENBa0N2Qjs7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFHSSxJQUFNLFNBQVMsR0FBZixNQUFNLFNBQVUsU0FBUSxTQUFTO0lBOEJ0QyxZQUFZLENBQXVCO1FBQ2pDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7Q0FDRixDQUFBO0FBckJDO0lBWEMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3JCOzs7T0FHRzs7SUFDRixNQUFNLEVBQUU7SUFDUixRQUFRLEVBQUU7SUFDWDs7O09BR0c7Ozt3Q0FDWTtBQVFmO0lBTkMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1g7OztPQUdHOzs7MENBQ2M7QUFRakI7SUFOQyxNQUFNLEVBQUU7SUFDUixRQUFRLEVBQUU7SUFDWDs7O09BR0c7Ozt3Q0FDWTtBQTVCSixTQUFTO0lBRnJCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztJQUN6QixLQUFLLEVBQUU7O0dBQ0ssU0FBUyxDQWlDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTW9kZWwsIGNvbHVtbiwgcGssIHRhYmxlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBtb2RlbCwgdHlwZSBNb2RlbEFyZywgcmVxdWlyZWQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEVSQzIwIHRva2VuIG1ldGFkYXRhIG1vZGVsXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGFuIEVSQzIwIHRva2VuIGRlZmluaXRpb24gd2l0aGluIHRoZSBGYWJyaWMgRVJDMjAgc2FtcGxlLCBpbmNsdWRpbmcgbmFtZSwgc3ltYm9sLCBkZWNpbWFscywgYW5kIHRoZSBvd25pbmcgaWRlbnRpdHkuIFVzZWQgdG8gZGVmaW5lIHRoZSB1bmlxdWUgdG9rZW4gbWFuYWdlZCBieSB0aGUgY29udHJhY3QuXG4gKiBAcGFyYW0ge01vZGVsQXJnPEVSQzIwVG9rZW4+fSBbbV0gLSBPcHRpb25hbCBwYXJ0aWFsIGRhdGEgb3IgYW5vdGhlciBpbnN0YW5jZSB0byBpbml0aWFsaXplIHRoZSBtb2RlbFxuICogQHJldHVybiB7dm9pZH1cbiAqIEBjbGFzcyBFUkMyMFRva2VuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgdG9rZW4gPSBuZXcgRVJDMjBUb2tlbih7IG5hbWU6IFwiTXlUb2tlblwiLCBzeW1ib2w6IFwiTVRLXCIsIGRlY2ltYWxzOiAxOCwgb3duZXI6IFwieDUwOTo6Li4uXCIgfSk7XG4gKiAvLyBQZXJzaXN0IHRocm91Z2ggYSByZXBvc2l0b3J5OiBhd2FpdCByZXBvLmNyZWF0ZSh0b2tlbiwgY3R4KVxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBBcHBcbiAqICAgcGFydGljaXBhbnQgUmVwb1xuICogICBwYXJ0aWNpcGFudCBBZGFwdGVyXG4gKiAgIEFwcC0+PlJlcG86IGNyZWF0ZShuZXcgRVJDMjBUb2tlbih7Li4ufSksIGN0eClcbiAqICAgUmVwby0+PkFkYXB0ZXI6IGNyZWF0ZSh0YWJsZSwgaWQ9bmFtZSwgcmVjb3JkLCBmbGFncylcbiAqICAgQWRhcHRlci0tPj5SZXBvOiBzdG9yZWRcbiAqICAgUmVwby0tPj5BcHA6IG1vZGVsXG4gKi9cbkB0YWJsZShcImVyYzIwX3Rva2Vuc1wiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBFUkMyMFRva2VuIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgQHBrKHsgdHlwZTogU3RyaW5nIH0pXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVG9rZW4gdW5pcXVlIG5hbWVcbiAgICogQHN1bW1hcnkgU2VydmVzIGFzIHRoZSBwcmltYXJ5IGtleSBmb3IgdGhlIEVSQzIwIHRva2VuIGRlZmluaXRpb247IHR5cGljYWxseSBhIGh1bWFuLXJlYWRhYmxlIGlkZW50aWZpZXJcbiAgICovXG4gIG5hbWUhOiBzdHJpbmc7XG5cbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gT3duaW5nIGlkZW50aXR5IG9mIHRoZSB0b2tlblxuICAgKiBAc3VtbWFyeSBYLjUwOSBzdWJqZWN0IG9yIE1TUCBpZGVudGl0eSBzdHJpbmcgdGhhdCBkZW5vdGVzIHdobyBvd25zL2NvbnRyb2xzIHRoZSB0b2tlbiBkZWZpbml0aW9uXG4gICAqL1xuICBvd25lciE6IHN0cmluZztcbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVG9rZW4gc3ltYm9sXG4gICAqIEBzdW1tYXJ5IFNob3J0IHRpY2tlci1saWtlIHN5bWJvbCB1c2VkIHRvIHJlcHJlc2VudCB0aGUgdG9rZW4gKGUuZy4sIE1USylcbiAgICovXG4gIHN5bWJvbCE6IHN0cmluZztcbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRGVjaW1hbCBwcmVjaXNpb24gZm9yIHRva2VuIGFtb3VudHNcbiAgICogQHN1bW1hcnkgTnVtYmVyIG9mIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdG9rZW4gYmFsYW5jZXNcbiAgICovXG4gIGRlY2ltYWxzITogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKG0/OiBNb2RlbEFyZzxFUkMyMFdhbGxldD4pIHtcbiAgICBzdXBlcihtKTtcbiAgfVxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFUkMyMCB3YWxsZXQgbW9kZWxcbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgYSBob2xkZXIgYWNjb3VudCBmb3IgYW4gRVJDMjAgdG9rZW4gd2l0aGluIHRoZSBGYWJyaWMgbmV0d29yaywgdHJhY2tpbmcgYmFsYW5jZSBhbmQgdG9rZW4gYXNzb2NpYXRpb24uXG4gKiBAcGFyYW0ge01vZGVsQXJnPEVSQzIwV2FsbGV0Pn0gW21dIC0gT3B0aW9uYWwgcGFydGlhbCBkYXRhIG9yIGFub3RoZXIgaW5zdGFuY2UgdG8gaW5pdGlhbGl6ZSB0aGUgbW9kZWxcbiAqIEByZXR1cm4ge3ZvaWR9XG4gKiBAY2xhc3MgRVJDMjBXYWxsZXRcbiAqIEBleGFtcGxlXG4gKiBjb25zdCB3YWxsZXQgPSBuZXcgRVJDMjBXYWxsZXQoeyBpZDogXCJhY2N0MVwiLCB0b2tlbjogXCJNeVRva2VuXCIsIGJhbGFuY2U6IDEwMDAgfSk7XG4gKiAvLyBVcGRhdGUgYmFsYW5jZSB2aWEgcmVwb3NpdG9yeTogYXdhaXQgcmVwby51cGRhdGUod2FsbGV0LCBjdHgpXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEFwcFxuICogICBwYXJ0aWNpcGFudCBSZXBvXG4gKiAgIEFwcC0+PlJlcG86IHJlYWQoXCJhY2N0MVwiLCBjdHgpXG4gKiAgIFJlcG8tLT4+QXBwOiBFUkMyMFdhbGxldFxuICovXG5AdGFibGUoXCJlcmMyMF93YWxsZXRzXCIpXG5AbW9kZWwoKVxuZXhwb3J0IGNsYXNzIEVSQzIwV2FsbGV0IGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgQHBrKHsgdHlwZTogU3RyaW5nIH0pXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gV2FsbGV0IHVuaXF1ZSBpZGVudGlmaWVyXG4gICAqIEBzdW1tYXJ5IFByaW1hcnkga2V5IGZvciB0aGUgd2FsbGV0OyBjb21tb25seSByZWZlcmVuY2VzIGFuIGFjY291bnQgb3IgaWRlbnRpdHlcbiAgICovXG4gIGlkITogc3RyaW5nO1xuXG4gIEBjb2x1bW4oKVxuICBAcmVxdWlyZWQoKVxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEFzc29jaWF0ZWQgdG9rZW4gbmFtZVxuICAgKiBAc3VtbWFyeSBSZWZlcmVuY2VzIHRoZSBFUkMyMFRva2VuIHRoaXMgd2FsbGV0IGhvbGRzOyBtYWludGFpbmVkIGFzIGEgcmVsYXRpb25zaGlwIGZvciBjYXNjYWRpbmcgdXBkYXRlcy9kZWxldGVzXG4gICAqL1xuICB0b2tlbiE6IHN0cmluZztcblxuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUb2tlbiBiYWxhbmNlIGZvciB0aGlzIHdhbGxldFxuICAgKiBAc3VtbWFyeSBDdXJyZW50IGFtb3VudCBvZiB0aGUgYXNzb2NpYXRlZCB0b2tlbiBoZWxkIGJ5IHRoaXMgd2FsbGV0XG4gICAqL1xuICBiYWxhbmNlITogbnVtYmVyO1xuXG4gIEBjb2x1bW4oKVxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENhcHRpdmUgZmxhZyBvciBpZGVudGlmaWVyXG4gICAqIEBzdW1tYXJ5IE9wdGlvbmFsIGZpZWxkIHVzZWQgYnkgc29tZSBmbG93cyB0byBtYXJrIG5vbi10cmFuc2ZlcmFibGUgZnVuZHMgb3IgbWFuYWdlZCBjdXN0b2R5XG4gICAqL1xuICBjYXB0aXZlITogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG0/OiBNb2RlbEFyZzxFUkMyMFdhbGxldD4pIHtcbiAgICBzdXBlcihtKTtcbiAgfVxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFUkMyMCBhbGxvd2FuY2UgbW9kZWxcbiAqIEBzdW1tYXJ5IENhcHR1cmVzIGFuIGFwcHJvdmFsIHJlbGF0aW9uc2hpcCB3aGVyZSBhbiBvd25lciBhbGxvd3MgYSBzcGVuZGVyIHRvIHRyYW5zZmVyIHVwIHRvIGEgY2VydGFpbiB2YWx1ZSBmcm9tIHRoZSBvd25lcidzIHdhbGxldC5cbiAqIEBwYXJhbSB7TW9kZWxBcmc8QWxsb3dhbmNlPn0gW21dIC0gT3B0aW9uYWwgcGFydGlhbCBkYXRhIG9yIGFub3RoZXIgaW5zdGFuY2UgdG8gaW5pdGlhbGl6ZSB0aGUgbW9kZWxcbiAqIEByZXR1cm4ge3ZvaWR9XG4gKiBAY2xhc3MgQWxsb3dhbmNlXG4gKiBAZXhhbXBsZVxuICogY29uc3QgYWxsb3dhbmNlID0gbmV3IEFsbG93YW5jZSh7IG93bmVyOiBcImFjY3QxXCIsIHNwZW5kZXI6IFwiYWNjdDJcIiwgdmFsdWU6IDUwIH0pO1xuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBBcHBcbiAqICAgQXBwLT4+QXBwOiBuZXcgQWxsb3dhbmNlKHsgb3duZXIsIHNwZW5kZXIsIHZhbHVlIH0pXG4gKi9cbkB0YWJsZShcImVyYzIwX2FsbG93YW5jZXNcIilcbkBtb2RlbCgpXG5leHBvcnQgY2xhc3MgQWxsb3dhbmNlIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgQHBrKHsgdHlwZTogU3RyaW5nIH0pXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQWxsb3dhbmNlIHVuaXF1ZSBpZGVudGlmaWVyXG4gICAqIEBzdW1tYXJ5IFByaW1hcnkga2V5IGZvciB0aGUgYWxsb3dhbmNlOyB0eXBpY2FsbHkgYSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGFwcHJvdmFsIHJlbGF0aW9uc2hpcFxuICAgKi9cbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gT3duZXIgd2FsbGV0IGlkZW50aWZpZXJcbiAgICogQHN1bW1hcnkgV2FsbGV0IHRoYXQgYXV0aG9yaXplcyB0aGUgYWxsb3dhbmNlXG4gICAqL1xuICBvd25lciE6IHN0cmluZztcblxuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBTcGVuZGVyIHdhbGxldCBpZGVudGlmaWVyXG4gICAqIEBzdW1tYXJ5IFdhbGxldCBhbGxvd2VkIHRvIHNwZW5kIHVwIHRvIHRoZSBhcHByb3ZlZCB2YWx1ZSBmcm9tIHRoZSBvd25lclxuICAgKi9cbiAgc3BlbmRlciE6IHN0cmluZztcblxuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBcHByb3ZlZCB2YWx1ZVxuICAgKiBAc3VtbWFyeSBNYXhpbXVtIHRva2VuIGFtb3VudCB0aGUgc3BlbmRlciBtYXkgdHJhbnNmZXIgb24gYmVoYWxmIG9mIHRoZSBvd25lclxuICAgKi9cbiAgdmFsdWUhOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IobT86IE1vZGVsQXJnPEFsbG93YW5jZT4pIHtcbiAgICBzdXBlcihtKTtcbiAgfVxufVxuIl19
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibW9kZWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUk7SUFDakYsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3SCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztRQUMxSCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUks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Q1AsSUFBQSxhQUFNLEdBQUU7SUFDUixJQUFBLCtCQUFRLEdBQUU7SUFDVjs7O09BR0c7O0lBRUgsVUFBVSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7Q0FDcEMsRUFBRSxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzNDLFVBQVUsQ0FBQztJQUNQLElBQUEsYUFBTSxHQUFFO0lBQ1IsSUFBQSwrQkFBUSxHQUFFO0lBQ1Y7OztPQUdHOztJQUVILFVBQVUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDO0NBQ3BDLEVBQUUsU0FBUyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN6QyxvQkFBQSxTQUFTLEdBQUcsVUFBVSxDQUFDO0lBQ25CLElBQUEsWUFBSyxFQUFDLGtCQUFrQixDQUFDO0lBQ3pCLElBQUEsNEJBQUssR0FBRTtJQUNQLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0NBQzVDLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFFZCwwbVJBQTBtUiIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlY29yYXRlID0gKHRoaXMgJiYgdGhpcy5fX2RlY29yYXRlKSB8fCBmdW5jdGlvbiAoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufTtcbnZhciBfX21ldGFkYXRhID0gKHRoaXMgJiYgdGhpcy5fX21ldGFkYXRhKSB8fCBmdW5jdGlvbiAoaywgdikge1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTtcbn07XG5pbXBvcnQgeyBCYXNlTW9kZWwsIGNvbHVtbiwgcGssIHRhYmxlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBtb2RlbCwgcmVxdWlyZWQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFUkMyMCB0b2tlbiBtZXRhZGF0YSBtb2RlbFxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhbiBFUkMyMCB0b2tlbiBkZWZpbml0aW9uIHdpdGhpbiB0aGUgRmFicmljIEVSQzIwIHNhbXBsZSwgaW5jbHVkaW5nIG5hbWUsIHN5bWJvbCwgZGVjaW1hbHMsIGFuZCB0aGUgb3duaW5nIGlkZW50aXR5LiBVc2VkIHRvIGRlZmluZSB0aGUgdW5pcXVlIHRva2VuIG1hbmFnZWQgYnkgdGhlIGNvbnRyYWN0LlxuICogQHBhcmFtIHtNb2RlbEFyZzxFUkMyMFRva2VuPn0gW21dIC0gT3B0aW9uYWwgcGFydGlhbCBkYXRhIG9yIGFub3RoZXIgaW5zdGFuY2UgdG8gaW5pdGlhbGl6ZSB0aGUgbW9kZWxcbiAqIEByZXR1cm4ge3ZvaWR9XG4gKiBAY2xhc3MgRVJDMjBUb2tlblxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHRva2VuID0gbmV3IEVSQzIwVG9rZW4oeyBuYW1lOiBcIk15VG9rZW5cIiwgc3ltYm9sOiBcIk1US1wiLCBkZWNpbWFsczogMTgsIG93bmVyOiBcIng1MDk6Oi4uLlwiIH0pO1xuICogLy8gUGVyc2lzdCB0aHJvdWdoIGEgcmVwb3NpdG9yeTogYXdhaXQgcmVwby5jcmVhdGUodG9rZW4sIGN0eClcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQXBwXG4gKiAgIHBhcnRpY2lwYW50IFJlcG9cbiAqICAgcGFydGljaXBhbnQgQWRhcHRlclxuICogICBBcHAtPj5SZXBvOiBjcmVhdGUobmV3IEVSQzIwVG9rZW4oey4uLn0pLCBjdHgpXG4gKiAgIFJlcG8tPj5BZGFwdGVyOiBjcmVhdGUodGFibGUsIGlkPW5hbWUsIHJlY29yZCwgZmxhZ3MpXG4gKiAgIEFkYXB0ZXItLT4+UmVwbzogc3RvcmVkXG4gKiAgIFJlcG8tLT4+QXBwOiBtb2RlbFxuICovXG5sZXQgRVJDMjBUb2tlbiA9IGNsYXNzIEVSQzIwVG9rZW4gZXh0ZW5kcyBCYXNlTW9kZWwge1xuICAgIGNvbnN0cnVjdG9yKG0pIHtcbiAgICAgICAgc3VwZXIobSk7XG4gICAgfVxufTtcbl9fZGVjb3JhdGUoW1xuICAgIHBrKHsgdHlwZTogU3RyaW5nIH0pXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRva2VuIHVuaXF1ZSBuYW1lXG4gICAgICogQHN1bW1hcnkgU2VydmVzIGFzIHRoZSBwcmltYXJ5IGtleSBmb3IgdGhlIEVSQzIwIHRva2VuIGRlZmluaXRpb247IHR5cGljYWxseSBhIGh1bWFuLXJlYWRhYmxlIGlkZW50aWZpZXJcbiAgICAgKi9cbiAgICAsXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIEVSQzIwVG9rZW4ucHJvdG90eXBlLCBcIm5hbWVcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIGNvbHVtbigpLFxuICAgIHJlcXVpcmVkKClcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gT3duaW5nIGlkZW50aXR5IG9mIHRoZSB0b2tlblxuICAgICAqIEBzdW1tYXJ5IFguNTA5IHN1YmplY3Qgb3IgTVNQIGlkZW50aXR5IHN0cmluZyB0aGF0IGRlbm90ZXMgd2hvIG93bnMvY29udHJvbHMgdGhlIHRva2VuIGRlZmluaXRpb25cbiAgICAgKi9cbiAgICAsXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIEVSQzIwVG9rZW4ucHJvdG90eXBlLCBcIm93bmVyXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBjb2x1bW4oKSxcbiAgICByZXF1aXJlZCgpXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRva2VuIHN5bWJvbFxuICAgICAqIEBzdW1tYXJ5IFNob3J0IHRpY2tlci1saWtlIHN5bWJvbCB1c2VkIHRvIHJlcHJlc2VudCB0aGUgdG9rZW4gKGUuZy4sIE1USylcbiAgICAgKi9cbiAgICAsXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIEVSQzIwVG9rZW4ucHJvdG90eXBlLCBcInN5bWJvbFwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgY29sdW1uKCksXG4gICAgcmVxdWlyZWQoKVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWNpbWFsIHByZWNpc2lvbiBmb3IgdG9rZW4gYW1vdW50c1xuICAgICAqIEBzdW1tYXJ5IE51bWJlciBvZiBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgc2VwYXJhdG9yIHVzZWQgd2hlbiBmb3JtYXR0aW5nIHRva2VuIGJhbGFuY2VzXG4gICAgICovXG4gICAgLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBOdW1iZXIpXG5dLCBFUkMyMFRva2VuLnByb3RvdHlwZSwgXCJkZWNpbWFsc1wiLCB2b2lkIDApO1xuRVJDMjBUb2tlbiA9IF9fZGVjb3JhdGUoW1xuICAgIHRhYmxlKFwiZXJjMjBfdG9rZW5zXCIpLFxuICAgIG1vZGVsKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtPYmplY3RdKVxuXSwgRVJDMjBUb2tlbik7XG5leHBvcnQgeyBFUkMyMFRva2VuIH07XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFUkMyMCB3YWxsZXQgbW9kZWxcbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgYSBob2xkZXIgYWNjb3VudCBmb3IgYW4gRVJDMjAgdG9rZW4gd2l0aGluIHRoZSBGYWJyaWMgbmV0d29yaywgdHJhY2tpbmcgYmFsYW5jZSBhbmQgdG9rZW4gYXNzb2NpYXRpb24uXG4gKiBAcGFyYW0ge01vZGVsQXJnPEVSQzIwV2FsbGV0Pn0gW21dIC0gT3B0aW9uYWwgcGFydGlhbCBkYXRhIG9yIGFub3RoZXIgaW5zdGFuY2UgdG8gaW5pdGlhbGl6ZSB0aGUgbW9kZWxcbiAqIEByZXR1cm4ge3ZvaWR9XG4gKiBAY2xhc3MgRVJDMjBXYWxsZXRcbiAqIEBleGFtcGxlXG4gKiBjb25zdCB3YWxsZXQgPSBuZXcgRVJDMjBXYWxsZXQoeyBpZDogXCJhY2N0MVwiLCB0b2tlbjogXCJNeVRva2VuXCIsIGJhbGFuY2U6IDEwMDAgfSk7XG4gKiAvLyBVcGRhdGUgYmFsYW5jZSB2aWEgcmVwb3NpdG9yeTogYXdhaXQgcmVwby51cGRhdGUod2FsbGV0LCBjdHgpXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEFwcFxuICogICBwYXJ0aWNpcGFudCBSZXBvXG4gKiAgIEFwcC0+PlJlcG86IHJlYWQoXCJhY2N0MVwiLCBjdHgpXG4gKiAgIFJlcG8tLT4+QXBwOiBFUkMyMFdhbGxldFxuICovXG5sZXQgRVJDMjBXYWxsZXQgPSBjbGFzcyBFUkMyMFdhbGxldCBleHRlbmRzIEJhc2VNb2RlbCB7XG4gICAgY29uc3RydWN0b3IobSkge1xuICAgICAgICBzdXBlcihtKTtcbiAgICB9XG59O1xuX19kZWNvcmF0ZShbXG4gICAgcGsoeyB0eXBlOiBTdHJpbmcgfSlcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2FsbGV0IHVuaXF1ZSBpZGVudGlmaWVyXG4gICAgICogQHN1bW1hcnkgUHJpbWFyeSBrZXkgZm9yIHRoZSB3YWxsZXQ7IGNvbW1vbmx5IHJlZmVyZW5jZXMgYW4gYWNjb3VudCBvciBpZGVudGl0eVxuICAgICAqL1xuICAgICxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgRVJDMjBXYWxsZXQucHJvdG90eXBlLCBcImlkXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBjb2x1bW4oKSxcbiAgICByZXF1aXJlZCgpXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFzc29jaWF0ZWQgdG9rZW4gbmFtZVxuICAgICAqIEBzdW1tYXJ5IFJlZmVyZW5jZXMgdGhlIEVSQzIwVG9rZW4gdGhpcyB3YWxsZXQgaG9sZHM7IG1haW50YWluZWQgYXMgYSByZWxhdGlvbnNoaXAgZm9yIGNhc2NhZGluZyB1cGRhdGVzL2RlbGV0ZXNcbiAgICAgKi9cbiAgICAsXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIEVSQzIwV2FsbGV0LnByb3RvdHlwZSwgXCJ0b2tlblwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgY29sdW1uKCksXG4gICAgcmVxdWlyZWQoKVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUb2tlbiBiYWxhbmNlIGZvciB0aGlzIHdhbGxldFxuICAgICAqIEBzdW1tYXJ5IEN1cnJlbnQgYW1vdW50IG9mIHRoZSBhc3NvY2lhdGVkIHRva2VuIGhlbGQgYnkgdGhpcyB3YWxsZXRcbiAgICAgKi9cbiAgICAsXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIE51bWJlcilcbl0sIEVSQzIwV2FsbGV0LnByb3RvdHlwZSwgXCJiYWxhbmNlXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBjb2x1bW4oKVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDYXB0aXZlIGZsYWcgb3IgaWRlbnRpZmllclxuICAgICAqIEBzdW1tYXJ5IE9wdGlvbmFsIGZpZWxkIHVzZWQgYnkgc29tZSBmbG93cyB0byBtYXJrIG5vbi10cmFuc2ZlcmFibGUgZnVuZHMgb3IgbWFuYWdlZCBjdXN0b2R5XG4gICAgICovXG4gICAgLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBFUkMyMFdhbGxldC5wcm90b3R5cGUsIFwiY2FwdGl2ZVwiLCB2b2lkIDApO1xuRVJDMjBXYWxsZXQgPSBfX2RlY29yYXRlKFtcbiAgICB0YWJsZShcImVyYzIwX3dhbGxldHNcIiksXG4gICAgbW9kZWwoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW09iamVjdF0pXG5dLCBFUkMyMFdhbGxldCk7XG5leHBvcnQgeyBFUkMyMFdhbGxldCB9O1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gRVJDMjAgYWxsb3dhbmNlIG1vZGVsXG4gKiBAc3VtbWFyeSBDYXB0dXJlcyBhbiBhcHByb3ZhbCByZWxhdGlvbnNoaXAgd2hlcmUgYW4gb3duZXIgYWxsb3dzIGEgc3BlbmRlciB0byB0cmFuc2ZlciB1cCB0byBhIGNlcnRhaW4gdmFsdWUgZnJvbSB0aGUgb3duZXIncyB3YWxsZXQuXG4gKiBAcGFyYW0ge01vZGVsQXJnPEFsbG93YW5jZT59IFttXSAtIE9wdGlvbmFsIHBhcnRpYWwgZGF0YSBvciBhbm90aGVyIGluc3RhbmNlIHRvIGluaXRpYWxpemUgdGhlIG1vZGVsXG4gKiBAcmV0dXJuIHt2b2lkfVxuICogQGNsYXNzIEFsbG93YW5jZVxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGFsbG93YW5jZSA9IG5ldyBBbGxvd2FuY2UoeyBvd25lcjogXCJhY2N0MVwiLCBzcGVuZGVyOiBcImFjY3QyXCIsIHZhbHVlOiA1MCB9KTtcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQXBwXG4gKiAgIEFwcC0+PkFwcDogbmV3IEFsbG93YW5jZSh7IG93bmVyLCBzcGVuZGVyLCB2YWx1ZSB9KVxuICovXG5sZXQgQWxsb3dhbmNlID0gY2xhc3MgQWxsb3dhbmNlIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgICBjb25zdHJ1Y3RvcihtKSB7XG4gICAgICAgIHN1cGVyKG0pO1xuICAgIH1cbn07XG5fX2RlY29yYXRlKFtcbiAgICBwayh7IHR5cGU6IFN0cmluZyB9KVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBbGxvd2FuY2UgdW5pcXVlIGlkZW50aWZpZXJcbiAgICAgKiBAc3VtbWFyeSBQcmltYXJ5IGtleSBmb3IgdGhlIGFsbG93YW5jZTsgdHlwaWNhbGx5IGEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBhcHByb3ZhbCByZWxhdGlvbnNoaXBcbiAgICAgKi9cbiAgICAsXG4gICAgY29sdW1uKCksXG4gICAgcmVxdWlyZWQoKVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBPd25lciB3YWxsZXQgaWRlbnRpZmllclxuICAgICAqIEBzdW1tYXJ5IFdhbGxldCB0aGF0IGF1dGhvcml6ZXMgdGhlIGFsbG93YW5jZVxuICAgICAqL1xuICAgICxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgQWxsb3dhbmNlLnByb3RvdHlwZSwgXCJvd25lclwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgY29sdW1uKCksXG4gICAgcmVxdWlyZWQoKVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTcGVuZGVyIHdhbGxldCBpZGVudGlmaWVyXG4gICAgICogQHN1bW1hcnkgV2FsbGV0IGFsbG93ZWQgdG8gc3BlbmQgdXAgdG8gdGhlIGFwcHJvdmVkIHZhbHVlIGZyb20gdGhlIG93bmVyXG4gICAgICovXG4gICAgLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBBbGxvd2FuY2UucHJvdG90eXBlLCBcInNwZW5kZXJcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIGNvbHVtbigpLFxuICAgIHJlcXVpcmVkKClcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXBwcm92ZWQgdmFsdWVcbiAgICAgKiBAc3VtbWFyeSBNYXhpbXVtIHRva2VuIGFtb3VudCB0aGUgc3BlbmRlciBtYXkgdHJhbnNmZXIgb24gYmVoYWxmIG9mIHRoZSBvd25lclxuICAgICAqL1xuICAgICxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgTnVtYmVyKVxuXSwgQWxsb3dhbmNlLnByb3RvdHlwZSwgXCJ2YWx1ZVwiLCB2b2lkIDApO1xuQWxsb3dhbmNlID0gX19kZWNvcmF0ZShbXG4gICAgdGFibGUoXCJlcmMyMF9hbGxvd2FuY2VzXCIpLFxuICAgIG1vZGVsKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtPYmplY3RdKVxuXSwgQWxsb3dhbmNlKTtcbmV4cG9ydCB7IEFsbG93YW5jZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYlc5a1pXeHpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dkxpNHZjM0pqTDJOdmJuUnlZV04wY3k5bGNtTXlNQzl0YjJSbGJITXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPMEZCUVVFc1QwRkJUeXhGUVVGRkxGTkJRVk1zUlVGQlJTeE5RVUZOTEVWQlFVVXNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxHZENRVUZuUWl4RFFVRkRPMEZCUXpsRUxFOUJRVThzUlVGQlJTeExRVUZMTEVWQlFXbENMRkZCUVZFc1JVRkJSU3hOUVVGTkxHZERRVUZuUXl4RFFVRkRPMEZCUldoR096czdPenM3T3pzN096czdPenM3T3pzN1IwRnJRa2M3UVVGSFNTeEpRVUZOTEZWQlFWVXNSMEZCYUVJc1RVRkJUU3hWUVVGWExGTkJRVkVzVTBGQlV6dEpRVGhDZGtNc1dVRkJXU3hEUVVGNVFqdFJRVU51UXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFdDeERRVUZETzBOQlEwWXNRMEZCUVR0QlFUTkNRenRKUVV4RExFVkJRVVVzUTBGQlF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJRenRKUVVOeVFqczdPMDlCUjBjN096dDNRMEZEVnp0QlFWRmtPMGxCVGtNc1RVRkJUU3hGUVVGRk8wbEJRMUlzVVVGQlVTeEZRVUZGTzBsQlExZzdPenRQUVVkSE96czdlVU5CUTFrN1FVRlBaanRKUVU1RExFMUJRVTBzUlVGQlJUdEpRVU5TTEZGQlFWRXNSVUZCUlR0SlFVTllPenM3VDBGSFJ6czdPekJEUVVOaE8wRkJUMmhDTzBsQlRrTXNUVUZCVFN4RlFVRkZPMGxCUTFJc1VVRkJVU3hGUVVGRk8wbEJRMWc3T3p0UFFVZEhPenM3TkVOQlEyVTdRVUUxUWxBc1ZVRkJWVHRKUVVaMFFpeExRVUZMTEVOQlFVTXNZMEZCWXl4RFFVRkRPMGxCUTNKQ0xFdEJRVXNzUlVGQlJUczdSMEZEU3l4VlFVRlZMRU5CYVVOMFFqczdRVUZGUkRzN096czdPenM3T3pzN096czdPMGRCWlVjN1FVRkhTU3hKUVVGTkxGZEJRVmNzUjBGQmFrSXNUVUZCVFN4WFFVRlpMRk5CUVZFc1UwRkJVenRKUVN0Q2VFTXNXVUZCV1N4RFFVRjVRanRSUVVOdVF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRXQ3hEUVVGRE8wTkJRMFlzUTBGQlFUdEJRVFZDUXp0SlFVeERMRVZCUVVVc1EwRkJReXhGUVVGRkxFbEJRVWtzUlVGQlJTeE5RVUZOTEVWQlFVVXNRMEZCUXp0SlFVTnlRanM3TzA5QlIwYzdPenQxUTBGRFV6dEJRVkZhTzBsQlRrTXNUVUZCVFN4RlFVRkZPMGxCUTFJc1VVRkJVU3hGUVVGRk8wbEJRMWc3T3p0UFFVZEhPenM3TUVOQlExazdRVUZSWmp0SlFVNURMRTFCUVUwc1JVRkJSVHRKUVVOU0xGRkJRVkVzUlVGQlJUdEpRVU5ZT3pzN1QwRkhSenM3T3pSRFFVTmpPMEZCVDJwQ08wbEJURU1zVFVGQlRTeEZRVUZGTzBsQlExUTdPenRQUVVkSE96czdORU5CUTJNN1FVRTNRazRzVjBGQlZ6dEpRVVoyUWl4TFFVRkxMRU5CUVVNc1pVRkJaU3hEUVVGRE8wbEJRM1JDTEV0QlFVc3NSVUZCUlRzN1IwRkRTeXhYUVVGWExFTkJhME4yUWpzN1FVRkZSRHM3T3pzN096czdPenM3TzBkQldVYzdRVUZIU1N4SlFVRk5MRk5CUVZNc1IwRkJaaXhOUVVGTkxGTkJRVlVzVTBGQlVTeFRRVUZUTzBsQk9FSjBReXhaUVVGWkxFTkJRWFZDTzFGQlEycERMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5ZTEVOQlFVTTdRMEZEUml4RFFVRkJPMEZCY2tKRE8wbEJXRU1zUlVGQlJTeERRVUZETEVWQlFVVXNTVUZCU1N4RlFVRkZMRTFCUVUwc1JVRkJSU3hEUVVGRE8wbEJRM0pDT3pzN1QwRkhSenM3U1VGRFJpeE5RVUZOTEVWQlFVVTdTVUZEVWl4UlFVRlJMRVZCUVVVN1NVRkRXRHM3TzA5QlIwYzdPenQzUTBGRFdUdEJRVkZtTzBsQlRrTXNUVUZCVFN4RlFVRkZPMGxCUTFJc1VVRkJVU3hGUVVGRk8wbEJRMWc3T3p0UFFVZEhPenM3TUVOQlEyTTdRVUZSYWtJN1NVRk9ReXhOUVVGTkxFVkJRVVU3U1VGRFVpeFJRVUZSTEVWQlFVVTdTVUZEV0RzN08wOUJSMGM3T3p0M1EwRkRXVHRCUVRWQ1NpeFRRVUZUTzBsQlJuSkNMRXRCUVVzc1EwRkJReXhyUWtGQmEwSXNRMEZCUXp0SlFVTjZRaXhMUVVGTExFVkJRVVU3TzBkQlEwc3NVMEZCVXl4RFFXbERja0lpTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZXlCQ1lYTmxUVzlrWld3c0lHTnZiSFZ0Yml3Z2NHc3NJSFJoWW14bElIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5QnRiMlJsYkN3Z2RIbHdaU0JOYjJSbGJFRnlaeXdnY21WeGRXbHlaV1FnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJ2Y2kxMllXeHBaR0YwYVc5dVhDSTdYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFVlNRekl3SUhSdmEyVnVJRzFsZEdGa1lYUmhJRzF2WkdWc1hHNGdLaUJBYzNWdGJXRnllU0JTWlhCeVpYTmxiblJ6SUdGdUlFVlNRekl3SUhSdmEyVnVJR1JsWm1sdWFYUnBiMjRnZDJsMGFHbHVJSFJvWlNCR1lXSnlhV01nUlZKRE1qQWdjMkZ0Y0d4bExDQnBibU5zZFdScGJtY2dibUZ0WlN3Z2MzbHRZbTlzTENCa1pXTnBiV0ZzY3l3Z1lXNWtJSFJvWlNCdmQyNXBibWNnYVdSbGJuUnBkSGt1SUZWelpXUWdkRzhnWkdWbWFXNWxJSFJvWlNCMWJtbHhkV1VnZEc5clpXNGdiV0Z1WVdkbFpDQmllU0IwYUdVZ1kyOXVkSEpoWTNRdVhHNGdLaUJBY0dGeVlXMGdlMDF2WkdWc1FYSm5QRVZTUXpJd1ZHOXJaVzQrZlNCYmJWMGdMU0JQY0hScGIyNWhiQ0J3WVhKMGFXRnNJR1JoZEdFZ2IzSWdZVzV2ZEdobGNpQnBibk4wWVc1alpTQjBieUJwYm1sMGFXRnNhWHBsSUhSb1pTQnRiMlJsYkZ4dUlDb2dRSEpsZEhWeWJpQjdkbTlwWkgxY2JpQXFJRUJqYkdGemN5QkZVa015TUZSdmEyVnVYRzRnS2lCQVpYaGhiWEJzWlZ4dUlDb2dZMjl1YzNRZ2RHOXJaVzRnUFNCdVpYY2dSVkpETWpCVWIydGxiaWg3SUc1aGJXVTZJRndpVFhsVWIydGxibHdpTENCemVXMWliMnc2SUZ3aVRWUkxYQ0lzSUdSbFkybHRZV3h6T2lBeE9Dd2diM2R1WlhJNklGd2llRFV3T1RvNkxpNHVYQ0lnZlNrN1hHNGdLaUF2THlCUVpYSnphWE4wSUhSb2NtOTFaMmdnWVNCeVpYQnZjMmwwYjNKNU9pQmhkMkZwZENCeVpYQnZMbU55WldGMFpTaDBiMnRsYml3Z1kzUjRLVnh1SUNvZ1FHMWxjbTFoYVdSY2JpQXFJSE5sY1hWbGJtTmxSR2xoWjNKaGJWeHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQkJjSEJjYmlBcUlDQWdjR0Z5ZEdsamFYQmhiblFnVW1Wd2IxeHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQkJaR0Z3ZEdWeVhHNGdLaUFnSUVGd2NDMCtQbEpsY0c4NklHTnlaV0YwWlNodVpYY2dSVkpETWpCVWIydGxiaWg3TGk0dWZTa3NJR04wZUNsY2JpQXFJQ0FnVW1Wd2J5MCtQa0ZrWVhCMFpYSTZJR055WldGMFpTaDBZV0pzWlN3Z2FXUTlibUZ0WlN3Z2NtVmpiM0prTENCbWJHRm5jeWxjYmlBcUlDQWdRV1JoY0hSbGNpMHRQajVTWlhCdk9pQnpkRzl5WldSY2JpQXFJQ0FnVW1Wd2J5MHRQajVCY0hBNklHMXZaR1ZzWEc0Z0tpOWNia0IwWVdKc1pTaGNJbVZ5WXpJd1gzUnZhMlZ1YzF3aUtWeHVRRzF2WkdWc0tDbGNibVY0Y0c5eWRDQmpiR0Z6Y3lCRlVrTXlNRlJ2YTJWdUlHVjRkR1Z1WkhNZ1FtRnpaVTF2WkdWc0lIdGNiaUFnUUhCcktIc2dkSGx3WlRvZ1UzUnlhVzVuSUgwcFhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1ZHOXJaVzRnZFc1cGNYVmxJRzVoYldWY2JpQWdJQ29nUUhOMWJXMWhjbmtnVTJWeWRtVnpJR0Z6SUhSb1pTQndjbWx0WVhKNUlHdGxlU0JtYjNJZ2RHaGxJRVZTUXpJd0lIUnZhMlZ1SUdSbFptbHVhWFJwYjI0N0lIUjVjR2xqWVd4c2VTQmhJR2gxYldGdUxYSmxZV1JoWW14bElHbGtaVzUwYVdacFpYSmNiaUFnSUNvdlhHNGdJRzVoYldVaE9pQnpkSEpwYm1jN1hHNWNiaUFnUUdOdmJIVnRiaWdwWEc0Z0lFQnlaWEYxYVhKbFpDZ3BYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdUM2R1YVc1bklHbGtaVzUwYVhSNUlHOW1JSFJvWlNCMGIydGxibHh1SUNBZ0tpQkFjM1Z0YldGeWVTQllMalV3T1NCemRXSnFaV04wSUc5eUlFMVRVQ0JwWkdWdWRHbDBlU0J6ZEhKcGJtY2dkR2hoZENCa1pXNXZkR1Z6SUhkb2J5QnZkMjV6TDJOdmJuUnliMnh6SUhSb1pTQjBiMnRsYmlCa1pXWnBibWwwYVc5dVhHNGdJQ0FxTDF4dUlDQnZkMjVsY2lFNklITjBjbWx1Wnp0Y2JpQWdRR052YkhWdGJpZ3BYRzRnSUVCeVpYRjFhWEpsWkNncFhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1ZHOXJaVzRnYzNsdFltOXNYRzRnSUNBcUlFQnpkVzF0WVhKNUlGTm9iM0owSUhScFkydGxjaTFzYVd0bElITjViV0p2YkNCMWMyVmtJSFJ2SUhKbGNISmxjMlZ1ZENCMGFHVWdkRzlyWlc0Z0tHVXVaeTRzSUUxVVN5bGNiaUFnSUNvdlhHNGdJSE41YldKdmJDRTZJSE4wY21sdVp6dGNiaUFnUUdOdmJIVnRiaWdwWEc0Z0lFQnlaWEYxYVhKbFpDZ3BYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSR1ZqYVcxaGJDQndjbVZqYVhOcGIyNGdabTl5SUhSdmEyVnVJR0Z0YjNWdWRITmNiaUFnSUNvZ1FITjFiVzFoY25rZ1RuVnRZbVZ5SUc5bUlHUnBaMmwwY3lCaFpuUmxjaUIwYUdVZ1pHVmphVzFoYkNCelpYQmhjbUYwYjNJZ2RYTmxaQ0IzYUdWdUlHWnZjbTFoZEhScGJtY2dkRzlyWlc0Z1ltRnNZVzVqWlhOY2JpQWdJQ292WEc0Z0lHUmxZMmx0WVd4eklUb2diblZ0WW1WeU8xeHVYRzRnSUdOdmJuTjBjblZqZEc5eUtHMC9PaUJOYjJSbGJFRnlaenhGVWtNeU1GZGhiR3hsZEQ0cElIdGNiaUFnSUNCemRYQmxjaWh0S1R0Y2JpQWdmVnh1ZlZ4dVhHNHZLaXBjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJGVWtNeU1DQjNZV3hzWlhRZ2JXOWtaV3hjYmlBcUlFQnpkVzF0WVhKNUlGSmxjSEpsYzJWdWRITWdZU0JvYjJ4a1pYSWdZV05qYjNWdWRDQm1iM0lnWVc0Z1JWSkRNakFnZEc5clpXNGdkMmwwYUdsdUlIUm9aU0JHWVdKeWFXTWdibVYwZDI5eWF5d2dkSEpoWTJ0cGJtY2dZbUZzWVc1alpTQmhibVFnZEc5clpXNGdZWE56YjJOcFlYUnBiMjR1WEc0Z0tpQkFjR0Z5WVcwZ2UwMXZaR1ZzUVhKblBFVlNRekl3VjJGc2JHVjBQbjBnVzIxZElDMGdUM0IwYVc5dVlXd2djR0Z5ZEdsaGJDQmtZWFJoSUc5eUlHRnViM1JvWlhJZ2FXNXpkR0Z1WTJVZ2RHOGdhVzVwZEdsaGJHbDZaU0IwYUdVZ2JXOWtaV3hjYmlBcUlFQnlaWFIxY200Z2UzWnZhV1I5WEc0Z0tpQkFZMnhoYzNNZ1JWSkRNakJYWVd4c1pYUmNiaUFxSUVCbGVHRnRjR3hsWEc0Z0tpQmpiMjV6ZENCM1lXeHNaWFFnUFNCdVpYY2dSVkpETWpCWFlXeHNaWFFvZXlCcFpEb2dYQ0poWTJOME1Wd2lMQ0IwYjJ0bGJqb2dYQ0pOZVZSdmEyVnVYQ0lzSUdKaGJHRnVZMlU2SURFd01EQWdmU2s3WEc0Z0tpQXZMeUJWY0dSaGRHVWdZbUZzWVc1alpTQjJhV0VnY21Wd2IzTnBkRzl5ZVRvZ1lYZGhhWFFnY21Wd2J5NTFjR1JoZEdVb2QyRnNiR1YwTENCamRIZ3BYRzRnS2lCQWJXVnliV0ZwWkZ4dUlDb2djMlZ4ZFdWdVkyVkVhV0ZuY21GdFhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElFRndjRnh1SUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JTWlhCdlhHNGdLaUFnSUVGd2NDMCtQbEpsY0c4NklISmxZV1FvWENKaFkyTjBNVndpTENCamRIZ3BYRzRnS2lBZ0lGSmxjRzh0TFQ0K1FYQndPaUJGVWtNeU1GZGhiR3hsZEZ4dUlDb3ZYRzVBZEdGaWJHVW9YQ0psY21NeU1GOTNZV3hzWlhSelhDSXBYRzVBYlc5a1pXd29LVnh1Wlhod2IzSjBJR05zWVhOeklFVlNRekl3VjJGc2JHVjBJR1Y0ZEdWdVpITWdRbUZ6WlUxdlpHVnNJSHRjYmlBZ1FIQnJLSHNnZEhsd1pUb2dVM1J5YVc1bklIMHBYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdWMkZzYkdWMElIVnVhWEYxWlNCcFpHVnVkR2xtYVdWeVhHNGdJQ0FxSUVCemRXMXRZWEo1SUZCeWFXMWhjbmtnYTJWNUlHWnZjaUIwYUdVZ2QyRnNiR1YwT3lCamIyMXRiMjVzZVNCeVpXWmxjbVZ1WTJWeklHRnVJR0ZqWTI5MWJuUWdiM0lnYVdSbGJuUnBkSGxjYmlBZ0lDb3ZYRzRnSUdsa0lUb2djM1J5YVc1bk8xeHVYRzRnSUVCamIyeDFiVzRvS1Z4dUlDQkFjbVZ4ZFdseVpXUW9LVnh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRUZ6YzI5amFXRjBaV1FnZEc5clpXNGdibUZ0WlZ4dUlDQWdLaUJBYzNWdGJXRnllU0JTWldabGNtVnVZMlZ6SUhSb1pTQkZVa015TUZSdmEyVnVJSFJvYVhNZ2QyRnNiR1YwSUdodmJHUnpPeUJ0WVdsdWRHRnBibVZrSUdGeklHRWdjbVZzWVhScGIyNXphR2x3SUdadmNpQmpZWE5qWVdScGJtY2dkWEJrWVhSbGN5OWtaV3hsZEdWelhHNGdJQ0FxTDF4dUlDQjBiMnRsYmlFNklITjBjbWx1Wnp0Y2JseHVJQ0JBWTI5c2RXMXVLQ2xjYmlBZ1FISmxjWFZwY21Wa0tDbGNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQlViMnRsYmlCaVlXeGhibU5sSUdadmNpQjBhR2x6SUhkaGJHeGxkRnh1SUNBZ0tpQkFjM1Z0YldGeWVTQkRkWEp5Wlc1MElHRnRiM1Z1ZENCdlppQjBhR1VnWVhOemIyTnBZWFJsWkNCMGIydGxiaUJvWld4a0lHSjVJSFJvYVhNZ2QyRnNiR1YwWEc0Z0lDQXFMMXh1SUNCaVlXeGhibU5sSVRvZ2JuVnRZbVZ5TzF4dVhHNGdJRUJqYjJ4MWJXNG9LVnh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRU5oY0hScGRtVWdabXhoWnlCdmNpQnBaR1Z1ZEdsbWFXVnlYRzRnSUNBcUlFQnpkVzF0WVhKNUlFOXdkR2x2Ym1Gc0lHWnBaV3hrSUhWelpXUWdZbmtnYzI5dFpTQm1iRzkzY3lCMGJ5QnRZWEpySUc1dmJpMTBjbUZ1YzJabGNtRmliR1VnWm5WdVpITWdiM0lnYldGdVlXZGxaQ0JqZFhOMGIyUjVYRzRnSUNBcUwxeHVJQ0JqWVhCMGFYWmxJVG9nYzNSeWFXNW5PMXh1WEc0Z0lHTnZibk4wY25WamRHOXlLRzAvT2lCTmIyUmxiRUZ5Wnp4RlVrTXlNRmRoYkd4bGRENHBJSHRjYmlBZ0lDQnpkWEJsY2lodEtUdGNiaUFnZlZ4dWZWeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCRlVrTXlNQ0JoYkd4dmQyRnVZMlVnYlc5a1pXeGNiaUFxSUVCemRXMXRZWEo1SUVOaGNIUjFjbVZ6SUdGdUlHRndjSEp2ZG1Gc0lISmxiR0YwYVc5dWMyaHBjQ0IzYUdWeVpTQmhiaUJ2ZDI1bGNpQmhiR3h2ZDNNZ1lTQnpjR1Z1WkdWeUlIUnZJSFJ5WVc1elptVnlJSFZ3SUhSdklHRWdZMlZ5ZEdGcGJpQjJZV3gxWlNCbWNtOXRJSFJvWlNCdmQyNWxjaWR6SUhkaGJHeGxkQzVjYmlBcUlFQndZWEpoYlNCN1RXOWtaV3hCY21jOFFXeHNiM2RoYm1ObFBuMGdXMjFkSUMwZ1QzQjBhVzl1WVd3Z2NHRnlkR2xoYkNCa1lYUmhJRzl5SUdGdWIzUm9aWElnYVc1emRHRnVZMlVnZEc4Z2FXNXBkR2xoYkdsNlpTQjBhR1VnYlc5a1pXeGNiaUFxSUVCeVpYUjFjbTRnZTNadmFXUjlYRzRnS2lCQVkyeGhjM01nUVd4c2IzZGhibU5sWEc0Z0tpQkFaWGhoYlhCc1pWeHVJQ29nWTI5dWMzUWdZV3hzYjNkaGJtTmxJRDBnYm1WM0lFRnNiRzkzWVc1alpTaDdJRzkzYm1WeU9pQmNJbUZqWTNReFhDSXNJSE53Wlc1a1pYSTZJRndpWVdOamRESmNJaXdnZG1Gc2RXVTZJRFV3SUgwcE8xeHVJQ29nUUcxbGNtMWhhV1JjYmlBcUlITmxjWFZsYm1ObFJHbGhaM0poYlZ4dUlDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCQmNIQmNiaUFxSUNBZ1FYQndMVDQrUVhCd09pQnVaWGNnUVd4c2IzZGhibU5sS0hzZ2IzZHVaWElzSUhOd1pXNWtaWElzSUhaaGJIVmxJSDBwWEc0Z0tpOWNia0IwWVdKc1pTaGNJbVZ5WXpJd1gyRnNiRzkzWVc1alpYTmNJaWxjYmtCdGIyUmxiQ2dwWEc1bGVIQnZjblFnWTJ4aGMzTWdRV3hzYjNkaGJtTmxJR1Y0ZEdWdVpITWdRbUZ6WlUxdlpHVnNJSHRjYmlBZ1FIQnJLSHNnZEhsd1pUb2dVM1J5YVc1bklIMHBYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdRV3hzYjNkaGJtTmxJSFZ1YVhGMVpTQnBaR1Z1ZEdsbWFXVnlYRzRnSUNBcUlFQnpkVzF0WVhKNUlGQnlhVzFoY25rZ2EyVjVJR1p2Y2lCMGFHVWdZV3hzYjNkaGJtTmxPeUIwZVhCcFkyRnNiSGtnWVNCMWJtbHhkV1VnYVdSbGJuUnBabWxsY2lCbWIzSWdkR2hsSUdGd2NISnZkbUZzSUhKbGJHRjBhVzl1YzJocGNGeHVJQ0FnS2k5Y2JpQWdRR052YkhWdGJpZ3BYRzRnSUVCeVpYRjFhWEpsWkNncFhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1QzZHVaWElnZDJGc2JHVjBJR2xrWlc1MGFXWnBaWEpjYmlBZ0lDb2dRSE4xYlcxaGNua2dWMkZzYkdWMElIUm9ZWFFnWVhWMGFHOXlhWHBsY3lCMGFHVWdZV3hzYjNkaGJtTmxYRzRnSUNBcUwxeHVJQ0J2ZDI1bGNpRTZJSE4wY21sdVp6dGNibHh1SUNCQVkyOXNkVzF1S0NsY2JpQWdRSEpsY1hWcGNtVmtLQ2xjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJUY0dWdVpHVnlJSGRoYkd4bGRDQnBaR1Z1ZEdsbWFXVnlYRzRnSUNBcUlFQnpkVzF0WVhKNUlGZGhiR3hsZENCaGJHeHZkMlZrSUhSdklITndaVzVrSUhWd0lIUnZJSFJvWlNCaGNIQnliM1psWkNCMllXeDFaU0JtY205dElIUm9aU0J2ZDI1bGNseHVJQ0FnS2k5Y2JpQWdjM0JsYm1SbGNpRTZJSE4wY21sdVp6dGNibHh1SUNCQVkyOXNkVzF1S0NsY2JpQWdRSEpsY1hWcGNtVmtLQ2xjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJCY0hCeWIzWmxaQ0IyWVd4MVpWeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCTllYaHBiWFZ0SUhSdmEyVnVJR0Z0YjNWdWRDQjBhR1VnYzNCbGJtUmxjaUJ0WVhrZ2RISmhibk5tWlhJZ2IyNGdZbVZvWVd4bUlHOW1JSFJvWlNCdmQyNWxjbHh1SUNBZ0tpOWNiaUFnZG1Gc2RXVWhPaUJ1ZFcxaVpYSTdYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9iVDg2SUUxdlpHVnNRWEpuUEVGc2JHOTNZVzVqWlQ0cElIdGNiaUFnSUNCemRYQmxjaWh0S1R0Y2JpQWdmVnh1ZlZ4dUlsMTkiXX0=
214
+ //# sourceMappingURL=models.js.map
215
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["models.js"],"names":[],"mappings":"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"}