@aws-cdk/aws-bedrock-agentcore-alpha 2.235.0-alpha.0 → 2.236.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/.jsii +1114 -520
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/.warnings.jsii.js +19 -1
  4. package/README.md +146 -10
  5. package/lib/gateway/gateway-base.d.ts +2 -2
  6. package/lib/gateway/gateway-base.js +4 -4
  7. package/lib/gateway/gateway.d.ts +59 -7
  8. package/lib/gateway/gateway.js +103 -7
  9. package/lib/gateway/inbound-auth/authorizer.js +3 -3
  10. package/lib/gateway/interceptor.d.ts +137 -0
  11. package/lib/gateway/interceptor.js +143 -0
  12. package/lib/gateway/outbound-auth/api-key.js +1 -1
  13. package/lib/gateway/outbound-auth/credential-provider.js +1 -1
  14. package/lib/gateway/protocol.js +2 -2
  15. package/lib/gateway/targets/schema/api-schema.js +4 -4
  16. package/lib/gateway/targets/schema/tool-schema.js +4 -4
  17. package/lib/gateway/targets/target-base.js +1 -1
  18. package/lib/gateway/targets/target-configuration.js +5 -5
  19. package/lib/gateway/targets/target.d.ts +2 -1
  20. package/lib/gateway/targets/target.js +11 -4
  21. package/lib/index.d.ts +1 -0
  22. package/lib/index.js +2 -1
  23. package/lib/memory/memory-strategy.d.ts +19 -0
  24. package/lib/memory/memory-strategy.js +41 -2
  25. package/lib/memory/memory.d.ts +5 -4
  26. package/lib/memory/memory.js +16 -9
  27. package/lib/memory/strategies/managed-strategy.d.ts +26 -0
  28. package/lib/memory/strategies/managed-strategy.js +46 -4
  29. package/lib/memory/strategies/self-managed-strategy.js +1 -1
  30. package/lib/network/network-configuration.js +4 -4
  31. package/lib/runtime/runtime-artifact.js +1 -1
  32. package/lib/runtime/runtime-authorizer-configuration.js +1 -1
  33. package/lib/runtime/runtime-base.d.ts +2 -2
  34. package/lib/runtime/runtime-base.js +4 -4
  35. package/lib/runtime/runtime-endpoint-base.d.ts +2 -2
  36. package/lib/runtime/runtime-endpoint-base.js +4 -4
  37. package/lib/runtime/runtime-endpoint.d.ts +2 -1
  38. package/lib/runtime/runtime-endpoint.js +11 -4
  39. package/lib/runtime/runtime.d.ts +2 -1
  40. package/lib/runtime/runtime.js +11 -4
  41. package/lib/tools/browser.d.ts +5 -5
  42. package/lib/tools/browser.js +22 -14
  43. package/lib/tools/code-interpreter.d.ts +5 -5
  44. package/lib/tools/code-interpreter.js +16 -8
  45. package/package.json +19 -11
Binary file
package/.warnings.jsii.js CHANGED
@@ -22,6 +22,8 @@ function _aws_cdk_aws_bedrock_agentcore_alpha_Memory(p) {
22
22
  }
23
23
  function _aws_cdk_aws_bedrock_agentcore_alpha_OverrideConfig(p) {
24
24
  }
25
+ function _aws_cdk_aws_bedrock_agentcore_alpha_EpisodicReflectionConfiguration(p) {
26
+ }
25
27
  function _aws_cdk_aws_bedrock_agentcore_alpha_ManagedStrategyProps(p) {
26
28
  if (p == null)
27
29
  return;
@@ -31,6 +33,8 @@ function _aws_cdk_aws_bedrock_agentcore_alpha_ManagedStrategyProps(p) {
31
33
  _aws_cdk_aws_bedrock_agentcore_alpha_OverrideConfig(p.customConsolidation);
32
34
  if (!visitedObjects.has(p.customExtraction))
33
35
  _aws_cdk_aws_bedrock_agentcore_alpha_OverrideConfig(p.customExtraction);
36
+ if (!visitedObjects.has(p.reflectionConfiguration))
37
+ _aws_cdk_aws_bedrock_agentcore_alpha_EpisodicReflectionConfiguration(p.reflectionConfiguration);
34
38
  }
35
39
  finally {
36
40
  visitedObjects.delete(p);
@@ -303,6 +307,10 @@ function _aws_cdk_aws_bedrock_agentcore_alpha_GatewayProps(p) {
303
307
  _aws_cdk_aws_bedrock_agentcore_alpha_IGatewayAuthorizerConfig(p.authorizerConfiguration);
304
308
  if (!visitedObjects.has(p.exceptionLevel))
305
309
  _aws_cdk_aws_bedrock_agentcore_alpha_GatewayExceptionLevel(p.exceptionLevel);
310
+ if (p.interceptorConfigurations != null)
311
+ for (const o of p.interceptorConfigurations)
312
+ if (!visitedObjects.has(o))
313
+ _aws_cdk_aws_bedrock_agentcore_alpha_IInterceptor(o);
306
314
  if (!visitedObjects.has(p.protocolConfiguration))
307
315
  _aws_cdk_aws_bedrock_agentcore_alpha_IGatewayProtocolConfig(p.protocolConfiguration);
308
316
  }
@@ -314,6 +322,16 @@ function _aws_cdk_aws_bedrock_agentcore_alpha_GatewayAttributes(p) {
314
322
  }
315
323
  function _aws_cdk_aws_bedrock_agentcore_alpha_Gateway(p) {
316
324
  }
325
+ function _aws_cdk_aws_bedrock_agentcore_alpha_InterceptionPoint(p) {
326
+ }
327
+ function _aws_cdk_aws_bedrock_agentcore_alpha_InterceptorOptions(p) {
328
+ }
329
+ function _aws_cdk_aws_bedrock_agentcore_alpha_IInterceptor(p) {
330
+ }
331
+ function _aws_cdk_aws_bedrock_agentcore_alpha_InterceptorBindConfig(p) {
332
+ }
333
+ function _aws_cdk_aws_bedrock_agentcore_alpha_LambdaInterceptor(p) {
334
+ }
317
335
  function _aws_cdk_aws_bedrock_agentcore_alpha_IGatewayProtocolConfig(p) {
318
336
  }
319
337
  function _aws_cdk_aws_bedrock_agentcore_alpha_GatewayProtocol(p) {
@@ -604,4 +622,4 @@ class DeprecationError extends Error {
604
622
  });
605
623
  }
606
624
  }
607
- module.exports = { print, getPropertyDescriptor, DeprecationError, _aws_cdk_aws_bedrock_agentcore_alpha_IMemory, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryBase, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryProps, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_Memory, _aws_cdk_aws_bedrock_agentcore_alpha_OverrideConfig, _aws_cdk_aws_bedrock_agentcore_alpha_ManagedStrategyProps, _aws_cdk_aws_bedrock_agentcore_alpha_ManagedMemoryStrategy, _aws_cdk_aws_bedrock_agentcore_alpha_TriggerConditions, _aws_cdk_aws_bedrock_agentcore_alpha_InvocationConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_SelfManagedStrategyProps, _aws_cdk_aws_bedrock_agentcore_alpha_SelfManagedMemoryStrategy, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryStrategyType, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryStrategyCommonProps, _aws_cdk_aws_bedrock_agentcore_alpha_IMemoryStrategy, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryStrategy, _aws_cdk_aws_bedrock_agentcore_alpha_VpcConfigProps, _aws_cdk_aws_bedrock_agentcore_alpha_NetworkConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserNetworkConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterNetworkConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeNetworkConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_ProtocolType, _aws_cdk_aws_bedrock_agentcore_alpha_RequestHeaderConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_LifecycleConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_IBedrockAgentRuntime, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeBase, _aws_cdk_aws_bedrock_agentcore_alpha_AgentRuntimeAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_AgentCoreRuntime, _aws_cdk_aws_bedrock_agentcore_alpha_AgentRuntimeArtifact, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeAuthorizerConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_IRuntimeEndpoint, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeEndpointBase, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeEndpointAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeEndpointProps, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeEndpoint, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeProps, _aws_cdk_aws_bedrock_agentcore_alpha_AddEndpointOptions, _aws_cdk_aws_bedrock_agentcore_alpha_Runtime, _aws_cdk_aws_bedrock_agentcore_alpha_ICodeInterpreterCustom, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterCustomBase, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterCustomProps, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterCustomAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterCustom, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserSigning, _aws_cdk_aws_bedrock_agentcore_alpha_IBrowserCustom, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserCustomBase, _aws_cdk_aws_bedrock_agentcore_alpha_RecordingConfig, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserCustomProps, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserCustomAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserCustom, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayExceptionLevel, _aws_cdk_aws_bedrock_agentcore_alpha_IGateway, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayBase, _aws_cdk_aws_bedrock_agentcore_alpha_AddLambdaTargetOptions, _aws_cdk_aws_bedrock_agentcore_alpha_AddOpenApiTargetOptions, _aws_cdk_aws_bedrock_agentcore_alpha_AddSmithyTargetOptions, _aws_cdk_aws_bedrock_agentcore_alpha_AddMcpServerTargetOptions, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_Gateway, _aws_cdk_aws_bedrock_agentcore_alpha_IGatewayProtocolConfig, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayProtocol, _aws_cdk_aws_bedrock_agentcore_alpha_MCPProtocolVersion, _aws_cdk_aws_bedrock_agentcore_alpha_McpGatewaySearchType, _aws_cdk_aws_bedrock_agentcore_alpha_McpConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_McpProtocolConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayAuthorizerType, _aws_cdk_aws_bedrock_agentcore_alpha_IGatewayAuthorizerConfig, _aws_cdk_aws_bedrock_agentcore_alpha_CustomJwtConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_CustomJwtAuthorizer, _aws_cdk_aws_bedrock_agentcore_alpha_IamAuthorizer, _aws_cdk_aws_bedrock_agentcore_alpha_CognitoAuthorizerProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayAuthorizer, _aws_cdk_aws_bedrock_agentcore_alpha_CredentialProviderType, _aws_cdk_aws_bedrock_agentcore_alpha_ICredentialProviderConfig, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayCredentialProvider, _aws_cdk_aws_bedrock_agentcore_alpha_ApiKeyAdditionalConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_ApiKeyCredentialLocation, _aws_cdk_aws_bedrock_agentcore_alpha_ApiKeyCredentialProviderProps, _aws_cdk_aws_bedrock_agentcore_alpha_OAuthConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetProtocolType, _aws_cdk_aws_bedrock_agentcore_alpha_McpTargetType, _aws_cdk_aws_bedrock_agentcore_alpha_IGatewayTarget, _aws_cdk_aws_bedrock_agentcore_alpha_IMcpGatewayTarget, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetBase, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetCommonProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetLambdaProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetOpenApiProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetSmithyProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetMcpServerProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTarget, _aws_cdk_aws_bedrock_agentcore_alpha_TargetConfigurationConfig, _aws_cdk_aws_bedrock_agentcore_alpha_ITargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_McpTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_LambdaTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_OpenApiTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_SmithyTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_McpServerTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_ApiSchema, _aws_cdk_aws_bedrock_agentcore_alpha_AssetApiSchema, _aws_cdk_aws_bedrock_agentcore_alpha_InlineApiSchema, _aws_cdk_aws_bedrock_agentcore_alpha_S3ApiSchema, _aws_cdk_aws_bedrock_agentcore_alpha_SchemaDefinitionType, _aws_cdk_aws_bedrock_agentcore_alpha_SchemaDefinition, _aws_cdk_aws_bedrock_agentcore_alpha_ToolDefinition, _aws_cdk_aws_bedrock_agentcore_alpha_ToolSchema, _aws_cdk_aws_bedrock_agentcore_alpha_AssetToolSchema, _aws_cdk_aws_bedrock_agentcore_alpha_InlineToolSchema, _aws_cdk_aws_bedrock_agentcore_alpha_S3ToolSchema };
625
+ module.exports = { print, getPropertyDescriptor, DeprecationError, _aws_cdk_aws_bedrock_agentcore_alpha_IMemory, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryBase, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryProps, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_Memory, _aws_cdk_aws_bedrock_agentcore_alpha_OverrideConfig, _aws_cdk_aws_bedrock_agentcore_alpha_EpisodicReflectionConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_ManagedStrategyProps, _aws_cdk_aws_bedrock_agentcore_alpha_ManagedMemoryStrategy, _aws_cdk_aws_bedrock_agentcore_alpha_TriggerConditions, _aws_cdk_aws_bedrock_agentcore_alpha_InvocationConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_SelfManagedStrategyProps, _aws_cdk_aws_bedrock_agentcore_alpha_SelfManagedMemoryStrategy, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryStrategyType, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryStrategyCommonProps, _aws_cdk_aws_bedrock_agentcore_alpha_IMemoryStrategy, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryStrategy, _aws_cdk_aws_bedrock_agentcore_alpha_VpcConfigProps, _aws_cdk_aws_bedrock_agentcore_alpha_NetworkConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserNetworkConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterNetworkConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeNetworkConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_ProtocolType, _aws_cdk_aws_bedrock_agentcore_alpha_RequestHeaderConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_LifecycleConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_IBedrockAgentRuntime, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeBase, _aws_cdk_aws_bedrock_agentcore_alpha_AgentRuntimeAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_AgentCoreRuntime, _aws_cdk_aws_bedrock_agentcore_alpha_AgentRuntimeArtifact, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeAuthorizerConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_IRuntimeEndpoint, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeEndpointBase, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeEndpointAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeEndpointProps, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeEndpoint, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeProps, _aws_cdk_aws_bedrock_agentcore_alpha_AddEndpointOptions, _aws_cdk_aws_bedrock_agentcore_alpha_Runtime, _aws_cdk_aws_bedrock_agentcore_alpha_ICodeInterpreterCustom, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterCustomBase, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterCustomProps, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterCustomAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterCustom, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserSigning, _aws_cdk_aws_bedrock_agentcore_alpha_IBrowserCustom, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserCustomBase, _aws_cdk_aws_bedrock_agentcore_alpha_RecordingConfig, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserCustomProps, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserCustomAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserCustom, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayExceptionLevel, _aws_cdk_aws_bedrock_agentcore_alpha_IGateway, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayBase, _aws_cdk_aws_bedrock_agentcore_alpha_AddLambdaTargetOptions, _aws_cdk_aws_bedrock_agentcore_alpha_AddOpenApiTargetOptions, _aws_cdk_aws_bedrock_agentcore_alpha_AddSmithyTargetOptions, _aws_cdk_aws_bedrock_agentcore_alpha_AddMcpServerTargetOptions, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_Gateway, _aws_cdk_aws_bedrock_agentcore_alpha_InterceptionPoint, _aws_cdk_aws_bedrock_agentcore_alpha_InterceptorOptions, _aws_cdk_aws_bedrock_agentcore_alpha_IInterceptor, _aws_cdk_aws_bedrock_agentcore_alpha_InterceptorBindConfig, _aws_cdk_aws_bedrock_agentcore_alpha_LambdaInterceptor, _aws_cdk_aws_bedrock_agentcore_alpha_IGatewayProtocolConfig, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayProtocol, _aws_cdk_aws_bedrock_agentcore_alpha_MCPProtocolVersion, _aws_cdk_aws_bedrock_agentcore_alpha_McpGatewaySearchType, _aws_cdk_aws_bedrock_agentcore_alpha_McpConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_McpProtocolConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayAuthorizerType, _aws_cdk_aws_bedrock_agentcore_alpha_IGatewayAuthorizerConfig, _aws_cdk_aws_bedrock_agentcore_alpha_CustomJwtConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_CustomJwtAuthorizer, _aws_cdk_aws_bedrock_agentcore_alpha_IamAuthorizer, _aws_cdk_aws_bedrock_agentcore_alpha_CognitoAuthorizerProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayAuthorizer, _aws_cdk_aws_bedrock_agentcore_alpha_CredentialProviderType, _aws_cdk_aws_bedrock_agentcore_alpha_ICredentialProviderConfig, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayCredentialProvider, _aws_cdk_aws_bedrock_agentcore_alpha_ApiKeyAdditionalConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_ApiKeyCredentialLocation, _aws_cdk_aws_bedrock_agentcore_alpha_ApiKeyCredentialProviderProps, _aws_cdk_aws_bedrock_agentcore_alpha_OAuthConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetProtocolType, _aws_cdk_aws_bedrock_agentcore_alpha_McpTargetType, _aws_cdk_aws_bedrock_agentcore_alpha_IGatewayTarget, _aws_cdk_aws_bedrock_agentcore_alpha_IMcpGatewayTarget, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetBase, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetCommonProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetLambdaProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetOpenApiProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetSmithyProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetMcpServerProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTarget, _aws_cdk_aws_bedrock_agentcore_alpha_TargetConfigurationConfig, _aws_cdk_aws_bedrock_agentcore_alpha_ITargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_McpTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_LambdaTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_OpenApiTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_SmithyTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_McpServerTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_ApiSchema, _aws_cdk_aws_bedrock_agentcore_alpha_AssetApiSchema, _aws_cdk_aws_bedrock_agentcore_alpha_InlineApiSchema, _aws_cdk_aws_bedrock_agentcore_alpha_S3ApiSchema, _aws_cdk_aws_bedrock_agentcore_alpha_SchemaDefinitionType, _aws_cdk_aws_bedrock_agentcore_alpha_SchemaDefinition, _aws_cdk_aws_bedrock_agentcore_alpha_ToolDefinition, _aws_cdk_aws_bedrock_agentcore_alpha_ToolSchema, _aws_cdk_aws_bedrock_agentcore_alpha_AssetToolSchema, _aws_cdk_aws_bedrock_agentcore_alpha_InlineToolSchema, _aws_cdk_aws_bedrock_agentcore_alpha_S3ToolSchema };
package/README.md CHANGED
@@ -155,7 +155,7 @@ to production by simply updating the endpoint to point to the newer version.
155
155
 
156
156
  | Name | Type | Required | Description |
157
157
  |------|------|----------|-------------|
158
- | `runtimeName` | `string` | Yes | The name of the agent runtime. Valid characters are a-z, A-Z, 0-9, _ (underscore). Must start with a letter and can be up to 48 characters long |
158
+ | `runtimeName` | `string` | No | The name of the agent runtime. Valid characters are a-z, A-Z, 0-9, _ (underscore). Must start with a letter and can be up to 48 characters long. If not provided, a unique name will be auto-generated |
159
159
  | `agentRuntimeArtifact` | `AgentRuntimeArtifact` | Yes | The artifact configuration for the agent runtime containing the container configuration with ECR URI |
160
160
  | `executionRole` | `iam.IRole` | No | The IAM role that provides permissions for the agent runtime. If not provided, a role will be created automatically |
161
161
  | `networkConfiguration` | `NetworkConfiguration` | No | Network configuration for the agent runtime. Defaults to `RuntimeNetworkConfiguration.usingPublicNetwork()` |
@@ -171,7 +171,7 @@ to production by simply updating the endpoint to point to the newer version.
171
171
 
172
172
  | Name | Type | Required | Description |
173
173
  |------|------|----------|-------------|
174
- | `endpointName` | `string` | Yes | The name of the runtime endpoint. Valid characters are a-z, A-Z, 0-9, _ (underscore). Must start with a letter and can be up to 48 characters long |
174
+ | `endpointName` | `string` | No | The name of the runtime endpoint. Valid characters are a-z, A-Z, 0-9, _ (underscore). Must start with a letter and can be up to 48 characters long. If not provided, a unique name will be auto-generated |
175
175
  | `agentRuntimeId` | `string` | Yes | The Agent Runtime ID for this endpoint |
176
176
  | `agentRuntimeVersion` | `string` | Yes | The Agent Runtime version for this endpoint. Must be between 1 and 5 characters long.|
177
177
  | `description` | `string` | No | Optional description for the runtime endpoint |
@@ -748,7 +748,7 @@ For more information on VPC connectivity for Amazon Bedrock AgentCore Browser, p
748
748
 
749
749
  | Name | Type | Required | Description |
750
750
  |------|------|----------|-------------|
751
- | `browserCustomName` | `string` | Yes | The name of the browser. Must start with a letter and can be up to 48 characters long. Pattern: `[a-zA-Z][a-zA-Z0-9_]{0,47}` |
751
+ | `browserCustomName` | `string` | No | The name of the browser. Must start with a letter and can be up to 48 characters long. Pattern: `[a-zA-Z][a-zA-Z0-9_]{0,47}`. If not provided, a unique name will be auto-generated |
752
752
  | `description` | `string` | No | Optional description for the browser. Can have up to 200 characters |
753
753
  | `networkConfiguration` | `BrowserNetworkConfiguration` | No | Network configuration for browser. Defaults to PUBLIC network mode |
754
754
  | `recordingConfig` | `RecordingConfig` | No | Recording configuration for browser. Defaults to no recording |
@@ -959,7 +959,7 @@ For more information on VPC connectivity for Amazon Bedrock AgentCore Browser, p
959
959
 
960
960
  | Name | Type | Required | Description |
961
961
  |------|------|----------|-------------|
962
- | `codeInterpreterCustomName` | `string` | Yes | The name of the code interpreter. Must start with a letter and can be up to 48 characters long. Pattern: `[a-zA-Z][a-zA-Z0-9_]{0,47}` |
962
+ | `codeInterpreterCustomName` | `string` | No | The name of the code interpreter. Must start with a letter and can be up to 48 characters long. Pattern: `[a-zA-Z][a-zA-Z0-9_]{0,47}`. If not provided, a unique name will be auto-generated |
963
963
  | `description` | `string` | No | Optional description for the code interpreter. Can have up to 200 characters |
964
964
  | `executionRole` | `iam.IRole` | No | The IAM role that provides permissions for the code interpreter to access AWS services. A new role will be created if not provided |
965
965
  | `networkConfiguration` | `CodeInterpreterNetworkConfiguration` | No | Network configuration for code interpreter. Defaults to PUBLIC network mode |
@@ -1084,7 +1084,7 @@ The Gateway construct provides a way to create Amazon Bedrock Agent Core Gateway
1084
1084
 
1085
1085
  | Name | Type | Required | Description |
1086
1086
  |------|------|----------|-------------|
1087
- | `gatewayName` | `string` | Yes | The name of the gateway. Valid characters are a-z, A-Z, 0-9, _ (underscore) and - (hyphen). Maximum 100 characters |
1087
+ | `gatewayName` | `string` | No | The name of the gateway. Valid characters are a-z, A-Z, 0-9, _ (underscore) and - (hyphen). Maximum 100 characters. If not provided, a unique name will be auto-generated |
1088
1088
  | `description` | `string` | No | Optional description for the gateway. Maximum 200 characters |
1089
1089
  | `protocolConfiguration` | `IGatewayProtocolConfig` | No | The protocol configuration for the gateway. Defaults to MCP protocol |
1090
1090
  | `authorizerConfiguration` | `IGatewayAuthorizerConfig` | No | The authorizer configuration for the gateway. Defaults to Cognito |
@@ -1307,7 +1307,7 @@ credential provider attached enabling you to securely access targets whether the
1307
1307
 
1308
1308
  | Name | Type | Required | Description |
1309
1309
  |------|------|----------|-------------|
1310
- | `gatewayTargetName` | `string` | Yes | The name of the gateway target. Valid characters are a-z, A-Z, 0-9, _ (underscore) and - (hyphen) |
1310
+ | `gatewayTargetName` | `string` | No | The name of the gateway target. Valid characters are a-z, A-Z, 0-9, _ (underscore) and - (hyphen). If not provided, a unique name will be auto-generated |
1311
1311
  | `description` | `string` | No | Optional description for the gateway target. Maximum 200 characters |
1312
1312
  | `gateway` | `IGateway` | Yes | The gateway this target belongs to |
1313
1313
  | `targetConfiguration` | `ITargetConfiguration` | Yes | The target configuration (Lambda, OpenAPI, or Smithy). **Note:** Users typically don't create this directly. When using convenience methods like `GatewayTarget.forLambda()`, `GatewayTarget.forOpenApi()`, `GatewayTarget.forSmithy()` or the gateway's `addLambdaTarget()`, `addOpenApiTarget()`, `addSmithyTarget()` methods, this configuration is created internally for you. Only needed when using the GatewayTarget constructor directly for [advanced scenarios](#advanced-usage-direct-configuration-for-gateway-target). |
@@ -1842,6 +1842,124 @@ const target = new agentcore.GatewayTarget(this, "AdvancedTarget", {
1842
1842
 
1843
1843
  This approach gives you full control over the configuration but is typically not necessary for most use cases. The convenience methods (`GatewayTarget.forLambda()`, `GatewayTarget.forOpenApi()`, `GatewayTarget.forSmithy()`) handle all of this internally.
1844
1844
 
1845
+ ### Gateway Interceptors
1846
+
1847
+ Gateway interceptors allow you to run custom code during each gateway invocation to implement fine-grained access control, transform requests and responses, or implement custom authorization logic. A gateway can have at most one REQUEST interceptor and one RESPONSE interceptor.
1848
+
1849
+ **Interceptor Types:**
1850
+
1851
+ - **REQUEST interceptors**: Execute before the gateway calls the target. Useful for request validation, transformation, or custom authorization
1852
+ - **RESPONSE interceptors**: Execute after the target responds but before the gateway sends the response back. Useful for response transformation, filtering, or adding custom headers
1853
+
1854
+ **Security Best Practices:**
1855
+
1856
+ 1. Keep `passRequestHeaders` disabled unless absolutely necessary (default: false)
1857
+ 2. Implement idempotent Lambda functions (gateway may retry on failures)
1858
+ 3. Restrict gateway execution role to specific Lambda functions
1859
+ 4. Avoid logging sensitive information in your interceptor
1860
+
1861
+ For more information, see the [Gateway Interceptors documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-interceptors.html).
1862
+
1863
+ #### Adding Interceptors via Constructor
1864
+
1865
+ ```typescript fixture=default
1866
+ // Create Lambda functions for interceptors
1867
+ const requestInterceptorFn = new lambda.Function(this, "RequestInterceptor", {
1868
+ runtime: lambda.Runtime.PYTHON_3_12,
1869
+ handler: "index.handler",
1870
+ code: lambda.Code.fromInline(`
1871
+ def handler(event, context):
1872
+ # Validate and transform request
1873
+ return {
1874
+ "interceptorOutputVersion": "1.0",
1875
+ "mcp": {
1876
+ "transformedGatewayRequest": event["mcp"]["gatewayRequest"]
1877
+ }
1878
+ }
1879
+ `),
1880
+ });
1881
+
1882
+ const responseInterceptorFn = new lambda.Function(this, "ResponseInterceptor", {
1883
+ runtime: lambda.Runtime.PYTHON_3_12,
1884
+ handler: "index.handler",
1885
+ code: lambda.Code.fromInline(`
1886
+ def handler(event, context):
1887
+ # Filter or transform response
1888
+ return {
1889
+ "interceptorOutputVersion": "1.0",
1890
+ "mcp": {
1891
+ "transformedGatewayResponse": event["mcp"]["gatewayResponse"]
1892
+ }
1893
+ }
1894
+ `),
1895
+ });
1896
+
1897
+ // Create gateway with interceptors
1898
+ const gateway = new agentcore.Gateway(this, "MyGateway", {
1899
+ gatewayName: "my-gateway",
1900
+ interceptorConfigurations: [
1901
+ agentcore.LambdaInterceptor.forRequest(requestInterceptorFn, {
1902
+ passRequestHeaders: true // Only if you need to inspect headers
1903
+ }),
1904
+ agentcore.LambdaInterceptor.forResponse(responseInterceptorFn)
1905
+ ]
1906
+ });
1907
+ ```
1908
+
1909
+ **Automatic Permission Granting:**
1910
+
1911
+ When you add a Lambda interceptor to a gateway (either via constructor or `addInterceptor()`), the gateway's IAM role automatically receives `lambda:InvokeFunction` permission on the Lambda function. This permission grant happens internally during the bind process - you do not need to manually configure these IAM permissions.
1912
+
1913
+ #### Adding Interceptors Dynamically
1914
+
1915
+ ```typescript fixture=default
1916
+ // Create a gateway first
1917
+ const gateway = new agentcore.Gateway(this, "MyGateway", {
1918
+ gatewayName: "my-gateway",
1919
+ });
1920
+
1921
+ // Create Lambda functions for interceptors
1922
+ const requestInterceptorFn = new lambda.Function(this, "RequestInterceptor", {
1923
+ runtime: lambda.Runtime.PYTHON_3_12,
1924
+ handler: "index.handler",
1925
+ code: lambda.Code.fromInline(`
1926
+ def handler(event, context):
1927
+ # Custom request validation logic
1928
+ return {
1929
+ "interceptorOutputVersion": "1.0",
1930
+ "mcp": {
1931
+ "transformedGatewayRequest": event["mcp"]["gatewayRequest"]
1932
+ }
1933
+ }
1934
+ `),
1935
+ });
1936
+
1937
+ const responseInterceptorFn = new lambda.Function(this, "ResponseInterceptor", {
1938
+ runtime: lambda.Runtime.PYTHON_3_12,
1939
+ handler: "index.handler",
1940
+ code: lambda.Code.fromInline(`
1941
+ def handler(event, context):
1942
+ # Filter sensitive data from response
1943
+ return {
1944
+ "interceptorOutputVersion": "1.0",
1945
+ "mcp": {
1946
+ "transformedGatewayResponse": event["mcp"]["gatewayResponse"]
1947
+ }
1948
+ }
1949
+ `),
1950
+ });
1951
+
1952
+ gateway.addInterceptor(
1953
+ agentcore.LambdaInterceptor.forRequest(requestInterceptorFn, {
1954
+ passRequestHeaders: false // Default, headers not passed for security
1955
+ })
1956
+ );
1957
+
1958
+ gateway.addInterceptor(
1959
+ agentcore.LambdaInterceptor.forResponse(responseInterceptorFn)
1960
+ );
1961
+ ```
1962
+
1845
1963
  ### Gateway Target IAM Permissions
1846
1964
 
1847
1965
  The Gateway Target construct provides convenient methods for granting IAM permissions:
@@ -1901,7 +2019,7 @@ To write to long-term memory, you need to configure extraction strategies which
1901
2019
 
1902
2020
  | Name | Type | Required | Description |
1903
2021
  |------|------|----------|-------------|
1904
- | `memoryName` | `string` | Yes | The name of the memory |
2022
+ | `memoryName` | `string` | No | The name of the memory. If not provided, a unique name will be auto-generated |
1905
2023
  | `expirationDuration` | `Duration` | No | Short-term memory expiration in days (between 7 and 365). Default: 90 days |
1906
2024
  | `description` | `string` | No | Optional description for the memory. Default: no description. |
1907
2025
  | `kmsKey` | `IKey` | No | Custom KMS key to use for encryption. Default: Your data is encrypted with a key that AWS owns and manages for you |
@@ -1958,7 +2076,7 @@ You can use built-in extraction strategies for quick setup, or create custom ext
1958
2076
 
1959
2077
  ### Memory with Built-in Strategies
1960
2078
 
1961
- The library provides three built-in LTM strategies. These are default strategies for organizing and extracting memory data,
2079
+ The library provides four built-in LTM strategies. These are default strategies for organizing and extracting memory data,
1962
2080
  each optimized for specific use cases.
1963
2081
 
1964
2082
  For example: An agent helps multiple users with cloud storage setup. From these conversations,
@@ -1985,6 +2103,14 @@ Extracted memory example: User needs clear guidance on cloud storage account con
1985
2103
  - Extracts user behavior patterns from raw conversations
1986
2104
  - Namespace: `/strategies/{memoryStrategyId}/actors/{actorId}`
1987
2105
 
2106
+ 4. **Episodic Memory Strategy** (`MemoryStrategy.usingBuiltInEpisodic()`)
2107
+ Captures meaningful slices of user and system interactions, preserve them into compact records after summarizing.
2108
+ Extracted memory example: User first asked about pricing on Monday, then requested feature comparison on Tuesday, finally made purchase decision on Wednesday.
2109
+
2110
+ - Captures event sequences and temporal relationships
2111
+ - Namespace: `/strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}`
2112
+ - Reflections: `/strategy/{memoryStrategyId}/actor/{actorId}`
2113
+
1988
2114
  ```typescript fixture=default
1989
2115
  // Create memory with built-in strategies
1990
2116
  const memory = new agentcore.Memory(this, "MyMemory", {
@@ -1995,6 +2121,7 @@ const memory = new agentcore.Memory(this, "MyMemory", {
1995
2121
  agentcore.MemoryStrategy.usingBuiltInSummarization(),
1996
2122
  agentcore.MemoryStrategy.usingBuiltInSemantic(),
1997
2123
  agentcore.MemoryStrategy.usingBuiltInUserPreference(),
2124
+ agentcore.MemoryStrategy.usingBuiltInEpisodic(),
1998
2125
  ],
1999
2126
  });
2000
2127
  ```
@@ -2004,6 +2131,7 @@ The name generated for each built in memory strategy is as follows:
2004
2131
  - For Summarization: `summary_builtin_cdk001`
2005
2132
  - For Semantic:`semantic_builtin_cdk001>`
2006
2133
  - For User Preferences: `preference_builtin_cdk001`
2134
+ - For Episodic : `episodic_builtin_cdkGen0001`
2007
2135
 
2008
2136
  ### Memory with custom Strategies
2009
2137
 
@@ -2045,12 +2173,13 @@ You can customise the namespace, i.e. where the memories are stored by using the
2045
2173
  1. **Summarization Strategy** (`MemoryStrategy.usingSummarization(props)`)
2046
2174
  1. **Semantic Memory Strategy** (`MemoryStrategy.usingSemantic(props)`)
2047
2175
  1. **User Preference Strategy** (`MemoryStrategy.usingUserPreference(props)`)
2176
+ 1. **Episodic Memory Strategy** (`MemoryStrategy.usingEpisodic(props)`)
2048
2177
 
2049
2178
  ```typescript fixture=default
2050
- // Create memory with built-in strategies
2179
+ // Create memory with custom strategies
2051
2180
  const memory = new agentcore.Memory(this, "MyMemory", {
2052
2181
  memoryName: "my_memory",
2053
- description: "Memory with built-in strategies",
2182
+ description: "Memory with custom strategies",
2054
2183
  expirationDuration: cdk.Duration.days(90),
2055
2184
  memoryStrategies: [
2056
2185
  agentcore.MemoryStrategy.usingUserPreference({
@@ -2061,6 +2190,13 @@ const memory = new agentcore.Memory(this, "MyMemory", {
2061
2190
  name: "CustomerSupportSemantic",
2062
2191
  namespaces: ["support/customer/{actorId}/semantic"]
2063
2192
  }),
2193
+ agentcore.MemoryStrategy.usingEpisodic({
2194
+ name: "customerJourneyEpisodic",
2195
+ namespaces: ["/journey/customer/{actorId}/episodes"],
2196
+ reflectionConfiguration: {
2197
+ namespaces: ["/journey/customer/{actorId}/reflections"]
2198
+ }
2199
+ }),
2064
2200
  ],
2065
2201
  });
2066
2202
  ```
@@ -1,4 +1,4 @@
1
- import { IResource, Resource } from 'aws-cdk-lib';
1
+ import { IResource, Resource, ResourceProps } from 'aws-cdk-lib';
2
2
  import { DimensionsMap, Metric, MetricOptions } from 'aws-cdk-lib/aws-cloudwatch';
3
3
  import * as iam from 'aws-cdk-lib/aws-iam';
4
4
  import * as kms from 'aws-cdk-lib/aws-kms';
@@ -206,7 +206,7 @@ export declare abstract class GatewayBase extends Resource implements IGateway {
206
206
  abstract readonly statusReason?: string[];
207
207
  abstract readonly createdAt?: string;
208
208
  abstract readonly updatedAt?: string;
209
- constructor(scope: Construct, id: string);
209
+ constructor(scope: Construct, id: string, props?: ResourceProps);
210
210
  /**
211
211
  * Grants IAM actions to the IAM Principal
212
212
  *
@@ -25,9 +25,9 @@ var GatewayExceptionLevel;
25
25
  * Base Class
26
26
  *****************************************************************************/
27
27
  class GatewayBase extends aws_cdk_lib_1.Resource {
28
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayBase", version: "2.235.0-alpha.0" };
29
- constructor(scope, id) {
30
- super(scope, id);
28
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayBase", version: "2.236.0-alpha.0" };
29
+ constructor(scope, id, props = {}) {
30
+ super(scope, id, props);
31
31
  }
32
32
  // ------------------------------------------------------
33
33
  // Permission Methods
@@ -176,4 +176,4 @@ class GatewayBase extends aws_cdk_lib_1.Resource {
176
176
  }
177
177
  }
178
178
  exports.GatewayBase = GatewayBase;
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2F0ZXdheS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZ2F0ZXdheS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw2Q0FBa0Q7QUFDbEQsK0RBQXNHO0FBQ3RHLDJDQUEyQztBQUszQyxtQ0FBNEc7QUFHNUc7OytFQUUrRTtBQUMvRTs7R0FFRztBQUNILElBQVkscUJBT1g7QUFQRCxXQUFZLHFCQUFxQjtJQUMvQjs7OztPQUlHO0lBQ0gsd0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBUFcscUJBQXFCLHFDQUFyQixxQkFBcUIsUUFPaEM7QUF5TUQ7OytFQUUrRTtBQUUvRSxNQUFzQixXQUFZLFNBQVEsc0JBQVE7O0lBZ0JoRCxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQ2xCO0lBRUQseURBQXlEO0lBQ3pELHFCQUFxQjtJQUNyQix5REFBeUQ7SUFDekQ7Ozs7Ozs7T0FPRztJQUNJLEtBQUssQ0FBQyxPQUF1QixFQUFFLEdBQUcsT0FBaUI7UUFDeEQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUM5QixPQUFPLEVBQUUsT0FBTztZQUNoQixZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQy9CLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUMsQ0FBQztLQUNKO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksU0FBUyxDQUFDLE9BQXVCO1FBQ3RDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyx5QkFBaUIsQ0FBQyxDQUFDO1FBRXhFLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDaEQsT0FBTyxFQUFFLE9BQU87WUFDaEIsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ25CLE9BQU8sRUFBRSxDQUFDLEdBQUcsMEJBQWtCLENB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LENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztLQUNsRztJQUVEOzs7T0FHRztJQUNLLGVBQWUsQ0FBQyxLQUFrQjtRQUN4QyxPQUFPLElBQUksdUJBQU0sQ0FBQztZQUNoQixHQUFHLEtBQUs7WUFDUixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU07WUFDMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO1NBQzlDLENBQUMsQ0FBQztLQUNKOztBQWxMSCxrQ0FtTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUmVzb3VyY2UsIFJlc291cmNlIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgRGltZW5zaW9uc01hcCwgTWV0cmljLCBNZXRyaWNPcHRpb25zLCBNZXRyaWNQcm9wcywgU3RhdHMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbi8vIEludGVybmFsIGltcG9ydHNcbmltcG9ydCB7IElHYXRld2F5QXV0aG9yaXplckNvbmZpZyB9IGZyb20gJy4vaW5ib3VuZC1hdXRoL2F1dGhvcml6ZXInO1xuaW1wb3J0IHsgR0FURVdBWV9HRVRfUEVSTVMsIEdBVEVXQVlfTElTVF9QRVJNUywgR0FURVdBWV9NQU5BR0VfUEVSTVMsIEdBVEVXQVlfSU5WT0tFX1BFUk1TIH0gZnJvbSAnLi9wZXJtcyc7XG5pbXBvcnQgeyBJR2F0ZXdheVByb3RvY29sQ29uZmlnIH0gZnJvbSAnLi9wcm90b2NvbCc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW51bXNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogRXhjZXB0aW9uIGxldmVscyBmb3IgZ2F0ZXdheVxuICovXG5leHBvcnQgZW51bSBHYXRld2F5RXhjZXB0aW9uTGV2ZWwge1xuICAvKipcbiAgICogRGVidWcgbW9kZSBmb3IgZ3JhbnVsYXIgZXhjZXB0aW9uIG1lc3NhZ2VzLiBBbGxvd3MgdGhlIHJldHVybiBvZlxuICAgKiBzcGVjaWZpYyBlcnJvciBtZXNzYWdlcyByZWxhdGVkIHRvIHRoZSBnYXRld2F5IHRhcmdldCBjb25maWd1cmF0aW9uXG4gICAqIHRvIGhlbHAgeW91IHdpdGggZGVidWdnaW5nLlxuICAgKi9cbiAgREVCVUcgPSAnREVCVUcnLFxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJmYWNlXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIEludGVyZmFjZSBmb3IgR2F0ZXdheSByZXNvdXJjZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJR2F0ZXdheSBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBnYXRld2F5IHJlc291cmNlXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXlBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSBnYXRld2F5XG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXlJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZ2F0ZXdheVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgdGhhdCBwcm92aWRlcyBwZXJtaXNzaW9ucyBmb3IgdGhlIGdhdGV3YXkgdG8gYWNjZXNzIEFXUyBzZXJ2aWNlc1xuICAgKi9cbiAgcmVhZG9ubHkgcm9sZTogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIGdhdGV3YXlcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvdG9jb2wgY29uZmlndXJhdGlvbiBmb3IgdGhlIGdhdGV3YXlcbiAgICovXG4gIHJlYWRvbmx5IHByb3RvY29sQ29uZmlndXJhdGlvbjogSUdhdGV3YXlQcm90b2NvbENvbmZpZztcblxuICAvKipcbiAgICogVGhlIGF1dGhvcml6ZXIgY29uZmlndXJhdGlvbiBmb3IgdGhlIGdhdGV3YXlcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcml6ZXJDb25maWd1cmF0aW9uOiBJR2F0ZXdheUF1dGhvcml6ZXJDb25maWc7XG5cbiAgLyoqXG4gICAqIFRoZSBleGNlcHRpb24gbGV2ZWwgZm9yIHRoZSBnYXRld2F5XG4gICAqL1xuICByZWFkb25seSBleGNlcHRpb25MZXZlbD86IEdhdGV3YXlFeGNlcHRpb25MZXZlbDtcblxuICAvKipcbiAgICogVGhlIEtNUyBrZXkgdXNlZCBmb3IgZW5jcnlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkga21zS2V5Pzoga21zLklLZXk7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgZW5kcG9pbnQgZm9yIHRoZSBnYXRld2F5XG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXlVcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgb2YgdGhlIGdhdGV3YXlcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdHVzIHJlYXNvbnMgZm9yIHRoZSBnYXRld2F5LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBzdGF0dXNSZWFzb24/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGltZXN0YW1wIHdoZW4gdGhlIGdhdGV3YXkgd2FzIGNyZWF0ZWRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaW1lc3RhbXAgd2hlbiB0aGUgZ2F0ZXdheSB3YXMgbGFzdCB1cGRhdGVkXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZWRBdD86IHN0cmluZztcblxuICAvKipcbiAgICogR3JhbnRzIElBTSBhY3Rpb25zIHRvIHRoZSBJQU0gUHJpbmNpcGFsXG4gICAqL1xuICBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50cyBgR2V0YCBhbmQgYExpc3RgIGFjdGlvbnMgb24gdGhlIEdhdGV3YXlcbiAgICovXG4gIGdyYW50UmVhZChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcblxuICAvKipcbiAgICogR3JhbnRzIGBDcmVhdGVgLCBgVXBkYXRlYCwgYW5kIGBEZWxldGVgIGFjdGlvbnMgb24gdGhlIEdhdGV3YXlcbiAgICovXG4gIGdyYW50TWFuYWdlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBpbnZva2UgdGhpcyBHYXRld2F5XG4gICAqL1xuICBncmFudEludm9rZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTWV0cmljc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZ2l2ZW4gbmFtZWQgbWV0cmljIGZvciB0aGlzIGdhdGV3YXkuXG4gICAqXG4gICAqIEBwYXJhbSBtZXRyaWNOYW1lIFRoZSBuYW1lIG9mIHRoZSBtZXRyaWNcbiAgICogQHBhcmFtIGRpbWVuc2lvbnMgQWRkaXRpb25hbCBkaW1lbnNpb25zIGZvciB0aGUgbWV0cmljXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKi9cbiAgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgZGltZW5zaW9uczogRGltZW5zaW9uc01hcCwgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgdG90YWwgbnVtYmVyIG9mIGludm9jYXRpb25zIGZvciB0aGlzIGdhdGV3YXkuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIHRyYWNrcyBhbGwgc3VjY2Vzc2Z1bCBpbnZvY2F0aW9ucyBvZiB0aGUgZ2F0ZXdheS5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIE9wdGlvbmFsIG1ldHJpYyBjb25maWd1cmF0aW9uXG4gICAqIEBkZWZhdWx0IC0gU3VtIHN0YXRpc3RpYyBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljSW52b2NhdGlvbnMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIHRocm90dGxlZCByZXF1ZXN0cyAoNDI5IHN0YXR1cyBjb2RlKSBmb3IgdGhpcyBnYXRld2F5LlxuICAgKlxuICAgKiBUaGlzIG1ldHJpYyBoZWxwcyBpZGVudGlmeSB3aGVuIHRoZSBnYXRld2F5IGlzIHJhdGUgbGltaXRpbmcgcmVxdWVzdHMuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKiBAZGVmYXVsdCAtIFN1bSBzdGF0aXN0aWMgb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY1Rocm90dGxlcyhwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2Ygc3lzdGVtIGVycm9ycyAoNXh4IHN0YXR1cyBjb2RlKSBmb3IgdGhpcyBnYXRld2F5LlxuICAgKlxuICAgKiBUaGlzIG1ldHJpYyB0cmFja3MgaW50ZXJuYWwgc2VydmVyIGVycm9ycyBhbmQgc3lzdGVtIGZhaWx1cmVzLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgbWV0cmljIGNvbmZpZ3VyYXRpb25cbiAgICogQGRlZmF1bHQgLSBTdW0gc3RhdGlzdGljIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNTeXN0ZW1FcnJvcnMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIHVzZXIgZXJyb3JzICg0eHggc3RhdHVzIGNvZGUsIGV4Y2x1ZGluZyA0MjkpIGZvciB0aGlzIGdhdGV3YXkuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIHRyYWNrcyBjbGllbnQgZXJyb3JzIGxpa2UgYmFkIHJlcXVlc3RzLCB1bmF1dGhvcml6ZWQgYWNjZXNzLCBldGMuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKiBAZGVmYXVsdCAtIFN1bSBzdGF0aXN0aWMgb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY1VzZXJFcnJvcnMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgbWVhc3VyaW5nIHRoZSBsYXRlbmN5IG9mIHJlcXVlc3RzIGZvciB0aGlzIGdhdGV3YXkuXG4gICAqXG4gICAqIFRoZSBsYXRlbmN5IG1ldHJpYyByZXByZXNlbnRzIHRoZSB0aW1lIGVsYXBzZWQgYmV0d2VlbiB3aGVuIHRoZSBzZXJ2aWNlIHJlY2VpdmVzXG4gICAqIHRoZSByZXF1ZXN0IGFuZCB3aGVuIGl0IGJlZ2lucyBzZW5kaW5nIHRoZSBmaXJzdCByZXNwb25zZSB0b2tlbi5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIE9wdGlvbmFsIG1ldHJpYyBjb25maWd1cmF0aW9uXG4gICAqIEBkZWZhdWx0IC0gQXZlcmFnZSBzdGF0aXN0aWMgb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY0xhdGVuY3kocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgbWVhc3VyaW5nIHRoZSBkdXJhdGlvbiBvZiByZXF1ZXN0cyBmb3IgdGhpcyBnYXRld2F5LlxuICAgKlxuICAgKiBUaGUgZHVyYXRpb24gbWV0cmljIHJlcHJlc2VudHMgdGhlIHRvdGFsIHRpbWUgZWxhcHNlZCBiZXR3ZWVuIHJlY2VpdmluZyB0aGUgcmVxdWVzdFxuICAgKiBhbmQgc2VuZGluZyB0aGUgZmluYWwgcmVzcG9uc2UgdG9rZW4sIHJlcHJlc2VudGluZyBjb21wbGV0ZSBlbmQtdG8tZW5kIHByb2Nlc3NpbmcgdGltZS5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIE9wdGlvbmFsIG1ldHJpYyBjb25maWd1cmF0aW9uXG4gICAqIEBkZWZhdWx0IC0gQXZlcmFnZSBzdGF0aXN0aWMgb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY0R1cmF0aW9uKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIG1lYXN1cmluZyB0aGUgdGFyZ2V0IGV4ZWN1dGlvbiB0aW1lIGZvciB0aGlzIGdhdGV3YXkuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIGhlbHBzIGRldGVybWluZSB0aGUgY29udHJpYnV0aW9uIG9mIHRoZSB0YXJnZXQgKExhbWJkYSwgT3BlbkFQSSwgZXRjLilcbiAgICogdG8gdGhlIHRvdGFsIGxhdGVuY3kuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKiBAZGVmYXVsdCAtIEF2ZXJhZ2Ugc3RhdGlzdGljIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNUYXJnZXRFeGVjdXRpb25UaW1lKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiByZXF1ZXN0cyBzZXJ2ZWQgYnkgZWFjaCB0YXJnZXQgdHlwZSBmb3IgdGhpcyBnYXRld2F5LlxuICAgKlxuICAgKiBAcGFyYW0gdGFyZ2V0VHlwZSBUaGUgdHlwZSBvZiB0YXJnZXQgKGUuZy4sICdMYW1iZGEnLCAnT3BlbkFQSScsICdTbWl0aHknKVxuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgbWV0cmljIGNvbmZpZ3VyYXRpb25cbiAgICogQGRlZmF1bHQgLSBTdW0gc3RhdGlzdGljIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNUYXJnZXRUeXBlKHRhcmdldFR5cGU6IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFzZSBDbGFzc1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2F0ZXdheUJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElHYXRld2F5IHtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGdhdGV3YXlBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGdhdGV3YXlJZDogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBwcm90b2NvbENvbmZpZ3VyYXRpb246IElHYXRld2F5UHJvdG9jb2xDb25maWc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBhdXRob3JpemVyQ29uZmlndXJhdGlvbjogSUdhdGV3YXlBdXRob3JpemVyQ29uZmlnO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZXhjZXB0aW9uTGV2ZWw/OiBHYXRld2F5RXhjZXB0aW9uTGV2ZWw7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHJvbGU6IGlhbS5JUm9sZTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGdhdGV3YXlVcmw/OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBzdGF0dXM/OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBzdGF0dXNSZWFzb24/OiBzdHJpbmdbXTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHVwZGF0ZWRBdD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBQZXJtaXNzaW9uIE1ldGhvZHNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8qKlxuICAgKiBHcmFudHMgSUFNIGFjdGlvbnMgdG8gdGhlIElBTSBQcmluY2lwYWxcbiAgICpcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIGFjdGlvbnMgVGhlIGFjdGlvbnMgdG8gZ3JhbnRcbiAgICovXG4gIHB1YmxpYyBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZTogZ3JhbnRlZSxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMuZ2F0ZXdheUFybl0sXG4gICAgICBhY3Rpb25zOiBhY3Rpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBgR2V0YCBhbmQgYExpc3RgIGFjdGlvbnMgb24gdGhlIEdhdGV3YXlcbiAgICpcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgcmVhZCBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgY29uc3QgcmVzb3VyY2VTcGVjaWZpY0dyYW50ID0gdGhpcy5ncmFudChncmFudGVlLCAuLi5HQVRFV0FZX0dFVF9QRVJNUyk7XG5cbiAgICBjb25zdCBhbGxSZXNvdXJjZUdyYW50ID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWU6IGdyYW50ZWUsXG4gICAgICByZXNvdXJjZUFybnM6IFsnKiddLFxuICAgICAgYWN0aW9uczogWy4uLkdBVEVXQVlfTElTVF9QRVJNU10sXG4gICAgfSk7XG4gICAgLy8gUmV0dXJuIGNvbWJpbmVkIGdyYW50XG4gICAgcmV0dXJuIHJlc291cmNlU3BlY2lmaWNHcmFudC5jb21iaW5lKGFsbFJlc291cmNlR3JhbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBgQ3JlYXRlYCwgYFVwZGF0ZWAsIGFuZCBgRGVsZXRlYCBhY3Rpb25zIG9uIHRoZSBHYXRld2F5XG4gICAqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IG1hbmFnZSBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgcHVibGljIGdyYW50TWFuYWdlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChncmFudGVlLCAuLi5HQVRFV0FZX01BTkFHRV9QRVJNUyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gaW52b2tlIHRoaXMgR2F0ZXdheVxuICAgKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCB0byBncmFudCBpbnZva2UgcGVybWlzc2lvbnMgdG9cbiAgICovXG4gIHB1YmxpYyBncmFudEludm9rZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoZ3JhbnRlZSwgLi4uR0FURVdBWV9JTlZPS0VfUEVSTVMpO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE1ldHJpYyBNZXRob2RzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgZm9yIHRoaXMgZ2F0ZXdheS5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhlIG1ldHJpYyB3aWxsIGJlIGNhbGN1bGF0ZWQgYXMgYSBzdW0gb3ZlciBhIHBlcmlvZCBvZiA1IG1pbnV0ZXMuXG4gICAqIFlvdSBjYW4gY3VzdG9taXplIHRoaXMgYnkgdXNpbmcgdGhlIGBzdGF0aXN0aWNgIGFuZCBgcGVyaW9kYCBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0cmljTmFtZSBUaGUgbmFtZSBvZiB0aGUgbWV0cmljXG4gICAqIEBwYXJhbSBkaW1lbnNpb25zIEFkZGl0aW9uYWwgZGltZW5zaW9ucyBmb3IgdGhlIG1ldHJpY1xuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgbWV0cmljIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBkaW1lbnNpb25zOiBEaW1lbnNpb25zTWFwLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIGNvbnN0IG1ldHJpY1Byb3BzOiBNZXRyaWNQcm9wcyA9IHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9CZWRyb2NrLUFnZW50Q29yZScsXG4gICAgICBtZXRyaWNOYW1lLFxuICAgICAgZGltZW5zaW9uc01hcDogeyAuLi5kaW1lbnNpb25zLCBSZXNvdXJjZTogdGhpcy5nYXRld2F5QXJuIH0sXG4gICAgICAuLi5wcm9wcyxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyZU1ldHJpYyhtZXRyaWNQcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIHRvdGFsIG51bWJlciBvZiBpbnZvY2F0aW9ucyBmb3IgdGhpcyBnYXRld2F5LlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0ludm9jYXRpb25zKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdJbnZvY2F0aW9ucycsIHt9LCB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIHRocm90dGxlZCByZXF1ZXN0cyAoNDI5IHN0YXR1cyBjb2RlKSBmb3IgdGhpcyBnYXRld2F5LlxuICAgKi9cbiAgcHVibGljIG1ldHJpY1Rocm90dGxlcyhwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnVGhyb3R0bGVzJywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2Ygc3lzdGVtIGVycm9ycyAoNXh4IHN0YXR1cyBjb2RlKSBmb3IgdGhpcyBnYXRld2F5LlxuICAgKi9cbiAgcHVibGljIG1ldHJpY1N5c3RlbUVycm9ycyhwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnU3lzdGVtRXJyb3JzJywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgdXNlciBlcnJvcnMgKDR4eCBzdGF0dXMgY29kZSwgZXhjbHVkaW5nIDQyOSkgZm9yIHRoaXMgZ2F0ZXdheS5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNVc2VyRXJyb3JzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdVc2VyRXJyb3JzJywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBtZWFzdXJpbmcgdGhlIGxhdGVuY3kgb2YgcmVxdWVzdHMgZm9yIHRoaXMgZ2F0ZXdheS5cbiAgICpcbiAgICogVGhlIGxhdGVuY3kgbWV0cmljIHJlcHJlc2VudHMgdGhlIHRpbWUgZWxhcHNlZCBiZXR3ZWVuIHdoZW4gdGhlIHNlcnZpY2UgcmVjZWl2ZXNcbiAgICogdGhlIHJlcXVlc3QgYW5kIHdoZW4gaXQgYmVnaW5zIHNlbmRpbmcgdGhlIGZpcnN0IHJlc3BvbnNlIHRva2VuLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0xhdGVuY3kocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0xhdGVuY3knLCB7fSwgeyBzdGF0aXN0aWM6IFN0YXRzLkFWRVJBR0UsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBtZWFzdXJpbmcgdGhlIGR1cmF0aW9uIG9mIHJlcXVlc3RzIGZvciB0aGlzIGdhdGV3YXkuXG4gICAqXG4gICAqIFRoZSBkdXJhdGlvbiBtZXRyaWMgcmVwcmVzZW50cyB0aGUgdG90YWwgdGltZSBlbGFwc2VkIGJldHdlZW4gcmVjZWl2aW5nIHRoZSByZXF1ZXN0XG4gICAqIGFuZCBzZW5kaW5nIHRoZSBmaW5hbCByZXNwb25zZSB0b2tlbiwgcmVwcmVzZW50aW5nIGNvbXBsZXRlIGVuZC10by1lbmQgcHJvY2Vzc2luZyB0aW1lLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0R1cmF0aW9uKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdEdXJhdGlvbicsIHt9LCB7IHN0YXRpc3RpYzogU3RhdHMuQVZFUkFHRSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIG1lYXN1cmluZyB0aGUgdGFyZ2V0IGV4ZWN1dGlvbiB0aW1lIGZvciB0aGlzIGdhdGV3YXkuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIGhlbHBzIGRldGVybWluZSB0aGUgY29udHJpYnV0aW9uIG9mIHRoZSB0YXJnZXQgKExhbWJkYSwgT3BlbkFQSSwgZXRjLilcbiAgICogdG8gdGhlIHRvdGFsIGxhdGVuY3kuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljVGFyZ2V0RXhlY3V0aW9uVGltZShwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnVGFyZ2V0RXhlY3V0aW9uVGltZScsIHt9LCB7IHN0YXRpc3RpYzogU3RhdHMuQVZFUkFHRSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiByZXF1ZXN0cyBzZXJ2ZWQgYnkgZWFjaCB0YXJnZXQgdHlwZSBmb3IgdGhpcyBnYXRld2F5LlxuICAgKi9cbiAgcHVibGljIG1ldHJpY1RhcmdldFR5cGUodGFyZ2V0VHlwZTogc3RyaW5nLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnVGFyZ2V0VHlwZScsIHsgVGFyZ2V0VHlwZTogdGFyZ2V0VHlwZSB9LCB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcm5hbCBtZXRob2QgdG8gY3JlYXRlIGEgbWV0cmljLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgY29uZmlndXJlTWV0cmljKHByb3BzOiBNZXRyaWNQcm9wcykge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcmVnaW9uOiBwcm9wcz8ucmVnaW9uID8/IHRoaXMuc3RhY2sucmVnaW9uLFxuICAgICAgYWNjb3VudDogcHJvcHM/LmFjY291bnQgPz8gdGhpcy5zdGFjay5hY2NvdW50LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2F0ZXdheS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZ2F0ZXdheS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw2Q0FBaUU7QUFDakUsK0RBQXNHO0FBQ3RHLDJDQUEyQztBQUszQyxtQ0FBNEc7QUFHNUc7OytFQUUrRTtBQUMvRTs7R0FFRztBQUNILElBQVkscUJBT1g7QUFQRCxXQUFZLHFCQUFxQjtJQUMvQjs7OztPQUlHO0lBQ0gsd0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBUFcscUJBQXFCLHFDQUFyQixxQkFBcUIsUUFPaEM7QUF5TUQ7OytFQUUrRTtBQUUvRSxNQUFzQixXQUFZLFNBQVEsc0JBQVE7O0lBZ0JoRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQXVCLEVBQUU7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDekI7SUFFRCx5REFBeUQ7SUFDekQscUJBQXFCO0lBQ3JCLHlEQUF5RDtJQUN6RDs7Ozs7OztPQU9HO0lBQ0ksS0FBSyxDQUFDLE9BQXVCLEVBQUUsR0FBRyxPQUFpQjtRQUN4RCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQzlCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDL0IsT0FBTyxFQUFFLE9BQU87U0FDakIsQ0FBQyxDQUFDO0tBQ0o7SUFFRDs7Ozs7O09BTUc7SUFDSSxTQUFTLENBQUMsT0FBdUI7UUFDdEMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLHlCQUFpQixDQUFDLENBQUM7UUFFeEUsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUNoRCxPQUFPLEVBQUUsT0FBTztZQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDbkIsT0FB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LEVBQUUsRUFBRSxTQUFTLEVBQUUsc0JBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQ2xHO0lBRUQ7OztPQUdHO0lBQ0ssZUFBZSxDQUFDLEtBQWtCO1FBQ3hDLE9BQU8sSUFBSSx1QkFBTSxDQUFDO1lBQ2hCLEdBQUcsS0FBSztZQUNSLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtZQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87U0FDOUMsQ0FBQyxDQUFDO0tBQ0o7O0FBbExILGtDQW1MQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSZXNvdXJjZSwgUmVzb3VyY2UsIFJlc291cmNlUHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBEaW1lbnNpb25zTWFwLCBNZXRyaWMsIE1ldHJpY09wdGlvbnMsIE1ldHJpY1Byb3BzLCBTdGF0cyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuLy8gSW50ZXJuYWwgaW1wb3J0c1xuaW1wb3J0IHsgSUdhdGV3YXlBdXRob3JpemVyQ29uZmlnIH0gZnJvbSAnLi9pbmJvdW5kLWF1dGgvYXV0aG9yaXplcic7XG5pbXBvcnQgeyBHQVRFV0FZX0dFVF9QRVJNUywgR0FURVdBWV9MSVNUX1BFUk1TLCBHQVRFV0FZX01BTkFHRV9QRVJNUywgR0FURVdBWV9JTlZPS0VfUEVSTVMgfSBmcm9tICcuL3Blcm1zJztcbmltcG9ydCB7IElHYXRld2F5UHJvdG9jb2xDb25maWcgfSBmcm9tICcuL3Byb3RvY29sJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbnVtc1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqXG4gKiBFeGNlcHRpb24gbGV2ZWxzIGZvciBnYXRld2F5XG4gKi9cbmV4cG9ydCBlbnVtIEdhdGV3YXlFeGNlcHRpb25MZXZlbCB7XG4gIC8qKlxuICAgKiBEZWJ1ZyBtb2RlIGZvciBncmFudWxhciBleGNlcHRpb24gbWVzc2FnZXMuIEFsbG93cyB0aGUgcmV0dXJuIG9mXG4gICAqIHNwZWNpZmljIGVycm9yIG1lc3NhZ2VzIHJlbGF0ZWQgdG8gdGhlIGdhdGV3YXkgdGFyZ2V0IGNvbmZpZ3VyYXRpb25cbiAgICogdG8gaGVscCB5b3Ugd2l0aCBkZWJ1Z2dpbmcuXG4gICAqL1xuICBERUJVRyA9ICdERUJVRycsXG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmZhY2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogSW50ZXJmYWNlIGZvciBHYXRld2F5IHJlc291cmNlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElHYXRld2F5IGV4dGVuZHMgSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGdhdGV3YXkgcmVzb3VyY2VcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaWQgb2YgdGhlIGdhdGV3YXlcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBnYXRld2F5XG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSB0aGF0IHByb3ZpZGVzIHBlcm1pc3Npb25zIGZvciB0aGUgZ2F0ZXdheSB0byBhY2Nlc3MgQVdTIHNlcnZpY2VzXG4gICAqL1xuICByZWFkb25seSByb2xlOiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgZ2F0ZXdheVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm90b2NvbCBjb25maWd1cmF0aW9uIGZvciB0aGUgZ2F0ZXdheVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdG9jb2xDb25maWd1cmF0aW9uOiBJR2F0ZXdheVByb3RvY29sQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBUaGUgYXV0aG9yaXplciBjb25maWd1cmF0aW9uIGZvciB0aGUgZ2F0ZXdheVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXplckNvbmZpZ3VyYXRpb246IElHYXRld2F5QXV0aG9yaXplckNvbmZpZztcblxuICAvKipcbiAgICogVGhlIGV4Y2VwdGlvbiBsZXZlbCBmb3IgdGhlIGdhdGV3YXlcbiAgICovXG4gIHJlYWRvbmx5IGV4Y2VwdGlvbkxldmVsPzogR2F0ZXdheUV4Y2VwdGlvbkxldmVsO1xuXG4gIC8qKlxuICAgKiBUaGUgS01TIGtleSB1c2VkIGZvciBlbmNyeXB0aW9uXG4gICAqL1xuICByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleTtcblxuICAvKipcbiAgICogVGhlIFVSTCBlbmRwb2ludCBmb3IgdGhlIGdhdGV3YXlcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheVVybD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0YXR1cyBvZiB0aGUgZ2F0ZXdheVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgcmVhc29ucyBmb3IgdGhlIGdhdGV3YXkuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHN0YXR1c1JlYXNvbj86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaW1lc3RhbXAgd2hlbiB0aGUgZ2F0ZXdheSB3YXMgY3JlYXRlZFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRpbWVzdGFtcCB3aGVuIHRoZSBnYXRld2F5IHdhcyBsYXN0IHVwZGF0ZWRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgSUFNIGFjdGlvbnMgdG8gdGhlIElBTSBQcmluY2lwYWxcbiAgICovXG4gIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudDtcblxuICAvKipcbiAgICogR3JhbnRzIGBHZXRgIGFuZCBgTGlzdGAgYWN0aW9ucyBvbiB0aGUgR2F0ZXdheVxuICAgKi9cbiAgZ3JhbnRSZWFkKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudHMgYENyZWF0ZWAsIGBVcGRhdGVgLCBhbmQgYERlbGV0ZWAgYWN0aW9ucyBvbiB0aGUgR2F0ZXdheVxuICAgKi9cbiAgZ3JhbnRNYW5hZ2UoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGludm9rZSB0aGlzIEdhdGV3YXlcbiAgICovXG4gIGdyYW50SW52b2tlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBNZXRyaWNzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgZm9yIHRoaXMgZ2F0ZXdheS5cbiAgICpcbiAgICogQHBhcmFtIG1ldHJpY05hbWUgVGhlIG5hbWUgb2YgdGhlIG1ldHJpY1xuICAgKiBAcGFyYW0gZGltZW5zaW9ucyBBZGRpdGlvbmFsIGRpbWVuc2lvbnMgZm9yIHRoZSBtZXRyaWNcbiAgICogQHBhcmFtIHByb3BzIE9wdGlvbmFsIG1ldHJpYyBjb25maWd1cmF0aW9uXG4gICAqL1xuICBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBkaW1lbnNpb25zOiBEaW1lbnNpb25zTWFwLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSB0b3RhbCBudW1iZXIgb2YgaW52b2NhdGlvbnMgZm9yIHRoaXMgZ2F0ZXdheS5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgdHJhY2tzIGFsbCBzdWNjZXNzZnVsIGludm9jYXRpb25zIG9mIHRoZSBnYXRld2F5LlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgbWV0cmljIGNvbmZpZ3VyYXRpb25cbiAgICogQGRlZmF1bHQgLSBTdW0gc3RhdGlzdGljIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNJbnZvY2F0aW9ucyhwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgdGhyb3R0bGVkIHJlcXVlc3RzICg0Mjkgc3RhdHVzIGNvZGUpIGZvciB0aGlzIGdhdGV3YXkuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIGhlbHBzIGlkZW50aWZ5IHdoZW4gdGhlIGdhdGV3YXkgaXMgcmF0ZSBsaW1pdGluZyByZXF1ZXN0cy5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIE9wdGlvbmFsIG1ldHJpYyBjb25maWd1cmF0aW9uXG4gICAqIEBkZWZhdWx0IC0gU3VtIHN0YXRpc3RpYyBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljVGhyb3R0bGVzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBzeXN0ZW0gZXJyb3JzICg1eHggc3RhdHVzIGNvZGUpIGZvciB0aGlzIGdhdGV3YXkuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIHRyYWNrcyBpbnRlcm5hbCBzZXJ2ZXIgZXJyb3JzIGFuZCBzeXN0ZW0gZmFpbHVyZXMuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKiBAZGVmYXVsdCAtIFN1bSBzdGF0aXN0aWMgb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY1N5c3RlbUVycm9ycyhwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgdXNlciBlcnJvcnMgKDR4eCBzdGF0dXMgY29kZSwgZXhjbHVkaW5nIDQyOSkgZm9yIHRoaXMgZ2F0ZXdheS5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgdHJhY2tzIGNsaWVudCBlcnJvcnMgbGlrZSBiYWQgcmVxdWVzdHMsIHVuYXV0aG9yaXplZCBhY2Nlc3MsIGV0Yy5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIE9wdGlvbmFsIG1ldHJpYyBjb25maWd1cmF0aW9uXG4gICAqIEBkZWZhdWx0IC0gU3VtIHN0YXRpc3RpYyBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljVXNlckVycm9ycyhwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBtZWFzdXJpbmcgdGhlIGxhdGVuY3kgb2YgcmVxdWVzdHMgZm9yIHRoaXMgZ2F0ZXdheS5cbiAgICpcbiAgICogVGhlIGxhdGVuY3kgbWV0cmljIHJlcHJlc2VudHMgdGhlIHRpbWUgZWxhcHNlZCBiZXR3ZWVuIHdoZW4gdGhlIHNlcnZpY2UgcmVjZWl2ZXNcbiAgICogdGhlIHJlcXVlc3QgYW5kIHdoZW4gaXQgYmVnaW5zIHNlbmRpbmcgdGhlIGZpcnN0IHJlc3BvbnNlIHRva2VuLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgbWV0cmljIGNvbmZpZ3VyYXRpb25cbiAgICogQGRlZmF1bHQgLSBBdmVyYWdlIHN0YXRpc3RpYyBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljTGF0ZW5jeShwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBtZWFzdXJpbmcgdGhlIGR1cmF0aW9uIG9mIHJlcXVlc3RzIGZvciB0aGlzIGdhdGV3YXkuXG4gICAqXG4gICAqIFRoZSBkdXJhdGlvbiBtZXRyaWMgcmVwcmVzZW50cyB0aGUgdG90YWwgdGltZSBlbGFwc2VkIGJldHdlZW4gcmVjZWl2aW5nIHRoZSByZXF1ZXN0XG4gICAqIGFuZCBzZW5kaW5nIHRoZSBmaW5hbCByZXNwb25zZSB0b2tlbiwgcmVwcmVzZW50aW5nIGNvbXBsZXRlIGVuZC10by1lbmQgcHJvY2Vzc2luZyB0aW1lLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgbWV0cmljIGNvbmZpZ3VyYXRpb25cbiAgICogQGRlZmF1bHQgLSBBdmVyYWdlIHN0YXRpc3RpYyBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljRHVyYXRpb24ocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgbWVhc3VyaW5nIHRoZSB0YXJnZXQgZXhlY3V0aW9uIHRpbWUgZm9yIHRoaXMgZ2F0ZXdheS5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgaGVscHMgZGV0ZXJtaW5lIHRoZSBjb250cmlidXRpb24gb2YgdGhlIHRhcmdldCAoTGFtYmRhLCBPcGVuQVBJLCBldGMuKVxuICAgKiB0byB0aGUgdG90YWwgbGF0ZW5jeS5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIE9wdGlvbmFsIG1ldHJpYyBjb25maWd1cmF0aW9uXG4gICAqIEBkZWZhdWx0IC0gQXZlcmFnZSBzdGF0aXN0aWMgb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY1RhcmdldEV4ZWN1dGlvblRpbWUocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIHJlcXVlc3RzIHNlcnZlZCBieSBlYWNoIHRhcmdldCB0eXBlIGZvciB0aGlzIGdhdGV3YXkuXG4gICAqXG4gICAqIEBwYXJhbSB0YXJnZXRUeXBlIFRoZSB0eXBlIG9mIHRhcmdldCAoZS5nLiwgJ0xhbWJkYScsICdPcGVuQVBJJywgJ1NtaXRoeScpXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKiBAZGVmYXVsdCAtIFN1bSBzdGF0aXN0aWMgb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY1RhcmdldFR5cGUodGFyZ2V0VHlwZTogc3RyaW5nLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXNlIENsYXNzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHYXRld2F5QmFzZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUdhdGV3YXkge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZ2F0ZXdheUFybjogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZ2F0ZXdheUlkOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHByb3RvY29sQ29uZmlndXJhdGlvbjogSUdhdGV3YXlQcm90b2NvbENvbmZpZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGF1dGhvcml6ZXJDb25maWd1cmF0aW9uOiBJR2F0ZXdheUF1dGhvcml6ZXJDb25maWc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBleGNlcHRpb25MZXZlbD86IEdhdGV3YXlFeGNlcHRpb25MZXZlbDtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGttc0tleT86IGttcy5JS2V5O1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcm9sZTogaWFtLklSb2xlO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZ2F0ZXdheVVybD86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHN0YXR1cz86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHN0YXR1c1JlYXNvbj86IHN0cmluZ1tdO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdXBkYXRlZEF0Pzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSZXNvdXJjZVByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBQZXJtaXNzaW9uIE1ldGhvZHNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8qKlxuICAgKiBHcmFudHMgSUFNIGFjdGlvbnMgdG8gdGhlIElBTSBQcmluY2lwYWxcbiAgICpcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIGFjdGlvbnMgVGhlIGFjdGlvbnMgdG8gZ3JhbnRcbiAgICovXG4gIHB1YmxpYyBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZTogZ3JhbnRlZSxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMuZ2F0ZXdheUFybl0sXG4gICAgICBhY3Rpb25zOiBhY3Rpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBgR2V0YCBhbmQgYExpc3RgIGFjdGlvbnMgb24gdGhlIEdhdGV3YXlcbiAgICpcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgcmVhZCBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgY29uc3QgcmVzb3VyY2VTcGVjaWZpY0dyYW50ID0gdGhpcy5ncmFudChncmFudGVlLCAuLi5HQVRFV0FZX0dFVF9QRVJNUyk7XG5cbiAgICBjb25zdCBhbGxSZXNvdXJjZUdyYW50ID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWU6IGdyYW50ZWUsXG4gICAgICByZXNvdXJjZUFybnM6IFsnKiddLFxuICAgICAgYWN0aW9uczogWy4uLkdBVEVXQVlfTElTVF9QRVJNU10sXG4gICAgfSk7XG4gICAgLy8gUmV0dXJuIGNvbWJpbmVkIGdyYW50XG4gICAgcmV0dXJuIHJlc291cmNlU3BlY2lmaWNHcmFudC5jb21iaW5lKGFsbFJlc291cmNlR3JhbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBgQ3JlYXRlYCwgYFVwZGF0ZWAsIGFuZCBgRGVsZXRlYCBhY3Rpb25zIG9uIHRoZSBHYXRld2F5XG4gICAqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IG1hbmFnZSBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgcHVibGljIGdyYW50TWFuYWdlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChncmFudGVlLCAuLi5HQVRFV0FZX01BTkFHRV9QRVJNUyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gaW52b2tlIHRoaXMgR2F0ZXdheVxuICAgKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCB0byBncmFudCBpbnZva2UgcGVybWlzc2lvbnMgdG9cbiAgICovXG4gIHB1YmxpYyBncmFudEludm9rZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoZ3JhbnRlZSwgLi4uR0FURVdBWV9JTlZPS0VfUEVSTVMpO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE1ldHJpYyBNZXRob2RzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgZm9yIHRoaXMgZ2F0ZXdheS5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhlIG1ldHJpYyB3aWxsIGJlIGNhbGN1bGF0ZWQgYXMgYSBzdW0gb3ZlciBhIHBlcmlvZCBvZiA1IG1pbnV0ZXMuXG4gICAqIFlvdSBjYW4gY3VzdG9taXplIHRoaXMgYnkgdXNpbmcgdGhlIGBzdGF0aXN0aWNgIGFuZCBgcGVyaW9kYCBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0cmljTmFtZSBUaGUgbmFtZSBvZiB0aGUgbWV0cmljXG4gICAqIEBwYXJhbSBkaW1lbnNpb25zIEFkZGl0aW9uYWwgZGltZW5zaW9ucyBmb3IgdGhlIG1ldHJpY1xuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgbWV0cmljIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBkaW1lbnNpb25zOiBEaW1lbnNpb25zTWFwLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIGNvbnN0IG1ldHJpY1Byb3BzOiBNZXRyaWNQcm9wcyA9IHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9CZWRyb2NrLUFnZW50Q29yZScsXG4gICAgICBtZXRyaWNOYW1lLFxuICAgICAgZGltZW5zaW9uc01hcDogeyAuLi5kaW1lbnNpb25zLCBSZXNvdXJjZTogdGhpcy5nYXRld2F5QXJuIH0sXG4gICAgICAuLi5wcm9wcyxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyZU1ldHJpYyhtZXRyaWNQcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIHRvdGFsIG51bWJlciBvZiBpbnZvY2F0aW9ucyBmb3IgdGhpcyBnYXRld2F5LlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0ludm9jYXRpb25zKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdJbnZvY2F0aW9ucycsIHt9LCB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIHRocm90dGxlZCByZXF1ZXN0cyAoNDI5IHN0YXR1cyBjb2RlKSBmb3IgdGhpcyBnYXRld2F5LlxuICAgKi9cbiAgcHVibGljIG1ldHJpY1Rocm90dGxlcyhwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnVGhyb3R0bGVzJywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2Ygc3lzdGVtIGVycm9ycyAoNXh4IHN0YXR1cyBjb2RlKSBmb3IgdGhpcyBnYXRld2F5LlxuICAgKi9cbiAgcHVibGljIG1ldHJpY1N5c3RlbUVycm9ycyhwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnU3lzdGVtRXJyb3JzJywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgdXNlciBlcnJvcnMgKDR4eCBzdGF0dXMgY29kZSwgZXhjbHVkaW5nIDQyOSkgZm9yIHRoaXMgZ2F0ZXdheS5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNVc2VyRXJyb3JzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdVc2VyRXJyb3JzJywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBtZWFzdXJpbmcgdGhlIGxhdGVuY3kgb2YgcmVxdWVzdHMgZm9yIHRoaXMgZ2F0ZXdheS5cbiAgICpcbiAgICogVGhlIGxhdGVuY3kgbWV0cmljIHJlcHJlc2VudHMgdGhlIHRpbWUgZWxhcHNlZCBiZXR3ZWVuIHdoZW4gdGhlIHNlcnZpY2UgcmVjZWl2ZXNcbiAgICogdGhlIHJlcXVlc3QgYW5kIHdoZW4gaXQgYmVnaW5zIHNlbmRpbmcgdGhlIGZpcnN0IHJlc3BvbnNlIHRva2VuLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0xhdGVuY3kocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0xhdGVuY3knLCB7fSwgeyBzdGF0aXN0aWM6IFN0YXRzLkFWRVJBR0UsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBtZWFzdXJpbmcgdGhlIGR1cmF0aW9uIG9mIHJlcXVlc3RzIGZvciB0aGlzIGdhdGV3YXkuXG4gICAqXG4gICAqIFRoZSBkdXJhdGlvbiBtZXRyaWMgcmVwcmVzZW50cyB0aGUgdG90YWwgdGltZSBlbGFwc2VkIGJldHdlZW4gcmVjZWl2aW5nIHRoZSByZXF1ZXN0XG4gICAqIGFuZCBzZW5kaW5nIHRoZSBmaW5hbCByZXNwb25zZSB0b2tlbiwgcmVwcmVzZW50aW5nIGNvbXBsZXRlIGVuZC10by1lbmQgcHJvY2Vzc2luZyB0aW1lLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0R1cmF0aW9uKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdEdXJhdGlvbicsIHt9LCB7IHN0YXRpc3RpYzogU3RhdHMuQVZFUkFHRSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIG1lYXN1cmluZyB0aGUgdGFyZ2V0IGV4ZWN1dGlvbiB0aW1lIGZvciB0aGlzIGdhdGV3YXkuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIGhlbHBzIGRldGVybWluZSB0aGUgY29udHJpYnV0aW9uIG9mIHRoZSB0YXJnZXQgKExhbWJkYSwgT3BlbkFQSSwgZXRjLilcbiAgICogdG8gdGhlIHRvdGFsIGxhdGVuY3kuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljVGFyZ2V0RXhlY3V0aW9uVGltZShwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnVGFyZ2V0RXhlY3V0aW9uVGltZScsIHt9LCB7IHN0YXRpc3RpYzogU3RhdHMuQVZFUkFHRSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiByZXF1ZXN0cyBzZXJ2ZWQgYnkgZWFjaCB0YXJnZXQgdHlwZSBmb3IgdGhpcyBnYXRld2F5LlxuICAgKi9cbiAgcHVibGljIG1ldHJpY1RhcmdldFR5cGUodGFyZ2V0VHlwZTogc3RyaW5nLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnVGFyZ2V0VHlwZScsIHsgVGFyZ2V0VHlwZTogdGFyZ2V0VHlwZSB9LCB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcm5hbCBtZXRob2QgdG8gY3JlYXRlIGEgbWV0cmljLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgY29uZmlndXJlTWV0cmljKHByb3BzOiBNZXRyaWNQcm9wcykge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcmVnaW9uOiBwcm9wcz8ucmVnaW9uID8/IHRoaXMuc3RhY2sucmVnaW9uLFxuICAgICAgYWNjb3VudDogcHJvcHM/LmFjY291bnQgPz8gdGhpcy5zdGFjay5hY2NvdW50LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -5,6 +5,7 @@ import { IFunction } from 'aws-cdk-lib/aws-lambda';
5
5
  import { Construct } from 'constructs';
6
6
  import { GatewayBase, GatewayExceptionLevel, IGateway } from './gateway-base';
7
7
  import { IGatewayAuthorizerConfig } from './inbound-auth/authorizer';
8
+ import { IInterceptor } from './interceptor';
8
9
  import { ICredentialProviderConfig } from './outbound-auth/credential-provider';
9
10
  import { IGatewayProtocolConfig } from './protocol';
10
11
  import { ApiSchema } from './targets/schema/api-schema';
@@ -20,8 +21,9 @@ export interface AddLambdaTargetOptions {
20
21
  /**
21
22
  * The name of the gateway target
22
23
  * Valid characters are a-z, A-Z, 0-9, _ (underscore) and - (hyphen)
24
+ * @default - auto generate
23
25
  */
24
- readonly gatewayTargetName: string;
26
+ readonly gatewayTargetName?: string;
25
27
  /**
26
28
  * Optional description for the gateway target
27
29
  * @default - No description
@@ -48,8 +50,9 @@ export interface AddOpenApiTargetOptions {
48
50
  /**
49
51
  * The name of the gateway target
50
52
  * Valid characters are a-z, A-Z, 0-9, _ (underscore) and - (hyphen)
53
+ * @default - auto generate
51
54
  */
52
- readonly gatewayTargetName: string;
55
+ readonly gatewayTargetName?: string;
53
56
  /**
54
57
  * Optional description for the gateway target
55
58
  * @default - No description
@@ -79,8 +82,9 @@ export interface AddSmithyTargetOptions {
79
82
  /**
80
83
  * The name of the gateway target
81
84
  * Valid characters are a-z, A-Z, 0-9, _ (underscore) and - (hyphen)
85
+ * @default - auto generate
82
86
  */
83
- readonly gatewayTargetName: string;
87
+ readonly gatewayTargetName?: string;
84
88
  /**
85
89
  * Optional description for the gateway target
86
90
  * @default - No description
@@ -103,8 +107,9 @@ export interface AddMcpServerTargetOptions {
103
107
  /**
104
108
  * The name of the gateway target
105
109
  * Valid characters are a-z, A-Z, 0-9, _ (underscore) and - (hyphen)
110
+ * @default - auto generate
106
111
  */
107
- readonly gatewayTargetName: string;
112
+ readonly gatewayTargetName?: string;
108
113
  /**
109
114
  * Optional description for the gateway target
110
115
  * @default - No description
@@ -135,8 +140,9 @@ export interface GatewayProps {
135
140
  * The name of the gateway
136
141
  * Valid characters are a-z, A-Z, 0-9, _ (underscore) and - (hyphen)
137
142
  * The name must be unique within your account
143
+ * @default - auto generate
138
144
  */
139
- readonly gatewayName: string;
145
+ readonly gatewayName?: string;
140
146
  /**
141
147
  * Optional description for the gateway
142
148
  * Valid characters are a-z, A-Z, 0-9, _ (underscore), - (hyphen) and spaces
@@ -181,6 +187,19 @@ export interface GatewayProps {
181
187
  readonly tags?: {
182
188
  [key: string]: string;
183
189
  };
190
+ /**
191
+ * Interceptor configurations for the gateway
192
+ *
193
+ * Interceptors allow you to run custom code during each gateway invocation:
194
+ * - REQUEST interceptors execute before the gateway calls the target
195
+ * - RESPONSE interceptors execute after the target responds
196
+ *
197
+ * A gateway can have at most one REQUEST interceptor and one RESPONSE interceptor.
198
+ *
199
+ * @default - No interceptors
200
+ * @see https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-interceptors.html
201
+ */
202
+ readonly interceptorConfigurations?: IInterceptor[];
184
203
  }
185
204
  /**
186
205
  * Attributes for importing an existing Gateway
@@ -302,6 +321,16 @@ export declare class Gateway extends GatewayBase {
302
321
  * The Cognito User Pool Client created for the gateway (if using default Cognito authorizer)
303
322
  */
304
323
  userPoolClient?: cognito.IUserPoolClient;
324
+ /**
325
+ * The REQUEST interceptor configuration
326
+ * @internal
327
+ */
328
+ private requestInterceptorConfig?;
329
+ /**
330
+ * The RESPONSE interceptor configuration
331
+ * @internal
332
+ */
333
+ private responseInterceptorConfig?;
305
334
  /**
306
335
  * The Cognito User Pool Domain created for the gateway (if using default Cognito authorizer)
307
336
  */
@@ -320,7 +349,7 @@ export declare class Gateway extends GatewayBase {
320
349
  * Only available when using the default Cognito authorizer.
321
350
  */
322
351
  readonly oauthScopes?: string[];
323
- constructor(scope: Construct, id: string, props: GatewayProps);
352
+ constructor(scope: Construct, id: string, props?: GatewayProps);
324
353
  /**
325
354
  * Add a Lambda target to this gateway
326
355
  * This is a convenience method that creates a GatewayTarget associated with this gateway
@@ -371,7 +400,7 @@ export declare class Gateway extends GatewayBase {
371
400
  private createGatewayRole;
372
401
  /**
373
402
  * Validates the gateway name format
374
- * Pattern: ^([0-9a-zA-Z][-]?){1,100}$
403
+ * Pattern: ^([0-9a-zA-Z][-]?){1,48}$
375
404
  * Max length: 48 characters
376
405
  * @param name The gateway name to validate
377
406
  * @throws Error if the name is invalid
@@ -400,4 +429,27 @@ export declare class Gateway extends GatewayBase {
400
429
  * @internal
401
430
  */
402
431
  private createDefaultMcpProtocolConfiguration;
432
+ /**
433
+ * Add an interceptor to this gateway
434
+ *
435
+ * Interceptors allow you to run custom code at specific points in the gateway request/response flow:
436
+ * - REQUEST interceptors execute before the gateway calls the target
437
+ * - RESPONSE interceptors execute after the target responds
438
+ *
439
+ * A gateway can have at most one REQUEST interceptor and one RESPONSE interceptor.
440
+ * @param interceptor The interceptor to add (use LambdaInterceptor factory methods)
441
+ * @throws Error if an interceptor of the same type already exists
442
+ */
443
+ addInterceptor(interceptor: IInterceptor): void;
444
+ /**
445
+ * Validates and initializes interceptors from the provided configurations
446
+ * @internal
447
+ */
448
+ private validateAndInitializeInterceptors;
449
+ /**
450
+ * Renders the interceptor configurations for CloudFormation
451
+ * Returns undefined if no interceptors are configured
452
+ * @internal
453
+ */
454
+ private renderInterceptorConfigurations;
403
455
  }