@decaf-ts/integrations 0.5.1 → 0.6.1
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.
- package/dist/integrations.cjs +2 -2087
- package/dist/integrations.cjs.map +1 -0
- package/dist/integrations.js +2 -2356
- package/dist/integrations.js.map +1 -0
- package/docker/keycloak-broker-compose.yml +128 -0
- package/docker/traefik-broker.yml +51 -0
- package/eslint.config.js +1 -0
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/azure/index.cjs +2 -2
- package/lib/cjs/blob/azure/index.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
- package/lib/cjs/blob/core/BlobErrors.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobKey.cjs +2 -2
- package/lib/cjs/blob/core/BlobKey.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
- package/lib/cjs/blob/core/BlobTypes.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobValue.cjs +2 -2
- package/lib/cjs/blob/core/BlobValue.cjs.map +1 -0
- package/lib/cjs/blob/core/index.cjs +2 -2
- package/lib/cjs/blob/core/index.cjs.map +1 -0
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/gcp/index.cjs +2 -2
- package/lib/cjs/blob/gcp/index.cjs.map +1 -0
- package/lib/cjs/blob/index.cjs +2 -2
- package/lib/cjs/blob/index.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/index.cjs +2 -2
- package/lib/cjs/blob/ipfs/index.cjs.map +1 -0
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/local/index.cjs +2 -2
- package/lib/cjs/blob/local/index.cjs.map +1 -0
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/memory/index.cjs +2 -2
- package/lib/cjs/blob/memory/index.cjs.map +1 -0
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/index.cjs +2 -2
- package/lib/cjs/blob/s3/index.cjs.map +1 -0
- package/lib/cjs/docker/DockerComposeService.cjs +2 -2
- package/lib/cjs/docker/DockerComposeService.cjs.map +1 -0
- package/lib/cjs/docker/index.cjs +2 -2
- package/lib/cjs/docker/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/constants.cjs +2 -2
- package/lib/cjs/feature-flags/constants.cjs.map +1 -0
- package/lib/cjs/feature-flags/decorators.cjs +2 -2
- package/lib/cjs/feature-flags/decorators.cjs.map +1 -0
- package/lib/cjs/feature-flags/environment.cjs +2 -2
- package/lib/cjs/feature-flags/environment.cjs.map +1 -0
- package/lib/cjs/feature-flags/index.cjs +2 -2
- package/lib/cjs/feature-flags/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +1 -0
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +1 -0
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +2 -2
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs.map +1 -0
- package/lib/cjs/feature-flags/readers/index.cjs +2 -2
- package/lib/cjs/feature-flags/readers/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +2 -2
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs.map +1 -0
- package/lib/cjs/feature-flags/types.cjs +2 -2
- package/lib/cjs/feature-flags/types.cjs.map +1 -0
- package/lib/cjs/feature-flags/utils.cjs +2 -2
- package/lib/cjs/feature-flags/utils.cjs.map +1 -0
- package/lib/cjs/graph/engine/constants.cjs +2 -2
- package/lib/cjs/graph/engine/constants.cjs.map +1 -0
- package/lib/cjs/graph/engine/decorators.cjs +2 -2
- package/lib/cjs/graph/engine/decorators.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphBreakSignal.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphBreakSignal.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphCycleError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphCycleError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphInputError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphInputError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphPinningError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphPinningError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphPortError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphPortError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphStoreError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphStoreError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/index.cjs +2 -2
- package/lib/cjs/graph/engine/errors/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/index.cjs +2 -2
- package/lib/cjs/graph/engine/events/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/BreakGraphNodeExecutor.cjs +5 -3
- package/lib/cjs/graph/engine/execution/BreakGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/index.cjs +2 -2
- package/lib/cjs/graph/engine/execution/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/index.cjs +2 -2
- package/lib/cjs/graph/engine/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +3 -3
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs +2 -2
- package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/index.cjs +2 -2
- package/lib/cjs/graph/engine/loops/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/index.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphTopology.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphTopology.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/index.cjs +2 -2
- package/lib/cjs/graph/engine/planning/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs +2 -2
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs.map +1 -0
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs +2 -2
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs.map +1 -0
- package/lib/cjs/graph/engine/registry/index.cjs +2 -2
- package/lib/cjs/graph/engine/registry/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs +2 -2
- package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs.map +1 -0
- package/lib/cjs/graph/engine/snapshots/index.cjs +2 -2
- package/lib/cjs/graph/engine/snapshots/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/GraphCachedValue.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphCachedValue.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/GraphValueKey.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueKey.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/GraphValueStore.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueStore.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/index.cjs +2 -2
- package/lib/cjs/graph/engine/store/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/types.cjs +2 -2
- package/lib/cjs/graph/engine/types.cjs.map +1 -0
- package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs.map +1 -0
- package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs.map +1 -0
- package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs.map +1 -0
- package/lib/cjs/graph/engine/validation/index.cjs +2 -2
- package/lib/cjs/graph/engine/validation/index.cjs.map +1 -0
- package/lib/cjs/graph/index.cjs +2 -2
- package/lib/cjs/graph/index.cjs.map +1 -0
- package/lib/cjs/graph/shared/constants.cjs +2 -2
- package/lib/cjs/graph/shared/constants.cjs.map +1 -0
- package/lib/cjs/graph/shared/index.cjs +2 -2
- package/lib/cjs/graph/shared/index.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/agent.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/agent.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/base.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/base.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/category-styles.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/category-styles.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/flow-control.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/flow-control.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/index.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/index.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/triggers.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/triggers.cjs.map +1 -0
- package/lib/cjs/graph/shared/types.cjs +2 -2
- package/lib/cjs/graph/shared/types.cjs.map +1 -0
- package/lib/cjs/index.cjs +5 -5
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/keycloak/broker.cjs +22 -0
- package/lib/cjs/keycloak/broker.cjs.map +1 -0
- package/lib/cjs/keycloak/index.cjs +3 -2
- package/lib/cjs/keycloak/index.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +71 -2
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakService.cjs +6 -2
- package/lib/cjs/keycloak/services/KeycloakService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/index.cjs +2 -2
- package/lib/cjs/keycloak/services/index.cjs.map +1 -0
- package/lib/cjs/keycloak/services/runtime.cjs +2 -2
- package/lib/cjs/keycloak/services/runtime.cjs.map +1 -0
- package/lib/cjs/keycloak/types.cjs +2 -2
- package/lib/cjs/keycloak/types.cjs.map +1 -0
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs.map +1 -0
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs.map +1 -0
- package/lib/cjs/kibana/builders/index.cjs +2 -2
- package/lib/cjs/kibana/builders/index.cjs.map +1 -0
- package/lib/cjs/kibana/helpers.cjs +2 -2
- package/lib/cjs/kibana/helpers.cjs.map +1 -0
- package/lib/cjs/kibana/index.cjs +2 -2
- package/lib/cjs/kibana/index.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaUserService.cjs.map +1 -0
- package/lib/cjs/kibana/services/index.cjs +2 -2
- package/lib/cjs/kibana/services/index.cjs.map +1 -0
- package/lib/cjs/kibana/services/runtime.cjs +2 -2
- package/lib/cjs/kibana/services/runtime.cjs.map +1 -0
- package/lib/cjs/kibana/types.cjs +2 -2
- package/lib/cjs/kibana/types.cjs.map +1 -0
- package/lib/cjs/loader/ObjectLoader.cjs +2 -2
- package/lib/cjs/loader/ObjectLoader.cjs.map +1 -0
- package/lib/cjs/loader/families.cjs +2 -2
- package/lib/cjs/loader/families.cjs.map +1 -0
- package/lib/cjs/loader/index.cjs +2 -2
- package/lib/cjs/loader/index.cjs.map +1 -0
- package/lib/cjs/loader/types.cjs +2 -2
- package/lib/cjs/loader/types.cjs.map +1 -0
- package/lib/cjs/namespaces/index.cjs +2 -2
- package/lib/cjs/namespaces/index.cjs.map +1 -0
- package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
- package/lib/cjs/namespaces/models/authorization-model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/group.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/index.cjs +2 -2
- package/lib/cjs/namespaces/models/index.cjs.map +1 -0
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
- package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
- package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
- package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/user.model.cjs +2 -2
- package/lib/cjs/namespaces/models/user.model.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +1 -0
- package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
- package/lib/cjs/namespaces/services/authz.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/group.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/index.cjs +2 -2
- package/lib/cjs/namespaces/services/index.cjs.map +1 -0
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
- package/lib/cjs/namespaces/services/principal.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
- package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
- package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
- package/lib/cjs/namespaces/services/system-management.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/user.service.cjs +2 -2
- package/lib/cjs/namespaces/services/user.service.cjs.map +1 -0
- package/lib/cjs/namespaces/types.cjs +2 -2
- package/lib/cjs/namespaces/types.cjs.map +1 -0
- package/lib/cjs/namespaces/utils.cjs +2 -2
- package/lib/cjs/namespaces/utils.cjs.map +1 -0
- package/lib/cjs/nest/decorators.cjs +2 -2
- package/lib/cjs/nest/decorators.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphExecutionController.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionController.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphResultService.cjs +2 -2
- package/lib/cjs/nest/graph/GraphResultService.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphWorkflowModel.cjs +2 -2
- package/lib/cjs/nest/graph/GraphWorkflowModel.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs +2 -2
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs.map +1 -0
- package/lib/cjs/nest/graph/index.cjs +2 -2
- package/lib/cjs/nest/graph/index.cjs.map +1 -0
- package/lib/cjs/nest/graph/main.cjs +2 -2
- package/lib/cjs/nest/graph/main.cjs.map +1 -0
- package/lib/cjs/nest/index.cjs +2 -2
- package/lib/cjs/nest/index.cjs.map +1 -0
- package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
- package/lib/cjs/nest/keycloakAuthHandler.cjs.map +1 -0
- package/lib/cjs/nest/keycloakModule.cjs +2 -2
- package/lib/cjs/nest/keycloakModule.cjs.map +1 -0
- package/lib/cjs/nest/logging.cjs +2 -2
- package/lib/cjs/nest/logging.cjs.map +1 -0
- package/lib/cjs/nest/types.cjs +2 -2
- package/lib/cjs/nest/types.cjs.map +1 -0
- package/lib/cjs/nest/utils.cjs +2 -2
- package/lib/cjs/nest/utils.cjs.map +1 -0
- package/lib/cjs/plugins/contract.cjs +2 -2
- package/lib/cjs/plugins/contract.cjs.map +1 -0
- package/lib/cjs/plugins/index.cjs +2 -2
- package/lib/cjs/plugins/index.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/host.cjs +2 -2
- package/lib/cjs/plugins/kibana/host.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/index.cjs +2 -2
- package/lib/cjs/plugins/kibana/index.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/installer.cjs +2 -2
- package/lib/cjs/plugins/kibana/installer.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/manifest.cjs +2 -2
- package/lib/cjs/plugins/kibana/manifest.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/templates.cjs +2 -2
- package/lib/cjs/plugins/kibana/templates.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/types.cjs +2 -2
- package/lib/cjs/plugins/kibana/types.cjs.map +1 -0
- package/lib/cjs/plugins/superset/host.cjs +2 -2
- package/lib/cjs/plugins/superset/host.cjs.map +1 -0
- package/lib/cjs/plugins/superset/index.cjs +2 -2
- package/lib/cjs/plugins/superset/index.cjs.map +1 -0
- package/lib/cjs/plugins/superset/installer.cjs +2 -2
- package/lib/cjs/plugins/superset/installer.cjs.map +1 -0
- package/lib/cjs/plugins/superset/manifest.cjs +2 -2
- package/lib/cjs/plugins/superset/manifest.cjs.map +1 -0
- package/lib/cjs/plugins/superset/templates.cjs +2 -2
- package/lib/cjs/plugins/superset/templates.cjs.map +1 -0
- package/lib/cjs/plugins/superset/types.cjs +2 -2
- package/lib/cjs/plugins/superset/types.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/aws/index.cjs +2 -2
- package/lib/cjs/secrets/aws/index.cjs.map +1 -0
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/azure/index.cjs +2 -2
- package/lib/cjs/secrets/azure/index.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
- package/lib/cjs/secrets/core/SecretErrors.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretName.cjs +2 -2
- package/lib/cjs/secrets/core/SecretName.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
- package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
- package/lib/cjs/secrets/core/SecretSerialization.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretService.cjs +2 -2
- package/lib/cjs/secrets/core/SecretService.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
- package/lib/cjs/secrets/core/SecretTypes.cjs.map +1 -0
- package/lib/cjs/secrets/core/index.cjs +2 -2
- package/lib/cjs/secrets/core/index.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/index.cjs +2 -2
- package/lib/cjs/secrets/gcp/index.cjs.map +1 -0
- package/lib/cjs/secrets/index.cjs +2 -2
- package/lib/cjs/secrets/index.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/model/Secret.cjs +2 -2
- package/lib/cjs/secrets/model/Secret.cjs.map +1 -0
- package/lib/cjs/secrets/model/index.cjs +2 -2
- package/lib/cjs/secrets/model/index.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/index.cjs +2 -2
- package/lib/cjs/secrets/onepassword/index.cjs.map +1 -0
- package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/vault/index.cjs +2 -2
- package/lib/cjs/secrets/vault/index.cjs.map +1 -0
- package/lib/cjs/shared/runtime.cjs +2 -2
- package/lib/cjs/shared/runtime.cjs.map +1 -0
- package/lib/cjs/utils.cjs +2 -2
- package/lib/cjs/utils.cjs.map +1 -0
- package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
- package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -0
- package/lib/esm/blob/azure/index.js +1 -1
- package/lib/esm/blob/azure/index.js.map +1 -0
- package/lib/esm/blob/core/BlobErrors.js +1 -1
- package/lib/esm/blob/core/BlobErrors.js.map +1 -0
- package/lib/esm/blob/core/BlobKey.js +1 -1
- package/lib/esm/blob/core/BlobKey.js.map +1 -0
- package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
- package/lib/esm/blob/core/BlobStoreFactory.js.map +1 -0
- package/lib/esm/blob/core/BlobStoreService.js +1 -1
- package/lib/esm/blob/core/BlobStoreService.js.map +1 -0
- package/lib/esm/blob/core/BlobTypes.js +1 -1
- package/lib/esm/blob/core/BlobTypes.js.map +1 -0
- package/lib/esm/blob/core/BlobValue.js +1 -1
- package/lib/esm/blob/core/BlobValue.js.map +1 -0
- package/lib/esm/blob/core/index.js +1 -1
- package/lib/esm/blob/core/index.js.map +1 -0
- package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -0
- package/lib/esm/blob/gcp/index.js +1 -1
- package/lib/esm/blob/gcp/index.js.map +1 -0
- package/lib/esm/blob/index.js +1 -1
- package/lib/esm/blob/index.js.map +1 -0
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +1 -0
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/index.js +1 -1
- package/lib/esm/blob/ipfs/index.js.map +1 -0
- package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js.map +1 -0
- package/lib/esm/blob/local/index.js +1 -1
- package/lib/esm/blob/local/index.js.map +1 -0
- package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +1 -0
- package/lib/esm/blob/memory/index.js +1 -1
- package/lib/esm/blob/memory/index.js.map +1 -0
- package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/index.js +1 -1
- package/lib/esm/blob/s3/index.js.map +1 -0
- package/lib/esm/docker/DockerComposeService.js +1 -1
- package/lib/esm/docker/DockerComposeService.js.map +1 -0
- package/lib/esm/docker/index.js +1 -1
- package/lib/esm/docker/index.js.map +1 -0
- package/lib/esm/feature-flags/constants.js +1 -1
- package/lib/esm/feature-flags/constants.js.map +1 -0
- package/lib/esm/feature-flags/decorators.js +1 -1
- package/lib/esm/feature-flags/decorators.js.map +1 -0
- package/lib/esm/feature-flags/environment.js +1 -1
- package/lib/esm/feature-flags/environment.js.map +1 -0
- package/lib/esm/feature-flags/index.js +1 -1
- package/lib/esm/feature-flags/index.js.map +1 -0
- package/lib/esm/feature-flags/models/FeatureFlag.model.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +1 -0
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +1 -0
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js +1 -1
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js.map +1 -0
- package/lib/esm/feature-flags/readers/index.js +1 -1
- package/lib/esm/feature-flags/readers/index.js.map +1 -0
- package/lib/esm/feature-flags/services/FeatureFlag.service.js +1 -1
- package/lib/esm/feature-flags/services/FeatureFlag.service.js.map +1 -0
- package/lib/esm/feature-flags/types.js +1 -1
- package/lib/esm/feature-flags/types.js.map +1 -0
- package/lib/esm/feature-flags/utils.js +1 -1
- package/lib/esm/feature-flags/utils.js.map +1 -0
- package/lib/esm/graph/engine/constants.js +1 -1
- package/lib/esm/graph/engine/constants.js.map +1 -0
- package/lib/esm/graph/engine/decorators.js +1 -1
- package/lib/esm/graph/engine/decorators.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphBreakSignal.js +1 -1
- package/lib/esm/graph/engine/errors/GraphBreakSignal.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphCycleError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphCycleError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphExecutionError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphExecutionError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphInputError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphInputError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphLoopLimitError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphLoopLimitError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphPinningError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphPinningError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphPortError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphPortError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphStoreError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphStoreError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphTopologyError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphTopologyError.js.map +1 -0
- package/lib/esm/graph/engine/errors/index.js +1 -1
- package/lib/esm/graph/engine/errors/index.js.map +1 -0
- package/lib/esm/graph/engine/events/GraphExecutionEvent.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEvent.js.map +1 -0
- package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js.map +1 -0
- package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js.map +1 -0
- package/lib/esm/graph/engine/events/GraphExecutionObserver.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionObserver.js.map +1 -0
- package/lib/esm/graph/engine/events/index.js +1 -1
- package/lib/esm/graph/engine/events/index.js.map +1 -0
- package/lib/esm/graph/engine/execution/BreakGraphNodeExecutor.js +4 -2
- package/lib/esm/graph/engine/execution/BreakGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js +1 -1
- package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphExecutionResult.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionResult.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/GraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js +1 -1
- package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js.map +1 -0
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/index.js +1 -1
- package/lib/esm/graph/engine/execution/index.js.map +1 -0
- package/lib/esm/graph/engine/index.js +1 -1
- package/lib/esm/graph/engine/index.js.map +1 -0
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js +1 -1
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js.map +1 -0
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +2 -2
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js +1 -1
- package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js.map +1 -0
- package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js +1 -1
- package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js.map +1 -0
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/loops/index.js +1 -1
- package/lib/esm/graph/engine/loops/index.js.map +1 -0
- package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js.map +1 -0
- package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js.map +1 -0
- package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js.map +1 -0
- package/lib/esm/graph/engine/pinning/GraphPinningService.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningService.js.map +1 -0
- package/lib/esm/graph/engine/pinning/index.js +1 -1
- package/lib/esm/graph/engine/pinning/index.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlan.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlan.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphRelationResolver.js +1 -1
- package/lib/esm/graph/engine/planning/GraphRelationResolver.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphTopology.js +1 -1
- package/lib/esm/graph/engine/planning/GraphTopology.js.map +1 -0
- package/lib/esm/graph/engine/planning/index.js +1 -1
- package/lib/esm/graph/engine/planning/index.js.map +1 -0
- package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js +1 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js.map +1 -0
- package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js +1 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js.map +1 -0
- package/lib/esm/graph/engine/registry/index.js +1 -1
- package/lib/esm/graph/engine/registry/index.js.map +1 -0
- package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js +1 -1
- package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js.map +1 -0
- package/lib/esm/graph/engine/snapshots/index.js +1 -1
- package/lib/esm/graph/engine/snapshots/index.js.map +1 -0
- package/lib/esm/graph/engine/store/GraphCachedValue.js +1 -1
- package/lib/esm/graph/engine/store/GraphCachedValue.js.map +1 -0
- package/lib/esm/graph/engine/store/GraphValueKey.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueKey.js.map +1 -0
- package/lib/esm/graph/engine/store/GraphValueStore.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueStore.js.map +1 -0
- package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js.map +1 -0
- package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js.map +1 -0
- package/lib/esm/graph/engine/store/index.js +1 -1
- package/lib/esm/graph/engine/store/index.js.map +1 -0
- package/lib/esm/graph/engine/types.js +1 -1
- package/lib/esm/graph/engine/types.js.map +1 -0
- package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js +1 -1
- package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js.map +1 -0
- package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js +1 -1
- package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js.map +1 -0
- package/lib/esm/graph/engine/validation/GraphValueValidator.js +1 -1
- package/lib/esm/graph/engine/validation/GraphValueValidator.js.map +1 -0
- package/lib/esm/graph/engine/validation/index.js +1 -1
- package/lib/esm/graph/engine/validation/index.js.map +1 -0
- package/lib/esm/graph/index.js +1 -1
- package/lib/esm/graph/index.js.map +1 -0
- package/lib/esm/graph/shared/constants.js +1 -1
- package/lib/esm/graph/shared/constants.js.map +1 -0
- package/lib/esm/graph/shared/index.js +1 -1
- package/lib/esm/graph/shared/index.js.map +1 -0
- package/lib/esm/graph/shared/nodes/agent.js +1 -1
- package/lib/esm/graph/shared/nodes/agent.js.map +1 -0
- package/lib/esm/graph/shared/nodes/base.js +1 -1
- package/lib/esm/graph/shared/nodes/base.js.map +1 -0
- package/lib/esm/graph/shared/nodes/category-styles.js +1 -1
- package/lib/esm/graph/shared/nodes/category-styles.js.map +1 -0
- package/lib/esm/graph/shared/nodes/flow-control.js +1 -1
- package/lib/esm/graph/shared/nodes/flow-control.js.map +1 -0
- package/lib/esm/graph/shared/nodes/index.js +1 -1
- package/lib/esm/graph/shared/nodes/index.js.map +1 -0
- package/lib/esm/graph/shared/nodes/triggers.js +1 -1
- package/lib/esm/graph/shared/nodes/triggers.js.map +1 -0
- package/lib/esm/graph/shared/types.js +1 -1
- package/lib/esm/graph/shared/types.js.map +1 -0
- package/lib/esm/index.js +4 -4
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/keycloak/broker.js +17 -0
- package/lib/esm/keycloak/broker.js.map +1 -0
- package/lib/esm/keycloak/index.js +2 -1
- package/lib/esm/keycloak/index.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +69 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakService.js +5 -1
- package/lib/esm/keycloak/services/KeycloakService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js.map +1 -0
- package/lib/esm/keycloak/services/index.js +1 -1
- package/lib/esm/keycloak/services/index.js.map +1 -0
- package/lib/esm/keycloak/services/runtime.js +1 -1
- package/lib/esm/keycloak/services/runtime.js.map +1 -0
- package/lib/esm/keycloak/types.js +1 -1
- package/lib/esm/keycloak/types.js.map +1 -0
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js.map +1 -0
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js.map +1 -0
- package/lib/esm/kibana/builders/index.js +1 -1
- package/lib/esm/kibana/builders/index.js.map +1 -0
- package/lib/esm/kibana/helpers.js +1 -1
- package/lib/esm/kibana/helpers.js.map +1 -0
- package/lib/esm/kibana/index.js +1 -1
- package/lib/esm/kibana/index.js.map +1 -0
- package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
- package/lib/esm/kibana/services/KibanaAuthService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
- package/lib/esm/kibana/services/KibanaRoleService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaService.js +1 -1
- package/lib/esm/kibana/services/KibanaService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaUserService.js +1 -1
- package/lib/esm/kibana/services/KibanaUserService.js.map +1 -0
- package/lib/esm/kibana/services/index.js +1 -1
- package/lib/esm/kibana/services/index.js.map +1 -0
- package/lib/esm/kibana/services/runtime.js +1 -1
- package/lib/esm/kibana/services/runtime.js.map +1 -0
- package/lib/esm/kibana/types.js +1 -1
- package/lib/esm/kibana/types.js.map +1 -0
- package/lib/esm/loader/ObjectLoader.js +1 -1
- package/lib/esm/loader/ObjectLoader.js.map +1 -0
- package/lib/esm/loader/families.js +1 -1
- package/lib/esm/loader/families.js.map +1 -0
- package/lib/esm/loader/index.js +1 -1
- package/lib/esm/loader/index.js.map +1 -0
- package/lib/esm/loader/types.js +1 -1
- package/lib/esm/loader/types.js.map +1 -0
- package/lib/esm/namespaces/index.js +1 -1
- package/lib/esm/namespaces/index.js.map +1 -0
- package/lib/esm/namespaces/models/authorization-model.js +1 -1
- package/lib/esm/namespaces/models/authorization-model.js.map +1 -0
- package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
- package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/group-membership.model.js +1 -1
- package/lib/esm/namespaces/models/group-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/group.model.js +1 -1
- package/lib/esm/namespaces/models/group.model.js.map +1 -0
- package/lib/esm/namespaces/models/index.js +1 -1
- package/lib/esm/namespaces/models/index.js.map +1 -0
- package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit.model.js.map +1 -0
- package/lib/esm/namespaces/models/permission.model.js +1 -1
- package/lib/esm/namespaces/models/permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/principal.model.js +1 -1
- package/lib/esm/namespaces/models/principal.model.js.map +1 -0
- package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
- package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -0
- package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
- package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -0
- package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
- package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -0
- package/lib/esm/namespaces/models/role-permission.model.js +1 -1
- package/lib/esm/namespaces/models/role-permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/role.model.js +1 -1
- package/lib/esm/namespaces/models/role.model.js.map +1 -0
- package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
- package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant.model.js +1 -1
- package/lib/esm/namespaces/models/tenant.model.js.map +1 -0
- package/lib/esm/namespaces/models/user.model.js +1 -1
- package/lib/esm/namespaces/models/user.model.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js.map +1 -0
- package/lib/esm/namespaces/services/authz.service.js +1 -1
- package/lib/esm/namespaces/services/authz.service.js.map +1 -0
- package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
- package/lib/esm/namespaces/services/bootstrap.service.js.map +1 -0
- package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
- package/lib/esm/namespaces/services/effective-permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/group-membership.service.js +1 -1
- package/lib/esm/namespaces/services/group-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/group.service.js +1 -1
- package/lib/esm/namespaces/services/group.service.js.map +1 -0
- package/lib/esm/namespaces/services/index.js +1 -1
- package/lib/esm/namespaces/services/index.js.map +1 -0
- package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit.service.js.map +1 -0
- package/lib/esm/namespaces/services/permission.service.js +1 -1
- package/lib/esm/namespaces/services/permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/principal.service.js +1 -1
- package/lib/esm/namespaces/services/principal.service.js.map +1 -0
- package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
- package/lib/esm/namespaces/services/protected-resource.service.js.map +1 -0
- package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
- package/lib/esm/namespaces/services/resource-grant.service.js.map +1 -0
- package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +1 -0
- package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
- package/lib/esm/namespaces/services/role-assignment.service.js.map +1 -0
- package/lib/esm/namespaces/services/role-permission.service.js +1 -1
- package/lib/esm/namespaces/services/role-permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/role.service.js +1 -1
- package/lib/esm/namespaces/services/role.service.js.map +1 -0
- package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
- package/lib/esm/namespaces/services/storage-binding.service.js.map +1 -0
- package/lib/esm/namespaces/services/system-management.service.js +1 -1
- package/lib/esm/namespaces/services/system-management.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant.service.js +1 -1
- package/lib/esm/namespaces/services/tenant.service.js.map +1 -0
- package/lib/esm/namespaces/services/user.service.js +1 -1
- package/lib/esm/namespaces/services/user.service.js.map +1 -0
- package/lib/esm/namespaces/types.js +1 -1
- package/lib/esm/namespaces/types.js.map +1 -0
- package/lib/esm/namespaces/utils.js +1 -1
- package/lib/esm/namespaces/utils.js.map +1 -0
- package/lib/esm/nest/decorators.js +1 -1
- package/lib/esm/nest/decorators.js.map +1 -0
- package/lib/esm/nest/graph/GraphExecutionController.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionController.js.map +1 -0
- package/lib/esm/nest/graph/GraphExecutionModule.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionModule.js.map +1 -0
- package/lib/esm/nest/graph/GraphExecutionResultModel.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionResultModel.js.map +1 -0
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +1 -1
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +1 -0
- package/lib/esm/nest/graph/GraphResultService.js +1 -1
- package/lib/esm/nest/graph/GraphResultService.js.map +1 -0
- package/lib/esm/nest/graph/GraphWorkflowModel.js +1 -1
- package/lib/esm/nest/graph/GraphWorkflowModel.js.map +1 -0
- package/lib/esm/nest/graph/GraphWorkflowService.js +1 -1
- package/lib/esm/nest/graph/GraphWorkflowService.js.map +1 -0
- package/lib/esm/nest/graph/index.js +1 -1
- package/lib/esm/nest/graph/index.js.map +1 -0
- package/lib/esm/nest/graph/main.js +1 -1
- package/lib/esm/nest/graph/main.js.map +1 -0
- package/lib/esm/nest/index.js +1 -1
- package/lib/esm/nest/index.js.map +1 -0
- package/lib/esm/nest/keycloakAuthHandler.js +1 -1
- package/lib/esm/nest/keycloakAuthHandler.js.map +1 -0
- package/lib/esm/nest/keycloakModule.js +1 -1
- package/lib/esm/nest/keycloakModule.js.map +1 -0
- package/lib/esm/nest/logging.js +1 -1
- package/lib/esm/nest/logging.js.map +1 -0
- package/lib/esm/nest/types.js +1 -1
- package/lib/esm/nest/types.js.map +1 -0
- package/lib/esm/nest/utils.js +1 -1
- package/lib/esm/nest/utils.js.map +1 -0
- package/lib/esm/plugins/contract.js +1 -1
- package/lib/esm/plugins/contract.js.map +1 -0
- package/lib/esm/plugins/index.js +1 -1
- package/lib/esm/plugins/index.js.map +1 -0
- package/lib/esm/plugins/kibana/host.js +1 -1
- package/lib/esm/plugins/kibana/host.js.map +1 -0
- package/lib/esm/plugins/kibana/index.js +1 -1
- package/lib/esm/plugins/kibana/index.js.map +1 -0
- package/lib/esm/plugins/kibana/installer.js +1 -1
- package/lib/esm/plugins/kibana/installer.js.map +1 -0
- package/lib/esm/plugins/kibana/manifest.js +1 -1
- package/lib/esm/plugins/kibana/manifest.js.map +1 -0
- package/lib/esm/plugins/kibana/templates.js +1 -1
- package/lib/esm/plugins/kibana/templates.js.map +1 -0
- package/lib/esm/plugins/kibana/types.js +1 -1
- package/lib/esm/plugins/kibana/types.js.map +1 -0
- package/lib/esm/plugins/superset/host.js +1 -1
- package/lib/esm/plugins/superset/host.js.map +1 -0
- package/lib/esm/plugins/superset/index.js +1 -1
- package/lib/esm/plugins/superset/index.js.map +1 -0
- package/lib/esm/plugins/superset/installer.js +1 -1
- package/lib/esm/plugins/superset/installer.js.map +1 -0
- package/lib/esm/plugins/superset/manifest.js +1 -1
- package/lib/esm/plugins/superset/manifest.js.map +1 -0
- package/lib/esm/plugins/superset/templates.js +1 -1
- package/lib/esm/plugins/superset/templates.js.map +1 -0
- package/lib/esm/plugins/superset/types.js +1 -1
- package/lib/esm/plugins/superset/types.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/aws/index.js +1 -1
- package/lib/esm/secrets/aws/index.js.map +1 -0
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -0
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/azure/index.js +1 -1
- package/lib/esm/secrets/azure/index.js.map +1 -0
- package/lib/esm/secrets/core/SecretErrors.js +1 -1
- package/lib/esm/secrets/core/SecretErrors.js.map +1 -0
- package/lib/esm/secrets/core/SecretName.js +1 -1
- package/lib/esm/secrets/core/SecretName.js.map +1 -0
- package/lib/esm/secrets/core/SecretReference.js +1 -1
- package/lib/esm/secrets/core/SecretReference.js.map +1 -0
- package/lib/esm/secrets/core/SecretSerialization.js +1 -1
- package/lib/esm/secrets/core/SecretSerialization.js.map +1 -0
- package/lib/esm/secrets/core/SecretService.js +1 -1
- package/lib/esm/secrets/core/SecretService.js.map +1 -0
- package/lib/esm/secrets/core/SecretTypes.js +1 -1
- package/lib/esm/secrets/core/SecretTypes.js.map +1 -0
- package/lib/esm/secrets/core/index.js +1 -1
- package/lib/esm/secrets/core/index.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +1 -0
- package/lib/esm/secrets/gcp/index.js +1 -1
- package/lib/esm/secrets/gcp/index.js.map +1 -0
- package/lib/esm/secrets/index.js +1 -1
- package/lib/esm/secrets/index.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretService.js +1 -1
- package/lib/esm/secrets/model/ModelSecretService.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/model/Secret.js +1 -1
- package/lib/esm/secrets/model/Secret.js.map +1 -0
- package/lib/esm/secrets/model/index.js +1 -1
- package/lib/esm/secrets/model/index.js.map +1 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/onepassword/index.js +1 -1
- package/lib/esm/secrets/onepassword/index.js.map +1 -0
- package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -0
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/vault/index.js +1 -1
- package/lib/esm/secrets/vault/index.js.map +1 -0
- package/lib/esm/shared/runtime.js +1 -1
- package/lib/esm/shared/runtime.js.map +1 -0
- package/lib/esm/utils.js +1 -1
- package/lib/esm/utils.js.map +1 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/keycloak/broker.d.cts +6 -0
- package/lib/types/keycloak/broker.d.mts +6 -0
- package/lib/types/keycloak/index.d.cts +1 -0
- package/lib/types/keycloak/index.d.mts +1 -0
- package/lib/types/keycloak/services/KeycloakIdentityProviderService.d.cts +4 -1
- package/lib/types/keycloak/services/KeycloakIdentityProviderService.d.mts +4 -1
- package/lib/types/keycloak/services/KeycloakService.d.cts +2 -1
- package/lib/types/keycloak/services/KeycloakService.d.mts +2 -1
- package/lib/types/keycloak/types.d.cts +52 -0
- package/lib/types/keycloak/types.d.mts +52 -0
- package/package.json +8 -4
|
@@ -288,5 +288,5 @@ class AuthzService {
|
|
|
288
288
|
}
|
|
289
289
|
}
|
|
290
290
|
exports.AuthzService = AuthzService;
|
|
291
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25hbWVzcGFjZXMvb3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsT0FBTyxFQUNQLFlBQVksRUFFWixhQUFhLEdBQ2QsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLGtDQUFpQixDQUFBO0lBQ2pCLGtDQUFpQixDQUFBO0lBQ2pCLDhCQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEI7QUFFRCxNQUFNLENBQU4sSUFBWSxnQkFLWDtBQUxELFdBQVksZ0JBQWdCO0lBQzFCLHVDQUFtQixDQUFBO0lBQ25CLHFDQUFpQixDQUFBO0lBQ2pCLDJDQUF1QixDQUFBO0lBQ3ZCLHVDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSzNCO0FBRUQsTUFBTSxDQUFOLElBQVksYUFNWDtBQU5ELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsZ0NBQWUsQ0FBQTtJQUNmLG1EQUFrQyxDQUFBO0lBQ2xDLGdDQUFlLENBQUE7SUFDZixtQ0FBa0IsQ0FBQTtBQUNwQixDQUFDLEVBTlcsYUFBYSxLQUFiLGFBQWEsUUFNeEI7QUFFRCxNQUFNLENBQU4sSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLGlDQUFvQixDQUFBO0lBQ3BCLGtDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQWFYO0FBYkQsV0FBWSxrQkFBa0I7SUFDNUIscUNBQWUsQ0FBQTtJQUNmLGtEQUE0QixDQUFBO0lB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LENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLEtBQUssYUFBYSxDQUFDO2FBQ3hELEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8saUJBQWlCLENBQUM7WUFDdkIsUUFBUTtZQUNSLFdBQVc7WUFDWCxhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLGtCQUFrQjtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRCxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBdXRob3JpemF0aW9uRXJyb3IsXG4gIENhc2NhZGUsXG4gIE1vZGVsU2VydmljZSxcbiAgUmVwb3NpdG9yeSxcbiAgdHJhbnNhY3Rpb25hbCxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcblxuZXhwb3J0IGVudW0gSXNvbGF0aW9uVGllciB7XG4gIFBvb2xlZCA9IFwicG9vbGVkXCIsXG4gIEJyaWRnZSA9IFwiYnJpZGdlXCIsXG4gIFNpbG8gPSBcInNpbG9cIixcbn1cblxuZXhwb3J0IGVudW0gTWVtYmVyc2hpcFN0YXR1cyB7XG4gIEludml0ZWQgPSBcImludml0ZWRcIixcbiAgQWN0aXZlID0gXCJhY3RpdmVcIixcbiAgU3VzcGVuZGVkID0gXCJzdXNwZW5kZWRcIixcbiAgUmVtb3ZlZCA9IFwicmVtb3ZlZFwiLFxufVxuXG5leHBvcnQgZW51bSBQcmluY2lwYWxLaW5kIHtcbiAgVXNlciA9IFwidXNlclwiLFxuICBHcm91cCA9IFwiZ3JvdXBcIixcbiAgU2VydmljZUFjY291bnQgPSBcInNlcnZpY2VfYWNjb3VudFwiLFxuICBBZ2VudCA9IFwiYWdlbnRcIixcbiAgQXBpS2V5ID0gXCJhcGlfa2V5XCIsXG59XG5cbmV4cG9ydCBlbnVtIFNjb3BlS2luZCB7XG4gIFRlbmFudCA9IFwidGVuYW50XCIsXG4gIE9yZ1VuaXQgPSBcIm9yZ191bml0XCIsXG4gIFJlc291cmNlID0gXCJyZXNvdXJjZVwiLFxufVxuXG5leHBvcnQgZW51bSBQZXJtaXNzaW9uQ2F0ZWdvcnkge1xuICBBZG1pbiA9IFwiYWRtaW5cIixcbiAgQ29udGVudFJlYWQgPSBcImNvbnRlbnRfcmVhZFwiLFxuICBDb250ZW50V3JpdGUgPSBcImNvbnRlbnRfd3JpdGVcIixcbiAgTWVtb3J5ID0gXCJtZW1vcnlcIixcbiAgR3JhcGggPSBcImdyYXBoXCIsXG4gIFZlY3RvciA9IFwidmVjdG9yXCIsXG4gIEV4cG9ydCA9IFwiZXhwb3J0XCIsXG4gIEJpbGxpbmcgPSBcImJpbGxpbmdcIixcbiAgQXVkaXQgPSBcImF1ZGl0XCIsXG4gIFNlY3VyaXR5ID0gXCJzZWN1cml0eVwiLFxuICBEYXRhID0gXCJkYXRhXCIsXG4gIEF1dG9tYXRpb24gPSBcImF1dG9tYXRpb25cIixcbn1cblxuZXhwb3J0IGVudW0gUmVzb3VyY2VWaXNpYmlsaXR5IHtcbiAgUHJpdmF0ZSA9IFwicHJpdmF0ZVwiLFxuICBSZXNvdXJjZUFjbCA9IFwicmVzb3VyY2VfYWNsXCIsXG4gIE9yZ1VuaXQgPSBcIm9yZ191bml0XCIsXG4gIE9yZ1N1YnRyZWUgPSBcIm9yZ19zdWJ0cmVlXCIsXG4gIFRlbmFudCA9IFwidGVuYW50XCIsXG59XG5cbmV4cG9ydCBlbnVtIFN0b3JhZ2VLaW5kIHtcbiAgUG9zdGdyZXMgPSBcInBvc3RncmVzXCIsXG4gIEFyYW5nbyA9IFwiYXJhbmdvXCIsXG4gIFFkcmFudCA9IFwicWRyYW50XCIsXG4gIE9iamVjdFN0b3JhZ2UgPSBcIm9iamVjdF9zdG9yYWdlXCIsXG59XG5cbmV4cG9ydCBlbnVtIFN0b3JhZ2VCaW5kaW5nS2luZCB7XG4gIFNoYXJlZCA9IFwic2hhcmVkXCIsXG4gIERlZGljYXRlZCA9IFwiZGVkaWNhdGVkXCIsXG59XG5cbmV4cG9ydCBjb25zdCBJc29sYXRpb25UaWVyT3B0aW9ucyA9IE9iamVjdC52YWx1ZXMoSXNvbGF0aW9uVGllcik7XG5leHBvcnQgY29uc3QgTWVtYmVyc2hpcFN0YXR1c09wdGlvbnMgPSBPYmplY3QudmFsdWVzKE1lbWJlcnNoaXBTdGF0dXMpO1xuZXhwb3J0IGNvbnN0IFByaW5jaXBhbEtpbmRPcHRpb25zID0gT2JqZWN0LnZhbHVlcyhQcmluY2lwYWxLaW5kKTtcbmV4cG9ydCBjb25zdCBTY29wZUtpbmRPcHRpb25zID0gT2JqZWN0LnZhbHVlcyhTY29wZUtpbmQpO1xuZXhwb3J0IGNvbnN0IFBlcm1pc3Npb25DYXRlZ29yeU9wdGlvbnMgPSBPYmplY3QudmFsdWVzKFBlcm1pc3Npb25DYXRlZ29yeSk7XG5leHBvcnQgY29uc3QgUmVzb3VyY2VWaXNpYmlsaXR5T3B0aW9ucyA9IE9iamVjdC52YWx1ZXMoUmVzb3VyY2VWaXNpYmlsaXR5KTtcbmV4cG9ydCBjb25zdCBTdG9yYWdlS2luZE9wdGlvbnMgPSBPYmplY3QudmFsdWVzKFN0b3JhZ2VLaW5kKTtcbmV4cG9ydCBjb25zdCBTdG9yYWdlQmluZGluZ0tpbmRPcHRpb25zID0gT2JqZWN0LnZhbHVlcyhTdG9yYWdlQmluZGluZ0tpbmQpO1xuXG5leHBvcnQgY29uc3QgUkVMX1JFU1RSSUNUID0ge1xuICB1cGRhdGU6IENhc2NhZGUuTk9ORSxcbiAgZGVsZXRlOiBDYXNjYWRlLk5PTkUsXG4gIG51bGxhYmxlOiBmYWxzZSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBSRUxfTlVMTElGWSA9IHtcbiAgdXBkYXRlOiBDYXNjYWRlLk5PTkUsXG4gIGRlbGV0ZTogQ2FzY2FkZS5OT05FLFxuICBudWxsYWJsZTogdHJ1ZSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBSRUxfQ0FTQ0FERV9ERVBFTkRFTlQgPSB7XG4gIHVwZGF0ZTogQ2FzY2FkZS5DQVNDQURFLFxuICBkZWxldGU6IENhc2NhZGUuQ0FTQ0FERSxcbiAgbnVsbGFibGU6IGZhbHNlLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IFJFTF9DQVNDQURFX0lOU0VSVF9VUERBVEUgPSB7XG4gIHVwZGF0ZTogQ2FzY2FkZS5DQVNDQURFLFxuICBkZWxldGU6IENhc2NhZGUuTk9ORSxcbiAgbnVsbGFibGU6IGZhbHNlLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgVHhBcmdzID0gYW55W107XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlVGVuYW50SW5wdXQge1xuICBzbHVnOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgaXNvbGF0aW9uVGllcj86IElzb2xhdGlvblRpZXI7XG4gIHByb2ZpbGVLZXk/OiBzdHJpbmc7XG4gIHByb2ZpbGVNZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVVzZXJJbnB1dCB7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBwaG9uZT86IHN0cmluZztcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVPcmdVbml0SW5wdXQge1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICBwYXJlbnRPcmdVbml0SWQ/OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgcHJvZmlsZUtleT86IHN0cmluZztcbiAgcHJvZmlsZU1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlUm9sZUlucHV0IHtcbiAgdGVuYW50SWQ/OiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVBlcm1pc3Npb25JbnB1dCB7XG4gIGtleTogc3RyaW5nO1xuICBjYXRlZ29yeTogUGVybWlzc2lvbkNhdGVnb3J5O1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NpZ25Sb2xlSW5wdXQge1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICBwcmluY2lwYWxJZDogc3RyaW5nO1xuICByb2xlSWQ6IHN0cmluZztcbiAgc2NvcGVLaW5kOiBTY29wZUtpbmQ7XG4gIHNjb3BlSWQ6IHN0cmluZztcbiAgaW5oZXJpdERvd24/OiBib29sZWFuO1xuICBzdGFydHNBdD86IERhdGU7XG4gIGV4cGlyZXNBdD86IERhdGU7XG4gIGNvbmRpdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RlclJlc291cmNlSW5wdXQge1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICBvcmdVbml0SWQ6IHN0cmluZztcbiAgcmVzb3VyY2VUeXBlOiBzdHJpbmc7XG4gIHJlc291cmNlSWQ6IHN0cmluZztcbiAgdmlzaWJpbGl0eTogUmVzb3VyY2VWaXNpYmlsaXR5O1xuICBvd25lclByaW5jaXBhbElkPzogc3RyaW5nO1xuICBzZW5zaXRpdml0eT86IHN0cmluZztcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcmFudFJlc291cmNlSW5wdXQge1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICByZXNvdXJjZUlkOiBzdHJpbmc7XG4gIHByaW5jaXBhbElkOiBzdHJpbmc7XG4gIHBlcm1pc3Npb25LZXk6IHN0cmluZztcbiAgc3RhcnRzQXQ/OiBEYXRlO1xuICBleHBpcmVzQXQ/OiBEYXRlO1xuICBjb25kaXRpb25zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNyZWF0ZWRCeVByaW5jaXBhbElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbkFjY2Vzc0lucHV0IHtcbiAgdGVuYW50SWQ6IHN0cmluZztcbiAgcHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgcGVybWlzc2lvbktleTogc3RyaW5nO1xuICByZXNvdXJjZVByb3RlY3RlZElkPzogc3RyaW5nO1xuICBzY29wZUtpbmQ/OiBTY29wZUtpbmQ7XG4gIHNjb3BlSWQ/OiBzdHJpbmc7XG4gIGF0PzogRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NDb250ZXh0IHtcbiAgdGVuYW50SWQ6IHN0cmluZztcbiAgcHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgcGVybWlzc2lvbnNCeVNjb3BlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT47XG4gIGFsbG93ZWRPcmdVbml0SWRzQnlQZXJtaXNzaW9uOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT47XG4gIHJlc291cmNlR3JhbnRzOiBBcnJheTx7IHJlc291cmNlSWQ6IHN0cmluZzsgcGVybWlzc2lvbktleTogc3RyaW5nIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFyYW5nb0F1dGhDb250ZXh0IHtcbiAgdGVuYW50SWQ6IHN0cmluZztcbiAgcHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgcGVybWlzc2lvbktleTogc3RyaW5nO1xuICBhbGxvd2VkT3JnVW5pdElkczogc3RyaW5nW107XG4gIGFsbG93ZWRSZXNvdXJjZUlkczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUWRyYW50QXV0aEZpbHRlciB7XG4gIG11c3Q6IEFycmF5PFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbiAgbXVzdF9ub3Q/OiBBcnJheTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlU3RvcmFnZUJpbmRpbmdJbnB1dCB7XG4gIHRlbmFudElkOiBzdHJpbmc7XG4gIHN0b3JhZ2VLaW5kOiBTdG9yYWdlS2luZDtcbiAgYmluZGluZ0tpbmQ6IFN0b3JhZ2VCaW5kaW5nS2luZDtcbiAgYmluZGluZ0tleTogc3RyaW5nO1xuICByZWdpb246IHN0cmluZztcbiAgY29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwUGVybWlzc2lvbiB7XG4gIGtleTogc3RyaW5nO1xuICBjYXRlZ29yeTogUGVybWlzc2lvbkNhdGVnb3J5O1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBSb2xlIHtcbiAga2V5OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHBlcm1pc3Npb25LZXlzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBPcmdVbml0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBwcm9maWxlS2V5Pzogc3RyaW5nO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBjaGlsZHJlbj86IEJvb3RzdHJhcE9yZ1VuaXRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBUZW1wbGF0ZSB7XG4gIHRlbmFudDogQ3JlYXRlVGVuYW50SW5wdXQ7XG4gIHJvb3RPcmdVbml0OiBCb290c3RyYXBPcmdVbml0O1xuICBwZXJtaXNzaW9uczogQm9vdHN0cmFwUGVybWlzc2lvbltdO1xuICByb2xlczogQm9vdHN0cmFwUm9sZVtdO1xuICBvd25lclVzZXI6IENyZWF0ZVVzZXJJbnB1dDtcbiAgb3duZXJSb2xlS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VTbmFwc2hvdCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRlbmFudElkOiBzdHJpbmc7XG4gIG9yZ1VuaXRJZDogc3RyaW5nO1xuICByZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgcmVzb3VyY2VJZDogc3RyaW5nO1xuICB2aXNpYmlsaXR5OiBSZXNvdXJjZVZpc2liaWxpdHk7XG4gIG93bmVyUHJpbmNpcGFsSWQ/OiBzdHJpbmc7XG4gIHNlbnNpdGl2aXR5Pzogc3RyaW5nO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyYW50U25hcHNob3Qge1xuICBpZDogc3RyaW5nO1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICByZXNvdXJjZUlkOiBzdHJpbmc7XG4gIHByaW5jaXBhbElkOiBzdHJpbmc7XG4gIHBlcm1pc3Npb25LZXk6IHN0cmluZztcbiAgc3RhcnRzQXQ/OiBEYXRlO1xuICBleHBpcmVzQXQ/OiBEYXRlO1xuICBjb25kaXRpb25zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNyZWF0ZWRCeVByaW5jaXBhbElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVmZmVjdGl2ZVBlcm1pc3Npb25TbmFwc2hvdCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRlbmFudElkOiBzdHJpbmc7XG4gIHByaW5jaXBhbElkOiBzdHJpbmc7XG4gIHBlcm1pc3Npb25LZXk6IHN0cmluZztcbiAgc2NvcGVLaW5kOiBTY29wZUtpbmQ7XG4gIHNjb3BlSWQ6IHN0cmluZztcbiAgc291cmNlS2luZDogc3RyaW5nO1xuICBzb3VyY2VJZDogc3RyaW5nO1xuICBzdGFydHNBdD86IERhdGU7XG4gIGV4cGlyZXNBdD86IERhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aHpEYXRhU291cmNlcyB7XG4gIGxvYWRSZXNvdXJjZT86IChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHByb3RlY3RlZFJlc291cmNlSWQ6IHN0cmluZ1xuICApID0+IFByb21pc2U8UmVzb3VyY2VTbmFwc2hvdCB8IHVuZGVmaW5lZD47XG4gIGxpc3RSZXNvdXJjZUdyYW50cz86IChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHByb3RlY3RlZFJlc291cmNlSWQ6IHN0cmluZ1xuICApID0+IFByb21pc2U8R3JhbnRTbmFwc2hvdFtdPjtcbiAgbGlzdFByaW5jaXBhbEdyYW50cz86IChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHByaW5jaXBhbElkOiBzdHJpbmdcbiAgKSA9PiBQcm9taXNlPEdyYW50U25hcHNob3RbXT47XG4gIGxpc3RFZmZlY3RpdmVQZXJtaXNzaW9ucz86IChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHByaW5jaXBhbElkOiBzdHJpbmdcbiAgKSA9PiBQcm9taXNlPEVmZmVjdGl2ZVBlcm1pc3Npb25TbmFwc2hvdFtdPjtcbiAgbGlzdEVmZmVjdGl2ZVBlcm1pc3Npb25zRm9yU2NvcGU/OiAoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBzY29wZUtpbmQ6IFNjb3BlS2luZCxcbiAgICBzY29wZUlkOiBzdHJpbmdcbiAgKSA9PiBQcm9taXNlPEVmZmVjdGl2ZVBlcm1pc3Npb25TbmFwc2hvdFtdPjtcbn1cblxuZnVuY3Rpb24gaXNUaW1lVmFsaWQoXG4gIGF0OiBEYXRlIHwgdW5kZWZpbmVkLFxuICBzdGFydHNBdD86IERhdGUsXG4gIGV4cGlyZXNBdD86IERhdGVcbik6IGJvb2xlYW4ge1xuICBjb25zdCBpbnN0YW50ID0gYXQgPz8gbmV3IERhdGUoKTtcbiAgaWYgKHN0YXJ0c0F0ICYmIGluc3RhbnQgPCBzdGFydHNBdCkgcmV0dXJuIGZhbHNlO1xuICBpZiAoZXhwaXJlc0F0ICYmIGluc3RhbnQgPiBleHBpcmVzQXQpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHNjb3BlS2V5KHNjb3BlS2luZDogU2NvcGVLaW5kLCBzY29wZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2NvcGVLaW5kfToke3Njb3BlSWR9YDtcbn1cblxuZnVuY3Rpb24gdG9BcnJheTxUPih2YWx1ZTogVFtdIHwgdW5kZWZpbmVkKTogVFtdIHtcbiAgcmV0dXJuIHZhbHVlID8/IFtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRBcmFuZ29Db250ZXh0KG9wdGlvbnM6IHtcbiAgdGVuYW50SWQ6IHN0cmluZztcbiAgcHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgcGVybWlzc2lvbktleTogc3RyaW5nO1xuICBhbGxvd2VkT3JnVW5pdElkczogc3RyaW5nW107XG4gIGFsbG93ZWRSZXNvdXJjZUlkczogc3RyaW5nW107XG59KTogQXJhbmdvQXV0aENvbnRleHQge1xuICByZXR1cm4ge1xuICAgIHRlbmFudElkOiBvcHRpb25zLnRlbmFudElkLFxuICAgIHByaW5jaXBhbElkOiBvcHRpb25zLnByaW5jaXBhbElkLFxuICAgIHBlcm1pc3Npb25LZXk6IG9wdGlvbnMucGVybWlzc2lvbktleSxcbiAgICBhbGxvd2VkT3JnVW5pdElkczogWy4uLm9wdGlvbnMuYWxsb3dlZE9yZ1VuaXRJZHNdLFxuICAgIGFsbG93ZWRSZXNvdXJjZUlkczogWy4uLm9wdGlvbnMuYWxsb3dlZFJlc291cmNlSWRzXSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUWRyYW50RmlsdGVyKG9wdGlvbnM6IHtcbiAgdGVuYW50SWQ6IHN0cmluZztcbiAgcHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgcGVybWlzc2lvbktleTogc3RyaW5nO1xuICBhbGxvd2VkT3JnVW5pdElkczogc3RyaW5nW107XG4gIGFsbG93ZWRSZXNvdXJjZUlkczogc3RyaW5nW107XG59KTogUWRyYW50QXV0aEZpbHRlciB7XG4gIHJldHVybiB7XG4gICAgbXVzdDogW1xuICAgICAge1xuICAgICAgICBrZXk6IFwidGVuYW50X2lkXCIsXG4gICAgICAgIG1hdGNoOiB7IHZhbHVlOiBvcHRpb25zLnRlbmFudElkIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzaG91bGQ6IFtcbiAgICAgICAgICB7IGtleTogXCJvcmdfdW5pdF9pZFwiLCBtYXRjaDogeyBhbnk6IG9wdGlvbnMuYWxsb3dlZE9yZ1VuaXRJZHMgfSB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJwcm90ZWN0ZWRfcmVzb3VyY2VfaWRcIixcbiAgICAgICAgICAgIG1hdGNoOiB7IGFueTogb3B0aW9ucy5hbGxvd2VkUmVzb3VyY2VJZHMgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsga2V5OiBcIm93bmVyX3ByaW5jaXBhbF9pZFwiLCBtYXRjaDogeyB2YWx1ZTogb3B0aW9ucy5wcmluY2lwYWxJZCB9IH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEFjY2Vzc0NvbnRleHQob3B0aW9uczoge1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICBwcmluY2lwYWxJZDogc3RyaW5nO1xuICBwZXJtaXNzaW9uczogRWZmZWN0aXZlUGVybWlzc2lvblNuYXBzaG90W107XG4gIGdyYW50czogR3JhbnRTbmFwc2hvdFtdO1xufSk6IEFjY2Vzc0NvbnRleHQge1xuICBjb25zdCBwZXJtaXNzaW9uc0J5U2NvcGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9O1xuICBjb25zdCBhbGxvd2VkT3JnVW5pdElkc0J5UGVybWlzc2lvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG5cbiAgZm9yIChjb25zdCBwZXJtaXNzaW9uIG9mIG9wdGlvbnMucGVybWlzc2lvbnMpIHtcbiAgICBjb25zdCBrZXkgPSBzY29wZUtleShwZXJtaXNzaW9uLnNjb3BlS2luZCwgcGVybWlzc2lvbi5zY29wZUlkKTtcbiAgICBwZXJtaXNzaW9uc0J5U2NvcGVba2V5XSA9IHBlcm1pc3Npb25zQnlTY29wZVtrZXldID8/IFtdO1xuICAgIHBlcm1pc3Npb25zQnlTY29wZVtrZXldLnB1c2gocGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5KTtcbiAgICBpZiAocGVybWlzc2lvbi5zY29wZUtpbmQgPT09IFNjb3BlS2luZC5PcmdVbml0KSB7XG4gICAgICBhbGxvd2VkT3JnVW5pdElkc0J5UGVybWlzc2lvbltwZXJtaXNzaW9uLnBlcm1pc3Npb25LZXldID1cbiAgICAgICAgYWxsb3dlZE9yZ1VuaXRJZHNCeVBlcm1pc3Npb25bcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5XSA/PyBbXTtcbiAgICAgIGFsbG93ZWRPcmdVbml0SWRzQnlQZXJtaXNzaW9uW3Blcm1pc3Npb24ucGVybWlzc2lvbktleV0ucHVzaChcbiAgICAgICAgcGVybWlzc2lvbi5zY29wZUlkXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdGVuYW50SWQ6IG9wdGlvbnMudGVuYW50SWQsXG4gICAgcHJpbmNpcGFsSWQ6IG9wdGlvbnMucHJpbmNpcGFsSWQsXG4gICAgcGVybWlzc2lvbnNCeVNjb3BlLFxuICAgIGFsbG93ZWRPcmdVbml0SWRzQnlQZXJtaXNzaW9uLFxuICAgIHJlc291cmNlR3JhbnRzOiBvcHRpb25zLmdyYW50cy5tYXAoKGdyYW50KSA9PiAoe1xuICAgICAgcmVzb3VyY2VJZDogZ3JhbnQucmVzb3VyY2VJZCxcbiAgICAgIHBlcm1pc3Npb25LZXk6IGdyYW50LnBlcm1pc3Npb25LZXksXG4gICAgfSkpLFxuICB9O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZU1vZGVsU2VydmljZTxcbiAgTSBleHRlbmRzIE1vZGVsPGJvb2xlYW4+ICYgeyBpZDogc3RyaW5nIH0sXG4+IGV4dGVuZHMgTW9kZWxTZXJ2aWNlPE0sIFJlcG9zaXRvcnk8TSwgYW55Pj4ge1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoY2xheno6IG5ldyAoKSA9PiBNKSB7XG4gICAgc3VwZXIoY2xhenopO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5ld01vZGVsPFQ+KGNsYXp6OiBuZXcgKCkgPT4gVCwgZGF0YTogUGFydGlhbDxUPik6IFQge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBjbGF6eigpIGFzIG9iamVjdCwgZGF0YSBhcyBvYmplY3QpIGFzIFQ7XG4gIH1cblxuICBhc3luYyBjcmVhdGVPbmUoZGF0YTogUGFydGlhbDxNPiwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPE0+IHtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmNyZWF0ZShPYmplY3QuYXNzaWduKHt9IGFzIE0sIGRhdGEgYXMgb2JqZWN0KSwgLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyBnZXRCeUlkKGlkOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxNPiB7XG4gICAgcmV0dXJuIHRoaXMucmVwby5yZWFkKGlkLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZU9uZShpZDogc3RyaW5nLCBwYXRjaDogUGFydGlhbDxNPiwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPE0+IHtcbiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IHRoaXMucmVwby5yZWFkKGlkLCAuLi5hcmdzKTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLnVwZGF0ZShPYmplY3QuYXNzaWduKGV4aXN0aW5nLCBwYXRjaCksIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlQnlJZChpZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucmVwby5kZWxldGUoaWQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgZmluZE9uZUJ5PEsgZXh0ZW5kcyBrZXlvZiBNICYgc3RyaW5nPihcbiAgICBrZXk6IEssXG4gICAgdmFsdWU6IE1bS10sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxNPiB7XG4gICAgcmV0dXJuIHRoaXMucmVwby5maW5kT25lQnkoa2V5LCB2YWx1ZSwgLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyBmaW5kTWFueUJ5PEsgZXh0ZW5kcyBrZXlvZiBNICYgc3RyaW5nPihcbiAgICBrZXk6IEssXG4gICAgdmFsdWU6IE1bS10sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxNW10+IHtcbiAgICByZXR1cm4gdGhpcy5yZXBvXG4gICAgICAuc2VsZWN0KClcbiAgICAgIC53aGVyZSh7IFtrZXldOiB2YWx1ZSB9IGFzIGFueSlcbiAgICAgIC5leGVjdXRlKC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgbGlzdEFsbCguLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TVtdPiB7XG4gICAgcmV0dXJuIHRoaXMucmVwby5zZWxlY3QoKS5leGVjdXRlKC4uLmFyZ3MpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpZCgpOiBzdHJpbmcge1xuICByZXR1cm4gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbGF0aW9uSWQodmFsdWU6IHN0cmluZyB8IHsgaWQ6IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHZhbHVlIDogdmFsdWUuaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBBdXRoelNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFTb3VyY2VzOiBBdXRoekRhdGFTb3VyY2VzO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGFTb3VyY2VzOiBBdXRoekRhdGFTb3VyY2VzID0ge30pIHtcbiAgICB0aGlzLmRhdGFTb3VyY2VzID0gZGF0YVNvdXJjZXM7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIGFzeW5jIGNhbkFjY2VzcyhpbnB1dDogQ2FuQWNjZXNzSW5wdXQsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgYXQgPSBpbnB1dC5hdCA/PyBuZXcgRGF0ZSgpO1xuXG4gICAgaWYgKGlucHV0LnNjb3BlS2luZCAmJiBpbnB1dC5zY29wZUlkKSB7XG4gICAgICBjb25zdCBwZXJtaXNzaW9ucyA9XG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubGlzdEVmZmVjdGl2ZVBlcm1pc3Npb25zRm9yU2NvcGU/LihcbiAgICAgICAgICBpbnB1dC50ZW5hbnRJZCxcbiAgICAgICAgICBpbnB1dC5zY29wZUtpbmQsXG4gICAgICAgICAgaW5wdXQuc2NvcGVJZFxuICAgICAgICApO1xuICAgICAgcmV0dXJuIHRvQXJyYXkocGVybWlzc2lvbnMpLnNvbWUoXG4gICAgICAgIChwZXJtaXNzaW9uKSA9PlxuICAgICAgICAgIHBlcm1pc3Npb24ucGVybWlzc2lvbktleSA9PT0gaW5wdXQucGVybWlzc2lvbktleSAmJlxuICAgICAgICAgIGlzVGltZVZhbGlkKGF0LCBwZXJtaXNzaW9uLnN0YXJ0c0F0LCBwZXJtaXNzaW9uLmV4cGlyZXNBdClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFpbnB1dC5yZXNvdXJjZVByb3RlY3RlZElkKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubG9hZFJlc291cmNlPy4oXG4gICAgICBpbnB1dC50ZW5hbnRJZCxcbiAgICAgIGlucHV0LnJlc291cmNlUHJvdGVjdGVkSWRcbiAgICApO1xuICAgIGlmICghcmVzb3VyY2UpIHJldHVybiBmYWxzZTtcbiAgICBpZiAocmVzb3VyY2UudGVuYW50SWQgIT09IGlucHV0LnRlbmFudElkKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAocmVzb3VyY2Uub3duZXJQcmluY2lwYWxJZCA9PT0gaW5wdXQucHJpbmNpcGFsSWQpIHJldHVybiB0cnVlO1xuXG4gICAgY29uc3QgZ3JhbnRzID0gdG9BcnJheShcbiAgICAgIGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubGlzdFJlc291cmNlR3JhbnRzPy4oXG4gICAgICAgIGlucHV0LnRlbmFudElkLFxuICAgICAgICBpbnB1dC5yZXNvdXJjZVByb3RlY3RlZElkXG4gICAgICApXG4gICAgKS5maWx0ZXIoXG4gICAgICAoZ3JhbnQpID0+XG4gICAgICAgIGdyYW50LnByaW5jaXBhbElkID09PSBpbnB1dC5wcmluY2lwYWxJZCAmJlxuICAgICAgICBncmFudC5wZXJtaXNzaW9uS2V5ID09PSBpbnB1dC5wZXJtaXNzaW9uS2V5ICYmXG4gICAgICAgIGlzVGltZVZhbGlkKGF0LCBncmFudC5zdGFydHNBdCwgZ3JhbnQuZXhwaXJlc0F0KVxuICAgICk7XG4gICAgaWYgKGdyYW50cy5sZW5ndGggPiAwKSByZXR1cm4gdHJ1ZTtcblxuICAgIGNvbnN0IHZpc2liaWxpdHkgPSByZXNvdXJjZS52aXNpYmlsaXR5O1xuICAgIGlmIChcbiAgICAgIHZpc2liaWxpdHkgPT09IFJlc291cmNlVmlzaWJpbGl0eS5Qcml2YXRlIHx8XG4gICAgICB2aXNpYmlsaXR5ID09PSBSZXNvdXJjZVZpc2liaWxpdHkuUmVzb3VyY2VBY2xcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB2aXNpYmlsaXR5ID09PSBSZXNvdXJjZVZpc2liaWxpdHkuT3JnVW5pdCB8fFxuICAgICAgdmlzaWJpbGl0eSA9PT0gUmVzb3VyY2VWaXNpYmlsaXR5Lk9yZ1N1YnRyZWVcbiAgICApIHtcbiAgICAgIGNvbnN0IGVmZmVjdGl2ZVBlcm1pc3Npb25zID0gdG9BcnJheShcbiAgICAgICAgYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0RWZmZWN0aXZlUGVybWlzc2lvbnNGb3JTY29wZT8uKFxuICAgICAgICAgIGlucHV0LnRlbmFudElkLFxuICAgICAgICAgIFNjb3BlS2luZC5PcmdVbml0LFxuICAgICAgICAgIHJlc291cmNlLm9yZ1VuaXRJZFxuICAgICAgICApXG4gICAgICApO1xuICAgICAgcmV0dXJuIGVmZmVjdGl2ZVBlcm1pc3Npb25zLnNvbWUoXG4gICAgICAgIChwZXJtaXNzaW9uKSA9PlxuICAgICAgICAgIHBlcm1pc3Npb24ucGVybWlzc2lvbktleSA9PT0gaW5wdXQucGVybWlzc2lvbktleSAmJlxuICAgICAgICAgIGlzVGltZVZhbGlkKGF0LCBwZXJtaXNzaW9uLnN0YXJ0c0F0LCBwZXJtaXNzaW9uLmV4cGlyZXNBdClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHZpc2liaWxpdHkgPT09IFJlc291cmNlVmlzaWJpbGl0eS5UZW5hbnQpIHtcbiAgICAgIGNvbnN0IGVmZmVjdGl2ZVBlcm1pc3Npb25zID0gdG9BcnJheShcbiAgICAgICAgYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0RWZmZWN0aXZlUGVybWlzc2lvbnNGb3JTY29wZT8uKFxuICAgICAgICAgIGlucHV0LnRlbmFudElkLFxuICAgICAgICAgIFNjb3BlS2luZC5UZW5hbnQsXG4gICAgICAgICAgaW5wdXQudGVuYW50SWRcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHJldHVybiBlZmZlY3RpdmVQZXJtaXNzaW9ucy5zb21lKFxuICAgICAgICAocGVybWlzc2lvbikgPT5cbiAgICAgICAgICBwZXJtaXNzaW9uLnBlcm1pc3Npb25LZXkgPT09IGlucHV0LnBlcm1pc3Npb25LZXkgJiZcbiAgICAgICAgICBpc1RpbWVWYWxpZChhdCwgcGVybWlzc2lvbi5zdGFydHNBdCwgcGVybWlzc2lvbi5leHBpcmVzQXQpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGFzeW5jIHJlcXVpcmVBY2Nlc3MoaW5wdXQ6IENhbkFjY2Vzc0lucHV0LCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghKGF3YWl0IHRoaXMuY2FuQWNjZXNzKGlucHV0LCAuLi5hcmdzKSkpIHtcbiAgICAgIHRocm93IG5ldyBBdXRob3JpemF0aW9uRXJyb3IoXG4gICAgICAgIGBBY2Nlc3MgZGVuaWVkIGZvciAke2lucHV0LnBlcm1pc3Npb25LZXl9IG9uICR7aW5wdXQucmVzb3VyY2VQcm90ZWN0ZWRJZCA/PyBzY29wZUtleShpbnB1dC5zY29wZUtpbmQgPz8gU2NvcGVLaW5kLlJlc291cmNlLCBpbnB1dC5zY29wZUlkID8/IFwiXCIpfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYnVpbGRBY2Nlc3NDb250ZXh0KFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxBY2Nlc3NDb250ZXh0PiB7XG4gICAgY29uc3QgcGVybWlzc2lvbnMgPSB0b0FycmF5KFxuICAgICAgYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0RWZmZWN0aXZlUGVybWlzc2lvbnM/Lih0ZW5hbnRJZCwgcHJpbmNpcGFsSWQpXG4gICAgKTtcbiAgICBjb25zdCBncmFudHMgPSB0b0FycmF5KFxuICAgICAgYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0UHJpbmNpcGFsR3JhbnRzPy4odGVuYW50SWQsIHByaW5jaXBhbElkKVxuICAgICk7XG4gICAgcmV0dXJuIGJ1aWxkQWNjZXNzQ29udGV4dCh7XG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHByaW5jaXBhbElkLFxuICAgICAgcGVybWlzc2lvbnMsXG4gICAgICBncmFudHMsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBidWlsZEFyYW5nb0NvbnRleHQoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIHBlcm1pc3Npb25LZXk6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPEFyYW5nb0F1dGhDb250ZXh0PiB7XG4gICAgY29uc3QgYWNjZXNzID0gYXdhaXQgdGhpcy5idWlsZEFjY2Vzc0NvbnRleHQoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHByaW5jaXBhbElkLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgY29uc3QgYWxsb3dlZE9yZ1VuaXRJZHMgPVxuICAgICAgYWNjZXNzLmFsbG93ZWRPcmdVbml0SWRzQnlQZXJtaXNzaW9uW3Blcm1pc3Npb25LZXldID8/IFtdO1xuICAgIGNvbnN0IGFsbG93ZWRSZXNvdXJjZUlkcyA9IGFjY2Vzcy5yZXNvdXJjZUdyYW50c1xuICAgICAgLmZpbHRlcigoZ3JhbnQpID0+IGdyYW50LnBlcm1pc3Npb25LZXkgPT09IHBlcm1pc3Npb25LZXkpXG4gICAgICAubWFwKChncmFudCkgPT4gZ3JhbnQucmVzb3VyY2VJZCk7XG4gICAgcmV0dXJuIGJ1aWxkQXJhbmdvQ29udGV4dCh7XG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHByaW5jaXBhbElkLFxuICAgICAgcGVybWlzc2lvbktleSxcbiAgICAgIGFsbG93ZWRPcmdVbml0SWRzLFxuICAgICAgYWxsb3dlZFJlc291cmNlSWRzLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgYnVpbGRRZHJhbnRGaWx0ZXIoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIHBlcm1pc3Npb25LZXk6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFFkcmFudEF1dGhGaWx0ZXI+IHtcbiAgICBjb25zdCBhY2Nlc3MgPSBhd2FpdCB0aGlzLmJ1aWxkQWNjZXNzQ29udGV4dChcbiAgICAgIHRlbmFudElkLFxuICAgICAgcHJpbmNpcGFsSWQsXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBjb25zdCBhbGxvd2VkT3JnVW5pdElkcyA9XG4gICAgICBhY2Nlc3MuYWxsb3dlZE9yZ1VuaXRJZHNCeVBlcm1pc3Npb25bcGVybWlzc2lvbktleV0gPz8gW107XG4gICAgY29uc3QgYWxsb3dlZFJlc291cmNlSWRzID0gYWNjZXNzLnJlc291cmNlR3JhbnRzXG4gICAgICAuZmlsdGVyKChncmFudCkgPT4gZ3JhbnQucGVybWlzc2lvbktleSA9PT0gcGVybWlzc2lvbktleSlcbiAgICAgIC5tYXAoKGdyYW50KSA9PiBncmFudC5yZXNvdXJjZUlkKTtcbiAgICByZXR1cm4gYnVpbGRRZHJhbnRGaWx0ZXIoe1xuICAgICAgdGVuYW50SWQsXG4gICAgICBwcmluY2lwYWxJZCxcbiAgICAgIHBlcm1pc3Npb25LZXksXG4gICAgICBhbGxvd2VkT3JnVW5pdElkcyxcbiAgICAgIGFsbG93ZWRSZXNvdXJjZUlkcyxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgeyB0cmFuc2FjdGlvbmFsIH07XG4iXX0=
|
|
292
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsib3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXlHQSxnREFRQztBQUNELDhDQW1CQztBQUNELGdEQXVCQztBQWtDRCxnQkFFQztBQUNELGdDQUVDO0FBcE1ELHlDQUEyRjtBQStSbEYsOEZBL1IyQyxvQkFBYSxPQStSM0M7QUE3UnRCLENBQUMsVUFBVSxhQUFhO0lBQ3BCLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUM7SUFDbkMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQztJQUNuQyxhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBQ25DLENBQUMsQ0FBQyxDQUFDLHFCQUFhLElBQUksQ0FBQyxxQkFBYSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFMUMsQ0FBQyxVQUFVLGdCQUFnQjtJQUN2QixnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUM7SUFDeEMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBQ3RDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxHQUFHLFdBQVcsQ0FBQztJQUM1QyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUM7QUFDNUMsQ0FBQyxDQUFDLENBQUMsd0JBQWdCLElBQUksQ0FBQyx3QkFBZ0IsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRWhELENBQUMsVUFBVSxhQUFhO0lBQ3BCLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDL0IsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQztJQUNqQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxpQkFBaUIsQ0FBQztJQUNwRCxhQUFhLENBQUMsT0FBTyxDQUFDLEdB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QUFDLGFBQWEsS0FBSyxhQUFhLENBQUM7YUFDeEQsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsT0FBTyxpQkFBaUIsQ0FBQztZQUNyQixRQUFRO1lBQ1IsV0FBVztZQUNYLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsa0JBQWtCO1NBQ3JCLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSjtBQXpGRCxvQ0F5RkM7QUFFRCxrdm1DQUFrdm1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aG9yaXphdGlvbkVycm9yLCBDYXNjYWRlLCBNb2RlbFNlcnZpY2UsIHRyYW5zYWN0aW9uYWwsIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5leHBvcnQgdmFyIElzb2xhdGlvblRpZXI7XG4oZnVuY3Rpb24gKElzb2xhdGlvblRpZXIpIHtcbiAgICBJc29sYXRpb25UaWVyW1wiUG9vbGVkXCJdID0gXCJwb29sZWRcIjtcbiAgICBJc29sYXRpb25UaWVyW1wiQnJpZGdlXCJdID0gXCJicmlkZ2VcIjtcbiAgICBJc29sYXRpb25UaWVyW1wiU2lsb1wiXSA9IFwic2lsb1wiO1xufSkoSXNvbGF0aW9uVGllciB8fCAoSXNvbGF0aW9uVGllciA9IHt9KSk7XG5leHBvcnQgdmFyIE1lbWJlcnNoaXBTdGF0dXM7XG4oZnVuY3Rpb24gKE1lbWJlcnNoaXBTdGF0dXMpIHtcbiAgICBNZW1iZXJzaGlwU3RhdHVzW1wiSW52aXRlZFwiXSA9IFwiaW52aXRlZFwiO1xuICAgIE1lbWJlcnNoaXBTdGF0dXNbXCJBY3RpdmVcIl0gPSBcImFjdGl2ZVwiO1xuICAgIE1lbWJlcnNoaXBTdGF0dXNbXCJTdXNwZW5kZWRcIl0gPSBcInN1c3BlbmRlZFwiO1xuICAgIE1lbWJlcnNoaXBTdGF0dXNbXCJSZW1vdmVkXCJdID0gXCJyZW1vdmVkXCI7XG59KShNZW1iZXJzaGlwU3RhdHVzIHx8IChNZW1iZXJzaGlwU3RhdHVzID0ge30pKTtcbmV4cG9ydCB2YXIgUHJpbmNpcGFsS2luZDtcbihmdW5jdGlvbiAoUHJpbmNpcGFsS2luZCkge1xuICAgIFByaW5jaXBhbEtpbmRbXCJVc2VyXCJdID0gXCJ1c2VyXCI7XG4gICAgUHJpbmNpcGFsS2luZFtcIkdyb3VwXCJdID0gXCJncm91cFwiO1xuICAgIFByaW5jaXBhbEtpbmRbXCJTZXJ2aWNlQWNjb3VudFwiXSA9IFwic2VydmljZV9hY2NvdW50XCI7XG4gICAgUHJpbmNpcGFsS2luZFtcIkFnZW50XCJdID0gXCJhZ2VudFwiO1xuICAgIFByaW5jaXBhbEtpbmRbXCJBcGlLZXlcIl0gPSBcImFwaV9rZXlcIjtcbn0pKFByaW5jaXBhbEtpbmQgfHwgKFByaW5jaXBhbEtpbmQgPSB7fSkpO1xuZXhwb3J0IHZhciBTY29wZUtpbmQ7XG4oZnVuY3Rpb24gKFNjb3BlS2luZCkge1xuICAgIFNjb3BlS2luZFtcIlRlbmFudFwiXSA9IFwidGVuYW50XCI7XG4gICAgU2NvcGVLaW5kW1wiT3JnVW5pdFwiXSA9IFwib3JnX3VuaXRcIjtcbiAgICBTY29wZUtpbmRbXCJSZXNvdXJjZVwiXSA9IFwicmVzb3VyY2VcIjtcbn0pKFNjb3BlS2luZCB8fCAoU2NvcGVLaW5kID0ge30pKTtcbmV4cG9ydCB2YXIgUGVybWlzc2lvbkNhdGVnb3J5O1xuKGZ1bmN0aW9uIChQZXJtaXNzaW9uQ2F0ZWdvcnkpIHtcbiAgICBQZXJtaXNzaW9uQ2F0ZWdvcnlbXCJBZG1pblwiXSA9IFwiYWRtaW5cIjtcbiAgICBQZXJtaXNzaW9uQ2F0ZWdvcnlbXCJDb250ZW50UmVhZFwiXSA9IFwiY29udGVudF9yZWFkXCI7XG4gICAgUGVybWlzc2lvbkNhdGVnb3J5W1wiQ29udGVudFdyaXRlXCJdID0gXCJjb250ZW50X3dyaXRlXCI7XG4gICAgUGVybWlzc2lvbkNhdGVnb3J5W1wiTWVtb3J5XCJdID0gXCJtZW1vcnlcIjtcbiAgICBQZXJtaXNzaW9uQ2F0ZWdvcnlbXCJHcmFwaFwiXSA9IFwiZ3JhcGhcIjtcbiAgICBQZXJtaXNzaW9uQ2F0ZWdvcnlbXCJWZWN0b3JcIl0gPSBcInZlY3RvclwiO1xuICAgIFBlcm1pc3Npb25DYXRlZ29yeVtcIkV4cG9ydFwiXSA9IFwiZXhwb3J0XCI7XG4gICAgUGVybWlzc2lvbkNhdGVnb3J5W1wiQmlsbGluZ1wiXSA9IFwiYmlsbGluZ1wiO1xuICAgIFBlcm1pc3Npb25DYXRlZ29yeVtcIkF1ZGl0XCJdID0gXCJhdWRpdFwiO1xuICAgIFBlcm1pc3Npb25DYXRlZ29yeVtcIlNlY3VyaXR5XCJdID0gXCJzZWN1cml0eVwiO1xuICAgIFBlcm1pc3Npb25DYXRlZ29yeVtcIkRhdGFcIl0gPSBcImRhdGFcIjtcbiAgICBQZXJtaXNzaW9uQ2F0ZWdvcnlbXCJBdXRvbWF0aW9uXCJdID0gXCJhdXRvbWF0aW9uXCI7XG59KShQZXJtaXNzaW9uQ2F0ZWdvcnkgfHwgKFBlcm1pc3Npb25DYXRlZ29yeSA9IHt9KSk7XG5leHBvcnQgdmFyIFJlc291cmNlVmlzaWJpbGl0eTtcbihmdW5jdGlvbiAoUmVzb3VyY2VWaXNpYmlsaXR5KSB7XG4gICAgUmVzb3VyY2VWaXNpYmlsaXR5W1wiUHJpdmF0ZVwiXSA9IFwicHJpdmF0ZVwiO1xuICAgIFJlc291cmNlVmlzaWJpbGl0eVtcIlJlc291cmNlQWNsXCJdID0gXCJyZXNvdXJjZV9hY2xcIjtcbiAgICBSZXNvdXJjZVZpc2liaWxpdHlbXCJPcmdVbml0XCJdID0gXCJvcmdfdW5pdFwiO1xuICAgIFJlc291cmNlVmlzaWJpbGl0eVtcIk9yZ1N1YnRyZWVcIl0gPSBcIm9yZ19zdWJ0cmVlXCI7XG4gICAgUmVzb3VyY2VWaXNpYmlsaXR5W1wiVGVuYW50XCJdID0gXCJ0ZW5hbnRcIjtcbn0pKFJlc291cmNlVmlzaWJpbGl0eSB8fCAoUmVzb3VyY2VWaXNpYmlsaXR5ID0ge30pKTtcbmV4cG9ydCB2YXIgU3RvcmFnZUtpbmQ7XG4oZnVuY3Rpb24gKFN0b3JhZ2VLaW5kKSB7XG4gICAgU3RvcmFnZUtpbmRbXCJQb3N0Z3Jlc1wiXSA9IFwicG9zdGdyZXNcIjtcbiAgICBTdG9yYWdlS2luZFtcIkFyYW5nb1wiXSA9IFwiYXJhbmdvXCI7XG4gICAgU3RvcmFnZUtpbmRbXCJRZHJhbnRcIl0gPSBcInFkcmFudFwiO1xuICAgIFN0b3JhZ2VLaW5kW1wiT2JqZWN0U3RvcmFnZVwiXSA9IFwib2JqZWN0X3N0b3JhZ2VcIjtcbn0pKFN0b3JhZ2VLaW5kIHx8IChTdG9yYWdlS2luZCA9IHt9KSk7XG5leHBvcnQgdmFyIFN0b3JhZ2VCaW5kaW5nS2luZDtcbihmdW5jdGlvbiAoU3RvcmFnZUJpbmRpbmdLaW5kKSB7XG4gICAgU3RvcmFnZUJpbmRpbmdLaW5kW1wiU2hhcmVkXCJdID0gXCJzaGFyZWRcIjtcbiAgICBTdG9yYWdlQmluZGluZ0tpbmRbXCJEZWRpY2F0ZWRcIl0gPSBcImRlZGljYXRlZFwiO1xufSkoU3RvcmFnZUJpbmRpbmdLaW5kIHx8IChTdG9yYWdlQmluZGluZ0tpbmQgPSB7fSkpO1xuZXhwb3J0IGNvbnN0IElzb2xhdGlvblRpZXJPcHRpb25zID0gT2JqZWN0LnZhbHVlcyhJc29sYXRpb25UaWVyKTtcbmV4cG9ydCBjb25zdCBNZW1iZXJzaGlwU3RhdHVzT3B0aW9ucyA9IE9iamVjdC52YWx1ZXMoTWVtYmVyc2hpcFN0YXR1cyk7XG5leHBvcnQgY29uc3QgUHJpbmNpcGFsS2luZE9wdGlvbnMgPSBPYmplY3QudmFsdWVzKFByaW5jaXBhbEtpbmQpO1xuZXhwb3J0IGNvbnN0IFNjb3BlS2luZE9wdGlvbnMgPSBPYmplY3QudmFsdWVzKFNjb3BlS2luZCk7XG5leHBvcnQgY29uc3QgUGVybWlzc2lvbkNhdGVnb3J5T3B0aW9ucyA9IE9iamVjdC52YWx1ZXMoUGVybWlzc2lvbkNhdGVnb3J5KTtcbmV4cG9ydCBjb25zdCBSZXNvdXJjZVZpc2liaWxpdHlPcHRpb25zID0gT2JqZWN0LnZhbHVlcyhSZXNvdXJjZVZpc2liaWxpdHkpO1xuZXhwb3J0IGNvbnN0IFN0b3JhZ2VLaW5kT3B0aW9ucyA9IE9iamVjdC52YWx1ZXMoU3RvcmFnZUtpbmQpO1xuZXhwb3J0IGNvbnN0IFN0b3JhZ2VCaW5kaW5nS2luZE9wdGlvbnMgPSBPYmplY3QudmFsdWVzKFN0b3JhZ2VCaW5kaW5nS2luZCk7XG5leHBvcnQgY29uc3QgUkVMX1JFU1RSSUNUID0ge1xuICAgIHVwZGF0ZTogQ2FzY2FkZS5OT05FLFxuICAgIGRlbGV0ZTogQ2FzY2FkZS5OT05FLFxuICAgIG51bGxhYmxlOiBmYWxzZSxcbn07XG5leHBvcnQgY29uc3QgUkVMX05VTExJRlkgPSB7XG4gICAgdXBkYXRlOiBDYXNjYWRlLk5PTkUsXG4gICAgZGVsZXRlOiBDYXNjYWRlLk5PTkUsXG4gICAgbnVsbGFibGU6IHRydWUsXG59O1xuZXhwb3J0IGNvbnN0IFJFTF9DQVNDQURFX0RFUEVOREVOVCA9IHtcbiAgICB1cGRhdGU6IENhc2NhZGUuQ0FTQ0FERSxcbiAgICBkZWxldGU6IENhc2NhZGUuQ0FTQ0FERSxcbiAgICBudWxsYWJsZTogZmFsc2UsXG59O1xuZXhwb3J0IGNvbnN0IFJFTF9DQVNDQURFX0lOU0VSVF9VUERBVEUgPSB7XG4gICAgdXBkYXRlOiBDYXNjYWRlLkNBU0NBREUsXG4gICAgZGVsZXRlOiBDYXNjYWRlLk5PTkUsXG4gICAgbnVsbGFibGU6IGZhbHNlLFxufTtcbmZ1bmN0aW9uIGlzVGltZVZhbGlkKGF0LCBzdGFydHNBdCwgZXhwaXJlc0F0KSB7XG4gICAgY29uc3QgaW5zdGFudCA9IGF0ID8/IG5ldyBEYXRlKCk7XG4gICAgaWYgKHN0YXJ0c0F0ICYmIGluc3RhbnQgPCBzdGFydHNBdClcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChleHBpcmVzQXQgJiYgaW5zdGFudCA+IGV4cGlyZXNBdClcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gc2NvcGVLZXkoc2NvcGVLaW5kLCBzY29wZUlkKSB7XG4gICAgcmV0dXJuIGAke3Njb3BlS2luZH06JHtzY29wZUlkfWA7XG59XG5mdW5jdGlvbiB0b0FycmF5KHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlID8/IFtdO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQXJhbmdvQ29udGV4dChvcHRpb25zKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdGVuYW50SWQ6IG9wdGlvbnMudGVuYW50SWQsXG4gICAgICAgIHByaW5jaXBhbElkOiBvcHRpb25zLnByaW5jaXBhbElkLFxuICAgICAgICBwZXJtaXNzaW9uS2V5OiBvcHRpb25zLnBlcm1pc3Npb25LZXksXG4gICAgICAgIGFsbG93ZWRPcmdVbml0SWRzOiBbLi4ub3B0aW9ucy5hbGxvd2VkT3JnVW5pdElkc10sXG4gICAgICAgIGFsbG93ZWRSZXNvdXJjZUlkczogWy4uLm9wdGlvbnMuYWxsb3dlZFJlc291cmNlSWRzXSxcbiAgICB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUWRyYW50RmlsdGVyKG9wdGlvbnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBtdXN0OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiBcInRlbmFudF9pZFwiLFxuICAgICAgICAgICAgICAgIG1hdGNoOiB7IHZhbHVlOiBvcHRpb25zLnRlbmFudElkIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNob3VsZDogW1xuICAgICAgICAgICAgICAgICAgICB7IGtleTogXCJvcmdfdW5pdF9pZFwiLCBtYXRjaDogeyBhbnk6IG9wdGlvbnMuYWxsb3dlZE9yZ1VuaXRJZHMgfSB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwicHJvdGVjdGVkX3Jlc291cmNlX2lkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRjaDogeyBhbnk6IG9wdGlvbnMuYWxsb3dlZFJlc291cmNlSWRzIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiBcIm93bmVyX3ByaW5jaXBhbF9pZFwiLCBtYXRjaDogeyB2YWx1ZTogb3B0aW9ucy5wcmluY2lwYWxJZCB9IH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEFjY2Vzc0NvbnRleHQob3B0aW9ucykge1xuICAgIGNvbnN0IHBlcm1pc3Npb25zQnlTY29wZSA9IHt9O1xuICAgIGNvbnN0IGFsbG93ZWRPcmdVbml0SWRzQnlQZXJtaXNzaW9uID0ge307XG4gICAgZm9yIChjb25zdCBwZXJtaXNzaW9uIG9mIG9wdGlvbnMucGVybWlzc2lvbnMpIHtcbiAgICAgICAgY29uc3Qga2V5ID0gc2NvcGVLZXkocGVybWlzc2lvbi5zY29wZUtpbmQsIHBlcm1pc3Npb24uc2NvcGVJZCk7XG4gICAgICAgIHBlcm1pc3Npb25zQnlTY29wZVtrZXldID0gcGVybWlzc2lvbnNCeVNjb3BlW2tleV0gPz8gW107XG4gICAgICAgIHBlcm1pc3Npb25zQnlTY29wZVtrZXldLnB1c2gocGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5KTtcbiAgICAgICAgaWYgKHBlcm1pc3Npb24uc2NvcGVLaW5kID09PSBTY29wZUtpbmQuT3JnVW5pdCkge1xuICAgICAgICAgICAgYWxsb3dlZE9yZ1VuaXRJZHNCeVBlcm1pc3Npb25bcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5XSA9XG4gICAgICAgICAgICAgICAgYWxsb3dlZE9yZ1VuaXRJZHNCeVBlcm1pc3Npb25bcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5XSA/PyBbXTtcbiAgICAgICAgICAgIGFsbG93ZWRPcmdVbml0SWRzQnlQZXJtaXNzaW9uW3Blcm1pc3Npb24ucGVybWlzc2lvbktleV0ucHVzaChwZXJtaXNzaW9uLnNjb3BlSWQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHRlbmFudElkOiBvcHRpb25zLnRlbmFudElkLFxuICAgICAgICBwcmluY2lwYWxJZDogb3B0aW9ucy5wcmluY2lwYWxJZCxcbiAgICAgICAgcGVybWlzc2lvbnNCeVNjb3BlLFxuICAgICAgICBhbGxvd2VkT3JnVW5pdElkc0J5UGVybWlzc2lvbixcbiAgICAgICAgcmVzb3VyY2VHcmFudHM6IG9wdGlvbnMuZ3JhbnRzLm1hcCgoZ3JhbnQpID0+ICh7XG4gICAgICAgICAgICByZXNvdXJjZUlkOiBncmFudC5yZXNvdXJjZUlkLFxuICAgICAgICAgICAgcGVybWlzc2lvbktleTogZ3JhbnQucGVybWlzc2lvbktleSxcbiAgICAgICAgfSkpLFxuICAgIH07XG59XG5leHBvcnQgY2xhc3MgQmFzZU1vZGVsU2VydmljZSBleHRlbmRzIE1vZGVsU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoY2xhenopIHtcbiAgICAgICAgc3VwZXIoY2xhenopO1xuICAgIH1cbiAgICBuZXdNb2RlbChjbGF6eiwgZGF0YSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgY2xhenooKSwgZGF0YSk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZU9uZShkYXRhLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcG8uY3JlYXRlKE9iamVjdC5hc3NpZ24oe30sIGRhdGEpLCAuLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0QnlJZChpZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLnJlYWQoaWQsIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyB1cGRhdGVPbmUoaWQsIHBhdGNoLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgdGhpcy5yZXBvLnJlYWQoaWQsIC4uLmFyZ3MpO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLnVwZGF0ZShPYmplY3QuYXNzaWduKGV4aXN0aW5nLCBwYXRjaCksIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBkZWxldGVCeUlkKGlkLCAuLi5hcmdzKSB7XG4gICAgICAgIGF3YWl0IHRoaXMucmVwby5kZWxldGUoaWQsIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBmaW5kT25lQnkoa2V5LCB2YWx1ZSwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLmZpbmRPbmVCeShrZXksIHZhbHVlLCAuLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgZmluZE1hbnlCeShrZXksIHZhbHVlLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcG9cbiAgICAgICAgICAgIC5zZWxlY3QoKVxuICAgICAgICAgICAgLndoZXJlKHsgW2tleV06IHZhbHVlIH0pXG4gICAgICAgICAgICAuZXhlY3V0ZSguLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgbGlzdEFsbCguLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcG8uc2VsZWN0KCkuZXhlY3V0ZSguLi5hcmdzKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gaWQoKSB7XG4gICAgcmV0dXJuIGNyeXB0by5yYW5kb21VVUlEKCk7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVsYXRpb25JZCh2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyB2YWx1ZSA6IHZhbHVlLmlkO1xufVxuZXhwb3J0IGNsYXNzIEF1dGh6U2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoZGF0YVNvdXJjZXMgPSB7fSkge1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2VzID0gZGF0YVNvdXJjZXM7XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBhc3luYyBjYW5BY2Nlc3MoaW5wdXQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgYXQgPSBpbnB1dC5hdCA/PyBuZXcgRGF0ZSgpO1xuICAgICAgICBpZiAoaW5wdXQuc2NvcGVLaW5kICYmIGlucHV0LnNjb3BlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHBlcm1pc3Npb25zID0gYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0RWZmZWN0aXZlUGVybWlzc2lvbnNGb3JTY29wZT8uKGlucHV0LnRlbmFudElkLCBpbnB1dC5zY29wZUtpbmQsIGlucHV0LnNjb3BlSWQpO1xuICAgICAgICAgICAgcmV0dXJuIHRvQXJyYXkocGVybWlzc2lvbnMpLnNvbWUoKHBlcm1pc3Npb24pID0+IHBlcm1pc3Npb24ucGVybWlzc2lvbktleSA9PT0gaW5wdXQucGVybWlzc2lvbktleSAmJlxuICAgICAgICAgICAgICAgIGlzVGltZVZhbGlkKGF0LCBwZXJtaXNzaW9uLnN0YXJ0c0F0LCBwZXJtaXNzaW9uLmV4cGlyZXNBdCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaW5wdXQucmVzb3VyY2VQcm90ZWN0ZWRJZClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgY29uc3QgcmVzb3VyY2UgPSBhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxvYWRSZXNvdXJjZT8uKGlucHV0LnRlbmFudElkLCBpbnB1dC5yZXNvdXJjZVByb3RlY3RlZElkKTtcbiAgICAgICAgaWYgKCFyZXNvdXJjZSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKHJlc291cmNlLnRlbmFudElkICE9PSBpbnB1dC50ZW5hbnRJZClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKHJlc291cmNlLm93bmVyUHJpbmNpcGFsSWQgPT09IGlucHV0LnByaW5jaXBhbElkKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGNvbnN0IGdyYW50cyA9IHRvQXJyYXkoYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0UmVzb3VyY2VHcmFudHM/LihpbnB1dC50ZW5hbnRJZCwgaW5wdXQucmVzb3VyY2VQcm90ZWN0ZWRJZCkpLmZpbHRlcigoZ3JhbnQpID0+IGdyYW50LnByaW5jaXBhbElkID09PSBpbnB1dC5wcmluY2lwYWxJZCAmJlxuICAgICAgICAgICAgZ3JhbnQucGVybWlzc2lvbktleSA9PT0gaW5wdXQucGVybWlzc2lvbktleSAmJlxuICAgICAgICAgICAgaXNUaW1lVmFsaWQoYXQsIGdyYW50LnN0YXJ0c0F0LCBncmFudC5leHBpcmVzQXQpKTtcbiAgICAgICAgaWYgKGdyYW50cy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGNvbnN0IHZpc2liaWxpdHkgPSByZXNvdXJjZS52aXNpYmlsaXR5O1xuICAgICAgICBpZiAodmlzaWJpbGl0eSA9PT0gUmVzb3VyY2VWaXNpYmlsaXR5LlByaXZhdGUgfHxcbiAgICAgICAgICAgIHZpc2liaWxpdHkgPT09IFJlc291cmNlVmlzaWJpbGl0eS5SZXNvdXJjZUFjbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2aXNpYmlsaXR5ID09PSBSZXNvdXJjZVZpc2liaWxpdHkuT3JnVW5pdCB8fFxuICAgICAgICAgICAgdmlzaWJpbGl0eSA9PT0gUmVzb3VyY2VWaXNpYmlsaXR5Lk9yZ1N1YnRyZWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGVmZmVjdGl2ZVBlcm1pc3Npb25zID0gdG9BcnJheShhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RFZmZlY3RpdmVQZXJtaXNzaW9uc0ZvclNjb3BlPy4oaW5wdXQudGVuYW50SWQsIFNjb3BlS2luZC5PcmdVbml0LCByZXNvdXJjZS5vcmdVbml0SWQpKTtcbiAgICAgICAgICAgIHJldHVybiBlZmZlY3RpdmVQZXJtaXNzaW9ucy5zb21lKChwZXJtaXNzaW9uKSA9PiBwZXJtaXNzaW9uLnBlcm1pc3Npb25LZXkgPT09IGlucHV0LnBlcm1pc3Npb25LZXkgJiZcbiAgICAgICAgICAgICAgICBpc1RpbWVWYWxpZChhdCwgcGVybWlzc2lvbi5zdGFydHNBdCwgcGVybWlzc2lvbi5leHBpcmVzQXQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmlzaWJpbGl0eSA9PT0gUmVzb3VyY2VWaXNpYmlsaXR5LlRlbmFudCkge1xuICAgICAgICAgICAgY29uc3QgZWZmZWN0aXZlUGVybWlzc2lvbnMgPSB0b0FycmF5KGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubGlzdEVmZmVjdGl2ZVBlcm1pc3Npb25zRm9yU2NvcGU/LihpbnB1dC50ZW5hbnRJZCwgU2NvcGVLaW5kLlRlbmFudCwgaW5wdXQudGVuYW50SWQpKTtcbiAgICAgICAgICAgIHJldHVybiBlZmZlY3RpdmVQZXJtaXNzaW9ucy5zb21lKChwZXJtaXNzaW9uKSA9PiBwZXJtaXNzaW9uLnBlcm1pc3Npb25LZXkgPT09IGlucHV0LnBlcm1pc3Npb25LZXkgJiZcbiAgICAgICAgICAgICAgICBpc1RpbWVWYWxpZChhdCwgcGVybWlzc2lvbi5zdGFydHNBdCwgcGVybWlzc2lvbi5leHBpcmVzQXQpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGFzeW5jIHJlcXVpcmVBY2Nlc3MoaW5wdXQsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKCEoYXdhaXQgdGhpcy5jYW5BY2Nlc3MoaW5wdXQsIC4uLmFyZ3MpKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEF1dGhvcml6YXRpb25FcnJvcihgQWNjZXNzIGRlbmllZCBmb3IgJHtpbnB1dC5wZXJtaXNzaW9uS2V5fSBvbiAke2lucHV0LnJlc291cmNlUHJvdGVjdGVkSWQgPz8gc2NvcGVLZXkoaW5wdXQuc2NvcGVLaW5kID8/IFNjb3BlS2luZC5SZXNvdXJjZSwgaW5wdXQuc2NvcGVJZCA/PyBcIlwiKX1gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBidWlsZEFjY2Vzc0NvbnRleHQodGVuYW50SWQsIHByaW5jaXBhbElkLCBcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgLi4uYXJncykge1xuICAgICAgICBjb25zdCBwZXJtaXNzaW9ucyA9IHRvQXJyYXkoYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0RWZmZWN0aXZlUGVybWlzc2lvbnM/Lih0ZW5hbnRJZCwgcHJpbmNpcGFsSWQpKTtcbiAgICAgICAgY29uc3QgZ3JhbnRzID0gdG9BcnJheShhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RQcmluY2lwYWxHcmFudHM/Lih0ZW5hbnRJZCwgcHJpbmNpcGFsSWQpKTtcbiAgICAgICAgcmV0dXJuIGJ1aWxkQWNjZXNzQ29udGV4dCh7XG4gICAgICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgICAgIHByaW5jaXBhbElkLFxuICAgICAgICAgICAgcGVybWlzc2lvbnMsXG4gICAgICAgICAgICBncmFudHMsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBidWlsZEFyYW5nb0NvbnRleHQodGVuYW50SWQsIHByaW5jaXBhbElkLCBwZXJtaXNzaW9uS2V5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IGFjY2VzcyA9IGF3YWl0IHRoaXMuYnVpbGRBY2Nlc3NDb250ZXh0KHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncyk7XG4gICAgICAgIGNvbnN0IGFsbG93ZWRPcmdVbml0SWRzID0gYWNjZXNzLmFsbG93ZWRPcmdVbml0SWRzQnlQZXJtaXNzaW9uW3Blcm1pc3Npb25LZXldID8/IFtdO1xuICAgICAgICBjb25zdCBhbGxvd2VkUmVzb3VyY2VJZHMgPSBhY2Nlc3MucmVzb3VyY2VHcmFudHNcbiAgICAgICAgICAgIC5maWx0ZXIoKGdyYW50KSA9PiBncmFudC5wZXJtaXNzaW9uS2V5ID09PSBwZXJtaXNzaW9uS2V5KVxuICAgICAgICAgICAgLm1hcCgoZ3JhbnQpID0+IGdyYW50LnJlc291cmNlSWQpO1xuICAgICAgICByZXR1cm4gYnVpbGRBcmFuZ29Db250ZXh0KHtcbiAgICAgICAgICAgIHRlbmFudElkLFxuICAgICAgICAgICAgcHJpbmNpcGFsSWQsXG4gICAgICAgICAgICBwZXJtaXNzaW9uS2V5LFxuICAgICAgICAgICAgYWxsb3dlZE9yZ1VuaXRJZHMsXG4gICAgICAgICAgICBhbGxvd2VkUmVzb3VyY2VJZHMsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBidWlsZFFkcmFudEZpbHRlcih0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIHBlcm1pc3Npb25LZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgYWNjZXNzID0gYXdhaXQgdGhpcy5idWlsZEFjY2Vzc0NvbnRleHQodGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKTtcbiAgICAgICAgY29uc3QgYWxsb3dlZE9yZ1VuaXRJZHMgPSBhY2Nlc3MuYWxsb3dlZE9yZ1VuaXRJZHNCeVBlcm1pc3Npb25bcGVybWlzc2lvbktleV0gPz8gW107XG4gICAgICAgIGNvbnN0IGFsbG93ZWRSZXNvdXJjZUlkcyA9IGFjY2Vzcy5yZXNvdXJjZUdyYW50c1xuICAgICAgICAgICAgLmZpbHRlcigoZ3JhbnQpID0+IGdyYW50LnBlcm1pc3Npb25LZXkgPT09IHBlcm1pc3Npb25LZXkpXG4gICAgICAgICAgICAubWFwKChncmFudCkgPT4gZ3JhbnQucmVzb3VyY2VJZCk7XG4gICAgICAgIHJldHVybiBidWlsZFFkcmFudEZpbHRlcih7XG4gICAgICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgICAgIHByaW5jaXBhbElkLFxuICAgICAgICAgICAgcGVybWlzc2lvbktleSxcbiAgICAgICAgICAgIGFsbG93ZWRPcmdVbml0SWRzLFxuICAgICAgICAgICAgYWxsb3dlZFJlc291cmNlSWRzLFxuICAgICAgICB9KTtcbiAgICB9XG59XG5leHBvcnQgeyB0cmFuc2FjdGlvbmFsIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2liM0puTFdKaGMyVmtMV0YxZEdodmNtbDZZWFJwYjI0dGMzbHpkR1Z0TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZjM0pqTDI1aGJXVnpjR0ZqWlhNdmIzSm5MV0poYzJWa0xXRjFkR2h2Y21sNllYUnBiMjR0YzNsemRHVnRMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFOUJRVThzUlVGRFRDeHJRa0ZCYTBJc1JVRkRiRUlzVDBGQlR5eEZRVU5RTEZsQlFWa3NSVUZGV2l4aFFVRmhMRWRCUTJRc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVZDRRaXhOUVVGTkxFTkJRVTRzU1VGQldTeGhRVWxZTzBGQlNrUXNWMEZCV1N4aFFVRmhPMGxCUTNaQ0xHdERRVUZwUWl4RFFVRkJPMGxCUTJwQ0xHdERRVUZwUWl4RFFVRkJPMGxCUTJwQ0xEaENRVUZoTEVOQlFVRTdRVUZEWml4RFFVRkRMRVZCU2xjc1lVRkJZU3hMUVVGaUxHRkJRV0VzVVVGSmVFSTdRVUZGUkN4TlFVRk5MRU5CUVU0c1NVRkJXU3huUWtGTFdEdEJRVXhFTEZkQlFWa3NaMEpCUVdkQ08wbEJRekZDTEhWRFFVRnRRaXhEUVVGQk8wbEJRMjVDTEhGRFFVRnBRaXhEUVVGQk8wbEJRMnBDTERKRFFVRjFRaXhEUVVGQk8wbEJRM1pDTEhWRFFVRnRRaXhEUVVGQk8wRkJRM0pDTEVOQlFVTXNSVUZNVnl4blFrRkJaMElzUzBGQmFFSXNaMEpCUVdkQ0xGRkJTek5DTzBGQlJVUXNUVUZCVFN4RFFVRk9MRWxCUVZrc1lVRk5XRHRCUVU1RUxGZEJRVmtzWVVGQllUdEpRVU4yUWl3NFFrRkJZU3hEUVVGQk8wbEJRMklzWjBOQlFXVXNRMEZCUVR0SlFVTm1MRzFFUVVGclF5eERRVUZCTzBsQlEyeERMR2REUVVGbExFTkJRVUU3U1VGRFppeHRRMEZCYTBJc1EwRkJRVHRCUVVOd1FpeERRVUZETEVWQlRsY3NZVUZCWVN4TFFVRmlMR0ZCUVdFc1VVRk5lRUk3UVVGRlJDeE5RVUZOTEVOQlFVNHNTVUZCV1N4VFFVbFlPMEZCU2tRc1YwRkJXU3hUUVVGVE8wbEJRMjVDTERoQ1FVRnBRaXhEUVVGQk8wbEJRMnBDTEdsRFFVRnZRaXhEUVVGQk8wbEJRM0JDTEd0RFFVRnhRaXhEUVVGQk8wRkJRM1pDTEVOQlFVTXNSVUZLVnl4VFFVRlRMRXRCUVZRc1UwRkJVeXhSUVVsd1FqdEJRVVZFTEUxQlFVMHNRMEZCVGl4SlFVRlpMR3RDUVdGWU8wRkJZa1FzVjBGQldTeHJRa0ZCYTBJN1NVRkROVUlzY1VOQlFXVXNRMEZCUVR0SlFVTm1MR3RFUVVFMFFpeERRVUZCTzBsQlF6VkNMRzlFUVVFNFFpeERRVUZCTzBsQlF6bENMSFZEUVVGcFFpeERRVUZCTzBsQlEycENMSEZEUVVGbExFTkJRVUU3U1VGRFppeDFRMEZCYVVJc1EwRkJRVHRKUVVOcVFpeDFRMEZCYVVJc1EwRkJRVHRKUVVOcVFpeDVRMEZCYlVJc1EwRkJRVHRKUVVOdVFpeHhRMEZCWlN4RFFVRkJPMGxCUTJZc01rTkJRWEZDTEVOQlFVRTdTVUZEY2tJc2JVTkJRV0VzUTBGQlFUdEpRVU5pTEN0RFFVRjVRaXhEUVVGQk8wRkJRek5DTEVOQlFVTXNSVUZpVnl4clFrRkJhMElzUzBGQmJFSXNhMEpCUVd0Q0xGRkJZVGRDTzBGQlJVUXNUVUZCVFN4RFFVRk9MRWxCUVZrc2EwSkJUVmc3UVVGT1JDeFhRVUZaTEd0Q1FVRnJRanRKUVVNMVFpeDVRMEZCYlVJc1EwRkJRVHRKUVVOdVFpeHJSRUZCTkVJc1EwRkJRVHRKUVVNMVFpd3dRMEZCYjBJc1EwRkJRVHRKUVVOd1FpeG5SRUZCTUVJc1EwRkJRVHRKUVVNeFFpeDFRMEZCYVVJc1EwRkJRVHRCUVVOdVFpeERRVUZETEVWQlRsY3NhMEpCUVd0Q0xFdEJRV3hDTEd0Q1FVRnJRaXhSUVUwM1FqdEJRVVZFTEUxQlFVMHNRMEZCVGl4SlFVRlpMRmRCUzFnN1FVRk1SQ3hYUVVGWkxGZEJRVmM3U1VGRGNrSXNiME5CUVhGQ0xFTkJRVUU3U1VGRGNrSXNaME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNaME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNLME5CUVdkRExFTkJRVUU3UVVGRGJFTXNRMEZCUXl4RlFVeFhMRmRCUVZjc1MwRkJXQ3hYUVVGWExGRkJTM1JDTzBGQlJVUXNUVUZCVFN4RFFVRk9MRWxCUVZrc2EwSkJSMWc3UVVGSVJDeFhRVUZaTEd0Q1FVRnJRanRKUVVNMVFpeDFRMEZCYVVJc1EwRkJRVHRKUVVOcVFpdzJRMEZCZFVJc1EwRkJRVHRCUVVONlFpeERRVUZETEVWQlNGY3NhMEpCUVd0Q0xFdEJRV3hDTEd0Q1FVRnJRaXhSUVVjM1FqdEJRVVZFTEUxQlFVMHNRMEZCUXl4TlFVRk5MRzlDUVVGdlFpeEhRVUZITEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03UVVGRGFrVXNUVUZCVFN4RFFVRkRMRTFCUVUwc2RVSkJRWFZDTEVkQlFVY3NUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRPMEZCUTNaRkxFMUJRVTBzUTBGQlF5eE5RVUZOTEc5Q1FVRnZRaXhIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1FVRkRha1VzVFVGQlRTeERRVUZETEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRCUVVONlJDeE5RVUZOTEVOQlFVTXNUVUZCVFN4NVFrRkJlVUlzUjBGQlJ5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMR3RDUVVGclFpeERRVUZETEVOQlFVTTdRVUZETTBVc1RVRkJUU3hEUVVGRExFMUJRVTBzZVVKQlFYbENMRWRCUVVjc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRE8wRkJRek5GTEUxQlFVMHNRMEZCUXl4TlFVRk5MR3RDUVVGclFpeEhRVUZITEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03UVVGRE4wUXNUVUZCVFN4RFFVRkRMRTFCUVUwc2VVSkJRWGxDTEVkQlFVY3NUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMEZCUlRORkxFMUJRVTBzUTBGQlF5eE5RVUZOTEZsQlFWa3NSMEZCUnp0SlFVTXhRaXhOUVVGTkxFVkJRVVVzVDBGQlR5eERRVUZETEVsQlFVazdTVUZEY0VJc1RVRkJUU3hGUVVGRkxFOUJRVThzUTBGQlF5eEpRVUZKTzBsQlEzQkNMRkZCUVZFc1JVRkJSU3hMUVVGTE8wTkJRMUFzUTBGQlF6dEJRVVZZTEUxQlFVMHNRMEZCUXl4TlFVRk5MRmRCUVZjc1IwRkJSenRKUVVONlFpeE5RVUZOTEVWQlFVVXNUMEZCVHl4RFFVRkRMRWxCUVVrN1NVRkRjRUlzVFVGQlRTeEZRVUZGTEU5QlFVOHNRMEZCUXl4SlFVRkpPMGxCUTNCQ0xGRkJRVkVzUlVGQlJTeEpRVUZKTzBOQlEwNHNRMEZCUXp0QlFVVllMRTFCUVUwc1EwRkJReXhOUVVGTkxIRkNRVUZ4UWl4SFFVRkhPMGxCUTI1RExFMUJRVTBzUlVGQlJTeFBRVUZQTEVOQlFVTXNUMEZCVHp0SlFVTjJRaXhOUVVGTkxFVkJRVVVzVDBGQlR5eERRVUZETEU5QlFVODdTVUZEZGtJc1VVRkJVU3hGUVVGRkxFdEJRVXM3UTBGRFVDeERRVUZETzBGQlJWZ3NUVUZCVFN4RFFVRkRMRTFCUVUwc2VVSkJRWGxDTEVkQlFVYzdTVUZEZGtNc1RVRkJUU3hGUVVGRkxFOUJRVThzUTBGQlF5eFBRVUZQTzBsQlEzWkNMRTFCUVUwc1JVRkJSU3hQUVVGUExFTkJRVU1zU1VGQlNUdEpRVU53UWl4UlFVRlJMRVZCUVVVc1MwRkJTenREUVVOUUxFTkJRVU03UVVFMlRWZ3NVMEZCVXl4WFFVRlhMRU5CUTJ4Q0xFVkJRVzlDTEVWQlEzQkNMRkZCUVdVc1JVRkRaaXhUUVVGblFqdEpRVVZvUWl4TlFVRk5MRTlCUVU4c1IwRkJSeXhGUVVGRkxFbEJRVWtzU1VGQlNTeEpRVUZKTEVWQlFVVXNRMEZCUXp0SlFVTnFReXhKUVVGSkxGRkJRVkVzU1VGQlNTeFBRVUZQTEVkQlFVY3NVVUZCVVR0UlFVRkZMRTlCUVU4c1MwRkJTeXhEUVVGRE8wbEJRMnBFTEVsQlFVa3NVMEZCVXl4SlFVRkpMRTlCUVU4c1IwRkJSeXhUUVVGVE8xRkJRVVVzVDBGQlR5eExRVUZMTEVOQlFVTTdTVUZEYmtRc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFpDeERRVUZETzBGQlJVUXNVMEZCVXl4UlFVRlJMRU5CUVVNc1UwRkJiMElzUlVGQlJTeFBRVUZsTzBsQlEzSkVMRTlCUVU4c1IwRkJSeXhUUVVGVExFbEJRVWtzVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZEYmtNc1EwRkJRenRCUVVWRUxGTkJRVk1zVDBGQlR5eERRVUZKTEV0QlFYTkNPMGxCUTNoRExFOUJRVThzUzBGQlN5eEpRVUZKTEVWQlFVVXNRMEZCUXp0QlFVTnlRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEd0Q1FVRnJRaXhEUVVGRExFOUJUV3hETzBsQlEwTXNUMEZCVHp0UlFVTk1MRkZCUVZFc1JVRkJSU3hQUVVGUExFTkJRVU1zVVVGQlVUdFJRVU14UWl4WFFVRlhMRVZCUVVVc1QwRkJUeXhEUVVGRExGZEJRVmM3VVVGRGFFTXNZVUZCWVN4RlFVRkZMRTlCUVU4c1EwRkJReXhoUVVGaE8xRkJRM0JETEdsQ1FVRnBRaXhGUVVGRkxFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU03VVVGRGFrUXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4clFrRkJhMElzUTBGQlF6dExRVU53UkN4RFFVRkRPMEZCUTBvc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeHBRa0ZCYVVJc1EwRkJReXhQUVUxcVF6dEpRVU5ETEU5QlFVODdVVUZEVEN4SlFVRkpMRVZCUVVVN1dVRkRTanRuUWtGRFJTeEhRVUZITEVWQlFVVXNWMEZCVnp0blFrRkRhRUlzUzBGQlN5eEZRVUZGTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTlCUVU4c1EwRkJReXhSUVVGUkxFVkJRVVU3WVVGRGJrTTdXVUZEUkR0blFrRkRSU3hOUVVGTkxFVkJRVVU3YjBKQlEwNHNSVUZCUlN4SFFVRkhMRVZCUVVVc1lVRkJZU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTEVkQlFVY3NSVUZCUlN4UFFVRlBMRU5CUVVNc2FVSkJRV2xDTEVWQlFVVXNSVUZCUlR0dlFrRkRha1U3ZDBKQlEwVXNSMEZCUnl4RlFVRkZMSFZDUVVGMVFqdDNRa0ZETlVJc1MwRkJTeXhGUVVGRkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNRMEZCUXl4clFrRkJhMElzUlVGQlJUdHhRa0ZETTBNN2IwSkJRMFFzUlVGQlJTeEhRVUZITEVWQlFVVXNiMEpCUVc5Q0xFVkJRVVVzUzBGQlN5eEZRVUZGTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTlCUVU4c1EwRkJReXhYUVVGWExFVkJRVVVzUlVGQlJUdHBRa0ZEY2tVN1lVRkRSanRUUVVOR08wdEJRMFlzUTBGQlF6dEJRVU5LTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2EwSkJRV3RDTEVOQlFVTXNUMEZMYkVNN1NVRkRReXhOUVVGTkxHdENRVUZyUWl4SFFVRTJRaXhGUVVGRkxFTkJRVU03U1VGRGVFUXNUVUZCVFN3MlFrRkJOa0lzUjBGQk5rSXNSVUZCUlN4RFFVRkRPMGxCUlc1RkxFdEJRVXNzVFVGQlRTeFZRVUZWTEVsQlFVa3NUMEZCVHl4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8xRkJRemRETEUxQlFVMHNSMEZCUnl4SFFVRkhMRkZCUVZFc1EwRkJReXhWUVVGVkxFTkJRVU1zVTBGQlV5eEZRVUZGTEZWQlFWVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVNdlJDeHJRa0ZCYTBJc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eHJRa0ZCYTBJc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdVVUZEZUVRc2EwSkJRV3RDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0UlFVTjJSQ3hKUVVGSkxGVkJRVlVzUTBGQlF5eFRRVUZUTEV0QlFVc3NVMEZCVXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8xbEJReTlETERaQ1FVRTJRaXhEUVVGRExGVkJRVlVzUTBGQlF5eGhRVUZoTEVOQlFVTTdaMEpCUTNKRUxEWkNRVUUyUWl4RFFVRkRMRlZCUVZVc1EwRkJReXhoUVVGaExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdXVUZEYUVVc05rSkJRVFpDTEVOQlFVTXNWVUZCVlN4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGRE1VUXNWVUZCVlN4RFFVRkRMRTlCUVU4c1EwRkRia0lzUTBGQlF6dFJRVU5LTEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlVRc1QwRkJUenRSUVVOTUxGRkJRVkVzUlVGQlJTeFBRVUZQTEVOQlFVTXNVVUZCVVR0UlFVTXhRaXhYUVVGWExFVkJRVVVzVDBGQlR5eERRVUZETEZkQlFWYzdVVUZEYUVNc2EwSkJRV3RDTzFGQlEyeENMRFpDUVVFMlFqdFJRVU0zUWl4alFVRmpMRVZCUVVVc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU03V1VGRE4wTXNWVUZCVlN4RlFVRkZMRXRCUVVzc1EwRkJReXhWUVVGVk8xbEJRelZDTEdGQlFXRXNSVUZCUlN4TFFVRkxMRU5CUVVNc1lVRkJZVHRUUVVOdVF5eERRVUZETEVOQlFVTTdTMEZEU2l4RFFVRkRPMEZCUTBvc1EwRkJRenRCUVVWRUxFMUJRVTBzVDBGQlowSXNaMEpCUlhCQ0xGTkJRVkVzV1VGQmJVTTdTVUZETTBNc1dVRkJjMElzUzBGQmEwSTdVVUZEZEVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlEyWXNRMEZCUXp0SlFVVlRMRkZCUVZFc1EwRkJTU3hMUVVGclFpeEZRVUZGTEVsQlFXZENPMUZCUTNoRUxFOUJRVThzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRXRCUVVzc1JVRkJXU3hGUVVGRkxFbEJRV01zUTBGQlRTeERRVUZETzBsQlEyNUZMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFXZENMRVZCUVVVc1IwRkJSeXhKUVVGWE8xRkJRemxETEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRlBMRVZCUVVVc1NVRkJZeXhEUVVGRExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTXpSU3hEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRlZMRVZCUVVVc1IwRkJSeXhKUVVGWE8xRkJRM1JETEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRja01zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1JVRkJWU3hGUVVGRkxFdEJRV2xDTEVWQlFVVXNSMEZCUnl4SlFVRlhPMUZCUXpORUxFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRia1FzVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNSVUZCUlN4TFFVRkxMRU5CUVVNc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzBsQlEyNUZMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZETEVWQlFWVXNSVUZCUlN4SFFVRkhMRWxCUVZjN1VVRkRla01zVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTjBReXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZEWWl4SFFVRk5MRVZCUTA0c1MwRkJWeXhGUVVOWUxFZEJRVWNzU1VGQlZ6dFJRVVZrTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eEZRVUZGTEV0QlFVc3NSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRMnhFTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1ZVRkJWU3hEUVVOa0xFZEJRVTBzUlVGRFRpeExRVUZYTEVWQlExZ3NSMEZCUnl4SlFVRlhPMUZCUldRc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNUdGhRVU5pTEUxQlFVMHNSVUZCUlR0aFFVTlNMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNTMEZCU3l4RlFVRlRMRU5CUVVNN1lVRkRPVUlzVDBGQlR5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRkRUlzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhKUVVGWE8xRkJRekZDTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNM1F5eERRVUZETzBOQlEwWTdRVUZGUkN4TlFVRk5MRlZCUVZVc1JVRkJSVHRKUVVOb1FpeFBRVUZQTEUxQlFVMHNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJRenRCUVVNM1FpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMRlZCUVZVc1EwRkJReXhMUVVFNFFqdEpRVU4yUkN4UFFVRlBMRTlCUVU4c1MwRkJTeXhMUVVGTExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETzBGQlEzUkVMRU5CUVVNN1FVRkZSQ3hOUVVGTkxFOUJRVThzV1VGQldUdEpRVWQyUWl4WlFVRlpMR05CUVdkRExFVkJRVVU3VVVGRE5VTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1IwRkJSeXhYUVVGWExFTkJRVU03U1VGRGFrTXNRMEZCUXp0SlFVVkVMRFpFUVVFMlJEdEpRVU0zUkN4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRWEZDTEVWQlFVVXNSMEZCUnl4SlFVRlhPMUZCUTI1RUxFMUJRVTBzUlVGQlJTeEhRVUZITEV0QlFVc3NRMEZCUXl4RlFVRkZMRWxCUVVrc1NVRkJTU3hKUVVGSkxFVkJRVVVzUTBGQlF6dFJRVVZzUXl4SlFVRkpMRXRCUVVzc1EwRkJReXhUUVVGVExFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMWxCUTNKRExFMUJRVTBzVjBGQlZ5eEhRVU5tTEUxQlFVMHNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhuUTBGQlowTXNSVUZCUlN4RFFVTjJSQ3hMUVVGTExFTkJRVU1zVVVGQlVTeEZRVU5rTEV0QlFVc3NRMEZCUXl4VFFVRlRMRVZCUTJZc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGRFpDeERRVUZETzFsQlEwb3NUMEZCVHl4UFFVRlBMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVU01UWl4RFFVRkRMRlZCUVZVc1JVRkJSU3hGUVVGRkxFTkJRMklzVlVGQlZTeERRVUZETEdGQlFXRXNTMEZCU3l4TFFVRkxMRU5CUVVNc1lVRkJZVHRuUWtGRGFFUXNWMEZCVnl4RFFVRkRMRVZCUVVVc1JVRkJSU3hWUVVGVkxFTkJRVU1zVVVGQlVTeEZRVUZGTEZWQlFWVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkROMFFzUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZGUkN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHMUNRVUZ0UWp0WlFVRkZMRTlCUVU4c1MwRkJTeXhEUVVGRE8xRkJSVGRETEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFpRVUZaTEVWQlFVVXNRMEZEY0VRc1MwRkJTeXhEUVVGRExGRkJRVkVzUlVGRFpDeExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRekZDTEVOQlFVTTdVVUZEUml4SlFVRkpMRU5CUVVNc1VVRkJVVHRaUVVGRkxFOUJRVThzUzBGQlN5eERRVUZETzFGQlF6VkNMRWxCUVVrc1VVRkJVU3hEUVVGRExGRkJRVkVzUzBGQlN5eExRVUZMTEVOQlFVTXNVVUZCVVR0WlFVRkZMRTlCUVU4c1MwRkJTeXhEUVVGRE8xRkJSWFpFTEVsQlFVa3NVVUZCVVN4RFFVRkRMR2RDUVVGblFpeExRVUZMTEV0QlFVc3NRMEZCUXl4WFFVRlhPMWxCUVVVc1QwRkJUeXhKUVVGSkxFTkJRVU03VVVGRmFrVXNUVUZCVFN4TlFVRk5MRWRCUVVjc1QwRkJUeXhEUVVOd1FpeE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNRMEZEZWtNc1MwRkJTeXhEUVVGRExGRkJRVkVzUlVGRFpDeExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRekZDTEVOQlEwWXNRMEZCUXl4TlFVRk5MRU5CUTA0c1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeERRVU5TTEV0QlFVc3NRMEZCUXl4WFFVRlhMRXRCUVVzc1MwRkJTeXhEUVVGRExGZEJRVmM3V1VGRGRrTXNTMEZCU3l4RFFVRkRMR0ZCUVdFc1MwRkJTeXhMUVVGTExFTkJRVU1zWVVGQllUdFpRVU16UXl4WFFVRlhMRU5CUVVNc1JVRkJSU3hGUVVGRkxFdEJRVXNzUTBGQlF5eFJRVUZSTEVWQlFVVXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVOdVJDeERRVUZETzFGQlEwWXNTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU03V1VGQlJTeFBRVUZQTEVsQlFVa3NRMEZCUXp0UlFVVnVReXhOUVVGTkxGVkJRVlVzUjBGQlJ5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RFFVRkRPMUZCUTNaRExFbEJRMFVzVlVGQlZTeExRVUZMTEd0Q1FVRnJRaXhEUVVGRExFOUJRVTg3V1VGRGVrTXNWVUZCVlN4TFFVRkxMR3RDUVVGclFpeERRVUZETEZkQlFWY3NSVUZETjBNc1EwRkJRenRaUVVORUxFOUJRVThzUzBGQlN5eERRVUZETzFGQlEyWXNRMEZCUXp0UlFVVkVMRWxCUTBVc1ZVRkJWU3hMUVVGTExHdENRVUZyUWl4RFFVRkRMRTlCUVU4N1dVRkRla01zVlVGQlZTeExRVUZMTEd0Q1FVRnJRaXhEUVVGRExGVkJRVlVzUlVGRE5VTXNRMEZCUXp0WlFVTkVMRTFCUVUwc2IwSkJRVzlDTEVkQlFVY3NUMEZCVHl4RFFVTnNReXhOUVVGTkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNaME5CUVdkRExFVkJRVVVzUTBGRGRrUXNTMEZCU3l4RFFVRkRMRkZCUVZFc1JVRkRaQ3hUUVVGVExFTkJRVU1zVDBGQlR5eEZRVU5xUWl4UlFVRlJMRU5CUVVNc1UwRkJVeXhEUVVOdVFpeERRVU5HTEVOQlFVTTdXVUZEUml4UFFVRlBMRzlDUVVGdlFpeERRVUZETEVsQlFVa3NRMEZET1VJc1EwRkJReXhWUVVGVkxFVkJRVVVzUlVGQlJTeERRVU5pTEZWQlFWVXNRMEZCUXl4aFFVRmhMRXRCUVVzc1MwRkJTeXhEUVVGRExHRkJRV0U3WjBKQlEyaEVMRmRCUVZjc1EwRkJReXhGUVVGRkxFVkJRVVVzVlVGQlZTeERRVUZETEZGQlFWRXNSVUZCUlN4VlFVRlZMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRemRFTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUlVRc1NVRkJTU3hWUVVGVkxFdEJRVXNzYTBKQlFXdENMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03V1VGRE4wTXNUVUZCVFN4dlFrRkJiMElzUjBGQlJ5eFBRVUZQTEVOQlEyeERMRTFCUVUwc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eG5RMEZCWjBNc1JVRkJSU3hEUVVOMlJDeExRVUZMTEVOQlFVTXNVVUZCVVN4RlFVTmtMRk5CUVZNc1EwRkJReXhOUVVGTkxFVkJRMmhDTEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUTJZc1EwRkRSaXhEUVVGRE8xbEJRMFlzVDBGQlR5eHZRa0ZCYjBJc1EwRkJReXhKUVVGSkxFTkJRemxDTEVOQlFVTXNWVUZCVlN4RlFVRkZMRVZCUVVVc1EwRkRZaXhWUVVGVkxFTkJRVU1zWVVGQllTeExRVUZMTEV0QlFVc3NRMEZCUXl4aFFVRmhPMmRDUVVOb1JDeFhRVUZYTEVOQlFVTXNSVUZCUlN4RlFVRkZMRlZCUVZVc1EwRkJReXhSUVVGUkxFVkJRVVVzVlVGQlZTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVTTNSQ3hEUVVGRE8xRkJRMG9zUTBGQlF6dFJRVVZFTEU5QlFVOHNTMEZCU3l4RFFVRkRPMGxCUTJZc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eGhRVUZoTEVOQlFVTXNTMEZCY1VJc1JVRkJSU3hIUVVGSExFbEJRVmM3VVVGRGRrUXNTVUZCU1N4RFFVRkRMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFVc3NSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU0xUXl4TlFVRk5MRWxCUVVrc2EwSkJRV3RDTEVOQlF6RkNMSEZDUVVGeFFpeExRVUZMTEVOQlFVTXNZVUZCWVN4UFFVRlBMRXRCUVVzc1EwRkJReXh0UWtGQmJVSXNTVUZCU1N4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zU1VGQlNTeFRRVUZUTEVOQlFVTXNVVUZCVVN4RlFVRkZMRXRCUVVzc1EwRkJReXhQUVVGUExFbEJRVWtzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZEYmtvc1EwRkJRenRSUVVOS0xFTkJRVU03U1VGRFNDeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR3RDUVVGclFpeERRVU4wUWl4UlFVRm5RaXhGUVVOb1FpeFhRVUZ0UWp0SlFVTnVRaXcyUkVGQk5rUTdTVUZETjBRc1IwRkJSeXhKUVVGWE8xRkJSV1FzVFVGQlRTeFhRVUZYTEVkQlFVY3NUMEZCVHl4RFFVTjZRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNkMEpCUVhkQ0xFVkJRVVVzUTBGQlF5eFJRVUZSTEVWQlFVVXNWMEZCVnl4RFFVRkRMRU5CUTNwRkxFTkJRVU03VVVGRFJpeE5RVUZOTEUxQlFVMHNSMEZCUnl4UFFVRlBMRU5CUTNCQ0xFMUJRVTBzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4dFFrRkJiVUlzUlVGQlJTeERRVUZETEZGQlFWRXNSVUZCUlN4WFFVRlhMRU5CUVVNc1EwRkRjRVVzUTBGQlF6dFJRVU5HTEU5QlFVOHNhMEpCUVd0Q0xFTkJRVU03V1VGRGVFSXNVVUZCVVR0WlFVTlNMRmRCUVZjN1dVRkRXQ3hYUVVGWE8xbEJRMWdzVFVGQlRUdFRRVU5RTEVOQlFVTXNRMEZCUXp0SlFVTk1MRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zYTBKQlFXdENMRU5CUTNSQ0xGRkJRV2RDTEVWQlEyaENMRmRCUVcxQ0xFVkJRMjVDTEdGQlFYRkNMRVZCUTNKQ0xFZEJRVWNzU1VGQlZ6dFJRVVZrTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4RFFVTXhReXhSUVVGUkxFVkJRMUlzVjBGQlZ5eEZRVU5ZTEVkQlFVY3NTVUZCU1N4RFFVTlNMRU5CUVVNN1VVRkRSaXhOUVVGTkxHbENRVUZwUWl4SFFVTnlRaXhOUVVGTkxFTkJRVU1zTmtKQlFUWkNMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFGQlF6VkVMRTFCUVUwc2EwSkJRV3RDTEVkQlFVY3NUVUZCVFN4RFFVRkRMR05CUVdNN1lVRkROME1zVFVGQlRTeERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeExRVUZMTEdGQlFXRXNRMEZCUXp0aFFVTjRSQ3hIUVVGSExFTkJRVU1zUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU53UXl4UFFVRlBMR3RDUVVGclFpeERRVUZETzFsQlEzaENMRkZCUVZFN1dVRkRVaXhYUVVGWE8xbEJRMWdzWVVGQllUdFpRVU5pTEdsQ1FVRnBRanRaUVVOcVFpeHJRa0ZCYTBJN1UwRkRia0lzUTBGQlF5eERRVUZETzBsQlEwd3NRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhwUWtGQmFVSXNRMEZEY2tJc1VVRkJaMElzUlVGRGFFSXNWMEZCYlVJc1JVRkRia0lzWVVGQmNVSXNSVUZEY2tJc1IwRkJSeXhKUVVGWE8xRkJSV1FzVFVGQlRTeE5RVUZOTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlF6RkRMRkZCUVZFc1JVRkRVaXhYUVVGWExFVkJRMWdzUjBGQlJ5eEpRVUZKTEVOQlExSXNRMEZCUXp0UlFVTkdMRTFCUVUwc2FVSkJRV2xDTEVkQlEzSkNMRTFCUVUwc1EwRkJReXcyUWtGQk5rSXNRMEZCUXl4aFFVRmhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU03VVVGRE5VUXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eE5RVUZOTEVOQlFVTXNZMEZCWXp0aFFVTTNReXhOUVVGTkxFTkJRVU1zUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhoUVVGaExFdEJRVXNzWVVGQllTeERRVUZETzJGQlEzaEVMRWRCUVVjc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8xRkJRM0JETEU5QlFVOHNhVUpCUVdsQ0xFTkJRVU03V1VGRGRrSXNVVUZCVVR0WlFVTlNMRmRCUVZjN1dVRkRXQ3hoUVVGaE8xbEJRMklzYVVKQlFXbENPMWxCUTJwQ0xHdENRVUZyUWp0VFFVTnVRaXhEUVVGRExFTkJRVU03U1VGRFRDeERRVUZETzBOQlEwWTdRVUZGUkN4UFFVRlBMRVZCUVVVc1lVRkJZU3hGUVVGRkxFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZTF4dUlDQkJkWFJvYjNKcGVtRjBhVzl1UlhKeWIzSXNYRzRnSUVOaGMyTmhaR1VzWEc0Z0lFMXZaR1ZzVTJWeWRtbGpaU3hjYmlBZ1VtVndiM05wZEc5eWVTeGNiaUFnZEhKaGJuTmhZM1JwYjI1aGJDeGNibjBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdleUJOYjJSbGJDQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR1ZqYjNKaGRHOXlMWFpoYkdsa1lYUnBiMjVjSWp0Y2JseHVaWGh3YjNKMElHVnVkVzBnU1hOdmJHRjBhVzl1VkdsbGNpQjdYRzRnSUZCdmIyeGxaQ0E5SUZ3aWNHOXZiR1ZrWENJc1hHNGdJRUp5YVdSblpTQTlJRndpWW5KcFpHZGxYQ0lzWEc0Z0lGTnBiRzhnUFNCY0luTnBiRzljSWl4Y2JuMWNibHh1Wlhod2IzSjBJR1Z1ZFcwZ1RXVnRZbVZ5YzJocGNGTjBZWFIxY3lCN1hHNGdJRWx1ZG1sMFpXUWdQU0JjSW1sdWRtbDBaV1JjSWl4Y2JpQWdRV04wYVhabElEMGdYQ0poWTNScGRtVmNJaXhjYmlBZ1UzVnpjR1Z1WkdWa0lEMGdYQ0p6ZFhOd1pXNWtaV1JjSWl4Y2JpQWdVbVZ0YjNabFpDQTlJRndpY21WdGIzWmxaRndpTEZ4dWZWeHVYRzVsZUhCdmNuUWdaVzUxYlNCUWNtbHVZMmx3WVd4TGFXNWtJSHRjYmlBZ1ZYTmxjaUE5SUZ3aWRYTmxjbHdpTEZ4dUlDQkhjbTkxY0NBOUlGd2laM0p2ZFhCY0lpeGNiaUFnVTJWeWRtbGpaVUZqWTI5MWJuUWdQU0JjSW5ObGNuWnBZMlZmWVdOamIzVnVkRndpTEZ4dUlDQkJaMlZ1ZENBOUlGd2lZV2RsYm5SY0lpeGNiaUFnUVhCcFMyVjVJRDBnWENKaGNHbGZhMlY1WENJc1hHNTlYRzVjYm1WNGNHOXlkQ0JsYm5WdElGTmpiM0JsUzJsdVpDQjdYRzRnSUZSbGJtRnVkQ0E5SUZ3aWRHVnVZVzUwWENJc1hHNGdJRTl5WjFWdWFYUWdQU0JjSW05eVoxOTFibWwwWENJc1hHNGdJRkpsYzI5MWNtTmxJRDBnWENKeVpYTnZkWEpqWlZ3aUxGeHVmVnh1WEc1bGVIQnZjblFnWlc1MWJTQlFaWEp0YVhOemFXOXVRMkYwWldkdmNua2dlMXh1SUNCQlpHMXBiaUE5SUZ3aVlXUnRhVzVjSWl4Y2JpQWdRMjl1ZEdWdWRGSmxZV1FnUFNCY0ltTnZiblJsYm5SZmNtVmhaRndpTEZ4dUlDQkRiMjUwWlc1MFYzSnBkR1VnUFNCY0ltTnZiblJsYm5SZmQzSnBkR1ZjSWl4Y2JpQWdUV1Z0YjNKNUlEMGdYQ0p0WlcxdmNubGNJaXhjYmlBZ1IzSmhjR2dnUFNCY0ltZHlZWEJvWENJc1hHNGdJRlpsWTNSdmNpQTlJRndpZG1WamRHOXlYQ0lzWEc0Z0lFVjRjRzl5ZENBOUlGd2laWGh3YjNKMFhDSXNYRzRnSUVKcGJHeHBibWNnUFNCY0ltSnBiR3hwYm1kY0lpeGNiaUFnUVhWa2FYUWdQU0JjSW1GMVpHbDBYQ0lzWEc0Z0lGTmxZM1Z5YVhSNUlEMGdYQ0p6WldOMWNtbDBlVndpTEZ4dUlDQkVZWFJoSUQwZ1hDSmtZWFJoWENJc1hHNGdJRUYxZEc5dFlYUnBiMjRnUFNCY0ltRjFkRzl0WVhScGIyNWNJaXhjYm4xY2JseHVaWGh3YjNKMElHVnVkVzBnVW1WemIzVnlZMlZXYVhOcFltbHNhWFI1SUh0Y2JpQWdVSEpwZG1GMFpTQTlJRndpY0hKcGRtRjBaVndpTEZ4dUlDQlNaWE52ZFhKalpVRmpiQ0E5SUZ3aWNtVnpiM1Z5WTJWZllXTnNYQ0lzWEc0Z0lFOXlaMVZ1YVhRZ1BTQmNJbTl5WjE5MWJtbDBYQ0lzWEc0Z0lFOXlaMU4xWW5SeVpXVWdQU0JjSW05eVoxOXpkV0owY21WbFhDSXNYRzRnSUZSbGJtRnVkQ0E5SUZ3aWRHVnVZVzUwWENJc1hHNTlYRzVjYm1WNGNHOXlkQ0JsYm5WdElGTjBiM0poWjJWTGFXNWtJSHRjYmlBZ1VHOXpkR2R5WlhNZ1BTQmNJbkJ2YzNSbmNtVnpYQ0lzWEc0Z0lFRnlZVzVuYnlBOUlGd2lZWEpoYm1kdlhDSXNYRzRnSUZGa2NtRnVkQ0E5SUZ3aWNXUnlZVzUwWENJc1hHNGdJRTlpYW1WamRGTjBiM0poWjJVZ1BTQmNJbTlpYW1WamRGOXpkRzl5WVdkbFhDSXNYRzU5WEc1Y2JtVjRjRzl5ZENCbGJuVnRJRk4wYjNKaFoyVkNhVzVrYVc1blMybHVaQ0I3WEc0Z0lGTm9ZWEpsWkNBOUlGd2ljMmhoY21Wa1hDSXNYRzRnSUVSbFpHbGpZWFJsWkNBOUlGd2laR1ZrYVdOaGRHVmtYQ0lzWEc1OVhHNWNibVY0Y0c5eWRDQmpiMjV6ZENCSmMyOXNZWFJwYjI1VWFXVnlUM0IwYVc5dWN5QTlJRTlpYW1WamRDNTJZV3gxWlhNb1NYTnZiR0YwYVc5dVZHbGxjaWs3WEc1bGVIQnZjblFnWTI5dWMzUWdUV1Z0WW1WeWMyaHBjRk4wWVhSMWMwOXdkR2x2Ym5NZ1BTQlBZbXBsWTNRdWRtRnNkV1Z6S0UxbGJXSmxjbk5vYVhCVGRHRjBkWE1wTzF4dVpYaHdiM0owSUdOdmJuTjBJRkJ5YVc1amFYQmhiRXRwYm1SUGNIUnBiMjV6SUQwZ1QySnFaV04wTG5aaGJIVmxjeWhRY21sdVkybHdZV3hMYVc1a0tUdGNibVY0Y0c5eWRDQmpiMjV6ZENCVFkyOXdaVXRwYm1SUGNIUnBiMjV6SUQwZ1QySnFaV04wTG5aaGJIVmxjeWhUWTI5d1pVdHBibVFwTzF4dVpYaHdiM0owSUdOdmJuTjBJRkJsY20xcGMzTnBiMjVEWVhSbFoyOXllVTl3ZEdsdmJuTWdQU0JQWW1wbFkzUXVkbUZzZFdWektGQmxjbTFwYzNOcGIyNURZWFJsWjI5eWVTazdYRzVsZUhCdmNuUWdZMjl1YzNRZ1VtVnpiM1Z5WTJWV2FYTnBZbWxzYVhSNVQzQjBhVzl1Y3lBOUlFOWlhbVZqZEM1MllXeDFaWE1vVW1WemIzVnlZMlZXYVhOcFltbHNhWFI1S1R0Y2JtVjRjRzl5ZENCamIyNXpkQ0JUZEc5eVlXZGxTMmx1WkU5d2RHbHZibk1nUFNCUFltcGxZM1F1ZG1Gc2RXVnpLRk4wYjNKaFoyVkxhVzVrS1R0Y2JtVjRjRzl5ZENCamIyNXpkQ0JUZEc5eVlXZGxRbWx1WkdsdVowdHBibVJQY0hScGIyNXpJRDBnVDJKcVpXTjBMblpoYkhWbGN5aFRkRzl5WVdkbFFtbHVaR2x1WjB0cGJtUXBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdVa1ZNWDFKRlUxUlNTVU5VSUQwZ2UxeHVJQ0IxY0dSaGRHVTZJRU5oYzJOaFpHVXVUazlPUlN4Y2JpQWdaR1ZzWlhSbE9pQkRZWE5qWVdSbExrNVBUa1VzWEc0Z0lHNTFiR3hoWW14bE9pQm1ZV3h6WlN4Y2JuMGdZWE1nWTI5dWMzUTdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQlNSVXhmVGxWTVRFbEdXU0E5SUh0Y2JpQWdkWEJrWVhSbE9pQkRZWE5qWVdSbExrNVBUa1VzWEc0Z0lHUmxiR1YwWlRvZ1EyRnpZMkZrWlM1T1QwNUZMRnh1SUNCdWRXeHNZV0pzWlRvZ2RISjFaU3hjYm4wZ1lYTWdZMjl1YzNRN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCU1JVeGZRMEZUUTBGRVJWOUVSVkJGVGtSRlRsUWdQU0I3WEc0Z0lIVndaR0YwWlRvZ1EyRnpZMkZrWlM1RFFWTkRRVVJGTEZ4dUlDQmtaV3hsZEdVNklFTmhjMk5oWkdVdVEwRlRRMEZFUlN4Y2JpQWdiblZzYkdGaWJHVTZJR1poYkhObExGeHVmU0JoY3lCamIyNXpkRHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRkpGVEY5RFFWTkRRVVJGWDBsT1UwVlNWRjlWVUVSQlZFVWdQU0I3WEc0Z0lIVndaR0YwWlRvZ1EyRnpZMkZrWlM1RFFWTkRRVVJGTEZ4dUlDQmtaV3hsZEdVNklFTmhjMk5oWkdVdVRrOU9SU3hjYmlBZ2JuVnNiR0ZpYkdVNklHWmhiSE5sTEZ4dWZTQmhjeUJqYjI1emREdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1ZIaEJjbWR6SUQwZ1lXNTVXMTA3WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1EzSmxZWFJsVkdWdVlXNTBTVzV3ZFhRZ2UxeHVJQ0J6YkhWbk9pQnpkSEpwYm1jN1hHNGdJRzVoYldVNklITjBjbWx1Wnp0Y2JpQWdhWE52YkdGMGFXOXVWR2xsY2o4NklFbHpiMnhoZEdsdmJsUnBaWEk3WEc0Z0lIQnliMlpwYkdWTFpYay9PaUJ6ZEhKcGJtYzdYRzRnSUhCeWIyWnBiR1ZOWlhSaFpHRjBZVDg2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJSFZ1YTI1dmQyNCtPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElFTnlaV0YwWlZWelpYSkpibkIxZENCN1hHNGdJR1Z0WVdsc1B6b2djM1J5YVc1bk8xeHVJQ0J3YUc5dVpUODZJSE4wY21sdVp6dGNiaUFnWkdsemNHeGhlVTVoYldVNklITjBjbWx1Wnp0Y2JuMWNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JEY21WaGRHVlBjbWRWYm1sMFNXNXdkWFFnZTF4dUlDQjBaVzVoYm5SSlpEb2djM1J5YVc1bk8xeHVJQ0J3WVhKbGJuUlBjbWRWYm1sMFNXUS9PaUJ6ZEhKcGJtYzdYRzRnSUc1aGJXVTZJSE4wY21sdVp6dGNiaUFnYldWMFlXUmhkR0UvT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0IxYm10dWIzZHVQanRjYmlBZ2NISnZabWxzWlV0bGVUODZJSE4wY21sdVp6dGNiaUFnY0hKdlptbHNaVTFsZEdGa1lYUmhQem9nVW1WamIzSmtQSE4wY21sdVp5d2dkVzVyYm05M2JqNDdYRzU5WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1EzSmxZWFJsVW05c1pVbHVjSFYwSUh0Y2JpQWdkR1Z1WVc1MFNXUS9PaUJ6ZEhKcGJtYzdYRzRnSUd0bGVUb2djM1J5YVc1bk8xeHVJQ0J1WVcxbE9pQnpkSEpwYm1jN1hHNGdJR1JsYzJOeWFYQjBhVzl1UHpvZ2MzUnlhVzVuTzF4dUlDQnRaWFJoWkdGMFlUODZJRkpsWTI5eVpEeHpkSEpwYm1jc0lIVnVhMjV2ZDI0K08xeHVmVnh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVOeVpXRjBaVkJsY20xcGMzTnBiMjVKYm5CMWRDQjdYRzRnSUd0bGVUb2djM1J5YVc1bk8xeHVJQ0JqWVhSbFoyOXllVG9nVUdWeWJXbHpjMmx2YmtOaGRHVm5iM0o1TzF4dUlDQmtaWE5qY21sd2RHbHZiajg2SUhOMGNtbHVaenRjYm4xY2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkJjM05wWjI1U2IyeGxTVzV3ZFhRZ2UxeHVJQ0IwWlc1aGJuUkpaRG9nYzNSeWFXNW5PMXh1SUNCd2NtbHVZMmx3WVd4SlpEb2djM1J5YVc1bk8xeHVJQ0J5YjJ4bFNXUTZJSE4wY21sdVp6dGNiaUFnYzJOdmNHVkxhVzVrT2lCVFkyOXdaVXRwYm1RN1hHNGdJSE5qYjNCbFNXUTZJSE4wY21sdVp6dGNiaUFnYVc1b1pYSnBkRVJ2ZDI0L09pQmliMjlzWldGdU8xeHVJQ0J6ZEdGeWRITkJkRDg2SUVSaGRHVTdYRzRnSUdWNGNHbHlaWE5CZEQ4NklFUmhkR1U3WEc0Z0lHTnZibVJwZEdsdmJuTS9PaUJTWldOdmNtUThjM1J5YVc1bkxDQjFibXR1YjNkdVBqdGNibjFjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCU1pXZHBjM1JsY2xKbGMyOTFjbU5sU1c1d2RYUWdlMXh1SUNCMFpXNWhiblJKWkRvZ2MzUnlhVzVuTzF4dUlDQnZjbWRWYm1sMFNXUTZJSE4wY21sdVp6dGNiaUFnY21WemIzVnlZMlZVZVhCbE9pQnpkSEpwYm1jN1hHNGdJSEpsYzI5MWNtTmxTV1E2SUhOMGNtbHVaenRjYmlBZ2RtbHphV0pwYkdsMGVUb2dVbVZ6YjNWeVkyVldhWE5wWW1sc2FYUjVPMXh1SUNCdmQyNWxjbEJ5YVc1amFYQmhiRWxrUHpvZ2MzUnlhVzVuTzF4dUlDQnpaVzV6YVhScGRtbDBlVDg2SUhOMGNtbHVaenRjYmlBZ2JXVjBZV1JoZEdFL09pQlNaV052Y21ROGMzUnlhVzVuTENCMWJtdHViM2R1UGp0Y2JuMWNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JIY21GdWRGSmxjMjkxY21ObFNXNXdkWFFnZTF4dUlDQjBaVzVoYm5SSlpEb2djM1J5YVc1bk8xeHVJQ0J5WlhOdmRYSmpaVWxrT2lCemRISnBibWM3WEc0Z0lIQnlhVzVqYVhCaGJFbGtPaUJ6ZEhKcGJtYzdYRzRnSUhCbGNtMXBjM05wYjI1TFpYazZJSE4wY21sdVp6dGNiaUFnYzNSaGNuUnpRWFEvT2lCRVlYUmxPMXh1SUNCbGVIQnBjbVZ6UVhRL09pQkVZWFJsTzF4dUlDQmpiMjVrYVhScGIyNXpQem9nVW1WamIzSmtQSE4wY21sdVp5d2dkVzVyYm05M2JqNDdYRzRnSUdOeVpXRjBaV1JDZVZCeWFXNWphWEJoYkVsa1B6b2djM1J5YVc1bk8xeHVmVnh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVOaGJrRmpZMlZ6YzBsdWNIVjBJSHRjYmlBZ2RHVnVZVzUwU1dRNklITjBjbWx1Wnp0Y2JpQWdjSEpwYm1OcGNHRnNTV1E2SUhOMGNtbHVaenRjYmlBZ2NHVnliV2x6YzJsdmJrdGxlVG9nYzNSeWFXNW5PMXh1SUNCeVpYTnZkWEpqWlZCeWIzUmxZM1JsWkVsa1B6b2djM1J5YVc1bk8xeHVJQ0J6WTI5d1pVdHBibVEvT2lCVFkyOXdaVXRwYm1RN1hHNGdJSE5qYjNCbFNXUS9PaUJ6ZEhKcGJtYzdYRzRnSUdGMFB6b2dSR0YwWlR0Y2JuMWNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JCWTJObGMzTkRiMjUwWlhoMElIdGNiaUFnZEdWdVlXNTBTV1E2SUhOMGNtbHVaenRjYmlBZ2NISnBibU5wY0dGc1NXUTZJSE4wY21sdVp6dGNiaUFnY0dWeWJXbHpjMmx2Ym5OQ2VWTmpiM0JsT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0J6ZEhKcGJtZGJYVDQ3WEc0Z0lHRnNiRzkzWldSUGNtZFZibWwwU1dSelFubFFaWEp0YVhOemFXOXVPaUJTWldOdmNtUThjM1J5YVc1bkxDQnpkSEpwYm1kYlhUNDdYRzRnSUhKbGMyOTFjbU5sUjNKaGJuUnpPaUJCY25KaGVUeDdJSEpsYzI5MWNtTmxTV1E2SUhOMGNtbHVaenNnY0dWeWJXbHpjMmx2Ymt0bGVUb2djM1J5YVc1bklIMCtPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElFRnlZVzVuYjBGMWRHaERiMjUwWlhoMElIdGNiaUFnZEdWdVlXNTBTV1E2SUhOMGNtbHVaenRjYmlBZ2NISnBibU5wY0dGc1NXUTZJSE4wY21sdVp6dGNiaUFnY0dWeWJXbHpjMmx2Ymt0bGVUb2djM1J5YVc1bk8xeHVJQ0JoYkd4dmQyVmtUM0puVlc1cGRFbGtjem9nYzNSeWFXNW5XMTA3WEc0Z0lHRnNiRzkzWldSU1pYTnZkWEpqWlVsa2N6b2djM1J5YVc1blcxMDdYRzU5WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1VXUnlZVzUwUVhWMGFFWnBiSFJsY2lCN1hHNGdJRzExYzNRNklFRnljbUY1UEZKbFkyOXlaRHh6ZEhKcGJtY3NJSFZ1YTI1dmQyNCtQanRjYmlBZ2JYVnpkRjl1YjNRL09pQkJjbkpoZVR4U1pXTnZjbVE4YzNSeWFXNW5MQ0IxYm10dWIzZHVQajQ3WEc1OVhHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdRM0psWVhSbFUzUnZjbUZuWlVKcGJtUnBibWRKYm5CMWRDQjdYRzRnSUhSbGJtRnVkRWxrT2lCemRISnBibWM3WEc0Z0lITjBiM0poWjJWTGFXNWtPaUJUZEc5eVlXZGxTMmx1WkR0Y2JpQWdZbWx1WkdsdVowdHBibVE2SUZOMGIzSmhaMlZDYVc1a2FXNW5TMmx1WkR0Y2JpQWdZbWx1WkdsdVowdGxlVG9nYzNSeWFXNW5PMXh1SUNCeVpXZHBiMjQ2SUhOMGNtbHVaenRjYmlBZ1kyOXVabWxuUHpvZ1VtVmpiM0prUEhOMGNtbHVaeXdnZFc1cmJtOTNiajQ3WEc1OVhHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdRbTl2ZEhOMGNtRndVR1Z5YldsemMybHZiaUI3WEc0Z0lHdGxlVG9nYzNSeWFXNW5PMXh1SUNCallYUmxaMjl5ZVRvZ1VHVnliV2x6YzJsdmJrTmhkR1ZuYjNKNU8xeHVJQ0JrWlhOamNtbHdkR2x2Ymo4NklITjBjbWx1Wnp0Y2JuMWNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JDYjI5MGMzUnlZWEJTYjJ4bElIdGNiaUFnYTJWNU9pQnpkSEpwYm1jN1hHNGdJRzVoYldVNklITjBjbWx1Wnp0Y2JpQWdaR1Z6WTNKcGNIUnBiMjQvT2lCemRISnBibWM3WEc0Z0lIQmxjbTFwYzNOcGIyNUxaWGx6T2lCemRISnBibWRiWFR0Y2JuMWNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JDYjI5MGMzUnlZWEJQY21kVmJtbDBJSHRjYmlBZ2JtRnRaVG9nYzNSeWFXNW5PMXh1SUNCd2NtOW1hV3hsUzJWNVB6b2djM1J5YVc1bk8xeHVJQ0J0WlhSaFpHRjBZVDg2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJSFZ1YTI1dmQyNCtPMXh1SUNCamFHbHNaSEpsYmo4NklFSnZiM1J6ZEhKaGNFOXlaMVZ1YVhSYlhUdGNibjFjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCQ2IyOTBjM1J5WVhCVVpXMXdiR0YwWlNCN1hHNGdJSFJsYm1GdWREb2dRM0psWVhSbFZHVnVZVzUwU1c1d2RYUTdYRzRnSUhKdmIzUlBjbWRWYm1sME9pQkNiMjkwYzNSeVlYQlBjbWRWYm1sME8xeHVJQ0J3WlhKdGFYTnphVzl1Y3pvZ1FtOXZkSE4wY21Gd1VHVnliV2x6YzJsdmJsdGRPMXh1SUNCeWIyeGxjem9nUW05dmRITjBjbUZ3VW05c1pWdGRPMXh1SUNCdmQyNWxjbFZ6WlhJNklFTnlaV0YwWlZWelpYSkpibkIxZER0Y2JpQWdiM2R1WlhKU2IyeGxTMlY1T2lCemRISnBibWM3WEc1OVhHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdVbVZ6YjNWeVkyVlRibUZ3YzJodmRDQjdYRzRnSUdsa09pQnpkSEpwYm1jN1hHNGdJSFJsYm1GdWRFbGtPaUJ6ZEhKcGJtYzdYRzRnSUc5eVoxVnVhWFJKWkRvZ2MzUnlhVzVuTzF4dUlDQnlaWE52ZFhKalpWUjVjR1U2SUhOMGNtbHVaenRjYmlBZ2NtVnpiM1Z5WTJWSlpEb2djM1J5YVc1bk8xeHVJQ0IyYVhOcFltbHNhWFI1T2lCU1pYTnZkWEpqWlZacGMybGlhV3hwZEhrN1hHNGdJRzkzYm1WeVVISnBibU5wY0dGc1NXUS9PaUJ6ZEhKcGJtYzdYRzRnSUhObGJuTnBkR2wyYVhSNVB6b2djM1J5YVc1bk8xeHVJQ0J0WlhSaFpHRjBZVDg2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJSFZ1YTI1dmQyNCtPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElFZHlZVzUwVTI1aGNITm9iM1FnZTF4dUlDQnBaRG9nYzNSeWFXNW5PMXh1SUNCMFpXNWhiblJKWkRvZ2MzUnlhVzVuTzF4dUlDQnlaWE52ZFhKalpVbGtPaUJ6ZEhKcGJtYzdYRzRnSUhCeWFXNWphWEJoYkVsa09pQnpkSEpwYm1jN1hHNGdJSEJsY20xcGMzTnBiMjVMWlhrNklITjBjbWx1Wnp0Y2JpQWdjM1JoY25SelFYUS9PaUJFWVhSbE8xeHVJQ0JsZUhCcGNtVnpRWFEvT2lCRVlYUmxPMXh1SUNCamIyNWthWFJwYjI1elB6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z2RXNXJibTkzYmo0N1hHNGdJR055WldGMFpXUkNlVkJ5YVc1amFYQmhiRWxrUHpvZ2MzUnlhVzVuTzF4dWZWeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRVZtWm1WamRHbDJaVkJsY20xcGMzTnBiMjVUYm1Gd2MyaHZkQ0I3WEc0Z0lHbGtPaUJ6ZEhKcGJtYzdYRzRnSUhSbGJtRnVkRWxrT2lCemRISnBibWM3WEc0Z0lIQnlhVzVqYVhCaGJFbGtPaUJ6ZEhKcGJtYzdYRzRnSUhCbGNtMXBjM05wYjI1TFpYazZJSE4wY21sdVp6dGNiaUFnYzJOdmNHVkxhVzVrT2lCVFkyOXdaVXRwYm1RN1hHNGdJSE5qYjNCbFNXUTZJSE4wY21sdVp6dGNiaUFnYzI5MWNtTmxTMmx1WkRvZ2MzUnlhVzVuTzF4dUlDQnpiM1Z5WTJWSlpEb2djM1J5YVc1bk8xeHVJQ0J6ZEdGeWRITkJkRDg2SUVSaGRHVTdYRzRnSUdWNGNHbHlaWE5CZEQ4NklFUmhkR1U3WEc1OVhHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdRWFYwYUhwRVlYUmhVMjkxY21ObGN5QjdYRzRnSUd4dllXUlNaWE52ZFhKalpUODZJQ2hjYmlBZ0lDQjBaVzVoYm5SSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUhCeWIzUmxZM1JsWkZKbGMyOTFjbU5sU1dRNklITjBjbWx1WjF4dUlDQXBJRDArSUZCeWIyMXBjMlU4VW1WemIzVnlZMlZUYm1Gd2MyaHZkQ0I4SUhWdVpHVm1hVzVsWkQ0N1hHNGdJR3hwYzNSU1pYTnZkWEpqWlVkeVlXNTBjejg2SUNoY2JpQWdJQ0IwWlc1aGJuUkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lIQnliM1JsWTNSbFpGSmxjMjkxY21ObFNXUTZJSE4wY21sdVoxeHVJQ0FwSUQwK0lGQnliMjFwYzJVOFIzSmhiblJUYm1Gd2MyaHZkRnRkUGp0Y2JpQWdiR2x6ZEZCeWFXNWphWEJoYkVkeVlXNTBjejg2SUNoY2JpQWdJQ0IwWlc1aGJuUkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lIQnlhVzVqYVhCaGJFbGtPaUJ6ZEhKcGJtZGNiaUFnS1NBOVBpQlFjbTl0YVhObFBFZHlZVzUwVTI1aGNITm9iM1JiWFQ0N1hHNGdJR3hwYzNSRlptWmxZM1JwZG1WUVpYSnRhWE56YVc5dWN6ODZJQ2hjYmlBZ0lDQjBaVzVoYm5SSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUhCeWFXNWphWEJoYkVsa09pQnpkSEpwYm1kY2JpQWdLU0E5UGlCUWNtOXRhWE5sUEVWbVptVmpkR2wyWlZCbGNtMXBjM05wYjI1VGJtRndjMmh2ZEZ0ZFBqdGNiaUFnYkdsemRFVm1abVZqZEdsMlpWQmxjbTFwYzNOcGIyNXpSbTl5VTJOdmNHVS9PaUFvWEc0Z0lDQWdkR1Z1WVc1MFNXUTZJSE4wY21sdVp5eGNiaUFnSUNCelkyOXdaVXRwYm1RNklGTmpiM0JsUzJsdVpDeGNiaUFnSUNCelkyOXdaVWxrT2lCemRISnBibWRjYmlBZ0tTQTlQaUJRY205dGFYTmxQRVZtWm1WamRHbDJaVkJsY20xcGMzTnBiMjVUYm1Gd2MyaHZkRnRkUGp0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnYVhOVWFXMWxWbUZzYVdRb1hHNGdJR0YwT2lCRVlYUmxJSHdnZFc1a1pXWnBibVZrTEZ4dUlDQnpkR0Z5ZEhOQmREODZJRVJoZEdVc1hHNGdJR1Y0Y0dseVpYTkJkRDg2SUVSaGRHVmNiaWs2SUdKdmIyeGxZVzRnZTF4dUlDQmpiMjV6ZENCcGJuTjBZVzUwSUQwZ1lYUWdQejhnYm1WM0lFUmhkR1VvS1R0Y2JpQWdhV1lnS0hOMFlYSjBjMEYwSUNZbUlHbHVjM1JoYm5RZ1BDQnpkR0Z5ZEhOQmRDa2djbVYwZFhKdUlHWmhiSE5sTzF4dUlDQnBaaUFvWlhod2FYSmxjMEYwSUNZbUlHbHVjM1JoYm5RZ1BpQmxlSEJwY21WelFYUXBJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdjbVYwZFhKdUlIUnlkV1U3WEc1OVhHNWNibVoxYm1OMGFXOXVJSE5qYjNCbFMyVjVLSE5qYjNCbFMybHVaRG9nVTJOdmNHVkxhVzVrTENCelkyOXdaVWxrT2lCemRISnBibWNwT2lCemRISnBibWNnZTF4dUlDQnlaWFIxY200Z1lDUjdjMk52Y0dWTGFXNWtmVG9rZTNOamIzQmxTV1I5WUR0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnZEc5QmNuSmhlVHhVUGloMllXeDFaVG9nVkZ0ZElId2dkVzVrWldacGJtVmtLVG9nVkZ0ZElIdGNiaUFnY21WMGRYSnVJSFpoYkhWbElEOC9JRnRkTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZblZwYkdSQmNtRnVaMjlEYjI1MFpYaDBLRzl3ZEdsdmJuTTZJSHRjYmlBZ2RHVnVZVzUwU1dRNklITjBjbWx1Wnp0Y2JpQWdjSEpwYm1OcGNHRnNTV1E2SUhOMGNtbHVaenRjYmlBZ2NHVnliV2x6YzJsdmJrdGxlVG9nYzNSeWFXNW5PMXh1SUNCaGJHeHZkMlZrVDNKblZXNXBkRWxrY3pvZ2MzUnlhVzVuVzEwN1hHNGdJR0ZzYkc5M1pXUlNaWE52ZFhKalpVbGtjem9nYzNSeWFXNW5XMTA3WEc1OUtUb2dRWEpoYm1kdlFYVjBhRU52Ym5SbGVIUWdlMXh1SUNCeVpYUjFjbTRnZTF4dUlDQWdJSFJsYm1GdWRFbGtPaUJ2Y0hScGIyNXpMblJsYm1GdWRFbGtMRnh1SUNBZ0lIQnlhVzVqYVhCaGJFbGtPaUJ2Y0hScGIyNXpMbkJ5YVc1amFYQmhiRWxrTEZ4dUlDQWdJSEJsY20xcGMzTnBiMjVMWlhrNklHOXdkR2x2Ym5NdWNHVnliV2x6YzJsdmJrdGxlU3hjYmlBZ0lDQmhiR3h2ZDJWa1QzSm5WVzVwZEVsa2N6b2dXeTR1TG05d2RHbHZibk11WVd4c2IzZGxaRTl5WjFWdWFYUkpaSE5kTEZ4dUlDQWdJR0ZzYkc5M1pXUlNaWE52ZFhKalpVbGtjem9nV3k0dUxtOXdkR2x2Ym5NdVlXeHNiM2RsWkZKbGMyOTFjbU5sU1dSelhTeGNiaUFnZlR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR0oxYVd4a1VXUnlZVzUwUm1sc2RHVnlLRzl3ZEdsdmJuTTZJSHRjYmlBZ2RHVnVZVzUwU1dRNklITjBjbWx1Wnp0Y2JpQWdjSEpwYm1OcGNHRnNTV1E2SUhOMGNtbHVaenRjYmlBZ2NHVnliV2x6YzJsdmJrdGxlVG9nYzNSeWFXNW5PMXh1SUNCaGJHeHZkMlZrVDNKblZXNXBkRWxrY3pvZ2MzUnlhVzVuVzEwN1hHNGdJR0ZzYkc5M1pXUlNaWE52ZFhKalpVbGtjem9nYzNSeWFXNW5XMTA3WEc1OUtUb2dVV1J5WVc1MFFYVjBhRVpwYkhSbGNpQjdYRzRnSUhKbGRIVnliaUI3WEc0Z0lDQWdiWFZ6ZERvZ1cxeHVJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQnJaWGs2SUZ3aWRHVnVZVzUwWDJsa1hDSXNYRzRnSUNBZ0lDQWdJRzFoZEdOb09pQjdJSFpoYkhWbE9pQnZjSFJwYjI1ekxuUmxibUZ1ZEVsa0lIMHNYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0J6YUc5MWJHUTZJRnRjYmlBZ0lDQWdJQ0FnSUNCN0lHdGxlVG9nWENKdmNtZGZkVzVwZEY5cFpGd2lMQ0J0WVhSamFEb2dleUJoYm5rNklHOXdkR2x2Ym5NdVlXeHNiM2RsWkU5eVoxVnVhWFJKWkhNZ2ZTQjlMRnh1SUNBZ0lDQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3RsZVRvZ1hDSndjbTkwWldOMFpXUmZjbVZ6YjNWeVkyVmZhV1JjSWl4Y2JpQWdJQ0FnSUNBZ0lDQWdJRzFoZEdOb09pQjdJR0Z1ZVRvZ2IzQjBhVzl1Y3k1aGJHeHZkMlZrVW1WemIzVnlZMlZKWkhNZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lIc2dhMlY1T2lCY0ltOTNibVZ5WDNCeWFXNWphWEJoYkY5cFpGd2lMQ0J0WVhSamFEb2dleUIyWVd4MVpUb2diM0IwYVc5dWN5NXdjbWx1WTJsd1lXeEpaQ0I5SUgwc1hHNGdJQ0FnSUNBZ0lGMHNYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lGMHNYRzRnSUgwN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJpZFdsc1pFRmpZMlZ6YzBOdmJuUmxlSFFvYjNCMGFXOXVjem9nZTF4dUlDQjBaVzVoYm5SSlpEb2djM1J5YVc1bk8xeHVJQ0J3Y21sdVkybHdZV3hKWkRvZ2MzUnlhVzVuTzF4dUlDQndaWEp0YVhOemFXOXVjem9nUldabVpXTjBhWFpsVUdWeWJXbHpjMmx2YmxOdVlYQnphRzkwVzEwN1hHNGdJR2R5WVc1MGN6b2dSM0poYm5SVGJtRndjMmh2ZEZ0ZE8xeHVmU2s2SUVGalkyVnpjME52Ym5SbGVIUWdlMXh1SUNCamIyNXpkQ0J3WlhKdGFYTnphVzl1YzBKNVUyTnZjR1U2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJSE4wY21sdVoxdGRQaUE5SUh0OU8xeHVJQ0JqYjI1emRDQmhiR3h2ZDJWa1QzSm5WVzVwZEVsa2MwSjVVR1Z5YldsemMybHZiam9nVW1WamIzSmtQSE4wY21sdVp5d2djM1J5YVc1blcxMCtJRDBnZTMwN1hHNWNiaUFnWm05eUlDaGpiMjV6ZENCd1pYSnRhWE56YVc5dUlHOW1JRzl3ZEdsdmJuTXVjR1Z5YldsemMybHZibk1wSUh0Y2JpQWdJQ0JqYjI1emRDQnJaWGtnUFNCelkyOXdaVXRsZVNod1pYSnRhWE56YVc5dUxuTmpiM0JsUzJsdVpDd2djR1Z5YldsemMybHZiaTV6WTI5d1pVbGtLVHRjYmlBZ0lDQndaWEp0YVhOemFXOXVjMEo1VTJOdmNHVmJhMlY1WFNBOUlIQmxjbTFwYzNOcGIyNXpRbmxUWTI5d1pWdHJaWGxkSUQ4L0lGdGRPMXh1SUNBZ0lIQmxjbTFwYzNOcGIyNXpRbmxUWTI5d1pWdHJaWGxkTG5CMWMyZ29jR1Z5YldsemMybHZiaTV3WlhKdGFYTnphVzl1UzJWNUtUdGNiaUFnSUNCcFppQW9jR1Z5YldsemMybHZiaTV6WTI5d1pVdHBibVFnUFQwOUlGTmpiM0JsUzJsdVpDNVBjbWRWYm1sMEtTQjdYRzRnSUNBZ0lDQmhiR3h2ZDJWa1QzSm5WVzVwZEVsa2MwSjVVR1Z5YldsemMybHZibHR3WlhKdGFYTnphVzl1TG5CbGNtMXBjM05wYjI1TFpYbGRJRDFjYmlBZ0lDQWdJQ0FnWVd4c2IzZGxaRTl5WjFWdWFYUkpaSE5DZVZCbGNtMXBjM05wYjI1YmNHVnliV2x6YzJsdmJpNXdaWEp0YVhOemFXOXVTMlY1WFNBL1B5QmJYVHRjYmlBZ0lDQWdJR0ZzYkc5M1pXUlBjbWRWYm1sMFNXUnpRbmxRWlhKdGFYTnphVzl1VzNCbGNtMXBjM05wYjI0dWNHVnliV2x6YzJsdmJrdGxlVjB1Y0hWemFDaGNiaUFnSUNBZ0lDQWdjR1Z5YldsemMybHZiaTV6WTI5d1pVbGtYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEpsZEhWeWJpQjdYRzRnSUNBZ2RHVnVZVzUwU1dRNklHOXdkR2x2Ym5NdWRHVnVZVzUwU1dRc1hHNGdJQ0FnY0hKcGJtTnBjR0ZzU1dRNklHOXdkR2x2Ym5NdWNISnBibU5wY0dGc1NXUXNYRzRnSUNBZ2NHVnliV2x6YzJsdmJuTkNlVk5qYjNCbExGeHVJQ0FnSUdGc2JHOTNaV1JQY21kVmJtbDBTV1J6UW5sUVpYSnRhWE56YVc5dUxGeHVJQ0FnSUhKbGMyOTFjbU5sUjNKaGJuUnpPaUJ2Y0hScGIyNXpMbWR5WVc1MGN5NXRZWEFvS0dkeVlXNTBLU0E5UGlBb2UxeHVJQ0FnSUNBZ2NtVnpiM1Z5WTJWSlpEb2daM0poYm5RdWNtVnpiM1Z5WTJWSlpDeGNiaUFnSUNBZ0lIQmxjbTFwYzNOcGIyNUxaWGs2SUdkeVlXNTBMbkJsY20xcGMzTnBiMjVMWlhrc1hHNGdJQ0FnZlNrcExGeHVJQ0I5TzF4dWZWeHVYRzVsZUhCdmNuUWdZV0p6ZEhKaFkzUWdZMnhoYzNNZ1FtRnpaVTF2WkdWc1UyVnlkbWxqWlR4Y2JpQWdUU0JsZUhSbGJtUnpJRTF2WkdWc1BHSnZiMnhsWVc0K0lDWWdleUJwWkRvZ2MzUnlhVzVuSUgwc1hHNCtJR1Y0ZEdWdVpITWdUVzlrWld4VFpYSjJhV05sUEUwc0lGSmxjRzl6YVhSdmNuazhUU3dnWVc1NVBqNGdlMXh1SUNCd2NtOTBaV04wWldRZ1kyOXVjM1J5ZFdOMGIzSW9ZMnhoZW5vNklHNWxkeUFvS1NBOVBpQk5LU0I3WEc0Z0lDQWdjM1Z3WlhJb1kyeGhlbm9wTzF4dUlDQjlYRzVjYmlBZ2NISnZkR1ZqZEdWa0lHNWxkMDF2WkdWc1BGUStLR05zWVhwNk9pQnVaWGNnS0NrZ1BUNGdWQ3dnWkdGMFlUb2dVR0Z5ZEdsaGJEeFVQaWs2SUZRZ2UxeHVJQ0FnSUhKbGRIVnliaUJQWW1wbFkzUXVZWE56YVdkdUtHNWxkeUJqYkdGNmVpZ3BJR0Z6SUc5aWFtVmpkQ3dnWkdGMFlTQmhjeUJ2WW1wbFkzUXBJR0Z6SUZRN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCamNtVmhkR1ZQYm1Vb1pHRjBZVG9nVUdGeWRHbGhiRHhOUGl3Z0xpNHVZWEpuY3pvZ1lXNTVXMTBwT2lCUWNtOXRhWE5sUEUwK0lIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXlaWEJ2TG1OeVpXRjBaU2hQWW1wbFkzUXVZWE56YVdkdUtIdDlJR0Z6SUUwc0lHUmhkR0VnWVhNZ2IySnFaV04wS1N3Z0xpNHVZWEpuY3lrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCblpYUkNlVWxrS0dsa09pQnpkSEpwYm1jc0lDNHVMbUZ5WjNNNklHRnVlVnRkS1RvZ1VISnZiV2x6WlR4TlBpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjbVZ3Ynk1eVpXRmtLR2xrTENBdUxpNWhjbWR6S1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUhWd1pHRjBaVTl1WlNocFpEb2djM1J5YVc1bkxDQndZWFJqYURvZ1VHRnlkR2xoYkR4TlBpd2dMaTR1WVhKbmN6b2dZVzU1VzEwcE9pQlFjbTl0YVhObFBFMCtJSHRjYmlBZ0lDQmpiMjV6ZENCbGVHbHpkR2x1WnlBOUlHRjNZV2wwSUhSb2FYTXVjbVZ3Ynk1eVpXRmtLR2xrTENBdUxpNWhjbWR6S1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1eVpYQnZMblZ3WkdGMFpTaFBZbXBsWTNRdVlYTnphV2R1S0dWNGFYTjBhVzVuTENCd1lYUmphQ2tzSUM0dUxtRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nWkdWc1pYUmxRbmxKWkNocFpEb2djM1J5YVc1bkxDQXVMaTVoY21kek9pQmhibmxiWFNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR0YzWVdsMElIUm9hWE11Y21Wd2J5NWtaV3hsZEdVb2FXUXNJQzR1TG1GeVozTXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdabWx1WkU5dVpVSjVQRXNnWlhoMFpXNWtjeUJyWlhsdlppQk5JQ1lnYzNSeWFXNW5QaWhjYmlBZ0lDQnJaWGs2SUVzc1hHNGdJQ0FnZG1Gc2RXVTZJRTFiUzEwc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4TlBpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjbVZ3Ynk1bWFXNWtUMjVsUW5rb2EyVjVMQ0IyWVd4MVpTd2dMaTR1WVhKbmN5azdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5Qm1hVzVrVFdGdWVVSjVQRXNnWlhoMFpXNWtjeUJyWlhsdlppQk5JQ1lnYzNSeWFXNW5QaWhjYmlBZ0lDQnJaWGs2SUVzc1hHNGdJQ0FnZG1Gc2RXVTZJRTFiUzEwc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4TlcxMCtJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV5WlhCdlhHNGdJQ0FnSUNBdWMyVnNaV04wS0NsY2JpQWdJQ0FnSUM1M2FHVnlaU2g3SUZ0clpYbGRPaUIyWVd4MVpTQjlJR0Z6SUdGdWVTbGNiaUFnSUNBZ0lDNWxlR1ZqZFhSbEtDNHVMbUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2JHbHpkRUZzYkNndUxpNWhjbWR6T2lCaGJubGJYU2s2SUZCeWIyMXBjMlU4VFZ0ZFBpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjbVZ3Ynk1elpXeGxZM1FvS1M1bGVHVmpkWFJsS0M0dUxtRnlaM01wTzF4dUlDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCcFpDZ3BPaUJ6ZEhKcGJtY2dlMXh1SUNCeVpYUjFjbTRnWTNKNWNIUnZMbkpoYm1SdmJWVlZTVVFvS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEpsYkdGMGFXOXVTV1FvZG1Gc2RXVTZJSE4wY21sdVp5QjhJSHNnYVdRNklITjBjbWx1WnlCOUtUb2djM1J5YVc1bklIdGNiaUFnY21WMGRYSnVJSFI1Y0dWdlppQjJZV3gxWlNBOVBUMGdYQ0p6ZEhKcGJtZGNJaUEvSUhaaGJIVmxJRG9nZG1Gc2RXVXVhV1E3WEc1OVhHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCQmRYUm9lbE5sY25acFkyVWdlMXh1SUNCd2NtbDJZWFJsSUhKbFlXUnZibXg1SUdSaGRHRlRiM1Z5WTJWek9pQkJkWFJvZWtSaGRHRlRiM1Z5WTJWek8xeHVYRzRnSUdOdmJuTjBjblZqZEc5eUtHUmhkR0ZUYjNWeVkyVnpPaUJCZFhSb2VrUmhkR0ZUYjNWeVkyVnpJRDBnZTMwcElIdGNiaUFnSUNCMGFHbHpMbVJoZEdGVGIzVnlZMlZ6SUQwZ1pHRjBZVk52ZFhKalpYTTdYRzRnSUgxY2JseHVJQ0F2THlCbGMyeHBiblF0WkdsellXSnNaUzF1WlhoMExXeHBibVVnUUhSNWNHVnpZM0pwY0hRdFpYTnNhVzUwTDI1dkxYVnVkWE5sWkMxMllYSnpYRzRnSUdGemVXNWpJR05oYmtGalkyVnpjeWhwYm5CMWREb2dRMkZ1UVdOalpYTnpTVzV3ZFhRc0lDNHVMbUZ5WjNNNklHRnVlVnRkS1RvZ1VISnZiV2x6WlR4aWIyOXNaV0Z1UGlCN1hHNGdJQ0FnWTI5dWMzUWdZWFFnUFNCcGJuQjFkQzVoZENBL1B5QnVaWGNnUkdGMFpTZ3BPMXh1WEc0Z0lDQWdhV1lnS0dsdWNIVjBMbk5qYjNCbFMybHVaQ0FtSmlCcGJuQjFkQzV6WTI5d1pVbGtLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQndaWEp0YVhOemFXOXVjeUE5WEc0Z0lDQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdVpHRjBZVk52ZFhKalpYTXViR2x6ZEVWbVptVmpkR2wyWlZCbGNtMXBjM05wYjI1elJtOXlVMk52Y0dVL0xpaGNiaUFnSUNBZ0lDQWdJQ0JwYm5CMWRDNTBaVzVoYm5SSlpDeGNiaUFnSUNBZ0lDQWdJQ0JwYm5CMWRDNXpZMjl3WlV0cGJtUXNYRzRnSUNBZ0lDQWdJQ0FnYVc1d2RYUXVjMk52Y0dWSlpGeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUnZRWEp5WVhrb2NHVnliV2x6YzJsdmJuTXBMbk52YldVb1hHNGdJQ0FnSUNBZ0lDaHdaWEp0YVhOemFXOXVLU0E5UGx4dUlDQWdJQ0FnSUNBZ0lIQmxjbTFwYzNOcGIyNHVjR1Z5YldsemMybHZia3RsZVNBOVBUMGdhVzV3ZFhRdWNHVnliV2x6YzJsdmJrdGxlU0FtSmx4dUlDQWdJQ0FnSUNBZ0lHbHpWR2x0WlZaaGJHbGtLR0YwTENCd1pYSnRhWE56YVc5dUxuTjBZWEowYzBGMExDQndaWEp0YVhOemFXOXVMbVY0Y0dseVpYTkJkQ2xjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0NGcGJuQjFkQzV5WlhOdmRYSmpaVkJ5YjNSbFkzUmxaRWxrS1NCeVpYUjFjbTRnWm1Gc2MyVTdYRzVjYmlBZ0lDQmpiMjV6ZENCeVpYTnZkWEpqWlNBOUlHRjNZV2wwSUhSb2FYTXVaR0YwWVZOdmRYSmpaWE11Ykc5aFpGSmxjMjkxY21ObFB5NG9YRzRnSUNBZ0lDQnBibkIxZEM1MFpXNWhiblJKWkN4Y2JpQWdJQ0FnSUdsdWNIVjBMbkpsYzI5MWNtTmxVSEp2ZEdWamRHVmtTV1JjYmlBZ0lDQXBPMXh1SUNBZ0lHbG1JQ2doY21WemIzVnlZMlVwSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNCcFppQW9jbVZ6YjNWeVkyVXVkR1Z1WVc1MFNXUWdJVDA5SUdsdWNIVjBMblJsYm1GdWRFbGtLU0J5WlhSMWNtNGdabUZzYzJVN1hHNWNiaUFnSUNCcFppQW9jbVZ6YjNWeVkyVXViM2R1WlhKUWNtbHVZMmx3WVd4SlpDQTlQVDBnYVc1d2RYUXVjSEpwYm1OcGNHRnNTV1FwSUhKbGRIVnliaUIwY25WbE8xeHVYRzRnSUNBZ1kyOXVjM1FnWjNKaGJuUnpJRDBnZEc5QmNuSmhlU2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11WkdGMFlWTnZkWEpqWlhNdWJHbHpkRkpsYzI5MWNtTmxSM0poYm5SelB5NG9YRzRnSUNBZ0lDQWdJR2x1Y0hWMExuUmxibUZ1ZEVsa0xGeHVJQ0FnSUNBZ0lDQnBibkIxZEM1eVpYTnZkWEpqWlZCeWIzUmxZM1JsWkVsa1hHNGdJQ0FnSUNBcFhHNGdJQ0FnS1M1bWFXeDBaWElvWEc0Z0lDQWdJQ0FvWjNKaGJuUXBJRDArWEc0Z0lDQWdJQ0FnSUdkeVlXNTBMbkJ5YVc1amFYQmhiRWxrSUQwOVBTQnBibkIxZEM1d2NtbHVZMmx3WVd4SlpDQW1KbHh1SUNBZ0lDQWdJQ0JuY21GdWRDNXdaWEp0YVhOemFXOXVTMlY1SUQwOVBTQnBibkIxZEM1d1pYSnRhWE56YVc5dVMyVjVJQ1ltWEc0Z0lDQWdJQ0FnSUdselZHbHRaVlpoYkdsa0tHRjBMQ0JuY21GdWRDNXpkR0Z5ZEhOQmRDd2daM0poYm5RdVpYaHdhWEpsYzBGMEtWeHVJQ0FnSUNrN1hHNGdJQ0FnYVdZZ0tHZHlZVzUwY3k1c1pXNW5kR2dnUGlBd0tTQnlaWFIxY200Z2RISjFaVHRjYmx4dUlDQWdJR052Ym5OMElIWnBjMmxpYVd4cGRIa2dQU0J5WlhOdmRYSmpaUzUyYVhOcFltbHNhWFI1TzF4dUlDQWdJR2xtSUNoY2JpQWdJQ0FnSUhacGMybGlhV3hwZEhrZ1BUMDlJRkpsYzI5MWNtTmxWbWx6YVdKcGJHbDBlUzVRY21sMllYUmxJSHg4WEc0Z0lDQWdJQ0IyYVhOcFltbHNhWFI1SUQwOVBTQlNaWE52ZFhKalpWWnBjMmxpYVd4cGRIa3VVbVZ6YjNWeVkyVkJZMnhjYmlBZ0lDQXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb1hHNGdJQ0FnSUNCMmFYTnBZbWxzYVhSNUlEMDlQU0JTWlhOdmRYSmpaVlpwYzJsaWFXeHBkSGt1VDNKblZXNXBkQ0I4ZkZ4dUlDQWdJQ0FnZG1semFXSnBiR2wwZVNBOVBUMGdVbVZ6YjNWeVkyVldhWE5wWW1sc2FYUjVMazl5WjFOMVluUnlaV1ZjYmlBZ0lDQXBJSHRjYmlBZ0lDQWdJR052Ym5OMElHVm1abVZqZEdsMlpWQmxjbTFwYzNOcGIyNXpJRDBnZEc5QmNuSmhlU2hjYmlBZ0lDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1a1lYUmhVMjkxY21ObGN5NXNhWE4wUldabVpXTjBhWFpsVUdWeWJXbHpjMmx2Ym5OR2IzSlRZMjl3WlQ4dUtGeHVJQ0FnSUNBZ0lDQWdJR2x1Y0hWMExuUmxibUZ1ZEVsa0xGeHVJQ0FnSUNBZ0lDQWdJRk5qYjNCbFMybHVaQzVQY21kVmJtbDBMRnh1SUNBZ0lDQWdJQ0FnSUhKbGMyOTFjbU5sTG05eVoxVnVhWFJKWkZ4dUlDQWdJQ0FnSUNBcFhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUdWbVptVmpkR2wyWlZCbGNtMXBjM05wYjI1ekxuTnZiV1VvWEc0Z0lDQWdJQ0FnSUNod1pYSnRhWE56YVc5dUtTQTlQbHh1SUNBZ0lDQWdJQ0FnSUhCbGNtMXBjM05wYjI0dWNHVnliV2x6YzJsdmJrdGxlU0E5UFQwZ2FXNXdkWFF1Y0dWeWJXbHpjMmx2Ymt0bGVTQW1KbHh1SUNBZ0lDQWdJQ0FnSUdselZHbHRaVlpoYkdsa0tHRjBMQ0J3WlhKdGFYTnphVzl1TG5OMFlYSjBjMEYwTENCd1pYSnRhWE56YVc5dUxtVjRjR2x5WlhOQmRDbGNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLSFpwYzJsaWFXeHBkSGtnUFQwOUlGSmxjMjkxY21ObFZtbHphV0pwYkdsMGVTNVVaVzVoYm5RcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdWbVptVmpkR2wyWlZCbGNtMXBjM05wYjI1eklEMGdkRzlCY25KaGVTaGNiaUFnSUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVrWVhSaFUyOTFjbU5sY3k1c2FYTjBSV1ptWldOMGFYWmxVR1Z5YldsemMybHZibk5HYjNKVFkyOXdaVDh1S0Z4dUlDQWdJQ0FnSUNBZ0lHbHVjSFYwTG5SbGJtRnVkRWxrTEZ4dUlDQWdJQ0FnSUNBZ0lGTmpiM0JsUzJsdVpDNVVaVzVoYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdhVzV3ZFhRdWRHVnVZVzUwU1dSY2JpQWdJQ0FnSUNBZ0tWeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCbFptWmxZM1JwZG1WUVpYSnRhWE56YVc5dWN5NXpiMjFsS0Z4dUlDQWdJQ0FnSUNBb2NHVnliV2x6YzJsdmJpa2dQVDVjYmlBZ0lDQWdJQ0FnSUNCd1pYSnRhWE56YVc5dUxuQmxjbTFwYzNOcGIyNUxaWGtnUFQwOUlHbHVjSFYwTG5CbGNtMXBjM05wYjI1TFpYa2dKaVpjYmlBZ0lDQWdJQ0FnSUNCcGMxUnBiV1ZXWVd4cFpDaGhkQ3dnY0dWeWJXbHpjMmx2Ymk1emRHRnlkSE5CZEN3Z2NHVnliV2x6YzJsdmJpNWxlSEJwY21WelFYUXBYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJSEpsY1hWcGNtVkJZMk5sYzNNb2FXNXdkWFE2SUVOaGJrRmpZMlZ6YzBsdWNIVjBMQ0F1TGk1aGNtZHpPaUJoYm5sYlhTazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdsbUlDZ2hLR0YzWVdsMElIUm9hWE11WTJGdVFXTmpaWE56S0dsdWNIVjBMQ0F1TGk1aGNtZHpLU2twSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCQmRYUm9iM0pwZW1GMGFXOXVSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lHQkJZMk5sYzNNZ1pHVnVhV1ZrSUdadmNpQWtlMmx1Y0hWMExuQmxjbTFwYzNOcGIyNUxaWGw5SUc5dUlDUjdhVzV3ZFhRdWNtVnpiM1Z5WTJWUWNtOTBaV04wWldSSlpDQS9QeUJ6WTI5d1pVdGxlU2hwYm5CMWRDNXpZMjl3WlV0cGJtUWdQejhnVTJOdmNHVkxhVzVrTGxKbGMyOTFjbU5sTENCcGJuQjFkQzV6WTI5d1pVbGtJRDgvSUZ3aVhDSXBmV0JjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnWVhONWJtTWdZblZwYkdSQlkyTmxjM05EYjI1MFpYaDBLRnh1SUNBZ0lIUmxibUZ1ZEVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnY0hKcGJtTnBjR0ZzU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0F2THlCbGMyeHBiblF0WkdsellXSnNaUzF1WlhoMExXeHBibVVnUUhSNWNHVnpZM0pwY0hRdFpYTnNhVzUwTDI1dkxYVnVkWE5sWkMxMllYSnpYRzRnSUNBZ0xpNHVZWEpuY3pvZ1lXNTVXMTFjYmlBZ0tUb2dVSEp2YldselpUeEJZMk5sYzNORGIyNTBaWGgwUGlCN1hHNGdJQ0FnWTI5dWMzUWdjR1Z5YldsemMybHZibk1nUFNCMGIwRnljbUY1S0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1a1lYUmhVMjkxY21ObGN5NXNhWE4wUldabVpXTjBhWFpsVUdWeWJXbHpjMmx2Ym5NL0xpaDBaVzVoYm5SSlpDd2djSEpwYm1OcGNHRnNTV1FwWEc0Z0lDQWdLVHRjYmlBZ0lDQmpiMjV6ZENCbmNtRnVkSE1nUFNCMGIwRnljbUY1S0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1a1lYUmhVMjkxY21ObGN5NXNhWE4wVUhKcGJtTnBjR0ZzUjNKaGJuUnpQeTRvZEdWdVlXNTBTV1FzSUhCeWFXNWphWEJoYkVsa0tWeHVJQ0FnSUNrN1hHNGdJQ0FnY21WMGRYSnVJR0oxYVd4a1FXTmpaWE56UTI5dWRHVjRkQ2g3WEc0Z0lDQWdJQ0IwWlc1aGJuUkpaQ3hjYmlBZ0lDQWdJSEJ5YVc1amFYQmhiRWxrTEZ4dUlDQWdJQ0FnY0dWeWJXbHpjMmx2Ym5Nc1hHNGdJQ0FnSUNCbmNtRnVkSE1zWEc0Z0lDQWdmU2s3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJpZFdsc1pFRnlZVzVuYjBOdmJuUmxlSFFvWEc0Z0lDQWdkR1Z1WVc1MFNXUTZJSE4wY21sdVp5eGNiaUFnSUNCd2NtbHVZMmx3WVd4SlpEb2djM1J5YVc1bkxGeHVJQ0FnSUhCbGNtMXBjM05wYjI1TFpYazZJSE4wY21sdVp5eGNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBFRnlZVzVuYjBGMWRHaERiMjUwWlhoMFBpQjdYRzRnSUNBZ1kyOXVjM1FnWVdOalpYTnpJRDBnWVhkaGFYUWdkR2hwY3k1aWRXbHNaRUZqWTJWemMwTnZiblJsZUhRb1hHNGdJQ0FnSUNCMFpXNWhiblJKWkN4Y2JpQWdJQ0FnSUhCeWFXNWphWEJoYkVsa0xGeHVJQ0FnSUNBZ0xpNHVZWEpuYzF4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ1lXeHNiM2RsWkU5eVoxVnVhWFJKWkhNZ1BWeHVJQ0FnSUNBZ1lXTmpaWE56TG1Gc2JHOTNaV1JQY21kVmJtbDBTV1J6UW5sUVpYSnRhWE56YVc5dVczQmxjbTFwYzNOcGIyNUxaWGxkSUQ4L0lGdGRPMXh1SUNBZ0lHTnZibk4wSUdGc2JHOTNaV1JTWlhOdmRYSmpaVWxrY3lBOUlHRmpZMlZ6Y3k1eVpYTnZkWEpqWlVkeVlXNTBjMXh1SUNBZ0lDQWdMbVpwYkhSbGNpZ29aM0poYm5RcElEMCtJR2R5WVc1MExuQmxjbTFwYzNOcGIyNUxaWGtnUFQwOUlIQmxjbTFwYzNOcGIyNUxaWGtwWEc0Z0lDQWdJQ0F1YldGd0tDaG5jbUZ1ZENrZ1BUNGdaM0poYm5RdWNtVnpiM1Z5WTJWSlpDazdYRzRnSUNBZ2NtVjBkWEp1SUdKMWFXeGtRWEpoYm1kdlEyOXVkR1Y0ZENoN1hHNGdJQ0FnSUNCMFpXNWhiblJKWkN4Y2JpQWdJQ0FnSUhCeWFXNWphWEJoYkVsa0xGeHVJQ0FnSUNBZ2NHVnliV2x6YzJsdmJrdGxlU3hjYmlBZ0lDQWdJR0ZzYkc5M1pXUlBjbWRWYm1sMFNXUnpMRnh1SUNBZ0lDQWdZV3hzYjNkbFpGSmxjMjkxY21ObFNXUnpMRnh1SUNBZ0lIMHBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdZblZwYkdSUlpISmhiblJHYVd4MFpYSW9YRzRnSUNBZ2RHVnVZVzUwU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0J3Y21sdVkybHdZV3hKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJSEJsY20xcGMzTnBiMjVMWlhrNklITjBjbWx1Wnl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEZGa2NtRnVkRUYxZEdoR2FXeDBaWEkrSUh0Y2JpQWdJQ0JqYjI1emRDQmhZMk5sYzNNZ1BTQmhkMkZwZENCMGFHbHpMbUoxYVd4a1FXTmpaWE56UTI5dWRHVjRkQ2hjYmlBZ0lDQWdJSFJsYm1GdWRFbGtMRnh1SUNBZ0lDQWdjSEpwYm1OcGNHRnNTV1FzWEc0Z0lDQWdJQ0F1TGk1aGNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCamIyNXpkQ0JoYkd4dmQyVmtUM0puVlc1cGRFbGtjeUE5WEc0Z0lDQWdJQ0JoWTJObGMzTXVZV3hzYjNkbFpFOXlaMVZ1YVhSSlpITkNlVkJsY20xcGMzTnBiMjViY0dWeWJXbHpjMmx2Ymt0bGVWMGdQejhnVzEwN1hHNGdJQ0FnWTI5dWMzUWdZV3hzYjNkbFpGSmxjMjkxY21ObFNXUnpJRDBnWVdOalpYTnpMbkpsYzI5MWNtTmxSM0poYm5SelhHNGdJQ0FnSUNBdVptbHNkR1Z5S0NobmNtRnVkQ2tnUFQ0Z1ozSmhiblF1Y0dWeWJXbHpjMmx2Ymt0bGVTQTlQVDBnY0dWeWJXbHpjMmx2Ymt0bGVTbGNiaUFnSUNBZ0lDNXRZWEFvS0dkeVlXNTBLU0E5UGlCbmNtRnVkQzV5WlhOdmRYSmpaVWxrS1R0Y2JpQWdJQ0J5WlhSMWNtNGdZblZwYkdSUlpISmhiblJHYVd4MFpYSW9lMXh1SUNBZ0lDQWdkR1Z1WVc1MFNXUXNYRzRnSUNBZ0lDQndjbWx1WTJsd1lXeEpaQ3hjYmlBZ0lDQWdJSEJsY20xcGMzTnBiMjVMWlhrc1hHNGdJQ0FnSUNCaGJHeHZkMlZrVDNKblZXNXBkRWxrY3l4Y2JpQWdJQ0FnSUdGc2JHOTNaV1JTWlhOdmRYSmpaVWxrY3l4Y2JpQWdJQ0I5S1R0Y2JpQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ2V5QjBjbUZ1YzJGamRHbHZibUZzSUgwN1hHNGlYWDA9Il19
|
|
291
|
+
//# sourceMappingURL=org-based-authorization-system.js.map
|
|
292
|
+
//# sourceMappingURL=org-based-authorization-system.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespaces/org-based-authorization-system.cjs","sourceRoot":"","sources":["namespaces/org-based-authorization-system.js"],"names":[],"mappings":";;;AAyGA,gDAQC;AACD,8CAmBC;AACD,gDAuBC;AAkCD,gBAEC;AACD,gCAEC;AApMD,yCAA2F;AA+RlF,8FA/R2C,oBAAa,OA+R3C;AA7RtB,CAAC,UAAU,aAAa;IACpB,aAAa,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACnC,aAAa,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACnC,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AACnC,CAAC,CAAC,CAAC,qBAAa,IAAI,CAAC,qBAAa,GAAG,EAAE,CAAC,CAAC,CAAC;AAE1C,CAAC,UAAU,gBAAgB;IACvB,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IACxC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACtC,gBAAgB,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;IAC5C,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;AAC5C,CAAC,CAAC,CAAC,wBAAgB,IAAI,CAAC,wBAAgB,GAAG,EAAE,CAAC,CAAC,CAAC;AAEhD,CAAC,UAAU,aAAa;IACpB,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC/B,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACjC,aAAa,CAAC,gBAAgB,CAAC,GAAG,iBAAiB,CAAC;IACpD,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACjC,aAAa,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;AACxC,CAAC,CAAC,CAAC,qBAAa,IAAI,CAAC,qBAAa,GAAG,EAAE,CAAC,CAAC,CAAC;AAE1C,CAAC,UAAU,SAAS;IAChB,SAAS,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IAC/B,SAAS,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC;IAClC,SAAS,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;AACvC,CAAC,CAAC,CAAC,iBAAS,IAAI,CAAC,iBAAS,GAAG,EAAE,CAAC,CAAC,CAAC;AAElC,CAAC,UAAU,kBAAkB;IACzB,kBAAkB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACtC,kBAAkB,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC;IACnD,kBAAkB,CAAC,cAAc,CAAC,GAAG,eAAe,CAAC;IACrD,kBAAkB,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACxC,kBAAkB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACtC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACxC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACxC,kBAAkB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC1C,kBAAkB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACtC,kBAAkB,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;IAC5C,kBAAkB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACpC,kBAAkB,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;AACpD,CAAC,CAAC,CAAC,0BAAkB,IAAI,CAAC,0BAAkB,GAAG,EAAE,CAAC,CAAC,CAAC;AAEpD,CAAC,UAAU,kBAAkB;IACzB,kBAAkB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC1C,kBAAkB,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC;IACnD,kBAAkB,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC;IAC3C,kBAAkB,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC;IACjD,kBAAkB,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AAC5C,CAAC,CAAC,CAAC,0BAAkB,IAAI,CAAC,0BAAkB,GAAG,EAAE,CAAC,CAAC,CAAC;AAEpD,CAAC,UAAU,WAAW;IAClB,WAAW,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;IACrC,WAAW,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACjC,WAAW,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACjC,WAAW,CAAC,eAAe,CAAC,GAAG,gBAAgB,CAAC;AACpD,CAAC,CAAC,CAAC,mBAAW,IAAI,CAAC,mBAAW,GAAG,EAAE,CAAC,CAAC,CAAC;AAEtC,CAAC,UAAU,kBAAkB;IACzB,kBAAkB,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACxC,kBAAkB,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;AAClD,CAAC,CAAC,CAAC,0BAAkB,IAAI,CAAC,0BAAkB,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,QAAA,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAa,CAAC,CAAC;AACpD,QAAA,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,wBAAgB,CAAC,CAAC;AAC1D,QAAA,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAa,CAAC,CAAC;AACpD,QAAA,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAS,CAAC,CAAC;AAC5C,QAAA,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,0BAAkB,CAAC,CAAC;AAC9D,QAAA,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,0BAAkB,CAAC,CAAC;AAC9D,QAAA,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAW,CAAC,CAAC;AAChD,QAAA,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,0BAAkB,CAAC,CAAC;AAC9D,QAAA,YAAY,GAAG;IACxB,MAAM,EAAE,cAAO,CAAC,IAAI;IACpB,MAAM,EAAE,cAAO,CAAC,IAAI;IACpB,QAAQ,EAAE,KAAK;CAClB,CAAC;AACW,QAAA,WAAW,GAAG;IACvB,MAAM,EAAE,cAAO,CAAC,IAAI;IACpB,MAAM,EAAE,cAAO,CAAC,IAAI;IACpB,QAAQ,EAAE,IAAI;CACjB,CAAC;AACW,QAAA,qBAAqB,GAAG;IACjC,MAAM,EAAE,cAAO,CAAC,OAAO;IACvB,MAAM,EAAE,cAAO,CAAC,OAAO;IACvB,QAAQ,EAAE,KAAK;CAClB,CAAC;AACW,QAAA,yBAAyB,GAAG;IACrC,MAAM,EAAE,cAAO,CAAC,OAAO;IACvB,MAAM,EAAE,cAAO,CAAC,IAAI;IACpB,QAAQ,EAAE,KAAK;CAClB,CAAC;AACF,SAAS,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS;IACxC,MAAM,OAAO,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;IACjC,IAAI,QAAQ,IAAI,OAAO,GAAG,QAAQ;QAC9B,OAAO,KAAK,CAAC;IACjB,IAAI,SAAS,IAAI,OAAO,GAAG,SAAS;QAChC,OAAO,KAAK,CAAC;IACjB,OAAO,IAAI,CAAC;AAChB,CAAC;AACD,SAAS,QAAQ,CAAC,SAAS,EAAE,OAAO;IAChC,OAAO,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC;AACrC,CAAC;AACD,SAAS,OAAO,CAAC,KAAK;IAClB,OAAO,KAAK,IAAI,EAAE,CAAC;AACvB,CAAC;AACD,SAAgB,kBAAkB,CAAC,OAAO;IACtC,OAAO;QACH,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,iBAAiB,EAAE,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACjD,kBAAkB,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;KACtD,CAAC;AACN,CAAC;AACD,SAAgB,iBAAiB,CAAC,OAAO;IACrC,OAAO;QACH,IAAI,EAAE;YACF;gBACI,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE;aACrC;YACD;gBACI,MAAM,EAAE;oBACJ,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,iBAAiB,EAAE,EAAE;oBACjE;wBACI,GAAG,EAAE,uBAAuB;wBAC5B,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,kBAAkB,EAAE;qBAC7C;oBACD,EAAE,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE;iBACvE;aACJ;SACJ;KACJ,CAAC;AACN,CAAC;AACD,SAAgB,kBAAkB,CAAC,OAAO;IACtC,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAC9B,MAAM,6BAA6B,GAAG,EAAE,CAAC;IACzC,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/D,kBAAkB,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACxD,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,UAAU,CAAC,SAAS,KAAK,iBAAS,CAAC,OAAO,EAAE,CAAC;YAC7C,6BAA6B,CAAC,UAAU,CAAC,aAAa,CAAC;gBACnD,6BAA6B,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAClE,6BAA6B,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACrF,CAAC;IACL,CAAC;IACD,OAAO;QACH,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,kBAAkB;QAClB,6BAA6B;QAC7B,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3C,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,aAAa,EAAE,KAAK,CAAC,aAAa;SACrC,CAAC,CAAC;KACN,CAAC;AACN,CAAC;AACD,MAAa,gBAAiB,SAAQ,mBAAY;IAC9C,YAAY,KAAK;QACb,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IACD,QAAQ,CAAC,KAAK,EAAE,IAAI;QAChB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,IAAI;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IACvC,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACrE,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,IAAI;QACxB,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;QAChC,OAAO,IAAI,CAAC,IAAI;aACX,MAAM,EAAE;aACR,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;aACvB,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;CACJ;AAhCD,4CAgCC;AACD,SAAgB,EAAE;IACd,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;AAC/B,CAAC;AACD,SAAgB,UAAU,CAAC,KAAK;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;AACxD,CAAC;AACD,MAAa,YAAY;IACrB,YAAY,WAAW,GAAG,EAAE;QACxB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IACD,6DAA6D;IAC7D,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,IAAI;QAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gCAAgC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9H,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa;gBAC7F,WAAW,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,mBAAmB;YAC1B,OAAO,KAAK,CAAC;QACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAClG,IAAI,CAAC,QAAQ;YACT,OAAO,KAAK,CAAC;QACjB,IAAI,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;YACpC,OAAO,KAAK,CAAC;QACjB,IAAI,QAAQ,CAAC,gBAAgB,KAAK,KAAK,CAAC,WAAW;YAC/C,OAAO,IAAI,CAAC;QAChB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;YACpK,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa;YAC3C,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YACjB,OAAO,IAAI,CAAC;QAChB,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QACvC,IAAI,UAAU,KAAK,0BAAkB,CAAC,OAAO;YACzC,UAAU,KAAK,0BAAkB,CAAC,WAAW,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,UAAU,KAAK,0BAAkB,CAAC,OAAO;YACzC,UAAU,KAAK,0BAAkB,CAAC,UAAU,EAAE,CAAC;YAC/C,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,gCAAgC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,iBAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YACvJ,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa;gBAC7F,WAAW,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,UAAU,KAAK,0BAAkB,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,gCAAgC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,iBAAS,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClJ,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa;gBAC7F,WAAW,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,IAAI;QAC9B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,yBAAkB,CAAC,qBAAqB,KAAK,CAAC,aAAa,OAAO,KAAK,CAAC,mBAAmB,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,IAAI,iBAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACrL,CAAC;IACL,CAAC;IACD,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,WAAW;IAC9C,6DAA6D;IAC7D,GAAG,IAAI;QACH,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;QACtG,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;QAC5F,OAAO,kBAAkB,CAAC;YACtB,QAAQ;YACR,WAAW;YACX,WAAW;YACX,MAAM;SACT,CAAC,CAAC;IACP,CAAC;IACD,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,IAAI;QAClE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7E,MAAM,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACpF,MAAM,kBAAkB,GAAG,MAAM,CAAC,cAAc;aAC3C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,KAAK,aAAa,CAAC;aACxD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACtC,OAAO,kBAAkB,CAAC;YACtB,QAAQ;YACR,WAAW;YACX,aAAa;YACb,iBAAiB;YACjB,kBAAkB;SACrB,CAAC,CAAC;IACP,CAAC;IACD,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,IAAI;QACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7E,MAAM,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACpF,MAAM,kBAAkB,GAAG,MAAM,CAAC,cAAc;aAC3C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,KAAK,aAAa,CAAC;aACxD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACtC,OAAO,iBAAiB,CAAC;YACrB,QAAQ;YACR,WAAW;YACX,aAAa;YACb,iBAAiB;YACjB,kBAAkB;SACrB,CAAC,CAAC;IACP,CAAC;CACJ;AAzFD,oCAyFC;AAED,0DAA0D"}
|