@decaf-ts/integrations 0.3.9 → 0.3.10

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 (895) hide show
  1. package/dist/integrations.cjs +2 -1649
  2. package/dist/integrations.cjs.map +1 -0
  3. package/dist/integrations.js +2 -1885
  4. package/dist/integrations.js.map +1 -0
  5. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
  6. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -0
  7. package/lib/cjs/blob/azure/index.cjs +2 -2
  8. package/lib/cjs/blob/azure/index.cjs.map +1 -0
  9. package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
  10. package/lib/cjs/blob/core/BlobErrors.cjs.map +1 -0
  11. package/lib/cjs/blob/core/BlobKey.cjs +2 -2
  12. package/lib/cjs/blob/core/BlobKey.cjs.map +1 -0
  13. package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
  14. package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +1 -0
  15. package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
  16. package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -0
  17. package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
  18. package/lib/cjs/blob/core/BlobTypes.cjs.map +1 -0
  19. package/lib/cjs/blob/core/BlobValue.cjs +2 -2
  20. package/lib/cjs/blob/core/BlobValue.cjs.map +1 -0
  21. package/lib/cjs/blob/core/index.cjs +2 -2
  22. package/lib/cjs/blob/core/index.cjs.map +1 -0
  23. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
  24. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -0
  25. package/lib/cjs/blob/gcp/index.cjs +2 -2
  26. package/lib/cjs/blob/gcp/index.cjs.map +1 -0
  27. package/lib/cjs/blob/index.cjs +2 -2
  28. package/lib/cjs/blob/index.cjs.map +1 -0
  29. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
  30. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +1 -0
  31. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
  32. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +1 -0
  33. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
  34. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +1 -0
  35. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
  36. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +1 -0
  37. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
  38. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +1 -0
  39. package/lib/cjs/blob/ipfs/index.cjs +2 -2
  40. package/lib/cjs/blob/ipfs/index.cjs.map +1 -0
  41. package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
  42. package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +1 -0
  43. package/lib/cjs/blob/local/index.cjs +2 -2
  44. package/lib/cjs/blob/local/index.cjs.map +1 -0
  45. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
  46. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +1 -0
  47. package/lib/cjs/blob/memory/index.cjs +2 -2
  48. package/lib/cjs/blob/memory/index.cjs.map +1 -0
  49. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
  50. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +1 -0
  51. package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
  52. package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +1 -0
  53. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
  54. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -0
  55. package/lib/cjs/blob/s3/index.cjs +2 -2
  56. package/lib/cjs/blob/s3/index.cjs.map +1 -0
  57. package/lib/cjs/docker/DockerComposeService.cjs +2 -2
  58. package/lib/cjs/docker/DockerComposeService.cjs.map +1 -0
  59. package/lib/cjs/docker/index.cjs +2 -2
  60. package/lib/cjs/docker/index.cjs.map +1 -0
  61. package/lib/cjs/graph/engine/constants.cjs +2 -2
  62. package/lib/cjs/graph/engine/constants.cjs.map +1 -0
  63. package/lib/cjs/graph/engine/decorators.cjs +2 -2
  64. package/lib/cjs/graph/engine/decorators.cjs.map +1 -0
  65. package/lib/cjs/graph/engine/errors/GraphCycleError.cjs +2 -2
  66. package/lib/cjs/graph/engine/errors/GraphCycleError.cjs.map +1 -0
  67. package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs +2 -2
  68. package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs.map +1 -0
  69. package/lib/cjs/graph/engine/errors/GraphInputError.cjs +2 -2
  70. package/lib/cjs/graph/engine/errors/GraphInputError.cjs.map +1 -0
  71. package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs +2 -2
  72. package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs.map +1 -0
  73. package/lib/cjs/graph/engine/errors/GraphPinningError.cjs +2 -2
  74. package/lib/cjs/graph/engine/errors/GraphPinningError.cjs.map +1 -0
  75. package/lib/cjs/graph/engine/errors/GraphPortError.cjs +2 -2
  76. package/lib/cjs/graph/engine/errors/GraphPortError.cjs.map +1 -0
  77. package/lib/cjs/graph/engine/errors/GraphStoreError.cjs +2 -2
  78. package/lib/cjs/graph/engine/errors/GraphStoreError.cjs.map +1 -0
  79. package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs +2 -2
  80. package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs.map +1 -0
  81. package/lib/cjs/graph/engine/errors/index.cjs +2 -2
  82. package/lib/cjs/graph/engine/errors/index.cjs.map +1 -0
  83. package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs +2 -2
  84. package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs.map +1 -0
  85. package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs +2 -2
  86. package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs.map +1 -0
  87. package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs +2 -2
  88. package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs.map +1 -0
  89. package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs +2 -2
  90. package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs.map +1 -0
  91. package/lib/cjs/graph/engine/events/index.cjs +2 -2
  92. package/lib/cjs/graph/engine/events/index.cjs.map +1 -0
  93. package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs +2 -2
  94. package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs.map +1 -0
  95. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +2 -2
  96. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +1 -0
  97. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +7 -2
  98. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +1 -0
  99. package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +2 -2
  100. package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs.map +1 -0
  101. package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs +2 -2
  102. package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs.map +1 -0
  103. package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs +2 -2
  104. package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs.map +1 -0
  105. package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +2 -2
  106. package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs.map +1 -0
  107. package/lib/cjs/graph/engine/execution/index.cjs +2 -2
  108. package/lib/cjs/graph/engine/execution/index.cjs.map +1 -0
  109. package/lib/cjs/graph/engine/index.cjs +2 -2
  110. package/lib/cjs/graph/engine/index.cjs.map +1 -0
  111. package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs +2 -2
  112. package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs.map +1 -0
  113. package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +2 -2
  114. package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs.map +1 -0
  115. package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs +2 -2
  116. package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs.map +1 -0
  117. package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs +2 -2
  118. package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs.map +1 -0
  119. package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +2 -2
  120. package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs.map +1 -0
  121. package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +2 -2
  122. package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs.map +1 -0
  123. package/lib/cjs/graph/engine/loops/index.cjs +2 -2
  124. package/lib/cjs/graph/engine/loops/index.cjs.map +1 -0
  125. package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs +2 -2
  126. package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs.map +1 -0
  127. package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs +2 -2
  128. package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs.map +1 -0
  129. package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs +2 -2
  130. package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs.map +1 -0
  131. package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs +2 -2
  132. package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs.map +1 -0
  133. package/lib/cjs/graph/engine/pinning/index.cjs +2 -2
  134. package/lib/cjs/graph/engine/pinning/index.cjs.map +1 -0
  135. package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs +2 -2
  136. package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs.map +1 -0
  137. package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs +2 -2
  138. package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs.map +1 -0
  139. package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs +2 -2
  140. package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs.map +1 -0
  141. package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs +2 -2
  142. package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs.map +1 -0
  143. package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs +2 -2
  144. package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs.map +1 -0
  145. package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs +2 -2
  146. package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs.map +1 -0
  147. package/lib/cjs/graph/engine/planning/GraphTopology.cjs +2 -2
  148. package/lib/cjs/graph/engine/planning/GraphTopology.cjs.map +1 -0
  149. package/lib/cjs/graph/engine/planning/index.cjs +2 -2
  150. package/lib/cjs/graph/engine/planning/index.cjs.map +1 -0
  151. package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs +2 -2
  152. package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs.map +1 -0
  153. package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs +2 -2
  154. package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs.map +1 -0
  155. package/lib/cjs/graph/engine/registry/index.cjs +2 -2
  156. package/lib/cjs/graph/engine/registry/index.cjs.map +1 -0
  157. package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs +2 -2
  158. package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs.map +1 -0
  159. package/lib/cjs/graph/engine/snapshots/index.cjs +2 -2
  160. package/lib/cjs/graph/engine/snapshots/index.cjs.map +1 -0
  161. package/lib/cjs/graph/engine/store/GraphCachedValue.cjs +2 -2
  162. package/lib/cjs/graph/engine/store/GraphCachedValue.cjs.map +1 -0
  163. package/lib/cjs/graph/engine/store/GraphValueKey.cjs +2 -2
  164. package/lib/cjs/graph/engine/store/GraphValueKey.cjs.map +1 -0
  165. package/lib/cjs/graph/engine/store/GraphValueStore.cjs +2 -2
  166. package/lib/cjs/graph/engine/store/GraphValueStore.cjs.map +1 -0
  167. package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs +2 -2
  168. package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs.map +1 -0
  169. package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs +2 -2
  170. package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs.map +1 -0
  171. package/lib/cjs/graph/engine/store/index.cjs +2 -2
  172. package/lib/cjs/graph/engine/store/index.cjs.map +1 -0
  173. package/lib/cjs/graph/engine/types.cjs +2 -2
  174. package/lib/cjs/graph/engine/types.cjs.map +1 -0
  175. package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs +2 -2
  176. package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs.map +1 -0
  177. package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs +2 -2
  178. package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs.map +1 -0
  179. package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs +2 -2
  180. package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs.map +1 -0
  181. package/lib/cjs/graph/engine/validation/index.cjs +2 -2
  182. package/lib/cjs/graph/engine/validation/index.cjs.map +1 -0
  183. package/lib/cjs/graph/index.cjs +2 -2
  184. package/lib/cjs/graph/index.cjs.map +1 -0
  185. package/lib/cjs/graph/shared/constants.cjs +2 -2
  186. package/lib/cjs/graph/shared/constants.cjs.map +1 -0
  187. package/lib/cjs/graph/shared/index.cjs +2 -2
  188. package/lib/cjs/graph/shared/index.cjs.map +1 -0
  189. package/lib/cjs/graph/shared/nodes/agent.cjs +2 -2
  190. package/lib/cjs/graph/shared/nodes/agent.cjs.map +1 -0
  191. package/lib/cjs/graph/shared/nodes/base.cjs +3 -2
  192. package/lib/cjs/graph/shared/nodes/base.cjs.map +1 -0
  193. package/lib/cjs/graph/shared/nodes/category-styles.cjs +2 -2
  194. package/lib/cjs/graph/shared/nodes/category-styles.cjs.map +1 -0
  195. package/lib/cjs/graph/shared/nodes/flow-control.cjs +2 -2
  196. package/lib/cjs/graph/shared/nodes/flow-control.cjs.map +1 -0
  197. package/lib/cjs/graph/shared/nodes/index.cjs +2 -2
  198. package/lib/cjs/graph/shared/nodes/index.cjs.map +1 -0
  199. package/lib/cjs/graph/shared/nodes/triggers.cjs +2 -2
  200. package/lib/cjs/graph/shared/nodes/triggers.cjs.map +1 -0
  201. package/lib/cjs/graph/shared/types.cjs +2 -2
  202. package/lib/cjs/graph/shared/types.cjs.map +1 -0
  203. package/lib/cjs/index.cjs +5 -5
  204. package/lib/cjs/index.cjs.map +1 -0
  205. package/lib/cjs/keycloak/index.cjs +2 -2
  206. package/lib/cjs/keycloak/index.cjs.map +1 -0
  207. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
  208. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +1 -0
  209. package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
  210. package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +1 -0
  211. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
  212. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +1 -0
  213. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
  214. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +1 -0
  215. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
  216. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +1 -0
  217. package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
  218. package/lib/cjs/keycloak/services/KeycloakService.cjs.map +1 -0
  219. package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
  220. package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +1 -0
  221. package/lib/cjs/keycloak/services/index.cjs +2 -2
  222. package/lib/cjs/keycloak/services/index.cjs.map +1 -0
  223. package/lib/cjs/keycloak/services/runtime.cjs +2 -2
  224. package/lib/cjs/keycloak/services/runtime.cjs.map +1 -0
  225. package/lib/cjs/keycloak/types.cjs +2 -2
  226. package/lib/cjs/keycloak/types.cjs.map +1 -0
  227. package/lib/cjs/kibana/helpers.cjs +2 -2
  228. package/lib/cjs/kibana/helpers.cjs.map +1 -0
  229. package/lib/cjs/kibana/index.cjs +2 -2
  230. package/lib/cjs/kibana/index.cjs.map +1 -0
  231. package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
  232. package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +1 -0
  233. package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
  234. package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +1 -0
  235. package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
  236. package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +1 -0
  237. package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
  238. package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +1 -0
  239. package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
  240. package/lib/cjs/kibana/services/KibanaService.cjs.map +1 -0
  241. package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
  242. package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +1 -0
  243. package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
  244. package/lib/cjs/kibana/services/KibanaUserService.cjs.map +1 -0
  245. package/lib/cjs/kibana/services/index.cjs +2 -2
  246. package/lib/cjs/kibana/services/index.cjs.map +1 -0
  247. package/lib/cjs/kibana/services/runtime.cjs +2 -2
  248. package/lib/cjs/kibana/services/runtime.cjs.map +1 -0
  249. package/lib/cjs/kibana/types.cjs +2 -2
  250. package/lib/cjs/kibana/types.cjs.map +1 -0
  251. package/lib/cjs/namespaces/index.cjs +2 -2
  252. package/lib/cjs/namespaces/index.cjs.map +1 -0
  253. package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
  254. package/lib/cjs/namespaces/models/authorization-model.cjs.map +1 -0
  255. package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
  256. package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -0
  257. package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
  258. package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -0
  259. package/lib/cjs/namespaces/models/group.model.cjs +2 -2
  260. package/lib/cjs/namespaces/models/group.model.cjs.map +1 -0
  261. package/lib/cjs/namespaces/models/index.cjs +2 -2
  262. package/lib/cjs/namespaces/models/index.cjs.map +1 -0
  263. package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
  264. package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -0
  265. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
  266. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -0
  267. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
  268. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -0
  269. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
  270. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -0
  271. package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
  272. package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -0
  273. package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
  274. package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -0
  275. package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
  276. package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -0
  277. package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
  278. package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -0
  279. package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
  280. package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -0
  281. package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
  282. package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -0
  283. package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
  284. package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -0
  285. package/lib/cjs/namespaces/models/role.model.cjs +2 -2
  286. package/lib/cjs/namespaces/models/role.model.cjs.map +1 -0
  287. package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
  288. package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -0
  289. package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
  290. package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -0
  291. package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
  292. package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -0
  293. package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
  294. package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -0
  295. package/lib/cjs/namespaces/models/user.model.cjs +2 -2
  296. package/lib/cjs/namespaces/models/user.model.cjs.map +1 -0
  297. package/lib/cjs/namespaces/org-based-authorization-system.cjs +10 -4
  298. package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +1 -0
  299. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
  300. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +1 -0
  301. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +19 -10
  302. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +1 -0
  303. package/lib/cjs/namespaces/services/authz.service.cjs +39 -13
  304. package/lib/cjs/namespaces/services/authz.service.cjs.map +1 -0
  305. package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
  306. package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +1 -0
  307. package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
  308. package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +1 -0
  309. package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
  310. package/lib/cjs/namespaces/services/group-membership.service.cjs.map +1 -0
  311. package/lib/cjs/namespaces/services/group.service.cjs +2 -2
  312. package/lib/cjs/namespaces/services/group.service.cjs.map +1 -0
  313. package/lib/cjs/namespaces/services/index.cjs +2 -2
  314. package/lib/cjs/namespaces/services/index.cjs.map +1 -0
  315. package/lib/cjs/namespaces/services/inheritance-block.service.cjs +6 -4
  316. package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +1 -0
  317. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +16 -7
  318. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +1 -0
  319. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
  320. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +1 -0
  321. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
  322. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +1 -0
  323. package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
  324. package/lib/cjs/namespaces/services/org-unit.service.cjs.map +1 -0
  325. package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
  326. package/lib/cjs/namespaces/services/permission.service.cjs.map +1 -0
  327. package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
  328. package/lib/cjs/namespaces/services/principal.service.cjs.map +1 -0
  329. package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
  330. package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +1 -0
  331. package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
  332. package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +1 -0
  333. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
  334. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +1 -0
  335. package/lib/cjs/namespaces/services/role-assignment.service.cjs +4 -3
  336. package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +1 -0
  337. package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
  338. package/lib/cjs/namespaces/services/role-permission.service.cjs.map +1 -0
  339. package/lib/cjs/namespaces/services/role.service.cjs +2 -2
  340. package/lib/cjs/namespaces/services/role.service.cjs.map +1 -0
  341. package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
  342. package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +1 -0
  343. package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
  344. package/lib/cjs/namespaces/services/system-management.service.cjs.map +1 -0
  345. package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
  346. package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +1 -0
  347. package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
  348. package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +1 -0
  349. package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
  350. package/lib/cjs/namespaces/services/tenant.service.cjs.map +1 -0
  351. package/lib/cjs/namespaces/services/user.service.cjs +2 -2
  352. package/lib/cjs/namespaces/services/user.service.cjs.map +1 -0
  353. package/lib/cjs/namespaces/types.cjs +2 -2
  354. package/lib/cjs/namespaces/types.cjs.map +1 -0
  355. package/lib/cjs/namespaces/utils.cjs +13 -5
  356. package/lib/cjs/namespaces/utils.cjs.map +1 -0
  357. package/lib/cjs/nest/authService.cjs +2 -2
  358. package/lib/cjs/nest/authService.cjs.map +1 -0
  359. package/lib/cjs/nest/graph/GraphExecutionController.cjs +2 -2
  360. package/lib/cjs/nest/graph/GraphExecutionController.cjs.map +1 -0
  361. package/lib/cjs/nest/graph/GraphExecutionModule.cjs +6 -4
  362. package/lib/cjs/nest/graph/GraphExecutionModule.cjs.map +1 -0
  363. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +2 -2
  364. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs.map +1 -0
  365. package/lib/cjs/nest/graph/GraphExecutionResultRepository.cjs +2 -2
  366. package/lib/cjs/nest/graph/GraphExecutionResultRepository.cjs.map +1 -0
  367. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +97 -11
  368. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +1 -0
  369. package/lib/cjs/nest/graph/index.cjs +2 -2
  370. package/lib/cjs/nest/graph/index.cjs.map +1 -0
  371. package/lib/cjs/nest/graph/main.cjs +30 -0
  372. package/lib/cjs/nest/graph/main.cjs.map +1 -0
  373. package/lib/cjs/nest/index.cjs +2 -2
  374. package/lib/cjs/nest/index.cjs.map +1 -0
  375. package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
  376. package/lib/cjs/nest/keycloakAuthHandler.cjs.map +1 -0
  377. package/lib/cjs/nest/keycloakModule.cjs +2 -2
  378. package/lib/cjs/nest/keycloakModule.cjs.map +1 -0
  379. package/lib/cjs/nest/logging.cjs +2 -2
  380. package/lib/cjs/nest/logging.cjs.map +1 -0
  381. package/lib/cjs/nest/types.cjs +2 -2
  382. package/lib/cjs/nest/types.cjs.map +1 -0
  383. package/lib/cjs/nest/utils.cjs +2 -2
  384. package/lib/cjs/nest/utils.cjs.map +1 -0
  385. package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
  386. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -0
  387. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
  388. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +1 -0
  389. package/lib/cjs/secrets/aws/index.cjs +2 -2
  390. package/lib/cjs/secrets/aws/index.cjs.map +1 -0
  391. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
  392. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -0
  393. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
  394. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +1 -0
  395. package/lib/cjs/secrets/azure/index.cjs +2 -2
  396. package/lib/cjs/secrets/azure/index.cjs.map +1 -0
  397. package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
  398. package/lib/cjs/secrets/core/SecretErrors.cjs.map +1 -0
  399. package/lib/cjs/secrets/core/SecretName.cjs +2 -2
  400. package/lib/cjs/secrets/core/SecretName.cjs.map +1 -0
  401. package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
  402. package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -0
  403. package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
  404. package/lib/cjs/secrets/core/SecretSerialization.cjs.map +1 -0
  405. package/lib/cjs/secrets/core/SecretService.cjs +2 -2
  406. package/lib/cjs/secrets/core/SecretService.cjs.map +1 -0
  407. package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
  408. package/lib/cjs/secrets/core/SecretTypes.cjs.map +1 -0
  409. package/lib/cjs/secrets/core/index.cjs +2 -2
  410. package/lib/cjs/secrets/core/index.cjs.map +1 -0
  411. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
  412. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -0
  413. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
  414. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +1 -0
  415. package/lib/cjs/secrets/gcp/index.cjs +2 -2
  416. package/lib/cjs/secrets/gcp/index.cjs.map +1 -0
  417. package/lib/cjs/secrets/index.cjs +2 -2
  418. package/lib/cjs/secrets/index.cjs.map +1 -0
  419. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
  420. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +1 -0
  421. package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
  422. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -0
  423. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
  424. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +1 -0
  425. package/lib/cjs/secrets/model/Secret.cjs +2 -2
  426. package/lib/cjs/secrets/model/Secret.cjs.map +1 -0
  427. package/lib/cjs/secrets/model/index.cjs +2 -2
  428. package/lib/cjs/secrets/model/index.cjs.map +1 -0
  429. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
  430. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -0
  431. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
  432. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +1 -0
  433. package/lib/cjs/secrets/onepassword/index.cjs +2 -2
  434. package/lib/cjs/secrets/onepassword/index.cjs.map +1 -0
  435. package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
  436. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -0
  437. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
  438. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +1 -0
  439. package/lib/cjs/secrets/vault/index.cjs +2 -2
  440. package/lib/cjs/secrets/vault/index.cjs.map +1 -0
  441. package/lib/cjs/shared/runtime.cjs +2 -2
  442. package/lib/cjs/shared/runtime.cjs.map +1 -0
  443. package/lib/cjs/utils.cjs +2 -2
  444. package/lib/cjs/utils.cjs.map +1 -0
  445. package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
  446. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -0
  447. package/lib/esm/blob/azure/index.js +1 -1
  448. package/lib/esm/blob/azure/index.js.map +1 -0
  449. package/lib/esm/blob/core/BlobErrors.js +1 -1
  450. package/lib/esm/blob/core/BlobErrors.js.map +1 -0
  451. package/lib/esm/blob/core/BlobKey.js +1 -1
  452. package/lib/esm/blob/core/BlobKey.js.map +1 -0
  453. package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
  454. package/lib/esm/blob/core/BlobStoreFactory.js.map +1 -0
  455. package/lib/esm/blob/core/BlobStoreService.js +1 -1
  456. package/lib/esm/blob/core/BlobStoreService.js.map +1 -0
  457. package/lib/esm/blob/core/BlobTypes.js +1 -1
  458. package/lib/esm/blob/core/BlobTypes.js.map +1 -0
  459. package/lib/esm/blob/core/BlobValue.js +1 -1
  460. package/lib/esm/blob/core/BlobValue.js.map +1 -0
  461. package/lib/esm/blob/core/index.js +1 -1
  462. package/lib/esm/blob/core/index.js.map +1 -0
  463. package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
  464. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -0
  465. package/lib/esm/blob/gcp/index.js +1 -1
  466. package/lib/esm/blob/gcp/index.js.map +1 -0
  467. package/lib/esm/blob/index.js +1 -1
  468. package/lib/esm/blob/index.js.map +1 -0
  469. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
  470. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +1 -0
  471. package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
  472. package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +1 -0
  473. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
  474. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +1 -0
  475. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
  476. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +1 -0
  477. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
  478. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +1 -0
  479. package/lib/esm/blob/ipfs/index.js +1 -1
  480. package/lib/esm/blob/ipfs/index.js.map +1 -0
  481. package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
  482. package/lib/esm/blob/local/LocalBlobStoreService.js.map +1 -0
  483. package/lib/esm/blob/local/index.js +1 -1
  484. package/lib/esm/blob/local/index.js.map +1 -0
  485. package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
  486. package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +1 -0
  487. package/lib/esm/blob/memory/index.js +1 -1
  488. package/lib/esm/blob/memory/index.js.map +1 -0
  489. package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
  490. package/lib/esm/blob/s3/MinioBlobStoreService.js.map +1 -0
  491. package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
  492. package/lib/esm/blob/s3/R2BlobStoreService.js.map +1 -0
  493. package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
  494. package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -0
  495. package/lib/esm/blob/s3/index.js +1 -1
  496. package/lib/esm/blob/s3/index.js.map +1 -0
  497. package/lib/esm/docker/DockerComposeService.js +1 -1
  498. package/lib/esm/docker/DockerComposeService.js.map +1 -0
  499. package/lib/esm/docker/index.js +1 -1
  500. package/lib/esm/docker/index.js.map +1 -0
  501. package/lib/esm/graph/engine/constants.js +1 -1
  502. package/lib/esm/graph/engine/constants.js.map +1 -0
  503. package/lib/esm/graph/engine/decorators.js +1 -1
  504. package/lib/esm/graph/engine/decorators.js.map +1 -0
  505. package/lib/esm/graph/engine/errors/GraphCycleError.js +1 -1
  506. package/lib/esm/graph/engine/errors/GraphCycleError.js.map +1 -0
  507. package/lib/esm/graph/engine/errors/GraphExecutionError.js +1 -1
  508. package/lib/esm/graph/engine/errors/GraphExecutionError.js.map +1 -0
  509. package/lib/esm/graph/engine/errors/GraphInputError.js +1 -1
  510. package/lib/esm/graph/engine/errors/GraphInputError.js.map +1 -0
  511. package/lib/esm/graph/engine/errors/GraphLoopLimitError.js +1 -1
  512. package/lib/esm/graph/engine/errors/GraphLoopLimitError.js.map +1 -0
  513. package/lib/esm/graph/engine/errors/GraphPinningError.js +1 -1
  514. package/lib/esm/graph/engine/errors/GraphPinningError.js.map +1 -0
  515. package/lib/esm/graph/engine/errors/GraphPortError.js +1 -1
  516. package/lib/esm/graph/engine/errors/GraphPortError.js.map +1 -0
  517. package/lib/esm/graph/engine/errors/GraphStoreError.js +1 -1
  518. package/lib/esm/graph/engine/errors/GraphStoreError.js.map +1 -0
  519. package/lib/esm/graph/engine/errors/GraphTopologyError.js +1 -1
  520. package/lib/esm/graph/engine/errors/GraphTopologyError.js.map +1 -0
  521. package/lib/esm/graph/engine/errors/index.js +1 -1
  522. package/lib/esm/graph/engine/errors/index.js.map +1 -0
  523. package/lib/esm/graph/engine/events/GraphExecutionEvent.js +1 -1
  524. package/lib/esm/graph/engine/events/GraphExecutionEvent.js.map +1 -0
  525. package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js +1 -1
  526. package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js.map +1 -0
  527. package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js +1 -1
  528. package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js.map +1 -0
  529. package/lib/esm/graph/engine/events/GraphExecutionObserver.js +1 -1
  530. package/lib/esm/graph/engine/events/GraphExecutionObserver.js.map +1 -0
  531. package/lib/esm/graph/engine/events/index.js +1 -1
  532. package/lib/esm/graph/engine/events/index.js.map +1 -0
  533. package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js +1 -1
  534. package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js.map +1 -0
  535. package/lib/esm/graph/engine/execution/GraphExecutionContext.js +1 -1
  536. package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +1 -0
  537. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +6 -1
  538. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +1 -0
  539. package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +1 -1
  540. package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +1 -0
  541. package/lib/esm/graph/engine/execution/GraphExecutionResult.js +1 -1
  542. package/lib/esm/graph/engine/execution/GraphExecutionResult.js.map +1 -0
  543. package/lib/esm/graph/engine/execution/GraphNodeExecutor.js +1 -1
  544. package/lib/esm/graph/engine/execution/GraphNodeExecutor.js.map +1 -0
  545. package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +1 -1
  546. package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js.map +1 -0
  547. package/lib/esm/graph/engine/execution/index.js +1 -1
  548. package/lib/esm/graph/engine/execution/index.js.map +1 -0
  549. package/lib/esm/graph/engine/index.js +1 -1
  550. package/lib/esm/graph/engine/index.js.map +1 -0
  551. package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js +1 -1
  552. package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js.map +1 -0
  553. package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +1 -1
  554. package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js.map +1 -0
  555. package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js +1 -1
  556. package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js.map +1 -0
  557. package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js +1 -1
  558. package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js.map +1 -0
  559. package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +1 -1
  560. package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js.map +1 -0
  561. package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +1 -1
  562. package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js.map +1 -0
  563. package/lib/esm/graph/engine/loops/index.js +1 -1
  564. package/lib/esm/graph/engine/loops/index.js.map +1 -0
  565. package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js +1 -1
  566. package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js.map +1 -0
  567. package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js +1 -1
  568. package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js.map +1 -0
  569. package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js +1 -1
  570. package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js.map +1 -0
  571. package/lib/esm/graph/engine/pinning/GraphPinningService.js +1 -1
  572. package/lib/esm/graph/engine/pinning/GraphPinningService.js.map +1 -0
  573. package/lib/esm/graph/engine/pinning/index.js +1 -1
  574. package/lib/esm/graph/engine/pinning/index.js.map +1 -0
  575. package/lib/esm/graph/engine/planning/GraphExecutionPlan.js +1 -1
  576. package/lib/esm/graph/engine/planning/GraphExecutionPlan.js.map +1 -0
  577. package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js +1 -1
  578. package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js.map +1 -0
  579. package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js +1 -1
  580. package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js.map +1 -0
  581. package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js +1 -1
  582. package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js.map +1 -0
  583. package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js +1 -1
  584. package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js.map +1 -0
  585. package/lib/esm/graph/engine/planning/GraphRelationResolver.js +1 -1
  586. package/lib/esm/graph/engine/planning/GraphRelationResolver.js.map +1 -0
  587. package/lib/esm/graph/engine/planning/GraphTopology.js +1 -1
  588. package/lib/esm/graph/engine/planning/GraphTopology.js.map +1 -0
  589. package/lib/esm/graph/engine/planning/index.js +1 -1
  590. package/lib/esm/graph/engine/planning/index.js.map +1 -0
  591. package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js +1 -1
  592. package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js.map +1 -0
  593. package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js +1 -1
  594. package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js.map +1 -0
  595. package/lib/esm/graph/engine/registry/index.js +1 -1
  596. package/lib/esm/graph/engine/registry/index.js.map +1 -0
  597. package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js +1 -1
  598. package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js.map +1 -0
  599. package/lib/esm/graph/engine/snapshots/index.js +1 -1
  600. package/lib/esm/graph/engine/snapshots/index.js.map +1 -0
  601. package/lib/esm/graph/engine/store/GraphCachedValue.js +1 -1
  602. package/lib/esm/graph/engine/store/GraphCachedValue.js.map +1 -0
  603. package/lib/esm/graph/engine/store/GraphValueKey.js +1 -1
  604. package/lib/esm/graph/engine/store/GraphValueKey.js.map +1 -0
  605. package/lib/esm/graph/engine/store/GraphValueStore.js +1 -1
  606. package/lib/esm/graph/engine/store/GraphValueStore.js.map +1 -0
  607. package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js +1 -1
  608. package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js.map +1 -0
  609. package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js +1 -1
  610. package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js.map +1 -0
  611. package/lib/esm/graph/engine/store/index.js +1 -1
  612. package/lib/esm/graph/engine/store/index.js.map +1 -0
  613. package/lib/esm/graph/engine/types.js +1 -1
  614. package/lib/esm/graph/engine/types.js.map +1 -0
  615. package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js +1 -1
  616. package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js.map +1 -0
  617. package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js +1 -1
  618. package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js.map +1 -0
  619. package/lib/esm/graph/engine/validation/GraphValueValidator.js +1 -1
  620. package/lib/esm/graph/engine/validation/GraphValueValidator.js.map +1 -0
  621. package/lib/esm/graph/engine/validation/index.js +1 -1
  622. package/lib/esm/graph/engine/validation/index.js.map +1 -0
  623. package/lib/esm/graph/index.js +1 -1
  624. package/lib/esm/graph/index.js.map +1 -0
  625. package/lib/esm/graph/shared/constants.js +1 -1
  626. package/lib/esm/graph/shared/constants.js.map +1 -0
  627. package/lib/esm/graph/shared/index.js +1 -1
  628. package/lib/esm/graph/shared/index.js.map +1 -0
  629. package/lib/esm/graph/shared/nodes/agent.js +1 -1
  630. package/lib/esm/graph/shared/nodes/agent.js.map +1 -0
  631. package/lib/esm/graph/shared/nodes/base.js +2 -1
  632. package/lib/esm/graph/shared/nodes/base.js.map +1 -0
  633. package/lib/esm/graph/shared/nodes/category-styles.js +1 -1
  634. package/lib/esm/graph/shared/nodes/category-styles.js.map +1 -0
  635. package/lib/esm/graph/shared/nodes/flow-control.js +1 -1
  636. package/lib/esm/graph/shared/nodes/flow-control.js.map +1 -0
  637. package/lib/esm/graph/shared/nodes/index.js +1 -1
  638. package/lib/esm/graph/shared/nodes/index.js.map +1 -0
  639. package/lib/esm/graph/shared/nodes/triggers.js +1 -1
  640. package/lib/esm/graph/shared/nodes/triggers.js.map +1 -0
  641. package/lib/esm/graph/shared/types.js +1 -1
  642. package/lib/esm/graph/shared/types.js.map +1 -0
  643. package/lib/esm/index.js +4 -4
  644. package/lib/esm/index.js.map +1 -0
  645. package/lib/esm/keycloak/index.js +1 -1
  646. package/lib/esm/keycloak/index.js.map +1 -0
  647. package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
  648. package/lib/esm/keycloak/services/KeycloakAuthService.js.map +1 -0
  649. package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
  650. package/lib/esm/keycloak/services/KeycloakClientService.js.map +1 -0
  651. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
  652. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +1 -0
  653. package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
  654. package/lib/esm/keycloak/services/KeycloakRealmService.js.map +1 -0
  655. package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
  656. package/lib/esm/keycloak/services/KeycloakRoleService.js.map +1 -0
  657. package/lib/esm/keycloak/services/KeycloakService.js +1 -1
  658. package/lib/esm/keycloak/services/KeycloakService.js.map +1 -0
  659. package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
  660. package/lib/esm/keycloak/services/KeycloakUserService.js.map +1 -0
  661. package/lib/esm/keycloak/services/index.js +1 -1
  662. package/lib/esm/keycloak/services/index.js.map +1 -0
  663. package/lib/esm/keycloak/services/runtime.js +1 -1
  664. package/lib/esm/keycloak/services/runtime.js.map +1 -0
  665. package/lib/esm/keycloak/types.js +1 -1
  666. package/lib/esm/keycloak/types.js.map +1 -0
  667. package/lib/esm/kibana/helpers.js +1 -1
  668. package/lib/esm/kibana/helpers.js.map +1 -0
  669. package/lib/esm/kibana/index.js +1 -1
  670. package/lib/esm/kibana/index.js.map +1 -0
  671. package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
  672. package/lib/esm/kibana/services/KibanaAuthService.js.map +1 -0
  673. package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
  674. package/lib/esm/kibana/services/KibanaDashboardService.js.map +1 -0
  675. package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
  676. package/lib/esm/kibana/services/KibanaDataViewService.js.map +1 -0
  677. package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
  678. package/lib/esm/kibana/services/KibanaRoleService.js.map +1 -0
  679. package/lib/esm/kibana/services/KibanaService.js +1 -1
  680. package/lib/esm/kibana/services/KibanaService.js.map +1 -0
  681. package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
  682. package/lib/esm/kibana/services/KibanaSpaceService.js.map +1 -0
  683. package/lib/esm/kibana/services/KibanaUserService.js +1 -1
  684. package/lib/esm/kibana/services/KibanaUserService.js.map +1 -0
  685. package/lib/esm/kibana/services/index.js +1 -1
  686. package/lib/esm/kibana/services/index.js.map +1 -0
  687. package/lib/esm/kibana/services/runtime.js +1 -1
  688. package/lib/esm/kibana/services/runtime.js.map +1 -0
  689. package/lib/esm/kibana/types.js +1 -1
  690. package/lib/esm/kibana/types.js.map +1 -0
  691. package/lib/esm/namespaces/index.js +1 -1
  692. package/lib/esm/namespaces/index.js.map +1 -0
  693. package/lib/esm/namespaces/models/authorization-model.js +1 -1
  694. package/lib/esm/namespaces/models/authorization-model.js.map +1 -0
  695. package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
  696. package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -0
  697. package/lib/esm/namespaces/models/group-membership.model.js +1 -1
  698. package/lib/esm/namespaces/models/group-membership.model.js.map +1 -0
  699. package/lib/esm/namespaces/models/group.model.js +1 -1
  700. package/lib/esm/namespaces/models/group.model.js.map +1 -0
  701. package/lib/esm/namespaces/models/index.js +1 -1
  702. package/lib/esm/namespaces/models/index.js.map +1 -0
  703. package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
  704. package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -0
  705. package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
  706. package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -0
  707. package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
  708. package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -0
  709. package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
  710. package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -0
  711. package/lib/esm/namespaces/models/org-unit.model.js +1 -1
  712. package/lib/esm/namespaces/models/org-unit.model.js.map +1 -0
  713. package/lib/esm/namespaces/models/permission.model.js +1 -1
  714. package/lib/esm/namespaces/models/permission.model.js.map +1 -0
  715. package/lib/esm/namespaces/models/principal.model.js +1 -1
  716. package/lib/esm/namespaces/models/principal.model.js.map +1 -0
  717. package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
  718. package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -0
  719. package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
  720. package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -0
  721. package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
  722. package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -0
  723. package/lib/esm/namespaces/models/role-permission.model.js +1 -1
  724. package/lib/esm/namespaces/models/role-permission.model.js.map +1 -0
  725. package/lib/esm/namespaces/models/role.model.js +1 -1
  726. package/lib/esm/namespaces/models/role.model.js.map +1 -0
  727. package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
  728. package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -0
  729. package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
  730. package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -0
  731. package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
  732. package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -0
  733. package/lib/esm/namespaces/models/tenant.model.js +3 -3
  734. package/lib/esm/namespaces/models/tenant.model.js.map +1 -0
  735. package/lib/esm/namespaces/models/user.model.js +1 -1
  736. package/lib/esm/namespaces/models/user.model.js.map +1 -0
  737. package/lib/esm/namespaces/org-based-authorization-system.js +10 -4
  738. package/lib/esm/namespaces/org-based-authorization-system.js.map +1 -0
  739. package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
  740. package/lib/esm/namespaces/org-based-authorization-system.models.js.map +1 -0
  741. package/lib/esm/namespaces/org-based-authorization-system.services.js +18 -9
  742. package/lib/esm/namespaces/org-based-authorization-system.services.js.map +1 -0
  743. package/lib/esm/namespaces/services/authz.service.js +40 -14
  744. package/lib/esm/namespaces/services/authz.service.js.map +1 -0
  745. package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
  746. package/lib/esm/namespaces/services/bootstrap.service.js.map +1 -0
  747. package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
  748. package/lib/esm/namespaces/services/effective-permission.service.js.map +1 -0
  749. package/lib/esm/namespaces/services/group-membership.service.js +1 -1
  750. package/lib/esm/namespaces/services/group-membership.service.js.map +1 -0
  751. package/lib/esm/namespaces/services/group.service.js +1 -1
  752. package/lib/esm/namespaces/services/group.service.js.map +1 -0
  753. package/lib/esm/namespaces/services/index.js +1 -1
  754. package/lib/esm/namespaces/services/index.js.map +1 -0
  755. package/lib/esm/namespaces/services/inheritance-block.service.js +5 -3
  756. package/lib/esm/namespaces/services/inheritance-block.service.js.map +1 -0
  757. package/lib/esm/namespaces/services/org-unit-closure.service.js +16 -7
  758. package/lib/esm/namespaces/services/org-unit-closure.service.js.map +1 -0
  759. package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
  760. package/lib/esm/namespaces/services/org-unit-membership.service.js.map +1 -0
  761. package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
  762. package/lib/esm/namespaces/services/org-unit-profile.service.js.map +1 -0
  763. package/lib/esm/namespaces/services/org-unit.service.js +1 -1
  764. package/lib/esm/namespaces/services/org-unit.service.js.map +1 -0
  765. package/lib/esm/namespaces/services/permission.service.js +1 -1
  766. package/lib/esm/namespaces/services/permission.service.js.map +1 -0
  767. package/lib/esm/namespaces/services/principal.service.js +1 -1
  768. package/lib/esm/namespaces/services/principal.service.js.map +1 -0
  769. package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
  770. package/lib/esm/namespaces/services/protected-resource.service.js.map +1 -0
  771. package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
  772. package/lib/esm/namespaces/services/resource-grant.service.js.map +1 -0
  773. package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
  774. package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +1 -0
  775. package/lib/esm/namespaces/services/role-assignment.service.js +3 -2
  776. package/lib/esm/namespaces/services/role-assignment.service.js.map +1 -0
  777. package/lib/esm/namespaces/services/role-permission.service.js +1 -1
  778. package/lib/esm/namespaces/services/role-permission.service.js.map +1 -0
  779. package/lib/esm/namespaces/services/role.service.js +1 -1
  780. package/lib/esm/namespaces/services/role.service.js.map +1 -0
  781. package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
  782. package/lib/esm/namespaces/services/storage-binding.service.js.map +1 -0
  783. package/lib/esm/namespaces/services/system-management.service.js +1 -1
  784. package/lib/esm/namespaces/services/system-management.service.js.map +1 -0
  785. package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
  786. package/lib/esm/namespaces/services/tenant-membership.service.js.map +1 -0
  787. package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
  788. package/lib/esm/namespaces/services/tenant-profile.service.js.map +1 -0
  789. package/lib/esm/namespaces/services/tenant.service.js +1 -1
  790. package/lib/esm/namespaces/services/tenant.service.js.map +1 -0
  791. package/lib/esm/namespaces/services/user.service.js +1 -1
  792. package/lib/esm/namespaces/services/user.service.js.map +1 -0
  793. package/lib/esm/namespaces/types.js +1 -1
  794. package/lib/esm/namespaces/types.js.map +1 -0
  795. package/lib/esm/namespaces/utils.js +12 -4
  796. package/lib/esm/namespaces/utils.js.map +1 -0
  797. package/lib/esm/nest/authService.js +1 -1
  798. package/lib/esm/nest/authService.js.map +1 -0
  799. package/lib/esm/nest/graph/GraphExecutionController.js +1 -1
  800. package/lib/esm/nest/graph/GraphExecutionController.js.map +1 -0
  801. package/lib/esm/nest/graph/GraphExecutionModule.js +6 -4
  802. package/lib/esm/nest/graph/GraphExecutionModule.js.map +1 -0
  803. package/lib/esm/nest/graph/GraphExecutionResultModel.js +1 -1
  804. package/lib/esm/nest/graph/GraphExecutionResultModel.js.map +1 -0
  805. package/lib/esm/nest/graph/GraphExecutionResultRepository.js +1 -1
  806. package/lib/esm/nest/graph/GraphExecutionResultRepository.js.map +1 -0
  807. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +96 -11
  808. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +1 -0
  809. package/lib/esm/nest/graph/index.js +1 -1
  810. package/lib/esm/nest/graph/index.js.map +1 -0
  811. package/lib/esm/nest/graph/main.js +27 -0
  812. package/lib/esm/nest/graph/main.js.map +1 -0
  813. package/lib/esm/nest/index.js +1 -1
  814. package/lib/esm/nest/index.js.map +1 -0
  815. package/lib/esm/nest/keycloakAuthHandler.js +1 -1
  816. package/lib/esm/nest/keycloakAuthHandler.js.map +1 -0
  817. package/lib/esm/nest/keycloakModule.js +1 -1
  818. package/lib/esm/nest/keycloakModule.js.map +1 -0
  819. package/lib/esm/nest/logging.js +1 -1
  820. package/lib/esm/nest/logging.js.map +1 -0
  821. package/lib/esm/nest/types.js +1 -1
  822. package/lib/esm/nest/types.js.map +1 -0
  823. package/lib/esm/nest/utils.js +1 -1
  824. package/lib/esm/nest/utils.js.map +1 -0
  825. package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
  826. package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -0
  827. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
  828. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +1 -0
  829. package/lib/esm/secrets/aws/index.js +1 -1
  830. package/lib/esm/secrets/aws/index.js.map +1 -0
  831. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
  832. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -0
  833. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
  834. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +1 -0
  835. package/lib/esm/secrets/azure/index.js +1 -1
  836. package/lib/esm/secrets/azure/index.js.map +1 -0
  837. package/lib/esm/secrets/core/SecretErrors.js +1 -1
  838. package/lib/esm/secrets/core/SecretErrors.js.map +1 -0
  839. package/lib/esm/secrets/core/SecretName.js +1 -1
  840. package/lib/esm/secrets/core/SecretName.js.map +1 -0
  841. package/lib/esm/secrets/core/SecretReference.js +1 -1
  842. package/lib/esm/secrets/core/SecretReference.js.map +1 -0
  843. package/lib/esm/secrets/core/SecretSerialization.js +1 -1
  844. package/lib/esm/secrets/core/SecretSerialization.js.map +1 -0
  845. package/lib/esm/secrets/core/SecretService.js +1 -1
  846. package/lib/esm/secrets/core/SecretService.js.map +1 -0
  847. package/lib/esm/secrets/core/SecretTypes.js +1 -1
  848. package/lib/esm/secrets/core/SecretTypes.js.map +1 -0
  849. package/lib/esm/secrets/core/index.js +1 -1
  850. package/lib/esm/secrets/core/index.js.map +1 -0
  851. package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
  852. package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -0
  853. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
  854. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +1 -0
  855. package/lib/esm/secrets/gcp/index.js +1 -1
  856. package/lib/esm/secrets/gcp/index.js.map +1 -0
  857. package/lib/esm/secrets/index.js +1 -1
  858. package/lib/esm/secrets/index.js.map +1 -0
  859. package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
  860. package/lib/esm/secrets/model/ModelSecretCrypto.js.map +1 -0
  861. package/lib/esm/secrets/model/ModelSecretService.js +1 -1
  862. package/lib/esm/secrets/model/ModelSecretService.js.map +1 -0
  863. package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
  864. package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +1 -0
  865. package/lib/esm/secrets/model/Secret.js +1 -1
  866. package/lib/esm/secrets/model/Secret.js.map +1 -0
  867. package/lib/esm/secrets/model/index.js +1 -1
  868. package/lib/esm/secrets/model/index.js.map +1 -0
  869. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
  870. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -0
  871. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
  872. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +1 -0
  873. package/lib/esm/secrets/onepassword/index.js +1 -1
  874. package/lib/esm/secrets/onepassword/index.js.map +1 -0
  875. package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
  876. package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -0
  877. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
  878. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +1 -0
  879. package/lib/esm/secrets/vault/index.js +1 -1
  880. package/lib/esm/secrets/vault/index.js.map +1 -0
  881. package/lib/esm/shared/runtime.js +1 -1
  882. package/lib/esm/shared/runtime.js.map +1 -0
  883. package/lib/esm/utils.js +1 -1
  884. package/lib/esm/utils.js.map +1 -0
  885. package/lib/types/graph/engine/types.d.cts +6 -34
  886. package/lib/types/graph/engine/types.d.mts +6 -34
  887. package/lib/types/graph/shared/types.d.cts +43 -2
  888. package/lib/types/graph/shared/types.d.mts +43 -2
  889. package/lib/types/index.d.cts +2 -2
  890. package/lib/types/index.d.mts +2 -2
  891. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.cts +33 -5
  892. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.mts +33 -5
  893. package/lib/types/nest/graph/main.d.cts +1 -0
  894. package/lib/types/nest/graph/main.d.mts +1 -0
  895. package/package.json +6 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespaces/org-based-authorization-system.services.cjs","sourceRoot":"","sources":["namespaces/org-based-authorization-system.services.js"],"names":[],"mappings":"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"}
@@ -11,11 +11,13 @@ class AuthzService {
11
11
  constructor(dataSources = {}) {
12
12
  this.dataSources = dataSources;
13
13
  }
14
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
15
  async canAccess(input, ...args) {
15
16
  const at = input.at ?? new Date();
16
17
  if (input.scopeKind && input.scopeId) {
17
18
  const permissions = await this.dataSources.listEffectivePermissionsForScope?.(input.tenantId, input.scopeKind, input.scopeId);
18
- return (0, utils_js_1.asArray)(permissions).some((permission) => permission.permissionKey === input.permissionKey && (0, utils_js_1.isTimeValid)(at, permission.startsAt, permission.expiresAt));
19
+ return (0, utils_js_1.asArray)(permissions).some((permission) => permission.permissionKey === input.permissionKey &&
20
+ (0, utils_js_1.isTimeValid)(at, permission.startsAt, permission.expiresAt));
19
21
  }
20
22
  if (!input.resourceProtectedId)
21
23
  return false;
@@ -26,20 +28,26 @@ class AuthzService {
26
28
  return false;
27
29
  if (resource.ownerPrincipalId === input.principalId)
28
30
  return true;
29
- const grants = (0, utils_js_1.asArray)(await this.dataSources.listResourceGrants?.(input.tenantId, input.resourceProtectedId)).filter((grant) => grant.principalId === input.principalId && grant.permissionKey === input.permissionKey && (0, utils_js_1.isTimeValid)(at, grant.startsAt, grant.expiresAt));
31
+ const grants = (0, utils_js_1.asArray)(await this.dataSources.listResourceGrants?.(input.tenantId, input.resourceProtectedId)).filter((grant) => grant.principalId === input.principalId &&
32
+ grant.permissionKey === input.permissionKey &&
33
+ (0, utils_js_1.isTimeValid)(at, grant.startsAt, grant.expiresAt));
30
34
  if (grants.length > 0)
31
35
  return true;
32
36
  const visibility = resource.visibility;
33
- if (visibility === types_js_1.ResourceVisibility.Private || visibility === types_js_1.ResourceVisibility.ResourceAcl) {
37
+ if (visibility === types_js_1.ResourceVisibility.Private ||
38
+ visibility === types_js_1.ResourceVisibility.ResourceAcl) {
34
39
  return false;
35
40
  }
36
- if (visibility === types_js_1.ResourceVisibility.OrgUnit || visibility === types_js_1.ResourceVisibility.OrgSubtree) {
41
+ if (visibility === types_js_1.ResourceVisibility.OrgUnit ||
42
+ visibility === types_js_1.ResourceVisibility.OrgSubtree) {
37
43
  const effectivePermissions = (0, utils_js_1.asArray)(await this.dataSources.listEffectivePermissionsForScope?.(input.tenantId, types_js_1.ScopeKind.OrgUnit, resource.orgUnitId));
38
- return effectivePermissions.some((permission) => permission.permissionKey === input.permissionKey && (0, utils_js_1.isTimeValid)(at, permission.startsAt, permission.expiresAt));
44
+ return effectivePermissions.some((permission) => permission.permissionKey === input.permissionKey &&
45
+ (0, utils_js_1.isTimeValid)(at, permission.startsAt, permission.expiresAt));
39
46
  }
40
47
  if (visibility === types_js_1.ResourceVisibility.Tenant) {
41
48
  const effectivePermissions = (0, utils_js_1.asArray)(await this.dataSources.listEffectivePermissionsForScope?.(input.tenantId, types_js_1.ScopeKind.Tenant, input.tenantId));
42
- return effectivePermissions.some((permission) => permission.permissionKey === input.permissionKey && (0, utils_js_1.isTimeValid)(at, permission.startsAt, permission.expiresAt));
49
+ return effectivePermissions.some((permission) => permission.permissionKey === input.permissionKey &&
50
+ (0, utils_js_1.isTimeValid)(at, permission.startsAt, permission.expiresAt));
43
51
  }
44
52
  return false;
45
53
  }
@@ -48,7 +56,9 @@ class AuthzService {
48
56
  throw new core_1.AuthorizationError(`Access denied for ${input.permissionKey} on ${input.resourceProtectedId ?? scopeKey(input.scopeKind ?? types_js_1.ScopeKind.Resource, input.scopeId ?? "")}`);
49
57
  }
50
58
  }
51
- async buildAccessContext(tenantId, principalId, ...args) {
59
+ async buildAccessContext(tenantId, principalId,
60
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
61
+ ...args) {
52
62
  const permissions = (0, utils_js_1.asArray)(await this.dataSources.listEffectivePermissions?.(tenantId, principalId));
53
63
  const grants = (0, utils_js_1.asArray)(await this.dataSources.listPrincipalGrants?.(tenantId, principalId));
54
64
  return (0, utils_js_1.buildAccessContext)({
@@ -61,16 +71,32 @@ class AuthzService {
61
71
  async buildArangoContext(tenantId, principalId, permissionKey, ...args) {
62
72
  const access = await this.buildAccessContext(tenantId, principalId, ...args);
63
73
  const allowedOrgUnitIds = access.allowedOrgUnitIdsByPermission[permissionKey] ?? [];
64
- const allowedResourceIds = access.resourceGrants.filter((grant) => grant.permissionKey === permissionKey).map((grant) => grant.resourceId);
65
- return (0, utils_js_1.buildArangoContext)({ tenantId, principalId, permissionKey, allowedOrgUnitIds, allowedResourceIds });
74
+ const allowedResourceIds = access.resourceGrants
75
+ .filter((grant) => grant.permissionKey === permissionKey)
76
+ .map((grant) => grant.resourceId);
77
+ return (0, utils_js_1.buildArangoContext)({
78
+ tenantId,
79
+ principalId,
80
+ permissionKey,
81
+ allowedOrgUnitIds,
82
+ allowedResourceIds,
83
+ });
66
84
  }
67
85
  async buildQdrantFilter(tenantId, principalId, permissionKey, ...args) {
68
86
  const access = await this.buildAccessContext(tenantId, principalId, ...args);
69
87
  const allowedOrgUnitIds = access.allowedOrgUnitIdsByPermission[permissionKey] ?? [];
70
- const allowedResourceIds = access.resourceGrants.filter((grant) => grant.permissionKey === permissionKey).map((grant) => grant.resourceId);
71
- return (0, utils_js_1.buildQdrantFilter)({ tenantId, principalId, permissionKey, allowedOrgUnitIds, allowedResourceIds });
88
+ const allowedResourceIds = access.resourceGrants
89
+ .filter((grant) => grant.permissionKey === permissionKey)
90
+ .map((grant) => grant.resourceId);
91
+ return (0, utils_js_1.buildQdrantFilter)({
92
+ tenantId,
93
+ principalId,
94
+ permissionKey,
95
+ allowedOrgUnitIds,
96
+ allowedResourceIds,
97
+ });
72
98
  }
73
99
  }
74
100
  exports.AuthzService = AuthzService;
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aHouc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uYW1lc3BhY2VzL3NlcnZpY2VzL2F1dGh6LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFvQyxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsc0JBQWlCO0FBQzNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFjLHNCQUFpQjtBQUV2SCxTQUFTLFFBQVEsQ0FBQyxTQUFvQixFQUFFLE9BQWU7SUFDckQsT0FBTyxHQUFHLFNBQVMsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUNuQyxDQUFDO0FBRUQsTUFBTSxPQUFPLFlBQVk7SUFHdkIsWUFBWSxjQUFnQyxFQUFFO1FBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQXFCLEVBQUUsR0FBRyxJQUFXO1FBQ25ELE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUVsQyxJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JDLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUgsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUM5QixDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsS0FBSyxLQUFLLENBQUMsYUFBYSxJQUFJLFdBQVcs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QUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsS0FBSyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzSSxPQUFPLGtCQUFrQixDQUFDLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsUUFBZ0IsRUFBRSxXQUFtQixFQUFFLGFBQXFCLEVBQUUsR0FBRyxJQUFXO1FBQ2xHLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM3RSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEYsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsS0FBSyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzSSxPQUFPLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQzVHLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhvcml6YXRpb25FcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQXV0aHpEYXRhU291cmNlcywgQ2FuQWNjZXNzSW5wdXQsIFJlc291cmNlVmlzaWJpbGl0eSwgU2NvcGVLaW5kIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBhc0FycmF5LCBidWlsZEFjY2Vzc0NvbnRleHQsIGJ1aWxkQXJhbmdvQ29udGV4dCwgYnVpbGRRZHJhbnRGaWx0ZXIsIGlzVGltZVZhbGlkLCByZWxhdGlvbklkIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbmZ1bmN0aW9uIHNjb3BlS2V5KHNjb3BlS2luZDogU2NvcGVLaW5kLCBzY29wZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2NvcGVLaW5kfToke3Njb3BlSWR9YDtcbn1cblxuZXhwb3J0IGNsYXNzIEF1dGh6U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YVNvdXJjZXM6IEF1dGh6RGF0YVNvdXJjZXM7XG5cbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZXM6IEF1dGh6RGF0YVNvdXJjZXMgPSB7fSkge1xuICAgIHRoaXMuZGF0YVNvdXJjZXMgPSBkYXRhU291cmNlcztcbiAgfVxuXG4gIGFzeW5jIGNhbkFjY2VzcyhpbnB1dDogQ2FuQWNjZXNzSW5wdXQsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgYXQgPSBpbnB1dC5hdCA/PyBuZXcgRGF0ZSgpO1xuXG4gICAgaWYgKGlucHV0LnNjb3BlS2luZCAmJiBpbnB1dC5zY29wZUlkKSB7XG4gICAgICBjb25zdCBwZXJtaXNzaW9ucyA9IGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubGlzdEVmZmVjdGl2ZVBlcm1pc3Npb25zRm9yU2NvcGU/LihpbnB1dC50ZW5hbnRJZCwgaW5wdXQuc2NvcGVLaW5kLCBpbnB1dC5zY29wZUlkKTtcbiAgICAgIHJldHVybiBhc0FycmF5KHBlcm1pc3Npb25zKS5zb21lKFxuICAgICAgICAocGVybWlzc2lvbikgPT4gcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5ID09PSBpbnB1dC5wZXJtaXNzaW9uS2V5ICYmIGlzVGltZVZhbGlkKGF0LCBwZXJtaXNzaW9uLnN0YXJ0c0F0LCBwZXJtaXNzaW9uLmV4cGlyZXNBdClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFpbnB1dC5yZXNvdXJjZVByb3RlY3RlZElkKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubG9hZFJlc291cmNlPy4oaW5wdXQudGVuYW50SWQsIGlucHV0LnJlc291cmNlUHJvdGVjdGVkSWQpO1xuICAgIGlmICghcmVzb3VyY2UpIHJldHVybiBmYWxzZTtcbiAgICBpZiAocmVzb3VyY2UudGVuYW50SWQgIT09IGlucHV0LnRlbmFudElkKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAocmVzb3VyY2Uub3duZXJQcmluY2lwYWxJZCA9PT0gaW5wdXQucHJpbmNpcGFsSWQpIHJldHVybiB0cnVlO1xuXG4gICAgY29uc3QgZ3JhbnRzID0gYXNBcnJheShhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RSZXNvdXJjZUdyYW50cz8uKGlucHV0LnRlbmFudElkLCBpbnB1dC5yZXNvdXJjZVByb3RlY3RlZElkKSkuZmlsdGVyKFxuICAgICAgKGdyYW50KSA9PiBncmFudC5wcmluY2lwYWxJZCA9PT0gaW5wdXQucHJpbmNpcGFsSWQgJiYgZ3JhbnQucGVybWlzc2lvbktleSA9PT0gaW5wdXQucGVybWlzc2lvbktleSAmJiBpc1RpbWVWYWxpZChhdCwgZ3JhbnQuc3RhcnRzQXQsIGdyYW50LmV4cGlyZXNBdClcbiAgICApO1xuICAgIGlmIChncmFudHMubGVuZ3RoID4gMCkgcmV0dXJuIHRydWU7XG5cbiAgICBjb25zdCB2aXNpYmlsaXR5ID0gcmVzb3VyY2UudmlzaWJpbGl0eTtcbiAgICBpZiAodmlzaWJpbGl0eSA9PT0gUmVzb3VyY2VWaXNpYmlsaXR5LlByaXZhdGUgfHwgdmlzaWJpbGl0eSA9PT0gUmVzb3VyY2VWaXNpYmlsaXR5LlJlc291cmNlQWNsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHZpc2liaWxpdHkgPT09IFJlc291cmNlVmlzaWJpbGl0eS5PcmdVbml0IHx8IHZpc2liaWxpdHkgPT09IFJlc291cmNlVmlzaWJpbGl0eS5PcmdTdWJ0cmVlKSB7XG4gICAgICBjb25zdCBlZmZlY3RpdmVQZXJtaXNzaW9ucyA9IGFzQXJyYXkoXG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubGlzdEVmZmVjdGl2ZVBlcm1pc3Npb25zRm9yU2NvcGU/LihpbnB1dC50ZW5hbnRJZCwgU2NvcGVLaW5kLk9yZ1VuaXQsIHJlc291cmNlLm9yZ1VuaXRJZClcbiAgICAgICk7XG4gICAgICByZXR1cm4gZWZmZWN0aXZlUGVybWlzc2lvbnMuc29tZShcbiAgICAgICAgKHBlcm1pc3Npb24pID0+IHBlcm1pc3Npb24ucGVybWlzc2lvbktleSA9PT0gaW5wdXQucGVybWlzc2lvbktleSAmJiBpc1RpbWVWYWxpZChhdCwgcGVybWlzc2lvbi5zdGFydHNBdCwgcGVybWlzc2lvbi5leHBpcmVzQXQpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh2aXNpYmlsaXR5ID09PSBSZXNvdXJjZVZpc2liaWxpdHkuVGVuYW50KSB7XG4gICAgICBjb25zdCBlZmZlY3RpdmVQZXJtaXNzaW9ucyA9IGFzQXJyYXkoXG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubGlzdEVmZmVjdGl2ZVBlcm1pc3Npb25zRm9yU2NvcGU/LihpbnB1dC50ZW5hbnRJZCwgU2NvcGVLaW5kLlRlbmFudCwgaW5wdXQudGVuYW50SWQpXG4gICAgICApO1xuICAgICAgcmV0dXJuIGVmZmVjdGl2ZVBlcm1pc3Npb25zLnNvbWUoXG4gICAgICAgIChwZXJtaXNzaW9uKSA9PiBwZXJtaXNzaW9uLnBlcm1pc3Npb25LZXkgPT09IGlucHV0LnBlcm1pc3Npb25LZXkgJiYgaXNUaW1lVmFsaWQoYXQsIHBlcm1pc3Npb24uc3RhcnRzQXQsIHBlcm1pc3Npb24uZXhwaXJlc0F0KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBhc3luYyByZXF1aXJlQWNjZXNzKGlucHV0OiBDYW5BY2Nlc3NJbnB1dCwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIShhd2FpdCB0aGlzLmNhbkFjY2VzcyhpbnB1dCwgLi4uYXJncykpKSB7XG4gICAgICB0aHJvdyBuZXcgQXV0aG9yaXphdGlvbkVycm9yKFxuICAgICAgICBgQWNjZXNzIGRlbmllZCBmb3IgJHtpbnB1dC5wZXJtaXNzaW9uS2V5fSBvbiAke2lucHV0LnJlc291cmNlUHJvdGVjdGVkSWQgPz8gc2NvcGVLZXkoaW5wdXQuc2NvcGVLaW5kID8/IFNjb3BlS2luZC5SZXNvdXJjZSwgaW5wdXQuc2NvcGVJZCA/PyBcIlwiKX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGJ1aWxkQWNjZXNzQ29udGV4dCh0ZW5hbnRJZDogc3RyaW5nLCBwcmluY2lwYWxJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8aW1wb3J0KFwiLi4vdHlwZXNcIikuQWNjZXNzQ29udGV4dD4ge1xuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gYXNBcnJheShhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RFZmZlY3RpdmVQZXJtaXNzaW9ucz8uKHRlbmFudElkLCBwcmluY2lwYWxJZCkpO1xuICAgIGNvbnN0IGdyYW50cyA9IGFzQXJyYXkoYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0UHJpbmNpcGFsR3JhbnRzPy4odGVuYW50SWQsIHByaW5jaXBhbElkKSk7XG4gICAgcmV0dXJuIGJ1aWxkQWNjZXNzQ29udGV4dCh7XG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHByaW5jaXBhbElkLFxuICAgICAgcGVybWlzc2lvbnMsXG4gICAgICBncmFudHMsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBidWlsZEFyYW5nb0NvbnRleHQodGVuYW50SWQ6IHN0cmluZywgcHJpbmNpcGFsSWQ6IHN0cmluZywgcGVybWlzc2lvbktleTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IGFjY2VzcyA9IGF3YWl0IHRoaXMuYnVpbGRBY2Nlc3NDb250ZXh0KHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncyk7XG4gICAgY29uc3QgYWxsb3dlZE9yZ1VuaXRJZHMgPSBhY2Nlc3MuYWxsb3dlZE9yZ1VuaXRJZHNCeVBlcm1pc3Npb25bcGVybWlzc2lvbktleV0gPz8gW107XG4gICAgY29uc3QgYWxsb3dlZFJlc291cmNlSWRzID0gYWNjZXNzLnJlc291cmNlR3JhbnRzLmZpbHRlcigoZ3JhbnQpID0+IGdyYW50LnBlcm1pc3Npb25LZXkgPT09IHBlcm1pc3Npb25LZXkpLm1hcCgoZ3JhbnQpID0+IGdyYW50LnJlc291cmNlSWQpO1xuICAgIHJldHVybiBidWlsZEFyYW5nb0NvbnRleHQoeyB0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIHBlcm1pc3Npb25LZXksIGFsbG93ZWRPcmdVbml0SWRzLCBhbGxvd2VkUmVzb3VyY2VJZHMgfSk7XG4gIH1cblxuICBhc3luYyBidWlsZFFkcmFudEZpbHRlcih0ZW5hbnRJZDogc3RyaW5nLCBwcmluY2lwYWxJZDogc3RyaW5nLCBwZXJtaXNzaW9uS2V5OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgY29uc3QgYWNjZXNzID0gYXdhaXQgdGhpcy5idWlsZEFjY2Vzc0NvbnRleHQodGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKTtcbiAgICBjb25zdCBhbGxvd2VkT3JnVW5pdElkcyA9IGFjY2Vzcy5hbGxvd2VkT3JnVW5pdElkc0J5UGVybWlzc2lvbltwZXJtaXNzaW9uS2V5XSA/PyBbXTtcbiAgICBjb25zdCBhbGxvd2VkUmVzb3VyY2VJZHMgPSBhY2Nlc3MucmVzb3VyY2VHcmFudHMuZmlsdGVyKChncmFudCkgPT4gZ3JhbnQucGVybWlzc2lvbktleSA9PT0gcGVybWlzc2lvbktleSkubWFwKChncmFudCkgPT4gZ3JhbnQucmVzb3VyY2VJZCk7XG4gICAgcmV0dXJuIGJ1aWxkUWRyYW50RmlsdGVyKHsgdGVuYW50SWQsIHByaW5jaXBhbElkLCBwZXJtaXNzaW9uS2V5LCBhbGxvd2VkT3JnVW5pdElkcywgYWxsb3dlZFJlc291cmNlSWRzIH0pO1xuICB9XG59XG4iXX0=
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aHouc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF1dGh6LnNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQW9EO0FBQ3BELDRDQUE4RDtBQUM5RCw0Q0FBZ0g7QUFDaEgsU0FBUyxRQUFRLENBQUMsU0FBUyxFQUFFLE9BQU87SUFDaEMsT0FBTyxHQUFHLFNBQVMsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUNyQyxDQUFDO0FBQ0QsTUFBYSxZQUFZO0lBQ3JCLFlBQVksV0FBVyxHQUFHLEVBQUU7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDbkMsQ0FBQztJQUNELEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSTtRQUMxQixNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQyxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlILE9BQU8sSUFBQSxrQkFBTyxFQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsS0FBSyxLQUFLLENBQUMsYUFBYSxJQUFJLElBQUEsc0JBQVcsRUFBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNySyxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUI7WUFDMUIsT0FBTyxLQUFLLENBQUM7UUFDakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJ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QVUsQ0FBQyxDQUFDO1FBQzNJLE9BQU8sSUFBQSw2QkFBa0IsRUFBQyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBQ0QsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLEdBQUcsSUFBSTtRQUNqRSxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDN0UsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BGLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLEtBQUssYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0ksT0FBTyxJQUFBLDRCQUFpQixFQUFDLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQzlHLENBQUM7Q0FDSjtBQS9ERCxvQ0ErREM7QUFDRCxrM1hBQWszWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhvcml6YXRpb25FcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgUmVzb3VyY2VWaXNpYmlsaXR5LCBTY29wZUtpbmQgfSBmcm9tIFwiLi8uLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgYXNBcnJheSwgYnVpbGRBY2Nlc3NDb250ZXh0LCBidWlsZEFyYW5nb0NvbnRleHQsIGJ1aWxkUWRyYW50RmlsdGVyLCBpc1RpbWVWYWxpZCB9IGZyb20gXCIuLy4uL3V0aWxzLmpzXCI7XG5mdW5jdGlvbiBzY29wZUtleShzY29wZUtpbmQsIHNjb3BlSWQpIHtcbiAgICByZXR1cm4gYCR7c2NvcGVLaW5kfToke3Njb3BlSWR9YDtcbn1cbmV4cG9ydCBjbGFzcyBBdXRoelNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKGRhdGFTb3VyY2VzID0ge30pIHtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlcyA9IGRhdGFTb3VyY2VzO1xuICAgIH1cbiAgICBhc3luYyBjYW5BY2Nlc3MoaW5wdXQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgYXQgPSBpbnB1dC5hdCA/PyBuZXcgRGF0ZSgpO1xuICAgICAgICBpZiAoaW5wdXQuc2NvcGVLaW5kICYmIGlucHV0LnNjb3BlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHBlcm1pc3Npb25zID0gYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0RWZmZWN0aXZlUGVybWlzc2lvbnNGb3JTY29wZT8uKGlucHV0LnRlbmFudElkLCBpbnB1dC5zY29wZUtpbmQsIGlucHV0LnNjb3BlSWQpO1xuICAgICAgICAgICAgcmV0dXJuIGFzQXJyYXkocGVybWlzc2lvbnMpLnNvbWUoKHBlcm1pc3Npb24pID0+IHBlcm1pc3Npb24ucGVybWlzc2lvbktleSA9PT0gaW5wdXQucGVybWlzc2lvbktleSAmJiBpc1RpbWVWYWxpZChhdCwgcGVybWlzc2lvbi5zdGFydHNBdCwgcGVybWlzc2lvbi5leHBpcmVzQXQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlucHV0LnJlc291cmNlUHJvdGVjdGVkSWQpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IHJlc291cmNlID0gYXdhaXQgdGhpcy5kYXRhU291cmNlcy5sb2FkUmVzb3VyY2U/LihpbnB1dC50ZW5hbnRJZCwgaW5wdXQucmVzb3VyY2VQcm90ZWN0ZWRJZCk7XG4gICAgICAgIGlmICghcmVzb3VyY2UpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmIChyZXNvdXJjZS50ZW5hbnRJZCAhPT0gaW5wdXQudGVuYW50SWQpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmIChyZXNvdXJjZS5vd25lclByaW5jaXBhbElkID09PSBpbnB1dC5wcmluY2lwYWxJZClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCBncmFudHMgPSBhc0FycmF5KGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubGlzdFJlc291cmNlR3JhbnRzPy4oaW5wdXQudGVuYW50SWQsIGlucHV0LnJlc291cmNlUHJvdGVjdGVkSWQpKS5maWx0ZXIoKGdyYW50KSA9PiBncmFudC5wcmluY2lwYWxJZCA9PT0gaW5wdXQucHJpbmNpcGFsSWQgJiYgZ3JhbnQucGVybWlzc2lvbktleSA9PT0gaW5wdXQucGVybWlzc2lvbktleSAmJiBpc1RpbWVWYWxpZChhdCwgZ3JhbnQuc3RhcnRzQXQsIGdyYW50LmV4cGlyZXNBdCkpO1xuICAgICAgICBpZiAoZ3JhbnRzLmxlbmd0aCA+IDApXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgY29uc3QgdmlzaWJpbGl0eSA9IHJlc291cmNlLnZpc2liaWxpdHk7XG4gICAgICAgIGlmICh2aXNpYmlsaXR5ID09PSBSZXNvdXJjZVZpc2liaWxpdHkuUHJpdmF0ZSB8fCB2aXNpYmlsaXR5ID09PSBSZXNvdXJjZVZpc2liaWxpdHkuUmVzb3VyY2VBY2wpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmlzaWJpbGl0eSA9PT0gUmVzb3VyY2VWaXNpYmlsaXR5Lk9yZ1VuaXQgfHwgdmlzaWJpbGl0eSA9PT0gUmVzb3VyY2VWaXNpYmlsaXR5Lk9yZ1N1YnRyZWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGVmZmVjdGl2ZVBlcm1pc3Npb25zID0gYXNBcnJheShhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RFZmZlY3RpdmVQZXJtaXNzaW9uc0ZvclNjb3BlPy4oaW5wdXQudGVuYW50SWQsIFNjb3BlS2luZC5PcmdVbml0LCByZXNvdXJjZS5vcmdVbml0SWQpKTtcbiAgICAgICAgICAgIHJldHVybiBlZmZlY3RpdmVQZXJtaXNzaW9ucy5zb21lKChwZXJtaXNzaW9uKSA9PiBwZXJtaXNzaW9uLnBlcm1pc3Npb25LZXkgPT09IGlucHV0LnBlcm1pc3Npb25LZXkgJiYgaXNUaW1lVmFsaWQoYXQsIHBlcm1pc3Npb24uc3RhcnRzQXQsIHBlcm1pc3Npb24uZXhwaXJlc0F0KSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZpc2liaWxpdHkgPT09IFJlc291cmNlVmlzaWJpbGl0eS5UZW5hbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVmZmVjdGl2ZVBlcm1pc3Npb25zID0gYXNBcnJheShhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RFZmZlY3RpdmVQZXJtaXNzaW9uc0ZvclNjb3BlPy4oaW5wdXQudGVuYW50SWQsIFNjb3BlS2luZC5UZW5hbnQsIGlucHV0LnRlbmFudElkKSk7XG4gICAgICAgICAgICByZXR1cm4gZWZmZWN0aXZlUGVybWlzc2lvbnMuc29tZSgocGVybWlzc2lvbikgPT4gcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5ID09PSBpbnB1dC5wZXJtaXNzaW9uS2V5ICYmIGlzVGltZVZhbGlkKGF0LCBwZXJtaXNzaW9uLnN0YXJ0c0F0LCBwZXJtaXNzaW9uLmV4cGlyZXNBdCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgYXN5bmMgcmVxdWlyZUFjY2VzcyhpbnB1dCwgLi4uYXJncykge1xuICAgICAgICBpZiAoIShhd2FpdCB0aGlzLmNhbkFjY2VzcyhpbnB1dCwgLi4uYXJncykpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQXV0aG9yaXphdGlvbkVycm9yKGBBY2Nlc3MgZGVuaWVkIGZvciAke2lucHV0LnBlcm1pc3Npb25LZXl9IG9uICR7aW5wdXQucmVzb3VyY2VQcm90ZWN0ZWRJZCA/PyBzY29wZUtleShpbnB1dC5zY29wZUtpbmQgPz8gU2NvcGVLaW5kLlJlc291cmNlLCBpbnB1dC5zY29wZUlkID8/IFwiXCIpfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGJ1aWxkQWNjZXNzQ29udGV4dCh0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgcGVybWlzc2lvbnMgPSBhc0FycmF5KGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubGlzdEVmZmVjdGl2ZVBlcm1pc3Npb25zPy4odGVuYW50SWQsIHByaW5jaXBhbElkKSk7XG4gICAgICAgIGNvbnN0IGdyYW50cyA9IGFzQXJyYXkoYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0UHJpbmNpcGFsR3JhbnRzPy4odGVuYW50SWQsIHByaW5jaXBhbElkKSk7XG4gICAgICAgIHJldHVybiBidWlsZEFjY2Vzc0NvbnRleHQoe1xuICAgICAgICAgICAgdGVuYW50SWQsXG4gICAgICAgICAgICBwcmluY2lwYWxJZCxcbiAgICAgICAgICAgIHBlcm1pc3Npb25zLFxuICAgICAgICAgICAgZ3JhbnRzLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgYnVpbGRBcmFuZ29Db250ZXh0KHRlbmFudElkLCBwcmluY2lwYWxJZCwgcGVybWlzc2lvbktleSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCBhY2Nlc3MgPSBhd2FpdCB0aGlzLmJ1aWxkQWNjZXNzQ29udGV4dCh0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIC4uLmFyZ3MpO1xuICAgICAgICBjb25zdCBhbGxvd2VkT3JnVW5pdElkcyA9IGFjY2Vzcy5hbGxvd2VkT3JnVW5pdElkc0J5UGVybWlzc2lvbltwZXJtaXNzaW9uS2V5XSA/PyBbXTtcbiAgICAgICAgY29uc3QgYWxsb3dlZFJlc291cmNlSWRzID0gYWNjZXNzLnJlc291cmNlR3JhbnRzLmZpbHRlcigoZ3JhbnQpID0+IGdyYW50LnBlcm1pc3Npb25LZXkgPT09IHBlcm1pc3Npb25LZXkpLm1hcCgoZ3JhbnQpID0+IGdyYW50LnJlc291cmNlSWQpO1xuICAgICAgICByZXR1cm4gYnVpbGRBcmFuZ29Db250ZXh0KHsgdGVuYW50SWQsIHByaW5jaXBhbElkLCBwZXJtaXNzaW9uS2V5LCBhbGxvd2VkT3JnVW5pdElkcywgYWxsb3dlZFJlc291cmNlSWRzIH0pO1xuICAgIH1cbiAgICBhc3luYyBidWlsZFFkcmFudEZpbHRlcih0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIHBlcm1pc3Npb25LZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgYWNjZXNzID0gYXdhaXQgdGhpcy5idWlsZEFjY2Vzc0NvbnRleHQodGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKTtcbiAgICAgICAgY29uc3QgYWxsb3dlZE9yZ1VuaXRJZHMgPSBhY2Nlc3MuYWxsb3dlZE9yZ1VuaXRJZHNCeVBlcm1pc3Npb25bcGVybWlzc2lvbktleV0gPz8gW107XG4gICAgICAgIGNvbnN0IGFsbG93ZWRSZXNvdXJjZUlkcyA9IGFjY2Vzcy5yZXNvdXJjZUdyYW50cy5maWx0ZXIoKGdyYW50KSA9PiBncmFudC5wZXJtaXNzaW9uS2V5ID09PSBwZXJtaXNzaW9uS2V5KS5tYXAoKGdyYW50KSA9PiBncmFudC5yZXNvdXJjZUlkKTtcbiAgICAgICAgcmV0dXJuIGJ1aWxkUWRyYW50RmlsdGVyKHsgdGVuYW50SWQsIHByaW5jaXBhbElkLCBwZXJtaXNzaW9uS2V5LCBhbGxvd2VkT3JnVW5pdElkcywgYWxsb3dlZFJlc291cmNlSWRzIH0pO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVlYVjBhSG91YzJWeWRtbGpaUzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMM055WXk5dVlXMWxjM0JoWTJWekwzTmxjblpwWTJWekwyRjFkR2g2TG5ObGNuWnBZMlV1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUMEZCVHl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU03UVVGRGNFUXNUMEZCVHl4RlFVRnZReXhyUWtGQmEwSXNSVUZCUlN4VFFVRlRMRVZCUVVVc2MwSkJRV2xDTzBGQlF6TkdMRTlCUVU4c1JVRkJSU3hQUVVGUExFVkJRVVVzYTBKQlFXdENMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzVjBGQlZ5eEZRVUZqTEhOQ1FVRnBRanRCUVVWMlNDeFRRVUZUTEZGQlFWRXNRMEZCUXl4VFFVRnZRaXhGUVVGRkxFOUJRV1U3U1VGRGNrUXNUMEZCVHl4SFFVRkhMRk5CUVZNc1NVRkJTU3hQUVVGUExFVkJRVVVzUTBGQlF6dEJRVU51UXl4RFFVRkRPMEZCUlVRc1RVRkJUU3hQUVVGUExGbEJRVms3U1VGSGRrSXNXVUZCV1N4alFVRm5ReXhGUVVGRk8xRkJRelZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRWRCUVVjc1YwRkJWeXhEUVVGRE8wbEJRMnBETEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRWEZDTEVWQlFVVXNSMEZCUnl4SlFVRlhPMUZCUTI1RUxFMUJRVTBzUlVGQlJTeEhRVUZITEV0QlFVc3NRMEZCUXl4RlFVRkZMRWxCUVVrc1NVRkJTU3hKUVVGSkxFVkJRVVVzUTBGQlF6dFJRVVZzUXl4SlFVRkpMRXRCUVVzc1EwRkJReXhUUVVGVExFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMWxCUTNKRExFMUJRVTBzVjBGQlZ5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhuUTBGQlowTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFVkJRVVVzUzBGQlN5eERRVUZETEZOQlFWTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRE9VZ3NUMEZCVHl4UFFVRlBMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVU01UWl4RFFVRkRMRlZCUVZVc1JVRkJSU3hGUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEdGQlFXRXNTMEZCU3l4TFFVRkxMRU5CUVVNc1lVRkJZU3hKUVVGSkxGZEJRVmNzUTBGQlF5eEZRVUZGTEVWQlFVVXNWVUZCVlN4RFFVRkRMRkZCUVZFc1JVRkJSU3hWUVVGVkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlF5OUlMRU5CUVVNN1VVRkRTaXhEUVVGRE8xRkJSVVFzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4dFFrRkJiVUk3V1VGQlJTeFBRVUZQTEV0QlFVc3NRMEZCUXp0UlFVVTNReXhOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1dVRkJXU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNSVUZCUlN4TFFVRkxMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXp0UlFVTnNSeXhKUVVGSkxFTkJRVU1zVVVGQlVUdFpRVUZGTEU5QlFVOHNTMEZCU3l4RFFVRkRPMUZCUXpWQ0xFbEJRVWtzVVVGQlVTeERRVUZETEZGQlFWRXNTMEZCU3l4TFFVRkxMRU5CUVVNc1VVRkJVVHRaUVVGRkxFOUJRVThzUzBGQlN5eERRVUZETzFGQlJYWkVMRWxCUVVrc1VVRkJVU3hEUVVGRExHZENRVUZuUWl4TFFVRkxMRXRCUVVzc1EwRkJReXhYUVVGWE8xbEJRVVVzVDBGQlR5eEpRVUZKTEVOQlFVTTdVVUZGYWtVc1RVRkJUU3hOUVVGTkxFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFVkJRVVVzUzBGQlN5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlEyNUlMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4TFFVRkxMRXRCUVVzc1EwRkJReXhYUVVGWExFbEJRVWtzUzBGQlN5eERRVUZETEdGQlFXRXNTMEZCU3l4TFFVRkxMRU5CUVVNc1lVRkJZU3hKUVVGSkxGZEJRVmNzUTBGQlF5eEZRVUZGTEVWQlFVVXNTMEZCU3l4RFFVRkRMRkZCUVZFc1JVRkJSU3hMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlEzUktMRU5CUVVNN1VVRkRSaXhKUVVGSkxFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXp0WlFVRkZMRTlCUVU4c1NVRkJTU3hEUVVGRE8xRkJSVzVETEUxQlFVMHNWVUZCVlN4SFFVRkhMRkZCUVZFc1EwRkJReXhWUVVGVkxFTkJRVU03VVVGRGRrTXNTVUZCU1N4VlFVRlZMRXRCUVVzc2EwSkJRV3RDTEVOQlFVTXNUMEZCVHl4SlFVRkpMRlZCUVZVc1MwRkJTeXhyUWtGQmEwSXNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJRenRaUVVNdlJpeFBRVUZQTEV0QlFVc3NRMEZCUXp0UlFVTm1MRU5CUVVNN1VVRkZSQ3hKUVVGSkxGVkJRVlVzUzBGQlN5eHJRa0ZCYTBJc1EwRkJReXhQUVVGUExFbEJRVWtzVlVGQlZTeExRVUZMTEd0Q1FVRnJRaXhEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzFsQlF6bEdMRTFCUVUwc2IwSkJRVzlDTEVkQlFVY3NUMEZCVHl4RFFVTnNReXhOUVVGTkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNaME5CUVdkRExFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RlFVRkZMRk5CUVZNc1EwRkJReXhQUVVGUExFVkJRVVVzVVVGQlVTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVTnFTQ3hEUVVGRE8xbEJRMFlzVDBGQlR5eHZRa0ZCYjBJc1EwRkJReXhKUVVGSkxFTkJRemxDTEVOQlFVTXNWVUZCVlN4RlFVRkZMRVZCUVVVc1EwRkJReXhWUVVGVkxFTkJRVU1zWVVGQllTeExRVUZMTEV0QlFVc3NRMEZCUXl4aFFVRmhMRWxCUVVrc1YwRkJWeXhEUVVGRExFVkJRVVVzUlVGQlJTeFZRVUZWTEVOQlFVTXNVVUZCVVN4RlFVRkZMRlZCUVZVc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGREwwZ3NRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkZSQ3hKUVVGSkxGVkJRVlVzUzBGQlN5eHJRa0ZCYTBJc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dFpRVU0zUXl4TlFVRk5MRzlDUVVGdlFpeEhRVUZITEU5QlFVOHNRMEZEYkVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEdkRFFVRm5ReXhGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNSVUZCUlN4VFFVRlRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZETlVjc1EwRkJRenRaUVVOR0xFOUJRVThzYjBKQlFXOUNMRU5CUVVNc1NVRkJTU3hEUVVNNVFpeERRVUZETEZWQlFWVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExHRkJRV0VzUzBGQlN5eExRVUZMTEVOQlFVTXNZVUZCWVN4SlFVRkpMRmRCUVZjc1EwRkJReXhGUVVGRkxFVkJRVVVzVlVGQlZTeERRVUZETEZGQlFWRXNSVUZCUlN4VlFVRlZMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJReTlJTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUlVRc1QwRkJUeXhMUVVGTExFTkJRVU03U1VGRFppeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR0ZCUVdFc1EwRkJReXhMUVVGeFFpeEZRVUZGTEVkQlFVY3NTVUZCVnp0UlFVTjJSQ3hKUVVGSkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUXpWRExFMUJRVTBzU1VGQlNTeHJRa0ZCYTBJc1EwRkRNVUlzY1VKQlFYRkNMRXRCUVVzc1EwRkJReXhoUVVGaExFOUJRVThzUzBGQlN5eERRVUZETEcxQ1FVRnRRaXhKUVVGSkxGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNVMEZCVXl4SlFVRkpMRk5CUVZNc1EwRkJReXhSUVVGUkxFVkJRVVVzUzBGQlN5eERRVUZETEU5QlFVOHNTVUZCU1N4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVOdVNpeERRVUZETzFGQlEwb3NRMEZCUXp0SlFVTklMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1VVRkJaMElzUlVGQlJTeFhRVUZ0UWl4RlFVRkZMRWRCUVVjc1NVRkJWenRSUVVNMVJTeE5RVUZOTEZkQlFWY3NSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEhkQ1FVRjNRaXhGUVVGRkxFTkJRVU1zVVVGQlVTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRkRWNzVFVGQlRTeE5RVUZOTEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eHRRa0ZCYlVJc1JVRkJSU3hEUVVGRExGRkJRVkVzUlVGQlJTeFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpWR0xFOUJRVThzYTBKQlFXdENMRU5CUVVNN1dVRkRlRUlzVVVGQlVUdFpRVU5TTEZkQlFWYzdXVUZEV0N4WFFVRlhPMWxCUTFnc1RVRkJUVHRUUVVOUUxFTkJRVU1zUTBGQlF6dEpRVU5NTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNVVUZCWjBJc1JVRkJSU3hYUVVGdFFpeEZRVUZGTEdGQlFYRkNMRVZCUVVVc1IwRkJSeXhKUVVGWE8xRkJRMjVITEUxQlFVMHNUVUZCVFN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hYUVVGWExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTTNSU3hOUVVGTkxHbENRVUZwUWl4SFFVRkhMRTFCUVUwc1EwRkJReXcyUWtGQk5rSXNRMEZCUXl4aFFVRmhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU03VVVGRGNFWXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eE5RVUZOTEVOQlFVTXNZMEZCWXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMR0ZCUVdFc1MwRkJTeXhoUVVGaExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTXpTU3hQUVVGUExHdENRVUZyUWl4RFFVRkRMRVZCUVVVc1VVRkJVU3hGUVVGRkxGZEJRVmNzUlVGQlJTeGhRVUZoTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRemRITEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNVVUZCWjBJc1JVRkJSU3hYUVVGdFFpeEZRVUZGTEdGQlFYRkNMRVZCUVVVc1IwRkJSeXhKUVVGWE8xRkJRMnhITEUxQlFVMHNUVUZCVFN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hYUVVGWExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTTNSU3hOUVVGTkxHbENRVUZwUWl4SFFVRkhMRTFCUVUwc1EwRkJReXcyUWtGQk5rSXNRMEZCUXl4aFFVRmhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU03VVVGRGNFWXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eE5RVUZOTEVOQlFVTXNZMEZCWXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMR0ZCUVdFc1MwRkJTeXhoUVVGaExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTXpTU3hQUVVGUExHbENRVUZwUWl4RFFVRkRMRVZCUVVVc1VVRkJVU3hGUVVGRkxGZEJRVmNzUlVGQlJTeGhRVUZoTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRelZITEVOQlFVTTdRMEZEUmlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lFRjFkR2h2Y21sNllYUnBiMjVGY25KdmNpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZZMjl5WlZ3aU8xeHVhVzF3YjNKMElIc2dRWFYwYUhwRVlYUmhVMjkxY21ObGN5d2dRMkZ1UVdOalpYTnpTVzV3ZFhRc0lGSmxjMjkxY21ObFZtbHphV0pwYkdsMGVTd2dVMk52Y0dWTGFXNWtJSDBnWm5KdmJTQmNJaTR1TDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZXlCaGMwRnljbUY1TENCaWRXbHNaRUZqWTJWemMwTnZiblJsZUhRc0lHSjFhV3hrUVhKaGJtZHZRMjl1ZEdWNGRDd2dZblZwYkdSUlpISmhiblJHYVd4MFpYSXNJR2x6VkdsdFpWWmhiR2xrTENCeVpXeGhkR2x2Ymtsa0lIMGdabkp2YlNCY0lpNHVMM1YwYVd4elhDSTdYRzVjYm1aMWJtTjBhVzl1SUhOamIzQmxTMlY1S0hOamIzQmxTMmx1WkRvZ1UyTnZjR1ZMYVc1a0xDQnpZMjl3WlVsa09pQnpkSEpwYm1jcE9pQnpkSEpwYm1jZ2UxeHVJQ0J5WlhSMWNtNGdZQ1I3YzJOdmNHVkxhVzVrZlRva2UzTmpiM0JsU1dSOVlEdGNibjFjYmx4dVpYaHdiM0owSUdOc1lYTnpJRUYxZEdoNlUyVnlkbWxqWlNCN1hHNGdJSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2daR0YwWVZOdmRYSmpaWE02SUVGMWRHaDZSR0YwWVZOdmRYSmpaWE03WEc1Y2JpQWdZMjl1YzNSeWRXTjBiM0lvWkdGMFlWTnZkWEpqWlhNNklFRjFkR2g2UkdGMFlWTnZkWEpqWlhNZ1BTQjdmU2tnZTF4dUlDQWdJSFJvYVhNdVpHRjBZVk52ZFhKalpYTWdQU0JrWVhSaFUyOTFjbU5sY3p0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdOaGJrRmpZMlZ6Y3locGJuQjFkRG9nUTJGdVFXTmpaWE56U1c1d2RYUXNJQzR1TG1GeVozTTZJR0Z1ZVZ0ZEtUb2dVSEp2YldselpUeGliMjlzWldGdVBpQjdYRzRnSUNBZ1kyOXVjM1FnWVhRZ1BTQnBibkIxZEM1aGRDQS9QeUJ1WlhjZ1JHRjBaU2dwTzF4dVhHNGdJQ0FnYVdZZ0tHbHVjSFYwTG5OamIzQmxTMmx1WkNBbUppQnBibkIxZEM1elkyOXdaVWxrS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J3WlhKdGFYTnphVzl1Y3lBOUlHRjNZV2wwSUhSb2FYTXVaR0YwWVZOdmRYSmpaWE11YkdsemRFVm1abVZqZEdsMlpWQmxjbTFwYzNOcGIyNXpSbTl5VTJOdmNHVS9MaWhwYm5CMWRDNTBaVzVoYm5SSlpDd2dhVzV3ZFhRdWMyTnZjR1ZMYVc1a0xDQnBibkIxZEM1elkyOXdaVWxrS1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJoYzBGeWNtRjVLSEJsY20xcGMzTnBiMjV6S1M1emIyMWxLRnh1SUNBZ0lDQWdJQ0FvY0dWeWJXbHpjMmx2YmlrZ1BUNGdjR1Z5YldsemMybHZiaTV3WlhKdGFYTnphVzl1UzJWNUlEMDlQU0JwYm5CMWRDNXdaWEp0YVhOemFXOXVTMlY1SUNZbUlHbHpWR2x0WlZaaGJHbGtLR0YwTENCd1pYSnRhWE56YVc5dUxuTjBZWEowYzBGMExDQndaWEp0YVhOemFXOXVMbVY0Y0dseVpYTkJkQ2xjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0NGcGJuQjFkQzV5WlhOdmRYSmpaVkJ5YjNSbFkzUmxaRWxrS1NCeVpYUjFjbTRnWm1Gc2MyVTdYRzVjYmlBZ0lDQmpiMjV6ZENCeVpYTnZkWEpqWlNBOUlHRjNZV2wwSUhSb2FYTXVaR0YwWVZOdmRYSmpaWE11Ykc5aFpGSmxjMjkxY21ObFB5NG9hVzV3ZFhRdWRHVnVZVzUwU1dRc0lHbHVjSFYwTG5KbGMyOTFjbU5sVUhKdmRHVmpkR1ZrU1dRcE8xeHVJQ0FnSUdsbUlDZ2hjbVZ6YjNWeVkyVXBJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0JwWmlBb2NtVnpiM1Z5WTJVdWRHVnVZVzUwU1dRZ0lUMDlJR2x1Y0hWMExuUmxibUZ1ZEVsa0tTQnlaWFIxY200Z1ptRnNjMlU3WEc1Y2JpQWdJQ0JwWmlBb2NtVnpiM1Z5WTJVdWIzZHVaWEpRY21sdVkybHdZV3hKWkNBOVBUMGdhVzV3ZFhRdWNISnBibU5wY0dGc1NXUXBJSEpsZEhWeWJpQjBjblZsTzF4dVhHNGdJQ0FnWTI5dWMzUWdaM0poYm5SeklEMGdZWE5CY25KaGVTaGhkMkZwZENCMGFHbHpMbVJoZEdGVGIzVnlZMlZ6TG14cGMzUlNaWE52ZFhKalpVZHlZVzUwY3o4dUtHbHVjSFYwTG5SbGJtRnVkRWxrTENCcGJuQjFkQzV5WlhOdmRYSmpaVkJ5YjNSbFkzUmxaRWxrS1NrdVptbHNkR1Z5S0Z4dUlDQWdJQ0FnS0dkeVlXNTBLU0E5UGlCbmNtRnVkQzV3Y21sdVkybHdZV3hKWkNBOVBUMGdhVzV3ZFhRdWNISnBibU5wY0dGc1NXUWdKaVlnWjNKaGJuUXVjR1Z5YldsemMybHZia3RsZVNBOVBUMGdhVzV3ZFhRdWNHVnliV2x6YzJsdmJrdGxlU0FtSmlCcGMxUnBiV1ZXWVd4cFpDaGhkQ3dnWjNKaGJuUXVjM1JoY25SelFYUXNJR2R5WVc1MExtVjRjR2x5WlhOQmRDbGNiaUFnSUNBcE8xeHVJQ0FnSUdsbUlDaG5jbUZ1ZEhNdWJHVnVaM1JvSUQ0Z01Da2djbVYwZFhKdUlIUnlkV1U3WEc1Y2JpQWdJQ0JqYjI1emRDQjJhWE5wWW1sc2FYUjVJRDBnY21WemIzVnlZMlV1ZG1semFXSnBiR2wwZVR0Y2JpQWdJQ0JwWmlBb2RtbHphV0pwYkdsMGVTQTlQVDBnVW1WemIzVnlZMlZXYVhOcFltbHNhWFI1TGxCeWFYWmhkR1VnZkh3Z2RtbHphV0pwYkdsMGVTQTlQVDBnVW1WemIzVnlZMlZXYVhOcFltbHNhWFI1TGxKbGMyOTFjbU5sUVdOc0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0hacGMybGlhV3hwZEhrZ1BUMDlJRkpsYzI5MWNtTmxWbWx6YVdKcGJHbDBlUzVQY21kVmJtbDBJSHg4SUhacGMybGlhV3hwZEhrZ1BUMDlJRkpsYzI5MWNtTmxWbWx6YVdKcGJHbDBlUzVQY21kVGRXSjBjbVZsS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JsWm1abFkzUnBkbVZRWlhKdGFYTnphVzl1Y3lBOUlHRnpRWEp5WVhrb1hHNGdJQ0FnSUNBZ0lHRjNZV2wwSUhSb2FYTXVaR0YwWVZOdmRYSmpaWE11YkdsemRFVm1abVZqZEdsMlpWQmxjbTFwYzNOcGIyNXpSbTl5VTJOdmNHVS9MaWhwYm5CMWRDNTBaVzVoYm5SSlpDd2dVMk52Y0dWTGFXNWtMazl5WjFWdWFYUXNJSEpsYzI5MWNtTmxMbTl5WjFWdWFYUkpaQ2xjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdaV1ptWldOMGFYWmxVR1Z5YldsemMybHZibk11YzI5dFpTaGNiaUFnSUNBZ0lDQWdLSEJsY20xcGMzTnBiMjRwSUQwK0lIQmxjbTFwYzNOcGIyNHVjR1Z5YldsemMybHZia3RsZVNBOVBUMGdhVzV3ZFhRdWNHVnliV2x6YzJsdmJrdGxlU0FtSmlCcGMxUnBiV1ZXWVd4cFpDaGhkQ3dnY0dWeWJXbHpjMmx2Ymk1emRHRnlkSE5CZEN3Z2NHVnliV2x6YzJsdmJpNWxlSEJwY21WelFYUXBYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2gyYVhOcFltbHNhWFI1SUQwOVBTQlNaWE52ZFhKalpWWnBjMmxpYVd4cGRIa3VWR1Z1WVc1MEtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCbFptWmxZM1JwZG1WUVpYSnRhWE56YVc5dWN5QTlJR0Z6UVhKeVlYa29YRzRnSUNBZ0lDQWdJR0YzWVdsMElIUm9hWE11WkdGMFlWTnZkWEpqWlhNdWJHbHpkRVZtWm1WamRHbDJaVkJsY20xcGMzTnBiMjV6Um05eVUyTnZjR1UvTGlocGJuQjFkQzUwWlc1aGJuUkpaQ3dnVTJOdmNHVkxhVzVrTGxSbGJtRnVkQ3dnYVc1d2RYUXVkR1Z1WVc1MFNXUXBYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdjbVYwZFhKdUlHVm1abVZqZEdsMlpWQmxjbTFwYzNOcGIyNXpMbk52YldVb1hHNGdJQ0FnSUNBZ0lDaHdaWEp0YVhOemFXOXVLU0E5UGlCd1pYSnRhWE56YVc5dUxuQmxjbTFwYzNOcGIyNUxaWGtnUFQwOUlHbHVjSFYwTG5CbGNtMXBjM05wYjI1TFpYa2dKaVlnYVhOVWFXMWxWbUZzYVdRb1lYUXNJSEJsY20xcGMzTnBiMjR1YzNSaGNuUnpRWFFzSUhCbGNtMXBjM05wYjI0dVpYaHdhWEpsYzBGMEtWeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QnlaWEYxYVhKbFFXTmpaWE56S0dsdWNIVjBPaUJEWVc1QlkyTmxjM05KYm5CMWRDd2dMaTR1WVhKbmN6b2dZVzU1VzEwcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JwWmlBb0lTaGhkMkZwZENCMGFHbHpMbU5oYmtGalkyVnpjeWhwYm5CMWRDd2dMaTR1WVhKbmN5a3BLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUVhWMGFHOXlhWHBoZEdsdmJrVnljbTl5S0Z4dUlDQWdJQ0FnSUNCZ1FXTmpaWE56SUdSbGJtbGxaQ0JtYjNJZ0pIdHBibkIxZEM1d1pYSnRhWE56YVc5dVMyVjVmU0J2YmlBa2UybHVjSFYwTG5KbGMyOTFjbU5sVUhKdmRHVmpkR1ZrU1dRZ1B6OGdjMk52Y0dWTFpYa29hVzV3ZFhRdWMyTnZjR1ZMYVc1a0lEOC9JRk5qYjNCbFMybHVaQzVTWlhOdmRYSmpaU3dnYVc1d2RYUXVjMk52Y0dWSlpDQS9QeUJjSWx3aUtYMWdYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHSjFhV3hrUVdOalpYTnpRMjl1ZEdWNGRDaDBaVzVoYm5SSlpEb2djM1J5YVc1bkxDQndjbWx1WTJsd1lXeEpaRG9nYzNSeWFXNW5MQ0F1TGk1aGNtZHpPaUJoYm5sYlhTazZJRkJ5YjIxcGMyVThhVzF3YjNKMEtGd2lMaTR2ZEhsd1pYTmNJaWt1UVdOalpYTnpRMjl1ZEdWNGRENGdlMXh1SUNBZ0lHTnZibk4wSUhCbGNtMXBjM05wYjI1eklEMGdZWE5CY25KaGVTaGhkMkZwZENCMGFHbHpMbVJoZEdGVGIzVnlZMlZ6TG14cGMzUkZabVpsWTNScGRtVlFaWEp0YVhOemFXOXVjejh1S0hSbGJtRnVkRWxrTENCd2NtbHVZMmx3WVd4SlpDa3BPMXh1SUNBZ0lHTnZibk4wSUdkeVlXNTBjeUE5SUdGelFYSnlZWGtvWVhkaGFYUWdkR2hwY3k1a1lYUmhVMjkxY21ObGN5NXNhWE4wVUhKcGJtTnBjR0ZzUjNKaGJuUnpQeTRvZEdWdVlXNTBTV1FzSUhCeWFXNWphWEJoYkVsa0tTazdYRzRnSUNBZ2NtVjBkWEp1SUdKMWFXeGtRV05qWlhOelEyOXVkR1Y0ZENoN1hHNGdJQ0FnSUNCMFpXNWhiblJKWkN4Y2JpQWdJQ0FnSUhCeWFXNWphWEJoYkVsa0xGeHVJQ0FnSUNBZ2NHVnliV2x6YzJsdmJuTXNYRzRnSUNBZ0lDQm5jbUZ1ZEhNc1hHNGdJQ0FnZlNrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCaWRXbHNaRUZ5WVc1bmIwTnZiblJsZUhRb2RHVnVZVzUwU1dRNklITjBjbWx1Wnl3Z2NISnBibU5wY0dGc1NXUTZJSE4wY21sdVp5d2djR1Z5YldsemMybHZia3RsZVRvZ2MzUnlhVzVuTENBdUxpNWhjbWR6T2lCaGJubGJYU2tnZTF4dUlDQWdJR052Ym5OMElHRmpZMlZ6Y3lBOUlHRjNZV2wwSUhSb2FYTXVZblZwYkdSQlkyTmxjM05EYjI1MFpYaDBLSFJsYm1GdWRFbGtMQ0J3Y21sdVkybHdZV3hKWkN3Z0xpNHVZWEpuY3lrN1hHNGdJQ0FnWTI5dWMzUWdZV3hzYjNkbFpFOXlaMVZ1YVhSSlpITWdQU0JoWTJObGMzTXVZV3hzYjNkbFpFOXlaMVZ1YVhSSlpITkNlVkJsY20xcGMzTnBiMjViY0dWeWJXbHpjMmx2Ymt0bGVWMGdQejhnVzEwN1hHNGdJQ0FnWTI5dWMzUWdZV3hzYjNkbFpGSmxjMjkxY21ObFNXUnpJRDBnWVdOalpYTnpMbkpsYzI5MWNtTmxSM0poYm5SekxtWnBiSFJsY2lnb1ozSmhiblFwSUQwK0lHZHlZVzUwTG5CbGNtMXBjM05wYjI1TFpYa2dQVDA5SUhCbGNtMXBjM05wYjI1TFpYa3BMbTFoY0Nnb1ozSmhiblFwSUQwK0lHZHlZVzUwTG5KbGMyOTFjbU5sU1dRcE8xeHVJQ0FnSUhKbGRIVnliaUJpZFdsc1pFRnlZVzVuYjBOdmJuUmxlSFFvZXlCMFpXNWhiblJKWkN3Z2NISnBibU5wY0dGc1NXUXNJSEJsY20xcGMzTnBiMjVMWlhrc0lHRnNiRzkzWldSUGNtZFZibWwwU1dSekxDQmhiR3h2ZDJWa1VtVnpiM1Z5WTJWSlpITWdmU2s3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJpZFdsc1pGRmtjbUZ1ZEVacGJIUmxjaWgwWlc1aGJuUkpaRG9nYzNSeWFXNW5MQ0J3Y21sdVkybHdZV3hKWkRvZ2MzUnlhVzVuTENCd1pYSnRhWE56YVc5dVMyVjVPaUJ6ZEhKcGJtY3NJQzR1TG1GeVozTTZJR0Z1ZVZ0ZEtTQjdYRzRnSUNBZ1kyOXVjM1FnWVdOalpYTnpJRDBnWVhkaGFYUWdkR2hwY3k1aWRXbHNaRUZqWTJWemMwTnZiblJsZUhRb2RHVnVZVzUwU1dRc0lIQnlhVzVqYVhCaGJFbGtMQ0F1TGk1aGNtZHpLVHRjYmlBZ0lDQmpiMjV6ZENCaGJHeHZkMlZrVDNKblZXNXBkRWxrY3lBOUlHRmpZMlZ6Y3k1aGJHeHZkMlZrVDNKblZXNXBkRWxrYzBKNVVHVnliV2x6YzJsdmJsdHdaWEp0YVhOemFXOXVTMlY1WFNBL1B5QmJYVHRjYmlBZ0lDQmpiMjV6ZENCaGJHeHZkMlZrVW1WemIzVnlZMlZKWkhNZ1BTQmhZMk5sYzNNdWNtVnpiM1Z5WTJWSGNtRnVkSE11Wm1sc2RHVnlLQ2huY21GdWRDa2dQVDRnWjNKaGJuUXVjR1Z5YldsemMybHZia3RsZVNBOVBUMGdjR1Z5YldsemMybHZia3RsZVNrdWJXRndLQ2huY21GdWRDa2dQVDRnWjNKaGJuUXVjbVZ6YjNWeVkyVkpaQ2s3WEc0Z0lDQWdjbVYwZFhKdUlHSjFhV3hrVVdSeVlXNTBSbWxzZEdWeUtIc2dkR1Z1WVc1MFNXUXNJSEJ5YVc1amFYQmhiRWxrTENCd1pYSnRhWE56YVc5dVMyVjVMQ0JoYkd4dmQyVmtUM0puVlc1cGRFbGtjeXdnWVd4c2IzZGxaRkpsYzI5MWNtTmxTV1J6SUgwcE8xeHVJQ0I5WEc1OVhHNGlYWDA9Il19
101
+ //# sourceMappingURL=authz.service.js.map
102
+ //# sourceMappingURL=authz.service.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespaces/services/authz.service.cjs","sourceRoot":"","sources":["namespaces/services/authz.service.js"],"names":[],"mappings":"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"}
@@ -108,5 +108,5 @@ __decorate([
108
108
  __metadata("design:paramtypes", [Object, Object]),
109
109
  __metadata("design:returntype", Promise)
110
110
  ], BootstrapService.prototype, "bootstrapTenantFromTemplate", null);
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmFtZXNwYWNlcy9zZXJ2aWNlcy9ib290c3RyYXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLHNCQUFpQjtBQUt6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLHNCQUFpQjtBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHNUUsTUFBTSxPQUFPLGdCQUFnQjtJQUE3QjtRQUNVLGtCQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNwQyx5QkFBb0IsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFDbEQsbUJBQWMsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ3RDLDBCQUFxQixHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQUNwRCxnQkFBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEMsc0JBQWlCLEdBQUcsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQ2xELHFCQUFnQixHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUMxQyxzQkFBaUIsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDNUMsZ0JBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLDBCQUFxQixHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQUNwRCwwQkFBcUIsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDcEQsK0JBQTBCLEdBQUcsSUFBSSwwQkFBMEIsRUFBRSxDQUFDO0lBNkV4RSxDQUFDO0lBMUVPLEFBQU4sS0FBSyxDQUFDLDJCQUEyQixDQUMvQixRQUEyQixFQUMzQixHQUFHLElBQVc7UUFFZCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMvRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDL0IsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNqSSxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUFFLFFBQTRCLEVBQUUsT0FBeUIsRUFBRSxFQUFFO1lBQ3RGLE1BQU0sT0FBTyxHQUNYLFFBQVEsS0FBSyxTQUFTO2dCQUNwQixDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUM7Z0JBQ2hJLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUNuQztvQkFDRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7b0JBQ25CLGVBQWUsRUFBRSxRQUFRO29CQUN6QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7b0JBQ2xCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtvQkFDMUIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO29CQUM5QixlQUFlLEVBQUUsT0FBTyxDQUFDLFFBQVE7aUJBQ2xDLEVBQ0QsR0FBRyxJQUFJLENBQ1IsQ0FBQztZQUNSLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDM0MsTUFBTSxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxDQUFDO1FBRUYsTUFBTSxXQUFXLEdBQUcsTUFBTSxhQUFhLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6RSxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM3RSxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3BHLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBRWxHLEtBQUssTUFBTSxVQUFVLElBQUksUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFDRCxLQUFLLE1BQU0sSUFBSSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQyxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUNuRDtnQkFDRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQ25CLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztnQkFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO2FBQzlCLEVBQ0QsR0FBRyxJQUFJLENBQ1IsQ0FBQztZQUNGLEtBQUssTUFBTSxhQUFhLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNoRCxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLGFBQWEsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ2xHLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3ZHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FDekM7WUFDRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDbkIsV0FBVyxFQUFFLGNBQWMsQ0FBQyxFQUFFO1lBQzlCLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRTtZQUNwQixTQUFTLEVBQUUsU0FBUyxDQUFDLE9BQU87WUFDNUIsT0FBTyxFQUFFLFdBQVcsQ0FBQyxFQUFFO1lBQ3ZCLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLEVBQ0QsR0FBRyxJQUFJLENBQ1IsQ0FBQztRQUNGLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsY0FBYyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBRWpHLE9BQU87WUFDTCxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDbkIsYUFBYSxFQUFFLFdBQVcsQ0FBQyxFQUFFO1lBQzdCLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNyQixnQkFBZ0IsRUFBRSxjQUFjLENBQUMsRUFBRTtTQUNwQyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBMUVPO0lBREwsYUFBYSxFQUFFOzs7O21FQTBFZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyYW5zYWN0aW9uYWwgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB0eXBlIHtcbiAgQm9vdHN0cmFwT3JnVW5pdCxcbiAgQm9vdHN0cmFwVGVtcGxhdGUsXG59IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgTWVtYmVyc2hpcFN0YXR1cywgU2NvcGVLaW5kIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBUZW5hbnRTZXJ2aWNlIH0gZnJvbSBcIi4vdGVuYW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IFRlbmFudFByb2ZpbGVTZXJ2aWNlIH0gZnJvbSBcIi4vdGVuYW50LXByb2ZpbGUuc2VydmljZVwiO1xuaW1wb3J0IHsgT3JnVW5pdFNlcnZpY2UgfSBmcm9tIFwiLi9vcmctdW5pdC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBPcmdVbml0UHJvZmlsZVNlcnZpY2UgfSBmcm9tIFwiLi9vcmctdW5pdC1wcm9maWxlLnNlcnZpY2VcIjtcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSBcIi4vdXNlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBUZW5hbnRNZW1iZXJzaGlwU2VydmljZSB9IGZyb20gXCIuL3RlbmFudC1tZW1iZXJzaGlwLnNlcnZpY2VcIjtcbmltcG9ydCB7IFByaW5jaXBhbFNlcnZpY2UgfSBmcm9tIFwiLi9wcmluY2lwYWwuc2VydmljZVwiO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi9wZXJtaXNzaW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IFJvbGVTZXJ2aWNlIH0gZnJvbSBcIi4vcm9sZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBSb2xlUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi9yb2xlLXBlcm1pc3Npb24uc2VydmljZVwiO1xuaW1wb3J0IHsgUm9sZUFzc2lnbm1lbnRTZXJ2aWNlIH0gZnJvbSBcIi4vcm9sZS1hc3NpZ25tZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IEVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4vZWZmZWN0aXZlLXBlcm1pc3Npb24uc2VydmljZVwiO1xuaW1wb3J0IHsgcmVsYXRpb25JZCB9IGZyb20gXCIuLi91dGlsc1wiO1xuXG5leHBvcnQgY2xhc3MgQm9vdHN0cmFwU2VydmljZSB7XG4gIHByaXZhdGUgdGVuYW50U2VydmljZSA9IG5ldyBUZW5hbnRTZXJ2aWNlKCk7XG4gIHByaXZhdGUgdGVuYW50UHJvZmlsZVNlcnZpY2UgPSBuZXcgVGVuYW50UHJvZmlsZVNlcnZpY2UoKTtcbiAgcHJpdmF0ZSBvcmdVbml0U2VydmljZSA9IG5ldyBPcmdVbml0U2VydmljZSgpO1xuICBwcml2YXRlIG9yZ1VuaXRQcm9maWxlU2VydmljZSA9IG5ldyBPcmdVbml0UHJvZmlsZVNlcnZpY2UoKTtcbiAgcHJpdmF0ZSB1c2VyU2VydmljZSA9IG5ldyBVc2VyU2VydmljZSgpO1xuICBwcml2YXRlIG1lbWJlcnNoaXBTZXJ2aWNlID0gbmV3IFRlbmFudE1lbWJlcnNoaXBTZXJ2aWNlKCk7XG4gIHByaXZhdGUgcHJpbmNpcGFsU2VydmljZSA9IG5ldyBQcmluY2lwYWxTZXJ2aWNlKCk7XG4gIHByaXZhdGUgcGVybWlzc2lvblNlcnZpY2UgPSBuZXcgUGVybWlzc2lvblNlcnZpY2UoKTtcbiAgcHJpdmF0ZSByb2xlU2VydmljZSA9IG5ldyBSb2xlU2VydmljZSgpO1xuICBwcml2YXRlIHJvbGVQZXJtaXNzaW9uU2VydmljZSA9IG5ldyBSb2xlUGVybWlzc2lvblNlcnZpY2UoKTtcbiAgcHJpdmF0ZSByb2xlQXNzaWdubWVudFNlcnZpY2UgPSBuZXcgUm9sZUFzc2lnbm1lbnRTZXJ2aWNlKCk7XG4gIHByaXZhdGUgZWZmZWN0aXZlUGVybWlzc2lvblNlcnZpY2UgPSBuZXcgRWZmZWN0aXZlUGVybWlzc2lvblNlcnZpY2UoKTtcblxuICBAdHJhbnNhY3Rpb25hbCgpXG4gIGFzeW5jIGJvb3RzdHJhcFRlbmFudEZyb21UZW1wbGF0ZShcbiAgICB0ZW1wbGF0ZTogQm9vdHN0cmFwVGVtcGxhdGUsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTx7IHRlbmFudElkOiBzdHJpbmc7IHJvb3RPcmdVbml0SWQ6IHN0cmluZzsgb3duZXJVc2VySWQ6IHN0cmluZzsgb3duZXJQcmluY2lwYWxJZDogc3RyaW5nIH0+IHtcbiAgICBjb25zdCB0ZW5hbnQgPSBhd2FpdCB0aGlzLnRlbmFudFNlcnZpY2UuY3JlYXRlVGVuYW50KHRlbXBsYXRlLnRlbmFudCwgLi4uYXJncyk7XG4gICAgaWYgKHRlbXBsYXRlLnRlbmFudC5wcm9maWxlS2V5KSB7XG4gICAgICBhd2FpdCB0aGlzLnRlbmFudFByb2ZpbGVTZXJ2aWNlLmNyZWF0ZVByb2ZpbGUodGVuYW50LmlkLCB0ZW1wbGF0ZS50ZW5hbnQucHJvZmlsZUtleSwgdGVtcGxhdGUudGVuYW50LnByb2ZpbGVNZXRhZGF0YSwgLi4uYXJncyk7XG4gICAgfVxuXG4gICAgY29uc3QgY3JlYXRlT3JnVHJlZSA9IGFzeW5jIChwYXJlbnRJZDogc3RyaW5nIHwgdW5kZWZpbmVkLCBvcmdVbml0OiBCb290c3RyYXBPcmdVbml0KSA9PiB7XG4gICAgICBjb25zdCBjcmVhdGVkID1cbiAgICAgICAgcGFyZW50SWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gYXdhaXQgdGhpcy5vcmdVbml0U2VydmljZS5jcmVhdGVSb290KHRlbmFudC5pZCwgb3JnVW5pdC5uYW1lLCBvcmdVbml0Lm1ldGFkYXRhLCBvcmdVbml0LnByb2ZpbGVLZXksIG9yZ1VuaXQubWV0YWRhdGEsIC4uLmFyZ3MpXG4gICAgICAgICAgOiBhd2FpdCB0aGlzLm9yZ1VuaXRTZXJ2aWNlLmNyZWF0ZUNoaWxkKFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGVuYW50SWQ6IHRlbmFudC5pZCxcbiAgICAgICAgICAgICAgICBwYXJlbnRPcmdVbml0SWQ6IHBhcmVudElkLFxuICAgICAgICAgICAgICAgIG5hbWU6IG9yZ1VuaXQubmFtZSxcbiAgICAgICAgICAgICAgICBtZXRhZGF0YTogb3JnVW5pdC5tZXRhZGF0YSxcbiAgICAgICAgICAgICAgICBwcm9maWxlS2V5OiBvcmdVbml0LnByb2ZpbGVLZXksXG4gICAgICAgICAgICAgICAgcHJvZmlsZU1ldGFkYXRhOiBvcmdVbml0Lm1ldGFkYXRhLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAuLi5hcmdzXG4gICAgICAgICAgICApO1xuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBvcmdVbml0LmNoaWxkcmVuID8/IFtdKSB7XG4gICAgICAgIGF3YWl0IGNyZWF0ZU9yZ1RyZWUoY3JlYXRlZC5pZCwgY2hpbGQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHJvb3RPcmdVbml0ID0gYXdhaXQgY3JlYXRlT3JnVHJlZSh1bmRlZmluZWQsIHRlbXBsYXRlLnJvb3RPcmdVbml0KTtcbiAgICBjb25zdCBvd25lciA9IGF3YWl0IHRoaXMudXNlclNlcnZpY2UuY3JlYXRlVXNlcih0ZW1wbGF0ZS5vd25lclVzZXIsIC4uLmFyZ3MpO1xuICAgIGF3YWl0IHRoaXMubWVtYmVyc2hpcFNlcnZpY2UuYWRkVXNlclRvVGVuYW50KHRlbmFudC5pZCwgb3duZXIuaWQsIE1lbWJlcnNoaXBTdGF0dXMuQWN0aXZlLCAuLi5hcmdzKTtcbiAgICBjb25zdCBvd25lclByaW5jaXBhbCA9IGF3YWl0IHRoaXMucHJpbmNpcGFsU2VydmljZS5nZXRVc2VyUHJpbmNpcGFsKHRlbmFudC5pZCwgb3duZXIuaWQsIC4uLmFyZ3MpO1xuXG4gICAgZm9yIChjb25zdCBwZXJtaXNzaW9uIG9mIHRlbXBsYXRlLnBlcm1pc3Npb25zKSB7XG4gICAgICBhd2FpdCB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmNyZWF0ZVBlcm1pc3Npb24ocGVybWlzc2lvbiwgLi4uYXJncyk7XG4gICAgfVxuICAgIGZvciAoY29uc3Qgcm9sZSBvZiB0ZW1wbGF0ZS5yb2xlcykge1xuICAgICAgY29uc3QgY3JlYXRlZFJvbGUgPSBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmNyZWF0ZVJvbGUoXG4gICAgICAgIHtcbiAgICAgICAgICB0ZW5hbnRJZDogdGVuYW50LmlkLFxuICAgICAgICAgIGtleTogcm9sZS5rZXksXG4gICAgICAgICAgbmFtZTogcm9sZS5uYW1lLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiByb2xlLmRlc2NyaXB0aW9uLFxuICAgICAgICB9LFxuICAgICAgICAuLi5hcmdzXG4gICAgICApO1xuICAgICAgZm9yIChjb25zdCBwZXJtaXNzaW9uS2V5IG9mIHJvbGUucGVybWlzc2lvbktleXMpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5yb2xlUGVybWlzc2lvblNlcnZpY2UuYWRkUGVybWlzc2lvbktleVRvUm9sZShjcmVhdGVkUm9sZS5pZCwgcGVybWlzc2lvbktleSwgLi4uYXJncyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb3duZXJSb2xlID0gYXdhaXQgdGhpcy5yb2xlU2VydmljZS5nZXRUZW5hbnRSb2xlQnlLZXkodGVuYW50LmlkLCB0ZW1wbGF0ZS5vd25lclJvbGVLZXksIC4uLmFyZ3MpO1xuICAgIGF3YWl0IHRoaXMucm9sZUFzc2lnbm1lbnRTZXJ2aWNlLmFzc2lnblJvbGUoXG4gICAgICB7XG4gICAgICAgIHRlbmFudElkOiB0ZW5hbnQuaWQsXG4gICAgICAgIHByaW5jaXBhbElkOiBvd25lclByaW5jaXBhbC5pZCxcbiAgICAgICAgcm9sZUlkOiBvd25lclJvbGUuaWQsXG4gICAgICAgIHNjb3BlS2luZDogU2NvcGVLaW5kLk9yZ1VuaXQsXG4gICAgICAgIHNjb3BlSWQ6IHJvb3RPcmdVbml0LmlkLFxuICAgICAgICBpbmhlcml0RG93bjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlLnJlYnVpbGRGb3JQcmluY2lwYWwodGVuYW50LmlkLCBvd25lclByaW5jaXBhbC5pZCwgLi4uYXJncyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdGVuYW50SWQ6IHRlbmFudC5pZCxcbiAgICAgIHJvb3RPcmdVbml0SWQ6IHJvb3RPcmdVbml0LmlkLFxuICAgICAgb3duZXJVc2VySWQ6IG93bmVyLmlkLFxuICAgICAgb3duZXJQcmluY2lwYWxJZDogb3duZXJQcmluY2lwYWwuaWQsXG4gICAgfTtcbiAgfVxufVxuIl19
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJib290c3RyYXAuc2VydmljZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJLFVBQVUsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJO0lBQ2pGLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0gsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksT0FBTyxPQUFPLENBQUMsUUFBUSxLQUFLLFVBQVU7UUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQzs7UUFDMUgsS0FBSyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUFFLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFB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LENBQUMsRUFBRSxFQUFFLGNBQWMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNqRyxPQUFPO1lBQ0gsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ25CLGFBQWEsRUFBRSxXQUFXLENBQUMsRUFBRTtZQUM3QixXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDckIsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLEVBQUU7U0FDdEMsQ0FBQztJQUNOLENBQUM7Q0FDSjtBQXZFRCw0Q0F1RUM7QUFDRCxVQUFVLENBQUM7SUFDUCxJQUFBLHdCQUFhLEdBQUU7SUFDZixVQUFVLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztJQUNuQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakQsVUFBVSxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQztDQUMzQyxFQUFFLGdCQUFnQixDQUFDLFNBQVMsRUFBRSw2QkFBNkIsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNwRSw4MFdBQTgwVyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlY29yYXRlID0gKHRoaXMgJiYgdGhpcy5fX2RlY29yYXRlKSB8fCBmdW5jdGlvbiAoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufTtcbnZhciBfX21ldGFkYXRhID0gKHRoaXMgJiYgdGhpcy5fX21ldGFkYXRhKSB8fCBmdW5jdGlvbiAoaywgdikge1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTtcbn07XG5pbXBvcnQgeyB0cmFuc2FjdGlvbmFsIH0gZnJvbSBcIi4vLi4vdXRpbHMuanNcIjtcbmltcG9ydCB7IE1lbWJlcnNoaXBTdGF0dXMsIFNjb3BlS2luZCB9IGZyb20gXCIuLy4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBUZW5hbnRTZXJ2aWNlIH0gZnJvbSBcIi4vdGVuYW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IFRlbmFudFByb2ZpbGVTZXJ2aWNlIH0gZnJvbSBcIi4vdGVuYW50LXByb2ZpbGUuc2VydmljZVwiO1xuaW1wb3J0IHsgT3JnVW5pdFNlcnZpY2UgfSBmcm9tIFwiLi9vcmctdW5pdC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBPcmdVbml0UHJvZmlsZVNlcnZpY2UgfSBmcm9tIFwiLi9vcmctdW5pdC1wcm9maWxlLnNlcnZpY2VcIjtcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSBcIi4vdXNlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBUZW5hbnRNZW1iZXJzaGlwU2VydmljZSB9IGZyb20gXCIuL3RlbmFudC1tZW1iZXJzaGlwLnNlcnZpY2VcIjtcbmltcG9ydCB7IFByaW5jaXBhbFNlcnZpY2UgfSBmcm9tIFwiLi9wcmluY2lwYWwuc2VydmljZVwiO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi9wZXJtaXNzaW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IFJvbGVTZXJ2aWNlIH0gZnJvbSBcIi4vcm9sZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBSb2xlUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi9yb2xlLXBlcm1pc3Npb24uc2VydmljZVwiO1xuaW1wb3J0IHsgUm9sZUFzc2lnbm1lbnRTZXJ2aWNlIH0gZnJvbSBcIi4vcm9sZS1hc3NpZ25tZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IEVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4vZWZmZWN0aXZlLXBlcm1pc3Npb24uc2VydmljZVwiO1xuZXhwb3J0IGNsYXNzIEJvb3RzdHJhcFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnRlbmFudFNlcnZpY2UgPSBuZXcgVGVuYW50U2VydmljZSgpO1xuICAgICAgICB0aGlzLnRlbmFudFByb2ZpbGVTZXJ2aWNlID0gbmV3IFRlbmFudFByb2ZpbGVTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMub3JnVW5pdFNlcnZpY2UgPSBuZXcgT3JnVW5pdFNlcnZpY2UoKTtcbiAgICAgICAgdGhpcy5vcmdVbml0UHJvZmlsZVNlcnZpY2UgPSBuZXcgT3JnVW5pdFByb2ZpbGVTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMudXNlclNlcnZpY2UgPSBuZXcgVXNlclNlcnZpY2UoKTtcbiAgICAgICAgdGhpcy5tZW1iZXJzaGlwU2VydmljZSA9IG5ldyBUZW5hbnRNZW1iZXJzaGlwU2VydmljZSgpO1xuICAgICAgICB0aGlzLnByaW5jaXBhbFNlcnZpY2UgPSBuZXcgUHJpbmNpcGFsU2VydmljZSgpO1xuICAgICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlID0gbmV3IFBlcm1pc3Npb25TZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMucm9sZVNlcnZpY2UgPSBuZXcgUm9sZVNlcnZpY2UoKTtcbiAgICAgICAgdGhpcy5yb2xlUGVybWlzc2lvblNlcnZpY2UgPSBuZXcgUm9sZVBlcm1pc3Npb25TZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMucm9sZUFzc2lnbm1lbnRTZXJ2aWNlID0gbmV3IFJvbGVBc3NpZ25tZW50U2VydmljZSgpO1xuICAgICAgICB0aGlzLmVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlID0gbmV3IEVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlKCk7XG4gICAgfVxuICAgIGFzeW5jIGJvb3RzdHJhcFRlbmFudEZyb21UZW1wbGF0ZSh0ZW1wbGF0ZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB0ZW5hbnQgPSBhd2FpdCB0aGlzLnRlbmFudFNlcnZpY2UuY3JlYXRlVGVuYW50KHRlbXBsYXRlLnRlbmFudCwgLi4uYXJncyk7XG4gICAgICAgIGlmICh0ZW1wbGF0ZS50ZW5hbnQucHJvZmlsZUtleSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy50ZW5hbnRQcm9maWxlU2VydmljZS5jcmVhdGVQcm9maWxlKHRlbmFudC5pZCwgdGVtcGxhdGUudGVuYW50LnByb2ZpbGVLZXksIHRlbXBsYXRlLnRlbmFudC5wcm9maWxlTWV0YWRhdGEsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNyZWF0ZU9yZ1RyZWUgPSBhc3luYyAocGFyZW50SWQsIG9yZ1VuaXQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBwYXJlbnRJZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyBhd2FpdCB0aGlzLm9yZ1VuaXRTZXJ2aWNlLmNyZWF0ZVJvb3QodGVuYW50LmlkLCBvcmdVbml0Lm5hbWUsIG9yZ1VuaXQubWV0YWRhdGEsIG9yZ1VuaXQucHJvZmlsZUtleSwgb3JnVW5pdC5tZXRhZGF0YSwgLi4uYXJncylcbiAgICAgICAgICAgICAgICA6IGF3YWl0IHRoaXMub3JnVW5pdFNlcnZpY2UuY3JlYXRlQ2hpbGQoe1xuICAgICAgICAgICAgICAgICAgICB0ZW5hbnRJZDogdGVuYW50LmlkLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRPcmdVbml0SWQ6IHBhcmVudElkLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBvcmdVbml0Lm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhOiBvcmdVbml0Lm1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICBwcm9maWxlS2V5OiBvcmdVbml0LnByb2ZpbGVLZXksXG4gICAgICAgICAgICAgICAgICAgIHByb2ZpbGVNZXRhZGF0YTogb3JnVW5pdC5tZXRhZGF0YSxcbiAgICAgICAgICAgICAgICB9LCAuLi5hcmdzKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygb3JnVW5pdC5jaGlsZHJlbiA/PyBbXSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IGNyZWF0ZU9yZ1RyZWUoY3JlYXRlZC5pZCwgY2hpbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJvb3RPcmdVbml0ID0gYXdhaXQgY3JlYXRlT3JnVHJlZSh1bmRlZmluZWQsIHRlbXBsYXRlLnJvb3RPcmdVbml0KTtcbiAgICAgICAgY29uc3Qgb3duZXIgPSBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmNyZWF0ZVVzZXIodGVtcGxhdGUub3duZXJVc2VyLCAuLi5hcmdzKTtcbiAgICAgICAgYXdhaXQgdGhpcy5tZW1iZXJzaGlwU2VydmljZS5hZGRVc2VyVG9UZW5hbnQodGVuYW50LmlkLCBvd25lci5pZCwgTWVtYmVyc2hpcFN0YXR1cy5BY3RpdmUsIC4uLmFyZ3MpO1xuICAgICAgICBjb25zdCBvd25lclByaW5jaXBhbCA9IGF3YWl0IHRoaXMucHJpbmNpcGFsU2VydmljZS5nZXRVc2VyUHJpbmNpcGFsKHRlbmFudC5pZCwgb3duZXIuaWQsIC4uLmFyZ3MpO1xuICAgICAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb24gb2YgdGVtcGxhdGUucGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucGVybWlzc2lvblNlcnZpY2UuY3JlYXRlUGVybWlzc2lvbihwZXJtaXNzaW9uLCAuLi5hcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IHJvbGUgb2YgdGVtcGxhdGUucm9sZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZWRSb2xlID0gYXdhaXQgdGhpcy5yb2xlU2VydmljZS5jcmVhdGVSb2xlKHtcbiAgICAgICAgICAgICAgICB0ZW5hbnRJZDogdGVuYW50LmlkLFxuICAgICAgICAgICAgICAgIGtleTogcm9sZS5rZXksXG4gICAgICAgICAgICAgICAgbmFtZTogcm9sZS5uYW1lLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByb2xlLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSwgLi4uYXJncyk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb25LZXkgb2Ygcm9sZS5wZXJtaXNzaW9uS2V5cykge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucm9sZVBlcm1pc3Npb25TZXJ2aWNlLmFkZFBlcm1pc3Npb25LZXlUb1JvbGUoY3JlYXRlZFJvbGUuaWQsIHBlcm1pc3Npb25LZXksIC4uLmFyZ3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG93bmVyUm9sZSA9IGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuZ2V0VGVuYW50Um9sZUJ5S2V5KHRlbmFudC5pZCwgdGVtcGxhdGUub3duZXJSb2xlS2V5LCAuLi5hcmdzKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yb2xlQXNzaWdubWVudFNlcnZpY2UuYXNzaWduUm9sZSh7XG4gICAgICAgICAgICB0ZW5hbnRJZDogdGVuYW50LmlkLFxuICAgICAgICAgICAgcHJpbmNpcGFsSWQ6IG93bmVyUHJpbmNpcGFsLmlkLFxuICAgICAgICAgICAgcm9sZUlkOiBvd25lclJvbGUuaWQsXG4gICAgICAgICAgICBzY29wZUtpbmQ6IFNjb3BlS2luZC5PcmdVbml0LFxuICAgICAgICAgICAgc2NvcGVJZDogcm9vdE9yZ1VuaXQuaWQsXG4gICAgICAgICAgICBpbmhlcml0RG93bjogdHJ1ZSxcbiAgICAgICAgfSwgLi4uYXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMuZWZmZWN0aXZlUGVybWlzc2lvblNlcnZpY2UucmVidWlsZEZvclByaW5jaXBhbCh0ZW5hbnQuaWQsIG93bmVyUHJpbmNpcGFsLmlkLCAuLi5hcmdzKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRlbmFudElkOiB0ZW5hbnQuaWQsXG4gICAgICAgICAgICByb290T3JnVW5pdElkOiByb290T3JnVW5pdC5pZCxcbiAgICAgICAgICAgIG93bmVyVXNlcklkOiBvd25lci5pZCxcbiAgICAgICAgICAgIG93bmVyUHJpbmNpcGFsSWQ6IG93bmVyUHJpbmNpcGFsLmlkLFxuICAgICAgICB9O1xuICAgIH1cbn1cbl9fZGVjb3JhdGUoW1xuICAgIHRyYW5zYWN0aW9uYWwoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbT2JqZWN0LCBPYmplY3RdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEJvb3RzdHJhcFNlcnZpY2UucHJvdG90eXBlLCBcImJvb3RzdHJhcFRlbmFudEZyb21UZW1wbGF0ZVwiLCBudWxsKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVltOXZkSE4wY21Gd0xuTmxjblpwWTJVdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTh1TGk5emNtTXZibUZ0WlhOd1lXTmxjeTl6WlhKMmFXTmxjeTlpYjI5MGMzUnlZWEF1YzJWeWRtbGpaUzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3UVVGQlFTeFBRVUZQTEVWQlFVVXNZVUZCWVN4RlFVRkZMSE5DUVVGcFFqdEJRVXQ2UXl4UFFVRlBMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNVMEZCVXl4RlFVRkZMSE5DUVVGcFFqdEJRVU4yUkN4UFFVRlBMRVZCUVVVc1lVRkJZU3hGUVVGRkxFMUJRVTBzYTBKQlFXdENMRU5CUVVNN1FVRkRha1FzVDBGQlR5eEZRVUZGTEc5Q1FVRnZRaXhGUVVGRkxFMUJRVTBzTUVKQlFUQkNMRU5CUVVNN1FVRkRhRVVzVDBGQlR5eEZRVUZGTEdOQlFXTXNSVUZCUlN4TlFVRk5MRzlDUVVGdlFpeERRVUZETzBGQlEzQkVMRTlCUVU4c1JVRkJSU3h4UWtGQmNVSXNSVUZCUlN4TlFVRk5MRFJDUVVFMFFpeERRVUZETzBGQlEyNUZMRTlCUVU4c1JVRkJSU3hYUVVGWExFVkJRVVVzVFVGQlRTeG5Ra0ZCWjBJc1EwRkJRenRCUVVNM1F5eFBRVUZQTEVWQlFVVXNkVUpCUVhWQ0xFVkJRVVVzVFVGQlRTdzJRa0ZCTmtJc1EwRkJRenRCUVVOMFJTeFBRVUZQTEVWQlFVVXNaMEpCUVdkQ0xFVkJRVVVzVFVGQlRTeHhRa0ZCY1VJc1EwRkJRenRCUVVOMlJDeFBRVUZQTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzVFVGQlRTeHpRa0ZCYzBJc1EwRkJRenRCUVVONlJDeFBRVUZQTEVWQlFVVXNWMEZCVnl4RlFVRkZMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZETjBNc1QwRkJUeXhGUVVGRkxIRkNRVUZ4UWl4RlFVRkZMRTFCUVUwc01rSkJRVEpDTEVOQlFVTTdRVUZEYkVVc1QwRkJUeXhGUVVGRkxIRkNRVUZ4UWl4RlFVRkZMRTFCUVUwc01rSkJRVEpDTEVOQlFVTTdRVUZEYkVVc1QwRkJUeXhGUVVGRkxEQkNRVUV3UWl4RlFVRkZMRTFCUVUwc1owTkJRV2RETEVOQlFVTTdRVUZITlVVc1RVRkJUU3hQUVVGUExHZENRVUZuUWp0SlFVRTNRanRSUVVOVkxHdENRVUZoTEVkQlFVY3NTVUZCU1N4aFFVRmhMRVZCUVVVc1EwRkJRenRSUVVOd1F5eDVRa0ZCYjBJc1IwRkJSeXhKUVVGSkxHOUNRVUZ2UWl4RlFVRkZMRU5CUVVNN1VVRkRiRVFzYlVKQlFXTXNSMEZCUnl4SlFVRkpMR05CUVdNc1JVRkJSU3hEUVVGRE8xRkJRM1JETERCQ1FVRnhRaXhIUVVGSExFbEJRVWtzY1VKQlFYRkNMRVZCUVVVc1EwRkJRenRSUVVOd1JDeG5Ra0ZCVnl4SFFVRkhMRWxCUVVrc1YwRkJWeXhGUVVGRkxFTkJRVU03VVVGRGFFTXNjMEpCUVdsQ0xFZEJRVWNzU1VGQlNTeDFRa0ZCZFVJc1JVRkJSU3hEUVVGRE8xRkJRMnhFTEhGQ1FVRm5RaXhIUVVGSExFbEJRVWtzWjBKQlFXZENMRVZCUVVVc1EwRkJRenRSUVVNeFF5eHpRa0ZCYVVJc1IwRkJSeXhKUVVGSkxHbENRVUZwUWl4RlFVRkZMRU5CUVVNN1VVRkROVU1zWjBKQlFWY3NSMEZCUnl4SlFVRkpMRmRCUVZjc1JVRkJSU3hEUVVGRE8xRkJRMmhETERCQ1FVRnhRaXhIUVVGSExFbEJRVWtzY1VKQlFYRkNMRVZCUVVVc1EwRkJRenRSUVVOd1JDd3dRa0ZCY1VJc1IwRkJSeXhKUVVGSkxIRkNRVUZ4UWl4RlFVRkZMRU5CUVVNN1VVRkRjRVFzSzBKQlFUQkNMRWRCUVVjc1NVRkJTU3d3UWtGQk1FSXNSVUZCUlN4RFFVRkRPMGxCTmtWNFJTeERRVUZETzBsQk1VVlBMRUZCUVU0c1MwRkJTeXhEUVVGRExESkNRVUV5UWl4RFFVTXZRaXhSUVVFeVFpeEZRVU16UWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVNdlJTeEpRVUZKTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU03V1VGREwwSXNUVUZCVFN4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNZVUZCWVN4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4VlFVRlZMRVZCUVVVc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eGxRVUZsTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOcVNTeERRVUZETzFGQlJVUXNUVUZCVFN4aFFVRmhMRWRCUVVjc1MwRkJTeXhGUVVGRkxGRkJRVFJDTEVWQlFVVXNUMEZCZVVJc1JVRkJSU3hGUVVGRk8xbEJRM1JHTEUxQlFVMHNUMEZCVHl4SFFVTllMRkZCUVZFc1MwRkJTeXhUUVVGVE8yZENRVU53UWl4RFFVRkRMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEZWQlFWVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hGUVVGRkxFOUJRVThzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRkZCUVZFc1JVRkJSU3hQUVVGUExFTkJRVU1zVlVGQlZTeEZRVUZGTEU5QlFVOHNRMEZCUXl4UlFVRlJMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU03WjBKQlEyaEpMRU5CUVVNc1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNWMEZCVnl4RFFVTnVRenR2UWtGRFJTeFJRVUZSTEVWQlFVVXNUVUZCVFN4RFFVRkRMRVZCUVVVN2IwSkJRMjVDTEdWQlFXVXNSVUZCUlN4UlFVRlJPMjlDUVVONlFpeEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRWxCUVVrN2IwSkJRMnhDTEZGQlFWRXNSVUZCUlN4UFFVRlBMRU5CUVVNc1VVRkJVVHR2UWtGRE1VSXNWVUZCVlN4RlFVRkZMRTlCUVU4c1EwRkJReXhWUVVGVk8yOUNRVU01UWl4bFFVRmxMRVZCUVVVc1QwRkJUeXhEUVVGRExGRkJRVkU3YVVKQlEyeERMRVZCUTBRc1IwRkJSeXhKUVVGSkxFTkJRMUlzUTBGQlF6dFpRVU5TTEV0QlFVc3NUVUZCVFN4TFFVRkxMRWxCUVVrc1QwRkJUeXhEUVVGRExGRkJRVkVzU1VGQlNTeEZRVUZGTEVWQlFVVXNRMEZCUXp0blFrRkRNME1zVFVGQlRTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFpRVU42UXl4RFFVRkRPMWxCUTBRc1QwRkJUeXhQUVVGUExFTkJRVU03VVVGRGFrSXNRMEZCUXl4RFFVRkRPMUZCUlVZc1RVRkJUU3hYUVVGWExFZEJRVWNzVFVGQlRTeGhRVUZoTEVOQlFVTXNVMEZCVXl4RlFVRkZMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dFJRVU42UlN4TlFVRk5MRXRCUVVzc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNWVUZCVlN4RFFVRkRMRkZCUVZFc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTTNSU3hOUVVGTkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhsUVVGbExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4TFFVRkxMRU5CUVVNc1JVRkJSU3hGUVVGRkxHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEzQkhMRTFCUVUwc1kwRkJZeXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzUzBGQlN5eERRVUZETEVWQlFVVXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJSV3hITEV0QlFVc3NUVUZCVFN4VlFVRlZMRWxCUVVrc1VVRkJVU3hEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETzFsQlF6bERMRTFCUVUwc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMR2RDUVVGblFpeERRVUZETEZWQlFWVXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM0pGTEVOQlFVTTdVVUZEUkN4TFFVRkxMRTFCUVUwc1NVRkJTU3hKUVVGSkxGRkJRVkVzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXp0WlFVTnNReXhOUVVGTkxGZEJRVmNzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1ZVRkJWU3hEUVVOdVJEdG5Ra0ZEUlN4UlFVRlJMRVZCUVVVc1RVRkJUU3hEUVVGRExFVkJRVVU3WjBKQlEyNUNMRWRCUVVjc1JVRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ6dG5Ra0ZEWWl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFbEJRVWs3WjBKQlEyWXNWMEZCVnl4RlFVRkZMRWxCUVVrc1EwRkJReXhYUVVGWE8yRkJRemxDTEVWQlEwUXNSMEZCUnl4SlFVRkpMRU5CUTFJc1EwRkJRenRaUVVOR0xFdEJRVXNzVFVGQlRTeGhRVUZoTEVsQlFVa3NTVUZCU1N4RFFVRkRMR05CUVdNc1JVRkJSU3hEUVVGRE8yZENRVU5vUkN4TlFVRk5MRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4elFrRkJjMElzUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUlN4RlFVRkZMR0ZCUVdFc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzFsQlEyeEhMRU5CUVVNN1VVRkRTQ3hEUVVGRE8xRkJSVVFzVFVGQlRTeFRRVUZUTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzVVVGQlVTeERRVUZETEZsQlFWa3NSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM1pITEUxQlFVMHNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEZWQlFWVXNRMEZEZWtNN1dVRkRSU3hSUVVGUkxFVkJRVVVzVFVGQlRTeERRVUZETEVWQlFVVTdXVUZEYmtJc1YwRkJWeXhGUVVGRkxHTkJRV01zUTBGQlF5eEZRVUZGTzFsQlF6bENMRTFCUVUwc1JVRkJSU3hUUVVGVExFTkJRVU1zUlVGQlJUdFpRVU53UWl4VFFVRlRMRVZCUVVVc1UwRkJVeXhEUVVGRExFOUJRVTg3V1VGRE5VSXNUMEZCVHl4RlFVRkZMRmRCUVZjc1EwRkJReXhGUVVGRk8xbEJRM1pDTEZkQlFWY3NSVUZCUlN4SlFVRkpPMU5CUTJ4Q0xFVkJRMFFzUjBGQlJ5eEpRVUZKTEVOQlExSXNRMEZCUXp0UlFVTkdMRTFCUVUwc1NVRkJTU3hEUVVGRExEQkNRVUV3UWl4RFFVRkRMRzFDUVVGdFFpeERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRVZCUVVVc1kwRkJZeXhEUVVGRExFVkJRVVVzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUldwSExFOUJRVTg3V1VGRFRDeFJRVUZSTEVWQlFVVXNUVUZCVFN4RFFVRkRMRVZCUVVVN1dVRkRia0lzWVVGQllTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RlFVRkZPMWxCUXpkQ0xGZEJRVmNzUlVGQlJTeExRVUZMTEVOQlFVTXNSVUZCUlR0WlFVTnlRaXhuUWtGQlowSXNSVUZCUlN4alFVRmpMRU5CUVVNc1JVRkJSVHRUUVVOd1F5eERRVUZETzBsQlEwb3NRMEZCUXp0RFFVTkdPMEZCTVVWUE8wbEJSRXdzWVVGQllTeEZRVUZGT3pzN08yMUZRVEJGWmlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lIUnlZVzV6WVdOMGFXOXVZV3dnZlNCbWNtOXRJRndpTGk0dmRYUnBiSE5jSWp0Y2JtbHRjRzl5ZENCMGVYQmxJSHRjYmlBZ1FtOXZkSE4wY21Gd1QzSm5WVzVwZEN4Y2JpQWdRbTl2ZEhOMGNtRndWR1Z0Y0d4aGRHVXNYRzU5SUdaeWIyMGdYQ0l1TGk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1RXVnRZbVZ5YzJocGNGTjBZWFIxY3l3Z1UyTnZjR1ZMYVc1a0lIMGdabkp2YlNCY0lpNHVMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdleUJVWlc1aGJuUlRaWEoyYVdObElIMGdabkp2YlNCY0lpNHZkR1Z1WVc1MExuTmxjblpwWTJWY0lqdGNibWx0Y0c5eWRDQjdJRlJsYm1GdWRGQnliMlpwYkdWVFpYSjJhV05sSUgwZ1puSnZiU0JjSWk0dmRHVnVZVzUwTFhCeWIyWnBiR1V1YzJWeWRtbGpaVndpTzF4dWFXMXdiM0owSUhzZ1QzSm5WVzVwZEZObGNuWnBZMlVnZlNCbWNtOXRJRndpTGk5dmNtY3RkVzVwZEM1elpYSjJhV05sWENJN1hHNXBiWEJ2Y25RZ2V5QlBjbWRWYm1sMFVISnZabWxzWlZObGNuWnBZMlVnZlNCbWNtOXRJRndpTGk5dmNtY3RkVzVwZEMxd2NtOW1hV3hsTG5ObGNuWnBZMlZjSWp0Y2JtbHRjRzl5ZENCN0lGVnpaWEpUWlhKMmFXTmxJSDBnWm5KdmJTQmNJaTR2ZFhObGNpNXpaWEoyYVdObFhDSTdYRzVwYlhCdmNuUWdleUJVWlc1aGJuUk5aVzFpWlhKemFHbHdVMlZ5ZG1salpTQjlJR1p5YjIwZ1hDSXVMM1JsYm1GdWRDMXRaVzFpWlhKemFHbHdMbk5sY25acFkyVmNJanRjYm1sdGNHOXlkQ0I3SUZCeWFXNWphWEJoYkZObGNuWnBZMlVnZlNCbWNtOXRJRndpTGk5d2NtbHVZMmx3WVd3dWMyVnlkbWxqWlZ3aU8xeHVhVzF3YjNKMElIc2dVR1Z5YldsemMybHZibE5sY25acFkyVWdmU0JtY205dElGd2lMaTl3WlhKdGFYTnphVzl1TG5ObGNuWnBZMlZjSWp0Y2JtbHRjRzl5ZENCN0lGSnZiR1ZUWlhKMmFXTmxJSDBnWm5KdmJTQmNJaTR2Y205c1pTNXpaWEoyYVdObFhDSTdYRzVwYlhCdmNuUWdleUJTYjJ4bFVHVnliV2x6YzJsdmJsTmxjblpwWTJVZ2ZTQm1jbTl0SUZ3aUxpOXliMnhsTFhCbGNtMXBjM05wYjI0dWMyVnlkbWxqWlZ3aU8xeHVhVzF3YjNKMElIc2dVbTlzWlVGemMybG5ibTFsYm5SVFpYSjJhV05sSUgwZ1puSnZiU0JjSWk0dmNtOXNaUzFoYzNOcFoyNXRaVzUwTG5ObGNuWnBZMlZjSWp0Y2JtbHRjRzl5ZENCN0lFVm1abVZqZEdsMlpWQmxjbTFwYzNOcGIyNVRaWEoyYVdObElIMGdabkp2YlNCY0lpNHZaV1ptWldOMGFYWmxMWEJsY20xcGMzTnBiMjR1YzJWeWRtbGpaVndpTzF4dWFXMXdiM0owSUhzZ2NtVnNZWFJwYjI1SlpDQjlJR1p5YjIwZ1hDSXVMaTkxZEdsc2Mxd2lPMXh1WEc1bGVIQnZjblFnWTJ4aGMzTWdRbTl2ZEhOMGNtRndVMlZ5ZG1salpTQjdYRzRnSUhCeWFYWmhkR1VnZEdWdVlXNTBVMlZ5ZG1salpTQTlJRzVsZHlCVVpXNWhiblJUWlhKMmFXTmxLQ2s3WEc0Z0lIQnlhWFpoZEdVZ2RHVnVZVzUwVUhKdlptbHNaVk5sY25acFkyVWdQU0J1WlhjZ1ZHVnVZVzUwVUhKdlptbHNaVk5sY25acFkyVW9LVHRjYmlBZ2NISnBkbUYwWlNCdmNtZFZibWwwVTJWeWRtbGpaU0E5SUc1bGR5QlBjbWRWYm1sMFUyVnlkbWxqWlNncE8xeHVJQ0J3Y21sMllYUmxJRzl5WjFWdWFYUlFjbTltYVd4bFUyVnlkbWxqWlNBOUlHNWxkeUJQY21kVmJtbDBVSEp2Wm1sc1pWTmxjblpwWTJVb0tUdGNiaUFnY0hKcGRtRjBaU0IxYzJWeVUyVnlkbWxqWlNBOUlHNWxkeUJWYzJWeVUyVnlkbWxqWlNncE8xeHVJQ0J3Y21sMllYUmxJRzFsYldKbGNuTm9hWEJUWlhKMmFXTmxJRDBnYm1WM0lGUmxibUZ1ZEUxbGJXSmxjbk5vYVhCVFpYSjJhV05sS0NrN1hHNGdJSEJ5YVhaaGRHVWdjSEpwYm1OcGNHRnNVMlZ5ZG1salpTQTlJRzVsZHlCUWNtbHVZMmx3WVd4VFpYSjJhV05sS0NrN1hHNGdJSEJ5YVhaaGRHVWdjR1Z5YldsemMybHZibE5sY25acFkyVWdQU0J1WlhjZ1VHVnliV2x6YzJsdmJsTmxjblpwWTJVb0tUdGNiaUFnY0hKcGRtRjBaU0J5YjJ4bFUyVnlkbWxqWlNBOUlHNWxkeUJTYjJ4bFUyVnlkbWxqWlNncE8xeHVJQ0J3Y21sMllYUmxJSEp2YkdWUVpYSnRhWE56YVc5dVUyVnlkbWxqWlNBOUlHNWxkeUJTYjJ4bFVHVnliV2x6YzJsdmJsTmxjblpwWTJVb0tUdGNiaUFnY0hKcGRtRjBaU0J5YjJ4bFFYTnphV2R1YldWdWRGTmxjblpwWTJVZ1BTQnVaWGNnVW05c1pVRnpjMmxuYm0xbGJuUlRaWEoyYVdObEtDazdYRzRnSUhCeWFYWmhkR1VnWldabVpXTjBhWFpsVUdWeWJXbHpjMmx2YmxObGNuWnBZMlVnUFNCdVpYY2dSV1ptWldOMGFYWmxVR1Z5YldsemMybHZibE5sY25acFkyVW9LVHRjYmx4dUlDQkFkSEpoYm5OaFkzUnBiMjVoYkNncFhHNGdJR0Z6ZVc1aklHSnZiM1J6ZEhKaGNGUmxibUZ1ZEVaeWIyMVVaVzF3YkdGMFpTaGNiaUFnSUNCMFpXMXdiR0YwWlRvZ1FtOXZkSE4wY21Gd1ZHVnRjR3hoZEdVc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4N0lIUmxibUZ1ZEVsa09pQnpkSEpwYm1jN0lISnZiM1JQY21kVmJtbDBTV1E2SUhOMGNtbHVaenNnYjNkdVpYSlZjMlZ5U1dRNklITjBjbWx1WnpzZ2IzZHVaWEpRY21sdVkybHdZV3hKWkRvZ2MzUnlhVzVuSUgwK0lIdGNiaUFnSUNCamIyNXpkQ0IwWlc1aGJuUWdQU0JoZDJGcGRDQjBhR2x6TG5SbGJtRnVkRk5sY25acFkyVXVZM0psWVhSbFZHVnVZVzUwS0hSbGJYQnNZWFJsTG5SbGJtRnVkQ3dnTGk0dVlYSm5jeWs3WEc0Z0lDQWdhV1lnS0hSbGJYQnNZWFJsTG5SbGJtRnVkQzV3Y205bWFXeGxTMlY1S1NCN1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxuUmxibUZ1ZEZCeWIyWnBiR1ZUWlhKMmFXTmxMbU55WldGMFpWQnliMlpwYkdVb2RHVnVZVzUwTG1sa0xDQjBaVzF3YkdGMFpTNTBaVzVoYm5RdWNISnZabWxzWlV0bGVTd2dkR1Z0Y0d4aGRHVXVkR1Z1WVc1MExuQnliMlpwYkdWTlpYUmhaR0YwWVN3Z0xpNHVZWEpuY3lrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdZM0psWVhSbFQzSm5WSEpsWlNBOUlHRnplVzVqSUNod1lYSmxiblJKWkRvZ2MzUnlhVzVuSUh3Z2RXNWtaV1pwYm1Wa0xDQnZjbWRWYm1sME9pQkNiMjkwYzNSeVlYQlBjbWRWYm1sMEtTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQmpjbVZoZEdWa0lEMWNiaUFnSUNBZ0lDQWdjR0Z5Wlc1MFNXUWdQVDA5SUhWdVpHVm1hVzVsWkZ4dUlDQWdJQ0FnSUNBZ0lEOGdZWGRoYVhRZ2RHaHBjeTV2Y21kVmJtbDBVMlZ5ZG1salpTNWpjbVZoZEdWU2IyOTBLSFJsYm1GdWRDNXBaQ3dnYjNKblZXNXBkQzV1WVcxbExDQnZjbWRWYm1sMExtMWxkR0ZrWVhSaExDQnZjbWRWYm1sMExuQnliMlpwYkdWTFpYa3NJRzl5WjFWdWFYUXViV1YwWVdSaGRHRXNJQzR1TG1GeVozTXBYRzRnSUNBZ0lDQWdJQ0FnT2lCaGQyRnBkQ0IwYUdsekxtOXlaMVZ1YVhSVFpYSjJhV05sTG1OeVpXRjBaVU5vYVd4a0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHVnVZVzUwU1dRNklIUmxibUZ1ZEM1cFpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndZWEpsYm5SUGNtZFZibWwwU1dRNklIQmhjbVZ1ZEVsa0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHNWhiV1U2SUc5eVoxVnVhWFF1Ym1GdFpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnRaWFJoWkdGMFlUb2diM0puVlc1cGRDNXRaWFJoWkdGMFlTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndjbTltYVd4bFMyVjVPaUJ2Y21kVmJtbDBMbkJ5YjJacGJHVkxaWGtzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0hKdlptbHNaVTFsZEdGa1lYUmhPaUJ2Y21kVmJtbDBMbTFsZEdGa1lYUmhMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQXVMaTVoY21kelhHNGdJQ0FnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnWm05eUlDaGpiMjV6ZENCamFHbHNaQ0J2WmlCdmNtZFZibWwwTG1Ob2FXeGtjbVZ1SUQ4L0lGdGRLU0I3WEc0Z0lDQWdJQ0FnSUdGM1lXbDBJR055WldGMFpVOXlaMVJ5WldVb1kzSmxZWFJsWkM1cFpDd2dZMmhwYkdRcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUdOeVpXRjBaV1E3WEc0Z0lDQWdmVHRjYmx4dUlDQWdJR052Ym5OMElISnZiM1JQY21kVmJtbDBJRDBnWVhkaGFYUWdZM0psWVhSbFQzSm5WSEpsWlNoMWJtUmxabWx1WldRc0lIUmxiWEJzWVhSbExuSnZiM1JQY21kVmJtbDBLVHRjYmlBZ0lDQmpiMjV6ZENCdmQyNWxjaUE5SUdGM1lXbDBJSFJvYVhNdWRYTmxjbE5sY25acFkyVXVZM0psWVhSbFZYTmxjaWgwWlcxd2JHRjBaUzV2ZDI1bGNsVnpaWElzSUM0dUxtRnlaM01wTzF4dUlDQWdJR0YzWVdsMElIUm9hWE11YldWdFltVnljMmhwY0ZObGNuWnBZMlV1WVdSa1ZYTmxjbFJ2VkdWdVlXNTBLSFJsYm1GdWRDNXBaQ3dnYjNkdVpYSXVhV1FzSUUxbGJXSmxjbk5vYVhCVGRHRjBkWE11UVdOMGFYWmxMQ0F1TGk1aGNtZHpLVHRjYmlBZ0lDQmpiMjV6ZENCdmQyNWxjbEJ5YVc1amFYQmhiQ0E5SUdGM1lXbDBJSFJvYVhNdWNISnBibU5wY0dGc1UyVnlkbWxqWlM1blpYUlZjMlZ5VUhKcGJtTnBjR0ZzS0hSbGJtRnVkQzVwWkN3Z2IzZHVaWEl1YVdRc0lDNHVMbUZ5WjNNcE8xeHVYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQndaWEp0YVhOemFXOXVJRzltSUhSbGJYQnNZWFJsTG5CbGNtMXBjM05wYjI1ektTQjdYRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbkJsY20xcGMzTnBiMjVUWlhKMmFXTmxMbU55WldGMFpWQmxjbTFwYzNOcGIyNG9jR1Z5YldsemMybHZiaXdnTGk0dVlYSm5jeWs3WEc0Z0lDQWdmVnh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdjbTlzWlNCdlppQjBaVzF3YkdGMFpTNXliMnhsY3lrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWTNKbFlYUmxaRkp2YkdVZ1BTQmhkMkZwZENCMGFHbHpMbkp2YkdWVFpYSjJhV05sTG1OeVpXRjBaVkp2YkdVb1hHNGdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0IwWlc1aGJuUkpaRG9nZEdWdVlXNTBMbWxrTEZ4dUlDQWdJQ0FnSUNBZ0lHdGxlVG9nY205c1pTNXJaWGtzWEc0Z0lDQWdJQ0FnSUNBZ2JtRnRaVG9nY205c1pTNXVZVzFsTEZ4dUlDQWdJQ0FnSUNBZ0lHUmxjMk55YVhCMGFXOXVPaUJ5YjJ4bExtUmxjMk55YVhCMGFXOXVMRnh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBdUxpNWhjbWR6WEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnWm05eUlDaGpiMjV6ZENCd1pYSnRhWE56YVc5dVMyVjVJRzltSUhKdmJHVXVjR1Z5YldsemMybHZia3RsZVhNcElIdGNiaUFnSUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTV5YjJ4bFVHVnliV2x6YzJsdmJsTmxjblpwWTJVdVlXUmtVR1Z5YldsemMybHZia3RsZVZSdlVtOXNaU2hqY21WaGRHVmtVbTlzWlM1cFpDd2djR1Z5YldsemMybHZia3RsZVN3Z0xpNHVZWEpuY3lrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdiM2R1WlhKU2IyeGxJRDBnWVhkaGFYUWdkR2hwY3k1eWIyeGxVMlZ5ZG1salpTNW5aWFJVWlc1aGJuUlNiMnhsUW5sTFpYa29kR1Z1WVc1MExtbGtMQ0IwWlcxd2JHRjBaUzV2ZDI1bGNsSnZiR1ZMWlhrc0lDNHVMbUZ5WjNNcE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWNtOXNaVUZ6YzJsbmJtMWxiblJUWlhKMmFXTmxMbUZ6YzJsbmJsSnZiR1VvWEc0Z0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUhSbGJtRnVkRWxrT2lCMFpXNWhiblF1YVdRc1hHNGdJQ0FnSUNBZ0lIQnlhVzVqYVhCaGJFbGtPaUJ2ZDI1bGNsQnlhVzVqYVhCaGJDNXBaQ3hjYmlBZ0lDQWdJQ0FnY205c1pVbGtPaUJ2ZDI1bGNsSnZiR1V1YVdRc1hHNGdJQ0FnSUNBZ0lITmpiM0JsUzJsdVpEb2dVMk52Y0dWTGFXNWtMazl5WjFWdWFYUXNYRzRnSUNBZ0lDQWdJSE5qYjNCbFNXUTZJSEp2YjNSUGNtZFZibWwwTG1sa0xGeHVJQ0FnSUNBZ0lDQnBibWhsY21sMFJHOTNiam9nZEhKMVpTeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQXVMaTVoY21kelhHNGdJQ0FnS1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG1WbVptVmpkR2wyWlZCbGNtMXBjM05wYjI1VFpYSjJhV05sTG5KbFluVnBiR1JHYjNKUWNtbHVZMmx3WVd3b2RHVnVZVzUwTG1sa0xDQnZkMjVsY2xCeWFXNWphWEJoYkM1cFpDd2dMaTR1WVhKbmN5azdYRzVjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ2RHVnVZVzUwU1dRNklIUmxibUZ1ZEM1cFpDeGNiaUFnSUNBZ0lISnZiM1JQY21kVmJtbDBTV1E2SUhKdmIzUlBjbWRWYm1sMExtbGtMRnh1SUNBZ0lDQWdiM2R1WlhKVmMyVnlTV1E2SUc5M2JtVnlMbWxrTEZ4dUlDQWdJQ0FnYjNkdVpYSlFjbWx1WTJsd1lXeEpaRG9nYjNkdVpYSlFjbWx1WTJsd1lXd3VhV1FzWEc0Z0lDQWdmVHRjYmlBZ2ZWeHVmVnh1SWwxOSJdfQ==
111
+ //# sourceMappingURL=bootstrap.service.js.map
112
+ //# sourceMappingURL=bootstrap.service.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespaces/services/bootstrap.service.cjs","sourceRoot":"","sources":["namespaces/services/bootstrap.service.js"],"names":[],"mappings":"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"}
@@ -146,5 +146,5 @@ __decorate([
146
146
  __metadata("design:paramtypes", [String, Object]),
147
147
  __metadata("design:returntype", Promise)
148
148
  ], EffectivePermissionService.prototype, "rebuildForTenant", null);
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0aXZlLXBlcm1pc3Npb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uYW1lc3BhY2VzL3NlcnZpY2VzL2VmZmVjdGl2ZS1wZXJtaXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxzQkFBaUI7QUFDbEcsT0FBTyxFQUErQixTQUFTLEVBQUUsc0JBQWlCO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXRFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxnQkFBcUM7SUFDbkY7UUFDRSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQWdCLEVBQUUsV0FBbUIsRUFBRSxHQUFHLElBQVc7UUFDMUUsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUN6QyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFB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RSxFQUFFLENBQzlCLElBQUksQ0FBQyxNQUFNLENBQ1Q7WUFDRSxNQUFNLEVBQUUsVUFBVSxDQUFDLFFBQVE7WUFDM0IsU0FBUyxFQUFFLFVBQVUsQ0FBQyxXQUFXO1lBQ2pDLGFBQWEsRUFBRSxVQUFVLENBQUMsYUFBYTtZQUN2QyxTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVM7WUFDL0IsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO1lBQzNCLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVTtZQUNqQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVE7WUFDN0IsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRO1lBQzdCLFNBQVMsRUFBRSxVQUFVLENBQUMsU0FBUztTQUNoQyxFQUNELEdBQUcsSUFBSSxDQUNSLENBQ0YsQ0FDRixDQUFDO1FBQ0YsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUdLLEFBQU4sS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQWdCLEVBQUUsR0FBRyxJQUFXO1FBQ3JELE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBTSxJQUFJLGdCQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDakksS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2xFLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUExR087SUFETCxhQUFhLEVBQUU7Ozs7cUVBa0dmO0FBR0s7SUFETCxhQUFhLEVBQUU7Ozs7a0VBTWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTW9kZWxTZXJ2aWNlLCByZWxhdGlvbklkLCByZWxhdGlvbk1hdGNoLCBzYW1lVGVuYW50LCB0cmFuc2FjdGlvbmFsIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBFZmZlY3RpdmVQZXJtaXNzaW9uU25hcHNob3QsIFNjb3BlS2luZCB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgRWZmZWN0aXZlUGVybWlzc2lvbiB9IGZyb20gXCIuLi9tb2RlbHMvZWZmZWN0aXZlLXBlcm1pc3Npb24ubW9kZWxcIjtcbmltcG9ydCB7IFJvbGVBc3NpZ25tZW50U2VydmljZSB9IGZyb20gXCIuL3JvbGUtYXNzaWdubWVudC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBSb2xlUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi9yb2xlLXBlcm1pc3Npb24uc2VydmljZVwiO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi9wZXJtaXNzaW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IEdyb3VwTWVtYmVyc2hpcFNlcnZpY2UgfSBmcm9tIFwiLi9ncm91cC1tZW1iZXJzaGlwLnNlcnZpY2VcIjtcbmltcG9ydCB7IFByaW5jaXBhbFNlcnZpY2UgfSBmcm9tIFwiLi9wcmluY2lwYWwuc2VydmljZVwiO1xuaW1wb3J0IHsgT3JnVW5pdENsb3N1cmVTZXJ2aWNlIH0gZnJvbSBcIi4vb3JnLXVuaXQtY2xvc3VyZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBJbmhlcml0YW5jZUJsb2NrU2VydmljZSB9IGZyb20gXCIuL2luaGVyaXRhbmNlLWJsb2NrLnNlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIEVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxFZmZlY3RpdmVQZXJtaXNzaW9uPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKEVmZmVjdGl2ZVBlcm1pc3Npb24pO1xuICB9XG5cbiAgYXN5bmMgbGlzdEZvclByaW5jaXBhbCh0ZW5hbnRJZDogc3RyaW5nLCBwcmluY2lwYWxJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8RWZmZWN0aXZlUGVybWlzc2lvbltdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcihcbiAgICAgIChwZXJtaXNzaW9uKSA9PiBzYW1lVGVuYW50KHBlcm1pc3Npb24udGVuYW50LCB0ZW5hbnRJZCkgJiYgcmVsYXRpb25NYXRjaChwZXJtaXNzaW9uLnByaW5jaXBhbCwgcHJpbmNpcGFsSWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RGb3JTY29wZShcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHNjb3BlS2luZDogU2NvcGVLaW5kLFxuICAgIHNjb3BlSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPEVmZmVjdGl2ZVBlcm1pc3Npb25bXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoXG4gICAgICAocGVybWlzc2lvbikgPT4gc2FtZVRlbmFudChwZXJtaXNzaW9uLnRlbmFudCwgdGVuYW50SWQpICYmIHBlcm1pc3Npb24uc2NvcGVLaW5kID09PSBzY29wZUtpbmQgJiYgcGVybWlzc2lvbi5zY29wZUlkID09PSBzY29wZUlkXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGhhc1Blcm1pc3Npb24oXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIHBlcm1pc3Npb25LZXk6IHN0cmluZyxcbiAgICBzY29wZUtpbmQ6IFNjb3BlS2luZCxcbiAgICBzY29wZUlkOiBzdHJpbmcsXG4gICAgYXQ/OiBEYXRlLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0Rm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncykpLnNvbWUoXG4gICAgICAocGVybWlzc2lvbikgPT5cbiAgICAgICAgcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5ID09PSBwZXJtaXNzaW9uS2V5ICYmXG4gICAgICAgIHBlcm1pc3Npb24uc2NvcGVLaW5kID09PSBzY29wZUtpbmQgJiZcbiAgICAgICAgcGVybWlzc2lvbi5zY29wZUlkID09PSBzY29wZUlkICYmXG4gICAgICAgICghcGVybWlzc2lvbi5zdGFydHNBdCB8fCAhYXQgfHwgcGVybWlzc2lvbi5zdGFydHNBdCA8PSBhdCkgJiZcbiAgICAgICAgKCFwZXJtaXNzaW9uLmV4cGlyZXNBdCB8fCAhYXQgfHwgcGVybWlzc2lvbi5leHBpcmVzQXQgPj0gYXQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUZvclByaW5jaXBhbCh0ZW5hbnRJZDogc3RyaW5nLCBwcmluY2lwYWxJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGZvciAoY29uc3Qgcm93IG9mIGF3YWl0IHRoaXMubGlzdEZvclByaW5jaXBhbCh0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIC4uLmFyZ3MpKSB7XG4gICAgICBhd2FpdCB0aGlzLmRlbGV0ZUJ5SWQocm93LmlkLCAuLi5hcmdzKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkZWxldGVGb3JUZW5hbnQodGVuYW50SWQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBmb3IgKGNvbnN0IHJvdyBvZiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKHBlcm1pc3Npb24pID0+IHNhbWVUZW5hbnQocGVybWlzc2lvbi50ZW5hbnQsIHRlbmFudElkKSkpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGVsZXRlQnlJZChyb3cuaWQsIC4uLmFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIEB0cmFuc2FjdGlvbmFsKClcbiAgYXN5bmMgcmVidWlsZEZvclByaW5jaXBhbCh0ZW5hbnRJZDogc3RyaW5nLCBwcmluY2lwYWxJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8RWZmZWN0aXZlUGVybWlzc2lvbltdPiB7XG4gICAgYXdhaXQgdGhpcy5kZWxldGVGb3JQcmluY2lwYWwodGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKTtcblxuICAgIGNvbnN0IHJvbGVBc3NpZ25tZW50U2VydmljZSA9IG5ldyBSb2xlQXNzaWdubWVudFNlcnZpY2UoKTtcbiAgICBjb25zdCByb2xlUGVybWlzc2lvblNlcnZpY2UgPSBuZXcgUm9sZVBlcm1pc3Npb25TZXJ2aWNlKCk7XG4gICAgY29uc3QgcGVybWlzc2lvblNlcnZpY2UgPSBuZXcgUGVybWlzc2lvblNlcnZpY2UoKTtcbiAgICBjb25zdCBncm91cE1lbWJlcnNoaXBTZXJ2aWNlID0gbmV3IEdyb3VwTWVtYmVyc2hpcFNlcnZpY2UoKTtcbiAgICBjb25zdCBwcmluY2lwYWxTZXJ2aWNlID0gbmV3IFByaW5jaXBhbFNlcnZpY2UoKTtcbiAgICBjb25zdCBvcmdVbml0Q2xvc3VyZVNlcnZpY2UgPSBuZXcgT3JnVW5pdENsb3N1cmVTZXJ2aWNlKCk7XG4gICAgY29uc3QgaW5oZXJpdGFuY2VCbG9ja1NlcnZpY2UgPSBuZXcgSW5oZXJpdGFuY2VCbG9ja1NlcnZpY2UoKTtcblxuICAgIGNvbnN0IG1hdGVyaWFsaXplZDogRWZmZWN0aXZlUGVybWlzc2lvblNuYXBzaG90W10gPSBbXTtcbiAgICBjb25zdCBzb3VyY2VBc3NpZ25tZW50cyA9IGF3YWl0IHJvbGVBc3NpZ25tZW50U2VydmljZS5saXN0UHJpbmNpcGFsQXNzaWdubWVudHModGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKTtcbiAgICBjb25zdCBncm91cE1lbWJlcnNoaXBzID0gYXdhaXQgZ3JvdXBNZW1iZXJzaGlwU2VydmljZS5saXN0UHJpbmNpcGFsR3JvdXBzKHByaW5jaXBhbElkLCAuLi5hcmdzKTtcbiAgICBjb25zdCBncm91cEFzc2lnbm1lbnRzID0gKFxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIGdyb3VwTWVtYmVyc2hpcHMubWFwKGFzeW5jIChtZW1iZXJzaGlwKSA9PiB7XG4gICAgICAgICAgY29uc3QgZ3JvdXBQcmluY2lwYWwgPSBhd2FpdCBwcmluY2lwYWxTZXJ2aWNlLmdldEdyb3VwUHJpbmNpcGFsKHJlbGF0aW9uSWQobWVtYmVyc2hpcC50ZW5hbnQpLCByZWxhdGlvbklkKG1lbWJlcnNoaXAuZ3JvdXApLCAuLi5hcmdzKTtcbiAgICAgICAgICByZXR1cm4gcm9sZUFzc2lnbm1lbnRTZXJ2aWNlLmxpc3RQcmluY2lwYWxBc3NpZ25tZW50cyh0ZW5hbnRJZCwgZ3JvdXBQcmluY2lwYWwuaWQsIC4uLmFyZ3MpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICkuZmxhdCgpO1xuXG4gICAgY29uc3QgYXNzaWdubWVudHMgPSBbLi4uc291cmNlQXNzaWdubWVudHMsIC4uLmdyb3VwQXNzaWdubWVudHNdO1xuICAgIGZvciAoY29uc3QgYXNzaWdubWVudCBvZiBhc3NpZ25tZW50cykge1xuICAgICAgY29uc3Qgcm9sZVBlcm1pc3Npb25zID0gYXdhaXQgcm9sZVBlcm1pc3Npb25TZXJ2aWNlLmxpc3RSb2xlUGVybWlzc2lvbnMocmVsYXRpb25JZChhc3NpZ25tZW50LnJvbGUpLCAuLi5hcmdzKTtcbiAgICAgIGNvbnN0IHBlcm1pc3Npb25zID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIHJvbGVQZXJtaXNzaW9ucy5tYXAoYXN5bmMgKHJvbGVQZXJtaXNzaW9uKSA9PlxuICAgICAgICAgIHBlcm1pc3Npb25TZXJ2aWNlLmZpbmRPbmVCeShcImlkXCIsIHJlbGF0aW9uSWQocm9sZVBlcm1pc3Npb24ucGVybWlzc2lvbikgYXMgbmV2ZXIsIC4uLmFyZ3MpXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb24gb2YgcGVybWlzc2lvbnMpIHtcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9uKSBjb250aW51ZTtcbiAgICAgICAgY29uc3Qgc2NvcGVLaW5kID0gYXNzaWdubWVudC5zY29wZUtpbmQ7XG4gICAgICAgIGNvbnN0IHNjb3BlSWQgPSBhc3NpZ25tZW50LnNjb3BlSWQ7XG4gICAgICAgIGNvbnN0IHNjb3BlczogQXJyYXk8eyBzY29wZUtpbmQ6IFNjb3BlS2luZDsgc2NvcGVJZDogc3RyaW5nIH0+ID0gW107XG4gICAgICAgIGlmIChzY29wZUtpbmQgPT09IFNjb3BlS2luZC5UZW5hbnQpIHtcbiAgICAgICAgICBzY29wZXMucHVzaCh7IHNjb3BlS2luZCwgc2NvcGVJZDogdGVuYW50SWQgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NvcGVLaW5kID09PSBTY29wZUtpbmQuUmVzb3VyY2UpIHtcbiAgICAgICAgICBzY29wZXMucHVzaCh7IHNjb3BlS2luZCwgc2NvcGVJZCB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChzY29wZUtpbmQgPT09IFNjb3BlS2luZC5PcmdVbml0ICYmICFhc3NpZ25tZW50LmluaGVyaXREb3duKSB7XG4gICAgICAgICAgc2NvcGVzLnB1c2goeyBzY29wZUtpbmQsIHNjb3BlSWQgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NvcGVLaW5kID09PSBTY29wZUtpbmQuT3JnVW5pdCAmJiBhc3NpZ25tZW50LmluaGVyaXREb3duKSB7XG4gICAgICAgICAgY29uc3QgZGVzY2VuZGFudHMgPSBhd2FpdCBvcmdVbml0Q2xvc3VyZVNlcnZpY2UubGlzdERlc2NlbmRhbnRzKHRlbmFudElkLCBzY29wZUlkLCAuLi5hcmdzKTtcbiAgICAgICAgICBzY29wZXMucHVzaCguLi5kZXNjZW5kYW50cy5tYXAoKHJvdykgPT4gKHsgc2NvcGVLaW5kLCBzY29wZUlkOiByZWxhdGlvbklkKHJvdy5kZXNjZW5kYW50KSB9KSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBzY29wZWQgb2Ygc2NvcGVzKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgc2NvcGVLaW5kID09PSBTY29wZUtpbmQuT3JnVW5pdCAmJlxuICAgICAgICAgICAgYXNzaWdubWVudC5pbmhlcml0RG93biAmJlxuICAgICAgICAgICAgc2NvcGVkLnNjb3BlSWQgIT09IHNjb3BlSWQgJiZcbiAgICAgICAgICAgIChhd2FpdCBpbmhlcml0YW5jZUJsb2NrU2VydmljZS5jYXRlZ29yeUJsb2NrZWRGb3JBbmNlc3RvcihcbiAgICAgICAgICAgICAgdGVuYW50SWQsXG4gICAgICAgICAgICAgIHNjb3BlZC5zY29wZUlkLFxuICAgICAgICAgICAgICBzY29wZUlkLFxuICAgICAgICAgICAgICBwZXJtaXNzaW9uLmNhdGVnb3J5LFxuICAgICAgICAgICAgICAuLi5hcmdzXG4gICAgICAgICAgICApKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIG1hdGVyaWFsaXplZC5wdXNoKHtcbiAgICAgICAgICAgIGlkOiBcIlwiLFxuICAgICAgICAgICAgdGVuYW50SWQsXG4gICAgICAgICAgICBwcmluY2lwYWxJZCxcbiAgICAgICAgICAgIHBlcm1pc3Npb25LZXk6IHBlcm1pc3Npb24ua2V5LFxuICAgICAgICAgICAgc2NvcGVLaW5kOiBzY29wZWQuc2NvcGVLaW5kLFxuICAgICAgICAgICAgc2NvcGVJZDogc2NvcGVkLnNjb3BlSWQsXG4gICAgICAgICAgICBzb3VyY2VLaW5kOiBcInJvbGVfYXNzaWdubWVudFwiLFxuICAgICAgICAgICAgc291cmNlSWQ6IGFzc2lnbm1lbnQuaWQsXG4gICAgICAgICAgICBzdGFydHNBdDogYXNzaWdubWVudC5zdGFydHNBdCxcbiAgICAgICAgICAgIGV4cGlyZXNBdDogYXNzaWdubWVudC5leHBpcmVzQXQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjcmVhdGVkID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBtYXRlcmlhbGl6ZWQubWFwKChwZXJtaXNzaW9uKSA9PlxuICAgICAgICB0aGlzLmNyZWF0ZShcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZW5hbnQ6IHBlcm1pc3Npb24udGVuYW50SWQsXG4gICAgICAgICAgICBwcmluY2lwYWw6IHBlcm1pc3Npb24ucHJpbmNpcGFsSWQsXG4gICAgICAgICAgICBwZXJtaXNzaW9uS2V5OiBwZXJtaXNzaW9uLnBlcm1pc3Npb25LZXksXG4gICAgICAgICAgICBzY29wZUtpbmQ6IHBlcm1pc3Npb24uc2NvcGVLaW5kLFxuICAgICAgICAgICAgc2NvcGVJZDogcGVybWlzc2lvbi5zY29wZUlkLFxuICAgICAgICAgICAgc291cmNlS2luZDogcGVybWlzc2lvbi5zb3VyY2VLaW5kLFxuICAgICAgICAgICAgc291cmNlSWQ6IHBlcm1pc3Npb24uc291cmNlSWQsXG4gICAgICAgICAgICBzdGFydHNBdDogcGVybWlzc2lvbi5zdGFydHNBdCxcbiAgICAgICAgICAgIGV4cGlyZXNBdDogcGVybWlzc2lvbi5leHBpcmVzQXQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICAuLi5hcmdzXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICAgIHJldHVybiBjcmVhdGVkO1xuICB9XG5cbiAgQHRyYW5zYWN0aW9uYWwoKVxuICBhc3luYyByZWJ1aWxkRm9yVGVuYW50KHRlbmFudElkOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcHJpbmNpcGFscyA9IChhd2FpdCBuZXcgUHJpbmNpcGFsU2VydmljZSgpLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigocHJpbmNpcGFsKSA9PiBzYW1lVGVuYW50KHByaW5jaXBhbC50ZW5hbnQsIHRlbmFudElkKSk7XG4gICAgZm9yIChjb25zdCBwcmluY2lwYWwgb2YgcHJpbmNpcGFscykge1xuICAgICAgYXdhaXQgdGhpcy5yZWJ1aWxkRm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWwuaWQsIC4uLmFyZ3MpO1xuICAgIH1cbiAgfVxufVxuIl19
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0aXZlLXBlcm1pc3Npb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVmZmVjdGl2ZS1wZXJtaXNzaW9uLnNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxD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dEUsVUFBVSxDQUFDO0lBQ1AsSUFBQSx3QkFBYSxHQUFFO0lBQ2YsVUFBVSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUM7SUFDbkMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUM7Q0FDM0MsRUFBRSwwQkFBMEIsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbkUsOGtqQkFBOGtqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlY29yYXRlID0gKHRoaXMgJiYgdGhpcy5fX2RlY29yYXRlKSB8fCBmdW5jdGlvbiAoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufTtcbnZhciBfX21ldGFkYXRhID0gKHRoaXMgJiYgdGhpcy5fX21ldGFkYXRhKSB8fCBmdW5jdGlvbiAoaywgdikge1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTtcbn07XG5pbXBvcnQgeyBCYXNlTW9kZWxTZXJ2aWNlLCByZWxhdGlvbklkLCByZWxhdGlvbk1hdGNoLCBzYW1lVGVuYW50LCB0cmFuc2FjdGlvbmFsIH0gZnJvbSBcIi4vLi4vdXRpbHMuanNcIjtcbmltcG9ydCB7IFNjb3BlS2luZCB9IGZyb20gXCIuLy4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBFZmZlY3RpdmVQZXJtaXNzaW9uIH0gZnJvbSBcIi4uL21vZGVscy9lZmZlY3RpdmUtcGVybWlzc2lvbi5tb2RlbFwiO1xuaW1wb3J0IHsgUm9sZUFzc2lnbm1lbnRTZXJ2aWNlIH0gZnJvbSBcIi4vcm9sZS1hc3NpZ25tZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IFJvbGVQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gXCIuL3JvbGUtcGVybWlzc2lvbi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gXCIuL3Blcm1pc3Npb24uc2VydmljZVwiO1xuaW1wb3J0IHsgR3JvdXBNZW1iZXJzaGlwU2VydmljZSB9IGZyb20gXCIuL2dyb3VwLW1lbWJlcnNoaXAuc2VydmljZVwiO1xuaW1wb3J0IHsgUHJpbmNpcGFsU2VydmljZSB9IGZyb20gXCIuL3ByaW5jaXBhbC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBPcmdVbml0Q2xvc3VyZVNlcnZpY2UgfSBmcm9tIFwiLi9vcmctdW5pdC1jbG9zdXJlLnNlcnZpY2VcIjtcbmltcG9ydCB7IEluaGVyaXRhbmNlQmxvY2tTZXJ2aWNlIH0gZnJvbSBcIi4vaW5oZXJpdGFuY2UtYmxvY2suc2VydmljZVwiO1xuZXhwb3J0IGNsYXNzIEVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKEVmZmVjdGl2ZVBlcm1pc3Npb24pO1xuICAgIH1cbiAgICBhc3luYyBsaXN0Rm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChwZXJtaXNzaW9uKSA9PiBzYW1lVGVuYW50KHBlcm1pc3Npb24udGVuYW50LCB0ZW5hbnRJZCkgJiYgcmVsYXRpb25NYXRjaChwZXJtaXNzaW9uLnByaW5jaXBhbCwgcHJpbmNpcGFsSWQpKTtcbiAgICB9XG4gICAgYXN5bmMgbGlzdEZvclNjb3BlKHRlbmFudElkLCBzY29wZUtpbmQsIHNjb3BlSWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigocGVybWlzc2lvbikgPT4gc2FtZVRlbmFudChwZXJtaXNzaW9uLnRlbmFudCwgdGVuYW50SWQpICYmIHBlcm1pc3Npb24uc2NvcGVLaW5kID09PSBzY29wZUtpbmQgJiYgcGVybWlzc2lvbi5zY29wZUlkID09PSBzY29wZUlkKTtcbiAgICB9XG4gICAgYXN5bmMgaGFzUGVybWlzc2lvbih0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIHBlcm1pc3Npb25LZXksIHNjb3BlS2luZCwgc2NvcGVJZCwgYXQsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RGb3JQcmluY2lwYWwodGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKSkuc29tZSgocGVybWlzc2lvbikgPT4gcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5ID09PSBwZXJtaXNzaW9uS2V5ICYmXG4gICAgICAgICAgICBwZXJtaXNzaW9uLnNjb3BlS2luZCA9PT0gc2NvcGVLaW5kICYmXG4gICAgICAgICAgICBwZXJtaXNzaW9uLnNjb3BlSWQgPT09IHNjb3BlSWQgJiZcbiAgICAgICAgICAgICghcGVybWlzc2lvbi5zdGFydHNBdCB8fCAhYXQgfHwgcGVybWlzc2lvbi5zdGFydHNBdCA8PSBhdCkgJiZcbiAgICAgICAgICAgICghcGVybWlzc2lvbi5leHBpcmVzQXQgfHwgIWF0IHx8IHBlcm1pc3Npb24uZXhwaXJlc0F0ID49IGF0KSk7XG4gICAgfVxuICAgIGFzeW5jIGRlbGV0ZUZvclByaW5jaXBhbCh0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgZm9yIChjb25zdCByb3cgb2YgYXdhaXQgdGhpcy5saXN0Rm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncykpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlQnlJZChyb3cuaWQsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGRlbGV0ZUZvclRlbmFudCh0ZW5hbnRJZCwgLi4uYXJncykge1xuICAgICAgICBmb3IgKGNvbnN0IHJvdyBvZiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKHBlcm1pc3Npb24pID0+IHNhbWVUZW5hbnQocGVybWlzc2lvbi50ZW5hbnQsIHRlbmFudElkKSkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlQnlJZChyb3cuaWQsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIHJlYnVpbGRGb3JQcmluY2lwYWwodGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlRm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncyk7XG4gICAgICAgIGNvbnN0IHJvbGVBc3NpZ25tZW50U2VydmljZSA9IG5ldyBSb2xlQXNzaWdubWVudFNlcnZpY2UoKTtcbiAgICAgICAgY29uc3Qgcm9sZVBlcm1pc3Npb25TZXJ2aWNlID0gbmV3IFJvbGVQZXJtaXNzaW9uU2VydmljZSgpO1xuICAgICAgICBjb25zdCBwZXJtaXNzaW9uU2VydmljZSA9IG5ldyBQZXJtaXNzaW9uU2VydmljZSgpO1xuICAgICAgICBjb25zdCBncm91cE1lbWJlcnNoaXBTZXJ2aWNlID0gbmV3IEdyb3VwTWVtYmVyc2hpcFNlcnZpY2UoKTtcbiAgICAgICAgY29uc3QgcHJpbmNpcGFsU2VydmljZSA9IG5ldyBQcmluY2lwYWxTZXJ2aWNlKCk7XG4gICAgICAgIGNvbnN0IG9yZ1VuaXRDbG9zdXJlU2VydmljZSA9IG5ldyBPcmdVbml0Q2xvc3VyZVNlcnZpY2UoKTtcbiAgICAgICAgY29uc3QgaW5oZXJpdGFuY2VCbG9ja1NlcnZpY2UgPSBuZXcgSW5oZXJpdGFuY2VCbG9ja1NlcnZpY2UoKTtcbiAgICAgICAgY29uc3QgbWF0ZXJpYWxpemVkID0gW107XG4gICAgICAgIGNvbnN0IHNvdXJjZUFzc2lnbm1lbnRzID0gYXdhaXQgcm9sZUFzc2lnbm1lbnRTZXJ2aWNlLmxpc3RQcmluY2lwYWxBc3NpZ25tZW50cyh0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIC4uLmFyZ3MpO1xuICAgICAgICBjb25zdCBncm91cE1lbWJlcnNoaXBzID0gYXdhaXQgZ3JvdXBNZW1iZXJzaGlwU2VydmljZS5saXN0UHJpbmNpcGFsR3JvdXBzKHByaW5jaXBhbElkLCAuLi5hcmdzKTtcbiAgICAgICAgY29uc3QgZ3JvdXBBc3NpZ25tZW50cyA9IChhd2FpdCBQcm9taXNlLmFsbChncm91cE1lbWJlcnNoaXBzLm1hcChhc3luYyAobWVtYmVyc2hpcCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZ3JvdXBQcmluY2lwYWwgPSBhd2FpdCBwcmluY2lwYWxTZXJ2aWNlLmdldEdyb3VwUHJpbmNpcGFsKHJlbGF0aW9uSWQobWVtYmVyc2hpcC50ZW5hbnQpLCByZWxhdGlvbklkKG1lbWJlcnNoaXAuZ3JvdXApLCAuLi5hcmdzKTtcbiAgICAgICAgICAgIHJldHVybiByb2xlQXNzaWdubWVudFNlcnZpY2UubGlzdFByaW5jaXBhbEFzc2lnbm1lbnRzKHRlbmFudElkLCBncm91cFByaW5jaXBhbC5pZCwgLi4uYXJncyk7XG4gICAgICAgIH0pKSkuZmxhdCgpO1xuICAgICAgICBjb25zdCBhc3NpZ25tZW50cyA9IFsuLi5zb3VyY2VBc3NpZ25tZW50cywgLi4uZ3JvdXBBc3NpZ25tZW50c107XG4gICAgICAgIGZvciAoY29uc3QgYXNzaWdubWVudCBvZiBhc3NpZ25tZW50cykge1xuICAgICAgICAgICAgY29uc3Qgcm9sZVBlcm1pc3Npb25zID0gYXdhaXQgcm9sZVBlcm1pc3Npb25TZXJ2aWNlLmxpc3RSb2xlUGVybWlzc2lvbnMocmVsYXRpb25JZChhc3NpZ25tZW50LnJvbGUpLCAuLi5hcmdzKTtcbiAgICAgICAgICAgIGNvbnN0IHBlcm1pc3Npb25zID0gYXdhaXQgUHJvbWlzZS5hbGwocm9sZVBlcm1pc3Npb25zLm1hcChhc3luYyAocm9sZVBlcm1pc3Npb24pID0+IHBlcm1pc3Npb25TZXJ2aWNlLmZpbmRPbmVCeShcImlkXCIsIHJlbGF0aW9uSWQocm9sZVBlcm1pc3Npb24ucGVybWlzc2lvbiksIC4uLmFyZ3MpKSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb24gb2YgcGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXBlcm1pc3Npb24pXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjb3BlS2luZCA9IGFzc2lnbm1lbnQuc2NvcGVLaW5kO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjb3BlSWQgPSBhc3NpZ25tZW50LnNjb3BlSWQ7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2NvcGVzID0gW107XG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlS2luZCA9PT0gU2NvcGVLaW5kLlRlbmFudCkge1xuICAgICAgICAgICAgICAgICAgICBzY29wZXMucHVzaCh7IHNjb3BlS2luZCwgc2NvcGVJZDogdGVuYW50SWQgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNjb3BlS2luZCA9PT0gU2NvcGVLaW5kLlJlc291cmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3Blcy5wdXNoKHsgc2NvcGVLaW5kLCBzY29wZUlkIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChzY29wZUtpbmQgPT09IFNjb3BlS2luZC5PcmdVbml0ICYmICFhc3NpZ25tZW50LmluaGVyaXREb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3Blcy5wdXNoKHsgc2NvcGVLaW5kLCBzY29wZUlkIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChzY29wZUtpbmQgPT09IFNjb3BlS2luZC5PcmdVbml0ICYmIGFzc2lnbm1lbnQuaW5oZXJpdERvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVzY2VuZGFudHMgPSBhd2FpdCBvcmdVbml0Q2xvc3VyZVNlcnZpY2UubGlzdERlc2NlbmRhbnRzKHRlbmFudElkLCBzY29wZUlkLCAuLi5hcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGVzLnB1c2goLi4uZGVzY2VuZGFudHMubWFwKChyb3cpID0+ICh7IHNjb3BlS2luZCwgc2NvcGVJZDogcmVsYXRpb25JZChyb3cuZGVzY2VuZGFudCkgfSkpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzY29wZWQgb2Ygc2NvcGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzY29wZUtpbmQgPT09IFNjb3BlS2luZC5PcmdVbml0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhc3NpZ25tZW50LmluaGVyaXREb3duICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZWQuc2NvcGVJZCAhPT0gc2NvcGVJZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKGF3YWl0IGluaGVyaXRhbmNlQmxvY2tTZXJ2aWNlLmNhdGVnb3J5QmxvY2tlZEZvckFuY2VzdG9yKHRlbmFudElkLCBzY29wZWQuc2NvcGVJZCwgc2NvcGVJZCwgcGVybWlzc2lvbi5jYXRlZ29yeSwgLi4uYXJncykpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBtYXRlcmlhbGl6ZWQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbmFudElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJpbmNpcGFsSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJtaXNzaW9uS2V5OiBwZXJtaXNzaW9uLmtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlS2luZDogc2NvcGVkLnNjb3BlS2luZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlSWQ6IHNjb3BlZC5zY29wZUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlS2luZDogXCJyb2xlX2Fzc2lnbm1lbnRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUlkOiBhc3NpZ25tZW50LmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRzQXQ6IGFzc2lnbm1lbnQuc3RhcnRzQXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBpcmVzQXQ6IGFzc2lnbm1lbnQuZXhwaXJlc0F0LFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3JlYXRlZCA9IGF3YWl0IFByb21pc2UuYWxsKG1hdGVyaWFsaXplZC5tYXAoKHBlcm1pc3Npb24pID0+IHRoaXMuY3JlYXRlKHtcbiAgICAgICAgICAgIHRlbmFudDogcGVybWlzc2lvbi50ZW5hbnRJZCxcbiAgICAgICAgICAgIHByaW5jaXBhbDogcGVybWlzc2lvbi5wcmluY2lwYWxJZCxcbiAgICAgICAgICAgIHBlcm1pc3Npb25LZXk6IHBlcm1pc3Npb24ucGVybWlzc2lvbktleSxcbiAgICAgICAgICAgIHNjb3BlS2luZDogcGVybWlzc2lvbi5zY29wZUtpbmQsXG4gICAgICAgICAgICBzY29wZUlkOiBwZXJtaXNzaW9uLnNjb3BlSWQsXG4gICAgICAgICAgICBzb3VyY2VLaW5kOiBwZXJtaXNzaW9uLnNvdXJjZUtpbmQsXG4gICAgICAgICAgICBzb3VyY2VJZDogcGVybWlzc2lvbi5zb3VyY2VJZCxcbiAgICAgICAgICAgIHN0YXJ0c0F0OiBwZXJtaXNzaW9uLnN0YXJ0c0F0LFxuICAgICAgICAgICAgZXhwaXJlc0F0OiBwZXJtaXNzaW9uLmV4cGlyZXNBdCxcbiAgICAgICAgfSwgLi4uYXJncykpKTtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgfVxuICAgIGFzeW5jIHJlYnVpbGRGb3JUZW5hbnQodGVuYW50SWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgcHJpbmNpcGFscyA9IChhd2FpdCBuZXcgUHJpbmNpcGFsU2VydmljZSgpLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigocHJpbmNpcGFsKSA9PiBzYW1lVGVuYW50KHByaW5jaXBhbC50ZW5hbnQsIHRlbmFudElkKSk7XG4gICAgICAgIGZvciAoY29uc3QgcHJpbmNpcGFsIG9mIHByaW5jaXBhbHMpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVidWlsZEZvclByaW5jaXBhbCh0ZW5hbnRJZCwgcHJpbmNpcGFsLmlkLCAuLi5hcmdzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbl9fZGVjb3JhdGUoW1xuICAgIHRyYW5zYWN0aW9uYWwoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbU3RyaW5nLCBTdHJpbmcsIE9iamVjdF0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRWZmZWN0aXZlUGVybWlzc2lvblNlcnZpY2UucHJvdG90eXBlLCBcInJlYnVpbGRGb3JQcmluY2lwYWxcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICB0cmFuc2FjdGlvbmFsKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW1N0cmluZywgT2JqZWN0XSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBFZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZS5wcm90b3R5cGUsIFwicmVidWlsZEZvclRlbmFudFwiLCBudWxsKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVpXWm1aV04wYVhabExYQmxjbTFwYzNOcGIyNHVjMlZ5ZG1salpTNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTl1WVcxbGMzQmhZMlZ6TDNObGNuWnBZMlZ6TDJWbVptVmpkR2wyWlMxd1pYSnRhWE56YVc5dUxuTmxjblpwWTJVdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN08wRkJRVUVzVDBGQlR5eEZRVUZGTEdkQ1FVRm5RaXhGUVVGRkxGVkJRVlVzUlVGQlJTeGhRVUZoTEVWQlFVVXNWVUZCVlN4RlFVRkZMR0ZCUVdFc1JVRkJSU3h6UWtGQmFVSTdRVUZEYkVjc1QwRkJUeXhGUVVFclFpeFRRVUZUTEVWQlFVVXNjMEpCUVdsQ08wRkJRMnhGTEU5QlFVOHNSVUZCUlN4dFFrRkJiVUlzUlVGQlJTeE5RVUZOTEhORFFVRnpReXhEUVVGRE8wRkJRek5GTEU5QlFVOHNSVUZCUlN4eFFrRkJjVUlzUlVGQlJTeE5RVUZOTERKQ1FVRXlRaXhEUVVGRE8wRkJRMnhGTEU5QlFVOHNSVUZCUlN4eFFrRkJjVUlzUlVGQlJTeE5RVUZOTERKQ1FVRXlRaXhEUVVGRE8wRkJRMnhGTEU5QlFVOHNSVUZCUlN4cFFrRkJhVUlzUlVGQlJTeE5RVUZOTEhOQ1FVRnpRaXhEUVVGRE8wRkJRM3BFTEU5QlFVOHNSVUZCUlN4elFrRkJjMElzUlVGQlJTeE5RVUZOTERSQ1FVRTBRaXhEUVVGRE8wRkJRM0JGTEU5QlFVOHNSVUZCUlN4blFrRkJaMElzUlVGQlJTeE5RVUZOTEhGQ1FVRnhRaXhEUVVGRE8wRkJRM1pFTEU5QlFVOHNSVUZCUlN4eFFrRkJjVUlzUlVGQlJTeE5RVUZOTERSQ1FVRTBRaXhEUVVGRE8wRkJRMjVGTEU5QlFVOHNSVUZCUlN4MVFrRkJkVUlzUlVGQlJTeE5RVUZOTERaQ1FVRTJRaXhEUVVGRE8wRkJSWFJGTEUxQlFVMHNUMEZCVHl3d1FrRkJNa0lzVTBGQlVTeG5Ra0ZCY1VNN1NVRkRia1k3VVVGRFJTeExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dEpRVU0zUWl4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRkZCUVdkQ0xFVkJRVVVzVjBGQmJVSXNSVUZCUlN4SFFVRkhMRWxCUVZjN1VVRkRNVVVzVDBGQlR5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVTjZReXhEUVVGRExGVkJRVlVzUlVGQlJTeEZRVUZGTEVOQlFVTXNWVUZCVlN4RFFVRkRMRlZCUVZVc1EwRkJReXhOUVVGTkxFVkJRVVVzVVVGQlVTeERRVUZETEVsQlFVa3NZVUZCWVN4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGVExFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlF6VkhMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEZsQlFWa3NRMEZEYUVJc1VVRkJaMElzUlVGRGFFSXNVMEZCYjBJc1JVRkRjRUlzVDBGQlpTeEZRVU5tTEVkQlFVY3NTVUZCVnp0UlFVVmtMRTlCUVU4c1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGRGVrTXNRMEZCUXl4VlFVRlZMRVZCUVVVc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eFZRVUZWTEVOQlFVTXNUVUZCVFN4RlFVRkZMRkZCUVZFc1EwRkJReXhKUVVGSkxGVkJRVlVzUTBGQlF5eFRRVUZUTEV0QlFVc3NVMEZCVXl4SlFVRkpMRlZCUVZVc1EwRkJReXhQUVVGUExFdEJRVXNzVDBGQlR5eERRVU5vU1N4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eGhRVUZoTEVOQlEycENMRkZCUVdkQ0xFVkJRMmhDTEZkQlFXMUNMRVZCUTI1Q0xHRkJRWEZDTEVWQlEzSkNMRk5CUVc5Q0xFVkJRM0JDTEU5QlFXVXNSVUZEWml4RlFVRlRMRVZCUTFRc1IwRkJSeXhKUVVGWE8xRkJSV1FzVDBGQlR5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEZGQlFWRXNSVUZCUlN4WFFVRlhMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZEZGtVc1EwRkJReXhWUVVGVkxFVkJRVVVzUlVGQlJTeERRVU5pTEZWQlFWVXNRMEZCUXl4aFFVRmhMRXRCUVVzc1lVRkJZVHRaUVVNeFF5eFZRVUZWTEVOQlFVTXNVMEZCVXl4TFFVRkxMRk5CUVZNN1dVRkRiRU1zVlVGQlZTeERRVUZETEU5QlFVOHNTMEZCU3l4UFFVRlBPMWxCUXpsQ0xFTkJRVU1zUTBGQlF5eFZRVUZWTEVOQlFVTXNVVUZCVVN4SlFVRkpMRU5CUVVNc1JVRkJSU3hKUVVGSkxGVkJRVlVzUTBGQlF5eFJRVUZSTEVsQlFVa3NSVUZCUlN4RFFVRkRPMWxCUXpGRUxFTkJRVU1zUTBGQlF5eFZRVUZWTEVOQlFVTXNVMEZCVXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hKUVVGSkxGVkJRVlVzUTBGQlF5eFRRVUZUTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUXk5RUxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR3RDUVVGclFpeERRVUZETEZGQlFXZENMRVZCUVVVc1YwRkJiVUlzUlVGQlJTeEhRVUZITEVsQlFWYzdVVUZETlVVc1MwRkJTeXhOUVVGTkxFZEJRVWNzU1VGQlNTeE5RVUZOTEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eFJRVUZSTEVWQlFVVXNWMEZCVnl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU01UlN4TlFVRk5MRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM3BETEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHVkJRV1VzUTBGQlF5eFJRVUZuUWl4RlFVRkZMRWRCUVVjc1NVRkJWenRSUVVOd1JDeExRVUZMTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eFZRVUZWTEVWQlFVVXNSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhWUVVGVkxFTkJRVU1zVFVGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVOb1NDeE5RVUZOTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTNwRExFTkJRVU03U1VGRFNDeERRVUZETzBsQlIwc3NRVUZCVGl4TFFVRkxMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNVVUZCWjBJc1JVRkJSU3hYUVVGdFFpeEZRVUZGTEVkQlFVY3NTVUZCVnp0UlFVTTNSU3hOUVVGTkxFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhSUVVGUkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkZPVVFzVFVGQlRTeHhRa0ZCY1VJc1IwRkJSeXhKUVVGSkxIRkNRVUZ4UWl4RlFVRkZMRU5CUVVNN1VVRkRNVVFzVFVGQlRTeHhRa0ZCY1VJc1IwRkJSeXhKUVVGSkxIRkNRVUZ4UWl4RlFVRkZMRU5CUVVNN1VVRkRNVVFzVFVGQlRTeHBRa0ZCYVVJc1IwRkJSeXhKUVVGSkxHbENRVUZwUWl4RlFVRkZMRU5CUVVNN1VVRkRiRVFzVFVGQlRTeHpRa0ZCYzBJc1IwRkJSeXhKUVVGSkxITkNRVUZ6UWl4RlFVRkZMRU5CUVVNN1VVRkROVVFzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhKUVVGSkxHZENRVUZuUWl4RlFVRkZMRU5CUVVNN1VVRkRhRVFzVFVGQlRTeHhRa0ZCY1VJc1IwRkJSeXhKUVVGSkxIRkNRVUZ4UWl4RlFVRkZMRU5CUVVNN1VVRkRNVVFzVFVGQlRTeDFRa0ZCZFVJc1IwRkJSeXhKUVVGSkxIVkNRVUYxUWl4RlFVRkZMRU5CUVVNN1VVRkZPVVFzVFVGQlRTeFpRVUZaTEVkQlFXdERMRVZCUVVVc1EwRkJRenRSUVVOMlJDeE5RVUZOTEdsQ1FVRnBRaXhIUVVGSExFMUJRVTBzY1VKQlFYRkNMRU5CUVVNc2QwSkJRWGRDTEVOQlFVTXNVVUZCVVN4RlFVRkZMRmRCUVZjc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlF5OUhMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NUVUZCVFN4elFrRkJjMElzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhYUVVGWExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTm9SeXhOUVVGTkxHZENRVUZuUWl4SFFVRkhMRU5CUTNaQ0xFMUJRVTBzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZEWml4blFrRkJaMElzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RlFVRkZMRlZCUVZVc1JVRkJSU3hGUVVGRk8xbEJRM2hETEUxQlFVMHNZMEZCWXl4SFFVRkhMRTFCUVUwc1owSkJRV2RDTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zVlVGQlZTeERRVUZETEZWQlFWVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hWUVVGVkxFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03V1VGRGRFa3NUMEZCVHl4eFFrRkJjVUlzUTBGQlF5eDNRa0ZCZDBJc1EwRkJReXhSUVVGUkxFVkJRVVVzWTBGQll5eERRVUZETEVWQlFVVXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRemxHTEVOQlFVTXNRMEZCUXl4RFFVTklMRU5CUTBZc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dFJRVVZVTEUxQlFVMHNWMEZCVnl4SFFVRkhMRU5CUVVNc1IwRkJSeXhwUWtGQmFVSXNSVUZCUlN4SFFVRkhMR2RDUVVGblFpeERRVUZETEVOQlFVTTdVVUZEYUVVc1MwRkJTeXhOUVVGTkxGVkJRVlVzU1VGQlNTeFhRVUZYTEVWQlFVVXNRMEZCUXp0WlFVTnlReXhOUVVGTkxHVkJRV1VzUjBGQlJ5eE5RVUZOTEhGQ1FVRnhRaXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRlZCUVZVc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVNNVJ5eE5RVUZOTEZkQlFWY3NSMEZCUnl4TlFVRk5MRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRMjVETEdWQlFXVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhGUVVGRkxHTkJRV01zUlVGQlJTeEZRVUZGTEVOQlF6TkRMR2xDUVVGcFFpeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1ZVRkJWU3hEUVVGRExHTkJRV01zUTBGQlF5eFZRVUZWTEVOQlFWVXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVNelJpeERRVU5HTEVOQlFVTTdXVUZEUml4TFFVRkxMRTFCUVUwc1ZVRkJWU3hKUVVGSkxGZEJRVmNzUlVGQlJTeERRVUZETzJkQ1FVTnlReXhKUVVGSkxFTkJRVU1zVlVGQlZUdHZRa0ZCUlN4VFFVRlRPMmRDUVVNeFFpeE5RVUZOTEZOQlFWTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1UwRkJVeXhEUVVGRE8yZENRVU4yUXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhWUVVGVkxFTkJRVU1zVDBGQlR5eERRVUZETzJkQ1FVTnVReXhOUVVGTkxFMUJRVTBzUjBGQmNVUXNSVUZCUlN4RFFVRkRPMmRDUVVOd1JTeEpRVUZKTEZOQlFWTXNTMEZCU3l4VFFVRlRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03YjBKQlEyNURMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeFRRVUZUTEVWQlFVVXNUMEZCVHl4RlFVRkZMRkZCUVZFc1JVRkJSU3hEUVVGRExFTkJRVU03WjBKQlEyaEVMRU5CUVVNN2NVSkJRVTBzU1VGQlNTeFRRVUZUTEV0QlFVc3NVMEZCVXl4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRE8yOUNRVU0xUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzVTBGQlV5eEZRVUZGTEU5QlFVOHNSVUZCUlN4RFFVRkRMRU5CUVVNN1owSkJRM1JETEVOQlFVTTdjVUpCUVUwc1NVRkJTU3hUUVVGVExFdEJRVXNzVTBGQlV5eERRVUZETEU5QlFVOHNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dHZRa0ZEZEVVc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEZOQlFWTXNSVUZCUlN4UFFVRlBMRVZCUVVVc1EwRkJReXhEUVVGRE8yZENRVU4wUXl4RFFVRkRPM0ZDUVVGTkxFbEJRVWtzVTBGQlV5eExRVUZMTEZOQlFWTXNRMEZCUXl4UFFVRlBMRWxCUVVrc1ZVRkJWU3hEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETzI5Q1FVTnlSU3hOUVVGTkxGZEJRVmNzUjBGQlJ5eE5RVUZOTEhGQ1FVRnhRaXhEUVVGRExHVkJRV1VzUTBGQlF5eFJRVUZSTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03YjBKQlF6VkdMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRTlCUVU4c1JVRkJSU3hWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEZWQlFWVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEycEhMRU5CUVVNN1owSkJSVVFzUzBGQlN5eE5RVUZOTEUxQlFVMHNTVUZCU1N4TlFVRk5MRVZCUVVVc1EwRkJRenR2UWtGRE5VSXNTVUZEUlN4VFFVRlRMRXRCUVVzc1UwRkJVeXhEUVVGRExFOUJRVTg3ZDBKQlF5OUNMRlZCUVZVc1EwRkJReXhYUVVGWE8zZENRVU4wUWl4TlFVRk5MRU5CUVVNc1QwRkJUeXhMUVVGTExFOUJRVTg3ZDBKQlF6RkNMRU5CUVVNc1RVRkJUU3gxUWtGQmRVSXNRMEZCUXl3d1FrRkJNRUlzUTBGRGRrUXNVVUZCVVN4RlFVTlNMRTFCUVUwc1EwRkJReXhQUVVGUExFVkJRMlFzVDBGQlR5eEZRVU5RTEZWQlFWVXNRMEZCUXl4UlFVRlJMRVZCUTI1Q0xFZEJRVWNzU1VGQlNTeERRVU5TTEVOQlFVTXNSVUZEUml4RFFVRkRPM2RDUVVORUxGTkJRVk03YjBKQlExZ3NRMEZCUXp0dlFrRkRSQ3haUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETzNkQ1FVTm9RaXhGUVVGRkxFVkJRVVVzUlVGQlJUdDNRa0ZEVGl4UlFVRlJPM2RDUVVOU0xGZEJRVmM3ZDBKQlExZ3NZVUZCWVN4RlFVRkZMRlZCUVZVc1EwRkJReXhIUVVGSE8zZENRVU0zUWl4VFFVRlRMRVZCUVVVc1RVRkJUU3hEUVVGRExGTkJRVk03ZDBKQlF6TkNMRTlCUVU4c1JVRkJSU3hOUVVGTkxFTkJRVU1zVDBGQlR6dDNRa0ZEZGtJc1ZVRkJWU3hGUVVGRkxHbENRVUZwUWp0M1FrRkROMElzVVVGQlVTeEZRVUZGTEZWQlFWVXNRMEZCUXl4RlFVRkZPM2RDUVVOMlFpeFJRVUZSTEVWQlFVVXNWVUZCVlN4RFFVRkRMRkZCUVZFN2QwSkJRemRDTEZOQlFWTXNSVUZCUlN4VlFVRlZMRU5CUVVNc1UwRkJVenR4UWtGRGFFTXNRMEZCUXl4RFFVRkRPMmRDUVVOTUxFTkJRVU03V1VGRFNDeERRVUZETzFGQlEwZ3NRMEZCUXp0UlFVVkVMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZETDBJc1dVRkJXU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZWQlFWVXNSVUZCUlN4RlFVRkZMRU5CUXpsQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlExUTdXVUZEUlN4TlFVRk5MRVZCUVVVc1ZVRkJWU3hEUVVGRExGRkJRVkU3V1VGRE0wSXNVMEZCVXl4RlFVRkZMRlZCUVZVc1EwRkJReXhYUVVGWE8xbEJRMnBETEdGQlFXRXNSVUZCUlN4VlFVRlZMRU5CUVVNc1lVRkJZVHRaUVVOMlF5eFRRVUZUTEVWQlFVVXNWVUZCVlN4RFFVRkRMRk5CUVZNN1dVRkRMMElzVDBGQlR5eEZRVUZGTEZWQlFWVXNRMEZCUXl4UFFVRlBPMWxCUXpOQ0xGVkJRVlVzUlVGQlJTeFZRVUZWTEVOQlFVTXNWVUZCVlR0WlFVTnFReXhSUVVGUkxFVkJRVVVzVlVGQlZTeERRVUZETEZGQlFWRTdXVUZETjBJc1VVRkJVU3hGUVVGRkxGVkJRVlVzUTBGQlF5eFJRVUZSTzFsQlF6ZENMRk5CUVZNc1JVRkJSU3hWUVVGVkxFTkJRVU1zVTBGQlV6dFRRVU5vUXl4RlFVTkVMRWRCUVVjc1NVRkJTU3hEUVVOU0xFTkJRMFlzUTBGRFJpeERRVUZETzFGQlEwWXNUMEZCVHl4UFFVRlBMRU5CUVVNN1NVRkRha0lzUTBGQlF6dEpRVWRMTEVGQlFVNHNTMEZCU3l4RFFVRkRMR2RDUVVGblFpeERRVUZETEZGQlFXZENMRVZCUVVVc1IwRkJSeXhKUVVGWE8xRkJRM0pFTEUxQlFVMHNWVUZCVlN4SFFVRkhMRU5CUVVNc1RVRkJUU3hKUVVGSkxHZENRVUZuUWl4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUlVGQlJTeERRVUZETEZWQlFWVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1RVRkJUU3hGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYWtrc1MwRkJTeXhOUVVGTkxGTkJRVk1zU1VGQlNTeFZRVUZWTEVWQlFVVXNRMEZCUXp0WlFVTnVReXhOUVVGTkxFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhSUVVGUkxFVkJRVVVzVTBGQlV5eERRVUZETEVWQlFVVXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRMnhGTEVOQlFVTTdTVUZEU0N4RFFVRkRPME5CUTBZN1FVRXhSMDg3U1VGRVRDeGhRVUZoTEVWQlFVVTdPenM3Y1VWQmEwZG1PMEZCUjBzN1NVRkVUQ3hoUVVGaExFVkJRVVU3T3pzN2EwVkJUV1lpTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZXlCQ1lYTmxUVzlrWld4VFpYSjJhV05sTENCeVpXeGhkR2x2Ymtsa0xDQnlaV3hoZEdsdmJrMWhkR05vTENCellXMWxWR1Z1WVc1MExDQjBjbUZ1YzJGamRHbHZibUZzSUgwZ1puSnZiU0JjSWk0dUwzVjBhV3h6WENJN1hHNXBiWEJ2Y25RZ2V5QkZabVpsWTNScGRtVlFaWEp0YVhOemFXOXVVMjVoY0hOb2IzUXNJRk5qYjNCbFMybHVaQ0I5SUdaeWIyMGdYQ0l1TGk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1JXWm1aV04wYVhabFVHVnliV2x6YzJsdmJpQjlJR1p5YjIwZ1hDSXVMaTl0YjJSbGJITXZaV1ptWldOMGFYWmxMWEJsY20xcGMzTnBiMjR1Ylc5a1pXeGNJanRjYm1sdGNHOXlkQ0I3SUZKdmJHVkJjM05wWjI1dFpXNTBVMlZ5ZG1salpTQjlJR1p5YjIwZ1hDSXVMM0p2YkdVdFlYTnphV2R1YldWdWRDNXpaWEoyYVdObFhDSTdYRzVwYlhCdmNuUWdleUJTYjJ4bFVHVnliV2x6YzJsdmJsTmxjblpwWTJVZ2ZTQm1jbTl0SUZ3aUxpOXliMnhsTFhCbGNtMXBjM05wYjI0dWMyVnlkbWxqWlZ3aU8xeHVhVzF3YjNKMElIc2dVR1Z5YldsemMybHZibE5sY25acFkyVWdmU0JtY205dElGd2lMaTl3WlhKdGFYTnphVzl1TG5ObGNuWnBZMlZjSWp0Y2JtbHRjRzl5ZENCN0lFZHliM1Z3VFdWdFltVnljMmhwY0ZObGNuWnBZMlVnZlNCbWNtOXRJRndpTGk5bmNtOTFjQzF0WlcxaVpYSnphR2x3TG5ObGNuWnBZMlZjSWp0Y2JtbHRjRzl5ZENCN0lGQnlhVzVqYVhCaGJGTmxjblpwWTJVZ2ZTQm1jbTl0SUZ3aUxpOXdjbWx1WTJsd1lXd3VjMlZ5ZG1salpWd2lPMXh1YVcxd2IzSjBJSHNnVDNKblZXNXBkRU5zYjNOMWNtVlRaWEoyYVdObElIMGdabkp2YlNCY0lpNHZiM0puTFhWdWFYUXRZMnh2YzNWeVpTNXpaWEoyYVdObFhDSTdYRzVwYlhCdmNuUWdleUJKYm1obGNtbDBZVzVqWlVKc2IyTnJVMlZ5ZG1salpTQjlJR1p5YjIwZ1hDSXVMMmx1YUdWeWFYUmhibU5sTFdKc2IyTnJMbk5sY25acFkyVmNJanRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRVZtWm1WamRHbDJaVkJsY20xcGMzTnBiMjVUWlhKMmFXTmxJR1Y0ZEdWdVpITWdRbUZ6WlUxdlpHVnNVMlZ5ZG1salpUeEZabVpsWTNScGRtVlFaWEp0YVhOemFXOXVQaUI3WEc0Z0lHTnZibk4wY25WamRHOXlLQ2tnZTF4dUlDQWdJSE4xY0dWeUtFVm1abVZqZEdsMlpWQmxjbTFwYzNOcGIyNHBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdiR2x6ZEVadmNsQnlhVzVqYVhCaGJDaDBaVzVoYm5SSlpEb2djM1J5YVc1bkxDQndjbWx1WTJsd1lXeEpaRG9nYzNSeWFXNW5MQ0F1TGk1aGNtZHpPaUJoYm5sYlhTazZJRkJ5YjIxcGMyVThSV1ptWldOMGFYWmxVR1Z5YldsemMybHZibHRkUGlCN1hHNGdJQ0FnY21WMGRYSnVJQ2hoZDJGcGRDQjBhR2x6TG14cGMzUkJiR3dvTGk0dVlYSm5jeWtwTG1acGJIUmxjaWhjYmlBZ0lDQWdJQ2h3WlhKdGFYTnphVzl1S1NBOVBpQnpZVzFsVkdWdVlXNTBLSEJsY20xcGMzTnBiMjR1ZEdWdVlXNTBMQ0IwWlc1aGJuUkpaQ2tnSmlZZ2NtVnNZWFJwYjI1TllYUmphQ2h3WlhKdGFYTnphVzl1TG5CeWFXNWphWEJoYkN3Z2NISnBibU5wY0dGc1NXUXBYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHeHBjM1JHYjNKVFkyOXdaU2hjYmlBZ0lDQjBaVzVoYm5SSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUhOamIzQmxTMmx1WkRvZ1UyTnZjR1ZMYVc1a0xGeHVJQ0FnSUhOamIzQmxTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQRVZtWm1WamRHbDJaVkJsY20xcGMzTnBiMjViWFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUFvWVhkaGFYUWdkR2hwY3k1c2FYTjBRV3hzS0M0dUxtRnlaM01wS1M1bWFXeDBaWElvWEc0Z0lDQWdJQ0FvY0dWeWJXbHpjMmx2YmlrZ1BUNGdjMkZ0WlZSbGJtRnVkQ2h3WlhKdGFYTnphVzl1TG5SbGJtRnVkQ3dnZEdWdVlXNTBTV1FwSUNZbUlIQmxjbTFwYzNOcGIyNHVjMk52Y0dWTGFXNWtJRDA5UFNCelkyOXdaVXRwYm1RZ0ppWWdjR1Z5YldsemMybHZiaTV6WTI5d1pVbGtJRDA5UFNCelkyOXdaVWxrWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR2hoYzFCbGNtMXBjM05wYjI0b1hHNGdJQ0FnZEdWdVlXNTBTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQndjbWx1WTJsd1lXeEpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lIQmxjbTFwYzNOcGIyNUxaWGs2SUhOMGNtbHVaeXhjYmlBZ0lDQnpZMjl3WlV0cGJtUTZJRk5qYjNCbFMybHVaQ3hjYmlBZ0lDQnpZMjl3WlVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnWVhRL09pQkVZWFJsTEZ4dUlDQWdJQzR1TG1GeVozTTZJR0Z1ZVZ0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4WW05dmJHVmhiajRnZTF4dUlDQWdJSEpsZEhWeWJpQW9ZWGRoYVhRZ2RHaHBjeTVzYVhOMFJtOXlVSEpwYm1OcGNHRnNLSFJsYm1GdWRFbGtMQ0J3Y21sdVkybHdZV3hKWkN3Z0xpNHVZWEpuY3lrcExuTnZiV1VvWEc0Z0lDQWdJQ0FvY0dWeWJXbHpjMmx2YmlrZ1BUNWNiaUFnSUNBZ0lDQWdjR1Z5YldsemMybHZiaTV3WlhKdGFYTnphVzl1UzJWNUlEMDlQU0J3WlhKdGFYTnphVzl1UzJWNUlDWW1YRzRnSUNBZ0lDQWdJSEJsY20xcGMzTnBiMjR1YzJOdmNHVkxhVzVrSUQwOVBTQnpZMjl3WlV0cGJtUWdKaVpjYmlBZ0lDQWdJQ0FnY0dWeWJXbHpjMmx2Ymk1elkyOXdaVWxrSUQwOVBTQnpZMjl3WlVsa0lDWW1YRzRnSUNBZ0lDQWdJQ2doY0dWeWJXbHpjMmx2Ymk1emRHRnlkSE5CZENCOGZDQWhZWFFnZkh3Z2NHVnliV2x6YzJsdmJpNXpkR0Z5ZEhOQmRDQThQU0JoZENrZ0ppWmNiaUFnSUNBZ0lDQWdLQ0Z3WlhKdGFYTnphVzl1TG1WNGNHbHlaWE5CZENCOGZDQWhZWFFnZkh3Z2NHVnliV2x6YzJsdmJpNWxlSEJwY21WelFYUWdQajBnWVhRcFhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdSbGJHVjBaVVp2Y2xCeWFXNWphWEJoYkNoMFpXNWhiblJKWkRvZ2MzUnlhVzVuTENCd2NtbHVZMmx3WVd4SlpEb2djM1J5YVc1bkxDQXVMaTVoY21kek9pQmhibmxiWFNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnY205M0lHOW1JR0YzWVdsMElIUm9hWE11YkdsemRFWnZjbEJ5YVc1amFYQmhiQ2gwWlc1aGJuUkpaQ3dnY0hKcGJtTnBjR0ZzU1dRc0lDNHVMbUZ5WjNNcEtTQjdYRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbVJsYkdWMFpVSjVTV1FvY205M0xtbGtMQ0F1TGk1aGNtZHpLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QmtaV3hsZEdWR2IzSlVaVzVoYm5Rb2RHVnVZVzUwU1dRNklITjBjbWx1Wnl3Z0xpNHVZWEpuY3pvZ1lXNTVXMTBwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJSEp2ZHlCdlppQW9ZWGRoYVhRZ2RHaHBjeTVzYVhOMFFXeHNLQzR1TG1GeVozTXBLUzVtYVd4MFpYSW9LSEJsY20xcGMzTnBiMjRwSUQwK0lITmhiV1ZVWlc1aGJuUW9jR1Z5YldsemMybHZiaTUwWlc1aGJuUXNJSFJsYm1GdWRFbGtLU2twSUh0Y2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdVpHVnNaWFJsUW5sSlpDaHliM2N1YVdRc0lDNHVMbUZ5WjNNcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lFQjBjbUZ1YzJGamRHbHZibUZzS0NsY2JpQWdZWE41Ym1NZ2NtVmlkV2xzWkVadmNsQnlhVzVqYVhCaGJDaDBaVzVoYm5SSlpEb2djM1J5YVc1bkxDQndjbWx1WTJsd1lXeEpaRG9nYzNSeWFXNW5MQ0F1TGk1aGNtZHpPaUJoYm5sYlhTazZJRkJ5YjIxcGMyVThSV1ptWldOMGFYWmxVR1Z5YldsemMybHZibHRkUGlCN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1a1pXeGxkR1ZHYjNKUWNtbHVZMmx3WVd3b2RHVnVZVzUwU1dRc0lIQnlhVzVqYVhCaGJFbGtMQ0F1TGk1aGNtZHpLVHRjYmx4dUlDQWdJR052Ym5OMElISnZiR1ZCYzNOcFoyNXRaVzUwVTJWeWRtbGpaU0E5SUc1bGR5QlNiMnhsUVhOemFXZHViV1Z1ZEZObGNuWnBZMlVvS1R0Y2JpQWdJQ0JqYjI1emRDQnliMnhsVUdWeWJXbHpjMmx2YmxObGNuWnBZMlVnUFNCdVpYY2dVbTlzWlZCbGNtMXBjM05wYjI1VFpYSjJhV05sS0NrN1hHNGdJQ0FnWTI5dWMzUWdjR1Z5YldsemMybHZibE5sY25acFkyVWdQU0J1WlhjZ1VHVnliV2x6YzJsdmJsTmxjblpwWTJVb0tUdGNiaUFnSUNCamIyNXpkQ0JuY205MWNFMWxiV0psY25Ob2FYQlRaWEoyYVdObElEMGdibVYzSUVkeWIzVndUV1Z0WW1WeWMyaHBjRk5sY25acFkyVW9LVHRjYmlBZ0lDQmpiMjV6ZENCd2NtbHVZMmx3WVd4VFpYSjJhV05sSUQwZ2JtVjNJRkJ5YVc1amFYQmhiRk5sY25acFkyVW9LVHRjYmlBZ0lDQmpiMjV6ZENCdmNtZFZibWwwUTJ4dmMzVnlaVk5sY25acFkyVWdQU0J1WlhjZ1QzSm5WVzVwZEVOc2IzTjFjbVZUWlhKMmFXTmxLQ2s3WEc0Z0lDQWdZMjl1YzNRZ2FXNW9aWEpwZEdGdVkyVkNiRzlqYTFObGNuWnBZMlVnUFNCdVpYY2dTVzVvWlhKcGRHRnVZMlZDYkc5amExTmxjblpwWTJVb0tUdGNibHh1SUNBZ0lHTnZibk4wSUcxaGRHVnlhV0ZzYVhwbFpEb2dSV1ptWldOMGFYWmxVR1Z5YldsemMybHZibE51WVhCemFHOTBXMTBnUFNCYlhUdGNiaUFnSUNCamIyNXpkQ0J6YjNWeVkyVkJjM05wWjI1dFpXNTBjeUE5SUdGM1lXbDBJSEp2YkdWQmMzTnBaMjV0Wlc1MFUyVnlkbWxqWlM1c2FYTjBVSEpwYm1OcGNHRnNRWE56YVdkdWJXVnVkSE1vZEdWdVlXNTBTV1FzSUhCeWFXNWphWEJoYkVsa0xDQXVMaTVoY21kektUdGNiaUFnSUNCamIyNXpkQ0JuY205MWNFMWxiV0psY25Ob2FYQnpJRDBnWVhkaGFYUWdaM0p2ZFhCTlpXMWlaWEp6YUdsd1UyVnlkbWxqWlM1c2FYTjBVSEpwYm1OcGNHRnNSM0p2ZFhCektIQnlhVzVqYVhCaGJFbGtMQ0F1TGk1aGNtZHpLVHRjYmlBZ0lDQmpiMjV6ZENCbmNtOTFjRUZ6YzJsbmJtMWxiblJ6SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnVUhKdmJXbHpaUzVoYkd3b1hHNGdJQ0FnSUNBZ0lHZHliM1Z3VFdWdFltVnljMmhwY0hNdWJXRndLR0Z6ZVc1aklDaHRaVzFpWlhKemFHbHdLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1ozSnZkWEJRY21sdVkybHdZV3dnUFNCaGQyRnBkQ0J3Y21sdVkybHdZV3hUWlhKMmFXTmxMbWRsZEVkeWIzVndVSEpwYm1OcGNHRnNLSEpsYkdGMGFXOXVTV1FvYldWdFltVnljMmhwY0M1MFpXNWhiblFwTENCeVpXeGhkR2x2Ymtsa0tHMWxiV0psY25Ob2FYQXVaM0p2ZFhBcExDQXVMaTVoY21kektUdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdjbTlzWlVGemMybG5ibTFsYm5SVFpYSjJhV05sTG14cGMzUlFjbWx1WTJsd1lXeEJjM05wWjI1dFpXNTBjeWgwWlc1aGJuUkpaQ3dnWjNKdmRYQlFjbWx1WTJsd1lXd3VhV1FzSUM0dUxtRnlaM01wTzF4dUlDQWdJQ0FnSUNCOUtWeHVJQ0FnSUNBZ0tWeHVJQ0FnSUNrdVpteGhkQ2dwTzF4dVhHNGdJQ0FnWTI5dWMzUWdZWE56YVdkdWJXVnVkSE1nUFNCYkxpNHVjMjkxY21ObFFYTnphV2R1YldWdWRITXNJQzR1TG1keWIzVndRWE56YVdkdWJXVnVkSE5kTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnWVhOemFXZHViV1Z1ZENCdlppQmhjM05wWjI1dFpXNTBjeWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjbTlzWlZCbGNtMXBjM05wYjI1eklEMGdZWGRoYVhRZ2NtOXNaVkJsY20xcGMzTnBiMjVUWlhKMmFXTmxMbXhwYzNSU2IyeGxVR1Z5YldsemMybHZibk1vY21Wc1lYUnBiMjVKWkNoaGMzTnBaMjV0Wlc1MExuSnZiR1VwTENBdUxpNWhjbWR6S1R0Y2JpQWdJQ0FnSUdOdmJuTjBJSEJsY20xcGMzTnBiMjV6SUQwZ1lYZGhhWFFnVUhKdmJXbHpaUzVoYkd3b1hHNGdJQ0FnSUNBZ0lISnZiR1ZRWlhKdGFYTnphVzl1Y3k1dFlYQW9ZWE41Ym1NZ0tISnZiR1ZRWlhKdGFYTnphVzl1S1NBOVBseHVJQ0FnSUNBZ0lDQWdJSEJsY20xcGMzTnBiMjVUWlhKMmFXTmxMbVpwYm1SUGJtVkNlU2hjSW1sa1hDSXNJSEpsYkdGMGFXOXVTV1FvY205c1pWQmxjbTFwYzNOcGIyNHVjR1Z5YldsemMybHZiaWtnWVhNZ2JtVjJaWElzSUM0dUxtRnlaM01wWEc0Z0lDQWdJQ0FnSUNsY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCbWIzSWdLR052Ym5OMElIQmxjbTFwYzNOcGIyNGdiMllnY0dWeWJXbHpjMmx2Ym5NcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0NGd1pYSnRhWE56YVc5dUtTQmpiMjUwYVc1MVpUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MyTnZjR1ZMYVc1a0lEMGdZWE56YVdkdWJXVnVkQzV6WTI5d1pVdHBibVE3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE5qYjNCbFNXUWdQU0JoYzNOcFoyNXRaVzUwTG5OamIzQmxTV1E3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE5qYjNCbGN6b2dRWEp5WVhrOGV5QnpZMjl3WlV0cGJtUTZJRk5qYjNCbFMybHVaRHNnYzJOdmNHVkpaRG9nYzNSeWFXNW5JSDArSUQwZ1cxMDdYRzRnSUNBZ0lDQWdJR2xtSUNoelkyOXdaVXRwYm1RZ1BUMDlJRk5qYjNCbFMybHVaQzVVWlc1aGJuUXBJSHRjYmlBZ0lDQWdJQ0FnSUNCelkyOXdaWE11Y0hWemFDaDdJSE5qYjNCbFMybHVaQ3dnYzJOdmNHVkpaRG9nZEdWdVlXNTBTV1FnZlNrN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9jMk52Y0dWTGFXNWtJRDA5UFNCVFkyOXdaVXRwYm1RdVVtVnpiM1Z5WTJVcElIdGNiaUFnSUNBZ0lDQWdJQ0J6WTI5d1pYTXVjSFZ6YUNoN0lITmpiM0JsUzJsdVpDd2djMk52Y0dWSlpDQjlLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoelkyOXdaVXRwYm1RZ1BUMDlJRk5qYjNCbFMybHVaQzVQY21kVmJtbDBJQ1ltSUNGaGMzTnBaMjV0Wlc1MExtbHVhR1Z5YVhSRWIzZHVLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2MyTnZjR1Z6TG5CMWMyZ29leUJ6WTI5d1pVdHBibVFzSUhOamIzQmxTV1FnZlNrN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9jMk52Y0dWTGFXNWtJRDA5UFNCVFkyOXdaVXRwYm1RdVQzSm5WVzVwZENBbUppQmhjM05wWjI1dFpXNTBMbWx1YUdWeWFYUkViM2R1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1pHVnpZMlZ1WkdGdWRITWdQU0JoZDJGcGRDQnZjbWRWYm1sMFEyeHZjM1Z5WlZObGNuWnBZMlV1YkdsemRFUmxjMk5sYm1SaGJuUnpLSFJsYm1GdWRFbGtMQ0J6WTI5d1pVbGtMQ0F1TGk1aGNtZHpLVHRjYmlBZ0lDQWdJQ0FnSUNCelkyOXdaWE11Y0hWemFDZ3VMaTVrWlhOalpXNWtZVzUwY3k1dFlYQW9LSEp2ZHlrZ1BUNGdLSHNnYzJOdmNHVkxhVzVrTENCelkyOXdaVWxrT2lCeVpXeGhkR2x2Ymtsa0tISnZkeTVrWlhOalpXNWtZVzUwS1NCOUtTa3BPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnpZMjl3WldRZ2IyWWdjMk52Y0dWektTQjdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzJOdmNHVkxhVzVrSUQwOVBTQlRZMjl3WlV0cGJtUXVUM0puVlc1cGRDQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ1lYTnphV2R1YldWdWRDNXBibWhsY21sMFJHOTNiaUFtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdjMk52Y0dWa0xuTmpiM0JsU1dRZ0lUMDlJSE5qYjNCbFNXUWdKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDaGhkMkZwZENCcGJtaGxjbWwwWVc1alpVSnNiMk5yVTJWeWRtbGpaUzVqWVhSbFoyOXllVUpzYjJOclpXUkdiM0pCYm1ObGMzUnZjaWhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdkR1Z1WVc1MFNXUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lITmpiM0JsWkM1elkyOXdaVWxrTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J6WTI5d1pVbGtMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQndaWEp0YVhOemFXOXVMbU5oZEdWbmIzSjVMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQXVMaTVoY21kelhHNGdJQ0FnSUNBZ0lDQWdJQ0FwS1Z4dUlDQWdJQ0FnSUNBZ0lDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUcxaGRHVnlhV0ZzYVhwbFpDNXdkWE5vS0h0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xrT2lCY0lsd2lMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHVnVZVzUwU1dRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J3Y21sdVkybHdZV3hKWkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJsY20xcGMzTnBiMjVMWlhrNklIQmxjbTFwYzNOcGIyNHVhMlY1TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjMk52Y0dWTGFXNWtPaUJ6WTI5d1pXUXVjMk52Y0dWTGFXNWtMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MyTnZjR1ZKWkRvZ2MyTnZjR1ZrTG5OamIzQmxTV1FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnpiM1Z5WTJWTGFXNWtPaUJjSW5KdmJHVmZZWE56YVdkdWJXVnVkRndpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjMjkxY21ObFNXUTZJR0Z6YzJsbmJtMWxiblF1YVdRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZEdGeWRITkJkRG9nWVhOemFXZHViV1Z1ZEM1emRHRnlkSE5CZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR1Y0Y0dseVpYTkJkRG9nWVhOemFXZHViV1Z1ZEM1bGVIQnBjbVZ6UVhRc1hHNGdJQ0FnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQmpjbVZoZEdWa0lEMGdZWGRoYVhRZ1VISnZiV2x6WlM1aGJHd29YRzRnSUNBZ0lDQnRZWFJsY21saGJHbDZaV1F1YldGd0tDaHdaWEp0YVhOemFXOXVLU0E5UGx4dUlDQWdJQ0FnSUNCMGFHbHpMbU55WldGMFpTaGNiaUFnSUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBaVzVoYm5RNklIQmxjbTFwYzNOcGIyNHVkR1Z1WVc1MFNXUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCd2NtbHVZMmx3WVd3NklIQmxjbTFwYzNOcGIyNHVjSEpwYm1OcGNHRnNTV1FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQndaWEp0YVhOemFXOXVTMlY1T2lCd1pYSnRhWE56YVc5dUxuQmxjbTFwYzNOcGIyNUxaWGtzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnpZMjl3WlV0cGJtUTZJSEJsY20xcGMzTnBiMjR1YzJOdmNHVkxhVzVrTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjMk52Y0dWSlpEb2djR1Z5YldsemMybHZiaTV6WTI5d1pVbGtMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MyOTFjbU5sUzJsdVpEb2djR1Z5YldsemMybHZiaTV6YjNWeVkyVkxhVzVrTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjMjkxY21ObFNXUTZJSEJsY20xcGMzTnBiMjR1YzI5MWNtTmxTV1FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnpkR0Z5ZEhOQmREb2djR1Z5YldsemMybHZiaTV6ZEdGeWRITkJkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHVjRjR2x5WlhOQmREb2djR1Z5YldsemMybHZiaTVsZUhCcGNtVnpRWFFzWEc0Z0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0F1TGk1aGNtZHpYRzRnSUNBZ0lDQWdJQ2xjYmlBZ0lDQWdJQ2xjYmlBZ0lDQXBPMXh1SUNBZ0lISmxkSFZ5YmlCamNtVmhkR1ZrTzF4dUlDQjlYRzVjYmlBZ1FIUnlZVzV6WVdOMGFXOXVZV3dvS1Z4dUlDQmhjM2x1WXlCeVpXSjFhV3hrUm05eVZHVnVZVzUwS0hSbGJtRnVkRWxrT2lCemRISnBibWNzSUM0dUxtRnlaM002SUdGdWVWdGRLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1kyOXVjM1FnY0hKcGJtTnBjR0ZzY3lBOUlDaGhkMkZwZENCdVpYY2dVSEpwYm1OcGNHRnNVMlZ5ZG1salpTZ3BMbXhwYzNSQmJHd29MaTR1WVhKbmN5a3BMbVpwYkhSbGNpZ29jSEpwYm1OcGNHRnNLU0E5UGlCellXMWxWR1Z1WVc1MEtIQnlhVzVqYVhCaGJDNTBaVzVoYm5Rc0lIUmxibUZ1ZEVsa0tTazdYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQndjbWx1WTJsd1lXd2diMllnY0hKcGJtTnBjR0ZzY3lrZ2UxeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXlaV0oxYVd4a1JtOXlVSEpwYm1OcGNHRnNLSFJsYm1GdWRFbGtMQ0J3Y21sdVkybHdZV3d1YVdRc0lDNHVMbUZ5WjNNcE8xeHVJQ0FnSUgxY2JpQWdmVnh1ZlZ4dUlsMTkiXX0=
149
+ //# sourceMappingURL=effective-permission.service.js.map
150
+ //# sourceMappingURL=effective-permission.service.cjs.map