@decaf-ts/for-fabric 0.12.10 → 0.13.0

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 (611) hide show
  1. package/dist/for-fabric.cjs +2 -3804
  2. package/dist/for-fabric.cjs.map +1 -0
  3. package/dist/for-fabric.js +2 -3908
  4. package/dist/for-fabric.js.map +1 -0
  5. package/lib/cjs/bin/cli.cjs +2 -2
  6. package/lib/cjs/bin/cli.cjs.map +1 -0
  7. package/lib/cjs/cli-module.cjs +2 -2
  8. package/lib/cjs/cli-module.cjs.map +1 -0
  9. package/lib/cjs/cli-utils.cjs +2 -2
  10. package/lib/cjs/cli-utils.cjs.map +1 -0
  11. package/lib/cjs/client/FabricClientAdapter.cjs +136 -65
  12. package/lib/cjs/client/FabricClientAdapter.cjs.map +1 -0
  13. package/lib/cjs/client/FabricClientContext.cjs +30 -0
  14. package/lib/cjs/client/FabricClientContext.cjs.map +1 -0
  15. package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
  16. package/lib/cjs/client/FabricClientDispatch.cjs.map +1 -0
  17. package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
  18. package/lib/cjs/client/FabricClientPaginator.cjs.map +1 -0
  19. package/lib/cjs/client/FabricClientRepository.cjs +3 -3
  20. package/lib/cjs/client/FabricClientRepository.cjs.map +1 -0
  21. package/lib/cjs/client/FabricClientStatement.cjs +5 -4
  22. package/lib/cjs/client/FabricClientStatement.cjs.map +1 -0
  23. package/lib/cjs/client/collections/generation.cjs +2 -2
  24. package/lib/cjs/client/collections/generation.cjs.map +1 -0
  25. package/lib/cjs/client/collections/index.cjs +2 -2
  26. package/lib/cjs/client/collections/index.cjs.map +1 -0
  27. package/lib/cjs/client/constants.cjs +3 -2
  28. package/lib/cjs/client/constants.cjs.map +1 -0
  29. package/lib/cjs/client/crypto.cjs +2 -2
  30. package/lib/cjs/client/crypto.cjs.map +1 -0
  31. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
  32. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +1 -0
  33. package/lib/cjs/client/erc20/index.cjs +2 -2
  34. package/lib/cjs/client/erc20/index.cjs.map +1 -0
  35. package/lib/cjs/client/fabric-fs.cjs +2 -2
  36. package/lib/cjs/client/fabric-fs.cjs.map +1 -0
  37. package/lib/cjs/client/fabric-hsm.cjs +2 -2
  38. package/lib/cjs/client/fabric-hsm.cjs.map +1 -0
  39. package/lib/cjs/client/ids/id-extraction.cjs +2 -2
  40. package/lib/cjs/client/ids/id-extraction.cjs.map +1 -0
  41. package/lib/cjs/client/ids/index.cjs +2 -2
  42. package/lib/cjs/client/ids/index.cjs.map +1 -0
  43. package/lib/cjs/client/index.cjs +3 -2
  44. package/lib/cjs/client/index.cjs.map +1 -0
  45. package/lib/cjs/client/indexes/generation.cjs +3 -15
  46. package/lib/cjs/client/indexes/generation.cjs.map +1 -0
  47. package/lib/cjs/client/indexes/index.cjs +2 -2
  48. package/lib/cjs/client/indexes/index.cjs.map +1 -0
  49. package/lib/cjs/client/logging.cjs +2 -2
  50. package/lib/cjs/client/logging.cjs.map +1 -0
  51. package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
  52. package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +1 -0
  53. package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
  54. package/lib/cjs/client/services/FabricIdentityService.cjs.map +1 -0
  55. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
  56. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +1 -0
  57. package/lib/cjs/client/services/constants.cjs +2 -2
  58. package/lib/cjs/client/services/constants.cjs.map +1 -0
  59. package/lib/cjs/client/services/index.cjs +2 -2
  60. package/lib/cjs/client/services/index.cjs.map +1 -0
  61. package/lib/cjs/client/types.cjs +2 -2
  62. package/lib/cjs/client/types.cjs.map +1 -0
  63. package/lib/cjs/client/utils.cjs +2 -2
  64. package/lib/cjs/client/utils.cjs.map +1 -0
  65. package/lib/cjs/contract/Address.cjs +2 -2
  66. package/lib/cjs/contract/Address.cjs.map +1 -0
  67. package/lib/cjs/contract/AddressContract.cjs +2 -2
  68. package/lib/cjs/contract/AddressContract.cjs.map +1 -0
  69. package/lib/cjs/contract/AuditContract.cjs +2 -2
  70. package/lib/cjs/contract/AuditContract.cjs.map +1 -0
  71. package/lib/cjs/contract/BatchContract.cjs +2 -2
  72. package/lib/cjs/contract/BatchContract.cjs.map +1 -0
  73. package/lib/cjs/contract/MarketContract.cjs +2 -2
  74. package/lib/cjs/contract/MarketContract.cjs.map +1 -0
  75. package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
  76. package/lib/cjs/contract/OtherAuditContract.cjs.map +1 -0
  77. package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
  78. package/lib/cjs/contract/OtherBatchContract.cjs.map +1 -0
  79. package/lib/cjs/contract/OtherLeafletContract.cjs +2 -2
  80. package/lib/cjs/contract/OtherLeafletContract.cjs.map +1 -0
  81. package/lib/cjs/contract/OtherLeafletFileContract.cjs +2 -2
  82. package/lib/cjs/contract/OtherLeafletFileContract.cjs.map +1 -0
  83. package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
  84. package/lib/cjs/contract/OtherMarketContract.cjs.map +1 -0
  85. package/lib/cjs/contract/OtherProductContract.cjs +2 -2
  86. package/lib/cjs/contract/OtherProductContract.cjs.map +1 -0
  87. package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
  88. package/lib/cjs/contract/OtherProductImageContract.cjs.map +1 -0
  89. package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
  90. package/lib/cjs/contract/OtherProductSharedContract.cjs.map +1 -0
  91. package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
  92. package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +1 -0
  93. package/lib/cjs/contract/Product.cjs +2 -2
  94. package/lib/cjs/contract/Product.cjs.map +1 -0
  95. package/lib/cjs/contract/ProductContract.cjs +2 -2
  96. package/lib/cjs/contract/ProductContract.cjs.map +1 -0
  97. package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
  98. package/lib/cjs/contract/ProductStrengthContract.cjs.map +1 -0
  99. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
  100. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +1 -0
  101. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
  102. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +1 -0
  103. package/lib/cjs/contract/User.cjs +2 -2
  104. package/lib/cjs/contract/User.cjs.map +1 -0
  105. package/lib/cjs/contract/UserContract.cjs +2 -2
  106. package/lib/cjs/contract/UserContract.cjs.map +1 -0
  107. package/lib/cjs/contract/index.cjs +2 -2
  108. package/lib/cjs/contract/index.cjs.map +1 -0
  109. package/lib/cjs/contract/logging-context.cjs +2 -2
  110. package/lib/cjs/contract/logging-context.cjs.map +1 -0
  111. package/lib/cjs/contract/models/Audit.cjs +3 -5
  112. package/lib/cjs/contract/models/Audit.cjs.map +1 -0
  113. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
  114. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +1 -0
  115. package/lib/cjs/contract/models/BaseModel.cjs +2 -2
  116. package/lib/cjs/contract/models/BaseModel.cjs.map +1 -0
  117. package/lib/cjs/contract/models/Batch.cjs +2 -2
  118. package/lib/cjs/contract/models/Batch.cjs.map +1 -0
  119. package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
  120. package/lib/cjs/contract/models/GtinOwner.cjs.map +1 -0
  121. package/lib/cjs/contract/models/History.cjs +4 -78
  122. package/lib/cjs/contract/models/History.cjs.map +1 -0
  123. package/lib/cjs/contract/models/Leaflet.cjs +2 -2
  124. package/lib/cjs/contract/models/Leaflet.cjs.map +1 -0
  125. package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
  126. package/lib/cjs/contract/models/LeafletFile.cjs.map +1 -0
  127. package/lib/cjs/contract/models/Market.cjs +2 -2
  128. package/lib/cjs/contract/models/Market.cjs.map +1 -0
  129. package/lib/cjs/contract/models/OtherAudit.cjs +2 -2
  130. package/lib/cjs/contract/models/OtherAudit.cjs.map +1 -0
  131. package/lib/cjs/contract/models/OtherBatchShared.cjs +5 -240
  132. package/lib/cjs/contract/models/OtherBatchShared.cjs.map +1 -0
  133. package/lib/cjs/contract/models/OtherLeaflet.cjs +7 -119
  134. package/lib/cjs/contract/models/OtherLeaflet.cjs.map +1 -0
  135. package/lib/cjs/contract/models/OtherLeafletFile.cjs +4 -68
  136. package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +1 -0
  137. package/lib/cjs/contract/models/OtherMarket.cjs +4 -87
  138. package/lib/cjs/contract/models/OtherMarket.cjs.map +1 -0
  139. package/lib/cjs/contract/models/OtherProduct.cjs +4 -80
  140. package/lib/cjs/contract/models/OtherProduct.cjs.map +1 -0
  141. package/lib/cjs/contract/models/OtherProductImage.cjs +4 -62
  142. package/lib/cjs/contract/models/OtherProductImage.cjs.map +1 -0
  143. package/lib/cjs/contract/models/OtherProductShared.cjs +4 -102
  144. package/lib/cjs/contract/models/OtherProductShared.cjs.map +1 -0
  145. package/lib/cjs/contract/models/OtherProductStrength.cjs +4 -88
  146. package/lib/cjs/contract/models/OtherProductStrength.cjs.map +1 -0
  147. package/lib/cjs/contract/models/Product.cjs +2 -2
  148. package/lib/cjs/contract/models/Product.cjs.map +1 -0
  149. package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
  150. package/lib/cjs/contract/models/ProductStrength.cjs.map +1 -0
  151. package/lib/cjs/contract/models/SegregatedDocument.cjs +4 -10
  152. package/lib/cjs/contract/models/SegregatedDocument.cjs.map +1 -0
  153. package/lib/cjs/contract/models/constants.cjs +2 -2
  154. package/lib/cjs/contract/models/constants.cjs.map +1 -0
  155. package/lib/cjs/contract/models/decorators-private.cjs +2 -2
  156. package/lib/cjs/contract/models/decorators-private.cjs.map +1 -0
  157. package/lib/cjs/contract/models/decorators.cjs +2 -5
  158. package/lib/cjs/contract/models/decorators.cjs.map +1 -0
  159. package/lib/cjs/contract/models/gtin.cjs +2 -2
  160. package/lib/cjs/contract/models/gtin.cjs.map +1 -0
  161. package/lib/cjs/contract/models/history-dec.cjs +2 -2
  162. package/lib/cjs/contract/models/history-dec.cjs.map +1 -0
  163. package/lib/cjs/contract/trackedModels/History.cjs +2 -2
  164. package/lib/cjs/contract/trackedModels/History.cjs.map +1 -0
  165. package/lib/cjs/contract/trackedModels/OtherAudit.cjs +2 -2
  166. package/lib/cjs/contract/trackedModels/OtherAudit.cjs.map +1 -0
  167. package/lib/cjs/contract/trackedModels/OtherBatchShared.cjs +129 -0
  168. package/lib/cjs/contract/trackedModels/OtherBatchShared.cjs.map +1 -0
  169. package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs +2 -2
  170. package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs.map +1 -0
  171. package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs +2 -2
  172. package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs.map +1 -0
  173. package/lib/cjs/contract/trackedModels/OtherMarket.cjs +2 -2
  174. package/lib/cjs/contract/trackedModels/OtherMarket.cjs.map +1 -0
  175. package/lib/cjs/contract/trackedModels/OtherProduct.cjs +2 -2
  176. package/lib/cjs/contract/trackedModels/OtherProduct.cjs.map +1 -0
  177. package/lib/cjs/contract/trackedModels/OtherProductImage.cjs +2 -2
  178. package/lib/cjs/contract/trackedModels/OtherProductImage.cjs.map +1 -0
  179. package/lib/cjs/contract/trackedModels/OtherProductShared.cjs +2 -2
  180. package/lib/cjs/contract/trackedModels/OtherProductShared.cjs.map +1 -0
  181. package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs +2 -2
  182. package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs.map +1 -0
  183. package/lib/cjs/contracts/ContractAdapter.cjs +41 -9
  184. package/lib/cjs/contracts/ContractAdapter.cjs.map +1 -0
  185. package/lib/cjs/contracts/ContractContext.cjs +2 -2
  186. package/lib/cjs/contracts/ContractContext.cjs.map +1 -0
  187. package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
  188. package/lib/cjs/contracts/FabricContractDispatch.cjs.map +1 -0
  189. package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
  190. package/lib/cjs/contracts/FabricContractPaginator.cjs.map +1 -0
  191. package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
  192. package/lib/cjs/contracts/FabricContractRepository.cjs.map +1 -0
  193. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
  194. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +1 -0
  195. package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
  196. package/lib/cjs/contracts/FabricContractSequence.cjs.map +1 -0
  197. package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
  198. package/lib/cjs/contracts/FabricContractStatement.cjs.map +1 -0
  199. package/lib/cjs/contracts/MigrationContract.cjs +6 -7
  200. package/lib/cjs/contracts/MigrationContract.cjs.map +1 -0
  201. package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
  202. package/lib/cjs/contracts/PrivateSequence.cjs.map +1 -0
  203. package/lib/cjs/contracts/auth/decorators.cjs +2 -2
  204. package/lib/cjs/contracts/auth/decorators.cjs.map +1 -0
  205. package/lib/cjs/contracts/auth/index.cjs +2 -2
  206. package/lib/cjs/contracts/auth/index.cjs.map +1 -0
  207. package/lib/cjs/contracts/bootstrap.cjs +2 -2
  208. package/lib/cjs/contracts/bootstrap.cjs.map +1 -0
  209. package/lib/cjs/contracts/crud/crud-contract.cjs +27 -23
  210. package/lib/cjs/contracts/crud/crud-contract.cjs.map +1 -0
  211. package/lib/cjs/contracts/crud/index.cjs +2 -2
  212. package/lib/cjs/contracts/crud/index.cjs.map +1 -0
  213. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
  214. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +1 -0
  215. package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
  216. package/lib/cjs/contracts/erc20/erc20contract.cjs.map +1 -0
  217. package/lib/cjs/contracts/erc20/index.cjs +2 -2
  218. package/lib/cjs/contracts/erc20/index.cjs.map +1 -0
  219. package/lib/cjs/contracts/erc20/models.cjs +2 -2
  220. package/lib/cjs/contracts/erc20/models.cjs.map +1 -0
  221. package/lib/cjs/contracts/fabric-overrides.cjs +2 -2
  222. package/lib/cjs/contracts/fabric-overrides.cjs.map +1 -0
  223. package/lib/cjs/contracts/index.cjs +2 -2
  224. package/lib/cjs/contracts/index.cjs.map +1 -0
  225. package/lib/cjs/contracts/logging.cjs +2 -2
  226. package/lib/cjs/contracts/logging.cjs.map +1 -0
  227. package/lib/cjs/contracts/overrides.cjs +2 -2
  228. package/lib/cjs/contracts/overrides.cjs.map +1 -0
  229. package/lib/cjs/contracts/types.cjs +2 -2
  230. package/lib/cjs/contracts/types.cjs.map +1 -0
  231. package/lib/cjs/contracts/uuid.cjs +2 -2
  232. package/lib/cjs/contracts/uuid.cjs.map +1 -0
  233. package/lib/cjs/index.cjs +2 -2
  234. package/lib/cjs/index.cjs.map +1 -0
  235. package/lib/cjs/shared/ClientSerializer.cjs +2 -2
  236. package/lib/cjs/shared/ClientSerializer.cjs.map +1 -0
  237. package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
  238. package/lib/cjs/shared/DeterministicSerializer.cjs.map +1 -0
  239. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
  240. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +1 -0
  241. package/lib/cjs/shared/constants.cjs +6 -2
  242. package/lib/cjs/shared/constants.cjs.map +1 -0
  243. package/lib/cjs/shared/decorators.cjs +24 -3
  244. package/lib/cjs/shared/decorators.cjs.map +1 -0
  245. package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
  246. package/lib/cjs/shared/erc20/erc20-constants.cjs.map +1 -0
  247. package/lib/cjs/shared/erc20/index.cjs +2 -2
  248. package/lib/cjs/shared/erc20/index.cjs.map +1 -0
  249. package/lib/cjs/shared/errors.cjs +2 -2
  250. package/lib/cjs/shared/errors.cjs.map +1 -0
  251. package/lib/cjs/shared/events.cjs +2 -2
  252. package/lib/cjs/shared/events.cjs.map +1 -0
  253. package/lib/cjs/shared/fabric-types.cjs +2 -2
  254. package/lib/cjs/shared/fabric-types.cjs.map +1 -0
  255. package/lib/cjs/shared/index.cjs +2 -2
  256. package/lib/cjs/shared/index.cjs.map +1 -0
  257. package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
  258. package/lib/cjs/shared/interfaces/Checkable.cjs.map +1 -0
  259. package/lib/cjs/shared/interfaces/index.cjs +2 -2
  260. package/lib/cjs/shared/interfaces/index.cjs.map +1 -0
  261. package/lib/cjs/shared/math.cjs +2 -2
  262. package/lib/cjs/shared/math.cjs.map +1 -0
  263. package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
  264. package/lib/cjs/shared/model/FabricBaseModel.cjs.map +1 -0
  265. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
  266. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +1 -0
  267. package/lib/cjs/shared/model/Identity.cjs +2 -2
  268. package/lib/cjs/shared/model/Identity.cjs.map +1 -0
  269. package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
  270. package/lib/cjs/shared/model/IdentityCredentials.cjs.map +1 -0
  271. package/lib/cjs/shared/model/index.cjs +2 -2
  272. package/lib/cjs/shared/model/index.cjs.map +1 -0
  273. package/lib/cjs/shared/overrides/Model.cjs +2 -2
  274. package/lib/cjs/shared/overrides/Model.cjs.map +1 -0
  275. package/lib/cjs/shared/overrides/index.cjs +2 -2
  276. package/lib/cjs/shared/overrides/index.cjs.map +1 -0
  277. package/lib/cjs/shared/overrides/overrides.cjs +36 -2
  278. package/lib/cjs/shared/overrides/overrides.cjs.map +1 -0
  279. package/lib/cjs/shared/types.cjs +2 -2
  280. package/lib/cjs/shared/types.cjs.map +1 -0
  281. package/lib/cjs/version.cjs +4 -4
  282. package/lib/cjs/version.cjs.map +1 -0
  283. package/lib/esm/bin/cli.js +1 -1
  284. package/lib/esm/bin/cli.js.map +1 -0
  285. package/lib/esm/cli-module.js +1 -1
  286. package/lib/esm/cli-module.js.map +1 -0
  287. package/lib/esm/cli-utils.js +1 -1
  288. package/lib/esm/cli-utils.js.map +1 -0
  289. package/lib/esm/client/FabricClientAdapter.js +136 -65
  290. package/lib/esm/client/FabricClientAdapter.js.map +1 -0
  291. package/lib/esm/client/FabricClientContext.js +25 -0
  292. package/lib/esm/client/FabricClientContext.js.map +1 -0
  293. package/lib/esm/client/FabricClientDispatch.js +1 -1
  294. package/lib/esm/client/FabricClientDispatch.js.map +1 -0
  295. package/lib/esm/client/FabricClientPaginator.js +1 -1
  296. package/lib/esm/client/FabricClientPaginator.js.map +1 -0
  297. package/lib/esm/client/FabricClientRepository.js +2 -2
  298. package/lib/esm/client/FabricClientRepository.js.map +1 -0
  299. package/lib/esm/client/FabricClientStatement.js +4 -3
  300. package/lib/esm/client/FabricClientStatement.js.map +1 -0
  301. package/lib/esm/client/collections/generation.js +1 -1
  302. package/lib/esm/client/collections/generation.js.map +1 -0
  303. package/lib/esm/client/collections/index.js +1 -1
  304. package/lib/esm/client/collections/index.js.map +1 -0
  305. package/lib/esm/client/constants.js +2 -1
  306. package/lib/esm/client/constants.js.map +1 -0
  307. package/lib/esm/client/crypto.js +1 -1
  308. package/lib/esm/client/crypto.js.map +1 -0
  309. package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
  310. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -0
  311. package/lib/esm/client/erc20/index.js +1 -1
  312. package/lib/esm/client/erc20/index.js.map +1 -0
  313. package/lib/esm/client/fabric-fs.js +1 -1
  314. package/lib/esm/client/fabric-fs.js.map +1 -0
  315. package/lib/esm/client/fabric-hsm.js +1 -1
  316. package/lib/esm/client/fabric-hsm.js.map +1 -0
  317. package/lib/esm/client/ids/id-extraction.js +1 -1
  318. package/lib/esm/client/ids/id-extraction.js.map +1 -0
  319. package/lib/esm/client/ids/index.js +1 -1
  320. package/lib/esm/client/ids/index.js.map +1 -0
  321. package/lib/esm/client/index.js +2 -1
  322. package/lib/esm/client/index.js.map +1 -0
  323. package/lib/esm/client/indexes/generation.js +2 -14
  324. package/lib/esm/client/indexes/generation.js.map +1 -0
  325. package/lib/esm/client/indexes/index.js +1 -1
  326. package/lib/esm/client/indexes/index.js.map +1 -0
  327. package/lib/esm/client/logging.js +1 -1
  328. package/lib/esm/client/logging.js.map +1 -0
  329. package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
  330. package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -0
  331. package/lib/esm/client/services/FabricIdentityService.js +1 -1
  332. package/lib/esm/client/services/FabricIdentityService.js.map +1 -0
  333. package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
  334. package/lib/esm/client/services/RegistrationRequestBuilder.js.map +1 -0
  335. package/lib/esm/client/services/constants.js +1 -1
  336. package/lib/esm/client/services/constants.js.map +1 -0
  337. package/lib/esm/client/services/index.js +1 -1
  338. package/lib/esm/client/services/index.js.map +1 -0
  339. package/lib/esm/client/types.js +1 -1
  340. package/lib/esm/client/types.js.map +1 -0
  341. package/lib/esm/client/utils.js +1 -1
  342. package/lib/esm/client/utils.js.map +1 -0
  343. package/lib/esm/contract/Address.js +1 -1
  344. package/lib/esm/contract/Address.js.map +1 -0
  345. package/lib/esm/contract/AddressContract.js +1 -1
  346. package/lib/esm/contract/AddressContract.js.map +1 -0
  347. package/lib/esm/contract/AuditContract.js +1 -1
  348. package/lib/esm/contract/AuditContract.js.map +1 -0
  349. package/lib/esm/contract/BatchContract.js +1 -1
  350. package/lib/esm/contract/BatchContract.js.map +1 -0
  351. package/lib/esm/contract/MarketContract.js +1 -1
  352. package/lib/esm/contract/MarketContract.js.map +1 -0
  353. package/lib/esm/contract/OtherAuditContract.js +1 -1
  354. package/lib/esm/contract/OtherAuditContract.js.map +1 -0
  355. package/lib/esm/contract/OtherBatchContract.js +1 -1
  356. package/lib/esm/contract/OtherBatchContract.js.map +1 -0
  357. package/lib/esm/contract/OtherLeafletContract.js +1 -1
  358. package/lib/esm/contract/OtherLeafletContract.js.map +1 -0
  359. package/lib/esm/contract/OtherLeafletFileContract.js +1 -1
  360. package/lib/esm/contract/OtherLeafletFileContract.js.map +1 -0
  361. package/lib/esm/contract/OtherMarketContract.js +1 -1
  362. package/lib/esm/contract/OtherMarketContract.js.map +1 -0
  363. package/lib/esm/contract/OtherProductContract.js +1 -1
  364. package/lib/esm/contract/OtherProductContract.js.map +1 -0
  365. package/lib/esm/contract/OtherProductImageContract.js +1 -1
  366. package/lib/esm/contract/OtherProductImageContract.js.map +1 -0
  367. package/lib/esm/contract/OtherProductSharedContract.js +1 -1
  368. package/lib/esm/contract/OtherProductSharedContract.js.map +1 -0
  369. package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
  370. package/lib/esm/contract/OtherProductStrengthContract.js.map +1 -0
  371. package/lib/esm/contract/Product.js +1 -1
  372. package/lib/esm/contract/Product.js.map +1 -0
  373. package/lib/esm/contract/ProductContract.js +1 -1
  374. package/lib/esm/contract/ProductContract.js.map +1 -0
  375. package/lib/esm/contract/ProductStrengthContract.js +1 -1
  376. package/lib/esm/contract/ProductStrengthContract.js.map +1 -0
  377. package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
  378. package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +1 -0
  379. package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
  380. package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +1 -0
  381. package/lib/esm/contract/User.js +1 -1
  382. package/lib/esm/contract/User.js.map +1 -0
  383. package/lib/esm/contract/UserContract.js +1 -1
  384. package/lib/esm/contract/UserContract.js.map +1 -0
  385. package/lib/esm/contract/index.js +1 -1
  386. package/lib/esm/contract/index.js.map +1 -0
  387. package/lib/esm/contract/logging-context.js +1 -1
  388. package/lib/esm/contract/logging-context.js.map +1 -0
  389. package/lib/esm/contract/models/Audit.js +3 -5
  390. package/lib/esm/contract/models/Audit.js.map +1 -0
  391. package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
  392. package/lib/esm/contract/models/BaseIdentifiedModel.js.map +1 -0
  393. package/lib/esm/contract/models/BaseModel.js +1 -1
  394. package/lib/esm/contract/models/BaseModel.js.map +1 -0
  395. package/lib/esm/contract/models/Batch.js +1 -1
  396. package/lib/esm/contract/models/Batch.js.map +1 -0
  397. package/lib/esm/contract/models/GtinOwner.js +1 -1
  398. package/lib/esm/contract/models/GtinOwner.js.map +1 -0
  399. package/lib/esm/contract/models/History.js +2 -72
  400. package/lib/esm/contract/models/History.js.map +1 -0
  401. package/lib/esm/contract/models/Leaflet.js +1 -1
  402. package/lib/esm/contract/models/Leaflet.js.map +1 -0
  403. package/lib/esm/contract/models/LeafletFile.js +1 -1
  404. package/lib/esm/contract/models/LeafletFile.js.map +1 -0
  405. package/lib/esm/contract/models/Market.js +1 -1
  406. package/lib/esm/contract/models/Market.js.map +1 -0
  407. package/lib/esm/contract/models/OtherAudit.js +1 -1
  408. package/lib/esm/contract/models/OtherAudit.js.map +1 -0
  409. package/lib/esm/contract/models/OtherBatchShared.js +2 -232
  410. package/lib/esm/contract/models/OtherBatchShared.js.map +1 -0
  411. package/lib/esm/contract/models/OtherLeaflet.js +3 -112
  412. package/lib/esm/contract/models/OtherLeaflet.js.map +1 -0
  413. package/lib/esm/contract/models/OtherLeafletFile.js +2 -62
  414. package/lib/esm/contract/models/OtherLeafletFile.js.map +1 -0
  415. package/lib/esm/contract/models/OtherMarket.js +2 -81
  416. package/lib/esm/contract/models/OtherMarket.js.map +1 -0
  417. package/lib/esm/contract/models/OtherProduct.js +2 -74
  418. package/lib/esm/contract/models/OtherProduct.js.map +1 -0
  419. package/lib/esm/contract/models/OtherProductImage.js +2 -56
  420. package/lib/esm/contract/models/OtherProductImage.js.map +1 -0
  421. package/lib/esm/contract/models/OtherProductShared.js +2 -96
  422. package/lib/esm/contract/models/OtherProductShared.js.map +1 -0
  423. package/lib/esm/contract/models/OtherProductStrength.js +2 -82
  424. package/lib/esm/contract/models/OtherProductStrength.js.map +1 -0
  425. package/lib/esm/contract/models/Product.js +1 -1
  426. package/lib/esm/contract/models/Product.js.map +1 -0
  427. package/lib/esm/contract/models/ProductStrength.js +2 -2
  428. package/lib/esm/contract/models/ProductStrength.js.map +1 -0
  429. package/lib/esm/contract/models/SegregatedDocument.js +4 -10
  430. package/lib/esm/contract/models/SegregatedDocument.js.map +1 -0
  431. package/lib/esm/contract/models/constants.js +1 -1
  432. package/lib/esm/contract/models/constants.js.map +1 -0
  433. package/lib/esm/contract/models/decorators-private.js +1 -1
  434. package/lib/esm/contract/models/decorators-private.js.map +1 -0
  435. package/lib/esm/contract/models/decorators.js +1 -4
  436. package/lib/esm/contract/models/decorators.js.map +1 -0
  437. package/lib/esm/contract/models/gtin.js +1 -1
  438. package/lib/esm/contract/models/gtin.js.map +1 -0
  439. package/lib/esm/contract/models/history-dec.js +1 -1
  440. package/lib/esm/contract/models/history-dec.js.map +1 -0
  441. package/lib/esm/contract/trackedModels/History.js +1 -1
  442. package/lib/esm/contract/trackedModels/History.js.map +1 -0
  443. package/lib/esm/contract/trackedModels/OtherAudit.js +1 -1
  444. package/lib/esm/contract/trackedModels/OtherAudit.js.map +1 -0
  445. package/lib/esm/contract/trackedModels/OtherBatchShared.js +120 -0
  446. package/lib/esm/contract/trackedModels/OtherBatchShared.js.map +1 -0
  447. package/lib/esm/contract/trackedModels/OtherLeaflet.js +1 -1
  448. package/lib/esm/contract/trackedModels/OtherLeaflet.js.map +1 -0
  449. package/lib/esm/contract/trackedModels/OtherLeafletFile.js +1 -1
  450. package/lib/esm/contract/trackedModels/OtherLeafletFile.js.map +1 -0
  451. package/lib/esm/contract/trackedModels/OtherMarket.js +1 -1
  452. package/lib/esm/contract/trackedModels/OtherMarket.js.map +1 -0
  453. package/lib/esm/contract/trackedModels/OtherProduct.js +1 -1
  454. package/lib/esm/contract/trackedModels/OtherProduct.js.map +1 -0
  455. package/lib/esm/contract/trackedModels/OtherProductImage.js +1 -1
  456. package/lib/esm/contract/trackedModels/OtherProductImage.js.map +1 -0
  457. package/lib/esm/contract/trackedModels/OtherProductShared.js +1 -1
  458. package/lib/esm/contract/trackedModels/OtherProductShared.js.map +1 -0
  459. package/lib/esm/contract/trackedModels/OtherProductStrength.js +1 -1
  460. package/lib/esm/contract/trackedModels/OtherProductStrength.js.map +1 -0
  461. package/lib/esm/contracts/ContractAdapter.js +41 -9
  462. package/lib/esm/contracts/ContractAdapter.js.map +1 -0
  463. package/lib/esm/contracts/ContractContext.js +1 -1
  464. package/lib/esm/contracts/ContractContext.js.map +1 -0
  465. package/lib/esm/contracts/FabricContractDispatch.js +1 -1
  466. package/lib/esm/contracts/FabricContractDispatch.js.map +1 -0
  467. package/lib/esm/contracts/FabricContractPaginator.js +1 -1
  468. package/lib/esm/contracts/FabricContractPaginator.js.map +1 -0
  469. package/lib/esm/contracts/FabricContractRepository.js +1 -1
  470. package/lib/esm/contracts/FabricContractRepository.js.map +1 -0
  471. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
  472. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
  473. package/lib/esm/contracts/FabricContractSequence.js +1 -1
  474. package/lib/esm/contracts/FabricContractSequence.js.map +1 -0
  475. package/lib/esm/contracts/FabricContractStatement.js +1 -1
  476. package/lib/esm/contracts/FabricContractStatement.js.map +1 -0
  477. package/lib/esm/contracts/MigrationContract.js +5 -6
  478. package/lib/esm/contracts/MigrationContract.js.map +1 -0
  479. package/lib/esm/contracts/PrivateSequence.js +1 -1
  480. package/lib/esm/contracts/PrivateSequence.js.map +1 -0
  481. package/lib/esm/contracts/auth/decorators.js +1 -1
  482. package/lib/esm/contracts/auth/decorators.js.map +1 -0
  483. package/lib/esm/contracts/auth/index.js +1 -1
  484. package/lib/esm/contracts/auth/index.js.map +1 -0
  485. package/lib/esm/contracts/bootstrap.js +1 -1
  486. package/lib/esm/contracts/bootstrap.js.map +1 -0
  487. package/lib/esm/contracts/crud/crud-contract.js +28 -24
  488. package/lib/esm/contracts/crud/crud-contract.js.map +1 -0
  489. package/lib/esm/contracts/crud/index.js +1 -1
  490. package/lib/esm/contracts/crud/index.js.map +1 -0
  491. package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
  492. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -0
  493. package/lib/esm/contracts/erc20/erc20contract.js +1 -1
  494. package/lib/esm/contracts/erc20/erc20contract.js.map +1 -0
  495. package/lib/esm/contracts/erc20/index.js +1 -1
  496. package/lib/esm/contracts/erc20/index.js.map +1 -0
  497. package/lib/esm/contracts/erc20/models.js +1 -1
  498. package/lib/esm/contracts/erc20/models.js.map +1 -0
  499. package/lib/esm/contracts/fabric-overrides.js +1 -1
  500. package/lib/esm/contracts/fabric-overrides.js.map +1 -0
  501. package/lib/esm/contracts/index.js +1 -1
  502. package/lib/esm/contracts/index.js.map +1 -0
  503. package/lib/esm/contracts/logging.js +1 -1
  504. package/lib/esm/contracts/logging.js.map +1 -0
  505. package/lib/esm/contracts/overrides.js +1 -1
  506. package/lib/esm/contracts/overrides.js.map +1 -0
  507. package/lib/esm/contracts/types.js +1 -1
  508. package/lib/esm/contracts/types.js.map +1 -0
  509. package/lib/esm/contracts/uuid.js +1 -1
  510. package/lib/esm/contracts/uuid.js.map +1 -0
  511. package/lib/esm/index.js +1 -1
  512. package/lib/esm/index.js.map +1 -0
  513. package/lib/esm/shared/ClientSerializer.js +1 -1
  514. package/lib/esm/shared/ClientSerializer.js.map +1 -0
  515. package/lib/esm/shared/DeterministicSerializer.js +1 -1
  516. package/lib/esm/shared/DeterministicSerializer.js.map +1 -0
  517. package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
  518. package/lib/esm/shared/SimpleDeterministicSerializer.js.map +1 -0
  519. package/lib/esm/shared/constants.js +5 -1
  520. package/lib/esm/shared/constants.js.map +1 -0
  521. package/lib/esm/shared/decorators.js +18 -1
  522. package/lib/esm/shared/decorators.js.map +1 -0
  523. package/lib/esm/shared/erc20/erc20-constants.js +1 -1
  524. package/lib/esm/shared/erc20/erc20-constants.js.map +1 -0
  525. package/lib/esm/shared/erc20/index.js +1 -1
  526. package/lib/esm/shared/erc20/index.js.map +1 -0
  527. package/lib/esm/shared/errors.js +1 -1
  528. package/lib/esm/shared/errors.js.map +1 -0
  529. package/lib/esm/shared/events.js +1 -1
  530. package/lib/esm/shared/events.js.map +1 -0
  531. package/lib/esm/shared/fabric-types.js +1 -1
  532. package/lib/esm/shared/fabric-types.js.map +1 -0
  533. package/lib/esm/shared/index.js +1 -1
  534. package/lib/esm/shared/index.js.map +1 -0
  535. package/lib/esm/shared/interfaces/Checkable.js +1 -1
  536. package/lib/esm/shared/interfaces/Checkable.js.map +1 -0
  537. package/lib/esm/shared/interfaces/index.js +1 -1
  538. package/lib/esm/shared/interfaces/index.js.map +1 -0
  539. package/lib/esm/shared/math.js +1 -1
  540. package/lib/esm/shared/math.js.map +1 -0
  541. package/lib/esm/shared/model/FabricBaseModel.js +1 -1
  542. package/lib/esm/shared/model/FabricBaseModel.js.map +1 -0
  543. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
  544. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
  545. package/lib/esm/shared/model/Identity.js +1 -1
  546. package/lib/esm/shared/model/Identity.js.map +1 -0
  547. package/lib/esm/shared/model/IdentityCredentials.js +1 -1
  548. package/lib/esm/shared/model/IdentityCredentials.js.map +1 -0
  549. package/lib/esm/shared/model/index.js +1 -1
  550. package/lib/esm/shared/model/index.js.map +1 -0
  551. package/lib/esm/shared/overrides/Model.js +1 -1
  552. package/lib/esm/shared/overrides/Model.js.map +1 -0
  553. package/lib/esm/shared/overrides/index.js +1 -1
  554. package/lib/esm/shared/overrides/index.js.map +1 -0
  555. package/lib/esm/shared/overrides/overrides.js +36 -2
  556. package/lib/esm/shared/overrides/overrides.js.map +1 -0
  557. package/lib/esm/shared/types.js +1 -1
  558. package/lib/esm/shared/types.js.map +1 -0
  559. package/lib/esm/version.js +3 -3
  560. package/lib/esm/version.js.map +1 -0
  561. package/lib/types/client/FabricClientAdapter.d.cts +42 -33
  562. package/lib/types/client/FabricClientAdapter.d.mts +42 -33
  563. package/lib/types/client/FabricClientContext.d.cts +11 -0
  564. package/lib/types/client/FabricClientContext.d.mts +11 -0
  565. package/lib/types/client/FabricClientDispatch.d.cts +5 -5
  566. package/lib/types/client/FabricClientDispatch.d.mts +5 -5
  567. package/lib/types/client/FabricClientStatement.d.cts +6 -6
  568. package/lib/types/client/FabricClientStatement.d.mts +6 -6
  569. package/lib/types/client/index.d.cts +1 -0
  570. package/lib/types/client/index.d.mts +1 -0
  571. package/lib/types/client/types.d.cts +2 -0
  572. package/lib/types/client/types.d.mts +2 -0
  573. package/lib/types/contract/models/History.d.cts +1 -9
  574. package/lib/types/contract/models/History.d.mts +1 -9
  575. package/lib/types/contract/models/OtherBatchShared.d.cts +1 -55
  576. package/lib/types/contract/models/OtherBatchShared.d.mts +1 -55
  577. package/lib/types/contract/models/OtherLeaflet.d.cts +2 -16
  578. package/lib/types/contract/models/OtherLeaflet.d.mts +2 -16
  579. package/lib/types/contract/models/OtherLeafletFile.d.cts +1 -10
  580. package/lib/types/contract/models/OtherLeafletFile.d.mts +1 -10
  581. package/lib/types/contract/models/OtherMarket.d.cts +1 -13
  582. package/lib/types/contract/models/OtherMarket.d.mts +1 -13
  583. package/lib/types/contract/models/OtherProduct.d.cts +1 -12
  584. package/lib/types/contract/models/OtherProduct.d.mts +1 -12
  585. package/lib/types/contract/models/OtherProductImage.d.cts +1 -9
  586. package/lib/types/contract/models/OtherProductImage.d.mts +1 -9
  587. package/lib/types/contract/models/OtherProductShared.d.cts +1 -18
  588. package/lib/types/contract/models/OtherProductShared.d.mts +1 -18
  589. package/lib/types/contract/models/OtherProductStrength.d.cts +1 -12
  590. package/lib/types/contract/models/OtherProductStrength.d.mts +1 -12
  591. package/lib/types/contract/trackedModels/OtherBatchShared.d.cts +19 -0
  592. package/lib/types/contract/trackedModels/OtherBatchShared.d.mts +19 -0
  593. package/lib/types/contracts/ContractAdapter.d.cts +1 -0
  594. package/lib/types/contracts/ContractAdapter.d.mts +1 -0
  595. package/lib/types/contracts/FabricContractStatement.d.cts +1 -2
  596. package/lib/types/contracts/FabricContractStatement.d.mts +1 -2
  597. package/lib/types/contracts/MigrationContract.d.cts +1 -1
  598. package/lib/types/contracts/MigrationContract.d.mts +1 -1
  599. package/lib/types/contracts/crud/crud-contract.d.cts +3 -1
  600. package/lib/types/contracts/crud/crud-contract.d.mts +3 -1
  601. package/lib/types/contracts/types.d.cts +1 -0
  602. package/lib/types/contracts/types.d.mts +1 -0
  603. package/lib/types/shared/constants.d.cts +5 -1
  604. package/lib/types/shared/constants.d.mts +5 -1
  605. package/lib/types/shared/decorators.d.cts +9 -1
  606. package/lib/types/shared/decorators.d.mts +9 -1
  607. package/lib/types/shared/overrides/Model.d.cts +4 -0
  608. package/lib/types/shared/overrides/Model.d.mts +4 -0
  609. package/lib/types/version.d.cts +2 -2
  610. package/lib/types/version.d.mts +2 -2
  611. package/package.json +1 -1
@@ -16,5 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./Model.cjs"), exports);
18
18
  __exportStar(require("./overrides.cjs"), exports);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2hhcmVkL292ZXJyaWRlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQkFBd0I7QUFDeEIsK0JBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vTW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL292ZXJyaWRlc1wiO1xuIl19
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTJCO0FBQzNCLGlEQUErQjtBQUMvQiwwV0FBMFciLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9Nb2RlbC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vb3ZlcnJpZGVzLmpzXCI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTh1TGk5emNtTXZjMmhoY21Wa0wyOTJaWEp5YVdSbGN5OXBibVJsZUM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3d5UWtGQmQwSTdRVUZEZUVJc0swSkJRVFJDSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaVpYaHdiM0owSUNvZ1puSnZiU0JjSWk0dlRXOWtaV3hjSWp0Y2JtVjRjRzl5ZENBcUlHWnliMjBnWENJdUwyOTJaWEp5YVdSbGMxd2lPMXh1SWwxOSJdfQ==
19
+ //# sourceMappingURL=index.js.map
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,iDAA+B;AAC/B,iCAAiC"}
@@ -4,6 +4,7 @@ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
4
4
  const decoration_1 = require("@decaf-ts/decoration");
5
5
  const constants_js_1 = require("./../constants.cjs");
6
6
  const db_decorators_1 = require("@decaf-ts/db-decorators");
7
+ const core_1 = require("@decaf-ts/core");
7
8
  decorator_validation_1.Model.prototype.isShared = function isShared() {
8
9
  return decorator_validation_1.Model.isShared(this.constructor);
9
10
  };
@@ -90,5 +91,38 @@ decorator_validation_1.Model.collectionsFor = function collectionsFor(model) {
90
91
  sharedCols: sharedMeta?.collections || [],
91
92
  };
92
93
  }.bind(decorator_validation_1.Model);
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnJpZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9vdmVycmlkZXMvb3ZlcnJpZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RCxPQUFPLEVBQWUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSwwQkFBcUI7QUFFL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR2pELEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLFNBQVMsUUFBUTtJQUcxQyxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQTZCLENBQUMsQ0FBQztBQUM1RCxDQUFDLENBQUM7QUFFRixLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxTQUFTLFNBQVM7SUFHNUMsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUE2QixDQUFDLENBQUM7QUFDN0QsQ0FBQyxDQUFDO0FBRUYsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxTQUFTO0lBRzVDLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFFRCxLQUFhLENBQUMsU0FBUyxHQUFHLFNBQVMsU0FBUyxDQUMzQyxLQUFRO0lBRVIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN2RCxNQUFNLG1CQUFtQixHQUN2QixRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO0lBRXpELE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQ2pDLEtBQUssQ0FB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QUksQ0FBQyxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IsIE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBGYWJyaWNNb2RlbEtleXMgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBTZWdyZWdhdGVkTW9kZWwgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IERCS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ29sbGVjdGlvblJlc29sdmVyLCBNaXJyb3JNZXRhZGF0YSB9IGZyb20gXCIuLi9kZWNvcmF0b3JzXCI7XG5cbk1vZGVsLnByb3RvdHlwZS5pc1NoYXJlZCA9IGZ1bmN0aW9uIGlzU2hhcmVkPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIHRoaXM6IE1cbik6IGJvb2xlYW4ge1xuICByZXR1cm4gTW9kZWwuaXNTaGFyZWQodGhpcy5jb25zdHJ1Y3RvciBhcyBDb25zdHJ1Y3RvcjxNPik7XG59O1xuXG5Nb2RlbC5wcm90b3R5cGUuaXNQcml2YXRlID0gZnVuY3Rpb24gaXNQcml2YXRlPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIHRoaXM6IE1cbik6IGJvb2xlYW4ge1xuICByZXR1cm4gTW9kZWwuaXNQcml2YXRlKHRoaXMuY29uc3RydWN0b3IgYXMgQ29uc3RydWN0b3I8TT4pO1xufTtcblxuTW9kZWwucHJvdG90eXBlLnNlZ3JlZ2F0ZSA9IGZ1bmN0aW9uIHNlZ3JlZ2F0ZTxNIGV4dGVuZHMgTW9kZWw+KFxuICB0aGlzOiBNXG4pOiBTZWdyZWdhdGVkTW9kZWw8TT4ge1xuICByZXR1cm4gTW9kZWwuc2VncmVnYXRlKHRoaXMpO1xufTtcblxuKE1vZGVsIGFzIGFueSkuc2VncmVnYXRlID0gZnVuY3Rpb24gc2VncmVnYXRlPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBNXG4pOiBTZWdyZWdhdGVkTW9kZWw8TT4ge1xuICBpZiAoIU1vZGVsLmlzVHJhbnNpZW50KG1vZGVsKSkgcmV0dXJuIHsgbW9kZWw6IG1vZGVsIH07XG4gIGNvbnN0IGRlY29yYXRlZFByb3BlcnRpZXMgPVxuICAgIE1ldGFkYXRhLmdldEF0dHJpYnV0ZXMobW9kZWwuY29uc3RydWN0b3IgYXMgYW55KSB8fCBbXTtcblxuICBjb25zdCB0cmFuc2llbnRQcm9wcyA9IE1ldGFkYXRhLmdldChcbiAgICBtb2RlbC5jb25zdHJ1Y3RvciBhcyBhbnksXG4gICAgREJLZXlzLlRSQU5TSUVOVFxuICApO1xuICBjb25zdCBwcml2YXRlUHJvcGVydGllcyA9IE1ldGFkYXRhLmdldChcbiAgICBtb2RlbC5jb25zdHJ1Y3RvciBhcyBhbnksXG4gICAgRmFicmljTW9kZWxLZXlzLlBSSVZBVEVcbiAgKTtcbiAgY29uc3Qgc2hhcmVkUHJvcGVydGllcyA9IE1ldGFkYXRhLmdldChcbiAgICBtb2RlbC5jb25zdHJ1Y3RvciBhcyBhbnksXG4gICAgRmFicmljTW9kZWxLZXlzLlNIQVJFRFxuICApO1xuXG4gIGNvbnN0IHJlc3VsdDogU2VncmVnYXRlZE1vZGVsPE0+ID0ge1xuICAgIG1vZGVsOiB7fSBhcyBSZWNvcmQ8a2V5b2YgTSwgYW55PixcbiAgICBwdWJsaWM6IHt9IGFzIFJlY29yZDxrZXlvZiBNLCBhbnk+LFxuICAgIHRyYW5zaWVudDoge30gYXMgUmVjb3JkPGtleW9mIE0sIGFueT4sXG4gICAgcHJpdmF0ZXM6IHt9IGFzIFJlY29yZDxrZXlvZiBNLCBhbnk+LFxuICAgIHNoYXJlZDoge30gYXMgUmVjb3JkPGtleW9mIE0sIGFueT4sXG4gIH07XG5cbiAgY29uc3QgdHJhbnNpZW50S2V5cyA9IE9iamVjdC5rZXlzKHRyYW5zaWVudFByb3BzIHx8IHt9KTtcbiAgY29uc3QgcHJpdmF0ZUtleXMgPSBPYmplY3Qua2V5cyhwcml2YXRlUHJvcGVydGllcyB8fCB7fSk7XG4gIGNvbnN0IHNoYXJlZEtleXMgPSBPYmplY3Qua2V5cyhzaGFyZWRQcm9wZXJ0aWVzIHx8IHt9KTtcblxuICAvLyBjb25zdCBwa0tleSA9IE1vZGVsLnBrKG1vZGVsLmNvbnN0cnVjdG9yIGFzIGFueSk7XG4gIGZvciAoY29uc3Qga2V5IG9mIGRlY29yYXRlZFByb3BlcnRpZXMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IG1vZGVsW2tleSBhcyBrZXlvZiBNXTtcbiAgICBjb25zdCBpc1RyYW5zaWVudCA9IHRyYW5zaWVudEtleXMuaW5jbHVkZXMoa2V5KTtcbiAgICBjb25zdCBpc1B1YmxpYyA9ICFpc1RyYW5zaWVudDtcbiAgICBjb25zdCBpc1ByaXZhdGUgPSBwcml2YXRlS2V5cy5pbmNsdWRlcyhrZXkpO1xuICAgIGNvbnN0IGlzU2hhcmVkID0gc2hhcmVkS2V5cy5pbmNsdWRlcyhrZXkpO1xuICAgIC8vIGNvbnN0IGlzUHJpbWFyeUtleSA9IGtleSA9PT0gcGtLZXk7XG5cbiAgICBpZiAoaXNUcmFuc2llbnQgfHwgaXNQcml2YXRlIHx8IGlzU2hhcmVkKSB7XG4gICAgICByZXN1bHQudHJhbnNpZW50ID0gcmVzdWx0LnRyYW5zaWVudCB8fCAoe30gYXMgYW55KTtcbiAgICAgIChyZXN1bHQudHJhbnNpZW50IGFzIGFueSlba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgICBpZiAoaXNQcml2YXRlKSB7XG4gICAgICByZXN1bHQucHJpdmF0ZXMgPSByZXN1bHQucHJpdmF0ZXMgfHwgKHt9IGFzIGFueSk7XG4gICAgICAocmVzdWx0LnByaXZhdGVzIGFzIGFueSlba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgICBpZiAoaXNTaGFyZWQpIHtcbiAgICAgIHJlc3VsdC5zaGFyZWQgPSByZXN1bHQuc2hhcmVkIHx8ICh7fSBhcyBhbnkpO1xuICAgICAgKHJlc3VsdC5zaGFyZWQgYXMgYW55KVtrZXldID0gdmFsdWU7XG4gICAgfVxuICAgIGlmIChpc1B1YmxpYykge1xuICAgICAgcmVzdWx0LnB1YmxpYyA9IChyZXN1bHQucHVibGljIHx8IHt9KSBhcyBhbnk7XG4gICAgICAocmVzdWx0LnB1YmxpYyBhcyBhbnkpW2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICByZXN1bHQubW9kZWwgPSBNb2RlbC5idWlsZChyZXN1bHQucHVibGljLCBtb2RlbC5jb25zdHJ1Y3Rvci5uYW1lKTtcbiAgcmV0dXJuIHJlc3VsdCBhcyBTZWdyZWdhdGVkTW9kZWw8TT47XG59LmJpbmQoTW9kZWwpO1xuXG4oTW9kZWwgYXMgYW55KS5pc1ByaXZhdGUgPSBmdW5jdGlvbiBpc1ByaXZhdGU8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IE0gfCBDb25zdHJ1Y3RvcjxNPlxuKTogYm9vbGVhbiB7XG4gIHJldHVybiAhIU1ldGFkYXRhLmdldChcbiAgICB0eXBlb2YgbW9kZWwgIT09IFwiZnVuY3Rpb25cIiA/IChtb2RlbC5jb25zdHJ1Y3RvciBhcyBhbnkpIDogbW9kZWwsXG4gICAgRmFicmljTW9kZWxLZXlzLlBSSVZBVEVcbiAgKTtcbn0uYmluZChNb2RlbCk7XG5cbihNb2RlbCBhcyBhbnkpLmlzU2hhcmVkID0gZnVuY3Rpb24gaXNTaGFyZWQ8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IE0gfCBDb25zdHJ1Y3RvcjxNPlxuKTogYm9vbGVhbiB7XG4gIHJldHVybiAhIU1ldGFkYXRhLmdldChcbiAgICB0eXBlb2YgbW9kZWwgIT09IFwiZnVuY3Rpb25cIiA/IChtb2RlbC5jb25zdHJ1Y3RvciBhcyBhbnkpIDogbW9kZWwsXG4gICAgRmFicmljTW9kZWxLZXlzLlNIQVJFRFxuICApO1xufS5iaW5kKE1vZGVsKTtcblxuKE1vZGVsIGFzIGFueSkubWlycm9yZWQgPSBmdW5jdGlvbiBtaXJyb3JlZDxNIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogTSB8IENvbnN0cnVjdG9yPE0+XG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIE1ldGFkYXRhLmdldChcbiAgICB0eXBlb2YgbW9kZWwgIT09IFwiZnVuY3Rpb25cIiA/IChtb2RlbC5jb25zdHJ1Y3RvciBhcyBhbnkpIDogbW9kZWwsXG4gICAgTWV0YWRhdGEua2V5KEZhYnJpY01vZGVsS2V5cy5GQUJSSUMsIEZhYnJpY01vZGVsS2V5cy5NSVJST1IpXG4gICk7XG59LmJpbmQoTW9kZWwpO1xuXG4oTW9kZWwgYXMgYW55KS5vd25lck9mID0gZnVuY3Rpb24gb3duZXJPZjxNIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogTVxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbWV0YSA9IE1ldGFkYXRhLmdldChcbiAgICBtb2RlbC5jb25zdHJ1Y3RvciBhcyBhbnksXG4gICAgTWV0YWRhdGEua2V5KEZhYnJpY01vZGVsS2V5cy5GQUJSSUMsIEZhYnJpY01vZGVsS2V5cy5PV05FRF9CWSlcbiAgKTtcbiAgaWYgKCFtZXRhKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gbW9kZWxbbWV0YSBhcyBrZXlvZiBNXSBhcyBzdHJpbmc7XG59LmJpbmQoTW9kZWwpO1xuXG4oTW9kZWwgYXMgYW55KS5taXJyb3JlZEF0ID0gZnVuY3Rpb24gbWlycm9yZWRBdDxNIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogTSB8IENvbnN0cnVjdG9yPE0+XG4pOiBNaXJyb3JNZXRhZGF0YSB8IHVuZGVmaW5lZCB7XG4gIG1vZGVsID0gdHlwZW9mIG1vZGVsICE9PSBcImZ1bmN0aW9uXCIgPyAobW9kZWwuY29uc3RydWN0b3IgYXMgYW55KSA6IG1vZGVsO1xuICByZXR1cm4gTWV0YWRhdGEuZ2V0KFxuICAgIG1vZGVsIGFzIGFueSxcbiAgICBNZXRhZGF0YS5rZXkoRmFicmljTW9kZWxLZXlzLkZBQlJJQywgRmFicmljTW9kZWxLZXlzLk1JUlJPUilcbiAgKTtcbn0uYmluZChNb2RlbCk7XG5cbihNb2RlbCBhcyBhbnkpLmNvbGxlY3Rpb25zRm9yID0gZnVuY3Rpb24gY29sbGVjdGlvbnNGb3I8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IE0gfCBDb25zdHJ1Y3RvcjxNPlxuKToge1xuICBwcml2YXRlQ29sczogKHN0cmluZyB8IENvbGxlY3Rpb25SZXNvbHZlcilbXTtcbiAgc2hhcmVkQ29sczogKHN0cmluZyB8IENvbGxlY3Rpb25SZXNvbHZlcilbXTtcbn0ge1xuICBjb25zdCBwcml2YXRlS2V5czogc3RyaW5nW10gPSBbRmFicmljTW9kZWxLZXlzLlBSSVZBVEVdIGFzIHN0cmluZ1tdO1xuICBjb25zdCBzaGFyZWRLZXlzOiBzdHJpbmdbXSA9IFtGYWJyaWNNb2RlbEtleXMuU0hBUkVEXSBhcyBzdHJpbmdbXTtcblxuICBjb25zdCBwcml2YXRlS2V5ID0gTWV0YWRhdGEua2V5KC4uLnByaXZhdGVLZXlzKTtcbiAgY29uc3Qgc2hhcmVkS2V5ID0gTWV0YWRhdGEua2V5KC4uLnNoYXJlZEtleXMpO1xuXG4gIGNvbnN0IGNvbnN0ciA9IHR5cGVvZiBtb2RlbCA9PT0gXCJmdW5jdGlvblwiID8gbW9kZWwgOiBtb2RlbC5jb25zdHJ1Y3RvcjtcblxuICBjb25zdCBwcml2YXRlTWV0YTogeyBjb2xsZWN0aW9uczogc3RyaW5nW10gfSA9IE1ldGFkYXRhLmdldChcbiAgICBjb25zdHIgYXMgYW55LFxuICAgIHByaXZhdGVLZXlcbiAgKTtcbiAgY29uc3Qgc2hhcmVkTWV0YTogeyBjb2xsZWN0aW9uczogc3RyaW5nW10gfSA9IE1ldGFkYXRhLmdldChcbiAgICBjb25zdHIgYXMgYW55LFxuICAgIHNoYXJlZEtleVxuICApO1xuXG4gIHJldHVybiB7XG4gICAgcHJpdmF0ZUNvbHM6IHByaXZhdGVNZXRhPy5jb2xsZWN0aW9ucyB8fCBbXSxcbiAgICBzaGFyZWRDb2xzOiBzaGFyZWRNZXRhPy5jb2xsZWN0aW9ucyB8fCBbXSxcbiAgfTtcbn0uYmluZChNb2RlbCk7XG4iXX0=
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnJpZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsib3ZlcnJpZGVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUVBQXVEO0FBQ3ZELHFEQUFnRDtBQUNoRCxvREFBb0Q7QUFDcEQsMkRBQWlEO0FBQ2pELDRCQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxTQUFTLFFBQVE7SUFDeEMsT0FBTyw0QkFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUFDO0FBQ0YsNEJBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLFNBQVMsU0FBUztJQUMxQyxPQUFPLDRCQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUM3QyxDQUFDLENBQUM7QUFDRiw0QkFBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxTQUFTO0lBQzFDLE9BQU8sNEJBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFDO0FBQ0YsNEJBQUssQ0FBQyxTQUFTLEdBQUcsU0FBUyxTQUFTLENBQUMsS0FBSztJQUN0QyxJQUFJLENBQUMsNEJBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQ3pCLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDNUIsTUFBTSxtQkFBbUIsR0FBRyxxQkFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVFLE1BQU0sY0FBYyxHQUFHLHFCQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsc0JBQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6RSxNQUFNLGlCQUFpQixHQUFHLHFCQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsOEJBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuRixNQUFNLGdCQUFnQixHQUFHLHFCQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsOEJBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRixNQUFNLE1BQU0sR0FBRztRQUNYLEtBQUssRUFBRSxFQUFFO1FBQ1QsTUFBTSxFQUFFLEVBQUU7UUFDVixTQUFTLEVBQUUsRUFBRTtRQUNiLFFBQVEsRUFBRSxFQUFFO1FBQ1osTUFBTSxFQUFFLEVBQUU7S0FDYixDQUFDO0lBQ0YsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDLENBQUM7SUFDeEQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELG9EQUFvRDtJQUNwRCxLQUFLLE1BQU0sR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDcEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxXQUFXLENBQUM7UUFDOUIsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLHNDQUFzQztRQUN0QyxJQUFJLFdBQVcsSUFBSSxTQUFTLElBQUksUUFBUSxFQUFFLENBQUM7WUFDdkMsTUFBTSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztZQUMxQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNsQyxDQUFDO1FBQ0QsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNaLE1BQU0sQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDeEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDakMsQ0FBQztRQUNELElBQUksUUFBUSxFQUFFLENBQUM7WUFDWCxNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1lBQ3BDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQy9CLENBQUM7UUFDRCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ1gsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDL0IsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNLENBQUMsS0FBSyxHQUFHLDRCQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRSxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUMsSUFBSSxDQUFDLDRCQUFLLENBQUMsQ0FBQztBQUNkLDRCQUFLLENBQUMsU0FBUyxHQUFHLFNBQVMsU0FBUyxDQUFDLEtBQUs7SUFDdEMsT0FBTyxDQUFDLENBQUMscUJBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsOEJBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM1RyxDQUFDLENBQUMsSUFBSSxDQUFDLDRCQUFLLENBQUMsQ0FBQztBQUNkLDRCQUFLLENBQUMsUUFBUSxHQUFHLFNBQVMsUUFBUSxDQUFDLEtBQUs7SUFDcEMsT0FBTyxDQUFDLENBQUMscUJBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsOEJBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMzRyxDQUFDLENBQUMsSUFBSSxDQUFDLDRCQUFLLENBQUMsQ0FBQztBQUNkLDRCQUFLLENBQUMsUUFBUSxHQUFHLFNBQVMsUUFBUSxDQUFDLEtBQUs7SUFDcEMsT0FBTyxxQkFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxxQkFBUSxDQUFDLEdBQUcsQ0FBQyw4QkFBZSxDQUFDLE1BQU0sRUFBRSw4QkFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDL0ksQ0FBQyxDQUFDLElBQUksQ0FBQyw0QkFBSyxDQUFDLENBQUM7QUFDZCw0QkFBSyxDQUFDLE9BQU8sR0FBRyxTQUFTLE9BQU8sQ0FBQyxLQUFLO0lBQ2xDLE1BQU0sSUFBSSxHQUFHLHFCQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUscUJBQVEsQ0FBQyxHQUFHLENBQUMsOEJBQWUsQ0FBQyxNQUFNLEVBQUUsOEJBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzdHLElBQUksQ0FBQyxJQUFJO1FBQ0wsT0FBTyxTQUFTLENBQUM7SUFDckIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLElBQUksQ0FBQyw0QkFBSyxDQUFDLENBQUM7QUFDZCw0QkFBSyxDQUFDLFVBQVUsR0FBRyxTQUFTLFVBQVUsQ0FBQyxLQUFLO0lBQ3hDLEtBQUssR0FBRyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoRSxPQUFPLHFCQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxxQkFBUSxDQUFDLEdBQUcsQ0FBQyw4QkFBZSxDQUFDLE1BQU0sRUFBRSw4QkFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDN0YsQ0FBQyxDQUFDLElBQUksQ0FBQyw0QkFBSyxDQUFDLENBQUM7QUFDZCw0QkFBSyxDQUFDLGNBQWMsR0FBRyxTQUFTLGNBQWMsQ0FBQyxLQUFLO0lBQ2hELE1BQU0sV0FBVyxHQUFHLENBQUMsOEJBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxNQUFNLFVBQVUsR0FBRyxDQUFDLDhCQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUMsTUFBTSxVQUFVLEdBQUcscUJBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQztJQUNoRCxNQUFNLFNBQVMsR0FBRyxxQkFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sTUFBTSxHQUFHLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQ3ZFLE1BQU0sV0FBVyxHQUFHLHFCQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNyRCxNQUFNLFVBQVUsR0FBRyxxQkFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbkQsT0FBTztRQUNILFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxJQUFJLEVBQUU7UUFDM0MsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLElBQUksRUFBRTtLQUM1QyxDQUFDO0FBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyw0QkFBSyxDQUFDLENBQUM7QUFDZCxreVpBQWt5WiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgTWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IEZhYnJpY01vZGVsS2V5cyB9IGZyb20gXCIuLy4uL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgREJLZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5Nb2RlbC5wcm90b3R5cGUuaXNTaGFyZWQgPSBmdW5jdGlvbiBpc1NoYXJlZCgpIHtcbiAgICByZXR1cm4gTW9kZWwuaXNTaGFyZWQodGhpcy5jb25zdHJ1Y3Rvcik7XG59O1xuTW9kZWwucHJvdG90eXBlLmlzUHJpdmF0ZSA9IGZ1bmN0aW9uIGlzUHJpdmF0ZSgpIHtcbiAgICByZXR1cm4gTW9kZWwuaXNQcml2YXRlKHRoaXMuY29uc3RydWN0b3IpO1xufTtcbk1vZGVsLnByb3RvdHlwZS5zZWdyZWdhdGUgPSBmdW5jdGlvbiBzZWdyZWdhdGUoKSB7XG4gICAgcmV0dXJuIE1vZGVsLnNlZ3JlZ2F0ZSh0aGlzKTtcbn07XG5Nb2RlbC5zZWdyZWdhdGUgPSBmdW5jdGlvbiBzZWdyZWdhdGUobW9kZWwpIHtcbiAgICBpZiAoIU1vZGVsLmlzVHJhbnNpZW50KG1vZGVsKSlcbiAgICAgICAgcmV0dXJuIHsgbW9kZWw6IG1vZGVsIH07XG4gICAgY29uc3QgZGVjb3JhdGVkUHJvcGVydGllcyA9IE1ldGFkYXRhLmdldEF0dHJpYnV0ZXMobW9kZWwuY29uc3RydWN0b3IpIHx8IFtdO1xuICAgIGNvbnN0IHRyYW5zaWVudFByb3BzID0gTWV0YWRhdGEuZ2V0KG1vZGVsLmNvbnN0cnVjdG9yLCBEQktleXMuVFJBTlNJRU5UKTtcbiAgICBjb25zdCBwcml2YXRlUHJvcGVydGllcyA9IE1ldGFkYXRhLmdldChtb2RlbC5jb25zdHJ1Y3RvciwgRmFicmljTW9kZWxLZXlzLlBSSVZBVEUpO1xuICAgIGNvbnN0IHNoYXJlZFByb3BlcnRpZXMgPSBNZXRhZGF0YS5nZXQobW9kZWwuY29uc3RydWN0b3IsIEZhYnJpY01vZGVsS2V5cy5TSEFSRUQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICAgbW9kZWw6IHt9LFxuICAgICAgICBwdWJsaWM6IHt9LFxuICAgICAgICB0cmFuc2llbnQ6IHt9LFxuICAgICAgICBwcml2YXRlczoge30sXG4gICAgICAgIHNoYXJlZDoge30sXG4gICAgfTtcbiAgICBjb25zdCB0cmFuc2llbnRLZXlzID0gT2JqZWN0LmtleXModHJhbnNpZW50UHJvcHMgfHwge30pO1xuICAgIGNvbnN0IHByaXZhdGVLZXlzID0gT2JqZWN0LmtleXMocHJpdmF0ZVByb3BlcnRpZXMgfHwge30pO1xuICAgIGNvbnN0IHNoYXJlZEtleXMgPSBPYmplY3Qua2V5cyhzaGFyZWRQcm9wZXJ0aWVzIHx8IHt9KTtcbiAgICAvLyBjb25zdCBwa0tleSA9IE1vZGVsLnBrKG1vZGVsLmNvbnN0cnVjdG9yIGFzIGFueSk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgZGVjb3JhdGVkUHJvcGVydGllcykge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IG1vZGVsW2tleV07XG4gICAgICAgIGNvbnN0IGlzVHJhbnNpZW50ID0gdHJhbnNpZW50S2V5cy5pbmNsdWRlcyhrZXkpO1xuICAgICAgICBjb25zdCBpc1B1YmxpYyA9ICFpc1RyYW5zaWVudDtcbiAgICAgICAgY29uc3QgaXNQcml2YXRlID0gcHJpdmF0ZUtleXMuaW5jbHVkZXMoa2V5KTtcbiAgICAgICAgY29uc3QgaXNTaGFyZWQgPSBzaGFyZWRLZXlzLmluY2x1ZGVzKGtleSk7XG4gICAgICAgIC8vIGNvbnN0IGlzUHJpbWFyeUtleSA9IGtleSA9PT0gcGtLZXk7XG4gICAgICAgIGlmIChpc1RyYW5zaWVudCB8fCBpc1ByaXZhdGUgfHwgaXNTaGFyZWQpIHtcbiAgICAgICAgICAgIHJlc3VsdC50cmFuc2llbnQgPSByZXN1bHQudHJhbnNpZW50IHx8IHt9O1xuICAgICAgICAgICAgcmVzdWx0LnRyYW5zaWVudFtrZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzUHJpdmF0ZSkge1xuICAgICAgICAgICAgcmVzdWx0LnByaXZhdGVzID0gcmVzdWx0LnByaXZhdGVzIHx8IHt9O1xuICAgICAgICAgICAgcmVzdWx0LnByaXZhdGVzW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNTaGFyZWQpIHtcbiAgICAgICAgICAgIHJlc3VsdC5zaGFyZWQgPSByZXN1bHQuc2hhcmVkIHx8IHt9O1xuICAgICAgICAgICAgcmVzdWx0LnNoYXJlZFtrZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzUHVibGljKSB7XG4gICAgICAgICAgICByZXN1bHQucHVibGljID0gKHJlc3VsdC5wdWJsaWMgfHwge30pO1xuICAgICAgICAgICAgcmVzdWx0LnB1YmxpY1trZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVzdWx0Lm1vZGVsID0gTW9kZWwuYnVpbGQocmVzdWx0LnB1YmxpYywgbW9kZWwuY29uc3RydWN0b3IubmFtZSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn0uYmluZChNb2RlbCk7XG5Nb2RlbC5pc1ByaXZhdGUgPSBmdW5jdGlvbiBpc1ByaXZhdGUobW9kZWwpIHtcbiAgICByZXR1cm4gISFNZXRhZGF0YS5nZXQodHlwZW9mIG1vZGVsICE9PSBcImZ1bmN0aW9uXCIgPyBtb2RlbC5jb25zdHJ1Y3RvciA6IG1vZGVsLCBGYWJyaWNNb2RlbEtleXMuUFJJVkFURSk7XG59LmJpbmQoTW9kZWwpO1xuTW9kZWwuaXNTaGFyZWQgPSBmdW5jdGlvbiBpc1NoYXJlZChtb2RlbCkge1xuICAgIHJldHVybiAhIU1ldGFkYXRhLmdldCh0eXBlb2YgbW9kZWwgIT09IFwiZnVuY3Rpb25cIiA/IG1vZGVsLmNvbnN0cnVjdG9yIDogbW9kZWwsIEZhYnJpY01vZGVsS2V5cy5TSEFSRUQpO1xufS5iaW5kKE1vZGVsKTtcbk1vZGVsLm1pcnJvcmVkID0gZnVuY3Rpb24gbWlycm9yZWQobW9kZWwpIHtcbiAgICByZXR1cm4gTWV0YWRhdGEuZ2V0KHR5cGVvZiBtb2RlbCAhPT0gXCJmdW5jdGlvblwiID8gbW9kZWwuY29uc3RydWN0b3IgOiBtb2RlbCwgTWV0YWRhdGEua2V5KEZhYnJpY01vZGVsS2V5cy5GQUJSSUMsIEZhYnJpY01vZGVsS2V5cy5NSVJST1IpKTtcbn0uYmluZChNb2RlbCk7XG5Nb2RlbC5vd25lck9mID0gZnVuY3Rpb24gb3duZXJPZihtb2RlbCkge1xuICAgIGNvbnN0IG1ldGEgPSBNZXRhZGF0YS5nZXQobW9kZWwuY29uc3RydWN0b3IsIE1ldGFkYXRhLmtleShGYWJyaWNNb2RlbEtleXMuRkFCUklDLCBGYWJyaWNNb2RlbEtleXMuT1dORURfQlkpKTtcbiAgICBpZiAoIW1ldGEpXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIG1vZGVsW21ldGFdO1xufS5iaW5kKE1vZGVsKTtcbk1vZGVsLm1pcnJvcmVkQXQgPSBmdW5jdGlvbiBtaXJyb3JlZEF0KG1vZGVsKSB7XG4gICAgbW9kZWwgPSB0eXBlb2YgbW9kZWwgIT09IFwiZnVuY3Rpb25cIiA/IG1vZGVsLmNvbnN0cnVjdG9yIDogbW9kZWw7XG4gICAgcmV0dXJuIE1ldGFkYXRhLmdldChtb2RlbCwgTWV0YWRhdGEua2V5KEZhYnJpY01vZGVsS2V5cy5GQUJSSUMsIEZhYnJpY01vZGVsS2V5cy5NSVJST1IpKTtcbn0uYmluZChNb2RlbCk7XG5Nb2RlbC5jb2xsZWN0aW9uc0ZvciA9IGZ1bmN0aW9uIGNvbGxlY3Rpb25zRm9yKG1vZGVsKSB7XG4gICAgY29uc3QgcHJpdmF0ZUtleXMgPSBbRmFicmljTW9kZWxLZXlzLlBSSVZBVEVdO1xuICAgIGNvbnN0IHNoYXJlZEtleXMgPSBbRmFicmljTW9kZWxLZXlzLlNIQVJFRF07XG4gICAgY29uc3QgcHJpdmF0ZUtleSA9IE1ldGFkYXRhLmtleSguLi5wcml2YXRlS2V5cyk7XG4gICAgY29uc3Qgc2hhcmVkS2V5ID0gTWV0YWRhdGEua2V5KC4uLnNoYXJlZEtleXMpO1xuICAgIGNvbnN0IGNvbnN0ciA9IHR5cGVvZiBtb2RlbCA9PT0gXCJmdW5jdGlvblwiID8gbW9kZWwgOiBtb2RlbC5jb25zdHJ1Y3RvcjtcbiAgICBjb25zdCBwcml2YXRlTWV0YSA9IE1ldGFkYXRhLmdldChjb25zdHIsIHByaXZhdGVLZXkpO1xuICAgIGNvbnN0IHNoYXJlZE1ldGEgPSBNZXRhZGF0YS5nZXQoY29uc3RyLCBzaGFyZWRLZXkpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHByaXZhdGVDb2xzOiBwcml2YXRlTWV0YT8uY29sbGVjdGlvbnMgfHwgW10sXG4gICAgICAgIHNoYXJlZENvbHM6IHNoYXJlZE1ldGE/LmNvbGxlY3Rpb25zIHx8IFtdLFxuICAgIH07XG59LmJpbmQoTW9kZWwpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYjNabGNuSnBaR1Z6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwzTm9ZWEpsWkM5dmRtVnljbWxrWlhNdmIzWmxjbkpwWkdWekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNSVUZCUlN4TFFVRkxMRVZCUVVVc1RVRkJUU3huUTBGQlowTXNRMEZCUXp0QlFVTjJSQ3hQUVVGUExFVkJRV1VzVVVGQlVTeEZRVUZGTEUxQlFVMHNjMEpCUVhOQ0xFTkJRVU03UVVGRE4wUXNUMEZCVHl4RlFVRkZMR1ZCUVdVc1JVRkJSU3d3UWtGQmNVSTdRVUZGTDBNc1QwRkJUeXhGUVVGRkxFMUJRVTBzUlVGQlJTeE5RVUZOTEhsQ1FVRjVRaXhEUVVGRE8wRkJSMnBFTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1VVRkJVU3hIUVVGSExGTkJRVk1zVVVGQlVUdEpRVWN4UXl4UFFVRlBMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFUWkNMRU5CUVVNc1EwRkJRenRCUVVNMVJDeERRVUZETEVOQlFVTTdRVUZGUml4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExGTkJRVk1zUjBGQlJ5eFRRVUZUTEZOQlFWTTdTVUZITlVNc1QwRkJUeXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRTJRaXhEUVVGRExFTkJRVU03UVVGRE4wUXNRMEZCUXl4RFFVRkRPMEZCUlVZc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eFRRVUZUTEVkQlFVY3NVMEZCVXl4VFFVRlRPMGxCUnpWRExFOUJRVThzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVNdlFpeERRVUZETEVOQlFVTTdRVUZGUkN4TFFVRmhMRU5CUVVNc1UwRkJVeXhIUVVGSExGTkJRVk1zVTBGQlV5eERRVU16UXl4TFFVRlJPMGxCUlZJc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNTMEZCU3l4RFFVRkRPMUZCUVVVc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeExRVUZMTEVWQlFVVXNRMEZCUXp0SlFVTjJSQ3hOUVVGTkxHMUNRVUZ0UWl4SFFVTjJRaXhSUVVGUkxFTkJRVU1zWVVGQllTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRnJRaXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzBsQlJYcEVMRTFCUVUwc1kwRkJZeXhIUVVGSExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlEycERMRXRCUVVzc1EwRkJReXhYUVVGclFpeEZRVU40UWl4TlFVRk5MRU5CUVVNc1UwRkJVeXhEUVVOcVFpeERRVUZETzBsQlEwWXNUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVTndReXhMUVVGTExFTkJRVU1zVjBGQmEwSXNSVUZEZUVJc1pVRkJaU3hEUVVGRExFOUJRVThzUTBGRGVFSXNRMEZCUXp0SlFVTkdMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkRia01zUzBGQlN5eERRVUZETEZkQlFXdENMRVZCUTNoQ0xHVkJRV1VzUTBGQlF5eE5RVUZOTEVOQlEzWkNMRU5CUVVNN1NVRkZSaXhOUVVGTkxFMUJRVTBzUjBGQmRVSTdVVUZEYWtNc1MwRkJTeXhGUVVGRkxFVkJRVEJDTzFGQlEycERMRTFCUVUwc1JVRkJSU3hGUVVFd1FqdFJRVU5zUXl4VFFVRlRMRVZCUVVVc1JVRkJNRUk3VVVGRGNrTXNVVUZCVVN4RlFVRkZMRVZCUVRCQ08xRkJRM0JETEUxQlFVMHNSVUZCUlN4RlFVRXdRanRMUVVOdVF5eERRVUZETzBsQlJVWXNUVUZCVFN4aFFVRmhMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRlRVFzVFVGQlRTeFhRVUZYTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkJRenRKUVVONlJDeE5RVUZOTEZWQlFWVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJSWFpFTEc5RVFVRnZSRHRKUVVOd1JDeExRVUZMTEUxQlFVMHNSMEZCUnl4SlFVRkpMRzFDUVVGdFFpeEZRVUZGTEVOQlFVTTdVVUZEZEVNc1RVRkJUU3hMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETEVkQlFXTXNRMEZCUXl4RFFVRkRPMUZCUTNCRExFMUJRVTBzVjBGQlZ5eEhRVUZITEdGQlFXRXNRMEZCUXl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGFFUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1EwRkJReXhYUVVGWExFTkJRVU03VVVGRE9VSXNUVUZCVFN4VFFVRlRMRWRCUVVjc1YwRkJWeXhEUVVGRExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTTFReXhOUVVGTkxGRkJRVkVzUjBGQlJ5eFZRVUZWTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRekZETEhORFFVRnpRenRSUVVWMFF5eEpRVUZKTEZkQlFWY3NTVUZCU1N4VFFVRlRMRWxCUVVrc1VVRkJVU3hGUVVGRkxFTkJRVU03V1VGRGVrTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1IwRkJSeXhOUVVGTkxFTkJRVU1zVTBGQlV5eEpRVUZMTEVWQlFWVXNRMEZCUXp0WlFVTnNSQ3hOUVVGTkxFTkJRVU1zVTBGQmFVSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU03VVVGRGVrTXNRMEZCUXp0UlFVTkVMRWxCUVVrc1UwRkJVeXhGUVVGRkxFTkJRVU03V1VGRFpDeE5RVUZOTEVOQlFVTXNVVUZCVVN4SFFVRkhMRTFCUVUwc1EwRkJReXhSUVVGUkxFbEJRVXNzUlVGQlZTeERRVUZETzFsQlEyaEVMRTFCUVUwc1EwRkJReXhSUVVGblFpeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRXRCUVVzc1EwRkJRenRSUVVONFF5eERRVUZETzFGQlEwUXNTVUZCU1N4UlFVRlJMRVZCUVVVc1EwRkJRenRaUVVOaUxFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NUVUZCVFN4RFFVRkRMRTFCUVUwc1NVRkJTeXhGUVVGVkxFTkJRVU03V1VGRE5VTXNUVUZCVFN4RFFVRkRMRTFCUVdNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTTdVVUZEZEVNc1EwRkJRenRSUVVORUxFbEJRVWtzVVVGQlVTeEZRVUZGTEVOQlFVTTdXVUZEWWl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNTVUZCU1N4RlFVRkZMRU5CUVZFc1EwRkJRenRaUVVNMVF5eE5RVUZOTEVOQlFVTXNUVUZCWXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF6dFJRVU4wUXl4RFFVRkRPMGxCUTBnc1EwRkJRenRKUVVWRUxFMUJRVTBzUTBGQlF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGJFVXNUMEZCVHl4TlFVRTBRaXhEUVVGRE8wRkJRM1JETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRllpeExRVUZoTEVOQlFVTXNVMEZCVXl4SFFVRkhMRk5CUVZNc1UwRkJVeXhEUVVNelF5eExRVUY1UWp0SlFVVjZRaXhQUVVGUExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVTnVRaXhQUVVGUExFdEJRVXNzUzBGQlN5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkZMRXRCUVVzc1EwRkJReXhYUVVGdFFpeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUTJoRkxHVkJRV1VzUTBGQlF5eFBRVUZQTEVOQlEzaENMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUldJc1MwRkJZU3hEUVVGRExGRkJRVkVzUjBGQlJ5eFRRVUZUTEZGQlFWRXNRMEZEZWtNc1MwRkJlVUk3U1VGRmVrSXNUMEZCVHl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGRGJrSXNUMEZCVHl4TFFVRkxMRXRCUVVzc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlJTeExRVUZMTEVOQlFVTXNWMEZCYlVJc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eEZRVU5vUlN4bFFVRmxMRU5CUVVNc1RVRkJUU3hEUVVOMlFpeERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEJRVVZpTEV0QlFXRXNRMEZCUXl4UlFVRlJMRWRCUVVjc1UwRkJVeXhSUVVGUkxFTkJRM3BETEV0QlFYbENPMGxCUlhwQ0xFOUJRVThzVVVGQlVTeERRVUZETEVkQlFVY3NRMEZEYWtJc1QwRkJUeXhMUVVGTExFdEJRVXNzVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUlN4TFFVRkxMRU5CUVVNc1YwRkJiVUlzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVTm9SU3hSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEdWQlFXVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1pVRkJaU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVU0zUkN4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVVmlMRXRCUVdFc1EwRkJReXhQUVVGUExFZEJRVWNzVTBGQlV5eFBRVUZQTEVOQlEzWkRMRXRCUVZFN1NVRkZVaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVTjJRaXhMUVVGTExFTkJRVU1zVjBGQmEwSXNSVUZEZUVJc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGQlF5eGxRVUZsTEVOQlFVTXNUVUZCVFN4RlFVRkZMR1ZCUVdVc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGREwwUXNRMEZCUXp0SlFVTkdMRWxCUVVrc1EwRkJReXhKUVVGSk8xRkJRVVVzVDBGQlR5eFRRVUZUTEVOQlFVTTdTVUZETlVJc1QwRkJUeXhMUVVGTExFTkJRVU1zU1VGQlpTeERRVUZYTEVOQlFVTTdRVUZETVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVVmlMRXRCUVdFc1EwRkJReXhWUVVGVkxFZEJRVWNzVTBGQlV5eFZRVUZWTEVOQlF6ZERMRXRCUVhsQ08wbEJSWHBDTEV0QlFVc3NSMEZCUnl4UFFVRlBMRXRCUVVzc1MwRkJTeXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZGTEV0QlFVc3NRMEZCUXl4WFFVRnRRaXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTTdTVUZEZWtVc1QwRkJUeXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVU5xUWl4TFFVRlpMRVZCUTFvc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGQlF5eGxRVUZsTEVOQlFVTXNUVUZCVFN4RlFVRkZMR1ZCUVdVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGRE4wUXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdRVUZGWWl4TFFVRmhMRU5CUVVNc1kwRkJZeXhIUVVGSExGTkJRVk1zWTBGQll5eERRVU55UkN4TFFVRjVRanRKUVV0NlFpeE5RVUZOTEZkQlFWY3NSMEZCWVN4RFFVRkRMR1ZCUVdVc1EwRkJReXhQUVVGUExFTkJRV0VzUTBGQlF6dEpRVU53UlN4TlFVRk5MRlZCUVZVc1IwRkJZU3hEUVVGRExHVkJRV1VzUTBGQlF5eE5RVUZOTEVOQlFXRXNRMEZCUXp0SlFVVnNSU3hOUVVGTkxGVkJRVlVzUjBGQlJ5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1YwRkJWeXhEUVVGRExFTkJRVU03U1VGRGFFUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEZWQlFWVXNRMEZCUXl4RFFVRkRPMGxCUlRsRExFMUJRVTBzVFVGQlRTeEhRVUZITEU5QlFVOHNTMEZCU3l4TFFVRkxMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRE8wbEJSWFpGTEUxQlFVMHNWMEZCVnl4SFFVRTRRaXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVU42UkN4TlFVRmhMRVZCUTJJc1ZVRkJWU3hEUVVOWUxFTkJRVU03U1VGRFJpeE5RVUZOTEZWQlFWVXNSMEZCT0VJc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGRGVFUXNUVUZCWVN4RlFVTmlMRk5CUVZNc1EwRkRWaXhEUVVGRE8wbEJSVVlzVDBGQlR6dFJRVU5NTEZkQlFWY3NSVUZCUlN4WFFVRlhMRVZCUVVVc1YwRkJWeXhKUVVGSkxFVkJRVVU3VVVGRE0wTXNWVUZCVlN4RlFVRkZMRlZCUVZVc1JVRkJSU3hYUVVGWExFbEJRVWtzUlVGQlJUdExRVU14UXl4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lFMXZaR1ZzSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1pXTnZjbUYwYjNJdGRtRnNhV1JoZEdsdmJsd2lPMXh1YVcxd2IzSjBJSHNnUTI5dWMzUnlkV04wYjNJc0lFMWxkR0ZrWVhSaElIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtaV052Y21GMGFXOXVYQ0k3WEc1cGJYQnZjblFnZXlCR1lXSnlhV05OYjJSbGJFdGxlWE1nZlNCbWNtOXRJRndpTGk0dlkyOXVjM1JoYm5SelhDSTdYRzVwYlhCdmNuUWdleUJUWldkeVpXZGhkR1ZrVFc5a1pXd2dmU0JtY205dElGd2lMaTR2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUVSQ1MyVjVjeUI5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdJdFpHVmpiM0poZEc5eWMxd2lPMXh1YVcxd2IzSjBJSHNnUTI5c2JHVmpkR2x2YmxKbGMyOXNkbVZ5TENCTmFYSnliM0pOWlhSaFpHRjBZU0I5SUdaeWIyMGdYQ0l1TGk5a1pXTnZjbUYwYjNKelhDSTdYRzVjYmsxdlpHVnNMbkJ5YjNSdmRIbHdaUzVwYzFOb1lYSmxaQ0E5SUdaMWJtTjBhVzl1SUdselUyaGhjbVZrUEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWEc0Z0lIUm9hWE02SUUxY2JpazZJR0p2YjJ4bFlXNGdlMXh1SUNCeVpYUjFjbTRnVFc5a1pXd3VhWE5UYUdGeVpXUW9kR2hwY3k1amIyNXpkSEoxWTNSdmNpQmhjeUJEYjI1emRISjFZM1J2Y2p4TlBpazdYRzU5TzF4dVhHNU5iMlJsYkM1d2NtOTBiM1I1Y0dVdWFYTlFjbWwyWVhSbElEMGdablZ1WTNScGIyNGdhWE5RY21sMllYUmxQRTBnWlhoMFpXNWtjeUJOYjJSbGJENG9YRzRnSUhSb2FYTTZJRTFjYmlrNklHSnZiMnhsWVc0Z2UxeHVJQ0J5WlhSMWNtNGdUVzlrWld3dWFYTlFjbWwyWVhSbEtIUm9hWE11WTI5dWMzUnlkV04wYjNJZ1lYTWdRMjl1YzNSeWRXTjBiM0k4VFQ0cE8xeHVmVHRjYmx4dVRXOWtaV3d1Y0hKdmRHOTBlWEJsTG5ObFozSmxaMkYwWlNBOUlHWjFibU4wYVc5dUlITmxaM0psWjJGMFpUeE5JR1Y0ZEdWdVpITWdUVzlrWld3K0tGeHVJQ0IwYUdsek9pQk5YRzRwT2lCVFpXZHlaV2RoZEdWa1RXOWtaV3c4VFQ0Z2UxeHVJQ0J5WlhSMWNtNGdUVzlrWld3dWMyVm5jbVZuWVhSbEtIUm9hWE1wTzF4dWZUdGNibHh1S0UxdlpHVnNJR0Z6SUdGdWVTa3VjMlZuY21WbllYUmxJRDBnWm5WdVkzUnBiMjRnYzJWbmNtVm5ZWFJsUEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWEc0Z0lHMXZaR1ZzT2lCTlhHNHBPaUJUWldkeVpXZGhkR1ZrVFc5a1pXdzhUVDRnZTF4dUlDQnBaaUFvSVUxdlpHVnNMbWx6VkhKaGJuTnBaVzUwS0cxdlpHVnNLU2tnY21WMGRYSnVJSHNnYlc5a1pXdzZJRzF2WkdWc0lIMDdYRzRnSUdOdmJuTjBJR1JsWTI5eVlYUmxaRkJ5YjNCbGNuUnBaWE1nUFZ4dUlDQWdJRTFsZEdGa1lYUmhMbWRsZEVGMGRISnBZblYwWlhNb2JXOWtaV3d1WTI5dWMzUnlkV04wYjNJZ1lYTWdZVzU1S1NCOGZDQmJYVHRjYmx4dUlDQmpiMjV6ZENCMGNtRnVjMmxsYm5SUWNtOXdjeUE5SUUxbGRHRmtZWFJoTG1kbGRDaGNiaUFnSUNCdGIyUmxiQzVqYjI1emRISjFZM1J2Y2lCaGN5QmhibmtzWEc0Z0lDQWdSRUpMWlhsekxsUlNRVTVUU1VWT1ZGeHVJQ0FwTzF4dUlDQmpiMjV6ZENCd2NtbDJZWFJsVUhKdmNHVnlkR2xsY3lBOUlFMWxkR0ZrWVhSaExtZGxkQ2hjYmlBZ0lDQnRiMlJsYkM1amIyNXpkSEoxWTNSdmNpQmhjeUJoYm5rc1hHNGdJQ0FnUm1GaWNtbGpUVzlrWld4TFpYbHpMbEJTU1ZaQlZFVmNiaUFnS1R0Y2JpQWdZMjl1YzNRZ2MyaGhjbVZrVUhKdmNHVnlkR2xsY3lBOUlFMWxkR0ZrWVhSaExtZGxkQ2hjYmlBZ0lDQnRiMlJsYkM1amIyNXpkSEoxWTNSdmNpQmhjeUJoYm5rc1hHNGdJQ0FnUm1GaWNtbGpUVzlrWld4TFpYbHpMbE5JUVZKRlJGeHVJQ0FwTzF4dVhHNGdJR052Ym5OMElISmxjM1ZzZERvZ1UyVm5jbVZuWVhSbFpFMXZaR1ZzUEUwK0lEMGdlMXh1SUNBZ0lHMXZaR1ZzT2lCN2ZTQmhjeUJTWldOdmNtUThhMlY1YjJZZ1RTd2dZVzU1UGl4Y2JpQWdJQ0J3ZFdKc2FXTTZJSHQ5SUdGeklGSmxZMjl5WkR4clpYbHZaaUJOTENCaGJuaytMRnh1SUNBZ0lIUnlZVzV6YVdWdWREb2dlMzBnWVhNZ1VtVmpiM0prUEd0bGVXOW1JRTBzSUdGdWVUNHNYRzRnSUNBZ2NISnBkbUYwWlhNNklIdDlJR0Z6SUZKbFkyOXlaRHhyWlhsdlppQk5MQ0JoYm5rK0xGeHVJQ0FnSUhOb1lYSmxaRG9nZTMwZ1lYTWdVbVZqYjNKa1BHdGxlVzltSUUwc0lHRnVlVDRzWEc0Z0lIMDdYRzVjYmlBZ1kyOXVjM1FnZEhKaGJuTnBaVzUwUzJWNWN5QTlJRTlpYW1WamRDNXJaWGx6S0hSeVlXNXphV1Z1ZEZCeWIzQnpJSHg4SUh0OUtUdGNiaUFnWTI5dWMzUWdjSEpwZG1GMFpVdGxlWE1nUFNCUFltcGxZM1F1YTJWNWN5aHdjbWwyWVhSbFVISnZjR1Z5ZEdsbGN5QjhmQ0I3ZlNrN1hHNGdJR052Ym5OMElITm9ZWEpsWkV0bGVYTWdQU0JQWW1wbFkzUXVhMlY1Y3loemFHRnlaV1JRY205d1pYSjBhV1Z6SUh4OElIdDlLVHRjYmx4dUlDQXZMeUJqYjI1emRDQndhMHRsZVNBOUlFMXZaR1ZzTG5CcktHMXZaR1ZzTG1OdmJuTjBjblZqZEc5eUlHRnpJR0Z1ZVNrN1hHNGdJR1p2Y2lBb1kyOXVjM1FnYTJWNUlHOW1JR1JsWTI5eVlYUmxaRkJ5YjNCbGNuUnBaWE1wSUh0Y2JpQWdJQ0JqYjI1emRDQjJZV3gxWlNBOUlHMXZaR1ZzVzJ0bGVTQmhjeUJyWlhsdlppQk5YVHRjYmlBZ0lDQmpiMjV6ZENCcGMxUnlZVzV6YVdWdWRDQTlJSFJ5WVc1emFXVnVkRXRsZVhNdWFXNWpiSFZrWlhNb2EyVjVLVHRjYmlBZ0lDQmpiMjV6ZENCcGMxQjFZbXhwWXlBOUlDRnBjMVJ5WVc1emFXVnVkRHRjYmlBZ0lDQmpiMjV6ZENCcGMxQnlhWFpoZEdVZ1BTQndjbWwyWVhSbFMyVjVjeTVwYm1Oc2RXUmxjeWhyWlhrcE8xeHVJQ0FnSUdOdmJuTjBJR2x6VTJoaGNtVmtJRDBnYzJoaGNtVmtTMlY1Y3k1cGJtTnNkV1JsY3loclpYa3BPMXh1SUNBZ0lDOHZJR052Ym5OMElHbHpVSEpwYldGeWVVdGxlU0E5SUd0bGVTQTlQVDBnY0d0TFpYazdYRzVjYmlBZ0lDQnBaaUFvYVhOVWNtRnVjMmxsYm5RZ2ZId2dhWE5RY21sMllYUmxJSHg4SUdselUyaGhjbVZrS1NCN1hHNGdJQ0FnSUNCeVpYTjFiSFF1ZEhKaGJuTnBaVzUwSUQwZ2NtVnpkV3gwTG5SeVlXNXphV1Z1ZENCOGZDQW9lMzBnWVhNZ1lXNTVLVHRjYmlBZ0lDQWdJQ2h5WlhOMWJIUXVkSEpoYm5OcFpXNTBJR0Z6SUdGdWVTbGJhMlY1WFNBOUlIWmhiSFZsTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvYVhOUWNtbDJZWFJsS1NCN1hHNGdJQ0FnSUNCeVpYTjFiSFF1Y0hKcGRtRjBaWE1nUFNCeVpYTjFiSFF1Y0hKcGRtRjBaWE1nZkh3Z0tIdDlJR0Z6SUdGdWVTazdYRzRnSUNBZ0lDQW9jbVZ6ZFd4MExuQnlhWFpoZEdWeklHRnpJR0Z1ZVNsYmEyVjVYU0E5SUhaaGJIVmxPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9hWE5UYUdGeVpXUXBJSHRjYmlBZ0lDQWdJSEpsYzNWc2RDNXphR0Z5WldRZ1BTQnlaWE4xYkhRdWMyaGhjbVZrSUh4OElDaDdmU0JoY3lCaGJua3BPMXh1SUNBZ0lDQWdLSEpsYzNWc2RDNXphR0Z5WldRZ1lYTWdZVzU1S1Z0clpYbGRJRDBnZG1Gc2RXVTdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHBjMUIxWW14cFl5a2dlMXh1SUNBZ0lDQWdjbVZ6ZFd4MExuQjFZbXhwWXlBOUlDaHlaWE4xYkhRdWNIVmliR2xqSUh4OElIdDlLU0JoY3lCaGJuazdYRzRnSUNBZ0lDQW9jbVZ6ZFd4MExuQjFZbXhwWXlCaGN5QmhibmtwVzJ0bGVWMGdQU0IyWVd4MVpUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQnlaWE4xYkhRdWJXOWtaV3dnUFNCTmIyUmxiQzVpZFdsc1pDaHlaWE4xYkhRdWNIVmliR2xqTENCdGIyUmxiQzVqYjI1emRISjFZM1J2Y2k1dVlXMWxLVHRjYmlBZ2NtVjBkWEp1SUhKbGMzVnNkQ0JoY3lCVFpXZHlaV2RoZEdWa1RXOWtaV3c4VFQ0N1hHNTlMbUpwYm1Rb1RXOWtaV3dwTzF4dVhHNG9UVzlrWld3Z1lYTWdZVzU1S1M1cGMxQnlhWFpoZEdVZ1BTQm1kVzVqZEdsdmJpQnBjMUJ5YVhaaGRHVThUU0JsZUhSbGJtUnpJRTF2WkdWc1BpaGNiaUFnYlc5a1pXdzZJRTBnZkNCRGIyNXpkSEoxWTNSdmNqeE5QbHh1S1RvZ1ltOXZiR1ZoYmlCN1hHNGdJSEpsZEhWeWJpQWhJVTFsZEdGa1lYUmhMbWRsZENoY2JpQWdJQ0IwZVhCbGIyWWdiVzlrWld3Z0lUMDlJRndpWm5WdVkzUnBiMjVjSWlBL0lDaHRiMlJsYkM1amIyNXpkSEoxWTNSdmNpQmhjeUJoYm5rcElEb2diVzlrWld3c1hHNGdJQ0FnUm1GaWNtbGpUVzlrWld4TFpYbHpMbEJTU1ZaQlZFVmNiaUFnS1R0Y2JuMHVZbWx1WkNoTmIyUmxiQ2s3WEc1Y2JpaE5iMlJsYkNCaGN5QmhibmtwTG1selUyaGhjbVZrSUQwZ1puVnVZM1JwYjI0Z2FYTlRhR0Z5WldROFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloY2JpQWdiVzlrWld3NklFMGdmQ0JEYjI1emRISjFZM1J2Y2p4TlBseHVLVG9nWW05dmJHVmhiaUI3WEc0Z0lISmxkSFZ5YmlBaElVMWxkR0ZrWVhSaExtZGxkQ2hjYmlBZ0lDQjBlWEJsYjJZZ2JXOWtaV3dnSVQwOUlGd2lablZ1WTNScGIyNWNJaUEvSUNodGIyUmxiQzVqYjI1emRISjFZM1J2Y2lCaGN5QmhibmtwSURvZ2JXOWtaV3dzWEc0Z0lDQWdSbUZpY21salRXOWtaV3hMWlhsekxsTklRVkpGUkZ4dUlDQXBPMXh1ZlM1aWFXNWtLRTF2WkdWc0tUdGNibHh1S0UxdlpHVnNJR0Z6SUdGdWVTa3ViV2x5Y205eVpXUWdQU0JtZFc1amRHbHZiaUJ0YVhKeWIzSmxaRHhOSUdWNGRHVnVaSE1nVFc5a1pXdytLRnh1SUNCdGIyUmxiRG9nVFNCOElFTnZibk4wY25WamRHOXlQRTArWEc0cE9pQmliMjlzWldGdUlIdGNiaUFnY21WMGRYSnVJRTFsZEdGa1lYUmhMbWRsZENoY2JpQWdJQ0IwZVhCbGIyWWdiVzlrWld3Z0lUMDlJRndpWm5WdVkzUnBiMjVjSWlBL0lDaHRiMlJsYkM1amIyNXpkSEoxWTNSdmNpQmhjeUJoYm5rcElEb2diVzlrWld3c1hHNGdJQ0FnVFdWMFlXUmhkR0V1YTJWNUtFWmhZbkpwWTAxdlpHVnNTMlY1Y3k1R1FVSlNTVU1zSUVaaFluSnBZMDF2WkdWc1MyVjVjeTVOU1ZKU1QxSXBYRzRnSUNrN1hHNTlMbUpwYm1Rb1RXOWtaV3dwTzF4dVhHNG9UVzlrWld3Z1lYTWdZVzU1S1M1dmQyNWxjazltSUQwZ1puVnVZM1JwYjI0Z2IzZHVaWEpQWmp4TklHVjRkR1Z1WkhNZ1RXOWtaV3crS0Z4dUlDQnRiMlJsYkRvZ1RWeHVLVG9nYzNSeWFXNW5JSHdnZFc1a1pXWnBibVZrSUh0Y2JpQWdZMjl1YzNRZ2JXVjBZU0E5SUUxbGRHRmtZWFJoTG1kbGRDaGNiaUFnSUNCdGIyUmxiQzVqYjI1emRISjFZM1J2Y2lCaGN5QmhibmtzWEc0Z0lDQWdUV1YwWVdSaGRHRXVhMlY1S0VaaFluSnBZMDF2WkdWc1MyVjVjeTVHUVVKU1NVTXNJRVpoWW5KcFkwMXZaR1ZzUzJWNWN5NVBWMDVGUkY5Q1dTbGNiaUFnS1R0Y2JpQWdhV1lnS0NGdFpYUmhLU0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1SUNCeVpYUjFjbTRnYlc5a1pXeGJiV1YwWVNCaGN5QnJaWGx2WmlCTlhTQmhjeUJ6ZEhKcGJtYzdYRzU5TG1KcGJtUW9UVzlrWld3cE8xeHVYRzRvVFc5a1pXd2dZWE1nWVc1NUtTNXRhWEp5YjNKbFpFRjBJRDBnWm5WdVkzUnBiMjRnYldseWNtOXlaV1JCZER4TklHVjRkR1Z1WkhNZ1RXOWtaV3crS0Z4dUlDQnRiMlJsYkRvZ1RTQjhJRU52Ym5OMGNuVmpkRzl5UEUwK1hHNHBPaUJOYVhKeWIzSk5aWFJoWkdGMFlTQjhJSFZ1WkdWbWFXNWxaQ0I3WEc0Z0lHMXZaR1ZzSUQwZ2RIbHdaVzltSUcxdlpHVnNJQ0U5UFNCY0ltWjFibU4wYVc5dVhDSWdQeUFvYlc5a1pXd3VZMjl1YzNSeWRXTjBiM0lnWVhNZ1lXNTVLU0E2SUcxdlpHVnNPMXh1SUNCeVpYUjFjbTRnVFdWMFlXUmhkR0V1WjJWMEtGeHVJQ0FnSUcxdlpHVnNJR0Z6SUdGdWVTeGNiaUFnSUNCTlpYUmhaR0YwWVM1clpYa29SbUZpY21salRXOWtaV3hMWlhsekxrWkJRbEpKUXl3Z1JtRmljbWxqVFc5a1pXeExaWGx6TGsxSlVsSlBVaWxjYmlBZ0tUdGNibjB1WW1sdVpDaE5iMlJsYkNrN1hHNWNiaWhOYjJSbGJDQmhjeUJoYm5rcExtTnZiR3hsWTNScGIyNXpSbTl5SUQwZ1puVnVZM1JwYjI0Z1kyOXNiR1ZqZEdsdmJuTkdiM0k4VFNCbGVIUmxibVJ6SUUxdlpHVnNQaWhjYmlBZ2JXOWtaV3c2SUUwZ2ZDQkRiMjV6ZEhKMVkzUnZjanhOUGx4dUtUb2dlMXh1SUNCd2NtbDJZWFJsUTI5c2N6b2dLSE4wY21sdVp5QjhJRU52Ykd4bFkzUnBiMjVTWlhOdmJIWmxjaWxiWFR0Y2JpQWdjMmhoY21Wa1EyOXNjem9nS0hOMGNtbHVaeUI4SUVOdmJHeGxZM1JwYjI1U1pYTnZiSFpsY2lsYlhUdGNibjBnZTF4dUlDQmpiMjV6ZENCd2NtbDJZWFJsUzJWNWN6b2djM1J5YVc1blcxMGdQU0JiUm1GaWNtbGpUVzlrWld4TFpYbHpMbEJTU1ZaQlZFVmRJR0Z6SUhOMGNtbHVaMXRkTzF4dUlDQmpiMjV6ZENCemFHRnlaV1JMWlhsek9pQnpkSEpwYm1kYlhTQTlJRnRHWVdKeWFXTk5iMlJsYkV0bGVYTXVVMGhCVWtWRVhTQmhjeUJ6ZEhKcGJtZGJYVHRjYmx4dUlDQmpiMjV6ZENCd2NtbDJZWFJsUzJWNUlEMGdUV1YwWVdSaGRHRXVhMlY1S0M0dUxuQnlhWFpoZEdWTFpYbHpLVHRjYmlBZ1kyOXVjM1FnYzJoaGNtVmtTMlY1SUQwZ1RXVjBZV1JoZEdFdWEyVjVLQzR1TG5Ob1lYSmxaRXRsZVhNcE8xeHVYRzRnSUdOdmJuTjBJR052Ym5OMGNpQTlJSFI1Y0dWdlppQnRiMlJsYkNBOVBUMGdYQ0ptZFc1amRHbHZibHdpSUQ4Z2JXOWtaV3dnT2lCdGIyUmxiQzVqYjI1emRISjFZM1J2Y2p0Y2JseHVJQ0JqYjI1emRDQndjbWwyWVhSbFRXVjBZVG9nZXlCamIyeHNaV04wYVc5dWN6b2djM1J5YVc1blcxMGdmU0E5SUUxbGRHRmtZWFJoTG1kbGRDaGNiaUFnSUNCamIyNXpkSElnWVhNZ1lXNTVMRnh1SUNBZ0lIQnlhWFpoZEdWTFpYbGNiaUFnS1R0Y2JpQWdZMjl1YzNRZ2MyaGhjbVZrVFdWMFlUb2dleUJqYjJ4c1pXTjBhVzl1Y3pvZ2MzUnlhVzVuVzEwZ2ZTQTlJRTFsZEdGa1lYUmhMbWRsZENoY2JpQWdJQ0JqYjI1emRISWdZWE1nWVc1NUxGeHVJQ0FnSUhOb1lYSmxaRXRsZVZ4dUlDQXBPMXh1WEc0Z0lISmxkSFZ5YmlCN1hHNGdJQ0FnY0hKcGRtRjBaVU52YkhNNklIQnlhWFpoZEdWTlpYUmhQeTVqYjJ4c1pXTjBhVzl1Y3lCOGZDQmJYU3hjYmlBZ0lDQnphR0Z5WldSRGIyeHpPaUJ6YUdGeVpXUk5aWFJoUHk1amIyeHNaV04wYVc5dWN5QjhmQ0JiWFN4Y2JpQWdmVHRjYm4wdVltbHVaQ2hOYjJSbGJDazdYRzRpWFgwPSJdfQ==
94
+ decorator_validation_1.Model.chaincodeOf = function chaincodeOf(model, ...args) {
95
+ const m = decoration_1.Metadata.get(model, constants_js_1.FabricModelKeys.CHAINCODE);
96
+ if (!m || !m.resolver)
97
+ return undefined;
98
+ if (typeof m.resolver === "string")
99
+ return m.resolver;
100
+ const ctx = args.pop();
101
+ if (!ctx || !(ctx instanceof core_1.Context))
102
+ throw new db_decorators_1.InternalError(`No context provided for chaincode resolution`);
103
+ return m.resolver(model, ...args, ctx);
104
+ }.bind(decorator_validation_1.Model);
105
+ decorator_validation_1.Model.contractOf = function contractOf(model, ...args) {
106
+ const m = decoration_1.Metadata.get(model, constants_js_1.FabricModelKeys.CONTRACT);
107
+ if (!m || !m.resolver)
108
+ return undefined;
109
+ if (typeof m.resolver === "string")
110
+ return m.resolver;
111
+ const ctx = args.pop();
112
+ if (!ctx || !(ctx instanceof core_1.Context))
113
+ throw new db_decorators_1.InternalError(`No context provided for chaincode resolution`);
114
+ return m.resolver(model, ...args, ctx);
115
+ }.bind(decorator_validation_1.Model);
116
+ decorator_validation_1.Model.channelOf = function channelOf(model, ...args) {
117
+ const m = decoration_1.Metadata.get(model, constants_js_1.FabricModelKeys.CHANNEL);
118
+ if (!m || !m.resolver)
119
+ return undefined;
120
+ if (typeof m.resolver === "string")
121
+ return m.resolver;
122
+ const ctx = args.pop();
123
+ if (!ctx || !(ctx instanceof core_1.Context))
124
+ throw new db_decorators_1.InternalError(`No context provided for chaincode resolution`);
125
+ return m.resolver(model, ...args, ctx);
126
+ }.bind(decorator_validation_1.Model);
127
+ //# sourceMappingURL=overrides.js.map
128
+ //# sourceMappingURL=overrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overrides.js","sourceRoot":"","sources":["overrides.js"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhcmVkL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUTFNPcHRpb25zIH0gZnJvbSBcImZhYnJpYy1jYS1jbGllbnRcIjtcbmltcG9ydCB7IENsaWVudElkZW50aXR5IH0gZnJvbSBcImZhYnJpYy1zaGltLWFwaVwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBBZGFwdGVyRmxhZ3MgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IExvZ2dlciB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuXG5leHBvcnQgdHlwZSBIU01PcHRpb25zID0ge1xuICBsaWJyYXJ5OiBzdHJpbmc7XG4gIHNsb3Q/OiBudW1iZXI7XG4gIHRva2VuTGFiZWw/OiBzdHJpbmc7XG4gIHBpbjogc3RyaW5nO1xuICBrZXlMYWJlbD86IHN0cmluZztcbiAga2V5SWRIZXg/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBNc3BEZXRhaWxzID0ge1xuICBlbmRwb2ludDogc3RyaW5nO1xuICB0bHNDZXJ0Pzogc3RyaW5nIHwgQnVmZmVyO1xuICBhbGlhcz86IHN0cmluZztcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIGNvbm5lY3RpbmcgdG8gYSBIeXBlcmxlZGdlciBGYWJyaWMgcGVlclxuICogQHN1bW1hcnkgQ29udGFpbnMgYWxsIHRoZSBuZWNlc3NhcnkgcGFyYW1ldGVycyB0byBlc3RhYmxpc2ggYSBjb25uZWN0aW9uIHRvIGEgRmFicmljIHBlZXIgYW5kIGludGVyYWN0IHdpdGggY2hhaW5jb2RlXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBQZWVyQ29uZmlnXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY3J5cHRvUGF0aCAtIFBhdGggdG8gdGhlIGNyeXB0byBtYXRlcmlhbHNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBrZXlDZXJ0T3JEaXJlY3RvcnlQYXRoIC0gS2V5IGZpbGUgY29udGVudHMgb3IgUGF0aCB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgcHJpdmF0ZSBrZXlzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY2VydENlcnRPckRpcmVjdG9yeVBhdGggLSBDZXJ0IGZpbGUgY29udGVudHMgb3IgUGF0aCB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgY2VydGlmaWNhdGVzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdGxzQ2VydCAtIFBhdGggdG8gdGhlIFRMUyBjZXJ0aWZpY2F0ZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IHBlZXJFbmRwb2ludCAtIEVuZHBvaW50IFVSTCBmb3IgdGhlIHBlZXJcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBwZWVySG9zdEFsaWFzIC0gSG9zdCBhbGlhcyBmb3IgdGhlIHBlZXJcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjYUVuZHBvaW50IC0gRW5kcG9pbnQgVVJMIGZvciB0aGUgY2VydGlmaWNhdGUgYXV0aG9yaXR5XG4gKiBAcHJvcGVydHkge3N0cmluZ30gY2FUbHNDZXJ0aWZpY2F0ZSAtIFRMUyBjZXJ0aWZpY2F0ZSBmb3IgdGhlIGNlcnRpZmljYXRlIGF1dGhvcml0eVxuICogQHByb3BlcnR5IHtzdHJpbmd9IGNhQ2VydCAtIENlcnRpZmljYXRlIGZvciB0aGUgY2VydGlmaWNhdGUgYXV0aG9yaXR5XG4gKiBAcHJvcGVydHkge3N0cmluZ30gY2FLZXkgLSBLZXkgZm9yIHRoZSBjZXJ0aWZpY2F0ZSBhdXRob3JpdHlcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjaGFpbmNvZGVOYW1lIC0gTmFtZSBvZiB0aGUgY2hhaW5jb2RlIHRvIGludGVyYWN0IHdpdGhcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbY29udHJhY3ROYW1lXSAtIE9wdGlvbmFsIG5hbWUgb2YgdGhlIHNwZWNpZmljIGNvbnRyYWN0IHdpdGhpbiB0aGUgY2hhaW5jb2RlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2NhXSAtIE9wdGlvbmFsIGNlcnRpZmljYXRlIGF1dGhvcml0eSBuYW1lXG4gKiBAcHJvcGVydHkge3N0cmluZ30gbXNwSWQgLSBNZW1iZXJzaGlwIFNlcnZpY2UgUHJvdmlkZXIgSURcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjaGFubmVsIC0gQ2hhbm5lbCBuYW1lXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1mYWJyaWMuc2hhcmVkXG4gKi9cbmV4cG9ydCB0eXBlIFBlZXJDb25maWcgPSB7XG4gIGNyeXB0b1BhdGg6IHN0cmluZztcbiAga2V5Q2VydE9yRGlyZWN0b3J5UGF0aDogc3RyaW5nIHwgQnVmZmVyO1xuICBjZXJ0Q2VydE9yRGlyZWN0b3J5UGF0aDogc3RyaW5nIHwgQnVmZmVyO1xuICB0bHNDZXJ0OiBzdHJpbmcgfCBCdWZmZXI7XG4gIGFsbG93R2F0ZXdheU92ZXJyaWRlPzogYm9vbGVhbjtcbiAgbXNwTWFwPzogUmVjb3JkPHN0cmluZywgTXNwRGV0YWlsc1tdPjtcbiAgbGVnYWN5TXNwQ291bnQ/OiBudW1iZXI7XG4gIHBlZXJFbmRwb2ludDogc3RyaW5nO1xuICBwZWVySG9zdEFsaWFzOiBzdHJpbmc7XG4gIGNhRW5kcG9pbnQ/OiBzdHJpbmc7XG4gIGNhVGxzQ2VydGlmaWNhdGU/OiBzdHJpbmc7XG4gIGNhQ2VydD86IHN0cmluZztcbiAgY2FLZXk/OiBzdHJpbmc7XG4gIGNoYWluY29kZU5hbWU6IHN0cmluZztcbiAgY29udHJhY3ROYW1lPzogc3RyaW5nO1xuICBzaXplTGltaXQ/OiBudW1iZXI7XG4gIGNhPzogc3RyaW5nO1xuICBtc3BJZDogc3RyaW5nO1xuICBjaGFubmVsOiBzdHJpbmc7XG4gIGV2YWx1YXRlVGltZW91dDogbnVtYmVyO1xuICBlbmRvcnNlVGltZW91dDogbnVtYmVyO1xuICBzdWJtaXRUaW1lb3V0OiBudW1iZXI7XG4gIGNvbW1pdFRpbWVvdXQ6IG51bWJlcjtcbiAgaHNtPzogSFNNT3B0aW9ucztcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgb25seSBjaGFpbmNvZGUgZXZlbnRzIHdob3NlIG93bmVyIHNlZ21lbnQgaW4gdGhlIGV2ZW50IG5hbWUgbWF0Y2hlc1xuICAgKiB0aGlzIGFkYXB0ZXIncyBtc3BJZCBhcmUgZm9yd2FyZGVkIHRvIG9ic2VydmVycy4gRXZlbnRzIHdpdGggYSBkaWZmZXJlbnQgb3duZXIsXG4gICAqIG9yIHdob3NlIGV2ZW50IG5hbWUgY2FycmllcyBubyBvd25lciBzZWdtZW50LCBwYXNzIHRocm91Z2ggdW5maWx0ZXJlZC5cbiAgICogRGVmYXVsdHMgdG8gZmFsc2UgKGFsbCBldmVudHMgYXJlIGZvcndhcmRlZCByZWdhcmRsZXNzIG9mIG93bmVyKS5cbiAgICovXG4gIG1zcEV2ZW50T25seT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGVuIHRydWUgKGRlZmF1bHQpLCB0aGUgRmFicmljQ2xpZW50RGlzcGF0Y2ggdXNlcyBhIFByb3h5LWJhc2VkIG1lY2hhbmlzbVxuICAgKiB0byBlbWl0IGV2ZW50cyBmb3IgQUxMIENSVUQgb3BlcmF0aW9ucyB3aXRob3V0IGEgbGl2ZSBnYXRld2F5IGNvbm5lY3Rpb24uXG4gICAqIFdoZW4gZmFsc2UsIHRoZSBkaXNwYXRjaCBvcGVucyBhIHJlYWwgY2hhaW5jb2RlLWV2ZW50IHN1YnNjcmlwdGlvbiB2aWEgdGhlXG4gICAqIGdhdGV3YXkgYW5kIGxpbWl0cyB0aGUgbG9jYWwgcHJveHkgZmFsbGJhY2sgdG8gZnVsbHktc2VncmVnYXRlZCBtb2RlbHMgb25seS5cbiAgICovXG4gIHN5bnRoZXRpY0V2ZW50cz86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZvciBjb25uZWN0aW5nIHRvIGEgSHlwZXJsZWRnZXIgRmFicmljIHBlZXJcbiAqIEBzdW1tYXJ5IENvbnRhaW5zIGFsbCB0aGUgbmVjZXNzYXJ5IHBhcmFtZXRlcnMgdG8gZXN0YWJsaXNoIGEgY29ubmVjdGlvbiB0byBhIEZhYnJpYyBwZWVyIGFuZCBpbnRlcmFjdCB3aXRoIGNoYWluY29kZVxuICogQHR5cGVkZWYge09iamVjdH0gQ0FDb25maWdcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB1cmwgLSBQYXRoIHRvIHRoZSBjcnlwdG8gbWF0ZXJpYWxzXG4gKiBAcHJvcGVydHkge1RMU09wdGlvbnN9IHRscyAtIFBhdGggdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHByaXZhdGUga2V5c1xuICogQHByb3BlcnR5IHtzdHJpbmd9IGNhTmFtZSAtIFBhdGggdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIGNlcnRpZmljYXRlc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IHRsc0NlcnRQYXRoIC0gUGF0aCB0byB0aGUgVExTIGNlcnRpZmljYXRlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY2FDZXJ0IC0gRW5kcG9pbnQgVVJMIGZvciB0aGUgcGVlclxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtjYUtleV0gLSBIb3N0IGFsaWFzIGZvciB0aGUgcGVlciBvciBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgYWRtaW4gcHJpdmF0ZSBrZXlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5zaGFyZWRcbiAqL1xuZXhwb3J0IHR5cGUgQ0FDb25maWcgPSB7XG4gIHVybDogc3RyaW5nO1xuICB0bHM/OiBUTFNPcHRpb25zO1xuICBjYU5hbWU6IHN0cmluZztcbiAgY2FDZXJ0OiBzdHJpbmc7XG4gIGNhS2V5Pzogc3RyaW5nO1xuICBoc20/OiBIU01PcHRpb25zO1xufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVXNlciBjcmVkZW50aWFscyBmb3IgQ0EgZW5yb2xsbWVudCBvciBhY2Nlc3NcbiAqIEBzdW1tYXJ5IE9wdGlvbmFsIHVzZXJuYW1lL3Bhc3N3b3JkIHBhaXIgdXNlZCB3aGVuIGVucm9sbGluZyB3aXRoIGEgRmFicmljIENBIG9yIGF1dGhlbnRpY2F0aW5nIGluIGNsaWVudCB1dGlsaXRpZXNcbiAqIEBpbnRlcmZhY2UgQ3JlZGVudGlhbHNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbdXNlck5hbWVdIC0gT3B0aW9uYWwgdXNlcm5hbWVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbcGFzc3dvcmRdIC0gT3B0aW9uYWwgcGFzc3dvcmRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5zaGFyZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVkZW50aWFscyB7XG4gIHVzZXJOYW1lPzogc3RyaW5nO1xuICBwYXNzd29yZD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgU2VncmVnYXRlZE1vZGVsPE0gZXh0ZW5kcyBNb2RlbD4gPSB7XG4gIG1vZGVsOiBNO1xuICBwdWJsaWM/OiBSZWNvcmQ8a2V5b2YgTSwgYW55PjtcbiAgdHJhbnNpZW50PzogUmVjb3JkPGtleW9mIE0sIGFueT47XG4gIHByaXZhdGVzPzogUmVjb3JkPHN0cmluZywgUmVjb3JkPGtleW9mIE0sIGFueT4+O1xuICBzaGFyZWQ/OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8a2V5b2YgTSwgYW55Pj47XG59O1xuXG5leHBvcnQgdHlwZSBGYWJyaWNGbGFnczxMT0cgZXh0ZW5kcyBMb2dnZXIgPSBMb2dnZXI+ID0gQWRhcHRlckZsYWdzPExPRz4gJiB7XG4gIHNlZ3JlZ2F0ZWQ/OiBzdHJpbmc7XG4gIG1pcnJvcj86IGJvb2xlYW47XG4gIG1pcnJvckNvbGxlY3Rpb24/OiBzdHJpbmc7XG4gIGlkZW50aXR5Pzogc3RyaW5nIHwgQ2xpZW50SWRlbnRpdHk7XG4gIG93bmVyT3ZlcnJpZGU/OiBzdHJpbmc7XG59O1xuIl19
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLGs2TkFBazZOIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEhsd1pYTXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk5emNtTXZjMmhoY21Wa0wzUjVjR1Z6TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QlVURk5QY0hScGIyNXpJSDBnWm5KdmJTQmNJbVpoWW5KcFl5MWpZUzFqYkdsbGJuUmNJanRjYm1sdGNHOXlkQ0I3SUVOc2FXVnVkRWxrWlc1MGFYUjVJSDBnWm5KdmJTQmNJbVpoWW5KcFl5MXphR2x0TFdGd2FWd2lPMXh1YVcxd2IzSjBJSHNnVFc5a1pXd2dmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMlJsWTI5eVlYUnZjaTEyWVd4cFpHRjBhVzl1WENJN1hHNXBiWEJ2Y25RZ2V5QkJaR0Z3ZEdWeVJteGhaM01nZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJOdmNtVmNJanRjYm1sdGNHOXlkQ0I3SUV4dloyZGxjaUI5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12Ykc5bloybHVaMXdpTzF4dVhHNWxlSEJ2Y25RZ2RIbHdaU0JJVTAxUGNIUnBiMjV6SUQwZ2UxeHVJQ0JzYVdKeVlYSjVPaUJ6ZEhKcGJtYzdYRzRnSUhOc2IzUS9PaUJ1ZFcxaVpYSTdYRzRnSUhSdmEyVnVUR0ZpWld3L09pQnpkSEpwYm1jN1hHNGdJSEJwYmpvZ2MzUnlhVzVuTzF4dUlDQnJaWGxNWVdKbGJEODZJSE4wY21sdVp6dGNiaUFnYTJWNVNXUklaWGcvT2lCemRISnBibWM3WEc1OU8xeHVYRzVsZUhCdmNuUWdkSGx3WlNCTmMzQkVaWFJoYVd4eklEMGdlMXh1SUNCbGJtUndiMmx1ZERvZ2MzUnlhVzVuTzF4dUlDQjBiSE5EWlhKMFB6b2djM1J5YVc1bklId2dRblZtWm1WeU8xeHVJQ0JoYkdsaGN6ODZJSE4wY21sdVp6dGNibjA3WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRU52Ym1acFozVnlZWFJwYjI0Z1ptOXlJR052Ym01bFkzUnBibWNnZEc4Z1lTQkllWEJsY214bFpHZGxjaUJHWVdKeWFXTWdjR1ZsY2x4dUlDb2dRSE4xYlcxaGNua2dRMjl1ZEdGcGJuTWdZV3hzSUhSb1pTQnVaV05sYzNOaGNua2djR0Z5WVcxbGRHVnljeUIwYnlCbGMzUmhZbXhwYzJnZ1lTQmpiMjV1WldOMGFXOXVJSFJ2SUdFZ1JtRmljbWxqSUhCbFpYSWdZVzVrSUdsdWRHVnlZV04wSUhkcGRHZ2dZMmhoYVc1amIyUmxYRzRnS2lCQWRIbHdaV1JsWmlCN1QySnFaV04wZlNCUVpXVnlRMjl1Wm1sblhHNGdLaUJBY0hKdmNHVnlkSGtnZTNOMGNtbHVaMzBnWTNKNWNIUnZVR0YwYUNBdElGQmhkR2dnZEc4Z2RHaGxJR055ZVhCMGJ5QnRZWFJsY21saGJITmNiaUFxSUVCd2NtOXdaWEowZVNCN2MzUnlhVzVuZlNCclpYbERaWEowVDNKRWFYSmxZM1J2Y25sUVlYUm9JQzBnUzJWNUlHWnBiR1VnWTI5dWRHVnVkSE1nYjNJZ1VHRjBhQ0IwYnlCMGFHVWdaR2x5WldOMGIzSjVJR052Ym5SaGFXNXBibWNnY0hKcGRtRjBaU0JyWlhselhHNGdLaUJBY0hKdmNHVnlkSGtnZTNOMGNtbHVaMzBnWTJWeWRFTmxjblJQY2tScGNtVmpkRzl5ZVZCaGRHZ2dMU0JEWlhKMElHWnBiR1VnWTI5dWRHVnVkSE1nYjNJZ1VHRjBhQ0IwYnlCMGFHVWdaR2x5WldOMGIzSjVJR052Ym5SaGFXNXBibWNnWTJWeWRHbG1hV05oZEdWelhHNGdLaUJBY0hKdmNHVnlkSGtnZTNOMGNtbHVaMzBnZEd4elEyVnlkQ0F0SUZCaGRHZ2dkRzhnZEdobElGUk1VeUJqWlhKMGFXWnBZMkYwWlZ4dUlDb2dRSEJ5YjNCbGNuUjVJSHR6ZEhKcGJtZDlJSEJsWlhKRmJtUndiMmx1ZENBdElFVnVaSEJ2YVc1MElGVlNUQ0JtYjNJZ2RHaGxJSEJsWlhKY2JpQXFJRUJ3Y205d1pYSjBlU0I3YzNSeWFXNW5mU0J3WldWeVNHOXpkRUZzYVdGeklDMGdTRzl6ZENCaGJHbGhjeUJtYjNJZ2RHaGxJSEJsWlhKY2JpQXFJRUJ3Y205d1pYSjBlU0I3YzNSeWFXNW5mU0JqWVVWdVpIQnZhVzUwSUMwZ1JXNWtjRzlwYm5RZ1ZWSk1JR1p2Y2lCMGFHVWdZMlZ5ZEdsbWFXTmhkR1VnWVhWMGFHOXlhWFI1WEc0Z0tpQkFjSEp2Y0dWeWRIa2dlM04wY21sdVozMGdZMkZVYkhORFpYSjBhV1pwWTJGMFpTQXRJRlJNVXlCalpYSjBhV1pwWTJGMFpTQm1iM0lnZEdobElHTmxjblJwWm1sallYUmxJR0YxZEdodmNtbDBlVnh1SUNvZ1FIQnliM0JsY25SNUlIdHpkSEpwYm1kOUlHTmhRMlZ5ZENBdElFTmxjblJwWm1sallYUmxJR1p2Y2lCMGFHVWdZMlZ5ZEdsbWFXTmhkR1VnWVhWMGFHOXlhWFI1WEc0Z0tpQkFjSEp2Y0dWeWRIa2dlM04wY21sdVozMGdZMkZMWlhrZ0xTQkxaWGtnWm05eUlIUm9aU0JqWlhKMGFXWnBZMkYwWlNCaGRYUm9iM0pwZEhsY2JpQXFJRUJ3Y205d1pYSjBlU0I3YzNSeWFXNW5mU0JqYUdGcGJtTnZaR1ZPWVcxbElDMGdUbUZ0WlNCdlppQjBhR1VnWTJoaGFXNWpiMlJsSUhSdklHbHVkR1Z5WVdOMElIZHBkR2hjYmlBcUlFQndjbTl3WlhKMGVTQjdjM1J5YVc1bmZTQmJZMjl1ZEhKaFkzUk9ZVzFsWFNBdElFOXdkR2x2Ym1Gc0lHNWhiV1VnYjJZZ2RHaGxJSE53WldOcFptbGpJR052Ym5SeVlXTjBJSGRwZEdocGJpQjBhR1VnWTJoaGFXNWpiMlJsWEc0Z0tpQkFjSEp2Y0dWeWRIa2dlM04wY21sdVozMGdXMk5oWFNBdElFOXdkR2x2Ym1Gc0lHTmxjblJwWm1sallYUmxJR0YxZEdodmNtbDBlU0J1WVcxbFhHNGdLaUJBY0hKdmNHVnlkSGtnZTNOMGNtbHVaMzBnYlhOd1NXUWdMU0JOWlcxaVpYSnphR2x3SUZObGNuWnBZMlVnVUhKdmRtbGtaWElnU1VSY2JpQXFJRUJ3Y205d1pYSjBlU0I3YzNSeWFXNW5mU0JqYUdGdWJtVnNJQzBnUTJoaGJtNWxiQ0J1WVcxbFhHNGdLaUJBYldWdFltVnlUMllnYlc5a2RXeGxPbVp2Y2kxbVlXSnlhV011YzJoaGNtVmtYRzRnS2k5Y2JtVjRjRzl5ZENCMGVYQmxJRkJsWlhKRGIyNW1hV2NnUFNCN1hHNGdJR055ZVhCMGIxQmhkR2c2SUhOMGNtbHVaenRjYmlBZ2EyVjVRMlZ5ZEU5eVJHbHlaV04wYjNKNVVHRjBhRG9nYzNSeWFXNW5JSHdnUW5WbVptVnlPMXh1SUNCalpYSjBRMlZ5ZEU5eVJHbHlaV04wYjNKNVVHRjBhRG9nYzNSeWFXNW5JSHdnUW5WbVptVnlPMXh1SUNCMGJITkRaWEowT2lCemRISnBibWNnZkNCQ2RXWm1aWEk3WEc0Z0lHRnNiRzkzUjJGMFpYZGhlVTkyWlhKeWFXUmxQem9nWW05dmJHVmhianRjYmlBZ2JYTndUV0Z3UHpvZ1VtVmpiM0prUEhOMGNtbHVaeXdnVFhOd1JHVjBZV2xzYzF0ZFBqdGNiaUFnYkdWbllXTjVUWE53UTI5MWJuUS9PaUJ1ZFcxaVpYSTdYRzRnSUhCbFpYSkZibVJ3YjJsdWREb2djM1J5YVc1bk8xeHVJQ0J3WldWeVNHOXpkRUZzYVdGek9pQnpkSEpwYm1jN1hHNGdJR05oUlc1a2NHOXBiblEvT2lCemRISnBibWM3WEc0Z0lHTmhWR3h6UTJWeWRHbG1hV05oZEdVL09pQnpkSEpwYm1jN1hHNGdJR05oUTJWeWREODZJSE4wY21sdVp6dGNiaUFnWTJGTFpYay9PaUJ6ZEhKcGJtYzdYRzRnSUdOb1lXbHVZMjlrWlU1aGJXVTZJSE4wY21sdVp6dGNiaUFnWTI5dWRISmhZM1JPWVcxbFB6b2djM1J5YVc1bk8xeHVJQ0J6YVhwbFRHbHRhWFEvT2lCdWRXMWlaWEk3WEc0Z0lHTmhQem9nYzNSeWFXNW5PMXh1SUNCdGMzQkpaRG9nYzNSeWFXNW5PMXh1SUNCamFHRnVibVZzT2lCemRISnBibWM3WEc0Z0lHVjJZV3gxWVhSbFZHbHRaVzkxZERvZ2JuVnRZbVZ5TzF4dUlDQmxibVJ2Y25ObFZHbHRaVzkxZERvZ2JuVnRZbVZ5TzF4dUlDQnpkV0p0YVhSVWFXMWxiM1YwT2lCdWRXMWlaWEk3WEc0Z0lHTnZiVzFwZEZScGJXVnZkWFE2SUc1MWJXSmxjanRjYmlBZ2FITnRQem9nU0ZOTlQzQjBhVzl1Y3p0Y2JpQWdMeW9xWEc0Z0lDQXFJRmRvWlc0Z2RISjFaU3dnYjI1c2VTQmphR0ZwYm1OdlpHVWdaWFpsYm5SeklIZG9iM05sSUc5M2JtVnlJSE5sWjIxbGJuUWdhVzRnZEdobElHVjJaVzUwSUc1aGJXVWdiV0YwWTJobGMxeHVJQ0FnS2lCMGFHbHpJR0ZrWVhCMFpYSW5jeUJ0YzNCSlpDQmhjbVVnWm05eWQyRnlaR1ZrSUhSdklHOWljMlZ5ZG1WeWN5NGdSWFpsYm5SeklIZHBkR2dnWVNCa2FXWm1aWEpsYm5RZ2IzZHVaWElzWEc0Z0lDQXFJRzl5SUhkb2IzTmxJR1YyWlc1MElHNWhiV1VnWTJGeWNtbGxjeUJ1YnlCdmQyNWxjaUJ6WldkdFpXNTBMQ0J3WVhOeklIUm9jbTkxWjJnZ2RXNW1hV3gwWlhKbFpDNWNiaUFnSUNvZ1JHVm1ZWFZzZEhNZ2RHOGdabUZzYzJVZ0tHRnNiQ0JsZG1WdWRITWdZWEpsSUdadmNuZGhjbVJsWkNCeVpXZGhjbVJzWlhOeklHOW1JRzkzYm1WeUtTNWNiaUFnSUNvdlhHNGdJRzF6Y0VWMlpXNTBUMjVzZVQ4NklHSnZiMnhsWVc0N1hHNGdJQzhxS2x4dUlDQWdLaUJYYUdWdUlIUnlkV1VnS0dSbFptRjFiSFFwTENCMGFHVWdSbUZpY21salEyeHBaVzUwUkdsemNHRjBZMmdnZFhObGN5QmhJRkJ5YjNoNUxXSmhjMlZrSUcxbFkyaGhibWx6YlZ4dUlDQWdLaUIwYnlCbGJXbDBJR1YyWlc1MGN5Qm1iM0lnUVV4TUlFTlNWVVFnYjNCbGNtRjBhVzl1Y3lCM2FYUm9iM1YwSUdFZ2JHbDJaU0JuWVhSbGQyRjVJR052Ym01bFkzUnBiMjR1WEc0Z0lDQXFJRmRvWlc0Z1ptRnNjMlVzSUhSb1pTQmthWE53WVhSamFDQnZjR1Z1Y3lCaElISmxZV3dnWTJoaGFXNWpiMlJsTFdWMlpXNTBJSE4xWW5OamNtbHdkR2x2YmlCMmFXRWdkR2hsWEc0Z0lDQXFJR2RoZEdWM1lYa2dZVzVrSUd4cGJXbDBjeUIwYUdVZ2JHOWpZV3dnY0hKdmVIa2dabUZzYkdKaFkyc2dkRzhnWm5Wc2JIa3RjMlZuY21WbllYUmxaQ0J0YjJSbGJITWdiMjVzZVM1Y2JpQWdJQ292WEc0Z0lITjViblJvWlhScFkwVjJaVzUwY3o4NklHSnZiMnhsWVc0N1hHNTlPMXh1WEc0dktpcGNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQkRiMjVtYVdkMWNtRjBhVzl1SUdadmNpQmpiMjV1WldOMGFXNW5JSFJ2SUdFZ1NIbHdaWEpzWldSblpYSWdSbUZpY21saklIQmxaWEpjYmlBcUlFQnpkVzF0WVhKNUlFTnZiblJoYVc1eklHRnNiQ0IwYUdVZ2JtVmpaWE56WVhKNUlIQmhjbUZ0WlhSbGNuTWdkRzhnWlhOMFlXSnNhWE5vSUdFZ1kyOXVibVZqZEdsdmJpQjBieUJoSUVaaFluSnBZeUJ3WldWeUlHRnVaQ0JwYm5SbGNtRmpkQ0IzYVhSb0lHTm9ZV2x1WTI5a1pWeHVJQ29nUUhSNWNHVmtaV1lnZTA5aWFtVmpkSDBnUTBGRGIyNW1hV2RjYmlBcUlFQndjbTl3WlhKMGVTQjdjM1J5YVc1bmZTQjFjbXdnTFNCUVlYUm9JSFJ2SUhSb1pTQmpjbmx3ZEc4Z2JXRjBaWEpwWVd4elhHNGdLaUJBY0hKdmNHVnlkSGtnZTFSTVUwOXdkR2x2Ym5OOUlIUnNjeUF0SUZCaGRHZ2dkRzhnZEdobElHUnBjbVZqZEc5eWVTQmpiMjUwWVdsdWFXNW5JSEJ5YVhaaGRHVWdhMlY1YzF4dUlDb2dRSEJ5YjNCbGNuUjVJSHR6ZEhKcGJtZDlJR05oVG1GdFpTQXRJRkJoZEdnZ2RHOGdkR2hsSUdScGNtVmpkRzl5ZVNCamIyNTBZV2x1YVc1bklHTmxjblJwWm1sallYUmxjMXh1SUNvZ1FIQnliM0JsY25SNUlIdHpkSEpwYm1kOUlIUnNjME5sY25SUVlYUm9JQzBnVUdGMGFDQjBieUIwYUdVZ1ZFeFRJR05sY25ScFptbGpZWFJsWEc0Z0tpQkFjSEp2Y0dWeWRIa2dlM04wY21sdVozMGdZMkZEWlhKMElDMGdSVzVrY0c5cGJuUWdWVkpNSUdadmNpQjBhR1VnY0dWbGNseHVJQ29nUUhCeWIzQmxjblI1SUh0emRISnBibWQ5SUZ0allVdGxlVjBnTFNCSWIzTjBJR0ZzYVdGeklHWnZjaUIwYUdVZ2NHVmxjaUJ2Y2lCa2FYSmxZM1J2Y25rZ1kyOXVkR0ZwYm1sdVp5QjBhR1VnWVdSdGFXNGdjSEpwZG1GMFpTQnJaWGxjYmlBcUlFQnRaVzFpWlhKUFppQnRiMlIxYkdVNlptOXlMV1poWW5KcFl5NXphR0Z5WldSY2JpQXFMMXh1Wlhod2IzSjBJSFI1Y0dVZ1EwRkRiMjVtYVdjZ1BTQjdYRzRnSUhWeWJEb2djM1J5YVc1bk8xeHVJQ0IwYkhNL09pQlVURk5QY0hScGIyNXpPMXh1SUNCallVNWhiV1U2SUhOMGNtbHVaenRjYmlBZ1kyRkRaWEowT2lCemRISnBibWM3WEc0Z0lHTmhTMlY1UHpvZ2MzUnlhVzVuTzF4dUlDQm9jMjAvT2lCSVUwMVBjSFJwYjI1ek8xeHVmVHRjYmx4dUx5b3FYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdWWE5sY2lCamNtVmtaVzUwYVdGc2N5Qm1iM0lnUTBFZ1pXNXliMnhzYldWdWRDQnZjaUJoWTJObGMzTmNiaUFxSUVCemRXMXRZWEo1SUU5d2RHbHZibUZzSUhWelpYSnVZVzFsTDNCaGMzTjNiM0prSUhCaGFYSWdkWE5sWkNCM2FHVnVJR1Z1Y205c2JHbHVaeUIzYVhSb0lHRWdSbUZpY21saklFTkJJRzl5SUdGMWRHaGxiblJwWTJGMGFXNW5JR2x1SUdOc2FXVnVkQ0IxZEdsc2FYUnBaWE5jYmlBcUlFQnBiblJsY21aaFkyVWdRM0psWkdWdWRHbGhiSE5jYmlBcUlFQndjbTl3WlhKMGVTQjdjM1J5YVc1bmZTQmJkWE5sY2s1aGJXVmRJQzBnVDNCMGFXOXVZV3dnZFhObGNtNWhiV1ZjYmlBcUlFQndjbTl3WlhKMGVTQjdjM1J5YVc1bmZTQmJjR0Z6YzNkdmNtUmRJQzBnVDNCMGFXOXVZV3dnY0dGemMzZHZjbVJjYmlBcUlFQnRaVzFpWlhKUFppQnRiMlIxYkdVNlptOXlMV1poWW5KcFl5NXphR0Z5WldSY2JpQXFMMXh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JEY21Wa1pXNTBhV0ZzY3lCN1hHNGdJSFZ6WlhKT1lXMWxQem9nYzNSeWFXNW5PMXh1SUNCd1lYTnpkMjl5WkQ4NklITjBjbWx1Wnp0Y2JuMWNibHh1Wlhod2IzSjBJSFI1Y0dVZ1UyVm5jbVZuWVhSbFpFMXZaR1ZzUEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRnUFNCN1hHNGdJRzF2WkdWc09pQk5PMXh1SUNCd2RXSnNhV00vT2lCU1pXTnZjbVE4YTJWNWIyWWdUU3dnWVc1NVBqdGNiaUFnZEhKaGJuTnBaVzUwUHpvZ1VtVmpiM0prUEd0bGVXOW1JRTBzSUdGdWVUNDdYRzRnSUhCeWFYWmhkR1Z6UHpvZ1VtVmpiM0prUEhOMGNtbHVaeXdnVW1WamIzSmtQR3RsZVc5bUlFMHNJR0Z1ZVQ0K08xeHVJQ0J6YUdGeVpXUS9PaUJTWldOdmNtUThjM1J5YVc1bkxDQlNaV052Y21ROGEyVjViMllnVFN3Z1lXNTVQajQ3WEc1OU8xeHVYRzVsZUhCdmNuUWdkSGx3WlNCR1lXSnlhV05HYkdGbmN6eE1UMGNnWlhoMFpXNWtjeUJNYjJkblpYSWdQU0JNYjJkblpYSStJRDBnUVdSaGNIUmxja1pzWVdkelBFeFBSejRnSmlCN1hHNGdJSE5sWjNKbFoyRjBaV1EvT2lCemRISnBibWM3WEc0Z0lHMXBjbkp2Y2o4NklHSnZiMnhsWVc0N1hHNGdJRzFwY25KdmNrTnZiR3hsWTNScGIyNC9PaUJ6ZEhKcGJtYzdYRzRnSUdsa1pXNTBhWFI1UHpvZ2MzUnlhVzVuSUh3Z1EyeHBaVzUwU1dSbGJuUnBkSGs3WEc0Z0lHOTNibVZ5VDNabGNuSnBaR1UvT2lCemRISnBibWM3WEc1OU8xeHVJbDE5Il19
3
+ //# sourceMappingURL=types.js.map
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["types.js"],"names":[],"mappings":";;AACA,iCAAiC"}
@@ -9,15 +9,15 @@ exports.VERSION = "0.12.10";
9
9
  * the placeholder with the actual commit hash at publish time.
10
10
  * @const COMMIT
11
11
  */
12
- exports.COMMIT = "f2d8170";
12
+ exports.COMMIT = "5880c77";
13
13
  /**
14
14
  * @description Represents the full version string of the module.
15
15
  * @summary Stores the semver version and commit hash for the package.
16
16
  * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
17
17
  * @const FULL_VERSION
18
18
  */
19
- exports.FULL_VERSION = "0.12.10-f2d8170";
19
+ exports.FULL_VERSION = "0.12.10-5880c77";
20
20
  exports.PACKAGE_NAME = "@decaf-ts/for-fabric";
21
21
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVoRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDO0FBRXJDOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQztBQUVuQzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDO0FBRTFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcblxuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIiMjVkVSU0lPTiMjXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJlcHJlc2VudHMgdGhlIGN1cnJlbnQgY29tbWl0IGhhc2ggb2YgdGhlIG1vZHVsZSBidWlsZC5cbiAqIEBzdW1tYXJ5IFN0b3JlcyB0aGUgY3VycmVudCBnaXQgY29tbWl0IGhhc2ggZm9yIHRoZSBwYWNrYWdlLiBUaGUgYnVpbGQgcmVwbGFjZXNcbiAqIHRoZSBwbGFjZWhvbGRlciB3aXRoIHRoZSBhY3R1YWwgY29tbWl0IGhhc2ggYXQgcHVibGlzaCB0aW1lLlxuICogQGNvbnN0IENPTU1JVFxuICovXG5leHBvcnQgY29uc3QgQ09NTUlUID0gXCIjI0NPTU1JVCMjXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJlcHJlc2VudHMgdGhlIGZ1bGwgdmVyc2lvbiBzdHJpbmcgb2YgdGhlIG1vZHVsZS5cbiAqIEBzdW1tYXJ5IFN0b3JlcyB0aGUgc2VtdmVyIHZlcnNpb24gYW5kIGNvbW1pdCBoYXNoIGZvciB0aGUgcGFja2FnZS5cbiAqIFRoZSBidWlsZCByZXBsYWNlcyB0aGUgcGxhY2Vob2xkZXIgd2l0aCB0aGUgYWN0dWFsIGA8dmVyc2lvbj4tPGNvbW1pdD5gIHZhbHVlIGF0IHB1Ymxpc2ggdGltZS5cbiAqIEBjb25zdCBGVUxMX1ZFUlNJT05cbiAqL1xuZXhwb3J0IGNvbnN0IEZVTExfVkVSU0lPTiA9IFwiIyNGVUxMX1ZFUlNJT04jI1wiO1xuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9OQU1FID0gXCIjI1BBQ0tBR0UjI1wiO1xuXG5NZXRhZGF0YS5yZWdpc3RlckxpYnJhcnkoUEFDS0FHRV9OQU1FLCBWRVJTSU9OKTtcbiJdfQ==
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcnNpb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWdEO0FBQ25DLFFBQUEsT0FBTyxHQUFHLGFBQWEsQ0FBQztBQUNyQzs7Ozs7R0FLRztBQUNVLFFBQUEsTUFBTSxHQUFHLFlBQVksQ0FBQztBQUNuQzs7Ozs7R0FLRztBQUNVLFFBQUEsWUFBWSxHQUFHLGtCQUFrQixDQUFDO0FBQ2xDLFFBQUEsWUFBWSxHQUFHLGFBQWEsQ0FBQztBQUMxQyxxQkFBUSxDQUFDLGVBQWUsQ0FBQyxvQkFBWSxFQUFFLGVBQU8sQ0FBQyxDQUFDO0FBQ2hELDBwREFBMHBEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIjI1ZFUlNJT04jI1wiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyB0aGUgY3VycmVudCBjb21taXQgaGFzaCBvZiB0aGUgbW9kdWxlIGJ1aWxkLlxuICogQHN1bW1hcnkgU3RvcmVzIHRoZSBjdXJyZW50IGdpdCBjb21taXQgaGFzaCBmb3IgdGhlIHBhY2thZ2UuIFRoZSBidWlsZCByZXBsYWNlc1xuICogdGhlIHBsYWNlaG9sZGVyIHdpdGggdGhlIGFjdHVhbCBjb21taXQgaGFzaCBhdCBwdWJsaXNoIHRpbWUuXG4gKiBAY29uc3QgQ09NTUlUXG4gKi9cbmV4cG9ydCBjb25zdCBDT01NSVQgPSBcIiMjQ09NTUlUIyNcIjtcbi8qKlxuICogQGRlc2NyaXB0aW9uIFJlcHJlc2VudHMgdGhlIGZ1bGwgdmVyc2lvbiBzdHJpbmcgb2YgdGhlIG1vZHVsZS5cbiAqIEBzdW1tYXJ5IFN0b3JlcyB0aGUgc2VtdmVyIHZlcnNpb24gYW5kIGNvbW1pdCBoYXNoIGZvciB0aGUgcGFja2FnZS5cbiAqIFRoZSBidWlsZCByZXBsYWNlcyB0aGUgcGxhY2Vob2xkZXIgd2l0aCB0aGUgYWN0dWFsIGA8dmVyc2lvbj4tPGNvbW1pdD5gIHZhbHVlIGF0IHB1Ymxpc2ggdGltZS5cbiAqIEBjb25zdCBGVUxMX1ZFUlNJT05cbiAqL1xuZXhwb3J0IGNvbnN0IEZVTExfVkVSU0lPTiA9IFwiIyNGVUxMX1ZFUlNJT04jI1wiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfTkFNRSA9IFwiIyNQQUNLQUdFIyNcIjtcbk1ldGFkYXRhLnJlZ2lzdGVyTGlicmFyeShQQUNLQUdFX05BTUUsIFZFUlNJT04pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZG1WeWMybHZiaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1TDNOeVl5OTJaWEp6YVc5dUxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNSVUZCUlN4UlFVRlJMRVZCUVVVc1RVRkJUU3h6UWtGQmMwSXNRMEZCUXp0QlFVVm9SQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeFBRVUZQTEVkQlFVY3NZVUZCWVN4RFFVRkRPMEZCUlhKRE96czdPenRIUVV0SE8wRkJRMGdzVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4SFFVRkhMRmxCUVZrc1EwRkJRenRCUVVWdVF6czdPenM3UjBGTFJ6dEJRVU5JTEUxQlFVMHNRMEZCUXl4TlFVRk5MRmxCUVZrc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXp0QlFVVXZReXhOUVVGTkxFTkJRVU1zVFVGQlRTeFpRVUZaTEVkQlFVY3NZVUZCWVN4RFFVRkRPMEZCUlRGRExGRkJRVkVzUTBGQlF5eGxRVUZsTEVOQlFVTXNXVUZCV1N4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dUV1YwWVdSaGRHRWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMlJsWTI5eVlYUnBiMjVjSWp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUZaRlVsTkpUMDRnUFNCY0lpTWpWa1ZTVTBsUFRpTWpYQ0k3WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRkpsY0hKbGMyVnVkSE1nZEdobElHTjFjbkpsYm5RZ1kyOXRiV2wwSUdoaGMyZ2diMllnZEdobElHMXZaSFZzWlNCaWRXbHNaQzVjYmlBcUlFQnpkVzF0WVhKNUlGTjBiM0psY3lCMGFHVWdZM1Z5Y21WdWRDQm5hWFFnWTI5dGJXbDBJR2hoYzJnZ1ptOXlJSFJvWlNCd1lXTnJZV2RsTGlCVWFHVWdZblZwYkdRZ2NtVndiR0ZqWlhOY2JpQXFJSFJvWlNCd2JHRmpaV2h2YkdSbGNpQjNhWFJvSUhSb1pTQmhZM1IxWVd3Z1kyOXRiV2wwSUdoaGMyZ2dZWFFnY0hWaWJHbHphQ0IwYVcxbExseHVJQ29nUUdOdmJuTjBJRU5QVFUxSlZGeHVJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdRMDlOVFVsVUlEMGdYQ0lqSTBOUFRVMUpWQ01qWENJN1hHNWNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUZKbGNISmxjMlZ1ZEhNZ2RHaGxJR1oxYkd3Z2RtVnljMmx2YmlCemRISnBibWNnYjJZZ2RHaGxJRzF2WkhWc1pTNWNiaUFxSUVCemRXMXRZWEo1SUZOMGIzSmxjeUIwYUdVZ2MyVnRkbVZ5SUhabGNuTnBiMjRnWVc1a0lHTnZiVzFwZENCb1lYTm9JR1p2Y2lCMGFHVWdjR0ZqYTJGblpTNWNiaUFxSUZSb1pTQmlkV2xzWkNCeVpYQnNZV05sY3lCMGFHVWdjR3hoWTJWb2IyeGtaWElnZDJsMGFDQjBhR1VnWVdOMGRXRnNJR0E4ZG1WeWMybHZiajR0UEdOdmJXMXBkRDVnSUhaaGJIVmxJR0YwSUhCMVlteHBjMmdnZEdsdFpTNWNiaUFxSUVCamIyNXpkQ0JHVlV4TVgxWkZVbE5KVDA1Y2JpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElFWlZURXhmVmtWU1UwbFBUaUE5SUZ3aUl5TkdWVXhNWDFaRlVsTkpUMDRqSTF3aU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1VFRkRTMEZIUlY5T1FVMUZJRDBnWENJakkxQkJRMHRCUjBVakkxd2lPMXh1WEc1TlpYUmhaR0YwWVM1eVpXZHBjM1JsY2t4cFluSmhjbmtvVUVGRFMwRkhSVjlPUVUxRkxDQldSVkpUU1U5T0tUdGNiaUpkZlE9PSJdfQ==
22
+ //# sourceMappingURL=version.js.map
23
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["version.js"],"names":[],"mappings":";;;AAAA,qDAAgD;AACnC,QAAA,OAAO,GAAG,aAAa,CAAC;AACrC;;;;;GAKG;AACU,QAAA,MAAM,GAAG,YAAY,CAAC;AACnC;;;;;GAKG;AACU,QAAA,YAAY,GAAG,kBAAkB,CAAC;AAClC,QAAA,YAAY,GAAG,aAAa,CAAC;AAC1C,qBAAQ,CAAC,eAAe,CAAC,oBAAY,EAAE,eAAO,CAAC,CAAC;AAChD,mCAAmC"}
@@ -1,3 +1,3 @@
1
1
  import fabric from "./../cli-module.js";
2
2
  fabric().parse(process.argv);
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jpbi9jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLDJCQUFzQjtBQUVuQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZhYnJpYyBmcm9tIFwiLi4vY2xpLW1vZHVsZVwiO1xuXG5mYWJyaWMoKS5wYXJzZShwcm9jZXNzLmFyZ3YpO1xuIl19
3
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/bin/cli.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,2BAAsB;AAEnC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -709,4 +709,4 @@ fabricCmd.addCommand(getCopyToPTP);
709
709
  export default function fabric() {
710
710
  return fabricCmd;
711
711
  }
712
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGktbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUQsT0FBTyxFQUFVLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN4QyxPQUFPLFFBQVEsTUFBTSx5QkFBeUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxPQUFPLE1BQU0sd0JBQXdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLFlBQVksR0FDYixrQ0FBeUI7QUFDMUIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZELE9BQU8sRUFDTCxlQUFlLEVBQ2YsMEJBQTBCLEVBQzFCLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxFQUNmLHVCQUF1QixFQUN2Qiw0QkFBNEIsR0FDN0IsdUJBQW9CO0FBQ3JCLHFDQUE0QjtBQUM1QixPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUIsT0FBTyxFQUNMLGtCQUFrQixJQUFJLGFBQWEsRUFFbkMsZ0JBQWdCLEVBQ2hCLHlC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TUFBTSxTQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUU7S0FDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQztLQUNsQixPQUFPLENBQUMsUUFBUSxDQUFDO0tBQ2pCLFdBQVcsQ0FDVixtRUFBbUUsQ0FDcEUsQ0FBQztBQUVKLFNBQVMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDckMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUNyQyxTQUFTLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2xDLFNBQVMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDckMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3hDLFNBQVMsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUN6QyxTQUFTLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRW5DLE1BQU0sQ0FBQyxPQUFPLFVBQVUsTUFBTTtJQUM1QixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gXCJjb21tYW5kZXJcIjtcbmltcG9ydCB7IExvZ2dpbmcsIHRvUGFzY2FsQ2FzZSB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGJ1aWx0aW5Nb2R1bGVzLCBjcmVhdGVSZXF1aXJlIH0gZnJvbSBcIm5vZGU6bW9kdWxlXCI7XG5pbXBvcnQgeyBQbHVnaW4sIHJvbGx1cCB9IGZyb20gXCJyb2xsdXBcIjtcbmltcG9ydCBjb21tb25qcyBmcm9tIFwiQHJvbGx1cC9wbHVnaW4tY29tbW9uanNcIjtcbmltcG9ydCB7IG5vZGVSZXNvbHZlIH0gZnJvbSBcIkByb2xsdXAvcGx1Z2luLW5vZGUtcmVzb2x2ZVwiO1xuaW1wb3J0IHJlcGxhY2UgZnJvbSBcIkByb2xsdXAvcGx1Z2luLXJlcGxhY2VcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IsIFNlcmlhbGl6YXRpb25FcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHtcbiAgZ2VuZXJhdGVNb2RlbERlc2lnbkRvY3MsXG4gIGdlbmVyYXRlTW9kZWxJbmRleGVzLFxuICByZWFkTW9kZWxGaWxlLFxuICByZWFkTW9kZWxGb2xkZXJzLFxuICB3cml0ZURlc2lnbkRvY3MsXG4gIHdyaXRlSW5kZXhlcyxcbn0gZnJvbSBcIi4vY2xpZW50L2luZGV4ZXNcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHtcbiAgYXBwcm92ZUNvbnRyYWN0LFxuICBlbnN1cmVJbmZyYXN0cnVjdHVyZUJvb3RlZCxcbiAgaW5zdGFsbENvbnRyYWN0LFxuICBwYWNrYWdlQ29udHJhY3QsXG4gIGNvbW1pdENoYWluY29kZSxcbiAgZ2V0Q29udHJhY3RTdGFydENvbW1hbmQsXG4gIGNvbXBpbGVXaXRoVHNjb25maWdPdmVycmlkZXMsXG59IGZyb20gXCIuL2NsaS11dGlsc1wiO1xuaW1wb3J0IFwiLi9zaGFyZWQvb3ZlcnJpZGVzXCI7XG5pbXBvcnQgdHMgZnJvbSBcInR5cGVzY3JpcHRcIjtcbmltcG9ydCB7XG4gIGV4dHJhY3RDb2xsZWN0aW9ucyBhcyBleENvbGxlY3Rpb25zLFxuICBQcml2YXRlQ29sbGVjdGlvbixcbiAgd3JpdGVDb2xsZWN0aW9ucyxcbiAgd3JpdGVDb2xsZWN0aW9uRGVzaWduRG9jcyxcbn0gZnJvbSBcIi4vY2xpZW50L2NvbGxlY3Rpb25zL2luZGV4XCI7XG5pbXBvcnQgeyBDb3VjaERCRGVzaWduRG9jLCBDcmVhdGVJbmRleFJlcXVlc3QgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5cbmNvbnN0IGxvZ2dlciA9IExvZ2dpbmcuZm9yKFwiZmFicmljXCIpO1xuXG5mdW5jdGlvbiByZXNvbHZlQnVuZGxlZEpzSW1wb3J0cygpOiBQbHVnaW4ge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IFwicmVzb2x2ZS1idW5kbGVkLWpzLWltcG9ydHNcIixcbiAgICByZXNvbHZlSWQoc291cmNlLCBpbXBvcnRlcikge1xuICAgICAgaWYgKCFpbXBvcnRlciB8fCAhc291cmNlLnN0YXJ0c1dpdGgoXCIuXCIpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXNvbHZlZFBhdGggPSBwYXRoLnJlc29sdmUocGF0aC5kaXJuYW1lKGltcG9ydGVyKSwgc291cmNlKTtcbiAgICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSBbXG4gICAgICAgIHJlc29sdmVkUGF0aCxcbiAgICAgICAgYCR7cmVzb2x2ZWRQYXRofS5qc2AsXG4gICAgICAgIHBhdGguam9pbihyZXNvbHZlZFBhdGgsIFwiaW5kZXguanNcIiksXG4gICAgICBdO1xuXG4gICAgICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBjYW5kaWRhdGVzKSB7XG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKGNhbmRpZGF0ZSkgJiYgZnMuc3RhdFN5bmMoY2FuZGlkYXRlKS5pc0ZpbGUoKSkge1xuICAgICAgICAgIHJldHVybiBjYW5kaWRhdGU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZURlY2FmUGFja2FnZUltcG9ydHMoKTogUGx1Z2luIHtcbiAgY29uc3QgY29udHJhY3RSZXF1aXJlID0gY3JlYXRlUmVxdWlyZShcbiAgICBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgXCJwYWNrYWdlLmpzb25cIilcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6IFwicmVzb2x2ZS1kZWNhZi1wYWNrYWdlLWltcG9ydHNcIixcbiAgICByZXNvbHZlSWQoc291cmNlKSB7XG4gICAgICBpZiAoIXNvdXJjZS5zdGFydHNXaXRoKFwiQGRlY2FmLXRzL1wiKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGNvbnRyYWN0UmVxdWlyZS5yZXNvbHZlKHNvdXJjZSk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn1cblxuY29uc3QgZmFicmljUGVlckRlcGVuZGVuY2llcyA9IG5ldyBTZXQoW1xuICBcIkBncnBjL2dycGMtanNcIixcbiAgXCJAaHlwZXJsZWRnZXIvZmFicmljLWdhdGV3YXlcIixcbiAgXCJAcGVjdWxpYXIvd2ViY3J5cHRvXCIsXG4gIFwiZmFicmljLWNhLWNsaWVudFwiLFxuICBcImZhYnJpYy1jb21tb25cIixcbiAgXCJmYWJyaWMtY29udHJhY3QtYXBpXCIsXG4gIFwiZmFicmljLW5ldHdvcmtcIixcbiAgXCJmYWJyaWMtc2hpbVwiLFxuICBcImZhYnJpYy1zaGltLWFwaVwiLFxuXSk7XG5cbmZ1bmN0aW9uIGlzTm9kZUJ1aWx0aW4oaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBub3JtYWxpemVkID0gaWQuc3RhcnRzV2l0aChcIm5vZGU6XCIpID8gaWQuc2xpY2UoNSkgOiBpZDtcbiAgcmV0dXJuIGJ1aWx0aW5Nb2R1bGVzLmluY2x1ZGVzKG5vcm1hbGl6ZWQpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRCdW5kbGVDb250cmFjdE1vZHVsZShpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmIChpZC5zdGFydHNXaXRoKFwiLlwiKSB8fCBwYXRoLmlzQWJzb2x1dGUoaWQpKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKGlkLnN0YXJ0c1dpdGgoXCJAZGVjYWYtdHMvXCIpKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKGZhYnJpY1BlZXJEZXBlbmRlbmNpZXMuaGFzKGlkKSkgcmV0dXJuIGZhbHNlO1xuICBpZiAoaXNOb2RlQnVpbHRpbihpZCkpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVNpZGVFZmZlY3RQYXRoKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gaW5wdXQuc3BsaXQocGF0aC5zZXApLmpvaW4oXCIvXCIpO1xufVxuXG5mdW5jdGlvbiBidWlsZFNpZGVFZmZlY3RNYXRjaGVyKGV4dHJhUGF0aHM6IHN0cmluZ1tdKSB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRFeHRyYXMgPSBleHRyYVBhdGhzLm1hcCgoZXh0cmFQYXRoKSA9PiB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZVNpZGVFZmZlY3RQYXRoKGV4dHJhUGF0aC50cmltKCkpO1xuICAgIHJldHVybiB7XG4gICAgICByYXc6IG5vcm1hbGl6ZWQsXG4gICAgICByZXNvbHZlZDogcGF0aC5pc0Fic29sdXRlKGV4dHJhUGF0aClcbiAgICAgICAgPyBub3JtYWxpemVTaWRlRWZmZWN0UGF0aChwYXRoLnJlc29sdmUoZXh0cmFQYXRoKSlcbiAgICAgICAgOiBub3JtYWxpemVTaWRlRWZmZWN0UGF0aChwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgZXh0cmFQYXRoKSksXG4gICAgfTtcbiAgfSk7XG5cbiAgcmV0dXJuIChpZDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZVNpZGVFZmZlY3RQYXRoKGlkKTtcbiAgICBjb25zdCBidWlsdElucyA9IFtcbiAgICAgIFwiL3NyYy9jb250cmFjdHMvYm9vdHN0cmFwXCIsXG4gICAgICBcIi9zcmMvY29udHJhY3RzL292ZXJyaWRlc1wiLFxuICAgICAgXCIvc3JjL2NvbnRyYWN0cy9mYWJyaWMtb3ZlcnJpZGVzXCIsXG4gICAgICBcIi9zcmMvc2hhcmVkL292ZXJyaWRlc1wiLFxuICAgICAgXCIvbm9kZV9tb2R1bGVzL0BkZWNhZi10cy9cIixcbiAgICBdO1xuXG4gICAgaWYgKGJ1aWx0SW5zLnNvbWUoKG5lZWRsZSkgPT4gbm9ybWFsaXplZC5pbmNsdWRlcyhuZWVkbGUpKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vcm1hbGl6ZWRFeHRyYXMuc29tZSgoeyByYXcsIHJlc29sdmVkIH0pID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG5vcm1hbGl6ZWQuaW5jbHVkZXMocmF3KSB8fFxuICAgICAgICBub3JtYWxpemVkLmluY2x1ZGVzKHJlc29sdmVkKSB8fFxuICAgICAgICBub3JtYWxpemVkLmVuZHNXaXRoKGAke3Jhd30uanNgKSB8fFxuICAgICAgICBub3JtYWxpemVkLmVuZHNXaXRoKGAke3Jhd30uY2pzYCkgfHxcbiAgICAgICAgbm9ybWFsaXplZC5lbmRzV2l0aChgJHtyYXd9L2luZGV4LmpzYCkgfHxcbiAgICAgICAgbm9ybWFsaXplZC5lbmRzV2l0aChgJHtyYXd9L2luZGV4LmNqc2ApIHx8XG4gICAgICAgIG5vcm1hbGl6ZWQuZW5kc1dpdGgoYCR7cmVzb2x2ZWR9LmpzYCkgfHxcbiAgICAgICAgbm9ybWFsaXplZC5lbmRzV2l0aChgJHtyZXNvbHZlZH0uY2pzYCkgfHxcbiAgICAgICAgbm9ybWFsaXplZC5lbmRzV2l0aChgJHtyZXNvbHZlZH0vaW5kZXguanNgKSB8fFxuICAgICAgICBub3JtYWxpemVkLmVuZHNXaXRoKGAke3Jlc29sdmVkfS9pbmRleC5janNgKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlU3JjRnJvbVBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGgucmVwbGFjZSgvXlxcLlxcL3NyY1xcLy8sIFwiLi9cIik7XG59XG5cbmZ1bmN0aW9uIGNvcHlGb2xkZXJDb250ZW50cyhzb3VyY2VEaXI6IHN0cmluZywgdGFyZ2V0RGlyOiBzdHJpbmcpIHtcbiAgaWYgKCFmcy5leGlzdHNTeW5jKHNvdXJjZURpcikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFNvdXJjZSBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3Q6ICR7c291cmNlRGlyfWApO1xuICB9XG5cbiAgZnMubWtkaXJTeW5jKHRhcmdldERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgZm9yIChjb25zdCBpdGVtIG9mIGZzLnJlYWRkaXJTeW5jKHNvdXJjZURpcikpIHtcbiAgICBjb25zdCBzb3VyY2VQYXRoID0gcGF0aC5qb2luKHNvdXJjZURpciwgaXRlbSk7XG4gICAgY29uc3QgdGFyZ2V0UGF0aCA9IHBhdGguam9pbih0YXJnZXREaXIsIGl0ZW0pO1xuXG4gICAgY29uc3Qgc3RhdCA9IGZzLnN0YXRTeW5jKHNvdXJjZVBhdGgpO1xuXG4gICAgaWYgKHN0YXQuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgY29weUZvbGRlckNvbnRlbnRzKHNvdXJjZVBhdGgsIHRhcmdldFBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmcy5jb3B5RmlsZVN5bmMoc291cmNlUGF0aCwgdGFyZ2V0UGF0aCk7XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IGNvbXBpbGVDb21tYW5kID0gbmV3IENvbW1hbmQoKVxuICAubmFtZShcImNvbXBpbGUtY29udHJhY3RcIilcbiAgLmRlc2NyaXB0aW9uKFwiQ3JlYXRlcyBhIGdsb2JhbCBjb250cmFjdFwiKVxuICAub3B0aW9uKFwiLS1kZXZcIiwgXCJjb21waWxlcyBjb250cmFjdHMgd2l0aG91dCBtaW5pZmljYXRpb25cIiwgZmFsc2UpXG4gIC5vcHRpb24oXCItLWRlYnVnXCIsIFwibWFrZXMgYXR0YWNoaW5nIGRlYnVnZ2VyIHBvc3NpYmxlXCIsIGZhbHNlKVxuICAub3B0aW9uKFxuICAgIFwiLS1jY2Fhc1wiLFxuICAgIFwiQWp1c3RzIHRoZSBwYWNrYWdlIGNvbW1hbmRzIHRvIGJlIGRlcGxveWVkIGFzIGNjYWFzXCIsXG4gICAgZmFsc2VcbiAgKVxuICAub3B0aW9uKFwiLS1uYW1lIDxTdHJpbmc+XCIsIFwiY29udHJhY3QgbmFtZVwiLCBcImdsb2JhbC1jb250cmFjdFwiKVxuICAub3B0aW9uKFwiLS1idW5kbGVcIiwgXCJCdW5kbGVzIHdpdGggcm9sbHVwIGluc3RlYWQgb2YgdXNpbmcgdHNjXCIsIGZhbHNlKVxuICAub3B0aW9uKFxuICAgIFwiLS10cy1jb25maWctZmlsZSA8c3RyaW5nPlwiLFxuICAgIFwicmVsYXRpdmUgcGF0aCB0byB0aGUgdHMgY29uZmlnIGZpbGUgYmFzZWQgb24gY3dkIG9yIGFic29sdXRlIHBhdGhcIixcbiAgICBcIi4vdHNjb25maWcuanNvblwiXG4gIClcbiAgLm9wdGlvbihcbiAgICBcIi0tZGVzY3JpcHRpb24gPFN0cmluZz5cIixcbiAgICBcImNvbnRyYWN0IGRlc2NyaXB0aW9uXCIsXG4gICAgXCJHbG9iYWwgY29udHJhY3QgaW1wbGVtZW50YXRpb25cIlxuICApXG4gIC5vcHRpb24oXCItLXN0cmlwLWNvbnRyYWN0LW5hbWVcIiwgXCJzdHJpcCBjb250cmFjdCBuYW1lIGZyb20gb3V0cHV0XCIsIGZhbHNlKVxuICAub3B0aW9uKFwiLS1pbnB1dCA8U3RyaW5nPlwiLCBcImlucHV0IGZvbGRlciBmb3IgY29udHJhY3RzXCIsIFwibGliL2NvbnRyYWN0c1wiKVxuICAub3B0aW9uKFwiLS1vdXRwdXQgPFN0cmluZz5cIiwgXCJvdXRwdXQgZm9sZGVyIGZvciBjb250cmFjdHNcIiwgXCIuL2NvbnRyYWN0c1wiKVxuICAub3B0aW9uKFwiLS1zb3VyY2VtYXBzXCIsIFwiaW5jbHVkZXMgc291cmNlbWFwcyBpbiB0aGUgY29tcGlsZWQgb3V0cHV0XCIsIGZhbHNlKVxuICAub3B0aW9uKFwiLS1ucG1yY1wiLCBcImluY2x1ZGVzIC5ucG1yYyBpbiB0aGUgY29tcGlsZWQgb3V0cHV0XCIsIGZhbHNlKVxuICAub3B0aW9uKFxuICAgIFwiLS1mcm9tLWxpYlwiLFxuICAgIFwiaW5kaWNhdGVzIHRoYXQgdGhlIGNvbnRyYWN0IHRvIGRlcGxveSBpcyBsb2NhdGVkIGluIHRoZSBsaWIgZm9sZGVyIGFuZCBub3QgcHJlLWNvbXBpbGVkIGluIHRoZSBjb250cmFjdHMgZm9sZGVyXCIsXG4gICAgZmFsc2VcbiAgKVxuICAub3B0aW9uKFxuICAgIFwiLS1zaWRlLWVmZmVjdC1wYXRocyA8cGF0aHMuLi4+XCIsXG4gICAgXCJhZGRpdGlvbmFsIHBhdGhzIG9yIHBhY2thZ2Ugcm9vdHMgdGhhdCBtdXN0IGJlIHByZXNlcnZlZCBhcyBzaWRlLWVmZmVjdGZ1bCBkdXJpbmcgY29udHJhY3QgYnVuZGxpbmdcIlxuICApXG4gIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgIGNvbnN0IHBrZyA9IEpTT04ucGFyc2UoXG4gICAgICBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwicGFja2FnZS5qc29uXCIpLCBcInV0Zi04XCIpXG4gICAgKTtcblxuICAgIGNvbnN0IHBrZ0xvY2sgPSBKU09OLnBhcnNlKFxuICAgICAgZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcInBhY2thZ2UtbG9jay5qc29uXCIpLCBcInV0Zi04XCIpXG4gICAgKTtcblxuICAgIGxldCBucG1yY0NvbnRlbnQgPSB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCB2ZXJzaW9uID0gcGtnLnZlcnNpb247XG5cbiAgICBsZXQge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxuICAgICAgZGV2LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxuICAgICAgZGVidWcsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG4gICAgICBuYW1lLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBvdXRwdXQsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG4gICAgICBpbnB1dCxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICAgIHN0cmlwQ29udHJhY3ROYW1lLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxuICAgICAgY2NhYXMsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG4gICAgICBidW5kbGUsXG5cbiAgICAgIHRzQ29uZmlnRmlsZSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICAgIHNvdXJjZW1hcHMsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG4gICAgICBucG1yYyxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICAgIHNpZGVFZmZlY3RQYXRocyxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICAgIGZyb21MaWIsXG4gICAgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgbG9nID0gbG9nZ2VyLmZvcihcImNvbXBpbGUtY29udHJhY3RcIik7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChucG1yYykge1xuICAgICAgICBucG1yY0NvbnRlbnQgPSBmc1xuICAgICAgICAgIC5yZWFkRmlsZVN5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwiLm5wbXJjXCIpLCBcInV0Zi04XCIpXG4gICAgICAgICAgLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgY29uc3QgcmVwbGFjZWQgPSBucG1yY0NvbnRlbnQucmVwbGFjZShcbiAgICAgICAgICAvXFwkXFx7KFtefV0rKVxcfS9nLFxuICAgICAgICAgIChfOiBhbnksIHZhck5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwcm9jZXNzLmVudlt2YXJOYW1lXTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgIGBXYXJuaW5nOiBFbnZpcm9ubWVudCB2YXJpYWJsZSBcIiR7dmFyTmFtZX1cIiBpcyBub3Qgc2V0YFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBucG1yY0NvbnRlbnQgPSByZXBsYWNlZDtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIGxvZy5pbmZvKGBObyAubnBtcmMgZmlsZSBmb3VuZCwgc2tpcHBpbmcgY29weWluZyAubnBtcmMgdG8gb3V0cHV0YCk7XG4gICAgfVxuXG4gICAgbG9nLmRlYnVnKFxuICAgICAgYHJ1bm5pbmcgd2l0aCBvcHRpb25zOiAke0pTT04uc3RyaW5naWZ5KG9wdGlvbnMpfSBmb3IgJHtwa2cubmFtZX0gdmVyc2lvbiAke3ZlcnNpb259YFxuICAgICk7XG5cbiAgICB0c0NvbmZpZ0ZpbGUgPSBwYXRoLmlzQWJzb2x1dGUodHNDb25maWdGaWxlKVxuICAgICAgPyB0c0NvbmZpZ0ZpbGVcbiAgICAgIDogcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIHRzQ29uZmlnRmlsZSk7XG5cbiAgICBvdXRwdXQgPSBzdHJpcENvbnRyYWN0TmFtZSA/IG91dHB1dCA6IHBhdGguam9pbihvdXRwdXQsIG5hbWUpO1xuICAgIGxvZy5pbmZvKGBEZWxldGluZyBleGlzdGluZyBvdXRwdXQgZm9sZGVyIChpZiBleGlzdHMpIHVuZGVyICR7b3V0cHV0fWApO1xuICAgIGV4ZWNTeW5jKGBybSAtcmYgJHtvdXRwdXR9YCk7XG4gICAgaWYgKGJ1bmRsZSAmJiAhZnJvbUxpYikge1xuICAgICAgY29uc3Qgc2lkZUVmZmVjdE1hdGNoZXIgPSBidWlsZFNpZGVFZmZlY3RNYXRjaGVyKFxuICAgICAgICBBcnJheS5pc0FycmF5KHNpZGVFZmZlY3RQYXRocykgPyBzaWRlRWZmZWN0UGF0aHMgOiBbXVxuICAgICAgKTtcbiAgICAgIGxvZy5pbmZvKGBidW5kbGluZyBjb250cmFjdCBmcm9tICR7aW5wdXR9YCk7XG4gICAgICBjb25zdCB0ZW1wQnVuZGxlRGlyID0gZnMubWtkdGVtcFN5bmMoXG4gICAgICAgIHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcIi5jb250cmFjdC1idW5kbGUtXCIpXG4gICAgICApO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgaW5wdXRFbnRyeSA9IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBpbnB1dCwgXCJpbmRleC50c1wiKTtcbiAgICAgICAgY29uc3QgY29uZmlnRmlsZSA9IHRzLnJlYWRDb25maWdGaWxlKHRzQ29uZmlnRmlsZSwgdHMuc3lzLnJlYWRGaWxlKTtcbiAgICAgICAgaWYgKGNvbmZpZ0ZpbGUuZXJyb3IpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgIHRzLmZsYXR0ZW5EaWFnbm9zdGljTWVzc2FnZVRleHQoY29uZmlnRmlsZS5lcnJvci5tZXNzYWdlVGV4dCwgXCJcXG5cIilcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyc2VkQ29uZmlnID0gdHMucGFyc2VKc29uQ29uZmlnRmlsZUNvbnRlbnQoXG4gICAgICAgICAgY29uZmlnRmlsZS5jb25maWcsXG4gICAgICAgICAgdHMuc3lzLFxuICAgICAgICAgIHBhdGguZGlybmFtZSh0c0NvbmZpZ0ZpbGUpLFxuICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICB0c0NvbmZpZ0ZpbGVcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHBhcnNlZENvbmZpZy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgICBwYXJzZWRDb25maWcuZXJyb3JzXG4gICAgICAgICAgICAgIC5tYXAoKGVycm9yKSA9PlxuICAgICAgICAgICAgICAgIHRzLmZsYXR0ZW5EaWFnbm9zdGljTWVzc2FnZVRleHQoZXJyb3IubWVzc2FnZVRleHQsIFwiXFxuXCIpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIilcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGVtcENvbXBpbGVyT3B0aW9uczogdHMuQ29tcGlsZXJPcHRpb25zID0ge1xuICAgICAgICAgIC4uLnBhcnNlZENvbmZpZy5vcHRpb25zLFxuICAgICAgICAgIG91dERpcjogdGVtcEJ1bmRsZURpcixcbiAgICAgICAgICBtb2R1bGU6IHRzLk1vZHVsZUtpbmQuRVNOZXh0LFxuICAgICAgICAgIGRlY2xhcmF0aW9uOiBmYWxzZSxcbiAgICAgICAgICBzb3VyY2VNYXA6IGZhbHNlLFxuICAgICAgICAgIGlubGluZVNvdXJjZXM6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBidW5kbGVkRW50cnlQb2ludCA9IHRzXG4gICAgICAgICAgLmdldE91dHB1dEZpbGVOYW1lcyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4ucGFyc2VkQ29uZmlnLFxuICAgICAgICAgICAgICBvcHRpb25zOiB0ZW1wQ29tcGlsZXJPcHRpb25zLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlucHV0RW50cnksXG4gICAgICAgICAgICAhdHMuc3lzLnVzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXNcbiAgICAgICAgICApXG4gICAgICAgICAgLmZpbmQoKGZpbGVOYW1lKSA9PiBmaWxlTmFtZS5lbmRzV2l0aChcIi5qc1wiKSk7XG5cbiAgICAgICAgaWYgKCFidW5kbGVkRW50cnlQb2ludCkge1xuICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgICAgYEZhaWxlZCB0byBkZXRlcm1pbmUgdGhlIGVtaXR0ZWQgYnVuZGxlIGVudHJ5IGZvciAke2lucHV0RW50cnl9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb21waWxlV2l0aFRzY29uZmlnT3ZlcnJpZGVzKHRzQ29uZmlnRmlsZSwgdGVtcENvbXBpbGVyT3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IGJ1bmRsZWRDb250cmFjdCA9IGF3YWl0IHJvbGx1cCh7XG4gICAgICAgICAgaW5wdXQ6IGJ1bmRsZWRFbnRyeVBvaW50LFxuICAgICAgICAgIGV4dGVybmFsOiAoaWQpID0+ICFzaG91bGRCdW5kbGVDb250cmFjdE1vZHVsZShpZCksXG4gICAgICAgICAgdHJlZXNoYWtlOiB7XG4gICAgICAgICAgICBtb2R1bGVTaWRlRWZmZWN0czogKGlkKSA9PiBzaWRlRWZmZWN0TWF0Y2hlcihpZCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgICByZXNvbHZlRGVjYWZQYWNrYWdlSW1wb3J0cygpLFxuICAgICAgICAgICAgcmVzb2x2ZUJ1bmRsZWRKc0ltcG9ydHMoKSxcbiAgICAgICAgICAgIG5vZGVSZXNvbHZlKHtcbiAgICAgICAgICAgICAgZXh0ZW5zaW9uczogW1wiLm1qc1wiLCBcIi5qc1wiLCBcIi5qc29uXCIsIFwiLmNqc1wiLCBcIi50c1wiXSxcbiAgICAgICAgICAgICAgbW9kdWxlRGlyZWN0b3JpZXM6IFtcIm5vZGVfbW9kdWxlc1wiXSxcbiAgICAgICAgICAgICAgbW9kdWxlUGF0aHM6IFtwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgXCJub2RlX21vZHVsZXNcIildLFxuICAgICAgICAgICAgICBleHBvcnRDb25kaXRpb25zOiBbXCJub2RlXCIsIFwiZGVmYXVsdFwiLCBcInJlcXVpcmVcIiwgXCJpbXBvcnRcIl0sXG4gICAgICAgICAgICAgIHByZWZlckJ1aWx0aW5zOiB0cnVlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjb21tb25qcyh7XG4gICAgICAgICAgICAgIGluY2x1ZGU6IC9ub2RlX21vZHVsZXMvLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICByZXBsYWNlKHtcbiAgICAgICAgICAgICAgcHJldmVudEFzc2lnbm1lbnQ6IHRydWUsXG4gICAgICAgICAgICAgIGRlbGltaXRlcnM6IFtcIlwiLCBcIlwiXSxcbiAgICAgICAgICAgICAgdmFsdWVzOiB7IFwiIyNWRVJTSU9OIyNcIjogdmVyc2lvbiwgXCIjI1BBQ0tBR0UjI1wiOiBwa2cubmFtZSB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSk7XG4gICAgICAgIGxvZy5pbmZvKFxuICAgICAgICAgIGB3aXRoaW5nIGNvbnRyYWN0IHRvICR7b3V0cHV0fSB3aXRoIG5hbWUgJHt0b1Bhc2NhbENhc2UobmFtZSl9LmpzYFxuICAgICAgICApO1xuICAgICAgICBhd2FpdCBidW5kbGVkQ29udHJhY3Qud3JpdGUoe1xuICAgICAgICAgIGZpbGU6IGAke291dHB1dH0vJHt0b1Bhc2NhbENhc2UobmFtZSl9LmpzYCxcbiAgICAgICAgICBmb3JtYXQ6IFwidW1kXCIsXG4gICAgICAgICAgbmFtZTogYCR7dG9QYXNjYWxDYXNlKG5hbWUpfS5qc2AsXG4gICAgICAgICAgc291cmNlbWFwOiBzb3VyY2VtYXBzID8gXCJpbmxpbmVcIiA6IGZhbHNlLFxuICAgICAgICAgIHNvdXJjZW1hcFBhdGhUcmFuc2Zvcm06IChyZWxhdGl2ZVNvdXJjZVBhdGgsIHNvdXJjZW1hcFBhdGgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFic29sdXRlU291cmNlUGF0aCA9IHBhdGgucmVzb2x2ZShcbiAgICAgICAgICAgICAgcGF0aC5kaXJuYW1lKHNvdXJjZW1hcFBhdGgpLFxuICAgICAgICAgICAgICByZWxhdGl2ZVNvdXJjZVBhdGhcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChhYnNvbHV0ZVNvdXJjZVBhdGguc3RhcnRzV2l0aCh0ZW1wQnVuZGxlRGlyKSkge1xuICAgICAgICAgICAgICByZXR1cm4gcGF0aC5wb3NpeC5qb2luKFxuICAgICAgICAgICAgICAgIFwiLmJ1bmRsZVwiLFxuICAgICAgICAgICAgICAgIHBhdGhcbiAgICAgICAgICAgICAgICAgIC5yZWxhdGl2ZSh0ZW1wQnVuZGxlRGlyLCBhYnNvbHV0ZVNvdXJjZVBhdGgpXG4gICAgICAgICAgICAgICAgICAuc3BsaXQocGF0aC5zZXApXG4gICAgICAgICAgICAgICAgICAuam9pbihcIi9cIilcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJlbGF0aXZlU291cmNlUGF0aDtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgYnVuZGxlZENvbnRyYWN0LmNsb3NlKCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBmcy5ybVN5bmModGVtcEJ1bmRsZURpciwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIWZyb21MaWIpIHtcbiAgICAgIGNvbXBpbGVXaXRoVHNjb25maWdPdmVycmlkZXModHNDb25maWdGaWxlLCB7XG4gICAgICAgIG91dERpcjogb3V0cHV0LFxuICAgICAgICBtb2R1bGU6IHRzLk1vZHVsZUtpbmQuRVNOZXh0LFxuICAgICAgICBkZWNsYXJhdGlvbjogZmFsc2UsXG4gICAgICAgIHNvdXJjZU1hcDogc291cmNlbWFwcyxcbiAgICAgICAgaW5saW5lU291cmNlczogc291cmNlbWFwcyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb3B5Rm9sZGVyQ29udGVudHMoXG4gICAgICAgIHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcIi4vbGliL2Nqc1wiKSxcbiAgICAgICAgcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIG91dHB1dClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2NyaXB0cyA9IHtcbiAgICAgIHN0YXJ0OiBnZXRDb250cmFjdFN0YXJ0Q29tbWFuZChkZWJ1ZywgY2NhYXMpLFxuICAgICAgXCJzdGFydDpkZXZcIjogXCJmYWJyaWMtY2hhaW5jb2RlLW5vZGUgc3RhcnQgLS10bHMuZW5hYmxlZCBmYWxzZVwiLFxuICAgICAgXCJzdGFydDp3YXRjaFwiOiAnbm9kZW1vbiAtLWV4ZWMgXCJucG0gcnVuIHN0YXJ0OmRldlwiJyxcbiAgICAgIGJ1aWxkOiAnZWNobyBcIk5vIG5lZWQgdG8gYnVpbGQgdGhlIGNoYWluY29kZVwiJyxcbiAgICAgIGxpbnQ6IFwiZXNsaW50IC4gLS1maXggLS1leHQgLmpzXCIsXG4gICAgfTtcblxuICAgIGNvbnN0IGNvbnRyYWN0UGFja2FnZSA9IHBrZztcbiAgICBjb25zdCBjb250cmFjdFBhY2thZ2VMb2NrID0gcGtnTG9jaztcblxuICAgIGNvbnRyYWN0UGFja2FnZS5uYW1lID0gbmFtZTtcbiAgICBjb250cmFjdFBhY2thZ2UuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICBjb250cmFjdFBhY2thZ2Uuc2NyaXB0cyA9IHNjcmlwdHM7XG5cbiAgICBkZWxldGUgY29udHJhY3RQYWNrYWdlLnR5cGU7XG4gICAgZGVsZXRlIGNvbnRyYWN0UGFja2FnZS50eXBlcztcbiAgICBkZWxldGUgY29udHJhY3RQYWNrYWdlLmV4cG9ydHM7XG4gICAgY29udHJhY3RQYWNrYWdlLm1haW4gPSBidW5kbGVcbiAgICAgID8gYCR7dG9QYXNjYWxDYXNlKG5hbWUpfS5qc2BcbiAgICAgIDogYCR7cmVtb3ZlU3JjRnJvbVBhdGgoaW5wdXQpfS8ke2Zyb21MaWIgPyBcImluZGV4LmNqc1wiIDogXCJpbmRleC5qc1wifWA7XG5cbiAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgcGF0aC5qb2luKG91dHB1dCwgXCJwYWNrYWdlLmpzb25cIiksXG4gICAgICBKU09OLnN0cmluZ2lmeShjb250cmFjdFBhY2thZ2UpXG4gICAgKTtcblxuICAgIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgICBwYXRoLmpvaW4ob3V0cHV0LCBcInBhY2thZ2UtbG9jay5qc29uXCIpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoY29udHJhY3RQYWNrYWdlTG9jaylcbiAgICApO1xuXG4gICAgaWYgKG5wbXJjICYmIG5wbXJjQ29udGVudClcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKG91dHB1dCwgXCIubnBtcmNcIiksIG5wbXJjQ29udGVudCk7XG5cbiAgICBsb2cuaW5mbyhgSW5zdGFsbGluZyBhbmQgc2hyaW5rd3JhcHBpbmcgZGVwZW5kZW5jaWVzYCk7XG4gICAgZXhlY1N5bmMoYG5wbSBpbnN0YWxsYCwgeyBjd2Q6IG91dHB1dCB9KTtcbiAgICBleGVjU3luYyhgbnBtIHNocmlua3dyYXBgLCB7IGN3ZDogb3V0cHV0IH0pO1xuICAgIGV4ZWNTeW5jKFwicm0gLXJmIG5vZGVfbW9kdWxlc1wiLCB7IGN3ZDogb3V0cHV0IH0pO1xuICAgIGxvZy5pbmZvKGBkZWxldGluZyB0ZW1wIGZvbGRlcnNgKTtcbiAgICBleGVjU3luYyhgcm0gLXJmIC4vbGliICYmIHJtIC1yZiAuL2Rpc3RgLCB7IGN3ZDogb3V0cHV0IH0pO1xuICAgIGxvZy5pbmZvKFxuICAgICAgYENvbnRyYWN0ICR7bmFtZX0gY29tcGlsZWQgc3VjY2Vzc2Z1bGx5ISBpbiAke3BhdGgucmVzb2x2ZShvdXRwdXQpfWBcbiAgICApO1xuICAgIGlmIChkZXYpIHtcbiAgICAgIGxvZy5pbmZvKGBkZXYgbW9kZSBlbmFibGVkLiBpbnN0YWxsaW5nIGRlcGVuZGVuY2llcyBmb3IgZGVidWdnaW5nYCk7XG4gICAgICBleGVjU3luYyhgbnBtIGluc3RhbGxgLCB7XG4gICAgICAgIGN3ZDogb3V0cHV0LFxuICAgICAgICBlbnY6IHsgLi4ucHJvY2Vzcy5lbnYsIE5PREVfRU5WOiBcInByb2R1Y3Rpb25cIiB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9KTtcblxuY29uc3QgZXh0cmFjdEluZGV4ZXMgPSBuZXcgQ29tbWFuZCgpXG4gIC5jb21tYW5kKFwiZXh0cmFjdC1pbmRleGVzXCIpXG4gIC5vcHRpb24oXCItLWZpbGUgW1N0cmluZ11cIiwgXCJ0aGUgbW9kZWwgZmlsZVwiKVxuICAub3B0aW9uKFwiLS1mb2xkZXIgW1N0cmluZ11cIiwgXCJ0aGUgbW9kZWwgZm9sZGVyXCIpXG4gIC5vcHRpb24oXCItLW91dERpciA8U3RyaW5nPlwiLCBcInRoZSBvdXRkaXIuIHNob3VsZCBtYXRjaCB5b3VyIGNvbnRyYWN0IGZvbGRlclwiKVxuICAuZGVzY3JpcHRpb24oXG4gICAgXCJDcmVhdGVzIGEgdGhlIEpTT04gaW5kZXggZmlsZXMgdG8gYmUgc3VibWl0dGVkIHRvIGFsb25nIHdpdGggdGhlIGNvbnRyYWN0XCJcbiAgKVxuICAuYWN0aW9uKGFzeW5jIChvcHRpb25zOiBhbnkpID0+IHtcbiAgICBjb25zdCBwa2cgPSBKU09OLnBhcnNlKFxuICAgICAgZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcInBhY2thZ2UuanNvblwiKSwgXCJ1dGYtOFwiKVxuICAgICk7XG5cbiAgICBjb25zdCB2ZXJzaW9uID0gcGtnLnZlcnNpb247XG5cbiAgICBjb25zdCBsb2cgPSBsb2dnZXIuZm9yKFwiZXh0cmFjdC1pbmRleGVzXCIpO1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGBydW5uaW5nIHdpdGggb3B0aW9uczogJHtKU09OLnN0cmluZ2lmeShvcHRpb25zKX0gZm9yICR7cGtnLm5hbWV9IHZlcnNpb24gJHt2ZXJzaW9ufWBcbiAgICApO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxuICAgIGxldCB7IGZpbGUsIGZvbGRlciwgb3V0RGlyIH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgbW9kZWxzOiBhbnlbXSA9IFtdO1xuICAgIGlmIChmaWxlKSB7XG4gICAgICBtb2RlbHMucHVzaCguLi5yZWFkTW9kZWxGaWxlKGZpbGUpKTtcbiAgICB9XG5cbiAgICBpZiAoZm9sZGVyKSB7XG4gICAgICBsb2cuaW5mbyhgTG9hZGluZyBtb2RlbHMgZnJvbSAke2ZvbGRlcn0uLi5gKTtcbiAgICAgIG1vZGVscy5wdXNoKC4uLihhd2FpdCByZWFkTW9kZWxGb2xkZXJzKGZvbGRlcikpKTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgY29uc3QgZGVzaWduRG9jczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gICAgaWYgKCFmaWxlICYmICFmb2xkZXIpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTXVzdCBwYXNzIGEgZmlsZSBvciBhIGZvbGRlcmApO1xuXG4gICAgZm9yIChjb25zdCBtIG9mIG1vZGVscykge1xuICAgICAgbG9nLnZlcmJvc2UoYEV4dHJhY3RpbmcgaW5kZXhlcyBmb3IgdGFibGUgJHtNb2RlbC50YWJsZU5hbWUobSl9YCk7XG4gICAgICBjb25zdCBpbmRleGVzID0gZ2VuZXJhdGVNb2RlbEluZGV4ZXMobSk7XG4gICAgICBpbmRleGVzLmZvckVhY2goKGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChpbmRleC5uYW1lKSB7XG4gICAgICAgICAgcmVzdWx0W2luZGV4Lm5hbWVdID0gaW5kZXg7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgZ2VuZXJhdGVNb2RlbERlc2lnbkRvY3MobSwgZGVzaWduRG9jcyk7XG4gICAgfVxuICAgIGNvbnN0IGluZGV4ZXNUb1dyaXRlID0gT2JqZWN0LnZhbHVlcyhyZXN1bHQpO1xuICAgIGNvbnN0IGRvY3NUb1dyaXRlID0gT2JqZWN0LnZhbHVlcyhkZXNpZ25Eb2NzKTtcbiAgICBsb2cudmVyYm9zZShgRm91bmQgJHtpbmRleGVzVG9Xcml0ZS5sZW5ndGh9IGluZGV4ZXMgdG8gY3JlYXRlYCk7XG4gICAgbG9nLnZlcmJvc2UoYEZvdW5kICR7ZG9jc1RvV3JpdGUubGVuZ3RofSBkZXNpZ24gZG9jcyB0byBjcmVhdGVgKTtcbiAgICBsb2cuZGVidWcoYEluZGV4ZXM6ICR7SlNPTi5zdHJpbmdpZnkocmVzdWx0KX1gKTtcbiAgICBsb2cuZGVidWcoYERlc2lnbkRvY3M6ICR7SlNPTi5zdHJpbmdpZnkoZGVzaWduRG9jcyl9YCk7XG4gICAgd3JpdGVJbmRleGVzKGluZGV4ZXNUb1dyaXRlLCBvdXREaXIpO1xuICAgIHdyaXRlRGVzaWduRG9jcyhkb2NzVG9Xcml0ZSwgb3V0RGlyKTtcbiAgfSk7XG5cbmNvbnN0IGV4dHJhY3RDb2xsZWN0aW9ucyA9IG5ldyBDb21tYW5kKClcbiAgLmNvbW1hbmQoXCJleHRyYWN0LWNvbGxlY3Rpb25zXCIpXG4gIC5vcHRpb24oXCItLWZpbGUgW1N0cmluZ11cIiwgXCJ0aGUgbW9kZWwgZmlsZVwiKVxuICAub3B0aW9uKFwiLS1mb2xkZXIgW1N0cmluZ11cIiwgXCJ0aGUgbW9kZWwgZm9sZGVyXCIpXG4gIC5vcHRpb24oXCItLW91dERpciA8U3RyaW5nPlwiLCBcInRoZSBvdXRkaXIuIHNob3VsZCBtYXRjaCB5b3VyIGNvbnRyYWN0IGZvbGRlclwiKVxuICAub3B0aW9uKFwiLS1tc3BJZHMgPFN0cmluZz5cIiwgXCJzaW5nbGUgbXNwSWQgb3Igc3RyaW5naWZpZWQgYXJyYXlcIilcbiAgLm9wdGlvbihcIi0tbWFpbk1zcElkIDxTdHJpbmc+XCIsIFwic2luZ2xlIG1zcElkXCIpXG4gIC5vcHRpb24oXG4gICAgXCItLW92ZXJyaWRlcyBbU3RyaW5nXVwiLFxuICAgIFwic3RyaW5naWZpZWQgb3ZlcnJpZGUgb2JqZWN0IHtyZXF1aXJlZFBlZXJDb3VudDogbnVtYmVyLCBtYXhQZWVyQ291bnQ6IG51bWJlciwgYmxvY2tUb0xpdmU6IG51bWJlciwgbWVtYmVyT25seVJlYWQ6IG51bWJlciwgbWVtYmVyT25seVdyaXRlOiBudW1iZXIsIGVuZG9yc2VtZW50UG9saWN5OiAge319XCJcbiAgKVxuICAuZGVzY3JpcHRpb24oXG4gICAgXCJDcmVhdGVzIGEgdGhlIEpTT04gaW5kZXggZmlsZXMgdG8gYmUgc3VibWl0dGVkIHRvIGFsb25nIHdpdGggdGhlIGNvbnRyYWN0XCJcbiAgKVxuICAuYWN0aW9uKGFzeW5jIChvcHRpb25zOiBhbnkpID0+IHtcbiAgICBjb25zdCBwa2cgPSBKU09OLnBhcnNlKFxuICAgICAgZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcInBhY2thZ2UuanNvblwiKSwgXCJ1dGYtOFwiKVxuICAgICk7XG5cbiAgICBjb25zdCB2ZXJzaW9uID0gcGtnLnZlcnNpb247XG5cbiAgICBjb25zdCBsb2cgPSBsb2dnZXIuZm9yKFwiZXh0cmFjdC1jb2xsZWN0aW9uc1wiKTtcbiAgICBsb2cuZGVidWcoXG4gICAgICBgcnVubmluZyB3aXRoIG9wdGlvbnM6ICR7SlNPTi5zdHJpbmdpZnkob3B0aW9ucyl9IGZvciAke3BrZy5uYW1lfSB2ZXJzaW9uICR7dmVyc2lvbn1gXG4gICAgKTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICBsZXQgeyBmaWxlLCBmb2xkZXIsIG91dERpciwgbXNwSWRzLCBtYWluTXNwSWQgfSA9IG9wdGlvbnM7XG5cbiAgICB0cnkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgbXNwSWRzID0gbXNwSWRzID8gSlNPTi5wYXJzZShtc3BJZHMpIDogdW5kZWZpbmVkO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgIC8vICBkbyBub3RoaW5nXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihgVW5hYmxlIHRvIGV4dHJhY3QgbXNwaWRzOiAgJHtlfWApO1xuICAgIH1cblxuICAgIGNvbnN0IG1vZGVsczogYW55W10gPSBbXTtcbiAgICBpZiAoZmlsZSkge1xuICAgICAgbW9kZWxzLnB1c2goLi4ucmVhZE1vZGVsRmlsZShmaWxlKSk7XG4gICAgfVxuXG4gICAgaWYgKGZvbGRlcikge1xuICAgICAgbG9nLmluZm8oYExvYWRpbmcgbW9kZWxzIGZyb20gJHtmb2xkZXJ9Li4uYCk7XG4gICAgICBtb2RlbHMucHVzaCguLi4oYXdhaXQgcmVhZE1vZGVsRm9sZGVycyhmb2xkZXIpKSk7XG4gICAgfVxuXG4gICAgaWYgKCFmaWxlICYmICFmb2xkZXIpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTXVzdCBwYXNzIGEgZmlsZSBvciBhIGZvbGRlcmApO1xuXG4gICAgY29uc3QgaW5qZWN0YWJsZU1vZGVscyA9IG1vZGVscy5maWx0ZXIoXG4gICAgICAobW9kZWwpID0+XG4gICAgICAgIE1vZGVsLmlzU2hhcmVkKG1vZGVsKSB8fFxuICAgICAgICBNb2RlbC5pc1ByaXZhdGUobW9kZWwpIHx8XG4gICAgICAgICEhTW9kZWwubWlycm9yZWRBdChtb2RlbClcbiAgICApO1xuICAgIGlmICghaW5qZWN0YWJsZU1vZGVscy5sZW5ndGgpIHtcbiAgICAgIGxvZy5pbmZvKFxuICAgICAgICBgTm8gc2hhcmVkLCBwcml2YXRlLCBvciBtaXJyb3JlZCBtb2RlbHMgZm91bmQgdG8gZXh0cmFjdCBjb2xsZWN0aW9uc2BcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXN5bmMgZnVuY3Rpb24gZ2V0Q29scyhtc3BJZHNMaXN0Pzogc3RyaW5nW10pIHtcbiAgICAgIGNvbnN0IGNvbHM6IHtcbiAgICAgICAgaW5kZXhlczogQ3JlYXRlSW5kZXhSZXF1ZXN0W107XG4gICAgICAgIGRlc2lnbkRvY3M6IENvdWNoREJEZXNpZ25Eb2NbXTtcbiAgICAgICAgbWlycm9yPzogUHJpdmF0ZUNvbGxlY3Rpb247XG4gICAgICAgIGNvbGxlY3Rpb25zOiBQcml2YXRlQ29sbGVjdGlvbltdO1xuICAgICAgfVtdID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIGluamVjdGFibGVNb2RlbHMubWFwKGFzeW5jIChjbGF6eikgPT4ge1xuICAgICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgICAgY29uc3QgbWlycm9yTWV0YSA9IE1vZGVsLm1pcnJvcmVkQXQoY2xhenopO1xuXG4gICAgICAgICAgY29uc29sZS5sb2codGFibGVOYW1lKTtcbiAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgICAgICAgIGZvciAoY29uc3QgbXNwIG9mIG1zcElkc0xpc3QgfHwgbXNwSWRzIHx8IFtdKSB7XG4gICAgICAgICAgICBjb2xsZWN0aW9uc1ttc3BdID0gYXdhaXQgZXhDb2xsZWN0aW9ucyhcbiAgICAgICAgICAgICAgY2xhenosXG4gICAgICAgICAgICAgIFttc3AsIG1haW5Nc3BJZF0sXG4gICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICAvLyB7XG4gICAgICAgICAgICAgIC8vICAgc2hhcmVkQ29sczogT2JqZWN0LmFzc2lnbih7fSwgb3ZlcnJpZGVzLnNoYXJlZENvbHMpLFxuICAgICAgICAgICAgICAvLyAgIHByaXZhdGVDb2xzOiBPYmplY3QuYXNzaWduKHt9LCBvdmVycmlkZXMucHJpdmF0ZUNvbHMpLFxuICAgICAgICAgICAgICAvLyB9LFxuICAgICAgICAgICAgICAhIW1pcnJvck1ldGFcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGV0IG1pcnJvckNvbGxlY3Rpb246IFByaXZhdGVDb2xsZWN0aW9uIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgICAgICAgaWYgKG1pcnJvck1ldGEpIHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb25zW21haW5Nc3BJZF0gPSBjb2xsZWN0aW9uc1ttYWluTXNwSWRdIHx8IHt9O1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoY29sbGVjdGlvbnMpLmZvckVhY2goKG1zcDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb25zW21haW5Nc3BJZF0ucHJpdmF0ZXMgPSBjb2xsZWN0aW9uc1tcbiAgICAgICAgICAgICAgICBtc3BcbiAgICAgICAgICAgICAgXS5wcml2YXRlcz8uZmlsdGVyKChwOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocC5uYW1lICE9PSAobWlycm9yTWV0YS5yZXNvbHZlciBhcyBzdHJpbmcpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICBtaXJyb3JDb2xsZWN0aW9uID0gcCBhcyBhbnk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHByaXZhdGVzQ291bnQgPSBPYmplY3QudmFsdWVzKGNvbGxlY3Rpb25zKVxuICAgICAgICAgICAgLm1hcCgoYykgPT4gYy5wcml2YXRlcylcbiAgICAgICAgICAgIC5mbGF0KCkubGVuZ3RoO1xuICAgICAgICAgIGlmIChwcml2YXRlc0NvdW50KVxuICAgICAgICAgICAgbG9nXG4gICAgICAgICAgICAgIC5mb3IoTW9kZWwudGFibGVOYW1lKGNsYXp6KSlcbiAgICAgICAgICAgICAgLmluZm8oYEZvdW5kICR7cHJpdmF0ZXNDb3VudH0gcHJpdmF0ZSBjb2xsZWN0aW9ucyB0byBjcmVhdGVgKTtcbiAgICAgICAgICBjb25zdCBzaGFyZWRDb3VudCA9IE9iamVjdC52YWx1ZXMoY29sbGVjdGlvbnMpXG4gICAgICAgICAgICAubWFwKChjKSA9PiBjLnNoYXJlZClcbiAgICAgICAgICAgIC5mbGF0KCkubGVuZ3RoO1xuXG4gICAgICAgICAgbG9nXG4gICAgICAgICAgICAuZm9yKE1vZGVsLnRhYmxlTmFtZShjbGF6eikpXG4gICAgICAgICAgICAuaW5mbyhgRm91bmQgJHtzaGFyZWRDb3VudH0gc2hhcmVkIGNvbGxlY3Rpb25zIHRvIGNyZWF0ZWApO1xuICAgICAgICAgIGlmIChtaXJyb3JDb2xsZWN0aW9uKVxuICAgICAgICAgICAgbG9nXG4gICAgICAgICAgICAgIC5mb3IoTW9kZWwudGFibGVOYW1lKGNsYXp6KSlcbiAgICAgICAgICAgICAgLmluZm8oXG4gICAgICAgICAgICAgICAgYEZvdW5kIG9uZSBtaXJyb3IgY29sbGVjdGlvbiAke21pcnJvck1ldGE/LnJlc29sdmVyIGFzIHN0cmluZ31gXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCBjb2xMaXN0ID0gT2JqZWN0LnZhbHVlcyhjb2xsZWN0aW9ucylcbiAgICAgICAgICAgIC5tYXAoKGMpID0+IFsuLi4oYy5wcml2YXRlcyB8fCBbXSksIC4uLihjLnNoYXJlZCB8fCBbXSldKVxuICAgICAgICAgICAgLmZsYXQoKTtcbiAgICAgICAgICBsZXQgaW5kZXhlczogQ3JlYXRlSW5kZXhSZXF1ZXN0W10gPSBbXTtcbiAgICAgICAgICBsZXQgZGVzaWduRG9jczogQ291Y2hEQkRlc2lnbkRvY1tdID0gW107XG4gICAgICAgICAgaWYgKGNvbExpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICBsb2dcbiAgICAgICAgICAgICAgLmZvcihNb2RlbC50YWJsZU5hbWUoY2xhenopKVxuICAgICAgICAgICAgICAudmVyYm9zZShgZ2VuZXJhdGluZyBpbmRleGVzIGZvciBjb2xsZWN0aW9uc2ApO1xuICAgICAgICAgICAgaW5kZXhlcyA9IGdlbmVyYXRlTW9kZWxJbmRleGVzKGNsYXp6KTtcbiAgICAgICAgICAgIGxvZ1xuICAgICAgICAgICAgICAuZm9yKE1vZGVsLnRhYmxlTmFtZShjbGF6eikpXG4gICAgICAgICAgICAgIC5pbmZvKGBmb3VuZCAke2luZGV4ZXMubGVuZ3RofSBpbmRleGVzYCk7XG4gICAgICAgICAgICBkZXNpZ25Eb2NzID0gZ2VuZXJhdGVNb2RlbERlc2lnbkRvY3MoY2xhenopO1xuICAgICAgICAgICAgbG9nXG4gICAgICAgICAgICAgIC5mb3IoTW9kZWwudGFibGVOYW1lKGNsYXp6KSlcbiAgICAgICAgICAgICAgLmluZm8oYGZvdW5kICR7ZGVzaWduRG9jcy5sZW5ndGh9IGRlc2lnbiBkb2NzYCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpbmRleGVzLFxuICAgICAgICAgICAgZGVzaWduRG9jcyxcbiAgICAgICAgICAgIGNvbGxlY3Rpb25zOiBjb2xMaXN0LFxuICAgICAgICAgICAgbWlycm9yOiBtaXJyb3JDb2xsZWN0aW9uLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgcmV0dXJuIGNvbHM7XG4gICAgfVxuXG4gICAgY29uc3QgY29scyA9IGF3YWl0IGdldENvbHMoKTtcbiAgICBjb25zdCBvbmx5TWlycm9yID0gYXdhaXQgZ2V0Q29scyhbbWFpbk1zcElkXSk7XG5cbiAgICBjb25zdCBjb2xsZWN0aW9uc1RvID0gW1xuICAgICAgLi4ub25seU1pcnJvci5maWx0ZXIoKGMpID0+IGMubWlycm9yKS5tYXAoKGMpID0+IGMubWlycm9yKSxcbiAgICAgIC4uLmNvbHMubWFwKChjKSA9PiBjLmNvbGxlY3Rpb25zKS5mbGF0KCksXG4gICAgICAuLi5jb2xzLmZpbHRlcigoYykgPT4gYy5taXJyb3IpLm1hcCgoYykgPT4gYy5taXJyb3IpLFxuICAgIF0gYXMgUHJpdmF0ZUNvbGxlY3Rpb25bXTtcblxuICAgIGNvbnN0IHVuaXF1ZUJ5Q29sbGVjdGlvbiA9IFtcbiAgICAgIC4uLm5ldyBNYXAoXG4gICAgICAgIGNvbGxlY3Rpb25zVG8ubWFwKChpdGVtOiBQcml2YXRlQ29sbGVjdGlvbikgPT4gW2l0ZW0ubmFtZSwgaXRlbV0pXG4gICAgICApLnZhbHVlcygpLFxuICAgIF07XG5cbiAgICBpZiAodW5pcXVlQnlDb2xsZWN0aW9uLmxlbmd0aCkge1xuICAgICAgd3JpdGVDb2xsZWN0aW9ucyh1bmlxdWVCeUNvbGxlY3Rpb24sIG91dERpcik7XG4gICAgICBjb25zdCBtZXRhQ29sbGVjdGlvbnNDb25maWcgPSBwYXRoLmpvaW4oXG4gICAgICAgIG91dERpcixcbiAgICAgICAgXCJNRVRBLUlORlwiLFxuICAgICAgICBcImNvbGxlY3Rpb25zX2NvbmZpZy5qc29uXCJcbiAgICAgICk7XG4gICAgICBjb25zdCBjb250cmFjdENvbGxlY3Rpb25zQ29uZmlnID0gcGF0aC5qb2luKFxuICAgICAgICBvdXREaXIsXG4gICAgICAgIFwiY29sbGVjdGlvbnNfY29uZmlnLmpzb25cIlxuICAgICAgKTtcbiAgICAgIGZzLmNvcHlGaWxlU3luYyhtZXRhQ29sbGVjdGlvbnNDb25maWcsIGNvbnRyYWN0Q29sbGVjdGlvbnNDb25maWcpO1xuICAgICAgbG9nLmluZm8oXG4gICAgICAgIGBTdG9yZWQgJHtjb2xsZWN0aW9uc1RvLmxlbmd0aH0gY29sbGVjdGlvbnMgdG8gJHttZXRhQ29sbGVjdGlvbnNDb25maWd9YFxuICAgICAgKTtcbiAgICAgIGxvZy5pbmZvKFxuICAgICAgICBgQ29waWVkIGNvbGxlY3Rpb25zX2NvbmZpZyB0byAke2NvbnRyYWN0Q29sbGVjdGlvbnNDb25maWd9IGFsb25nc2lkZSB0aGUgcGFja2FnZS5qc29uYFxuICAgICAgKTtcblxuICAgICAgY29scy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgaW5kZXhlcywgZGVzaWduRG9jcywgY29sbGVjdGlvbnMsIG1pcnJvciB9ID0gYztcbiAgICAgICAgY29uc3QgdG9JbmRleDogUHJpdmF0ZUNvbGxlY3Rpb25bXSA9IFsuLi5jb2xsZWN0aW9ucywgbWlycm9yXS5maWx0ZXIoXG4gICAgICAgICAgQm9vbGVhblxuICAgICAgICApIGFzIFByaXZhdGVDb2xsZWN0aW9uW107XG4gICAgICAgIHRvSW5kZXguZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgICAgIHdyaXRlSW5kZXhlcyhpbmRleGVzLCBvdXREaXIsIGkubmFtZSk7XG4gICAgICAgICAgd3JpdGVDb2xsZWN0aW9uRGVzaWduRG9jcyhkZXNpZ25Eb2NzIHx8IFtdLCBvdXREaXIsIGkubmFtZSk7XG4gICAgICAgICAgbG9nLmluZm8oXG4gICAgICAgICAgICBgU3RvcmVkICR7aW5kZXhlcz8ubGVuZ3RoIHx8IDB9IGluZGV4ZXMgYW5kICR7ZGVzaWduRG9jcz8ubGVuZ3RoIHx8IDB9IGRlc2lnbiBkb2NzIHRvIGNvbGxlY3Rpb24gJHtpLm5hbWV9YFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9KTtcblxuY29uc3QgZW5zdXJlSW5mcmEgPSBuZXcgQ29tbWFuZCgpXG4gIC5uYW1lKFwiYXdhaXQtaW5mcmFcIilcbiAgLmRlc2NyaXB0aW9uKFwid2FpdHMgZm9yIHRoZSBpbmZyYXN0cnVjdHVyZSB0byBiZSB1cCBhbmQgcnVubmluZ1wiKVxuICAub3B0aW9uKFxuICAgIFwiLS1jb250YWluZXIgPFN0cmluZz5cIixcbiAgICBcImRvY2tlciBjb250YWluZXIgbmFtZSB0byB0ZXN0ICh1c3VhbGx5IGxhc3QgcGVlcilcIixcbiAgICBcImJvb3Qtb3JnLWMtcGVlci0wXCJcbiAgKVxuICAub3B0aW9uKFwiLS10aW1lb3V0IDxTdHJpbmc+XCIsIFwidGltZW91dCBiZXR3ZWVuIHRlc3RzIGluIG1pbGxpc2Vjb25kc1wiLCBcIjUwMDBcIilcbiAgLm9wdGlvbihcIi0tYXR0ZW1wdHMgPFN0cmluZz5cIiwgXCJudW1iZXIgb2YgYXR0ZW1wdHMgYmVmb3JlIGdpdmluZyB1cFwiLCBcIjEwXCIpXG4gIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgIGNvbnN0IHBrZyA9IEpTT04ucGFyc2UoXG4gICAgICBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwicGFja2FnZS5qc29uXCIpLCBcInV0Zi04XCIpXG4gICAgKTtcblxuICAgIGNvbnN0IHZlcnNpb24gPSBwa2cudmVyc2lvbjtcblxuICAgIGNvbnN0IGxvZyA9IGxvZ2dlci5mb3IoXCJhd2FpdC1pbmZyYVwiKTtcbiAgICBsb2cuZGVidWcoXG4gICAgICBgcnVubmluZyB3aXRoIG9wdGlvbnM6ICR7SlNPTi5zdHJpbmdpZnkob3B0aW9ucyl9IGZvciAke3BrZy5uYW1lfSB2ZXJzaW9uICR7dmVyc2lvbn1gXG4gICAgKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG4gICAgbGV0IHsgY29udGFpbmVyLCB0aW1lb3V0LCBhdHRlbXB0cyB9ID0gb3B0aW9ucztcbiAgICB0aW1lb3V0ID0gcGFyc2VJbnQodGltZW91dCkgfHwgNTAwMDtcbiAgICBhdHRlbXB0cyA9IHBhcnNlSW50KGF0dGVtcHRzKSB8fCAxMDtcblxuICAgIGF3YWl0IGVuc3VyZUluZnJhc3RydWN0dXJlQm9vdGVkKFwiYm9vdC1vcmctYy1wZWVyLTBcIiwgdGltZW91dCwgYXR0ZW1wdHMpO1xuXG4gICAgbG9nLmluZm8oXG4gICAgICBgSW5mcmFzdHJ1Y3R1cmUgYm9vdGVkIHN1Y2Nlc3NmdWxseSAoYWNjb3JkaW5nIHRvIGNvbnRhaW5lciAke2NvbnRhaW5lcn0pIWBcbiAgICApO1xuICB9KTtcblxuY29uc3QgZGVwbG95Q29udHJhY3QgPSBuZXcgQ29tbWFuZCgpXG4gIC5uYW1lKFwiZGVwbG95LWNvbnRyYWN0XCIpXG4gIC5kZXNjcmlwdGlvbihcImRlcGxveXMgdGhlIHNlbGVjdGVkIGNvbnRyYWN0XCIpXG4gIC5vcHRpb24oXCItLW5hbWUgPFN0cmluZz5cIiwgXCJDb250cmFjdCBOYW1lIChhbmQgZm9sZGVyKVwiKVxuICAub3B0aW9uKFwiLS1pbnB1dCA8U3RyaW5nPlwiLCBcImlucHV0IGZvbGRlclwiKVxuICAub3B0aW9uKFxuICAgIFwiLS1jb2xsZWN0aW9ucy1jb25maWcgPFN0cmluZz5cIixcbiAgICBcInBhdGggdG8gY29sbGVjdGlvbnNfY29uZmlnLmpzb24gdG8gY29uZmlndXJlIHByaXZhdGUgY29sbGVjdGlvbnNcIlxuICApXG4gIC5vcHRpb24oXG4gICAgXCItLWluY3JlbWVudFZlcnNpb24gPFN0cmluZz5cIixcbiAgICBcIih0cnVlIHwgZmFsc2UpIGlmIHNob3VsZCB1c2UgdmVyc2lvbiBvciBzZXF1ZW5jZSB0byB1cGRhdGUgY29udHJhY3RzXCIsXG4gICAgZmFsc2VcbiAgKVxuICAub3B0aW9uKFxuICAgIFwiLS10cmFja2VyRm9sZGVyIDxTdHJpbmc+XCIsXG4gICAgXCJjb250cmFjdCB2ZXJzaW9uIHRyYWNrZXIgZm9sZGVyIChzaG91bGQgYmUgZGVsZXRlZCBvbiBpbmZyYXN0cnVjdHVyZTpkb3duKVwiLFxuICAgIHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcInRlc3RzXCIsIFwiaW50ZWdyYXRpb25cIiwgXCJjaGFpbmNvZGVUcmFja2Vyc1wiKVxuICApXG4gIC5vcHRpb24oXG4gICAgXCItLXBlZXJzIDxTdHJpbmc+XCIsXG4gICAgXCJjb21tYSBzZXBhcmF0ZWQgcGVlciBpZHNcIixcbiAgICBcIm9yZy1hLXBlZXItMCxvcmctYi1wZWVyLTAsb3JnLWMtcGVlci0wXCJcbiAgKVxuICAuYWN0aW9uKGFzeW5jIChvcHRpb25zOiBhbnkpID0+IHtcbiAgICBjb25zdCBwa2cgPSBKU09OLnBhcnNlKFxuICAgICAgZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcInBhY2thZ2UuanNvblwiKSwgXCJ1dGYtOFwiKVxuICAgICk7XG5cbiAgICBjb25zdCB2ZXJzaW9uID0gcGtnLnZlcnNpb247XG5cbiAgICBjb25zdCBsb2cgPSBsb2dnZXIuZm9yKFwiZGVwbG95LWNvbnRyYWN0XCIpO1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGBydW5uaW5nIHdpdGggb3B0aW9uczogJHtKU09OLnN0cmluZ2lmeShvcHRpb25zKX0gZm9yICR7cGtnLm5hbWV9IHZlcnNpb24gJHt2ZXJzaW9ufWBcbiAgICApO1xuXG4gICAgY29uc3Qge1xuICAgICAgbmFtZSxcbiAgICAgIGlucHV0LFxuICAgICAgcGVlcnMsXG4gICAgICB0cmFja2VyRm9sZGVyLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgaW5jcmVtZW50VmVyc2lvbixcbiAgICAgIGNvbGxlY3Rpb25zQ29uZmlnLFxuICAgIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHBlZXJJZHMgPSBwZWVycy5zcGxpdChcIixcIik7XG5cbiAgICBjb25zdCBjb3VudFBhdGggPSBwYXRoLnJlc29sdmUocGF0aC5qb2luKHRyYWNrZXJGb2xkZXIsIGAke25hbWV9LmNvdW50YCkpO1xuXG4gICAgbGV0IHNlcXVlbmNlOiBudW1iZXI7XG5cbiAgICB0cnkge1xuICAgICAgc2VxdWVuY2UgPSBwYXJzZUludChmcy5yZWFkRmlsZVN5bmMoY291bnRQYXRoKS50b1N0cmluZyhcInV0Zi04XCIpKTtcbiAgICAgIGlmIChpc05hTihzZXF1ZW5jZSkpIHNlcXVlbmNlID0gMTtcbiAgICAgIGVsc2Ugc2VxdWVuY2UgKz0gMTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICBzZXF1ZW5jZSA9IDE7XG4gICAgfVxuICAgIC8vXG4gICAgLy8gaWYgKGluY3JlbWVudFZlcnNpb24pIHtcbiAgICAvLyAgIHZlcnNpb24gPSB2ZXJzaW9uICsgYC0ke3NlcXVlbmNlfWA7XG4gICAgLy8gICAvLyBzZXF1ZW5jZSA9IDE7XG4gICAgLy8gfVxuXG4gICAgdHJ5IHtcbiAgICAgIGZvciAoY29uc3QgcGVlciBvZiBwZWVySWRzKSB7XG4gICAgICAgIHBhY2thZ2VDb250cmFjdChwZWVyLCBpbnB1dCwgbmFtZSwgdmVyc2lvbik7XG4gICAgICAgIGluc3RhbGxDb250cmFjdChwZWVyLCBuYW1lKTtcbiAgICAgICAgYXBwcm92ZUNvbnRyYWN0KFxuICAgICAgICAgIHBlZXIsXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBwZWVyID09PSBcIm9yZy1hLXBlZXItMFwiXG4gICAgICAgICAgICA/IFwidGxzLWNhLWNlcnQucGVtXCJcbiAgICAgICAgICAgIDogXCJvcmRlcmVyLXRscy1jYS1jZXJ0LnBlbVwiLFxuICAgICAgICAgIHNlcXVlbmNlLFxuICAgICAgICAgIHZlcnNpb24sXG4gICAgICAgICAgY29sbGVjdGlvbnNDb25maWdcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoY291bnRQYXRoLCBzZXF1ZW5jZS50b1N0cmluZygpKTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgbG9nLmVycm9yKFwiRXJyb3IgZGVwbG95aW5nIGNvbnRyYWN0OlwiLCBlcnIpO1xuICAgIH1cbiAgICBjb21taXRDaGFpbmNvZGUobmFtZSwgc2VxdWVuY2UsIHZlcnNpb24sIGNvbGxlY3Rpb25zQ29uZmlnKTtcbiAgfSk7XG5cbmNvbnN0IGdldENyeXB0b01hdGVyaWFsID0gbmV3IENvbW1hbmQoKVxuICAubmFtZShcImdldC1jcnlwdG8tbWF0ZXJpYWxcIilcbiAgLmRlc2NyaXB0aW9uKFwiY29waWVzIHRoZSBjcnlwdG8gbWF0ZXJpYWwgdG8gdGhlIHNlbGVjdGVkIGZvbGRlclwiKVxuICAub3B0aW9uKFwiLS1mb2xkZXIgPFN0cmluZz5cIiwgXCJvdXRwdXQgZm9sZGVyXCIsIFwiZG9ja2VyL2RvY2tlci1kYXRhXCIpXG4gIC5vcHRpb24oXCItLW9yZyBbU3RyaW5nXVwiLCBcInRoZSBvcmcvcGVlciB0byBleHRyYWN0IGZyb21cIiwgXCJvcmctYVwiKVxuICAuYWN0aW9uKGFzeW5jIChvcHRpb25zOiBhbnkpID0+IHtcbiAgICBjb25zdCBwa2cgPSBKU09OLnBhcnNlKFxuICAgICAgZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcInBhY2thZ2UuanNvblwiKSwgXCJ1dGYtOFwiKVxuICAgICk7XG5cbiAgICBjb25zdCB2ZXJzaW9uID0gcGtnLnZlcnNpb247XG5cbiAgICBjb25zdCBsb2cgPSBsb2dnZXIuZm9yKFwiZ2V0LWNyeXB0by1tYXRlcmlhbFwiKTtcbiAgICBsb2cuZGVidWcoXG4gICAgICBgcnVubmluZyB3aXRoIG9wdGlvbnM6ICR7SlNPTi5zdHJpbmdpZnkob3B0aW9ucyl9IGZvciAke3BrZy5uYW1lfSB2ZXJzaW9uICR7dmVyc2lvbn1gXG4gICAgKTtcbiAgICBjb25zdCB7IGZvbGRlciwgb3JnIH0gPSBvcHRpb25zO1xuICAgIGV4ZWNTeW5jKGBkb2NrZXIgY3AgJHtvcmd9Oi93ZWF2ZXIvY2xpZW50Ly4gJHtmb2xkZXJ9YCwge1xuICAgICAgY3dkOiBwcm9jZXNzLmN3ZCgpLFxuICAgIH0pO1xuICB9KTtcblxuY29uc3QgZ2V0Q29weVRvUFRQID0gbmV3IENvbW1hbmQoKVxuICAubmFtZShcInByZXBhcmUtcHRwXCIpXG4gIC5kZXNjcmlwdGlvbihcImNvcGllcyBjb250cmFjdCB0byB0aGUgcHRwIGZvbGRlclwiKVxuICAub3B0aW9uKFwiLS1vcmlnaW4tZm9sZGVyIDxTdHJpbmc+XCIsIFwib3JpZ2luIHdvcmtzcGFjZSBmb2xkZXJcIiwgdW5kZWZpbmVkKVxuICAub3B0aW9uKFxuICAgIFwiLS1kZXN0LWZvbGRlciA8U3RyaW5nPlwiLFxuICAgIFwiZm9sZGVyIHRvIHRoZSBkZXN0aW5hdGlvbiB3b3Jrc3BhY2VcIixcbiAgICB1bmRlZmluZWRcbiAgKVxuICAuYWN0aW9uKGFzeW5jIChvcHRpb25zOiBhbnkpID0+IHtcbiAgICBpZiAoIShvcHRpb25zLm9yaWdpbkZvbGRlciAmJiBvcHRpb25zLmRlc3RGb2xkZXIpKSB7XG4gICAgICBsb2dnZXJcbiAgICAgICAgLmZvcihcInByZXBhcmUtcHRwXCIpXG4gICAgICAgIC5lcnJvcihcbiAgICAgICAgICBcIkJvdGggLS1vcmlnaW4tZm9sZGVyIGFuZCAtLWRlc3QtZm9sZGVyIG9wdGlvbnMgYXJlIHJlcXVpcmVkIHRvIHByZXBhcmUtcHRwXCJcbiAgICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb3B5Rm9sZGVyKHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZykge1xuICAgICAgLy8gUmVtb3ZlIGV4aXN0aW5nIHRhcmdldCBmb2xkZXJcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldCkpIHtcbiAgICAgICAgZnMucm1TeW5jKHRhcmdldCwge1xuICAgICAgICAgIHJlY3Vyc2l2ZTogdHJ1ZSxcbiAgICAgICAgICBmb3JjZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEVuc3VyZSBwYXJlbnQgZXhpc3RzXG4gICAgICBmcy5ta2RpclN5bmMocGF0aC5kaXJuYW1lKHRhcmdldCksIHtcbiAgICAgICAgcmVjdXJzaXZlOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIENvcHkgZm9sZGVyXG4gICAgICBmcy5jcFN5bmMoc291cmNlLCB0YXJnZXQsIHtcbiAgICAgICAgcmVjdXJzaXZlOiB0cnVlLFxuICAgICAgICBmb3JjZTogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zb2xlLmxvZyhgQ29waWVkOiAke3NvdXJjZX0gXG4gICAgICAtPiAke3RhcmdldH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBvcmlnaW4gPSBwYXRoLnJlc29sdmUob3B0aW9ucy5vcmlnaW5Gb2xkZXIpO1xuICAgIGNvbnN0IGRlc3QgPSBwYXRoLnJlc29sdmUob3B0aW9ucy5kZXN0Rm9sZGVyKTtcblxuICAgIGV4ZWNTeW5jKGBjZCBmb3ItZmFicmljICYmIG5wbSBydW4gYnVpbGRgLCB7XG4gICAgICBjd2Q6IG9yaWdpbixcbiAgICAgIHN0ZGlvOiBcImluaGVyaXRcIixcbiAgICB9KTtcbiAgICBleGVjU3luYyhgY2QgZm9yLWZhYnJpYyAmJiBucG0gcnVuIGJ1aWxkOmNvbnRyYWN0OnNoYXJlZGAsIHtcbiAgICAgIGN3ZDogb3JpZ2luLFxuICAgICAgc3RkaW86IFwiaW5oZXJpdFwiLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc291cmNlTGliID0gcGF0aC5qb2luKG9yaWdpbiwgXCJmb3ItZmFicmljXCIsIFwibGliXCIpO1xuICAgIGNvbnN0IHRhcmdldExpYiA9IHBhdGguam9pbihkZXN0LCBcImluZnJhXCIsIFwiZm9yLWZhYnJpY1wiLCBcImxpYlwiKTtcblxuICAgIGNvcHlGb2xkZXIoc291cmNlTGliLCB0YXJnZXRMaWIpO1xuXG4gICAgY29uc3Qgc291cmNlR2xvYmFsID0gcGF0aC5qb2luKFxuICAgICAgb3JpZ2luLFxuICAgICAgXCJmb3ItZmFicmljXCIsXG4gICAgICBcImRvY2tlclwiLFxuICAgICAgXCJpbmZyYXN0cnVjdHVyZVwiLFxuICAgICAgXCJjaGFpbmNvZGVcIixcbiAgICAgIFwiR2xvYmFsXCJcbiAgICApO1xuXG4gICAgY29uc3QgdGFyZ2V0Q29udHJhY3RzID0gcGF0aC5qb2luKGRlc3QsIFwidG9vbGtpdFwiLCBcImNvbnRyYWN0c1wiKTtcblxuICAgIGZzLm1rZGlyU3luYyh0YXJnZXRDb250cmFjdHMsIHtcbiAgICAgIHJlY3Vyc2l2ZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBmcy5yZWFkZGlyU3luYyhzb3VyY2VHbG9iYWwpKSB7XG4gICAgICBjb25zdCBzb3VyY2VJdGVtID0gcGF0aC5qb2luKHNvdXJjZUdsb2JhbCwgaXRlbSk7XG4gICAgICBjb25zdCB0YXJnZXRJdGVtID0gcGF0aC5qb2luKHRhcmdldENvbnRyYWN0cywgaXRlbSk7XG5cbiAgICAgIC8vIFJlbW92ZSBleGlzdGluZyB0YXJnZXQgaXRlbSBpZiBuZWVkZWRcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldEl0ZW0pKSB7XG4gICAgICAgIGZzLnJtU3luYyh0YXJnZXRJdGVtLCB7XG4gICAgICAgICAgcmVjdXJzaXZlOiB0cnVlLFxuICAgICAgICAgIGZvcmNlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgZnMuY3BTeW5jKHNvdXJjZUl0ZW0sIHRhcmdldEl0ZW0sIHtcbiAgICAgICAgcmVjdXJzaXZlOiB0cnVlLFxuICAgICAgICBmb3JjZTogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zb2xlLmxvZyhgQ29waWVkOiAke3NvdXJjZUl0ZW19IFxuICAgICAgLT4gJHt0YXJnZXRJdGVtfWApO1xuICAgIH1cblxuICAgIGV4ZWNTeW5jKGBjZCB0b29sa2l0ICYmIG5wbSBydW4gYnVpbGRgLCB7IGN3ZDogZGVzdCwgc3RkaW86IFwiaW5oZXJpdFwiIH0pO1xuICAgIGV4ZWNTeW5jKGBjZCB0b29sa2l0ICYmIG5wbSBydW4gZG9ja2VyOmJ1aWxkLWNvbnRyYWN0c2AsIHtcbiAgICAgIGN3ZDogZGVzdCxcbiAgICAgIHN0ZGlvOiBcImluaGVyaXRcIixcbiAgICB9KTtcbiAgICBleGVjU3luYyhgY2QgaW5mcmEgJiYgbnBtIHJ1biBidWlsZGAsIHsgY3dkOiBkZXN0LCBzdGRpbzogXCJpbmhlcml0XCIgfSk7XG4gICAgZXhlY1N5bmMoYGNkIGluZnJhICYmIG5wbSBydW4gYnVpbGQ6amVzdDppbWFnZWAsIHtcbiAgICAgIGN3ZDogZGVzdCxcbiAgICAgIHN0ZGlvOiBcImluaGVyaXRcIixcbiAgICB9KTtcbiAgfSk7XG5cbmNvbnN0IGZhYnJpY0NtZCA9IG5ldyBDb21tYW5kKClcbiAgLm5hbWUoXCJmb3ItZmFicmljXCIpXG4gIC5jb21tYW5kKFwiZmFicmljXCIpXG4gIC5kZXNjcmlwdGlvbihcbiAgICBcImV4cG9zZXMgc2V2ZXJhbCBjb21tYW5kcyB0byBoZWxwIG1hbmFnZSB0aGUgZmFicmljIGluZnJhc3RydWN0dXJlXCJcbiAgKTtcblxuZmFicmljQ21kLmFkZENvbW1hbmQoY29tcGlsZUNvbW1hbmQpO1xuZmFicmljQ21kLmFkZENvbW1hbmQoZXh0cmFjdEluZGV4ZXMpO1xuZmFicmljQ21kLmFkZENvbW1hbmQoZW5zdXJlSW5mcmEpO1xuZmFicmljQ21kLmFkZENvbW1hbmQoZGVwbG95Q29udHJhY3QpO1xuZmFicmljQ21kLmFkZENvbW1hbmQoZ2V0Q3J5cHRvTWF0ZXJpYWwpO1xuZmFicmljQ21kLmFkZENvbW1hbmQoZXh0cmFjdENvbGxlY3Rpb25zKTtcbmZhYnJpY0NtZC5hZGRDb21tYW5kKGdldENvcHlUb1BUUCk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZhYnJpYygpIHtcbiAgcmV0dXJuIGZhYnJpY0NtZDtcbn1cbiJdfQ==
712
+ //# sourceMappingURL=cli-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-module.js","sourceRoot":"","sources":["../../src/cli-module.ts"],"names":[],"mappings":"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"}
@@ -253,4 +253,4 @@ export function compileWithTsconfigOverrides(tsconfigPath, overrides) {
253
253
  throw new Error("Emit was skipped (check diagnostics above).");
254
254
  }
255
255
  }
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFNUIsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxnQkFBd0IsbUJBQW1CO0lBRTNDLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FDckIsa0JBQWtCLGFBQWEsaUNBQWlDLENBQ2pFO2FBQ0UsUUFBUSxFQUFFO2FBQ1YsSUFBSSxFQUFFLENBQUM7UUFFVixPQUFPLE1BQU0sS0FBSyxHQUFHLENBQUM7SUFDeEIsQ0FBQztJQUFDLE9BQU8sR0FBUSxFQUFFLENBQUM7UUFDbEIsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsMEJBQTBCLENBQzlDLGdCQUF3QixtQkFBbUIsRUFDM0MsVUFBa0IsSUFBSSxFQUN0QixXQUFtQixFQUFFO0lBRXJCLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQzdDLElBQUksRUFBRSxRQUFRLElBQUksQ0FBQztZQUFFLE1BQU0sSUFBSSxhQUFhLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUUxRSxPQUFPLENBQUMsR0FBRyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFDckQsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENB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QyxPQUFPLENBQUMsQ0FBQztJQUNsRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQixvRUFBb0U7UUFDcEUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7SUFDckQsSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDakUsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB0cyBmcm9tIFwidHlwZXNjcmlwdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZGlkSW5mcmFzdHJ1Y3R1cmVCb290KFxuICBjb250YWluZXJOYW1lOiBzdHJpbmcgPSBcImJvb3Qtb3JnLWMtcGVlci0wXCJcbik6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKFxuICAgICAgYGRvY2tlciBpbnNwZWN0ICR7Y29udGFpbmVyTmFtZX0gLS1mb3JtYXQ9J3t7LlN0YXRlLkV4aXRDb2RlfX0nYFxuICAgIClcbiAgICAgIC50b1N0cmluZygpXG4gICAgICAudHJpbSgpO1xuXG4gICAgcmV0dXJuIG91dHB1dCA9PT0gXCIwXCI7XG4gIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgY29uc29sZS5lcnJvcihcIkVycm9yIGluc3BlY3RpbmcgY29udGFpbmVyOlwiLCBlcnIubWVzc2FnZSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVJbmZyYXN0cnVjdHVyZUJvb3RlZChcbiAgY29udGFpbmVyTmFtZTogc3RyaW5nID0gXCJib290LW9yZy1jLXBlZXItMFwiLFxuICB0aW1lb3V0OiBudW1iZXIgPSA1MDAwLFxuICBhdHRlbXB0czogbnVtYmVyID0gMTBcbik6IFByb21pc2U8dm9pZD4ge1xuICB3aGlsZSAoIWRpZEluZnJhc3RydWN0dXJlQm9vdChjb250YWluZXJOYW1lKSkge1xuICAgIGlmICgtLWF0dGVtcHRzIDw9IDApIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiZXhjZWVkZWQgYWxsb3dlZCBhdHRlbXB0c1wiKTtcblxuICAgIGNvbnNvbGUubG9nKFwiV2FpdGluZyBmb3IgaW5mcmFzdHJ1Y3R1cmUgdG8gYm9vdC4uLlwiKTtcbiAgICBhd2FpdCBuZXcgUHJvbWlzZSgocikgPT4gc2V0VGltZW91dChyLCB0aW1lb3V0KSk7IC8vIFdhaXQgZm9yIDUgc2Vjb25kcyBiZWZvcmUgcmV0cnlpbmdcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFja2FnZUNvbnRyYWN0KFxuICBkb2NrZXJOYW1lOiBzdHJpbmcsXG4gIGNvbnRyYWN0Rm9sZGVyOiBzdHJpbmcsXG4gIGNvbnRyYWN0TmFtZTogc3RyaW5nLFxuICB2ZXJzaW9uOiBzdHJpbmcgPSBcIjEuMFwiXG4pOiB2b2lkIHtcbiAgZXhlY1N5bmMoYGRvY2tlciBleGVjICR7ZG9ja2VyTmFtZX0gbm9kZSAuL3dlYXZlci9saWIvY29yZS9jbGkuY2pzIHBhY2thZ2UtY2hhaW5jb2RlIC1kIFxcXG4gICAgLS1jaGFpbmNvZGUtcGF0aCAuL3dlYXZlci9jaGFpbmNvZGUvJHtjb250cmFjdEZvbGRlcn0gXFxcbiAgICAtLWxhbmcgbm9kZSBcXFxuICAgIC0tY2hhaW5jb2RlLW91dHB1dCAvd2VhdmVyL3BlZXIvJHtjb250cmFjdE5hbWV9LnRhci5neiBcXFxuICAgIC0tY2hhaW5jb2RlLW5hbWUgJHtjb250cmFjdE5hbWV9IFxcXG4gICAgLS1jaGFpbmNvZGUtdmVyc2lvbiAke3ZlcnNpb259IC1zXG4gICAgYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YWxsQ29udHJhY3QoZG9ja2VyTmFtZTogc3RyaW5nLCBjb250cmFjdE5hbWU6IHN0cmluZykge1xuICBleGVjU3luYyhcbiAgICBgZG9ja2VyIGV4ZWMgJHtkb2NrZXJOYW1lfSBub2RlIC4vd2VhdmVyL2xpYi9jb3JlL2NsaS5janMgaW5zdGFsbC1jaGFpbmNvZGUgLWQgLXMgLS1jaGFpbmNvZGUtcGF0aCAuL3dlYXZlci9wZWVyLyR7Y29udHJhY3ROYW1lfS50YXIuZ3pgXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHByb3ZlQ29udHJhY3QoXG4gIGRvY2tlck5hbWU6IHN0cmluZyxcbiAgY29udHJhY3ROYW1lOiBzdHJpbmcsXG4gIHRsc0NlcnROYW1lOiBzdHJpbmcsXG4gIHNlcXVlbmNlOiBudW1iZXIgPSAxLFxuICB2ZXJzaW9uOiBzdHJpbmcgPSBcIjEuMFwiLFxuICBjb2xsZWN0aW9uc0NvbmZpZz86IHN0cmluZ1xuKSB7XG4gIGNvbnN0IGNvbGxlY3Rpb25zRmxhZyA9IGNvbGxlY3Rpb25zQ29uZmlnXG4gICAgPyBgIC0tY29sbGVjdGlvbnMtY29uZmlnIFwiJHtjb2xsZWN0aW9uc0NvbmZpZ31cImBcbiAgICA6IFwiXCI7XG4gIGV4ZWNTeW5jKGBkb2NrZXIgZXhlYyAke2RvY2tlck5hbWV9IG5vZGUgLi93ZWF2ZXIvbGliL2NvcmUvY2xpLmNqcyBhcHByb3ZlLWNoYWluY29kZSAtZCAtcyBcXFxuICAgIC0tb3JkZXJlci1hZGRyZXNzIG9yZy1hLW9yZGVyZXItMDo3MDIxIFxcXG4gICAgLS1jaGFubmVsLWlkIHNpbXBsZS1jaGFubmVsIFxcXG4gICAgLS1jaGFpbmNvZGUtbmFtZSAke2NvbnRyYWN0TmFtZX0gXFxcbiAgICAtLWNoYWluY29kZS12ZXJzaW9uICR7dmVyc2lvbn0gXFxcbiAgICAtLXNlcXVlbmNlICR7c2VxdWVuY2V9JHtjb2xsZWN0aW9uc0ZsYWd9IFxcXG4gICAgLS1lbmFibGUtdGxzIFxcXG4gICAgLS10bHMtY2EtY2VydC1maWxlIC93ZWF2ZXIvcGVlci8ke3Rsc0NlcnROYW1lfWApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVwbG95Q29udHJhY3QoXG4gIGNvbnRyYWN0Rm9sZGVyOiBzdHJpbmcsXG4gIGNvbnRyYWN0TmFtZTogc3RyaW5nLFxuICB2ZXJzaW9uOiBzdHJpbmcgPSBcIjEuMFwiLFxuICBwZWVyczogc3RyaW5nW10gPSBbXCJvcmctYS1wZWVyLTBcIiwgXCJvcmctYi1wZWVyLTBcIiwgXCJvcmctYy1wZWVyLTBcIl1cbikge1xuICBsZXQgc2VxdWVuY2U6IG51bWJlcjtcbiAgY29uc3QgY291bnRQYXRoID0gcGF0aC5yZXNvbHZlKFxuICAgIHBhdGguam9pbihcbiAgICAgIGAke19fZGlybmFtZX1gLFxuICAgICAgXCIuLlwiLFxuICAgICAgXCJpbnRlZ3JhdGlvblwiLFxuICAgICAgXCJjaGFpbmNvZGVUcmFja2Vyc1wiLFxuICAgICAgYCR7Y29udHJhY3ROYW1lfS5jb3VudGBcbiAgICApXG4gICk7XG4gIHRyeSB7XG4gICAgc2VxdWVuY2UgPSBwYXJzZUludChmcy5yZWFkRmlsZVN5bmMoY291bnRQYXRoKS50b1N0cmluZyhcInV0Zi04XCIpKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICBzZXF1ZW5jZSA9IDE7XG4gIH1cbiAgZnMud3JpdGVGaWxlU3luYyhjb3VudFBhdGgsIHNlcXVlbmNlLnRvU3RyaW5nKCkpO1xuXG4gIHRyeSB7XG4gICAgZm9yIChjb25zdCBwZWVyIG9mIHBlZXJzKSB7XG4gICAgICBwYWNrYWdlQ29udHJhY3QocGVlciwgY29udHJhY3RGb2xkZXIsIGNvbnRyYWN0TmFtZSwgdmVyc2lvbik7XG4gICAgICBpbnN0YWxsQ29udHJhY3QocGVlciwgY29udHJhY3ROYW1lKTtcbiAgICAgIGFwcHJvdmVDb250cmFjdChcbiAgICAgICAgcGVlcixcbiAgICAgICAgY29udHJhY3ROYW1lLFxuICAgICAgICBwZWVyID09PSBcIm9yZy1hLXBlZXItMFwiID8gXCJ0bHMtY2EtY2VydC5wZW1cIiA6IFwib3JkZXJlci10bHMtY2EtY2VydC5wZW1cIixcbiAgICAgICAgc2VxdWVuY2UsXG4gICAgICAgIHZlcnNpb25cbiAgICAgICk7XG4gICAgfVxuICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKFwiRXJyb3IgZGVwbG95aW5nIGNvbnRyYWN0OlwiLCBlcnIubWVzc2FnZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbW1pdENoYWluY29kZShcbiAgY29udHJhY3ROYW1lOiBzdHJpbmcsXG4gIHNlcXVlbmNlOiBudW1iZXIgPSAxLFxuICB2ZXJzaW9uOiBzdHJpbmcgPSBcIjEuMFwiLFxuICBjb2xsZWN0aW9uc0NvbmZpZz86IHN0cmluZ1xuKTogdm9pZCB7XG4gIGNvbnN0IGNvbGxlY3Rpb25zRmxhZyA9IGNvbGxlY3Rpb25zQ29uZmlnXG4gICAgPyBgIC0tY29sbGVjdGlvbnMtY29uZmlnIFwiJHtjb2xsZWN0aW9uc0NvbmZpZ31cImBcbiAgICA6IFwiXCI7XG4gIGV4ZWNTeW5jKGBkb2NrZXIgZXhlYyBvcmctYS1wZWVyLTAgbm9kZSAuL3dlYXZlci9saWIvY29yZS9jbGkuY2pzIGNvbW1pdC1jaGFpbmNvZGUgLWQgLXMgXFxcbiAgICAtLW9yZGVyZXItYWRkcmVzcyBvcmctYS1vcmRlcmVyLTA6NzAyMSBcXFxuICAgIC0tY2hhbm5lbC1pZCBzaW1wbGUtY2hhbm5lbCBcXFxuICAgIC0tY2hhaW5jb2RlLW5hbWUgJHtjb250cmFjdE5hbWV9IFxcXG4gICAgLS1jaGFpbmNvZGUtdmVyc2lvbiAke3ZlcnNpb259IFxcXG4gICAgLS1zZXF1ZW5jZSAke3NlcXVlbmNlfSR7Y29sbGVjdGlvbnNGbGFnfSBcXFxuICAgIC0tZW5hYmxlLXRscyBcXFxuICAgIC0tdGxzLWNhLWNlcnQtZmlsZSAvd2VhdmVyL3BlZXIvdGxzLWNhLWNlcnQucGVtIFxcXG4gICAgLS1wZWVyLWFkZHJlc3NlcyBvcmctYS1wZWVyLTA6NzAzMSxvcmctYi1wZWVyLTA6NzAzMixvcmctYy1wZWVyLTA6NzAzMyBcXFxuICAgIC0tcGVlci1yb290LXRscyAuL3dlYXZlci9wZWVyL3Rscy1jYS1jZXJ0LnBlbSwuL3dlYXZlci9wZWVyL29yZy1iLXRscy1jYS1jZXJ0LnBlbSwuL3dlYXZlci9wZWVyL29yZy1jLXRscy1jYS1jZXJ0LnBlbWApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5zdXJlQ29udHJhY3RSZWFkaW5lc3MoXG4gIGNvbnRyYWN0TmFtZTogc3RyaW5nLFxuICBkb2NrZXJOYW1lOiBzdHJpbmcgPSBcIm9yZy1hLXBlZXItMFwiLFxuICB0bHNDZXJ0OiBzdHJpbmcgPSBcInRscy1jYS1jZXJ0LnBlbVwiLFxuICBjb3VudGVyID0gMFxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgdHJ5IHtcbiAgICAvLyBQcmVwYXJlIHRoZSBKU09OIGFyZ3VtZW50IGZvciB0aGUgY2hhaW5jb2RlXG4gICAgY29uc3QgY2hhaW5jb2RlQXJncyA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGZ1bmN0aW9uOiBcImhlYWx0aGNoZWNrXCIsXG4gICAgICBBcmdzOiBbXSxcbiAgICB9KTtcblxuICAgIGlmIChjb3VudGVyID4gMTApIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cblxuICAgIC8vIEludm9rZSB0aGUgY2hhaW5jb2RlXG4gICAgY29uc3QgcmVzID0gZXhlY1N5bmMoXG4gICAgICBgZG9ja2VyIGV4ZWMgJHtkb2NrZXJOYW1lfSBwZWVyIGNoYWluY29kZSBxdWVyeSBcXFxuICAgICAgICAtQyBzaW1wbGUtY2hhbm5lbCBcXFxuICAgICAgICAtbiAke2NvbnRyYWN0TmFtZX0gXFxcbiAgICAgICAgLWMgJyR7Y2hhaW5jb2RlQXJnc30nIFxcXG4gICAgICAgIC0tdGxzIC0tY2FmaWxlIC93ZWF2ZXIvcGVlci8ke3Rsc0NlcnR9YFxuICAgICk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBKU09OLnBhcnNlKHJlcy50b1N0cmluZygpKTtcblxuICAgIHJldHVybiByZXN1bHQuaGVhbHRoY2hlY2sudG9TdHJpbmcoKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgY29uc29sZS5sb2coXCJDaGFpbmNvZGUgbm90IHJlYWR5LiBSZXRyeWluZy4uLlwiKTtcbiAgICBhd2FpdCBuZXcgUHJvbWlzZSgocikgPT4gc2V0VGltZW91dChyLCA1MDAwKSk7IC8vIFdhaXQgZm9yIDUgc2Vjb25kcyBiZWZvcmUgcmV0cnlpbmdcbiAgICByZXR1cm4gZW5zdXJlQ29udHJhY3RSZWFkaW5lc3MoXG4gICAgICBjb250cmFjdE5hbWUsXG4gICAgICBkb2NrZXJOYW1lLFxuICAgICAgdGxzQ2VydCxcbiAgICAgIGNvdW50ZXIrK1xuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyaW0oc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zb2xlLndhcm4oXCJDb250cmFjdCBub3QgdHJpbW1pbmcgcmVzcG9uc2UgcHJvcGVybHk6IFwiLCBzdHIpO1xuICByZXR1cm4gc3RyLnRyaW0oKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludm9rZUNoYWluY29kZShcbiAgY29udHJhY3ROYW1lOiBzdHJpbmcsXG4gIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICBhcmdzOiBhbnlbXSxcbiAgdHJhbnNpZW50OiBhbnkgPSB7fSxcbiAgZG9ja2VyTmFtZTogc3RyaW5nID0gXCJvcmctYS1wZWVyLTBcIixcbiAgdGxzOiBzdHJpbmcgPSBcInRscy1jYS1jZXJ0LnBlbVwiXG4pIHtcbiAgLy8gUHJlcGFyZSB0aGUgSlNPTiBhcmd1bWVudCBmb3IgdGhlIGNoYWluY29kZVxuICBjb25zdCBjaGFpbmNvZGVBcmdzID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgIGZ1bmN0aW9uOiBmdW5jdGlvbk5hbWUsXG4gICAgQXJnczogYXJncyxcbiAgfSk7XG5cbiAgY29uc3QgdHJhbnNpZW50RGF0YSA9IEpTT04uc3RyaW5naWZ5KHRyYW5zaWVudCk7XG4gIGNvbnN0IHRyYW5zaWVudFN0cmluZyA9IGAtLXRyYW5zaWVudCAnJHt0cmFuc2llbnREYXRhfSdgO1xuXG4gIC8vIEludm9rZSB0aGUgY2hhaW5jb2RlXG4gIHJldHVybiBleGVjU3luYyhcbiAgICBgZG9ja2VyIGV4ZWMgJHtkb2NrZXJOYW1lfSBwZWVyIGNoYWluY29kZSBpbnZva2UgXFxcbiAgICAtQyBzaW1wbGUtY2hhbm5lbCBcXFxuICAgIC1uICR7Y29udHJhY3ROYW1lfSBcXFxuICAgIC1jICcke2NoYWluY29kZUFyZ3N9JyBcXFxuICAgIC0tcGVlckFkZHJlc3NlcyBvcmctYS1wZWVyLTA6NzAzMSBcXFxuICAgIC0tdGxzUm9vdENlcnRGaWxlcyAvd2VhdmVyL3BlZXIvdGxzLWNhLWNlcnQucGVtIFxcXG4gICAgLS1wZWVyQWRkcmVzc2VzIG9yZy1iLXBlZXItMDo3MDMyIFxcXG4gICAgLS10bHNSb290Q2VydEZpbGVzIC93ZWF2ZXIvcGVlci9vcmctYi10bHMtY2EtY2VydC5wZW0gXFxcbiAgICAtLXBlZXJBZGRyZXNzZXMgb3JnLWMtcGVlci0wOjcwMzMgXFxcbiAgICAtLXRsc1Jvb3RDZXJ0RmlsZXMgL3dlYXZlci9wZWVyL29yZy1jLXRscy1jYS1jZXJ0LnBlbSBcXFxuICAgIC1vIG9yZy1hLW9yZGVyZXItMDo3MDIxIFxcXG4gICAgLS10bHMgLS1jYWZpbGUgL3dlYXZlci9wZWVyLyR7dGxzfSBcXFxuICAgICR7dHJhbnNpZW50ID8gdHJhbnNpZW50U3RyaW5nIDogXCJcIn1gXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBxdWVyeUNoYWluY29kZShcbiAgY29udHJhY3ROYW1lOiBzdHJpbmcsXG4gIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICBhcmdzOiBhbnlbXSxcbiAgZG9ja2VyTmFtZTogc3RyaW5nID0gXCJvcmctYS1wZWVyLTBcIixcbiAgdGxzOiBzdHJpbmcgPSBcInRscy1jYS1jZXJ0LnBlbVwiXG4pIHtcbiAgdHJ5IHtcbiAgICAvLyBQcmVwYXJlIHRoZSBKU09OIGFyZ3VtZW50IGZvciB0aGUgY2hhaW5jb2RlXG4gICAgY29uc3QgY2hhaW5jb2RlQXJncyA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGZ1bmN0aW9uOiBmdW5jdGlvbk5hbWUsXG4gICAgICBBcmdzOiBhcmdzLFxuICAgIH0pO1xuXG4gICAgLy8gSW52b2tlIHRoZSBjaGFpbmNvZGVcbiAgICBjb25zdCByZXMgPSBleGVjU3luYyhcbiAgICAgIGBkb2NrZXIgZXhlYyAke2RvY2tlck5hbWV9IHBlZXIgY2hhaW5jb2RlIHF1ZXJ5IFxcXG4gICAgICAgIC1DIHNpbXBsZS1jaGFubmVsIFxcXG4gICAgICAgIC1uICR7Y29udHJhY3ROYW1lfSBcXFxuICAgICAgICAtYyAnJHtjaGFpbmNvZGVBcmdzfScgXFxcbiAgICAgICAgLS10bHMgLS1jYWZpbGUgJHt0bHN9YFxuICAgICk7XG5cbiAgICBjb25zdCBwcm9jZXNzZWQgPSByZXMudG9TdHJpbmcoKTtcbiAgICBjb25zb2xlLmxvZyhcIkJsb2NrY2hhaW4gcmVhZDpcIiwgcHJvY2Vzc2VkKTtcblxuICAgIHJldHVybiBwcm9jZXNzZWQ7XG4gIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgY29uc29sZS5sb2coXCJGYWlsZWQgdG8gcmVhZCBibG9ja2NoYWluXCIpO1xuICAgIHRocm93IGVycjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52b2tlUHJpdmF0ZUNoYWluY29kZShcbiAgY29udHJhY3ROYW1lOiBzdHJpbmcsXG4gIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICBhcmdzOiBhbnlbXSxcbiAgdHJhbnNpZW50OiBhbnkgPSB7fSxcbiAgZG9ja2VyTmFtZTogc3RyaW5nID0gXCJvcmctYS1wZWVyLTBcIixcbiAgdGxzOiBzdHJpbmcgPSBcInRscy1jYS1jZXJ0LnBlbVwiXG4pIHtcbiAgLy8gUHJlcGFyZSB0aGUgSlNPTiBhcmd1bWVudCBmb3IgdGhlIGNoYWluY29kZVxuICBjb25zdCBjaGFpbmNvZGVBcmdzID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgIGZ1bmN0aW9uOiBmdW5jdGlvbk5hbWUsXG4gICAgQXJnczogYXJncyxcbiAgfSk7XG5cbiAgY29uc3QgdHJhbnNpZW50RGF0YSA9IEpTT04uc3RyaW5naWZ5KHRyYW5zaWVudCk7XG4gIGNvbnN0IHRyYW5zaWVudFN0cmluZyA9IGAtLXRyYW5zaWVudCAnJHt0cmFuc2llbnREYXRhfSdgO1xuXG4gIC8vIEludm9rZSB0aGUgY2hhaW5jb2RlXG4gIHJldHVybiBleGVjU3luYyhcbiAgICBgZG9ja2VyIGV4ZWMgJHtkb2NrZXJOYW1lfSBwZWVyIGNoYWluY29kZSBpbnZva2UgXFxcbiAgICAtQyBzaW1wbGUtY2hhbm5lbCBcXFxuICAgIC1uICR7Y29udHJhY3ROYW1lfSBcXFxuICAgIC1jICcke2NoYWluY29kZUFyZ3N9JyBcXFxuICAgIC0tcGVlckFkZHJlc3NlcyBvcmctYS1wZWVyLTA6NzAzMSBcXFxuICAgIC0tdGxzUm9vdENlcnRGaWxlcyAvd2VhdmVyL3BlZXIvdGxzLWNhLWNlcnQucGVtIFxcXG4gICAgLW8gb3JnLWEtb3JkZXJlci0wOjcwMjEgXFxcbiAgICAtLXRscyAtLWNhZmlsZSAvd2VhdmVyL3BlZXIvJHt0bHN9IFxcXG4gICAgJHt0cmFuc2llbnQgPyB0cmFuc2llbnRTdHJpbmcgOiBcIlwifWBcbiAgKTtcblxuICAvLyAgIC0tcGVlckFkZHJlc3NlcyBvcmctYi1wZWVyLTA6NzAzMiBcXFxuICAvLyAtLXRsc1Jvb3RDZXJ0RmlsZXMgL3dlYXZlci9wZWVyL29yZy1iLXRscy1jYS1jZXJ0LnBlbSBcXFxuICAvLyAtLXBlZXJBZGRyZXNzZXMgb3JnLWMtcGVlci0wOjcwMzMgXFxcbiAgLy8gLS10bHNSb290Q2VydEZpbGVzIC93ZWF2ZXIvcGVlci9vcmctYy10bHMtY2EtY2VydC5wZW0gXFxcbn1cblxuZXhwb3J0IGVudW0gU2NyaXB0Q29tbWFuZHMge1xuICBTVEFSVCA9IFwiZmFicmljLWNoYWluY29kZS1ub2RlIHN0YXJ0IFxcXG4gICAgICAgICAgLS1ncnBjLm1heF9yZWNlaXZlX21lc3NhZ2VfbGVuZ3RoICR7Q0hBSU5DT0RFX01BWFJFQ1ZNU0dTSVpFLTE1NzI4NjQwfSBcXFxuICAgICAgICAgIC0tZ3JwYy5tYXhfc2VuZF9tZXNzYWdlX2xlbmd0aCAke0NIQUlOQ09ERV9NQVhTRU5ETVNHU0laRS0xNTcyODY0MH0gXCIsXG4gIFNUQVJUX0NDQUFTID0gXCJmYWJyaWMtY2hhaW5jb2RlLW5vZGUgc2VydmVyIFxcXG4gICAgICAgICAgLS1jaGFpbmNvZGUtYWRkcmVzcz0kQ0hBSU5DT0RFX1NFUlZFUl9BRERSRVNTIFxcXG4gICAgICAgICAgLS1jaGFpbmNvZGUtaWQ9JENIQUlOQ09ERV9JRCBcXFxuICAgICAgICAgIC0tY2hhaW5jb2RlLXRscy1jZXJ0LWZpbGU9JHtDSEFJTkNPREVfVExTX0NFUlR9IFxcXG4gICAgICAgICAgLS1jaGFpbmNvZGUtdGxzLWtleS1maWxlPSR7Q0hBSU5DT0RFX1RMU19LRVl9IFxcXG4gICAgICAgICAgLS1ncnBjLm1heF9yZWNlaXZlX21lc3NhZ2VfbGVuZ3RoICR7Q0hBSU5DT0RFX01BWFJFQ1ZNU0dTSVpFLTE1NzI4NjQwfSBcXFxuICAgICAgICAgIC0tZ3JwYy5tYXhfc2VuZF9tZXNzYWdlX2xlbmd0aCAke0NIQUlOQ09ERV9NQVhTRU5ETVNHU0laRS0xNTcyODY0MH0gXFxcbiAgICAgICAgICAtLXRscy5lbmFibGVkPXRydWVcIixcbiAgU1RBUlRfQ0NBQVNfREVCVUcgPSBcIm5vZGUgLS1pbnNwZWN0PTAuMC4wLjA6OTIyOSAuL25vZGVfbW9kdWxlcy8uYmluL2ZhYnJpYy1jaGFpbmNvZGUtbm9kZSBzZXJ2ZXIgXFxcbiAgICAgICAgICAtLWNoYWluY29kZS1hZGRyZXNzPSRDSEFJTkNPREVfU0VSVkVSX0FERFJFU1MgXFxcbiAgICAgICAgICAtLWNoYWluY29kZS1pZD0kQ0hBSU5DT0RFX0lEIFxcXG4gICAgICAgICAgLS1jaGFpbmNvZGUtdGxzLWNlcnQtZmlsZT0ke0NIQUlOQ09ERV9UTFNfQ0VSVH0gXFxcbiAgICAgICAgICAtLWNoYWluY29kZS10bHMta2V5LWZpbGU9JHtDSEFJTkNPREVfVExTX0tFWX0gXFxcbiAgICAgICAgICAtLWdycGMubWF4X3JlY2VpdmVfbWVzc2FnZV9sZW5ndGggJHtDSEFJTkNPREVfTUFYUkVDVk1TR1NJWkUtMTU3Mjg2NDB9IFxcXG4gICAgICAgICAgLS1ncnBjLm1heF9zZW5kX21lc3NhZ2VfbGVuZ3RoICR7Q0hBSU5DT0RFX01BWFNFTkRNU0dTSVpFLTE1NzI4NjQwfSBcXFxuICAgICAgICAgIC0tdGxzLmVuYWJsZWQ9dHJ1ZVwiLFxuICBTVEFSVF9ERUJVRyA9IFwibm9kZSAtLWluc3BlY3Q9MC4wLjAuMDo5MjI5IC91c3IvbG9jYWwvc3JjL25vZGVfbW9kdWxlcy8uYmluL2ZhYnJpYy1jaGFpbmNvZGUtbm9kZSBzdGFydCBcXFxuICAgICAgICAgIC0tZ3JwYy5tYXhfcmVjZWl2ZV9tZXNzYWdlX2xlbmd0aCAke0NIQUlOQ09ERV9NQVhSRUNWTVNHU0laRS0xNTcyODY0MH0gXFxcbiAgICAgICAgICAtLWdycGMubWF4X3NlbmRfbWVzc2FnZV9sZW5ndGggJHtDSEFJTkNPREVfTUFYU0VORE1TR1NJWkUtMTU3Mjg2NDB9XCIsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb250cmFjdFN0YXJ0Q29tbWFuZChcbiAgZGVidWc6IGJvb2xlYW4sXG4gIGNjYWFzOiBib29sZWFuXG4pOiBzdHJpbmcge1xuICBpZiAoY2NhYXMpIHtcbiAgICByZXR1cm4gZGVidWdcbiAgICAgID8gU2NyaXB0Q29tbWFuZHMuU1RBUlRfQ0NBQVNfREVCVUdcbiAgICAgIDogU2NyaXB0Q29tbWFuZHMuU1RBUlRfQ0NBQVM7XG4gIH1cbiAgcmV0dXJuIGRlYnVnID8gU2NyaXB0Q29tbWFuZHMuU1RBUlRfREVCVUcgOiBTY3JpcHRDb21tYW5kcy5TVEFSVDtcbn1cblxuZnVuY3Rpb24gZm9ybWF0RGlhZ25vc3RpY3MoZGlhZ3M6IHJlYWRvbmx5IHRzLkRpYWdub3N0aWNbXSk6IHN0cmluZyB7XG4gIGNvbnN0IGhvc3Q6IHRzLkZvcm1hdERpYWdub3N0aWNzSG9zdCA9IHtcbiAgICBnZXRDYW5vbmljYWxGaWxlTmFtZTogKGYpID0+IGYsXG4gICAgZ2V0Q3VycmVudERpcmVjdG9yeTogdHMuc3lzLmdldEN1cnJlbnREaXJlY3RvcnksXG4gICAgZ2V0TmV3TGluZTogKCkgPT4gdHMuc3lzLm5ld0xpbmUsXG4gIH07XG4gIHJldHVybiB0cy5mb3JtYXREaWFnbm9zdGljc1dpdGhDb2xvckFuZENvbnRleHQoZGlhZ3MsIGhvc3QpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZVdpdGhUc2NvbmZpZ092ZXJyaWRlcyhcbiAgdHNjb25maWdQYXRoOiBzdHJpbmcsXG4gIG92ZXJyaWRlczogUGFydGlhbDx0cy5Db21waWxlck9wdGlvbnM+XG4pOiB2b2lkIHtcbiAgY29uc3QgYWJzQ29uZmlnUGF0aCA9IHBhdGguaXNBYnNvbHV0ZSh0c2NvbmZpZ1BhdGgpXG4gICAgPyB0c2NvbmZpZ1BhdGhcbiAgICA6IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCB0c2NvbmZpZ1BhdGgpO1xuXG4gIC8vIDEpIFJlYWQgdGhlIHRzY29uZmlnLmpzb25cbiAgY29uc3QgY29uZmlnRmlsZSA9IHRzLnJlYWRDb25maWdGaWxlKGFic0NvbmZpZ1BhdGgsIHRzLnN5cy5yZWFkRmlsZSk7XG4gIGlmIChjb25maWdGaWxlLmVycm9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGZvcm1hdERpYWdub3N0aWNzKFtjb25maWdGaWxlLmVycm9yXSkpO1xuICB9XG5cbiAgLy8gMikgUGFyc2UgaXQgKHJlc29sdmVzIFwiZXh0ZW5kc1wiLCBpbmNsdWRlL2V4Y2x1ZGUvZmlsZXMsIGV0Yy4pXG4gIGNvbnN0IGNvbmZpZ0RpciA9IHBhdGguZGlybmFtZShhYnNDb25maWdQYXRoKTtcbiAgY29uc3QgcGFyc2VkID0gdHMucGFyc2VKc29uQ29uZmlnRmlsZUNvbnRlbnQoXG4gICAgY29uZmlnRmlsZS5jb25maWcsXG4gICAgdHMuc3lzLFxuICAgIGNvbmZpZ0RpcixcbiAgICAvKmV4aXN0aW5nT3B0aW9ucyovIHVuZGVmaW5lZCxcbiAgICBhYnNDb25maWdQYXRoXG4gICk7XG5cbiAgaWYgKHBhcnNlZC5lcnJvcnMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGZvcm1hdERpYWdub3N0aWNzKHBhcnNlZC5lcnJvcnMpKTtcbiAgfVxuXG4gIC8vIDMpIE92ZXJyaWRlIGNvbXBpbGVyIG9wdGlvbnMgaW4tbWVtb3J5XG4gIGNvbnN0IG9wdGlvbnM6IHRzLkNvbXBpbGVyT3B0aW9ucyA9IHtcbiAgICAuLi5wYXJzZWQub3B0aW9ucyxcbiAgICAuLi5vdmVycmlkZXMsXG4gIH07XG5cbiAgLy8gT3B0aW9uYWw6IElmIHlvdSBvdmVycmlkZSBvdXREaXIvcm9vdERpciwgZW5zdXJlIHRoZXnigJlyZSBhYnNvbHV0ZVxuICAvLyB0byBhdm9pZCBzdXJwcmlzZXMgZGVwZW5kaW5nIG9uIENXRC5cbiAgaWYgKG9wdGlvbnMub3V0RGlyKSBvcHRpb25zLm91dERpciA9IHBhdGgucmVzb2x2ZShjb25maWdEaXIsIG9wdGlvbnMub3V0RGlyKTtcbiAgaWYgKG9wdGlvbnMucm9vdERpcilcbiAgICBvcHRpb25zLnJvb3REaXIgPSBwYXRoLnJlc29sdmUoY29uZmlnRGlyLCBvcHRpb25zLnJvb3REaXIpO1xuXG4gIC8vIDQpIENyZWF0ZSBwcm9ncmFtICsgZW1pdFxuICBjb25zdCBwcm9ncmFtID0gdHMuY3JlYXRlUHJvZ3JhbSh7XG4gICAgcm9vdE5hbWVzOiBwYXJzZWQuZmlsZU5hbWVzLFxuICAgIG9wdGlvbnMsXG4gICAgcHJvamVjdFJlZmVyZW5jZXM6IHBhcnNlZC5wcm9qZWN0UmVmZXJlbmNlcyxcbiAgfSk7XG5cbiAgY29uc3QgcHJlRW1pdCA9IHRzLmdldFByZUVtaXREaWFnbm9zdGljcyhwcm9ncmFtKTtcbiAgaWYgKHByZUVtaXQubGVuZ3RoKSB7XG4gICAgLy8gSWYgeW91IHdhbnQgXCJ0cmFuc3BpbGUgYW55d2F5XCIsIHlvdSBjYW4gY2hvb3NlIHRvIG5vdCB0aHJvdyBoZXJlLlxuICAgIHRocm93IG5ldyBFcnJvcihmb3JtYXREaWFnbm9zdGljcyhwcmVFbWl0KSk7XG4gIH1cblxuICBjb25zdCBlbWl0UmVzdWx0ID0gcHJvZ3JhbS5lbWl0KCk7XG4gIGNvbnN0IGVtaXREaWFnbm9zdGljcyA9IGVtaXRSZXN1bHQuZGlhZ25vc3RpY3MgPz8gW107XG4gIGlmIChlbWl0RGlhZ25vc3RpY3MubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGZvcm1hdERpYWdub3N0aWNzKGVtaXREaWFnbm9zdGljcykpO1xuICB9XG5cbiAgaWYgKGVtaXRSZXN1bHQuZW1pdFNraXBwZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbWl0IHdhcyBza2lwcGVkIChjaGVjayBkaWFnbm9zdGljcyBhYm92ZSkuXCIpO1xuICB9XG59XG4iXX0=
256
+ //# sourceMappingURL=cli-utils.js.map