@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
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LambdaInterceptor = exports.InterceptionPoint = void 0;
4
+ const jsiiDeprecationWarnings = require("../../.warnings.jsii.js");
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ /******************************************************************************
7
+ * Enums
8
+ *****************************************************************************/
9
+ /**
10
+ * The interception point where the interceptor will be invoked
11
+ */
12
+ var InterceptionPoint;
13
+ (function (InterceptionPoint) {
14
+ /**
15
+ * Execute before the gateway makes a call to the target
16
+ * Useful for request validation, transformation, or custom authorization
17
+ */
18
+ InterceptionPoint["REQUEST"] = "REQUEST";
19
+ /**
20
+ * Execute after the target responds but before the gateway sends the response back
21
+ * Useful for response transformation, filtering, or adding custom headers
22
+ */
23
+ InterceptionPoint["RESPONSE"] = "RESPONSE";
24
+ })(InterceptionPoint || (exports.InterceptionPoint = InterceptionPoint = {}));
25
+ /******************************************************************************
26
+ * Classes
27
+ *****************************************************************************/
28
+ /**
29
+ * A Lambda-based interceptor for Gateway
30
+ *
31
+ * Interceptors allow you to run custom code during each invocation of your gateway:
32
+ * - REQUEST interceptors execute before calling the target
33
+ * - RESPONSE interceptors execute after the target responds
34
+ * @see https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-interceptors.html
35
+ */
36
+ class LambdaInterceptor {
37
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.LambdaInterceptor", version: "2.236.0-alpha.0" };
38
+ /**
39
+ * Create a REQUEST interceptor that executes before the gateway calls the target
40
+ *
41
+ * **Important:** When this interceptor is added to a gateway, the gateway's IAM role
42
+ * will automatically be granted `lambda:InvokeFunction` permission on the specified
43
+ * Lambda function.
44
+ *
45
+ * @param lambdaFunction The Lambda function to invoke
46
+ * @param options Optional configuration for the interceptor
47
+ * @returns A configured LambdaInterceptor for request interception
48
+ */
49
+ static forRequest(lambdaFunction, options) {
50
+ try {
51
+ jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_InterceptorOptions(options);
52
+ }
53
+ catch (error) {
54
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
55
+ Error.captureStackTrace(error, this.forRequest);
56
+ }
57
+ throw error;
58
+ }
59
+ return new LambdaInterceptor(InterceptionPoint.REQUEST, lambdaFunction, options);
60
+ }
61
+ /**
62
+ * Create a RESPONSE interceptor that executes after the target responds
63
+ *
64
+ * **Important:** When this interceptor is added to a gateway, the gateway's IAM role
65
+ * will automatically be granted `lambda:InvokeFunction` permission on the specified
66
+ * Lambda function.
67
+ *
68
+ * @param lambdaFunction The Lambda function to invoke
69
+ * @param options Optional configuration for the interceptor
70
+ * @returns A configured LambdaInterceptor for response interception
71
+ */
72
+ static forResponse(lambdaFunction, options) {
73
+ try {
74
+ jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_InterceptorOptions(options);
75
+ }
76
+ catch (error) {
77
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
78
+ Error.captureStackTrace(error, this.forResponse);
79
+ }
80
+ throw error;
81
+ }
82
+ return new LambdaInterceptor(InterceptionPoint.RESPONSE, lambdaFunction, options);
83
+ }
84
+ /**
85
+ * The interception point (REQUEST or RESPONSE)
86
+ */
87
+ interceptionPoint;
88
+ /**
89
+ * The Lambda function to invoke for this interceptor
90
+ */
91
+ lambdaFunction;
92
+ /**
93
+ * Whether to pass request headers to the interceptor
94
+ *
95
+ * @default false - Headers are not passed for security
96
+ */
97
+ passRequestHeaders;
98
+ constructor(interceptionPoint, lambdaFunction, options) {
99
+ this.interceptionPoint = interceptionPoint;
100
+ this.lambdaFunction = lambdaFunction;
101
+ this.passRequestHeaders = options?.passRequestHeaders ?? false;
102
+ }
103
+ /**
104
+ * Binds this Lambda interceptor to a Gateway
105
+ *
106
+ * This method:
107
+ * 1. Grants the Gateway's IAM role permission to invoke the Lambda function
108
+ * 2. Returns the CloudFormation configuration for this interceptor
109
+ *
110
+ * @param _scope The construct scope (currently unused, reserved for future extensions)
111
+ * @param gateway The gateway this interceptor is being bound to
112
+ * @returns Configuration for CloudFormation rendering
113
+ */
114
+ bind(_scope, gateway) {
115
+ try {
116
+ jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_IGateway(gateway);
117
+ }
118
+ catch (error) {
119
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
120
+ Error.captureStackTrace(error, this.bind);
121
+ }
122
+ throw error;
123
+ }
124
+ // Grant Lambda invoke permission to the Gateway's role
125
+ this.lambdaFunction.grantInvoke(gateway.role);
126
+ // Return CloudFormation configuration
127
+ return {
128
+ configuration: {
129
+ interceptionPoints: [this.interceptionPoint],
130
+ interceptor: {
131
+ lambda: {
132
+ arn: this.lambdaFunction.functionArn,
133
+ },
134
+ },
135
+ inputConfiguration: {
136
+ passRequestHeaders: this.passRequestHeaders,
137
+ },
138
+ },
139
+ };
140
+ }
141
+ }
142
+ exports.LambdaInterceptor = LambdaInterceptor;
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUlBOzsrRUFFK0U7QUFFL0U7O0dBRUc7QUFDSCxJQUFZLGlCQVlYO0FBWkQsV0FBWSxpQkFBaUI7SUFDM0I7OztPQUdHO0lBQ0gsd0NBQW1CLENBQUE7SUFFbkI7OztPQUdHO0lBQ0gsMENBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVpXLGlCQUFpQixpQ0FBakIsaUJBQWlCLFFBWTVCO0FBMkREOzsrRUFFK0U7QUFFL0U7Ozs7Ozs7R0FPRztBQUNILE1BQWEsaUJBQWlCOztJQUM1Qjs7Ozs7Ozs7OztPQVVHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FDdEIsY0FBeUIsRUFDekIsT0FBNEI7Ozs7Ozs7Ozs7UUFFNUIsT0FBTyxJQUFJLGlCQUFpQixDQUMxQixpQkFBaUIsQ0FBQyxPQUFPLEVBQ3pCLGNBQWMsRUFDZCxPQUFPLENBQ1IsQ0FBQztLQUNIO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQ3ZCLGNBQXlCLEVBQ3pCLE9BQTRCOzs7Ozs7Ozs7O1FBRTVCLE9BQU8sSUFBSSxpQkFBaUIsQ0FDMUIsaUJBQWlCLENBQUMsUUFBUSxFQUMxQixjQUFjLEVBQ2QsT0FBTyxDQUNSLENBQUM7S0FDSDtJQUVEOztPQUVHO0lBQ2EsaUJBQWlCLENBQW9CO0lBRXJEOztPQUVHO0lBQ2MsY0FBYyxDQUFZO0lBRTNDOzs7O09BSUc7SUFDYyxrQkFBa0IsQ0FBVTtJQUU3QyxZQUNFLGlCQUFvQyxFQUNwQyxjQUF5QixFQUN6QixPQUE0QjtRQUU1QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sRUFBRSxrQkFBa0IsSUFBSSxLQUFLLENBQUM7S0FDaEU7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksSUFBSSxDQUFDLE1BQWlCLEVBQUUsT0FBaUI7Ozs7Ozs7Ozs7UUFDOUMsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5QyxzQ0FBc0M7UUFDdEMsT0FBTztZQUNMLGFBQWEsRUFBRTtnQkFDYixrQkFBa0IsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztnQkFDNUMsV0FBVyxFQUFFO29CQUNYLE1BQU0sRUFBRTt3QkFDTixHQUFHLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXO3FCQUNyQztpQkFDRjtnQkFDRCxrQkFBa0IsRUFBRTtvQkFDbEIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtpQkFDNUM7YUFDRjtTQUNGLENBQUM7S0FDSDs7QUFyR0gsOENBc0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUZ1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElHYXRld2F5IH0gZnJvbSAnLi9nYXRld2F5LWJhc2UnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW51bXNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKiBUaGUgaW50ZXJjZXB0aW9uIHBvaW50IHdoZXJlIHRoZSBpbnRlcmNlcHRvciB3aWxsIGJlIGludm9rZWRcbiAqL1xuZXhwb3J0IGVudW0gSW50ZXJjZXB0aW9uUG9pbnQge1xuICAvKipcbiAgICogRXhlY3V0ZSBiZWZvcmUgdGhlIGdhdGV3YXkgbWFrZXMgYSBjYWxsIHRvIHRoZSB0YXJnZXRcbiAgICogVXNlZnVsIGZvciByZXF1ZXN0IHZhbGlkYXRpb24sIHRyYW5zZm9ybWF0aW9uLCBvciBjdXN0b20gYXV0aG9yaXphdGlvblxuICAgKi9cbiAgUkVRVUVTVCA9ICdSRVFVRVNUJyxcblxuICAvKipcbiAgICogRXhlY3V0ZSBhZnRlciB0aGUgdGFyZ2V0IHJlc3BvbmRzIGJ1dCBiZWZvcmUgdGhlIGdhdGV3YXkgc2VuZHMgdGhlIHJlc3BvbnNlIGJhY2tcbiAgICogVXNlZnVsIGZvciByZXNwb25zZSB0cmFuc2Zvcm1hdGlvbiwgZmlsdGVyaW5nLCBvciBhZGRpbmcgY3VzdG9tIGhlYWRlcnNcbiAgICovXG4gIFJFU1BPTlNFID0gJ1JFU1BPTlNFJyxcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVyZmFjZXNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyBhbiBpbnRlcmNlcHRvclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludGVyY2VwdG9yT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHBhc3MgcmVxdWVzdCBoZWFkZXJzIHRvIHRoZSBpbnRlcmNlcHRvciBMYW1iZGEgZnVuY3Rpb25cbiAgICpcbiAgICogKipTZWN1cml0eSBXYXJuaW5nKio6IFJlcXVlc3QgaGVhZGVycyBjYW4gY29udGFpbiBzZW5zaXRpdmUgaW5mb3JtYXRpb24gc3VjaCBhc1xuICAgKiBhdXRoZW50aWNhdGlvbiB0b2tlbnMgYW5kIGNyZWRlbnRpYWxzLiBPbmx5IGVuYWJsZSB0aGlzIGlmIHlvdXIgaW50ZXJjZXB0b3IgbmVlZHNcbiAgICogYWNjZXNzIHRvIGhlYWRlcnMgYW5kIHlvdSBoYXZlIHZlcmlmaWVkIHRoYXQgc2Vuc2l0aXZlIGluZm9ybWF0aW9uIGlzIG5vdCBsb2dnZWRcbiAgICogb3IgZXhwb3NlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2UgLSBIZWFkZXJzIGFyZSBub3QgcGFzc2VkIHRvIGludGVyY2VwdG9yIGZvciBzZWN1cml0eVxuICAgKi9cbiAgcmVhZG9ubHkgcGFzc1JlcXVlc3RIZWFkZXJzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGludGVyY2VwdG9yIHRoYXQgY2FuIGJlIGJvdW5kIHRvIGEgR2F0ZXdheVxuICpcbiAqIEludGVyY2VwdG9ycyBhbGxvdyBjdXN0b20gY29kZSBleGVjdXRpb24gYXQgc3BlY2lmaWMgcG9pbnRzIGluIHRoZSBnYXRld2F5IHJlcXVlc3QvcmVzcG9uc2UgZmxvdy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSW50ZXJjZXB0b3Ige1xuICAvKipcbiAgICogVGhlIGludGVyY2VwdGlvbiBwb2ludCB3aGVyZSB0aGlzIGludGVyY2VwdG9yIHdpbGwgYmUgaW52b2tlZFxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZXJjZXB0aW9uUG9pbnQ6IEludGVyY2VwdGlvblBvaW50O1xuXG4gIC8qKlxuICAgKiBCaW5kcyB0aGlzIGludGVyY2VwdG9yIHRvIGEgR2F0ZXdheVxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiB0aGUgaW50ZXJjZXB0b3IgaXMgYWRkZWQgdG8gYSBnYXRld2F5LiBJdCBzaG91bGQ6XG4gICAqIDEuIEdyYW50IGFueSBuZWNlc3NhcnkgcGVybWlzc2lvbnMgKGUuZy4sIExhbWJkYSBpbnZva2UgcGVybWlzc2lvbnMpXG4gICAqIDIuIFBlcmZvcm0gYW55IHJlcXVpcmVkIHNldHVwXG4gICAqIDMuIFJldHVybiB0aGUgQ2xvdWRGb3JtYXRpb24gY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZSBmb3IgY3JlYXRpbmcgYW55IHJlcXVpcmVkIHJlc291cmNlc1xuICAgKiBAcGFyYW0gZ2F0ZXdheSBUaGUgZ2F0ZXdheSB0aGlzIGludGVyY2VwdG9yIGlzIGJlaW5nIGJvdW5kIHRvIFtkaXNhYmxlLWF3c2xpbnQ6cHJlZmVyLXJlZi1pbnRlcmZhY2VdXG4gICAqIEByZXR1cm5zIENvbmZpZ3VyYXRpb24gdGhhdCB3aWxsIGJlIHJlbmRlcmVkIHRvIENsb3VkRm9ybWF0aW9uXG4gICAqL1xuICBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QsIGdhdGV3YXk6IElHYXRld2F5KTogSW50ZXJjZXB0b3JCaW5kQ29uZmlnO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gcmV0dXJuZWQgZnJvbSBiaW5kaW5nIGFuIGludGVyY2VwdG9yIHRvIGEgR2F0ZXdheVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludGVyY2VwdG9yQmluZENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRGb3JtYXRpb24gY29uZmlndXJhdGlvbiBmb3IgdGhpcyBpbnRlcmNlcHRvclxuICAgKi9cbiAgcmVhZG9ubHkgY29uZmlndXJhdGlvbjogYW55O1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3Nlc1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIEEgTGFtYmRhLWJhc2VkIGludGVyY2VwdG9yIGZvciBHYXRld2F5XG4gKlxuICogSW50ZXJjZXB0b3JzIGFsbG93IHlvdSB0byBydW4gY3VzdG9tIGNvZGUgZHVyaW5nIGVhY2ggaW52b2NhdGlvbiBvZiB5b3VyIGdhdGV3YXk6XG4gKiAtIFJFUVVFU1QgaW50ZXJjZXB0b3JzIGV4ZWN1dGUgYmVmb3JlIGNhbGxpbmcgdGhlIHRhcmdldFxuICogLSBSRVNQT05TRSBpbnRlcmNlcHRvcnMgZXhlY3V0ZSBhZnRlciB0aGUgdGFyZ2V0IHJlc3BvbmRzXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvZGV2Z3VpZGUvZ2F0ZXdheS1pbnRlcmNlcHRvcnMuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgTGFtYmRhSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBJSW50ZXJjZXB0b3Ige1xuICAvKipcbiAgICogQ3JlYXRlIGEgUkVRVUVTVCBpbnRlcmNlcHRvciB0aGF0IGV4ZWN1dGVzIGJlZm9yZSB0aGUgZ2F0ZXdheSBjYWxscyB0aGUgdGFyZ2V0XG4gICAqXG4gICAqICoqSW1wb3J0YW50OioqIFdoZW4gdGhpcyBpbnRlcmNlcHRvciBpcyBhZGRlZCB0byBhIGdhdGV3YXksIHRoZSBnYXRld2F5J3MgSUFNIHJvbGVcbiAgICogd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGdyYW50ZWQgYGxhbWJkYTpJbnZva2VGdW5jdGlvbmAgcGVybWlzc2lvbiBvbiB0aGUgc3BlY2lmaWVkXG4gICAqIExhbWJkYSBmdW5jdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIGxhbWJkYUZ1bmN0aW9uIFRoZSBMYW1iZGEgZnVuY3Rpb24gdG8gaW52b2tlXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBpbnRlcmNlcHRvclxuICAgKiBAcmV0dXJucyBBIGNvbmZpZ3VyZWQgTGFtYmRhSW50ZXJjZXB0b3IgZm9yIHJlcXVlc3QgaW50ZXJjZXB0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZvclJlcXVlc3QoXG4gICAgbGFtYmRhRnVuY3Rpb246IElGdW5jdGlvbixcbiAgICBvcHRpb25zPzogSW50ZXJjZXB0b3JPcHRpb25zLFxuICApOiBMYW1iZGFJbnRlcmNlcHRvciB7XG4gICAgcmV0dXJuIG5ldyBMYW1iZGFJbnRlcmNlcHRvcihcbiAgICAgIEludGVyY2VwdGlvblBvaW50LlJFUVVFU1QsXG4gICAgICBsYW1iZGFGdW5jdGlvbixcbiAgICAgIG9wdGlvbnMsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBSRVNQT05TRSBpbnRlcmNlcHRvciB0aGF0IGV4ZWN1dGVzIGFmdGVyIHRoZSB0YXJnZXQgcmVzcG9uZHNcbiAgICpcbiAgICogKipJbXBvcnRhbnQ6KiogV2hlbiB0aGlzIGludGVyY2VwdG9yIGlzIGFkZGVkIHRvIGEgZ2F0ZXdheSwgdGhlIGdhdGV3YXkncyBJQU0gcm9sZVxuICAgKiB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgZ3JhbnRlZCBgbGFtYmRhOkludm9rZUZ1bmN0aW9uYCBwZXJtaXNzaW9uIG9uIHRoZSBzcGVjaWZpZWRcbiAgICogTGFtYmRhIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gbGFtYmRhRnVuY3Rpb24gVGhlIExhbWJkYSBmdW5jdGlvbiB0byBpbnZva2VcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIGludGVyY2VwdG9yXG4gICAqIEByZXR1cm5zIEEgY29uZmlndXJlZCBMYW1iZGFJbnRlcmNlcHRvciBmb3IgcmVzcG9uc2UgaW50ZXJjZXB0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZvclJlc3BvbnNlKFxuICAgIGxhbWJkYUZ1bmN0aW9uOiBJRnVuY3Rpb24sXG4gICAgb3B0aW9ucz86IEludGVyY2VwdG9yT3B0aW9ucyxcbiAgKTogTGFtYmRhSW50ZXJjZXB0b3Ige1xuICAgIHJldHVybiBuZXcgTGFtYmRhSW50ZXJjZXB0b3IoXG4gICAgICBJbnRlcmNlcHRpb25Qb2ludC5SRVNQT05TRSxcbiAgICAgIGxhbWJkYUZ1bmN0aW9uLFxuICAgICAgb3B0aW9ucyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBpbnRlcmNlcHRpb24gcG9pbnQgKFJFUVVFU1Qgb3IgUkVTUE9OU0UpXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW50ZXJjZXB0aW9uUG9pbnQ6IEludGVyY2VwdGlvblBvaW50O1xuXG4gIC8qKlxuICAgKiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHRvIGludm9rZSBmb3IgdGhpcyBpbnRlcmNlcHRvclxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHBhc3MgcmVxdWVzdCBoZWFkZXJzIHRvIHRoZSBpbnRlcmNlcHRvclxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZSAtIEhlYWRlcnMgYXJlIG5vdCBwYXNzZWQgZm9yIHNlY3VyaXR5XG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHBhc3NSZXF1ZXN0SGVhZGVyczogYm9vbGVhbjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIGludGVyY2VwdGlvblBvaW50OiBJbnRlcmNlcHRpb25Qb2ludCxcbiAgICBsYW1iZGFGdW5jdGlvbjogSUZ1bmN0aW9uLFxuICAgIG9wdGlvbnM/OiBJbnRlcmNlcHRvck9wdGlvbnMsXG4gICkge1xuICAgIHRoaXMuaW50ZXJjZXB0aW9uUG9pbnQgPSBpbnRlcmNlcHRpb25Qb2ludDtcbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uID0gbGFtYmRhRnVuY3Rpb247XG4gICAgdGhpcy5wYXNzUmVxdWVzdEhlYWRlcnMgPSBvcHRpb25zPy5wYXNzUmVxdWVzdEhlYWRlcnMgPz8gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQmluZHMgdGhpcyBMYW1iZGEgaW50ZXJjZXB0b3IgdG8gYSBHYXRld2F5XG4gICAqXG4gICAqIFRoaXMgbWV0aG9kOlxuICAgKiAxLiBHcmFudHMgdGhlIEdhdGV3YXkncyBJQU0gcm9sZSBwZXJtaXNzaW9uIHRvIGludm9rZSB0aGUgTGFtYmRhIGZ1bmN0aW9uXG4gICAqIDIuIFJldHVybnMgdGhlIENsb3VkRm9ybWF0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgaW50ZXJjZXB0b3JcbiAgICpcbiAgICogQHBhcmFtIF9zY29wZSBUaGUgY29uc3RydWN0IHNjb3BlIChjdXJyZW50bHkgdW51c2VkLCByZXNlcnZlZCBmb3IgZnV0dXJlIGV4dGVuc2lvbnMpXG4gICAqIEBwYXJhbSBnYXRld2F5IFRoZSBnYXRld2F5IHRoaXMgaW50ZXJjZXB0b3IgaXMgYmVpbmcgYm91bmQgdG9cbiAgICogQHJldHVybnMgQ29uZmlndXJhdGlvbiBmb3IgQ2xvdWRGb3JtYXRpb24gcmVuZGVyaW5nXG4gICAqL1xuICBwdWJsaWMgYmluZChfc2NvcGU6IENvbnN0cnVjdCwgZ2F0ZXdheTogSUdhdGV3YXkpOiBJbnRlcmNlcHRvckJpbmRDb25maWcge1xuICAgIC8vIEdyYW50IExhbWJkYSBpbnZva2UgcGVybWlzc2lvbiB0byB0aGUgR2F0ZXdheSdzIHJvbGVcbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uLmdyYW50SW52b2tlKGdhdGV3YXkucm9sZSk7XG5cbiAgICAvLyBSZXR1cm4gQ2xvdWRGb3JtYXRpb24gY29uZmlndXJhdGlvblxuICAgIHJldHVybiB7XG4gICAgICBjb25maWd1cmF0aW9uOiB7XG4gICAgICAgIGludGVyY2VwdGlvblBvaW50czogW3RoaXMuaW50ZXJjZXB0aW9uUG9pbnRdLFxuICAgICAgICBpbnRlcmNlcHRvcjoge1xuICAgICAgICAgIGxhbWJkYToge1xuICAgICAgICAgICAgYXJuOiB0aGlzLmxhbWJkYUZ1bmN0aW9uLmZ1bmN0aW9uQXJuLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGlucHV0Q29uZmlndXJhdGlvbjoge1xuICAgICAgICAgIHBhc3NSZXF1ZXN0SGVhZGVyczogdGhpcy5wYXNzUmVxdWVzdEhlYWRlcnMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -19,7 +19,7 @@ var ApiKeyCredentialLocationType;
19
19
  * API Key location within the request
20
20
  */
21
21
  class ApiKeyCredentialLocation {
22
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ApiKeyCredentialLocation", version: "2.235.0-alpha.0" };
22
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ApiKeyCredentialLocation", version: "2.236.0-alpha.0" };
23
23
  /**
24
24
  * Create a header-based API key credential location
25
25
  * @param config - Optional configuration for the credential location
@@ -31,7 +31,7 @@ var CredentialProviderType;
31
31
  * Factory class for creating different Gateway Credential Providers
32
32
  */
33
33
  class GatewayCredentialProvider {
34
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayCredentialProvider", version: "2.235.0-alpha.0" };
34
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayCredentialProvider", version: "2.236.0-alpha.0" };
35
35
  /**
36
36
  * Create an API key credential provider from Identity ARN
37
37
  * Use this method when you have the Identity ARN as a string
@@ -21,7 +21,7 @@ var GatewayProtocolType;
21
21
  * Factory class for instantiating Gateway Protocols
22
22
  */
23
23
  class GatewayProtocol {
24
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayProtocol", version: "2.235.0-alpha.0" };
24
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayProtocol", version: "2.236.0-alpha.0" };
25
25
  /**
26
26
  * Create an MCP protocol configuration
27
27
  * @param props - Optional MCP configuration properties
@@ -75,7 +75,7 @@ var McpGatewaySearchType;
75
75
  * MCP (Model Context Protocol) configuration implementation
76
76
  */
77
77
  class McpProtocolConfiguration {
78
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.McpProtocolConfiguration", version: "2.235.0-alpha.0" };
78
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.McpProtocolConfiguration", version: "2.236.0-alpha.0" };
79
79
  protocolType;
80
80
  /**
81
81
  * The supported MCP protocol versions
@@ -24,7 +24,7 @@ class ApiSchemaError extends Error {
24
24
  * Represents the concept of an API Schema for a Gateway Target.
25
25
  */
26
26
  class ApiSchema extends base_schema_1.TargetSchema {
27
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ApiSchema", version: "2.235.0-alpha.0" };
27
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ApiSchema", version: "2.236.0-alpha.0" };
28
28
  /**
29
29
  * Creates an API Schema from a local file.
30
30
  * @param path - the path to the local file containing the OpenAPI schema for the action group
@@ -82,7 +82,7 @@ exports.ApiSchema = ApiSchema;
82
82
  class AssetApiSchema extends ApiSchema {
83
83
  path;
84
84
  options;
85
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AssetApiSchema", version: "2.235.0-alpha.0" };
85
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AssetApiSchema", version: "2.236.0-alpha.0" };
86
86
  asset;
87
87
  constructor(path, options = {}) {
88
88
  super();
@@ -144,7 +144,7 @@ exports.AssetApiSchema = AssetApiSchema;
144
144
  */
145
145
  class InlineApiSchema extends ApiSchema {
146
146
  schema;
147
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.InlineApiSchema", version: "2.235.0-alpha.0" };
147
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.InlineApiSchema", version: "2.236.0-alpha.0" };
148
148
  constructor(schema) {
149
149
  super(undefined, undefined, schema);
150
150
  this.schema = schema;
@@ -174,7 +174,7 @@ exports.InlineApiSchema = InlineApiSchema;
174
174
  class S3ApiSchema extends ApiSchema {
175
175
  location;
176
176
  bucketOwnerAccountId;
177
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.S3ApiSchema", version: "2.235.0-alpha.0" };
177
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.S3ApiSchema", version: "2.236.0-alpha.0" };
178
178
  constructor(location, bucketOwnerAccountId) {
179
179
  super(location, bucketOwnerAccountId, undefined);
180
180
  this.location = location;
@@ -39,7 +39,7 @@ class ToolSchemaError extends Error {
39
39
  * TOOL SCHEMA CLASS
40
40
  *****************************************************************************/
41
41
  class ToolSchema extends base_schema_1.TargetSchema {
42
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ToolSchema", version: "2.235.0-alpha.0" };
42
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ToolSchema", version: "2.236.0-alpha.0" };
43
43
  /**
44
44
  * Creates a tool Schema from a local file.
45
45
  * @param path - the path to the local file containing the function schema for the tool
@@ -97,7 +97,7 @@ exports.ToolSchema = ToolSchema;
97
97
  class AssetToolSchema extends ToolSchema {
98
98
  path;
99
99
  options;
100
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AssetToolSchema", version: "2.235.0-alpha.0" };
100
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AssetToolSchema", version: "2.236.0-alpha.0" };
101
101
  asset;
102
102
  constructor(path, options = {}) {
103
103
  super();
@@ -150,7 +150,7 @@ exports.AssetToolSchema = AssetToolSchema;
150
150
  */
151
151
  class InlineToolSchema extends ToolSchema {
152
152
  schema;
153
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.InlineToolSchema", version: "2.235.0-alpha.0" };
153
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.InlineToolSchema", version: "2.236.0-alpha.0" };
154
154
  constructor(schema) {
155
155
  super(undefined, undefined, schema);
156
156
  this.schema = schema;
@@ -180,7 +180,7 @@ exports.InlineToolSchema = InlineToolSchema;
180
180
  class S3ToolSchema extends ToolSchema {
181
181
  location;
182
182
  bucketOwnerAccountId;
183
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.S3ToolSchema", version: "2.235.0-alpha.0" };
183
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.S3ToolSchema", version: "2.236.0-alpha.0" };
184
184
  constructor(location, bucketOwnerAccountId) {
185
185
  super(location, bucketOwnerAccountId, undefined);
186
186
  this.location = location;
@@ -39,7 +39,7 @@ var McpTargetType;
39
39
  * permission management and property definitions.
40
40
  */
41
41
  class GatewayTargetBase extends aws_cdk_lib_1.Resource {
42
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetBase", version: "2.235.0-alpha.0" };
42
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetBase", version: "2.236.0-alpha.0" };
43
43
  /**
44
44
  * Grants IAM actions to the IAM Principal
45
45
  *
@@ -16,7 +16,7 @@ const validation_helpers_1 = require("../validation-helpers");
16
16
  * Provides common functionality for all MCP target types
17
17
  */
18
18
  class McpTargetConfiguration {
19
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration", version: "2.235.0-alpha.0" };
19
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration", version: "2.236.0-alpha.0" };
20
20
  /**
21
21
  * Renders the configuration as CloudFormation properties
22
22
  * @internal
@@ -38,7 +38,7 @@ exports.McpTargetConfiguration = McpTargetConfiguration;
38
38
  * allowing the gateway to invoke the function to provide tool capabilities.
39
39
  */
40
40
  class LambdaTargetConfiguration extends McpTargetConfiguration {
41
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.LambdaTargetConfiguration", version: "2.235.0-alpha.0" };
41
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.LambdaTargetConfiguration", version: "2.236.0-alpha.0" };
42
42
  /**
43
43
  * Create a Lambda target configuration
44
44
  *
@@ -128,7 +128,7 @@ exports.LambdaTargetConfiguration = LambdaTargetConfiguration;
128
128
  * allowing the gateway to transform API operations into tool calls.
129
129
  */
130
130
  class OpenApiTargetConfiguration extends McpTargetConfiguration {
131
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.OpenApiTargetConfiguration", version: "2.235.0-alpha.0" };
131
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.OpenApiTargetConfiguration", version: "2.236.0-alpha.0" };
132
132
  /**
133
133
  * Create an OpenAPI target configuration
134
134
  *
@@ -246,7 +246,7 @@ exports.OpenApiTargetConfiguration = OpenApiTargetConfiguration;
246
246
  * allowing the gateway to transform Smithy operations into tool calls.
247
247
  */
248
248
  class SmithyTargetConfiguration extends McpTargetConfiguration {
249
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.SmithyTargetConfiguration", version: "2.235.0-alpha.0" };
249
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.SmithyTargetConfiguration", version: "2.236.0-alpha.0" };
250
250
  /**
251
251
  * Create a Smithy target configuration
252
252
  *
@@ -328,7 +328,7 @@ exports.SmithyTargetConfiguration = SmithyTargetConfiguration;
328
328
  * synchronization.
329
329
  */
330
330
  class McpServerTargetConfiguration extends McpTargetConfiguration {
331
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.McpServerTargetConfiguration", version: "2.235.0-alpha.0" };
331
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.McpServerTargetConfiguration", version: "2.236.0-alpha.0" };
332
332
  /**
333
333
  * Create an MCP server target configuration
334
334
  *
@@ -18,8 +18,9 @@ export interface GatewayTargetCommonProps {
18
18
  * The name of the gateway target
19
19
  * The name must be unique within the gateway
20
20
  * Pattern: ^([0-9a-zA-Z][-]?){1,100}$
21
+ * @default - auto generate
21
22
  */
22
- readonly gatewayTargetName: string;
23
+ readonly gatewayTargetName?: string;
23
24
  /**
24
25
  * Optional description for the gateway target
25
26
  * The description can have up to 200 characters
@@ -78,7 +78,7 @@ let GatewayTarget = (() => {
78
78
  GatewayTarget = _classThis = _classDescriptor.value;
79
79
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
80
80
  }
81
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTarget", version: "2.235.0-alpha.0" };
81
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTarget", version: "2.236.0-alpha.0" };
82
82
  /** Uniquely identifies this class. */
83
83
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-bedrock-agentcore-alpha.GatewayTarget';
84
84
  /**
@@ -285,7 +285,14 @@ let GatewayTarget = (() => {
285
285
  targetResource;
286
286
  targetConfiguration;
287
287
  constructor(scope, id, props) {
288
- super(scope, id);
288
+ super(scope, id, {
289
+ // Maximum name length of 100 characters
290
+ // @see https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-bedrockagentcore-gatewaytarget.html#cfn-bedrockagentcore-gatewaytarget-name
291
+ physicalName: props.gatewayTargetName ??
292
+ aws_cdk_lib_1.Lazy.string({
293
+ produce: () => aws_cdk_lib_1.Names.uniqueResourceName(this, { maxLength: 100 }),
294
+ }),
295
+ });
289
296
  try {
290
297
  jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetProps(props);
291
298
  }
@@ -298,7 +305,7 @@ let GatewayTarget = (() => {
298
305
  // Enhanced CDK Analytics Telemetry
299
306
  (0, metadata_resource_1.addConstructMetadata)(this, props);
300
307
  // Validate and assign properties
301
- this.name = props.gatewayTargetName;
308
+ this.name = this.physicalName;
302
309
  this.validateGatewayTargetName(this.name);
303
310
  this.description = props.description;
304
311
  if (this.description) {
@@ -443,4 +450,4 @@ let GatewayTarget = (() => {
443
450
  return GatewayTarget = _classThis;
444
451
  })();
445
452
  exports.GatewayTarget = GatewayTarget;
446
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGFyZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEwQztBQUMxQyxxRUFBcUU7QUFDckUsMkNBQTJDO0FBRTNDLDhFQUE4RjtBQUM5RiwwRUFBMEU7QUFHMUUsb0NBQThDO0FBRzlDLCtDQUErSDtBQUMvSCxpRUFBOEs7QUFDOUssOEVBQTRHO0FBQzVHLDhEQUFtRztBQXNNbkc7OytFQUUrRTtBQUUvRTs7Ozs7Ozs7O0dBU0c7SUFFVSxhQUFhOzRCQUR6QixvQ0FBa0I7Ozs7c0JBQ2dCLCtCQUFpQjs7OzZCQUF6QixTQUFRLFdBQWlCOzs7O3FDQW1SakQsSUFBQSxrQ0FBYyxHQUFFO1lBQ2pCLDhLQUFPLFNBQVMsNkRBTWY7WUExUkgsNktBK1hDOzs7OztRQTlYQyxzQ0FBc0M7UUFDL0IsTUFBTSxDQUFVLHFCQUFxQixHQUFXLG9EQUFvRCxDQUFDO1FBQzVHOzs7Ozs7OztXQVFHO1FBQ0ksTUFBTSxDQUFDLDJCQUEyQixDQUN2QyxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBOEI7Ozs7Ozs7Ozs7WUFFOUIsTUFBTSxxQkFBc0IsU0FBUSwrQkFBaUI7Z0JBQ25DLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO2dCQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztnQkFDMUIsSUFBSSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0IsV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQzNCLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO2dCQUN4QixnQ0FBZ0MsR0FBRyxFQUFFLENBQUM7Z0JBQ3RDLGtCQUFrQixHQUFHLHVDQUF5QixDQUFDLEdBQUcsQ0FBQztnQkFDbkQsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ3RCLGFBQWEsR0FB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QjtnQkFDdkMsU0FBUyxFQUFFLENBQUM7Z0JBQ1osU0FBUyxFQUFFLEdBQUc7YUFDZixDQUFDLENBQUM7WUFFSCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RCLE1BQU0sSUFBSSxvQ0FBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMvQyxDQUFDO1NBQ0Y7O1lBOVhVLHVEQUFhOzs7OztBQUFiLHNDQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGF6eSwgVG9rZW4gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBiZWRyb2NrYWdlbnRjb3JlIGZyb20gJ2F3cy1jZGstbGliL2F3cy1iZWRyb2NrYWdlbnRjb3JlJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IElGdW5jdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEsIE1ldGhvZE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSUdhdGV3YXkgfSBmcm9tICcuLi9nYXRld2F5LWJhc2UnO1xuaW1wb3J0IHsgR0FURVdBWV9TWU5DX1BFUk1TIH0gZnJvbSAnLi4vcGVybXMnO1xuaW1wb3J0IHsgQXBpU2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEvYXBpLXNjaGVtYSc7XG5pbXBvcnQgeyBUb29sU2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEvdG9vbC1zY2hlbWEnO1xuaW1wb3J0IHsgR2F0ZXdheVRhcmdldEJhc2UsIEdhdGV3YXlUYXJnZXRQcm90b2NvbFR5cGUsIElHYXRld2F5VGFyZ2V0LCBJTWNwR2F0ZXdheVRhcmdldCwgTWNwVGFyZ2V0VHlwZSB9IGZyb20gJy4vdGFyZ2V0LWJhc2UnO1xuaW1wb3J0IHsgSVRhcmdldENvbmZpZ3VyYXRpb24sIExhbWJkYVRhcmdldENvbmZpZ3VyYXRpb24sIE1jcFNlcnZlclRhcmdldENvbmZpZ3VyYXRpb24sIE9wZW5BcGlUYXJnZXRDb25maWd1cmF0aW9uLCBTbWl0aHlUYXJnZXRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi90YXJnZXQtY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyLCBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnIH0gZnJvbSAnLi4vb3V0Ym91bmQtYXV0aC9jcmVkZW50aWFsLXByb3ZpZGVyJztcbmltcG9ydCB7IHZhbGlkYXRlU3RyaW5nRmllbGQsIHZhbGlkYXRlRmllbGRQYXR0ZXJuLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi92YWxpZGF0aW9uLWhlbHBlcnMnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvcHNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKiBDb21tb24gcHJvcGVydGllcyBmb3IgYWxsIEdhdGV3YXkgVGFyZ2V0IHR5cGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZXdheVRhcmdldENvbW1vblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKiBUaGUgbmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGdhdGV3YXlcbiAgICogUGF0dGVybjogXihbMC05YS16QS1aXVstXT8pezEsMTAwfSRcbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXlUYXJnZXROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlc2NyaXB0aW9uIGZvciB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogVGhlIGRlc2NyaXB0aW9uIGNhbiBoYXZlIHVwIHRvIDIwMCBjaGFyYWN0ZXJzXG4gICAqIEBkZWZhdWx0IC0gTm8gZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgR2F0ZXdheSBUYXJnZXQgcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRld2F5VGFyZ2V0UHJvcHMgZXh0ZW5kcyBHYXRld2F5VGFyZ2V0Q29tbW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgY29uZmlndXJhdGlvbiAoTGFtYmRhLCBPcGVuQVBJLCBvciBTbWl0aHkpXG4gICAqIFVzZSBvbmUgb2YgdGhlIGNvbmZpZ3VyYXRpb24gaGVscGVyIGNsYXNzZXM6XG4gICAqIC0gTGFtYmRhVGFyZ2V0Q29uZmlndXJhdGlvbi5jcmVhdGUoKVxuICAgKiAtIE9wZW5BcGlUYXJnZXRDb25maWd1cmF0aW9uLmNyZWF0ZSgpXG4gICAqIC0gU21pdGh5VGFyZ2V0Q29uZmlndXJhdGlvbi5jcmVhdGUoKVxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0Q29uZmlndXJhdGlvbjogSVRhcmdldENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIENyZWRlbnRpYWwgcHJvdmlkZXJzIGZvciBhdXRoZW50aWNhdGlvblxuICAgKiBAZGVmYXVsdCAtIFtHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyLmZyb21JYW1Sb2xlKCldXG4gICAqL1xuICByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucz86IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIExhbWJkYS1iYXNlZCBHYXRld2F5IFRhcmdldFxuICogQ29udmVuaWVuY2UgaW50ZXJmYWNlIGZvciB0aGUgbW9zdCBjb21tb24gdXNlIGNhc2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRld2F5VGFyZ2V0TGFtYmRhUHJvcHMgZXh0ZW5kcyBHYXRld2F5VGFyZ2V0Q29tbW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gdG8gYXNzb2NpYXRlIHdpdGggdGhpcyB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYUZ1bmN0aW9uOiBJRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSB0b29sIHNjaGVtYSBkZWZpbmluZyB0aGUgYXZhaWxhYmxlIHRvb2xzXG4gICAqL1xuICByZWFkb25seSB0b29sU2NoZW1hOiBUb29sU2NoZW1hO1xuXG4gIC8qKlxuICAgKiBDcmVkZW50aWFsIHByb3ZpZGVycyBmb3IgYXV0aGVudGljYXRpb25cbiAgICogTGFtYmRhIHRhcmdldHMgb25seSBzdXBwb3J0IElBTSByb2xlIGF1dGhlbnRpY2F0aW9uXG4gICAqIEBkZWZhdWx0IC0gW0dhdGV3YXlDcmVkZW50aWFsUHJvdmlkZXIuZnJvbUlhbVJvbGUoKV1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zPzogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ1tdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGFuIE9wZW5BUEktYmFzZWQgR2F0ZXdheSBUYXJnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRld2F5VGFyZ2V0T3BlbkFwaVByb3BzIGV4dGVuZHMgR2F0ZXdheVRhcmdldENvbW1vblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoaXMgdGFyZ2V0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXk6IElHYXRld2F5O1xuXG4gIC8qKlxuICAgKiBUaGUgT3BlbkFQSSBzY2hlbWEgZGVmaW5pbmcgdGhlIEFQSVxuICAgKi9cbiAgcmVhZG9ubHkgYXBpU2NoZW1hOiBBcGlTY2hlbWE7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdmFsaWRhdGUgdGhlIE9wZW5BUEkgc2NoZW1hIChvbmx5IGFwcGxpZXMgdG8gaW5saW5lIHNjaGVtYXMpXG4gICAqIE5vdGU6IFZhbGlkYXRpb24gaXMgb25seSBwZXJmb3JtZWQgZm9yIGlubGluZSBzY2hlbWFzIGR1cmluZyBDREsgc3ludGhlc2lzLlxuICAgKiBTMyBhbmQgYXNzZXQtYmFzZWQgc2NoZW1hcyBjYW5ub3QgYmUgdmFsaWRhdGVkIGF0IHN5bnRoZXNpcyB0aW1lLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0ZU9wZW5BcGlTY2hlbWE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDcmVkZW50aWFsIHByb3ZpZGVycyBmb3IgYXV0aGVudGljYXRpb25cbiAgICogT3BlbkFQSSB0YXJnZXRzIHN1cHBvcnQgQVBJIGtleSBhbmQgT0F1dGggYXV0aGVudGljYXRpb24gKG5vdCBJQU0pXG4gICAqIEBkZWZhdWx0IC0gSWYgbm90IHByb3ZpZGVkLCBkZWZhdWx0cyB0byBJQU0gcm9sZSB3aGljaCB3aWxsIGZhaWwgYXQgcnVudGltZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM/OiBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBTbWl0aHktYmFzZWQgR2F0ZXdheSBUYXJnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRld2F5VGFyZ2V0U21pdGh5UHJvcHMgZXh0ZW5kcyBHYXRld2F5VGFyZ2V0Q29tbW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSBTbWl0aHkgbW9kZWwgZGVmaW5pbmcgdGhlIEFQSVxuICAgKi9cbiAgcmVhZG9ubHkgc21pdGh5TW9kZWw6IEFwaVNjaGVtYTtcblxuICAvKipcbiAgICogQ3JlZGVudGlhbCBwcm92aWRlcnMgZm9yIGF1dGhlbnRpY2F0aW9uXG4gICAqIFNtaXRoeSB0YXJnZXRzIG9ubHkgc3VwcG9ydCBJQU0gcm9sZSBhdXRoZW50aWNhdGlvblxuICAgKiBAZGVmYXVsdCAtIFtHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyLmZyb21JYW1Sb2xlKCldXG4gICAqL1xuICByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucz86IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhbiBNQ1AgU2VydmVyLWJhc2VkIEdhdGV3YXkgVGFyZ2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZXdheVRhcmdldE1jcFNlcnZlclByb3BzIGV4dGVuZHMgR2F0ZXdheVRhcmdldENvbW1vblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoaXMgdGFyZ2V0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXk6IElHYXRld2F5O1xuXG4gIC8qKlxuICAgKiBUaGUgSFRUUFMgZW5kcG9pbnQgVVJMIG9mIHRoZSBNQ1Agc2VydmVyXG4gICAqXG4gICAqIFRoZSBlbmRwb2ludCBtdXN0OlxuICAgKiAtIFVzZSBIVFRQUyBwcm90b2NvbFxuICAgKiAtIEJlIHByb3Blcmx5IFVSTC1lbmNvZGVkXG4gICAqIC0gUG9pbnQgdG8gYW4gTUNQIHNlcnZlciB0aGF0IGltcGxlbWVudHMgdG9vbCBjYXBhYmlsaXRpZXNcbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWRlbnRpYWwgcHJvdmlkZXJzIGZvciBhdXRoZW50aWNhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXTtcbn1cblxuLyoqXG4gKiBBdHRyaWJ1dGVzIGZvciBpbXBvcnRpbmcgYW4gZXhpc3RpbmcgR2F0ZXdheSBUYXJnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRld2F5VGFyZ2V0QXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheVRhcmdldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHN0YXR1cyBvZiB0aGUgdGFyZ2V0XG4gICAqIEBkZWZhdWx0IC0gTm8gc3RhdHVzXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGNyZWF0aW9uIHRpbWVzdGFtcFxuICAgKiBAZGVmYXVsdCAtIE5vIGNyZWF0aW9uIHRpbWVzdGFtcFxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBsYXN0IHVwZGF0ZSB0aW1lc3RhbXBcbiAgICogQGRlZmF1bHQgLSBObyB1cGRhdGUgdGltZXN0YW1wXG4gICAqL1xuICByZWFkb25seSB1cGRhdGVkQXQ/OiBzdHJpbmc7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqXG4gKiBEZWZpbmVzIHRvb2xzIHRoYXQgeW91ciBnYXRld2F5IHdpbGwgaG9zdC4gU3VwcG9ydHMgbXVsdGlwbGUgdGFyZ2V0IHR5cGVzOlxuICogLSBMYW1iZGE6IFdyYXBzIGEgTGFtYmRhIGZ1bmN0aW9uIGFzIE1DUCB0b29sc1xuICogLSBPcGVuQVBJOiBFeHBvc2VzIGFuIE9wZW5BUEkvUkVTVCBBUEkgYXMgTUNQIHRvb2xzXG4gKiAtIFNtaXRoeTogRXhwb3NlcyBhIFNtaXRoeS1tb2RlbGVkIEFQSSBhcyBNQ1AgdG9vbHNcbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpCZWRyb2NrQWdlbnRDb3JlOjpHYXRld2F5VGFyZ2V0XG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvZGV2Z3VpZGUvZ2F0ZXdheS1idWlsZGluZy1hZGRpbmctdGFyZ2V0cy5odG1sXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBHYXRld2F5VGFyZ2V0IGV4dGVuZHMgR2F0ZXdheVRhcmdldEJhc2UgaW1wbGVtZW50cyBJTWNwR2F0ZXdheVRhcmdldCB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWJlZHJvY2stYWdlbnRjb3JlLWFscGhhLkdhdGV3YXlUYXJnZXQnO1xuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIEdhdGV3YXkgVGFyZ2V0IHVzaW5nIGl0cyBhdHRyaWJ1dGVzXG4gICAqIFRoaXMgYWxsb3dzIHlvdSB0byByZWZlcmVuY2UgYSBHYXRld2F5IFRhcmdldCB0aGF0IHdhcyBjcmVhdGVkIG91dHNpZGUgb2YgQ0RLXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0IGlkXG4gICAqIEBwYXJhbSBhdHRycyBUaGUgYXR0cmlidXRlcyBvZiB0aGUgZXhpc3RpbmcgR2F0ZXdheSBUYXJnZXRcbiAgICogQHJldHVybnMgQW4gSUdhdGV3YXlUYXJnZXQgaW5zdGFuY2UgcmVwcmVzZW50aW5nIHRoZSBpbXBvcnRlZCB0YXJnZXRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUdhdGV3YXlUYXJnZXRBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogR2F0ZXdheVRhcmdldEF0dHJpYnV0ZXMsXG4gICk6IElHYXRld2F5VGFyZ2V0IHtcbiAgICBjbGFzcyBJbXBvcnRlZEdhdGV3YXlUYXJnZXQgZXh0ZW5kcyBHYXRld2F5VGFyZ2V0QmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0QXJuID0gYXR0cnMudGFyZ2V0QXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhcmdldElkID0gYXR0cnMudGFyZ2V0SWQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbmFtZSA9IGF0dHJzLmdhdGV3YXlUYXJnZXROYW1lO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gYXR0cnMuc3RhdHVzO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGdhdGV3YXkgPSBhdHRycy5nYXRld2F5O1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zID0gW107XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0UHJvdG9jb2xUeXBlID0gR2F0ZXdheVRhcmdldFByb3RvY29sVHlwZS5NQ1A7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzID0gYXR0cnMuc3RhdHVzO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHN0YXR1c1JlYXNvbnMgPSB1bmRlZmluZWQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlZEF0ID0gYXR0cnMuY3JlYXRlZEF0O1xuICAgICAgcHVibGljIHJlYWRvbmx5IHVwZGF0ZWRBdCA9IGF0dHJzLnVwZGF0ZWRBdDtcblxuICAgICAgY29uc3RydWN0b3IoczogQ29uc3RydWN0LCBpOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIocywgaSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRHYXRld2F5VGFyZ2V0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgTGFtYmRhLWJhc2VkIE1DUCB0YXJnZXRcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBjcmVhdGluZyBhIHRhcmdldCB0aGF0IHdyYXBzIGEgTGFtYmRhIGZ1bmN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0IGlkXG4gICAqIEBwYXJhbSBwcm9wcyBUaGUgcHJvcGVydGllcyBmb3IgdGhlIExhbWJkYSB0YXJnZXRcbiAgICogQHJldHVybnMgQSBuZXcgR2F0ZXdheVRhcmdldCBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JMYW1iZGEoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBHYXRld2F5VGFyZ2V0TGFtYmRhUHJvcHMsXG4gICk6IEdhdGV3YXlUYXJnZXQge1xuICAgIHJldHVybiBuZXcgR2F0ZXdheVRhcmdldChzY29wZSwgaWQsIHtcbiAgICAgIGdhdGV3YXk6IHByb3BzLmdhdGV3YXksXG4gICAgICBnYXRld2F5VGFyZ2V0TmFtZTogcHJvcHMuZ2F0ZXdheVRhcmdldE5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uczogcHJvcHMuY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnMsXG4gICAgICB0YXJnZXRDb25maWd1cmF0aW9uOiBMYW1iZGFUYXJnZXRDb25maWd1cmF0aW9uLmNyZWF0ZShcbiAgICAgICAgcHJvcHMubGFtYmRhRnVuY3Rpb24sXG4gICAgICAgIHByb3BzLnRvb2xTY2hlbWEsXG4gICAgICApLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBPcGVuQVBJLWJhc2VkIE1DUCB0YXJnZXRcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBjcmVhdGluZyBhIHRhcmdldCB0aGF0IGV4cG9zZXMgYW4gT3BlbkFQSS9SRVNUIEFQSVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gcHJvcHMgVGhlIHByb3BlcnRpZXMgZm9yIHRoZSBPcGVuQVBJIHRhcmdldFxuICAgKiBAcmV0dXJucyBBIG5ldyBHYXRld2F5VGFyZ2V0IGluc3RhbmNlXG4gICAqXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZvck9wZW5BcGkoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBHYXRld2F5VGFyZ2V0T3BlbkFwaVByb3BzLFxuICApOiBHYXRld2F5VGFyZ2V0IHtcbiAgICByZXR1cm4gbmV3IEdhdGV3YXlUYXJnZXQoc2NvcGUsIGlkLCB7XG4gICAgICBnYXRld2F5OiBwcm9wcy5nYXRld2F5LFxuICAgICAgZ2F0ZXdheVRhcmdldE5hbWU6IHByb3BzLmdhdGV3YXlUYXJnZXROYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IHByb3BzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zLFxuICAgICAgdGFyZ2V0Q29uZmlndXJhdGlvbjogT3BlbkFwaVRhcmdldENvbmZpZ3VyYXRpb24uY3JlYXRlKHByb3BzLmFwaVNjaGVtYSwgcHJvcHMudmFsaWRhdGVPcGVuQXBpU2NoZW1hKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBTbWl0aHktYmFzZWQgTUNQIHRhcmdldFxuICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIGNyZWF0aW5nIGEgdGFyZ2V0IHRoYXQgZXhwb3NlcyBhIFNtaXRoeS1tb2RlbGVkIEFQSVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gcHJvcHMgVGhlIHByb3BlcnRpZXMgZm9yIHRoZSBTbWl0aHkgdGFyZ2V0XG4gICAqIEByZXR1cm5zIEEgbmV3IEdhdGV3YXlUYXJnZXQgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9yU21pdGh5KFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogR2F0ZXdheVRhcmdldFNtaXRoeVByb3BzLFxuICApOiBHYXRld2F5VGFyZ2V0IHtcbiAgICByZXR1cm4gbmV3IEdhdGV3YXlUYXJnZXQoc2NvcGUsIGlkLCB7XG4gICAgICBnYXRld2F5OiBwcm9wcy5nYXRld2F5LFxuICAgICAgZ2F0ZXdheVRhcmdldE5hbWU6IHByb3BzLmdhdGV3YXlUYXJnZXROYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IHByb3BzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zLFxuICAgICAgdGFyZ2V0Q29uZmlndXJhdGlvbjogU21pdGh5VGFyZ2V0Q29uZmlndXJhdGlvbi5jcmVhdGUocHJvcHMuc21pdGh5TW9kZWwpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBNQ1AgU2VydmVyLWJhc2VkIHRhcmdldFxuICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIGNyZWF0aW5nIGEgdGFyZ2V0IHRoYXQgY29ubmVjdHMgdG8gYW4gZXh0ZXJuYWwgTUNQIHNlcnZlclxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gcHJvcHMgVGhlIHByb3BlcnRpZXMgZm9yIHRoZSBNQ1Agc2VydmVyIHRhcmdldFxuICAgKiBAcmV0dXJucyBBIG5ldyBHYXRld2F5VGFyZ2V0IGluc3RhbmNlXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9kZXZndWlkZS9nYXRld2F5LXRhcmdldC1NQ1BzZXJ2ZXJzLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9yTWNwU2VydmVyKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogR2F0ZXdheVRhcmdldE1jcFNlcnZlclByb3BzLFxuICApOiBHYXRld2F5VGFyZ2V0IHtcbiAgICByZXR1cm4gbmV3IEdhdGV3YXlUYXJnZXQoc2NvcGUsIGlkLCB7XG4gICAgICBnYXRld2F5OiBwcm9wcy5nYXRld2F5LFxuICAgICAgZ2F0ZXdheVRhcmdldE5hbWU6IHByb3BzLmdhdGV3YXlUYXJnZXROYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IHByb3BzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zLFxuICAgICAgdGFyZ2V0Q29uZmlndXJhdGlvbjogTWNwU2VydmVyVGFyZ2V0Q29uZmlndXJhdGlvbi5jcmVhdGUocHJvcHMuZW5kcG9pbnQpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGdhdGV3YXkgdGFyZ2V0XG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YXJnZXRBcm47XG5cbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhcmdldElkO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvbiBmb3IgdGhlIGdhdGV3YXkgdGFyZ2V0XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoaXMgdGFyZ2V0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBnYXRld2F5O1xuXG4gIC8qKlxuICAgKiBUaGUgY3JlZGVudGlhbCBwcm92aWRlcnMgZm9yIHRoaXMgdGFyZ2V0XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHByb3RvY29sIHR5cGUgKGFsd2F5cyBNQ1AgZm9yIG5vdylcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YXJnZXRQcm90b2NvbFR5cGUgPSBHYXRld2F5VGFyZ2V0UHJvdG9jb2xUeXBlLk1DUDtcblxuICAvKipcbiAgICogVGhlIHNwZWNpZmljIE1DUCB0YXJnZXQgdHlwZSAoTGFtYmRhLCBPcGVuQVBJLCBTbWl0aHksIG9yIE1DUCBTZXJ2ZXIpXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0VHlwZTogTWNwVGFyZ2V0VHlwZTtcblxuICAvKipcbiAgICogVGhlIHN0YXR1cyBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YXR1cz87XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgcmVhc29ucyBmb3IgdGhlIGdhdGV3YXkgdGFyZ2V0XG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGF0dXNSZWFzb25zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRpbWVzdGFtcCB3aGVuIHRoZSBnYXRld2F5IHRhcmdldCB3YXMgY3JlYXRlZFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlZEF0PztcblxuICAvKipcbiAgICogVGltZXN0YW1wIHdoZW4gdGhlIGdhdGV3YXkgdGFyZ2V0IHdhcyBsYXN0IHVwZGF0ZWRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVwZGF0ZWRBdD87XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0YXJnZXRSZXNvdXJjZTogYmVkcm9ja2FnZW50Y29yZS5DZm5HYXRld2F5VGFyZ2V0O1xuICBwcml2YXRlIHJlYWRvbmx5IHRhcmdldENvbmZpZ3VyYXRpb246IElUYXJnZXRDb25maWd1cmF0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBHYXRld2F5VGFyZ2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgLy8gVmFsaWRhdGUgYW5kIGFzc2lnbiBwcm9wZXJ0aWVzXG4gICAgdGhpcy5uYW1lID0gcHJvcHMuZ2F0ZXdheVRhcmdldE5hbWU7XG4gICAgdGhpcy52YWxpZGF0ZUdhdGV3YXlUYXJnZXROYW1lKHRoaXMubmFtZSk7XG5cbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gcHJvcHMuZGVzY3JpcHRpb247XG4gICAgaWYgKHRoaXMuZGVzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMudmFsaWRhdGVEZXNjcmlwdGlvbih0aGlzLmRlc2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLmdhdGV3YXkgPSBwcm9wcy5nYXRld2F5O1xuICAgIHRoaXMudGFyZ2V0Q29uZmlndXJhdGlvbiA9IHByb3BzLnRhcmdldENvbmZpZ3VyYXRpb247XG4gICAgdGhpcy50YXJnZXRUeXBlID0gdGhpcy50YXJnZXRDb25maWd1cmF0aW9uLnRhcmdldFR5cGU7XG5cbiAgICAvLyBHZXQgdGFyZ2V0LXNwZWNpZmljIGNyZWRlbnRpYWwgY29uZmlndXJhdGlvbnNcbiAgICB0aGlzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zID0gdGhpcy5fZ2V0VGFyZ2V0U3BlY2lmaWNDcmVkZW50aWFscyhcbiAgICAgIHByb3BzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zLFxuICAgICk7XG5cbiAgICAvLyBCaW5kIHRoZSB0YXJnZXQgY29uZmlndXJhdGlvblxuICAgIC8vIFRoaXMgc2V0cyB1cCBwZXJtaXNzaW9ucyBhbmQgZGVwZW5kZW5jaWVzXG4gICAgdGhpcy50YXJnZXRDb25maWd1cmF0aW9uLmJpbmQodGhpcywgdGhpcy5nYXRld2F5KTtcblxuICAgIC8vIENyZWF0ZSB0aGUgTDEgY29uc3RydWN0XG4gICAgY29uc3QgY2ZuUHJvcHM6IGJlZHJvY2thZ2VudGNvcmUuQ2ZuR2F0ZXdheVRhcmdldFByb3BzID0ge1xuICAgICAgZ2F0ZXdheUlkZW50aWZpZXI6IHRoaXMuZ2F0ZXdheS5nYXRld2F5SWQsXG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgIGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zOiBMYXp5LmFueSh7XG4gICAgICAgIHByb2R1Y2U6ICgpID0+IHRoaXMuX3JlbmRlckNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zKCksXG4gICAgICB9KSxcblxuICAgICAgdGFyZ2V0Q29uZmlndXJhdGlvbjogTGF6eS5hbnkoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiB0aGlzLnRhcmdldENvbmZpZ3VyYXRpb24uX3JlbmRlcigpLFxuICAgICAgfSksXG4gICAgfTtcblxuICAgIHRoaXMudGFyZ2V0UmVzb3VyY2UgPSBuZXcgYmVkcm9ja2FnZW50Y29yZS5DZm5HYXRld2F5VGFyZ2V0KFxuICAgICAgdGhpcyxcbiAgICAgICdSZXNvdXJjZScsXG4gICAgICBjZm5Qcm9wcyxcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnMpIHtcbiAgICAgIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucykge1xuICAgICAgICBwcm92aWRlclxuICAgICAgICAgIC5ncmFudE5lZWRlZFBlcm1pc3Npb25zVG9Sb2xlKHRoaXMuZ2F0ZXdheS5yb2xlKVxuICAgICAgICAgID8uYXBwbHlCZWZvcmUodGhpcy50YXJnZXRSZXNvdXJjZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy50YXJnZXRJZCA9IHRoaXMudGFyZ2V0UmVzb3VyY2UuYXR0clRhcmdldElkO1xuICAgIHRoaXMudGFyZ2V0QXJuID0gdGhpcy50YXJnZXRSZXNvdXJjZS5yZWY7XG4gICAgdGhpcy5zdGF0dXMgPSB0aGlzLnRhcmdldFJlc291cmNlLmF0dHJTdGF0dXM7XG4gICAgdGhpcy5zdGF0dXNSZWFzb25zID0gdGhpcy50YXJnZXRSZXNvdXJjZS5hdHRyU3RhdHVzUmVhc29ucztcbiAgICB0aGlzLmNyZWF0ZWRBdCA9IHRoaXMudGFyZ2V0UmVzb3VyY2UuYXR0ckNyZWF0ZWRBdDtcbiAgICB0aGlzLnVwZGF0ZWRBdCA9IHRoaXMudGFyZ2V0UmVzb3VyY2UuYXR0clVwZGF0ZWRBdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzeW5jaHJvbml6ZSB0aGlzIGdhdGV3YXkncyB0YXJnZXRzXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGdyYW50cyB0aGUgYFN5bmNocm9uaXplR2F0ZXdheVRhcmdldHNgIHBlcm1pc3Npb24sIHdoaWNoIGlzIHByaW1hcmlseVxuICAgKiBuZWVkZWQgZm9yIE1DUCBTZXJ2ZXIgdGFyZ2V0cyB3aGVuIHlvdSBuZWVkIHRvIHJlZnJlc2ggdGhlIHRvb2wgY2F0YWxvZyBhZnRlciB0aGVcbiAgICogTUNQIHNlcnZlcidzIHRvb2xzIGhhdmUgY2hhbmdlZC5cbiAgICpcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqL1xuICBATWV0aG9kTWV0YWRhdGEoKVxuICBwdWJsaWMgZ3JhbnRTeW5jKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWU6IGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBHQVRFV0FZX1NZTkNfUEVSTVMsXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLmdhdGV3YXkuZ2F0ZXdheUFybl0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB0aGUgY3JlZGVudGlhbCBwcm92aWRlciBjb25maWd1cmF0aW9ucyBiYXNlZCBvbiB0YXJnZXQgdHlwZVxuICAgKlxuICAgKiAtIExhbWJkYSAmIFNtaXRoeTogRGVmYXVsdCB0byBJQU0gcm9sZSBpZiBub3QgcHJvdmlkZWRcbiAgICogLSBNQ1AgU2VydmVyOiBSZXR1cm4gdW5kZWZpbmVkIGlmIG5vdCBwcm92aWRlZCAoc2VydmljZSBoYW5kbGVzIE5vQXV0aClcbiAgICogLSBPcGVuQVBJOiBSZXR1cm4gYXMtaXMgKG11c3QgYmUgZXhwbGljaXRseSBwcm92aWRlZClcbiAgICpcbiAgICogQHBhcmFtIHByb3ZpZGVkQ3JlZGVudGlhbHMgVGhlIGNyZWRlbnRpYWxzIGZyb20gcHJvcHNcbiAgICogQHJldHVybnMgVGhlIGNyZWRlbnRpYWwgY29uZmlndXJhdGlvbnMgdG8gdXNlLCBvciB1bmRlZmluZWRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIF9nZXRUYXJnZXRTcGVjaWZpY0NyZWRlbnRpYWxzKFxuICAgIHByb3ZpZGVkQ3JlZGVudGlhbHM6IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXSB8IHVuZGVmaW5lZCxcbiAgKTogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAocHJvdmlkZWRDcmVkZW50aWFscyAmJiBwcm92aWRlZENyZWRlbnRpYWxzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBwcm92aWRlZENyZWRlbnRpYWxzO1xuICAgIH1cbiAgICAvLyBBcHBseSB0YXJnZXQtc3BlY2lmaWMgZGVmYXVsdHMgd2hlbiBub3QgcHJvdmlkZWRcbiAgICBzd2l0Y2ggKHRoaXMudGFyZ2V0VHlwZSkge1xuICAgICAgY2FzZSBNY3BUYXJnZXRUeXBlLkxBTUJEQTpcbiAgICAgIGNhc2UgTWNwVGFyZ2V0VHlwZS5TTUlUSFlfTU9ERUw6XG4gICAgICAgIHJldHVybiBbR2F0ZXdheUNyZWRlbnRpYWxQcm92aWRlci5mcm9tSWFtUm9sZSgpXTtcblxuICAgICAgY2FzZSBNY3BUYXJnZXRUeXBlLk1DUF9TRVJWRVI6XG4gICAgICAgIC8vIFJldHVybiBlbXB0eSBhcnJheSwgLSBzZXJ2aWNlIGhhbmRsZXMgTm9BdXRoIGF1dG9tYXRpY2FsbHlcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgY2FzZSBNY3BUYXJnZXRUeXBlLk9QRU5BUElfU0NIRU1BOlxuICAgICAgICAvLyBObyBkZWZhdWx0IC0gbXVzdCBiZSBleHBsaWNpdGx5IHByb3ZpZGVkLCBzZXJ2aWNlIGhhbmRsZXMgYXV0b21hdGljYWxseVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gW0dhdGV3YXlDcmVkZW50aWFsUHJvdmlkZXIuZnJvbUlhbVJvbGUoKV07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgY3JlZGVudGlhbCBwcm92aWRlciBjb25maWd1cmF0aW9ucyBmb3IgQ2xvdWRGb3JtYXRpb25cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIF9yZW5kZXJDcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zPy5tYXAocHJvdmlkZXIgPT4gcHJvdmlkZXIuX3JlbmRlcigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGdhdGV3YXkgdGFyZ2V0IG5hbWUgZm9ybWF0XG4gICAqIFBhdHRlcm46IF4oWzAtOWEtekEtWl1bLV0/KXsxLDEwMH0kXG4gICAqIE1heCBsZW5ndGg6IDEwMCBjaGFyYWN0ZXJzXG4gICAqIEBwYXJhbSBnYXRld2F5VGFyZ2V0TmFtZSBUaGUgZ2F0ZXdheSB0YXJnZXQgbmFtZSB0byB2YWxpZGF0ZVxuICAgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBuYW1lIGlzIGludmFsaWRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlR2F0ZXdheVRhcmdldE5hbWUoZ2F0ZXdheVRhcmdldE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoZ2F0ZXdheVRhcmdldE5hbWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGVuZ3RoRXJyb3JzID0gdmFsaWRhdGVTdHJpbmdGaWVsZCh7XG4gICAgICB2YWx1ZTogZ2F0ZXdheVRhcmdldE5hbWUsXG4gICAgICBmaWVsZE5hbWU6ICdHYXRld2F5IHRhcmdldCBuYW1lJyxcbiAgICAgIG1pbkxlbmd0aDogMSxcbiAgICAgIG1heExlbmd0aDogMTAwLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcGF0dGVybkVycm9ycyA9IHZhbGlkYXRlRmllbGRQYXR0ZXJuKFxuICAgICAgZ2F0ZXdheVRhcmdldE5hbWUsXG4gICAgICAnR2F0ZXdheSB0YXJnZXQgbmFtZScsXG4gICAgICAvXihbMC05YS16QS1aXVstXT8pezEsMTAwfSQvLFxuICAgICAgJ0dhdGV3YXkgdGFyZ2V0IG5hbWUgbXVzdCBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIGh5cGhlbnMsIHdpdGggaHlwaGVucyBvbmx5IGJldHdlZW4gY2hhcmFjdGVycycsXG4gICAgKTtcblxuICAgIGNvbnN0IGFsbEVycm9ycyA9IFsuLi5sZW5ndGhFcnJvcnMsIC4uLnBhdHRlcm5FcnJvcnNdO1xuICAgIGlmIChhbGxFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihhbGxFcnJvcnMuam9pbignXFxuJykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGRlc2NyaXB0aW9uIGZvcm1hdFxuICAgKiBNdXN0IGJlIGJldHdlZW4gMSBhbmQgMjAwIGNoYXJhY3RlcnNcbiAgICogQHRocm93cyBFcnJvciBpZiB2YWxpZGF0aW9uIGZhaWxzXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKGRlc2NyaXB0aW9uKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9ycyA9IHZhbGlkYXRlU3RyaW5nRmllbGQoe1xuICAgICAgdmFsdWU6IGRlc2NyaXB0aW9uLFxuICAgICAgZmllbGROYW1lOiAnR2F0ZXdheSB0YXJnZXQgZGVzY3JpcHRpb24nLFxuICAgICAgbWluTGVuZ3RoOiAxLFxuICAgICAgbWF4TGVuZ3RoOiAyMDAsXG4gICAgfSk7XG5cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoZXJyb3JzLmpvaW4oJ1xcbicpKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
453
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGFyZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUFpRDtBQUNqRCxxRUFBcUU7QUFDckUsMkNBQTJDO0FBRTNDLDhFQUE4RjtBQUM5RiwwRUFBMEU7QUFHMUUsb0NBQThDO0FBRzlDLCtDQUErSDtBQUMvSCxpRUFBOEs7QUFDOUssOEVBQTRHO0FBQzVHLDhEQUFtRztBQXVNbkc7OytFQUUrRTtBQUUvRTs7Ozs7Ozs7O0dBU0c7SUFFVSxhQUFhOzRCQUR6QixvQ0FBa0I7Ozs7c0JBQ2dCLCtCQUFpQjs7OzZCQUF6QixTQUFRLFdBQWlCOzs7O3FDQTBSakQsSUFBQSxrQ0FBYyxHQUFFO1lBQ2pCLDhLQUFPLFNBQVMsNkRBTWY7WUFqU0gsNktBc1lDOzs7OztRQXJZQyxzQ0FBc0M7UUFDL0IsTUFBTSxDQUFVLHFCQUFxQixHQUFXLG9EQUFvRCxDQUFDO1FBQzVHOzs7Ozs7OztXQVFHO1FBQ0ksTUFBTSxDQUFDLDJCQUEyQixDQUN2QyxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBOEI7Ozs7Ozs7Ozs7WUFFOUIsTUFBTSxxQkFBc0IsU0FBUSwrQkFBaUI7Z0JBQ25DLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO2dCQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztnQkFDMUIsSUFBSSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0IsV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQzNCLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO2dCQUN4QixnQ0FBZ0MsR0FBRyxFQUFFLENBQUM7Z0JBQ3RDLGtCQUFrQixHQUFHLHVDQUF5QixDQUFDLEdBQUcsQ0FBQztnQkFDbkQsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ3RCLGFBQWEsR0FB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LENBQUM7U0FDRjtRQUVEOzs7OztXQUtHO1FBQ0ssbUJBQW1CLENBQUMsV0FBbUI7WUFDN0MsSUFBSSxtQkFBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxPQUFPO1lBQ1QsQ0FBQztZQUVELE1BQU0sTUFBTSxHQUFHLElBQUEsd0NBQW1CLEVBQUM7Z0JBQ2pDLEtBQUssRUFBRSxXQUFXO2dCQUNsQixTQUFTLEVBQUUsNEJBQTRCO2dCQUN2QyxTQUFTLEVBQUUsQ0FBQztnQkFDWixTQUFTLEVBQUUsR0FBRzthQUNmLENBQUMsQ0FBQztZQUVILElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxJQUFJLG9DQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQy9DLENBQUM7U0FDRjs7WUFyWVUsdURBQWE7Ozs7O0FBQWIsc0NBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXp5LCBUb2tlbiwgTmFtZXMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBiZWRyb2NrYWdlbnRjb3JlIGZyb20gJ2F3cy1jZGstbGliL2F3cy1iZWRyb2NrYWdlbnRjb3JlJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IElGdW5jdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEsIE1ldGhvZE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSUdhdGV3YXkgfSBmcm9tICcuLi9nYXRld2F5LWJhc2UnO1xuaW1wb3J0IHsgR0FURVdBWV9TWU5DX1BFUk1TIH0gZnJvbSAnLi4vcGVybXMnO1xuaW1wb3J0IHsgQXBpU2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEvYXBpLXNjaGVtYSc7XG5pbXBvcnQgeyBUb29sU2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEvdG9vbC1zY2hlbWEnO1xuaW1wb3J0IHsgR2F0ZXdheVRhcmdldEJhc2UsIEdhdGV3YXlUYXJnZXRQcm90b2NvbFR5cGUsIElHYXRld2F5VGFyZ2V0LCBJTWNwR2F0ZXdheVRhcmdldCwgTWNwVGFyZ2V0VHlwZSB9IGZyb20gJy4vdGFyZ2V0LWJhc2UnO1xuaW1wb3J0IHsgSVRhcmdldENvbmZpZ3VyYXRpb24sIExhbWJkYVRhcmdldENvbmZpZ3VyYXRpb24sIE1jcFNlcnZlclRhcmdldENvbmZpZ3VyYXRpb24sIE9wZW5BcGlUYXJnZXRDb25maWd1cmF0aW9uLCBTbWl0aHlUYXJnZXRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi90YXJnZXQtY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyLCBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnIH0gZnJvbSAnLi4vb3V0Ym91bmQtYXV0aC9jcmVkZW50aWFsLXByb3ZpZGVyJztcbmltcG9ydCB7IHZhbGlkYXRlU3RyaW5nRmllbGQsIHZhbGlkYXRlRmllbGRQYXR0ZXJuLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi92YWxpZGF0aW9uLWhlbHBlcnMnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvcHNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKiBDb21tb24gcHJvcGVydGllcyBmb3IgYWxsIEdhdGV3YXkgVGFyZ2V0IHR5cGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZXdheVRhcmdldENvbW1vblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKiBUaGUgbmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGdhdGV3YXlcbiAgICogUGF0dGVybjogXihbMC05YS16QS1aXVstXT8pezEsMTAwfSRcbiAgICogQGRlZmF1bHQgLSBhdXRvIGdlbmVyYXRlXG4gICAqL1xuICByZWFkb25seSBnYXRld2F5VGFyZ2V0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgZGVzY3JpcHRpb24gZm9yIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKiBUaGUgZGVzY3JpcHRpb24gY2FuIGhhdmUgdXAgdG8gMjAwIGNoYXJhY3RlcnNcbiAgICogQGRlZmF1bHQgLSBObyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBHYXRld2F5IFRhcmdldCByZXNvdXJjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhdGV3YXlUYXJnZXRQcm9wcyBleHRlbmRzIEdhdGV3YXlUYXJnZXRDb21tb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZ2F0ZXdheSB0aGlzIHRhcmdldCBiZWxvbmdzIHRvXG4gICAqL1xuICByZWFkb25seSBnYXRld2F5OiBJR2F0ZXdheTtcblxuICAvKipcbiAgICogVGhlIHRhcmdldCBjb25maWd1cmF0aW9uIChMYW1iZGEsIE9wZW5BUEksIG9yIFNtaXRoeSlcbiAgICogVXNlIG9uZSBvZiB0aGUgY29uZmlndXJhdGlvbiBoZWxwZXIgY2xhc3NlczpcbiAgICogLSBMYW1iZGFUYXJnZXRDb25maWd1cmF0aW9uLmNyZWF0ZSgpXG4gICAqIC0gT3BlbkFwaVRhcmdldENvbmZpZ3VyYXRpb24uY3JlYXRlKClcbiAgICogLSBTbWl0aHlUYXJnZXRDb25maWd1cmF0aW9uLmNyZWF0ZSgpXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRDb25maWd1cmF0aW9uOiBJVGFyZ2V0Q29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogQ3JlZGVudGlhbCBwcm92aWRlcnMgZm9yIGF1dGhlbnRpY2F0aW9uXG4gICAqIEBkZWZhdWx0IC0gW0dhdGV3YXlDcmVkZW50aWFsUHJvdmlkZXIuZnJvbUlhbVJvbGUoKV1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zPzogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ1tdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgTGFtYmRhLWJhc2VkIEdhdGV3YXkgVGFyZ2V0XG4gKiBDb252ZW5pZW5jZSBpbnRlcmZhY2UgZm9yIHRoZSBtb3N0IGNvbW1vbiB1c2UgY2FzZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhdGV3YXlUYXJnZXRMYW1iZGFQcm9wcyBleHRlbmRzIEdhdGV3YXlUYXJnZXRDb21tb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZ2F0ZXdheSB0aGlzIHRhcmdldCBiZWxvbmdzIHRvXG4gICAqL1xuICByZWFkb25seSBnYXRld2F5OiBJR2F0ZXdheTtcblxuICAvKipcbiAgICogVGhlIExhbWJkYSBmdW5jdGlvbiB0byBhc3NvY2lhdGUgd2l0aCB0aGlzIHRhcmdldFxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb246IElGdW5jdGlvbjtcblxuICAvKipcbiAgICogVGhlIHRvb2wgc2NoZW1hIGRlZmluaW5nIHRoZSBhdmFpbGFibGUgdG9vbHNcbiAgICovXG4gIHJlYWRvbmx5IHRvb2xTY2hlbWE6IFRvb2xTY2hlbWE7XG5cbiAgLyoqXG4gICAqIENyZWRlbnRpYWwgcHJvdmlkZXJzIGZvciBhdXRoZW50aWNhdGlvblxuICAgKiBMYW1iZGEgdGFyZ2V0cyBvbmx5IHN1cHBvcnQgSUFNIHJvbGUgYXV0aGVudGljYXRpb25cbiAgICogQGRlZmF1bHQgLSBbR2F0ZXdheUNyZWRlbnRpYWxQcm92aWRlci5mcm9tSWFtUm9sZSgpXVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM/OiBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYW4gT3BlbkFQSS1iYXNlZCBHYXRld2F5IFRhcmdldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhdGV3YXlUYXJnZXRPcGVuQXBpUHJvcHMgZXh0ZW5kcyBHYXRld2F5VGFyZ2V0Q29tbW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSBPcGVuQVBJIHNjaGVtYSBkZWZpbmluZyB0aGUgQVBJXG4gICAqL1xuICByZWFkb25seSBhcGlTY2hlbWE6IEFwaVNjaGVtYTtcblxuICAvKipcbiAgICogV2hldGhlciB0byB2YWxpZGF0ZSB0aGUgT3BlbkFQSSBzY2hlbWEgKG9ubHkgYXBwbGllcyB0byBpbmxpbmUgc2NoZW1hcylcbiAgICogTm90ZTogVmFsaWRhdGlvbiBpcyBvbmx5IHBlcmZvcm1lZCBmb3IgaW5saW5lIHNjaGVtYXMgZHVyaW5nIENESyBzeW50aGVzaXMuXG4gICAqIFMzIGFuZCBhc3NldC1iYXNlZCBzY2hlbWFzIGNhbm5vdCBiZSB2YWxpZGF0ZWQgYXQgc3ludGhlc2lzIHRpbWUuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHZhbGlkYXRlT3BlbkFwaVNjaGVtYT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENyZWRlbnRpYWwgcHJvdmlkZXJzIGZvciBhdXRoZW50aWNhdGlvblxuICAgKiBPcGVuQVBJIHRhcmdldHMgc3VwcG9ydCBBUEkga2V5IGFuZCBPQXV0aCBhdXRoZW50aWNhdGlvbiAobm90IElBTSlcbiAgICogQGRlZmF1bHQgLSBJZiBub3QgcHJvdmlkZWQsIGRlZmF1bHRzIHRvIElBTSByb2xlIHdoaWNoIHdpbGwgZmFpbCBhdCBydW50aW1lXG4gICAqL1xuICByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucz86IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIFNtaXRoeS1iYXNlZCBHYXRld2F5IFRhcmdldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhdGV3YXlUYXJnZXRTbWl0aHlQcm9wcyBleHRlbmRzIEdhdGV3YXlUYXJnZXRDb21tb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZ2F0ZXdheSB0aGlzIHRhcmdldCBiZWxvbmdzIHRvXG4gICAqL1xuICByZWFkb25seSBnYXRld2F5OiBJR2F0ZXdheTtcblxuICAvKipcbiAgICogVGhlIFNtaXRoeSBtb2RlbCBkZWZpbmluZyB0aGUgQVBJXG4gICAqL1xuICByZWFkb25seSBzbWl0aHlNb2RlbDogQXBpU2NoZW1hO1xuXG4gIC8qKlxuICAgKiBDcmVkZW50aWFsIHByb3ZpZGVycyBmb3IgYXV0aGVudGljYXRpb25cbiAgICogU21pdGh5IHRhcmdldHMgb25seSBzdXBwb3J0IElBTSByb2xlIGF1dGhlbnRpY2F0aW9uXG4gICAqIEBkZWZhdWx0IC0gW0dhdGV3YXlDcmVkZW50aWFsUHJvdmlkZXIuZnJvbUlhbVJvbGUoKV1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zPzogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ1tdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGFuIE1DUCBTZXJ2ZXItYmFzZWQgR2F0ZXdheSBUYXJnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRld2F5VGFyZ2V0TWNwU2VydmVyUHJvcHMgZXh0ZW5kcyBHYXRld2F5VGFyZ2V0Q29tbW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSBIVFRQUyBlbmRwb2ludCBVUkwgb2YgdGhlIE1DUCBzZXJ2ZXJcbiAgICpcbiAgICogVGhlIGVuZHBvaW50IG11c3Q6XG4gICAqIC0gVXNlIEhUVFBTIHByb3RvY29sXG4gICAqIC0gQmUgcHJvcGVybHkgVVJMLWVuY29kZWRcbiAgICogLSBQb2ludCB0byBhbiBNQ1Agc2VydmVyIHRoYXQgaW1wbGVtZW50cyB0b29sIGNhcGFiaWxpdGllc1xuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlZGVudGlhbCBwcm92aWRlcnMgZm9yIGF1dGhlbnRpY2F0aW9uXG4gICAqL1xuICByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uczogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ1tdO1xufVxuXG4vKipcbiAqIEF0dHJpYnV0ZXMgZm9yIGltcG9ydGluZyBhbiBleGlzdGluZyBHYXRld2F5IFRhcmdldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhdGV3YXlUYXJnZXRBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGdhdGV3YXkgdGFyZ2V0XG4gICAqL1xuICByZWFkb25seSB0YXJnZXRBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGdhdGV3YXkgdGFyZ2V0XG4gICAqL1xuICByZWFkb25seSBnYXRld2F5VGFyZ2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZ2F0ZXdheSB0aGlzIHRhcmdldCBiZWxvbmdzIHRvXG4gICAqL1xuICByZWFkb25seSBnYXRld2F5OiBJR2F0ZXdheTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgc3RhdHVzIG9mIHRoZSB0YXJnZXRcbiAgICogQGRlZmF1bHQgLSBObyBzdGF0dXNcbiAgICovXG4gIHJlYWRvbmx5IHN0YXR1cz86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgY3JlYXRpb24gdGltZXN0YW1wXG4gICAqIEBkZWZhdWx0IC0gTm8gY3JlYXRpb24gdGltZXN0YW1wXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGxhc3QgdXBkYXRlIHRpbWVzdGFtcFxuICAgKiBAZGVmYXVsdCAtIE5vIHVwZGF0ZSB0aW1lc3RhbXBcbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZWRBdD86IHN0cmluZztcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICpcbiAqIERlZmluZXMgdG9vbHMgdGhhdCB5b3VyIGdhdGV3YXkgd2lsbCBob3N0LiBTdXBwb3J0cyBtdWx0aXBsZSB0YXJnZXQgdHlwZXM6XG4gKiAtIExhbWJkYTogV3JhcHMgYSBMYW1iZGEgZnVuY3Rpb24gYXMgTUNQIHRvb2xzXG4gKiAtIE9wZW5BUEk6IEV4cG9zZXMgYW4gT3BlbkFQSS9SRVNUIEFQSSBhcyBNQ1AgdG9vbHNcbiAqIC0gU21pdGh5OiBFeHBvc2VzIGEgU21pdGh5LW1vZGVsZWQgQVBJIGFzIE1DUCB0b29sc1xuICpcbiAqIEByZXNvdXJjZSBBV1M6OkJlZHJvY2tBZ2VudENvcmU6OkdhdGV3YXlUYXJnZXRcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9kZXZndWlkZS9nYXRld2F5LWJ1aWxkaW5nLWFkZGluZy10YXJnZXRzLmh0bWxcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIEdhdGV3YXlUYXJnZXQgZXh0ZW5kcyBHYXRld2F5VGFyZ2V0QmFzZSBpbXBsZW1lbnRzIElNY3BHYXRld2F5VGFyZ2V0IHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtYmVkcm9jay1hZ2VudGNvcmUtYWxwaGEuR2F0ZXdheVRhcmdldCc7XG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgR2F0ZXdheSBUYXJnZXQgdXNpbmcgaXRzIGF0dHJpYnV0ZXNcbiAgICogVGhpcyBhbGxvd3MgeW91IHRvIHJlZmVyZW5jZSBhIEdhdGV3YXkgVGFyZ2V0IHRoYXQgd2FzIGNyZWF0ZWQgb3V0c2lkZSBvZiBDREtcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QgaWRcbiAgICogQHBhcmFtIGF0dHJzIFRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBleGlzdGluZyBHYXRld2F5IFRhcmdldFxuICAgKiBAcmV0dXJucyBBbiBJR2F0ZXdheVRhcmdldCBpbnN0YW5jZSByZXByZXNlbnRpbmcgdGhlIGltcG9ydGVkIHRhcmdldFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tR2F0ZXdheVRhcmdldEF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBHYXRld2F5VGFyZ2V0QXR0cmlidXRlcyxcbiAgKTogSUdhdGV3YXlUYXJnZXQge1xuICAgIGNsYXNzIEltcG9ydGVkR2F0ZXdheVRhcmdldCBleHRlbmRzIEdhdGV3YXlUYXJnZXRCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YXJnZXRBcm4gPSBhdHRycy50YXJnZXRBcm47XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0SWQgPSBhdHRycy50YXJnZXRJZDtcbiAgICAgIHB1YmxpYyByZWFkb25seSBuYW1lID0gYXR0cnMuZ2F0ZXdheVRhcmdldE5hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb24gPSBhdHRycy5zdGF0dXM7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZ2F0ZXdheSA9IGF0dHJzLmdhdGV3YXk7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnMgPSBbXTtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YXJnZXRQcm90b2NvbFR5cGUgPSBHYXRld2F5VGFyZ2V0UHJvdG9jb2xUeXBlLk1DUDtcbiAgICAgIHB1YmxpYyByZWFkb25seSBzdGF0dXMgPSBhdHRycy5zdGF0dXM7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzUmVhc29ucyA9IHVuZGVmaW5lZDtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjcmVhdGVkQXQgPSBhdHRycy5jcmVhdGVkQXQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdXBkYXRlZEF0ID0gYXR0cnMudXBkYXRlZEF0O1xuXG4gICAgICBjb25zdHJ1Y3RvcihzOiBDb25zdHJ1Y3QsIGk6IHN0cmluZykge1xuICAgICAgICBzdXBlcihzLCBpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRlZEdhdGV3YXlUYXJnZXQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBMYW1iZGEtYmFzZWQgTUNQIHRhcmdldFxuICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIGNyZWF0aW5nIGEgdGFyZ2V0IHRoYXQgd3JhcHMgYSBMYW1iZGEgZnVuY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QgaWRcbiAgICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgTGFtYmRhIHRhcmdldFxuICAgKiBAcmV0dXJucyBBIG5ldyBHYXRld2F5VGFyZ2V0IGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZvckxhbWJkYShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEdhdGV3YXlUYXJnZXRMYW1iZGFQcm9wcyxcbiAgKTogR2F0ZXdheVRhcmdldCB7XG4gICAgcmV0dXJuIG5ldyBHYXRld2F5VGFyZ2V0KHNjb3BlLCBpZCwge1xuICAgICAgZ2F0ZXdheTogcHJvcHMuZ2F0ZXdheSxcbiAgICAgIGdhdGV3YXlUYXJnZXROYW1lOiBwcm9wcy5nYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zOiBwcm9wcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyxcbiAgICAgIHRhcmdldENvbmZpZ3VyYXRpb246IExhbWJkYVRhcmdldENvbmZpZ3VyYXRpb24uY3JlYXRlKFxuICAgICAgICBwcm9wcy5sYW1iZGFGdW5jdGlvbixcbiAgICAgICAgcHJvcHMudG9vbFNjaGVtYSxcbiAgICAgICksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIE9wZW5BUEktYmFzZWQgTUNQIHRhcmdldFxuICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIGNyZWF0aW5nIGEgdGFyZ2V0IHRoYXQgZXhwb3NlcyBhbiBPcGVuQVBJL1JFU1QgQVBJXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0IGlkXG4gICAqIEBwYXJhbSBwcm9wcyBUaGUgcHJvcGVydGllcyBmb3IgdGhlIE9wZW5BUEkgdGFyZ2V0XG4gICAqIEByZXR1cm5zIEEgbmV3IEdhdGV3YXlUYXJnZXQgaW5zdGFuY2VcbiAgICpcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9yT3BlbkFwaShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEdhdGV3YXlUYXJnZXRPcGVuQXBpUHJvcHMsXG4gICk6IEdhdGV3YXlUYXJnZXQge1xuICAgIHJldHVybiBuZXcgR2F0ZXdheVRhcmdldChzY29wZSwgaWQsIHtcbiAgICAgIGdhdGV3YXk6IHByb3BzLmdhdGV3YXksXG4gICAgICBnYXRld2F5VGFyZ2V0TmFtZTogcHJvcHMuZ2F0ZXdheVRhcmdldE5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uczogcHJvcHMuY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnMsXG4gICAgICB0YXJnZXRDb25maWd1cmF0aW9uOiBPcGVuQXBpVGFyZ2V0Q29uZmlndXJhdGlvbi5jcmVhdGUocHJvcHMuYXBpU2NoZW1hLCBwcm9wcy52YWxpZGF0ZU9wZW5BcGlTY2hlbWEpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIFNtaXRoeS1iYXNlZCBNQ1AgdGFyZ2V0XG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgY3JlYXRpbmcgYSB0YXJnZXQgdGhhdCBleHBvc2VzIGEgU21pdGh5LW1vZGVsZWQgQVBJXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0IGlkXG4gICAqIEBwYXJhbSBwcm9wcyBUaGUgcHJvcGVydGllcyBmb3IgdGhlIFNtaXRoeSB0YXJnZXRcbiAgICogQHJldHVybnMgQSBuZXcgR2F0ZXdheVRhcmdldCBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JTbWl0aHkoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBHYXRld2F5VGFyZ2V0U21pdGh5UHJvcHMsXG4gICk6IEdhdGV3YXlUYXJnZXQge1xuICAgIHJldHVybiBuZXcgR2F0ZXdheVRhcmdldChzY29wZSwgaWQsIHtcbiAgICAgIGdhdGV3YXk6IHByb3BzLmdhdGV3YXksXG4gICAgICBnYXRld2F5VGFyZ2V0TmFtZTogcHJvcHMuZ2F0ZXdheVRhcmdldE5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uczogcHJvcHMuY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnMsXG4gICAgICB0YXJnZXRDb25maWd1cmF0aW9uOiBTbWl0aHlUYXJnZXRDb25maWd1cmF0aW9uLmNyZWF0ZShwcm9wcy5zbWl0aHlNb2RlbCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIE1DUCBTZXJ2ZXItYmFzZWQgdGFyZ2V0XG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgY3JlYXRpbmcgYSB0YXJnZXQgdGhhdCBjb25uZWN0cyB0byBhbiBleHRlcm5hbCBNQ1Agc2VydmVyXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0IGlkXG4gICAqIEBwYXJhbSBwcm9wcyBUaGUgcHJvcGVydGllcyBmb3IgdGhlIE1DUCBzZXJ2ZXIgdGFyZ2V0XG4gICAqIEByZXR1cm5zIEEgbmV3IEdhdGV3YXlUYXJnZXQgaW5zdGFuY2VcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L2Rldmd1aWRlL2dhdGV3YXktdGFyZ2V0LU1DUHNlcnZlcnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JNY3BTZXJ2ZXIoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBHYXRld2F5VGFyZ2V0TWNwU2VydmVyUHJvcHMsXG4gICk6IEdhdGV3YXlUYXJnZXQge1xuICAgIHJldHVybiBuZXcgR2F0ZXdheVRhcmdldChzY29wZSwgaWQsIHtcbiAgICAgIGdhdGV3YXk6IHByb3BzLmdhdGV3YXksXG4gICAgICBnYXRld2F5VGFyZ2V0TmFtZTogcHJvcHMuZ2F0ZXdheVRhcmdldE5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uczogcHJvcHMuY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnMsXG4gICAgICB0YXJnZXRDb25maWd1cmF0aW9uOiBNY3BTZXJ2ZXJUYXJnZXRDb25maWd1cmF0aW9uLmNyZWF0ZShwcm9wcy5lbmRwb2ludCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhcmdldEFybjtcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0SWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5hbWU7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlc2NyaXB0aW9uIGZvciB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdGlvbjtcblxuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSBjcmVkZW50aWFsIHByb3ZpZGVycyBmb3IgdGhpcyB0YXJnZXRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uczogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvdG9jb2wgdHlwZSAoYWx3YXlzIE1DUCBmb3Igbm93KVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhcmdldFByb3RvY29sVHlwZSA9IEdhdGV3YXlUYXJnZXRQcm90b2NvbFR5cGUuTUNQO1xuXG4gIC8qKlxuICAgKiBUaGUgc3BlY2lmaWMgTUNQIHRhcmdldCB0eXBlIChMYW1iZGEsIE9wZW5BUEksIFNtaXRoeSwgb3IgTUNQIFNlcnZlcilcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YXJnZXRUeXBlOiBNY3BUYXJnZXRUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzPztcblxuICAvKipcbiAgICogVGhlIHN0YXR1cyByZWFzb25zIGZvciB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YXR1c1JlYXNvbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGltZXN0YW1wIHdoZW4gdGhlIGdhdGV3YXkgdGFyZ2V0IHdhcyBjcmVhdGVkXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGVkQXQ/O1xuXG4gIC8qKlxuICAgKiBUaW1lc3RhbXAgd2hlbiB0aGUgZ2F0ZXdheSB0YXJnZXQgd2FzIGxhc3QgdXBkYXRlZFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXBkYXRlZEF0PztcblxuICBwcml2YXRlIHJlYWRvbmx5IHRhcmdldFJlc291cmNlOiBiZWRyb2NrYWdlbnRjb3JlLkNmbkdhdGV3YXlUYXJnZXQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFyZ2V0Q29uZmlndXJhdGlvbjogSVRhcmdldENvbmZpZ3VyYXRpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEdhdGV3YXlUYXJnZXRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLy8gTWF4aW11bSBuYW1lIGxlbmd0aCBvZiAxMDAgY2hhcmFjdGVyc1xuICAgICAgLy8gQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1RlbXBsYXRlUmVmZXJlbmNlL2F3cy1yZXNvdXJjZS1iZWRyb2NrYWdlbnRjb3JlLWdhdGV3YXl0YXJnZXQuaHRtbCNjZm4tYmVkcm9ja2FnZW50Y29yZS1nYXRld2F5dGFyZ2V0LW5hbWVcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMuZ2F0ZXdheVRhcmdldE5hbWUgPz9cbiAgICAgICAgTGF6eS5zdHJpbmcoe1xuICAgICAgICAgIHByb2R1Y2U6ICgpID0+IE5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7IG1heExlbmd0aDogMTAwIH0pLFxuICAgICAgICB9KSxcbiAgICB9KTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIC8vIFZhbGlkYXRlIGFuZCBhc3NpZ24gcHJvcGVydGllc1xuICAgIHRoaXMubmFtZSA9IHRoaXMucGh5c2ljYWxOYW1lO1xuICAgIHRoaXMudmFsaWRhdGVHYXRld2F5VGFyZ2V0TmFtZSh0aGlzLm5hbWUpO1xuXG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uO1xuICAgIGlmICh0aGlzLmRlc2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlRGVzY3JpcHRpb24odGhpcy5kZXNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgdGhpcy5nYXRld2F5ID0gcHJvcHMuZ2F0ZXdheTtcbiAgICB0aGlzLnRhcmdldENvbmZpZ3VyYXRpb24gPSBwcm9wcy50YXJnZXRDb25maWd1cmF0aW9uO1xuICAgIHRoaXMudGFyZ2V0VHlwZSA9IHRoaXMudGFyZ2V0Q29uZmlndXJhdGlvbi50YXJnZXRUeXBlO1xuXG4gICAgLy8gR2V0IHRhcmdldC1zcGVjaWZpYyBjcmVkZW50aWFsIGNvbmZpZ3VyYXRpb25zXG4gICAgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyA9IHRoaXMuX2dldFRhcmdldFNwZWNpZmljQ3JlZGVudGlhbHMoXG4gICAgICBwcm9wcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyxcbiAgICApO1xuXG4gICAgLy8gQmluZCB0aGUgdGFyZ2V0IGNvbmZpZ3VyYXRpb25cbiAgICAvLyBUaGlzIHNldHMgdXAgcGVybWlzc2lvbnMgYW5kIGRlcGVuZGVuY2llc1xuICAgIHRoaXMudGFyZ2V0Q29uZmlndXJhdGlvbi5iaW5kKHRoaXMsIHRoaXMuZ2F0ZXdheSk7XG5cbiAgICAvLyBDcmVhdGUgdGhlIEwxIGNvbnN0cnVjdFxuICAgIGNvbnN0IGNmblByb3BzOiBiZWRyb2NrYWdlbnRjb3JlLkNmbkdhdGV3YXlUYXJnZXRQcm9wcyA9IHtcbiAgICAgIGdhdGV3YXlJZGVudGlmaWVyOiB0aGlzLmdhdGV3YXkuZ2F0ZXdheUlkLFxuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uczogTGF6eS5hbnkoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiB0aGlzLl9yZW5kZXJDcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucygpLFxuICAgICAgfSksXG5cbiAgICAgIHRhcmdldENvbmZpZ3VyYXRpb246IExhenkuYW55KHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy50YXJnZXRDb25maWd1cmF0aW9uLl9yZW5kZXIoKSxcbiAgICAgIH0pLFxuICAgIH07XG5cbiAgICB0aGlzLnRhcmdldFJlc291cmNlID0gbmV3IGJlZHJvY2thZ2VudGNvcmUuQ2ZuR2F0ZXdheVRhcmdldChcbiAgICAgIHRoaXMsXG4gICAgICAnUmVzb3VyY2UnLFxuICAgICAgY2ZuUHJvcHMsXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMuY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnMpIHtcbiAgICAgICAgcHJvdmlkZXJcbiAgICAgICAgICAuZ3JhbnROZWVkZWRQZXJtaXNzaW9uc1RvUm9sZSh0aGlzLmdhdGV3YXkucm9sZSlcbiAgICAgICAgICA/LmFwcGx5QmVmb3JlKHRoaXMudGFyZ2V0UmVzb3VyY2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudGFyZ2V0SWQgPSB0aGlzLnRhcmdldFJlc291cmNlLmF0dHJUYXJnZXRJZDtcbiAgICB0aGlzLnRhcmdldEFybiA9IHRoaXMudGFyZ2V0UmVzb3VyY2UucmVmO1xuICAgIHRoaXMuc3RhdHVzID0gdGhpcy50YXJnZXRSZXNvdXJjZS5hdHRyU3RhdHVzO1xuICAgIHRoaXMuc3RhdHVzUmVhc29ucyA9IHRoaXMudGFyZ2V0UmVzb3VyY2UuYXR0clN0YXR1c1JlYXNvbnM7XG4gICAgdGhpcy5jcmVhdGVkQXQgPSB0aGlzLnRhcmdldFJlc291cmNlLmF0dHJDcmVhdGVkQXQ7XG4gICAgdGhpcy51cGRhdGVkQXQgPSB0aGlzLnRhcmdldFJlc291cmNlLmF0dHJVcGRhdGVkQXQ7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gc3luY2hyb25pemUgdGhpcyBnYXRld2F5J3MgdGFyZ2V0c1xuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBncmFudHMgdGhlIGBTeW5jaHJvbml6ZUdhdGV3YXlUYXJnZXRzYCBwZXJtaXNzaW9uLCB3aGljaCBpcyBwcmltYXJpbHlcbiAgICogbmVlZGVkIGZvciBNQ1AgU2VydmVyIHRhcmdldHMgd2hlbiB5b3UgbmVlZCB0byByZWZyZXNoIHRoZSB0b29sIGNhdGFsb2cgYWZ0ZXIgdGhlXG4gICAqIE1DUCBzZXJ2ZXIncyB0b29scyBoYXZlIGNoYW5nZWQuXG4gICAqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgQE1ldGhvZE1ldGFkYXRhKClcbiAgcHVibGljIGdyYW50U3luYyhncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlOiBncmFudGVlLFxuICAgICAgYWN0aW9uczogR0FURVdBWV9TWU5DX1BFUk1TLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy5nYXRld2F5LmdhdGV3YXlBcm5dLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgdGhlIGNyZWRlbnRpYWwgcHJvdmlkZXIgY29uZmlndXJhdGlvbnMgYmFzZWQgb24gdGFyZ2V0IHR5cGVcbiAgICpcbiAgICogLSBMYW1iZGEgJiBTbWl0aHk6IERlZmF1bHQgdG8gSUFNIHJvbGUgaWYgbm90IHByb3ZpZGVkXG4gICAqIC0gTUNQIFNlcnZlcjogUmV0dXJuIHVuZGVmaW5lZCBpZiBub3QgcHJvdmlkZWQgKHNlcnZpY2UgaGFuZGxlcyBOb0F1dGgpXG4gICAqIC0gT3BlbkFQSTogUmV0dXJuIGFzLWlzIChtdXN0IGJlIGV4cGxpY2l0bHkgcHJvdmlkZWQpXG4gICAqXG4gICAqIEBwYXJhbSBwcm92aWRlZENyZWRlbnRpYWxzIFRoZSBjcmVkZW50aWFscyBmcm9tIHByb3BzXG4gICAqIEByZXR1cm5zIFRoZSBjcmVkZW50aWFsIGNvbmZpZ3VyYXRpb25zIHRvIHVzZSwgb3IgdW5kZWZpbmVkXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0VGFyZ2V0U3BlY2lmaWNDcmVkZW50aWFscyhcbiAgICBwcm92aWRlZENyZWRlbnRpYWxzOiBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnW10gfCB1bmRlZmluZWQsXG4gICk6IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHByb3ZpZGVkQ3JlZGVudGlhbHMgJiYgcHJvdmlkZWRDcmVkZW50aWFscy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gcHJvdmlkZWRDcmVkZW50aWFscztcbiAgICB9XG4gICAgLy8gQXBwbHkgdGFyZ2V0LXNwZWNpZmljIGRlZmF1bHRzIHdoZW4gbm90IHByb3ZpZGVkXG4gICAgc3dpdGNoICh0aGlzLnRhcmdldFR5cGUpIHtcbiAgICAgIGNhc2UgTWNwVGFyZ2V0VHlwZS5MQU1CREE6XG4gICAgICBjYXNlIE1jcFRhcmdldFR5cGUuU01JVEhZX01PREVMOlxuICAgICAgICByZXR1cm4gW0dhdGV3YXlDcmVkZW50aWFsUHJvdmlkZXIuZnJvbUlhbVJvbGUoKV07XG5cbiAgICAgIGNhc2UgTWNwVGFyZ2V0VHlwZS5NQ1BfU0VSVkVSOlxuICAgICAgICAvLyBSZXR1cm4gZW1wdHkgYXJyYXksIC0gc2VydmljZSBoYW5kbGVzIE5vQXV0aCBhdXRvbWF0aWNhbGx5XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICAgIGNhc2UgTWNwVGFyZ2V0VHlwZS5PUEVOQVBJX1NDSEVNQTpcbiAgICAgICAgLy8gTm8gZGVmYXVsdCAtIG11c3QgYmUgZXhwbGljaXRseSBwcm92aWRlZCwgc2VydmljZSBoYW5kbGVzIGF1dG9tYXRpY2FsbHlcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIFtHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyLmZyb21JYW1Sb2xlKCldO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIGNyZWRlbnRpYWwgcHJvdmlkZXIgY29uZmlndXJhdGlvbnMgZm9yIENsb3VkRm9ybWF0aW9uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSBfcmVuZGVyQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnMoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucz8ubWFwKHByb3ZpZGVyID0+IHByb3ZpZGVyLl9yZW5kZXIoKSk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBnYXRld2F5IHRhcmdldCBuYW1lIGZvcm1hdFxuICAgKiBQYXR0ZXJuOiBeKFswLTlhLXpBLVpdWy1dPyl7MSwxMDB9JFxuICAgKiBNYXggbGVuZ3RoOiAxMDAgY2hhcmFjdGVyc1xuICAgKiBAcGFyYW0gZ2F0ZXdheVRhcmdldE5hbWUgVGhlIGdhdGV3YXkgdGFyZ2V0IG5hbWUgdG8gdmFsaWRhdGVcbiAgICogQHRocm93cyBFcnJvciBpZiB0aGUgbmFtZSBpcyBpbnZhbGlkXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZUdhdGV3YXlUYXJnZXROYW1lKGdhdGV3YXlUYXJnZXROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKGdhdGV3YXlUYXJnZXROYW1lKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxlbmd0aEVycm9ycyA9IHZhbGlkYXRlU3RyaW5nRmllbGQoe1xuICAgICAgdmFsdWU6IGdhdGV3YXlUYXJnZXROYW1lLFxuICAgICAgZmllbGROYW1lOiAnR2F0ZXdheSB0YXJnZXQgbmFtZScsXG4gICAgICBtaW5MZW5ndGg6IDEsXG4gICAgICBtYXhMZW5ndGg6IDEwMCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHBhdHRlcm5FcnJvcnMgPSB2YWxpZGF0ZUZpZWxkUGF0dGVybihcbiAgICAgIGdhdGV3YXlUYXJnZXROYW1lLFxuICAgICAgJ0dhdGV3YXkgdGFyZ2V0IG5hbWUnLFxuICAgICAgL14oWzAtOWEtekEtWl1bLV0/KXsxLDEwMH0kLyxcbiAgICAgICdHYXRld2F5IHRhcmdldCBuYW1lIG11c3QgY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFuZCBoeXBoZW5zLCB3aXRoIGh5cGhlbnMgb25seSBiZXR3ZWVuIGNoYXJhY3RlcnMnLFxuICAgICk7XG5cbiAgICBjb25zdCBhbGxFcnJvcnMgPSBbLi4ubGVuZ3RoRXJyb3JzLCAuLi5wYXR0ZXJuRXJyb3JzXTtcbiAgICBpZiAoYWxsRXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYWxsRXJyb3JzLmpvaW4oJ1xcbicpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBkZXNjcmlwdGlvbiBmb3JtYXRcbiAgICogTXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIwMCBjaGFyYWN0ZXJzXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdmFsaWRhdGlvbiBmYWlsc1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVEZXNjcmlwdGlvbihkZXNjcmlwdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChkZXNjcmlwdGlvbikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvcnMgPSB2YWxpZGF0ZVN0cmluZ0ZpZWxkKHtcbiAgICAgIHZhbHVlOiBkZXNjcmlwdGlvbixcbiAgICAgIGZpZWxkTmFtZTogJ0dhdGV3YXkgdGFyZ2V0IGRlc2NyaXB0aW9uJyxcbiAgICAgIG1pbkxlbmd0aDogMSxcbiAgICAgIG1heExlbmd0aDogMjAwLFxuICAgIH0pO1xuXG4gICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGVycm9ycy5qb2luKCdcXG4nKSk7XG4gICAgfVxuICB9XG59XG4iXX0=
package/lib/index.d.ts CHANGED
@@ -15,6 +15,7 @@ export * from './tools/code-interpreter';
15
15
  export * from './tools/browser';
16
16
  export * from './gateway/gateway-base';
17
17
  export * from './gateway/gateway';
18
+ export * from './gateway/interceptor';
18
19
  export * from './gateway/perms';
19
20
  export * from './gateway/protocol';
20
21
  export * from './gateway/inbound-auth/authorizer';
package/lib/index.js CHANGED
@@ -42,6 +42,7 @@ __exportStar(require("./tools/browser"), exports);
42
42
  // ===================================
43
43
  __exportStar(require("./gateway/gateway-base"), exports);
44
44
  __exportStar(require("./gateway/gateway"), exports);
45
+ __exportStar(require("./gateway/interceptor"), exports);
45
46
  __exportStar(require("./gateway/perms"), exports);
46
47
  __exportStar(require("./gateway/protocol"), exports);
47
48
  // validation-helpers contains internal utilities and should not be exported
@@ -68,4 +69,4 @@ __exportStar(require("./gateway/targets/target-configuration"), exports);
68
69
  __exportStar(require("./gateway/targets/schema/base-schema"), exports);
69
70
  __exportStar(require("./gateway/targets/schema/api-schema"), exports);
70
71
  __exportStar(require("./gateway/targets/schema/tool-schema"), exports);
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQWdDO0FBQ2hDLHVFQUFxRDtBQUNyRCw0RUFBMEQ7QUFDMUQsMkRBQXlDO0FBQ3pDLHNDQUFzQztBQUN0Qyx3QkFBd0I7QUFDeEIsc0NBQXNDO0FBQ3RDLGtFQUFnRDtBQUVoRCxzQ0FBc0M7QUFDdEMsVUFBVTtBQUNWLHNDQUFzQztBQUN0QyxrREFBZ0M7QUFDaEMsa0RBQWdDO0FBQ2hDLHlEQUF1QztBQUN2Qyw2REFBMkM7QUFDM0MsNkVBQTJEO0FBQzNELGtFQUFnRDtBQUNoRCw2REFBMkM7QUFDM0Msb0RBQWtDO0FBQ2xDLFFBQVE7QUFDUixzQ0FBc0M7QUFDdEMsMkRBQXlDO0FBQ3pDLGtEQUFnQztBQUVoQyxzQ0FBc0M7QUFDdEMsVUFBVTtBQUNWLHNDQUFzQztBQUN0Qyx5REFBdUM7QUFDdkMsb0RBQWtDO0FBQ2xDLGtEQUFnQztBQUNoQyxxREFBbUM7QUFDbkMsNEVBQTRFO0FBRTVFLHNDQUFzQztBQUN0Qyx5QkFBeUI7QUFDekIsc0NBQXNDO0FBQ3RDLG9FQUFrRDtBQUVsRCxzQ0FBc0M7QUFDdEMsMEJBQTBCO0FBQzFCLHNDQUFzQztBQUN0Qyw4RUFBNEQ7QUFDNUQsa0VBQWdEO0FBQ2hELG1FQUFpRDtBQUNqRCxnRUFBOEM7QUFFOUMsc0NBQXNDO0FBQ3RDLG9CQUFvQjtBQUNwQixzQ0FBc0M7QUFDdEMsZ0VBQThDO0FBQzlDLDJEQUF5QztBQUN6Qyx5RUFBdUQ7QUFFdkQsc0NBQXNDO0FBQ3RDLG9CQUFvQjtBQUNwQixzQ0FBc0M7QUFDdEMsdUVBQXFEO0FBQ3JELHNFQUFvRDtBQUNwRCx1RUFBcUQiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21lbW9yeS9tZW1vcnknO1xuZXhwb3J0ICogZnJvbSAnLi9tZW1vcnkvc3RyYXRlZ2llcy9tYW5hZ2VkLXN0cmF0ZWd5JztcbmV4cG9ydCAqIGZyb20gJy4vbWVtb3J5L3N0cmF0ZWdpZXMvc2VsZi1tYW5hZ2VkLXN0cmF0ZWd5JztcbmV4cG9ydCAqIGZyb20gJy4vbWVtb3J5L21lbW9yeS1zdHJhdGVneSc7XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTmV0d29yayBDb25maWd1cmF0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuZXhwb3J0ICogZnJvbSAnLi9uZXR3b3JrL25ldHdvcmstY29uZmlndXJhdGlvbic7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSdW50aW1lXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuZXhwb3J0ICogZnJvbSAnLi9ydW50aW1lL3Blcm1zJztcbmV4cG9ydCAqIGZyb20gJy4vcnVudGltZS90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3J1bnRpbWUvcnVudGltZS1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vcnVudGltZS9ydW50aW1lLWFydGlmYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vcnVudGltZS9ydW50aW1lLWF1dGhvcml6ZXItY29uZmlndXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3J1bnRpbWUvcnVudGltZS1lbmRwb2ludC1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vcnVudGltZS9ydW50aW1lLWVuZHBvaW50JztcbmV4cG9ydCAqIGZyb20gJy4vcnVudGltZS9ydW50aW1lJztcbi8vIFRvb2xzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuZXhwb3J0ICogZnJvbSAnLi90b29scy9jb2RlLWludGVycHJldGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdG9vbHMvYnJvd3Nlcic7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHYXRld2F5XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuZXhwb3J0ICogZnJvbSAnLi9nYXRld2F5L2dhdGV3YXktYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2dhdGV3YXkvZ2F0ZXdheSc7XG5leHBvcnQgKiBmcm9tICcuL2dhdGV3YXkvcGVybXMnO1xuZXhwb3J0ICogZnJvbSAnLi9nYXRld2F5L3Byb3RvY29sJztcbi8vIHZhbGlkYXRpb24taGVscGVycyBjb250YWlucyBpbnRlcm5hbCB1dGlsaXRpZXMgYW5kIHNob3VsZCBub3QgYmUgZXhwb3J0ZWRcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEdhdGV3YXkgLSBJbmJvdW5kIEF1dGhcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5leHBvcnQgKiBmcm9tICcuL2dhdGV3YXkvaW5ib3VuZC1hdXRoL2F1dGhvcml6ZXInO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gR2F0ZXdheSAtIE91dGJvdW5kIEF1dGhcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5leHBvcnQgKiBmcm9tICcuL2dhdGV3YXkvb3V0Ym91bmQtYXV0aC9jcmVkZW50aWFsLXByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZ2F0ZXdheS9vdXRib3VuZC1hdXRoL2FwaS1rZXknO1xuZXhwb3J0ICogZnJvbSAnLi9nYXRld2F5L291dGJvdW5kLWF1dGgvaWFtLXJvbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9nYXRld2F5L291dGJvdW5kLWF1dGgvb2F1dGgnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gR2F0ZXdheSAtIFRhcmdldHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5leHBvcnQgKiBmcm9tICcuL2dhdGV3YXkvdGFyZ2V0cy90YXJnZXQtYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2dhdGV3YXkvdGFyZ2V0cy90YXJnZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9nYXRld2F5L3RhcmdldHMvdGFyZ2V0LWNvbmZpZ3VyYXRpb24nO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gR2F0ZXdheSAtIFNjaGVtYXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5leHBvcnQgKiBmcm9tICcuL2dhdGV3YXkvdGFyZ2V0cy9zY2hlbWEvYmFzZS1zY2hlbWEnO1xuZXhwb3J0ICogZnJvbSAnLi9nYXRld2F5L3RhcmdldHMvc2NoZW1hL2FwaS1zY2hlbWEnO1xuZXhwb3J0ICogZnJvbSAnLi9nYXRld2F5L3RhcmdldHMvc2NoZW1hL3Rvb2wtc2NoZW1hJztcbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQWdDO0FBQ2hDLHVFQUFxRDtBQUNyRCw0RUFBMEQ7QUFDMUQsMkRBQXlDO0FBQ3pDLHNDQUFzQztBQUN0Qyx3QkFBd0I7QUFDeEIsc0NBQXNDO0FBQ3RDLGtFQUFnRDtBQUVoRCxzQ0FBc0M7QUFDdEMsVUFBVTtBQUNWLHNDQUFzQztBQUN0QyxrREFBZ0M7QUFDaEMsa0RBQWdDO0FBQ2hDLHlEQUF1QztBQUN2Qyw2REFBMkM7QUFDM0MsNkVBQTJEO0FBQzNELGtFQUFnRDtBQUNoRCw2REFBMkM7QUFDM0Msb0RBQWtDO0FBQ2xDLFFBQVE7QUFDUixzQ0FBc0M7QUFDdEMsMkRBQXlDO0FBQ3pDLGtEQUFnQztBQUVoQyxzQ0FBc0M7QUFDdEMsVUFBVTtBQUNWLHNDQUFzQztBQUN0Qyx5REFBdUM7QUFDdkMsb0RBQWtDO0FBQ2xDLHdEQUFzQztBQUN0QyxrREFBZ0M7QUFDaEMscURBQW1DO0FBQ25DLDRFQUE0RTtBQUU1RSxzQ0FBc0M7QUFDdEMseUJBQXlCO0FBQ3pCLHNDQUFzQztBQUN0QyxvRUFBa0Q7QUFFbEQsc0NBQXNDO0FBQ3RDLDBCQUEwQjtBQUMxQixzQ0FBc0M7QUFDdEMsOEVBQTREO0FBQzVELGtFQUFnRDtBQUNoRCxtRUFBaUQ7QUFDakQsZ0VBQThDO0FBRTlDLHNDQUFzQztBQUN0QyxvQkFBb0I7QUFDcEIsc0NBQXNDO0FBQ3RDLGdFQUE4QztBQUM5QywyREFBeUM7QUFDekMseUVBQXVEO0FBRXZELHNDQUFzQztBQUN0QyxvQkFBb0I7QUFDcEIsc0NBQXNDO0FBQ3RDLHVFQUFxRDtBQUNyRCxzRUFBb0Q7QUFDcEQsdUVBQXFEIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tZW1vcnkvbWVtb3J5JztcbmV4cG9ydCAqIGZyb20gJy4vbWVtb3J5L3N0cmF0ZWdpZXMvbWFuYWdlZC1zdHJhdGVneSc7XG5leHBvcnQgKiBmcm9tICcuL21lbW9yeS9zdHJhdGVnaWVzL3NlbGYtbWFuYWdlZC1zdHJhdGVneSc7XG5leHBvcnQgKiBmcm9tICcuL21lbW9yeS9tZW1vcnktc3RyYXRlZ3knO1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE5ldHdvcmsgQ29uZmlndXJhdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCAqIGZyb20gJy4vbmV0d29yay9uZXR3b3JrLWNvbmZpZ3VyYXRpb24nO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUnVudGltZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCAqIGZyb20gJy4vcnVudGltZS9wZXJtcyc7XG5leHBvcnQgKiBmcm9tICcuL3J1bnRpbWUvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9ydW50aW1lL3J1bnRpbWUtYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL3J1bnRpbWUvcnVudGltZS1hcnRpZmFjdCc7XG5leHBvcnQgKiBmcm9tICcuL3J1bnRpbWUvcnVudGltZS1hdXRob3JpemVyLWNvbmZpZ3VyYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9ydW50aW1lL3J1bnRpbWUtZW5kcG9pbnQtYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL3J1bnRpbWUvcnVudGltZS1lbmRwb2ludCc7XG5leHBvcnQgKiBmcm9tICcuL3J1bnRpbWUvcnVudGltZSc7XG4vLyBUb29sc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCAqIGZyb20gJy4vdG9vbHMvY29kZS1pbnRlcnByZXRlcic7XG5leHBvcnQgKiBmcm9tICcuL3Rvb2xzL2Jyb3dzZXInO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gR2F0ZXdheVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCAqIGZyb20gJy4vZ2F0ZXdheS9nYXRld2F5LWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9nYXRld2F5L2dhdGV3YXknO1xuZXhwb3J0ICogZnJvbSAnLi9nYXRld2F5L2ludGVyY2VwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZ2F0ZXdheS9wZXJtcyc7XG5leHBvcnQgKiBmcm9tICcuL2dhdGV3YXkvcHJvdG9jb2wnO1xuLy8gdmFsaWRhdGlvbi1oZWxwZXJzIGNvbnRhaW5zIGludGVybmFsIHV0aWxpdGllcyBhbmQgc2hvdWxkIG5vdCBiZSBleHBvcnRlZFxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gR2F0ZXdheSAtIEluYm91bmQgQXV0aFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCAqIGZyb20gJy4vZ2F0ZXdheS9pbmJvdW5kLWF1dGgvYXV0aG9yaXplcic7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHYXRld2F5IC0gT3V0Ym91bmQgQXV0aFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCAqIGZyb20gJy4vZ2F0ZXdheS9vdXRib3VuZC1hdXRoL2NyZWRlbnRpYWwtcHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9nYXRld2F5L291dGJvdW5kLWF1dGgvYXBpLWtleSc7XG5leHBvcnQgKiBmcm9tICcuL2dhdGV3YXkvb3V0Ym91bmQtYXV0aC9pYW0tcm9sZSc7XG5leHBvcnQgKiBmcm9tICcuL2dhdGV3YXkvb3V0Ym91bmQtYXV0aC9vYXV0aCc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHYXRld2F5IC0gVGFyZ2V0c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCAqIGZyb20gJy4vZ2F0ZXdheS90YXJnZXRzL3RhcmdldC1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2F0ZXdheS90YXJnZXRzL3RhcmdldCc7XG5leHBvcnQgKiBmcm9tICcuL2dhdGV3YXkvdGFyZ2V0cy90YXJnZXQtY29uZmlndXJhdGlvbic7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHYXRld2F5IC0gU2NoZW1hc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCAqIGZyb20gJy4vZ2F0ZXdheS90YXJnZXRzL3NjaGVtYS9iYXNlLXNjaGVtYSc7XG5leHBvcnQgKiBmcm9tICcuL2dhdGV3YXkvdGFyZ2V0cy9zY2hlbWEvYXBpLXNjaGVtYSc7XG5leHBvcnQgKiBmcm9tICcuL2dhdGV3YXkvdGFyZ2V0cy9zY2hlbWEvdG9vbC1zY2hlbWEnO1xuIl19
@@ -44,6 +44,10 @@ export declare enum MemoryStrategyType {
44
44
  * User preferences strategy - extracts user behavior patterns from raw conversations.
45
45
  */
46
46
  USER_PREFERENCE = "USER_PREFERENCE",
47
+ /**
48
+ * Episodic memory strategy - captures meaningful slices of user and system interactions
49
+ */
50
+ EPISODIC = "EPISODIC",
47
51
  /**
48
52
  * Customize memory processing through custom foundation model and prompt templates.
49
53
  */
@@ -128,6 +132,13 @@ export declare class MemoryStrategy {
128
132
  * @returns A ManagedMemoryStrategy.
129
133
  */
130
134
  static usingBuiltInUserPreference(): ManagedMemoryStrategy;
135
+ /**
136
+ * Default strategies for organizing and extracting memory data, each optimized for specific use cases.
137
+ * Captures meaningful slices of user and system interactions, preserve them into compact records after summarizing.
138
+ * Extracted memory example: User first asked about pricing on Monday, then requested feature comparison on Tuesday, finally made purchase decision on Wednesday.
139
+ * @returns A ManagedMemoryStrategy.
140
+ */
141
+ static usingBuiltInEpisodic(): ManagedMemoryStrategy;
131
142
  /**
132
143
  * Creates a semantic memory strategy with custom configuration.
133
144
  * Distills general facts, concepts, and underlying meanings from raw conversational data, presenting the information in a context-independent format.
@@ -152,6 +163,14 @@ export declare class MemoryStrategy {
152
163
  * @returns A ManagedMemoryStrategy.
153
164
  */
154
165
  static usingSummarization(config: ManagedStrategyProps): ManagedMemoryStrategy;
166
+ /**
167
+ * Creates an episodic memory strategy with custom configuration.
168
+ * Captures meaningful slices of user and system interactions, preserve them into compact records after summarizing.
169
+ * Extracted memory example: User first asked about pricing on Monday, then requested feature comparison on Tuesday, finally made purchase decision on Wednesday.
170
+ * @param config - The configuration for the episodic memory strategy.
171
+ * @returns A ManagedMemoryStrategy.
172
+ */
173
+ static usingEpisodic(config: ManagedStrategyProps): ManagedMemoryStrategy;
155
174
  /**
156
175
  * Creates a self-managed memory strategy.
157
176
  * A self-managed strategy gives you complete control over your memory extraction and consolidation pipelines.