@aws-amplify/graphql-api-construct 1.18.0 → 1.18.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (24) hide show
  1. package/.jsii +5 -5
  2. package/CHANGELOG.md +10 -0
  3. package/lib/amplify-dynamodb-table-wrapper.js +1 -1
  4. package/lib/amplify-graphql-api.js +1 -1
  5. package/lib/amplify-graphql-definition.js +1 -1
  6. package/lib/sql-model-datasource-strategy.js +1 -1
  7. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/bedrock_converse_adapter.js +12 -3
  8. package/node_modules/@aws-amplify/ai-constructs/package.json +1 -1
  9. package/node_modules/@aws-amplify/graphql-conversation-transformer/CHANGELOG.md +12 -0
  10. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/tools/process-tools.d.ts.map +1 -1
  11. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/tools/process-tools.js +10 -13
  12. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/tools/process-tools.js.map +1 -1
  13. package/node_modules/@aws-amplify/graphql-conversation-transformer/package.json +3 -3
  14. package/node_modules/@aws-amplify/graphql-generation-transformer/package.json +1 -2
  15. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
  16. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  17. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  18. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  19. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  20. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  21. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +8 -0
  22. package/node_modules/@aws-amplify/graphql-transformer/package.json +3 -3
  23. package/package.json +5 -5
  24. package/node_modules/@aws-amplify/graphql-generation-transformer/LICENSE +0 -201
package/.jsii CHANGED
@@ -6,11 +6,11 @@
6
6
  ]
7
7
  },
8
8
  "bundled": {
9
- "@aws-amplify/ai-constructs": "^0.8.1",
9
+ "@aws-amplify/ai-constructs": "^1.0.0",
10
10
  "@aws-amplify/backend-output-schemas": "^1.0.0",
11
11
  "@aws-amplify/backend-output-storage": "^1.0.0",
12
12
  "@aws-amplify/graphql-auth-transformer": "4.1.7",
13
- "@aws-amplify/graphql-conversation-transformer": "1.1.0",
13
+ "@aws-amplify/graphql-conversation-transformer": "1.1.2",
14
14
  "@aws-amplify/graphql-default-value-transformer": "3.1.4",
15
15
  "@aws-amplify/graphql-directives": "2.6.0",
16
16
  "@aws-amplify/graphql-function-transformer": "3.1.6",
@@ -23,7 +23,7 @@
23
23
  "@aws-amplify/graphql-relational-transformer": "3.1.1",
24
24
  "@aws-amplify/graphql-searchable-transformer": "3.0.9",
25
25
  "@aws-amplify/graphql-sql-transformer": "0.4.9",
26
- "@aws-amplify/graphql-transformer": "2.2.0",
26
+ "@aws-amplify/graphql-transformer": "2.2.2",
27
27
  "@aws-amplify/graphql-transformer-core": "3.3.1",
28
28
  "@aws-amplify/graphql-transformer-interfaces": "4.2.0",
29
29
  "@aws-amplify/platform-core": "^1.0.0",
@@ -9031,6 +9031,6 @@
9031
9031
  "symbolId": "src/model-datasource-strategy-types:VpcConfig"
9032
9032
  }
9033
9033
  },
9034
- "version": "1.18.0",
9035
- "fingerprint": "z0rzJHCDSTpFx/GRBG2+htlUdGLnrEhuLsVbf5AbNdM="
9034
+ "version": "1.18.2",
9035
+ "fingerprint": "IglGZ1S3jsRrEE16FqBN9DnGem5QENdMUX/JQ4eYLBE="
9036
9036
  }
package/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.18.2](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.18.1...@aws-amplify/graphql-api-construct@1.18.2) (2024-11-20)
7
+
8
+ ### Bug Fixes
9
+
10
+ - bump ai-constructs to ^1.0.0 ([#3040](https://github.com/aws-amplify/amplify-category-api/issues/3040)) ([0e9e195](https://github.com/aws-amplify/amplify-category-api/commit/0e9e195b05e7d40e41c29b82b8f3fb3a8961d80b))
11
+
12
+ ## [1.18.1](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.18.0...@aws-amplify/graphql-api-construct@1.18.1) (2024-11-20)
13
+
14
+ **Note:** Version bump only for package @aws-amplify/graphql-api-construct
15
+
6
16
  # [1.18.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.17.3...@aws-amplify/graphql-api-construct@1.18.0) (2024-11-19)
7
17
 
8
18
  ### Features
@@ -105,5 +105,5 @@ class AmplifyDynamoDbTableWrapper {
105
105
  }
106
106
  exports.AmplifyDynamoDbTableWrapper = AmplifyDynamoDbTableWrapper;
107
107
  _a = JSII_RTTI_SYMBOL_1;
108
- AmplifyDynamoDbTableWrapper[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper", version: "1.18.0" };
108
+ AmplifyDynamoDbTableWrapper[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper", version: "1.18.2" };
109
109
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1keW5hbW9kYi10YWJsZS13cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FtcGxpZnktZHluYW1vZGItdGFibGUtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF5RDtBQUd6RCxNQUFNLG9DQUFvQyxHQUFHLDhCQUE4QixDQUFDO0FBZ0M1RTs7O0dBR0c7QUFDSCxJQUFZLE9BRVg7QUFGRCxXQUFZLE9BQU87SUFDakIsc0JBQVcsQ0FBQTtBQUNiLENBQUMsRUFGVyxPQUFPLHVCQUFQLE9BQU8sUUFFbEI7QUEyQ0Q7Ozs7Ozs7R0FPRztBQUNILE1BQWEsMkJBQTJCO0lBQ3RDOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBTTtRQUMxQyxPQUFPLENBQUMsWUFBWSx5QkFBVyxJQUFJLENBQUMsQ0FBQyxlQUFlLEtBQUssb0NBQW9DLENBQUM7SUFDaEcsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQTZCLFFBQXFCO1FBQXJCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDaEQsSUFBSSxRQUFRLENBQUMsZUFBZSxLQUFLLG9DQUFvQyxFQUFFLENBQUM7WUFDdEUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsb0NBQW9DLHNDQUFzQyxDQUFDLENBQUM7UUFDNUgsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxrQkFBa0IsQ0FBQyxNQUFxQjtRQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksV0FBVyxDQUFDLFdBQXdCO1FBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksbUJBQW1CLENBQUMsdUJBQWdEO1FBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMseUJBQXlCLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLDBCQUEwQixDQUFDLDBCQUFtQztRQUNoRSxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGtDQUFrQyxFQUFFLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUkscUJBQXFCLENBQUMscUJBQTRDO1FBQ3BFLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsdUJBQXVCLEVBQUUscUJBQXFCLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILDRDQUE0QyxDQUFDLFNBQWlCLEVBQUUscUJBQTRDO1FBQzFHLE1BQU0sSUFBSSxHQUEyQyxNQUFNLENBQUMsT0FBTyxDQUNoRSxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLHNCQUFzQixJQUFJLEVBQUUsQ0FDOUUsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuSCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsU0FBUyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLDBCQUEwQixTQUFTLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDM0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxtQkFBbUIsQ0FBQyxtQkFBd0M7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksZ0JBQWdCLENBQUMsZ0JBQWtDO1FBQ3JELElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLHlCQUF5QixDQUFDLHlCQUFrQztRQUM5RCxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLDJCQUEyQixFQUFFLHlCQUF5QixDQUFDLENBQUM7SUFDNUYsQ0FBQzs7QUEzRkgsa0VBNEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuUmVzb3VyY2UsIFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBCaWxsaW5nTW9kZSwgU3RyZWFtVmlld1R5cGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuXG5jb25zdCBBTVBMSUZZX0RZTkFNT0RCX1RBQkxFX1JFU09VUkNFX1RZUEUgPSAnQ3VzdG9tOjpBbXBsaWZ5RHluYW1vREJUYWJsZSc7XG5cbi8qKlxuICogU2hhcGUgZm9yIFRUTCBjb25maWcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGltZVRvTGl2ZVNwZWNpZmljYXRpb24ge1xuICAvKipcbiAgICogQm9vbGVhbiBkZXRlcm1pbmluZyBpZiB0aGUgdHRsIGlzIGVuYWJsZWQgb3Igbm90LlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXR0cmlidXRlIG5hbWUgdG8gYXBwbHkgdG8gdGhlIHR0bCBzcGVjLlxuICAgKi9cbiAgcmVhZG9ubHkgYXR0cmlidXRlTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGZvciBwcm92aXNpb25lZCB0aHJvdWdocHV0IGNvbmZpZyBpbiBEREIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlzaW9uZWRUaHJvdWdocHV0IHtcbiAgLyoqXG4gICAqIFRoZSByZWFkIGNhcGFjaXR5IHVuaXRzIG9uIHRoZSB0YWJsZSBvciBpbmRleC5cbiAgICovXG4gIHJlYWRvbmx5IHJlYWRDYXBhY2l0eVVuaXRzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB3cml0ZSBjYXBhY2l0eSB1bml0cyBvbiB0aGUgdGFibGUgb3IgaW5kZXguXG4gICAqL1xuICByZWFkb25seSB3cml0ZUNhcGFjaXR5VW5pdHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBTZXJ2ZXIgU2lkZSBFbmNyeXB0aW9uIFR5cGUgVmFsdWVzXG4gKiAtIGBLTVNgIC0gU2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0aGF0IHVzZXMgQVdTIEtNUy4gVGhlIGtleSBpcyBzdG9yZWQgaW4geW91ciBhY2NvdW50IGFuZCBpcyBtYW5hZ2VkIGJ5IEtNUyAoQVdTIEtNUyBjaGFyZ2VzIGFwcGx5KS5cbiAqL1xuZXhwb3J0IGVudW0gU1NFVHlwZSB7XG4gIEtNUyA9ICdLTVMnLFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHNldHRpbmdzIHVzZWQgdG8gZW5hYmxlIHNlcnZlci1zaWRlIGVuY3J5cHRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU1NFU3BlY2lmaWNhdGlvbiB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIGlzIGRvbmUgdXNpbmcgYW4gQVdTIG1hbmFnZWQga2V5IG9yIGFuIEFXUyBvd25lZCBrZXkuXG4gICAqIElmIGVuYWJsZWQgKHRydWUpLCBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIHR5cGUgaXMgc2V0IHRvIGBLTVNgIGFuZCBhbiBBV1MgbWFuYWdlZCBrZXkgaXMgdXNlZCAoIEFXUyBLTVMgY2hhcmdlcyBhcHBseSkuXG4gICAqIElmIGRpc2FibGVkIChmYWxzZSkgb3Igbm90IHNwZWNpZmllZCwgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiBpcyBzZXQgdG8gQVdTIG93bmVkIGtleS5cbiAgICovXG4gIHJlYWRvbmx5IHNzZUVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgS01TIGtleSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgQVdTIEtNUyBlbmNyeXB0aW9uLlxuICAgKiBUbyBzcGVjaWZ5IGEga2V5LCB1c2UgaXRzIGtleSBJRCwgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTiksIGFsaWFzIG5hbWUsIG9yIGFsaWFzIEFSTi4gTm90ZSB0aGF0IHlvdSBzaG91bGQgb25seSBwcm92aWRlXG4gICAqIHRoaXMgcGFyYW1ldGVyIGlmIHRoZSBrZXkgaXMgZGlmZmVyZW50IGZyb20gdGhlIGRlZmF1bHQgRHluYW1vREIga2V5IGBhbGlhcy9hd3MvZHluYW1vZGJgIC5cbiAgICovXG4gIHJlYWRvbmx5IGttc01hc3RlcktleUlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIHR5cGUuIFRoZSBvbmx5IHN1cHBvcnRlZCB2YWx1ZSBpczpcbiAgICogYEtNU2AgU2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0aGF0IHVzZXMgQVdTIEtleSBNYW5hZ2VtZW50IFNlcnZpY2UuXG4gICAqICAgVGhlIGtleSBpcyBzdG9yZWQgaW4geW91ciBhY2NvdW50IGFuZCBpcyBtYW5hZ2VkIGJ5IEFXUyBLTVMgKCBBV1MgS01TIGNoYXJnZXMgYXBwbHkpLlxuICAgKi9cbiAgcmVhZG9ubHkgc3NlVHlwZT86IFNTRVR5cGU7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgRHluYW1vREIgU3RyZWFtcyBjb25maWd1cmF0aW9uIGZvciBhIHRhYmxlIGluIER5bmFtb0RCLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0cmVhbVNwZWNpZmljYXRpb24ge1xuICAvKipcbiAgICogV2hlbiBhbiBpdGVtIGluIHRoZSB0YWJsZSBpcyBtb2RpZmllZCwgYFN0cmVhbVZpZXdUeXBlYCBkZXRlcm1pbmVzIHdoYXQgaW5mb3JtYXRpb24gaXMgd3JpdHRlbiB0byB0aGUgc3RyZWFtIGZvciB0aGlzIHRhYmxlLlxuICAgKiBWYWxpZCB2YWx1ZXMgZm9yIGBTdHJlYW1WaWV3VHlwZWAgYXJlOlxuICAgKiAtIGBLRVlTX09OTFlgIC0gT25seSB0aGUga2V5IGF0dHJpYnV0ZXMgb2YgdGhlIG1vZGlmaWVkIGl0ZW0gYXJlIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS5cbiAgICogLSBgTkVXX0lNQUdFYCAtIFRoZSBlbnRpcmUgaXRlbSwgYXMgaXQgYXBwZWFycyBhZnRlciBpdCB3YXMgbW9kaWZpZWQsIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS5cbiAgICogLSBgT0xEX0lNQUdFYCAtIFRoZSBlbnRpcmUgaXRlbSwgYXMgaXQgYXBwZWFyZWQgYmVmb3JlIGl0IHdhcyBtb2RpZmllZCwgaXMgd3JpdHRlbiB0byB0aGUgc3RyZWFtLlxuICAgKiAtIGBORVdfQU5EX09MRF9JTUFHRVNgIC0gQm90aCB0aGUgbmV3IGFuZCB0aGUgb2xkIGl0ZW0gaW1hZ2VzIG9mIHRoZSBpdGVtIGFyZSB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gICAqL1xuICByZWFkb25seSBzdHJlYW1WaWV3VHlwZTogU3RyZWFtVmlld1R5cGU7XG59XG5cbi8qKlxuICogV3JhcHBlciBjbGFzcyBhcm91bmQgQ3VzdG9tOjpBbXBsaWZ5RHluYW1vREJUYWJsZSBjdXN0b20gcmVzb3VyY2UsIHRvIHNpbXBsaWZ5XG4gKiB0aGUgb3ZlcnJpZGUgZXhwZXJpZW5jZSBhIGJpdC4gVGhpcyBpcyBOT1QgYSBjb25zdHJ1Y3QsIGp1c3QgYW4gZWFzaWVyIHdheSB0byBhY2Nlc3NcbiAqIHRoZSBnZW5lcmF0ZWQgY29uc3RydWN0LlxuICogVGhpcyBpcyBhIHdyYXBwZXIgaW50ZW5kZWQgdG8gbWltaWMgdGhlIGBhd3NfY2RrX2xpYi5hd3NfZHluYW1vZGIuVGFibGVgIGZ1bmN0aW9uYWxpdHkgbW9yZS1vci1sZXNzLlxuICogTm90YWJsZSBkaWZmZXJlbmNlcyBpcyB0aGUgYWRkaXRpb24gb2YgVEtUSyBwcm9wZXJ0aWVzLCB0byBhY2NvdW50IGZvciB0aGUgZmFjdCB0aGF0IHRoZXkncmUgY29uc3RydWN0b3IgcHJvcHNcbiAqIGluIHRoZSBDREsgY29uc3RydWN0LCBhcyB3ZWxsIGFzIHRoZSByZW1vdmFsIG9mIGFsbCBmcm9tKiwgZ3JhbnQqLCBhbmQgbWV0cmljKiBtZXRob2RzIGltcGxlbWVudGVkIGJ5IFRhYmxlLlxuICovXG5leHBvcnQgY2xhc3MgQW1wbGlmeUR5bmFtb0RiVGFibGVXcmFwcGVyIHtcbiAgLyoqXG4gICAqIFJldHVybiB0cnVlIGFuZCBwZXJmb3JtIHR5cGUgbmFycm93aW5nIGlmIGEgZ2l2ZW4gaW5wdXQgYXBwZWFycyB0byBiZSBjYXBhYmxlIG9mXG4gICAqIEBwYXJhbSB4IHRoZSBvYmplY3QgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSByZXNvdXJjZSBpcyBhbiB1bmRlcmx5aW5nIGFtcGxpZnkgZHluYW1vZGIgdGFibGUgcmVzb3VyY2UuXG4gICAqL1xuICBzdGF0aWMgaXNBbXBsaWZ5RHluYW1vRGJUYWJsZVJlc291cmNlKHg6IGFueSk6IHggaXMgQ2ZuUmVzb3VyY2Uge1xuICAgIHJldHVybiB4IGluc3RhbmNlb2YgQ2ZuUmVzb3VyY2UgJiYgeC5jZm5SZXNvdXJjZVR5cGUgPT09IEFNUExJRllfRFlOQU1PREJfVEFCTEVfUkVTT1VSQ0VfVFlQRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIHdyYXBwZXIgZ2l2ZW4gYW4gdW5kZXJseWluZyBDZm5SZXNvdXJjZSB0aGF0IGlzIGFuIGluc3RhbmNlIG9mIEN1c3RvbTo6QW1wbGlmeUR5bmFtb0RCVGFibGUuXG4gICAqIEBwYXJhbSByZXNvdXJjZSB0aGUgQ2ZuIHJlc291cmNlLlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByZXNvdXJjZTogQ2ZuUmVzb3VyY2UpIHtcbiAgICBpZiAocmVzb3VyY2UuY2ZuUmVzb3VyY2VUeXBlICE9PSBBTVBMSUZZX0RZTkFNT0RCX1RBQkxFX1JFU09VUkNFX1RZUEUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgT25seSBDZm5SZXNvdXJjZSB3aXRoIHR5cGUgJHtBTVBMSUZZX0RZTkFNT0RCX1RBQkxFX1JFU09VUkNFX1RZUEV9IGNhbiBiZSB1c2VkIGluIEFtcGxpZnlEeW5hbW9EYlRhYmxlYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGVsZXRpb24gcG9saWN5IG9mIHRoZSByZXNvdXJjZSBiYXNlZCBvbiB0aGUgcmVtb3ZhbCBwb2xpY3kgc3BlY2lmaWVkLlxuICAgKiBAcGFyYW0gcG9saWN5IHJlbW92YWwgcG9saWN5IHRvIHNldFxuICAgKi9cbiAgYXBwbHlSZW1vdmFsUG9saWN5KHBvbGljeTogUmVtb3ZhbFBvbGljeSk6IHZvaWQge1xuICAgIHRoaXMucmVzb3VyY2UuYXBwbHlSZW1vdmFsUG9saWN5KHBvbGljeSk7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmeSBob3cgeW91IGFyZSBjaGFyZ2VkIGZvciByZWFkIGFuZCB3cml0ZSB0aHJvdWdocHV0IGFuZCBob3cgeW91IG1hbmFnZSBjYXBhY2l0eS5cbiAgICovXG4gIHNldCBiaWxsaW5nTW9kZShiaWxsaW5nTW9kZTogQmlsbGluZ01vZGUpIHtcbiAgICB0aGlzLnJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ2JpbGxpbmdNb2RlJywgYmlsbGluZ01vZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIFRUTCBhdHRyaWJ1dGUuXG4gICAqL1xuICBzZXQgdGltZVRvTGl2ZUF0dHJpYnV0ZSh0aW1lVG9MaXZlU3BlY2lmaWNhdGlvbjogVGltZVRvTGl2ZVNwZWNpZmljYXRpb24pIHtcbiAgICB0aGlzLnJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ3RpbWVUb0xpdmVTcGVjaWZpY2F0aW9uJywgdGltZVRvTGl2ZVNwZWNpZmljYXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgcG9pbnQtaW4tdGltZSByZWNvdmVyeSBpcyBlbmFibGVkLlxuICAgKi9cbiAgc2V0IHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkKHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdwb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbicsIHsgcG9pbnRJblRpbWVSZWNvdmVyeUVuYWJsZWQgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBwcm92aXNpb25lZCB0aHJvdWdocHV0IGZvciB0aGUgYmFzZSB0YWJsZS5cbiAgICovXG4gIHNldCBwcm92aXNpb25lZFRocm91Z2hwdXQocHJvdmlzaW9uZWRUaHJvdWdocHV0OiBQcm92aXNpb25lZFRocm91Z2hwdXQpIHtcbiAgICB0aGlzLnJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ3Byb3Zpc2lvbmVkVGhyb3VnaHB1dCcsIHByb3Zpc2lvbmVkVGhyb3VnaHB1dCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBwcm92aXNpb25lZFRocm91Z2h0cHV0IGZvciBhIHNwZWNpZmllZCBHU0kgYnkgbmFtZS5cbiAgICogQHBhcmFtIGluZGV4TmFtZSB0aGUgaW5kZXggdG8gc3BlY2lmeSBhIHByb3Zpc2lvbmVkVGhyb3VnaHB1dCBjb25maWcgZm9yXG4gICAqIEBwYXJhbSBwcm92aXNpb25lZFRocm91Z2hwdXQgdGhlIGNvbmZpZyB0byBzZXRcbiAgICovXG4gIHNldEdsb2JhbFNlY29uZGFyeUluZGV4UHJvdmlzaW9uZWRUaHJvdWdocHV0KGluZGV4TmFtZTogc3RyaW5nLCBwcm92aXNpb25lZFRocm91Z2hwdXQ6IFByb3Zpc2lvbmVkVGhyb3VnaHB1dCk6IHZvaWQge1xuICAgIGNvbnN0IGdzaXM6IEFycmF5PFtzdHJpbmcsIHsgaW5kZXhOYW1lOiBzdHJpbmcgfV0+ID0gT2JqZWN0LmVudHJpZXMoXG4gICAgICAodGhpcy5yZXNvdXJjZSBhcyBhbnkpLnJhd092ZXJyaWRlcz8uUHJvcGVydGllcz8uZ2xvYmFsU2Vjb25kYXJ5SW5kZXhlcyA/PyB7fSxcbiAgICApO1xuICAgIGNvbnN0IGZvdW5kR3NpcyA9IGdzaXMuZmlsdGVyKChbXywgZ3NpQ29uZmlnXSkgPT4gaW5kZXhOYW1lID09PSBnc2lDb25maWcuaW5kZXhOYW1lKS5tYXAoKFtnc2lJbmRleF0pID0+IGdzaUluZGV4KTtcbiAgICBpZiAoZm91bmRHc2lzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbmRleCB3aXRoIG5hbWUgJHtpbmRleE5hbWV9IG5vdCBmb3VuZCBpbiB0YWJsZSBkZWZpbml0aW9uYCk7XG4gICAgfVxuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZShgZ2xvYmFsU2Vjb25kYXJ5SW5kZXhlcy4ke2ZvdW5kR3Npc1swXX0ucHJvdmlzaW9uZWRUaHJvdWdocHV0YCwgcHJvdmlzaW9uZWRUaHJvdWdocHV0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRkYiBzdHJlYW0gc3BlY2lmaWNhdGlvbiBvbiB0aGUgdGFibGUuXG4gICAqL1xuICBzZXQgc3RyZWFtU3BlY2lmaWNhdGlvbihzdHJlYW1TcGVjaWZpY2F0aW9uOiBTdHJlYW1TcGVjaWZpY2F0aW9uKSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdzdHJlYW1TcGVjaWZpY2F0aW9uJywgc3RyZWFtU3BlY2lmaWNhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBkZGIgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiBzcGVjaWZpY2F0aW9uIG9uIHRoZSB0YWJsZS5cbiAgICovXG4gIHNldCBzc2VTcGVjaWZpY2F0aW9uKHNzZVNwZWNpZmljYXRpb246IFNTRVNwZWNpZmljYXRpb24pIHtcbiAgICB0aGlzLnJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ3NzZVNwZWNpZmljYXRpb24nLCBzc2VTcGVjaWZpY2F0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGFibGUgZGVsZXRpb24gcHJvdGVjdGlvbi5cbiAgICovXG4gIHNldCBkZWxldGlvblByb3RlY3Rpb25FbmFibGVkKGRlbGV0aW9uUHJvdGVjdGlvbkVuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ2RlbGV0aW9uUHJvdGVjdGlvbkVuYWJsZWQnLCBkZWxldGlvblByb3RlY3Rpb25FbmFibGVkKTtcbiAgfVxufVxuIl19
@@ -281,7 +281,7 @@ class AmplifyGraphqlApi extends constructs_1.Construct {
281
281
  }
282
282
  exports.AmplifyGraphqlApi = AmplifyGraphqlApi;
283
283
  _a = JSII_RTTI_SYMBOL_1;
284
- AmplifyGraphqlApi[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlApi", version: "1.18.0" };
284
+ AmplifyGraphqlApi[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlApi", version: "1.18.2" };
285
285
  /**
286
286
  * Given the provided scope, walk the node tree, and throw an exception if any other AmplifyGraphqlApi constructs
287
287
  * are found in the stack.
@@ -101,5 +101,5 @@ class AmplifyGraphqlDefinition {
101
101
  }
102
102
  exports.AmplifyGraphqlDefinition = AmplifyGraphqlDefinition;
103
103
  _a = JSII_RTTI_SYMBOL_1;
104
- AmplifyGraphqlDefinition[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition", version: "1.18.0" };
104
+ AmplifyGraphqlDefinition[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition", version: "1.18.2" };
105
105
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1ncmFwaHFsLWRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYW1wbGlmeS1ncmFwaHFsLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIseURBQXFEO0FBQ3JELG9GQUFzRTtBQUV0RSx5Q0FBMkQ7QUFFM0Qsc0VBSXVDO0FBRTFCLFFBQUEsa0NBQWtDLEdBQTRCO0lBQ3pFLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLGlCQUFpQixFQUFFLFNBQVM7Q0FDN0IsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBYSx3QkFBd0I7SUFDbkM7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FDZixNQUFjLEVBQ2QscUJBQThDLDBDQUFrQztRQUVoRixJQUFBLCtDQUEwQixFQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDL0MsT0FBTztZQUNMLE1BQU07WUFDTixhQUFhLEVBQUUsRUFBRTtZQUNqQix5QkFBeUIsRUFBRSxFQUFFO1lBQzdCLG9CQUFvQixFQUFFLElBQUEsd0NBQTZCLEVBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO1lBQy9FLDZCQUE2QixFQUFFLElBQUEsMkRBQXNDLEVBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO1NBQ2xHLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFtQjtRQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzlCLFNBQVMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLHdCQUFVLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUks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QUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLG9CQUFvQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDckcsNkJBQTZCO1NBQzlCLENBQUM7SUFDSixDQUFDOztBQXBHSCw0REFxR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgeyBTY2hlbWFGaWxlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwcHN5bmMnO1xuaW1wb3J0IHsgaXNTcWxTdHJhdGVneSB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9ncmFwaHFsLXRyYW5zZm9ybWVyLWNvcmUnO1xuaW1wb3J0IHsgSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgY29uc3RydWN0RGF0YVNvdXJjZVN0cmF0ZWdpZXMgfSBmcm9tICcuL2ludGVybmFsJztcbmltcG9ydCB7IEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVneSwgTW9kZWxEYXRhU291cmNlU3RyYXRlZ3kgfSBmcm9tICcuL21vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3ktdHlwZXMnO1xuaW1wb3J0IHtcbiAgY29uc3RydWN0Q3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMsXG4gIHNjaGVtYUJ5TWVyZ2luZ0RlZmluaXRpb25zLFxuICB2YWxpZGF0ZURhdGFTb3VyY2VTdHJhdGVneSxcbn0gZnJvbSAnLi9pbnRlcm5hbC9kYXRhLXNvdXJjZS1jb25maWcnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9NT0RFTF9EQVRBX1NPVVJDRV9TVFJBVEVHWTogTW9kZWxEYXRhU291cmNlU3RyYXRlZ3kgPSB7XG4gIGRiVHlwZTogJ0RZTkFNT0RCJyxcbiAgcHJvdmlzaW9uU3RyYXRlZ3k6ICdERUZBVUxUJyxcbn07XG5cbi8qKlxuICogQ2xhc3MgZXhwb3NpbmcgdXRpbGl0aWVzIHRvIHByb2R1Y2UgSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbiBvYmplY3RzIGdpdmVuIHZhcmlvdXMgaW5wdXRzLlxuICovXG5leHBvcnQgY2xhc3MgQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgLyoqXG4gICAqIFByb2R1Y2UgYSBzY2hlbWEgZGVmaW5pdGlvbiBmcm9tIGEgc3RyaW5nIGlucHV0LlxuICAgKiBAcGFyYW0gc2NoZW1hIHRoZSBncmFwaHFsIGlucHV0IGFzIGEgc3RyaW5nXG4gICAqIEBwYXJhbSBkYXRhU291cmNlU3RyYXRlZ3kgdGhlIHByb3Zpc2lvbmluZyBkZWZpbml0aW9uIGZvciBkYXRhc291cmNlcyB0aGF0IHJlc29sdmUgYEBtb2RlbGBzIGFuZCBjdXN0b20gU1FMIHN0YXRlbWVudHMgaW4gdGhpcyBzY2hlbWEuXG4gICAqIFRoZSBEeW5hbW9EQiBmcm9tIENsb3VkRm9ybWF0aW9uIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LlxuICAgKiBAcmV0dXJucyBhIGZ1bGx5IGZvcm1lZCBhbXBsaWZ5IGdyYXBocWwgZGVmaW5pdGlvblxuICAgKi9cbiAgc3RhdGljIGZyb21TdHJpbmcoXG4gICAgc2NoZW1hOiBzdHJpbmcsXG4gICAgZGF0YVNvdXJjZVN0cmF0ZWd5OiBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSA9IERFRkFVTFRfTU9ERUxfREFUQV9TT1VSQ0VfU1RSQVRFR1ksXG4gICk6IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24ge1xuICAgIHZhbGlkYXRlRGF0YVNvdXJjZVN0cmF0ZWd5KGRhdGFTb3VyY2VTdHJhdGVneSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjaGVtYSxcbiAgICAgIGZ1bmN0aW9uU2xvdHM6IFtdLFxuICAgICAgcmVmZXJlbmNlZExhbWJkYUZ1bmN0aW9uczoge30sXG4gICAgICBkYXRhU291cmNlU3RyYXRlZ2llczogY29uc3RydWN0RGF0YVNvdXJjZVN0cmF0ZWdpZXMoc2NoZW1hLCBkYXRhU291cmNlU3RyYXRlZ3kpLFxuICAgICAgY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXM6IGNvbnN0cnVjdEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzKHNjaGVtYSwgZGF0YVNvdXJjZVN0cmF0ZWd5KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgb25lIG9yIG1vcmUgYXBwc3luYyBTY2hlbWFGaWxlIG9iamVjdHMgaW50byBhbiBBbXBsaWZ5IEdyYXBocWwgU2NoZW1hLCBiaW5kaW5nIHRoZW0gdG8gYSBEeW5hbW9EQiBkYXRhIHNvdXJjZS5cbiAgICogQHBhcmFtIGZpbGVQYXRocyBvbmUgb3IgbW9yZSBwYXRocyB0byB0aGUgZ3JhcGhxbCBmaWxlcyB0byBwcm9jZXNzXG4gICAqIEByZXR1cm5zIGEgZnVsbHkgZm9ybWVkIGFtcGxpZnkgZ3JhcGhxbCBkZWZpbml0aW9uLCB3aG9zZSBtb2RlbHMgd2lsbCBiZSByZXNvbHZlZCBieSBEeW5hbW9EQiB0YWJsZXMgY3JlYXRlZCBkdXJpbmcgZGVwbG95bWVudC5cbiAgICovXG4gIHN0YXRpYyBmcm9tRmlsZXMoLi4uZmlsZVBhdGhzOiBzdHJpbmdbXSk6IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShmaWxlUGF0aHMpKSB7XG4gICAgICBmaWxlUGF0aHMgPSBbZmlsZVBhdGhzXTtcbiAgICB9XG4gICAgY29uc3Qgc2NoZW1hID0gZmlsZVBhdGhzLm1hcCgoZmlsZVBhdGgpID0+IG5ldyBTY2hlbWFGaWxlKHsgZmlsZVBhdGggfSkuZGVmaW5pdGlvbikuam9pbihvcy5FT0wpO1xuICAgIHJldHVybiBBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24uZnJvbVN0cmluZyhzY2hlbWEsIERFRkFVTFRfTU9ERUxfREFUQV9TT1VSQ0VfU1RSQVRFR1kpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgb25lIG9yIG1vcmUgYXBwc3luYyBTY2hlbWFGaWxlIG9iamVjdHMgaW50byBhbiBBbXBsaWZ5IEdyYXBocWwgU2NoZW1hXG4gICAqIEBwYXJhbSBmaWxlUGF0aHMgb25lIG9yIG1vcmUgcGF0aHMgdG8gdGhlIGdyYXBocWwgZmlsZXMgdG8gcHJvY2Vzc1xuICAgKiBAcGFyYW0gZGF0YVNvdXJjZVN0cmF0ZWd5IHRoZSBwcm92aXNpb25pbmcgZGVmaW5pdGlvbiBmb3IgZGF0YXNvdXJjZXMgdGhhdCByZXNvbHZlIGBAbW9kZWxgcyBpbiB0aGlzIHNjaGVtYS4gVGhlIER5bmFtb0RCIGZyb21cbiAgICogQ2xvdWRGb3JtYXRpb24gd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQuXG4gICAqIEByZXR1cm5zIGEgZnVsbHkgZm9ybWVkIGFtcGxpZnkgZ3JhcGhxbCBkZWZpbml0aW9uXG4gICAqL1xuICBzdGF0aWMgZnJvbUZpbGVzQW5kU3RyYXRlZ3koXG4gICAgZmlsZVBhdGhzOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgICBkYXRhU291cmNlU3RyYXRlZ3k6IE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5ID0gREVGQVVMVF9NT0RFTF9EQVRBX1NPVVJDRV9TVFJBVEVHWSxcbiAgKTogSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGZpbGVQYXRocykpIHtcbiAgICAgIGZpbGVQYXRocyA9IFtmaWxlUGF0aHNdO1xuICAgIH1cbiAgICBjb25zdCBzY2hlbWEgPSBmaWxlUGF0aHMubWFwKChmaWxlUGF0aCkgPT4gbmV3IFNjaGVtYUZpbGUoeyBmaWxlUGF0aCB9KS5kZWZpbml0aW9uKS5qb2luKG9zLkVPTCk7XG4gICAgcmV0dXJuIEFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbi5mcm9tU3RyaW5nKHNjaGVtYSwgZGF0YVNvdXJjZVN0cmF0ZWd5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21iaW5lcyBtdWx0aXBsZSBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9ucyBpbnRvIGEgc2luZ2xlIGRlZmluaXRpb24uXG4gICAqIEBwYXJhbSBkZWZpbml0aW9ucyB0aGUgZGVmaW5pdGlvbnMgdG8gY29tYmluZVxuICAgKi9cbiAgc3RhdGljIGNvbWJpbmUoZGVmaW5pdGlvbnM6IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb25bXSk6IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24ge1xuICAgIGlmIChkZWZpbml0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGRlZmluaXRpb25zIG9mIGFtcGxpZnkgR3JhcGhRTCBjYW5ub3QgYmUgZW1wdHkuJyk7XG4gICAgfVxuICAgIGlmIChkZWZpbml0aW9ucy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiBkZWZpbml0aW9uc1swXTtcbiAgICB9XG5cbiAgICAvLyBBIHN0cmF0ZWd5IHdpbGwgYmUgcHJlc2VudCBtdWx0aXBsZSB0aW1lcyBpbiBhIGdpdmVuIGRlZmluaXRpb246IG9uY2UgcGVyIG1vZGVsLiBXZSdsbCBjcmVhdGUgYSB1bmlxdWUgbGlzdCBwZXIgZGVmaW5pdGlvbiB0byBlbnN1cmVcbiAgICAvLyBubyByZXVzZSBhY3Jvc3MgZGVmaW5pdGlvbnMuXG4gICAgbGV0IGNvbWJpbmVkU3RyYXRlZ3lOYW1lczogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGRlZmluaXRpb24gb2YgZGVmaW5pdGlvbnMpIHtcbiAgICAgIGNvbnN0IGRlZmluaXRpb25TdHJhdGVneU5hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICBmb3IgKGNvbnN0IHN0cmF0ZWd5IG9mIE9iamVjdC52YWx1ZXMoZGVmaW5pdGlvbi5kYXRhU291cmNlU3RyYXRlZ2llcykpIHtcbiAgICAgICAgaWYgKCFpc1NxbFN0cmF0ZWd5KHN0cmF0ZWd5KSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0cmF0ZWd5TmFtZSA9IHN0cmF0ZWd5Lm5hbWU7XG4gICAgICAgIGlmIChjb21iaW5lZFN0cmF0ZWd5TmFtZXMuaW5jbHVkZXMoc3RyYXRlZ3lOYW1lKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBUaGUgU1FMLWJhc2VkIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5ICcke3N0cmF0ZWd5TmFtZX0nIHdhcyBmb3VuZCBpbiBtdWx0aXBsZSBkZWZpbml0aW9ucywgYnV0IGEgc3RyYXRlZ3kgbmFtZSBjYW5ub3QgYmUgYCArXG4gICAgICAgICAgICAgIFwic2hhcmVkIGJldHdlZW4gZGVmaW5pdGlvbnMuIFRvIHNwZWNpZnkgYSBTUUwtYmFzZWQgQVBJIHdpdGggc2NoZW1hcyBhY3Jvc3MgbXVsdGlwbGUgZmlsZXMsIHVzZSAnZnJvbUZpbGVzQW5kU3RyYXRlZ3knXCIsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBkZWZpbml0aW9uU3RyYXRlZ3lOYW1lcy5hZGQoc3RyYXRlZ3lOYW1lKTtcbiAgICAgIH1cbiAgICAgIGNvbWJpbmVkU3RyYXRlZ3lOYW1lcyA9IFsuLi5jb21iaW5lZFN0cmF0ZWd5TmFtZXMsIC4uLmRlZmluaXRpb25TdHJhdGVneU5hbWVzXTtcbiAgICB9XG5cbiAgICBjb25zdCBjdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcyA9IGRlZmluaXRpb25zLnJlZHVjZShcbiAgICAgIChhY2MsIGN1cikgPT4gWy4uLmFjYywgLi4uKGN1ci5jdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcyA/PyBbXSldLFxuICAgICAgW10gYXMgQ3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWd5W10sXG4gICAgKTtcblxuICAgIGNvbnN0IG1lcmdlZFNjaGVtYSA9IHNjaGVtYUJ5TWVyZ2luZ0RlZmluaXRpb25zKGRlZmluaXRpb25zKTtcblxuICAgIHJldHVybiB7XG4gICAgICBzY2hlbWE6IG1lcmdlZFNjaGVtYSxcbiAgICAgIGZ1bmN0aW9uU2xvdHM6IFtdLFxuICAgICAgcmVmZXJlbmNlZExhbWJkYUZ1bmN0aW9uczogZGVmaW5pdGlvbnMucmVkdWNlKChhY2MsIGN1cikgPT4gKHsgLi4uYWNjLCAuLi5jdXIucmVmZXJlbmNlZExhbWJkYUZ1bmN0aW9ucyB9KSwge30pLFxuICAgICAgZGF0YVNvdXJjZVN0cmF0ZWdpZXM6IGRlZmluaXRpb25zLnJlZHVjZSgoYWNjLCBjdXIpID0+ICh7IC4uLmFjYywgLi4uY3VyLmRhdGFTb3VyY2VTdHJhdGVnaWVzIH0pLCB7fSksXG4gICAgICBjdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcyxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -91,5 +91,5 @@ class SQLLambdaModelDataSourceStrategyFactory {
91
91
  }
92
92
  exports.SQLLambdaModelDataSourceStrategyFactory = SQLLambdaModelDataSourceStrategyFactory;
93
93
  _a = JSII_RTTI_SYMBOL_1;
94
- SQLLambdaModelDataSourceStrategyFactory[_a] = { fqn: "@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategyFactory", version: "1.18.0" };
94
+ SQLLambdaModelDataSourceStrategyFactory[_a] = { fqn: "@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategyFactory", version: "1.18.2" };
95
95
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLW1vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3FsLW1vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLG9GQUFvRTtBQVNwRTs7OztHQUlHO0FBQ0ksTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLEdBQVEsRUFBMkMsRUFBRTtJQUN0RyxPQUFPLENBQ0wsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBTyxHQUFHLEtBQUssVUFBVSxDQUFDO1FBQ3RELE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRO1FBQzVCLE9BQU8sR0FBRyxDQUFDLE1BQU0sS0FBSyxRQUFRO1FBQzlCLElBQUEsc0NBQVcsRUFBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLElBQUEsOENBQXNDLEVBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQy9ELENBQUM7QUFDSixDQUFDLENBQUM7QUFSVyxRQUFBLGtDQUFrQyxzQ0FRN0M7QUFFRjs7OztHQUlHO0FBQ0ksTUFBTSxzQ0FBc0MsR0FBRyxDQUFDLEdBQVEsRUFBK0MsRUFBRTtJQUM5RyxPQUFPLENBQ0wsSUFBQSxpREFBeUMsRUFBQyxHQUFHLENBQUM7UUFDOUMsSUFBQSw0REFBb0QsRUFBQyxHQUFHLENBQUM7UUFDekQsSUFBQSx1REFBK0MsRUFBQyxHQUFHLENBQUMsQ0FDckQsQ0FBQztBQUNKLENBQUMsQ0FBQztBQU5XLFFBQUEsc0NBQXNDLDBDQU1qRDtBQUVGOzs7O0dBSUc7QUFDSSxNQUFNLHlDQUF5QyxHQUFHLENBQUMsR0FBUSxFQUFrRCxFQUFFO0lBQ3BILE9BQU8sQ0FDTCxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUM7UUFDdEQsT0FBTyxHQUFHLENBQUMsZUFBZSxLQUFLLFFBQVE7UUFDdkMsT0FBTyxHQUFHLENBQUMsV0FBVyxLQUFLLFFBQVE7UUFDbkMsT0FBTyxHQUFHLENBQUMsZUFBZSxLQUFLLFFBQVE7UUFDdkMsT0FBTyxHQUFHLENBQUMsZUFBZSxLQUFLLFFBQVE7UUFDdkMsT0FBTyxHQUFHLENBQUMsbUJBQW1CLEtBQUssUUFBUSxDQUM1QyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBVFcsUUFBQSx5Q0FBeUMsNkNBU3BEO0FBRUY7Ozs7R0FJRztBQUNJLE1BQU0sb0RBQW9ELEdBQUcsQ0FDbEUsR0FBUSxFQUNtRCxFQUFFO0lBQzdELE9BQU8sQ0FDTCxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUM7UUFDdEQsT0FBTyxHQUFHLENBQUMsU0FBUyxLQUFLLFFBQVE7UUFDakMsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVE7UUFDNUIsT0FBTyxHQUFHLENBQUMsWUFBWSxLQUFLLFFBQVE7UUFDcEMsT0FBTyxHQUFHLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FDaEMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQVZXLFFBQUEsb0RBQW9ELHdEQVUvRDtBQUVGOzs7O0dBSUc7QUFDSSxNQUFNLCtDQUErQyxHQUFHLENBQUMsR0FBUSxFQUF3RCxFQUFFO0lBQ2hJLE9BQU8sQ0FDTCxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUM7UUFDdEQsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxvQkFBb0IsS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUMxRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBTFcsUUFBQSwrQ0FBK0MsbURBSzFEO0FBRUY7O0dBRUc7QUFDSCxNQUFhLHVDQUF1QztJQUNsRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxrQkFBa0IsQ0FDdkIsUUFBa0IsRUFDbEIsT0FBeUU7UUFFekUsTUFBTSxtQkFBbUIsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBMEIsRUFBRTtZQUNwRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMzQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbEQsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBNEIsQ0FBQyxDQUFDO1FBRWpDLE9BQU87WUFDTCxtQkFBbUI7WUFDbkIsR0FBRyxPQUFPO1NBQ1gsQ0FBQztJQUNKLENBQUM7O0FBckJILDBGQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBpc1NxbERiVHlwZSB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9ncmFwaHFsLXRyYW5zZm9ybWVyLWNvcmUnO1xuaW1wb3J0IHtcbiAgU1FMTGFtYmRhTW9kZWxEYXRhU291cmNlU3RyYXRlZ3ksXG4gIFNxbE1vZGVsRGF0YVNvdXJjZURiQ29ubmVjdGlvbkNvbmZpZyxcbiAgU3FsTW9kZWxEYXRhU291cmNlU3NtRGJDb25uZWN0aW9uQ29uZmlnLFxuICBTcWxNb2RlbERhdGFTb3VyY2VTZWNyZXRzTWFuYWdlckRiQ29ubmVjdGlvbkNvbmZpZyxcbiAgU3FsTW9kZWxEYXRhU291cmNlU3NtRGJDb25uZWN0aW9uU3RyaW5nQ29uZmlnLFxufSBmcm9tICcuL21vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3ktdHlwZXMnO1xuXG4vKipcbiAqIFR5cGUgcHJlZGljYXRlIHRoYXQgcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgYSBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneS5cbiAqIEBwYXJhbSBvYmogdGhlIG9iamVjdCB0byBpbnNwZWN0XG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgc2hhcGVkIGxpa2UgYSBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneVxuICovXG5leHBvcnQgY29uc3QgaXNTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSA9IChvYmo6IGFueSk6IG9iaiBpcyBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSA9PiB7XG4gIHJldHVybiAoXG4gICAgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnIHx8IHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbicpICYmXG4gICAgdHlwZW9mIG9iai5uYW1lID09PSAnc3RyaW5nJyAmJlxuICAgIHR5cGVvZiBvYmouZGJUeXBlID09PSAnc3RyaW5nJyAmJlxuICAgIGlzU3FsRGJUeXBlKG9iai5kYlR5cGUpICYmXG4gICAgaXNTcWxNb2RlbERhdGFTb3VyY2VEYkNvbm5lY3Rpb25Db25maWcob2JqLmRiQ29ubmVjdGlvbkNvbmZpZylcbiAgKTtcbn07XG5cbi8qKlxuICogVHlwZSBwcmVkaWNhdGUgdGhhdCByZXR1cm5zIHRydWUgaWYgdGhlIG9iamVjdCBpcyBhIFNxbE1vZGVsRGF0YVNvdXJjZURiQ29ubmVjdGlvbkNvbmZpZy5cbiAqIEBwYXJhbSBvYmogdGhlIG9iamVjdCB0byBpbnNwZWN0XG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgc2hhcGVkIGxpa2UgYSBTcWxNb2RlbERhdGFTb3VyY2VEYkNvbm5lY3Rpb25Db25maWdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzU3FsTW9kZWxEYXRhU291cmNlRGJDb25uZWN0aW9uQ29uZmlnID0gKG9iajogYW55KTogb2JqIGlzIFNxbE1vZGVsRGF0YVNvdXJjZURiQ29ubmVjdGlvbkNvbmZpZyA9PiB7XG4gIHJldHVybiAoXG4gICAgaXNTcWxNb2RlbERhdGFTb3VyY2VTc21EYkNvbm5lY3Rpb25Db25maWcob2JqKSB8fFxuICAgIGlzU3FsTW9kZWxEYXRhU291cmNlU2VjcmV0c01hbmFnZXJEYkNvbm5lY3Rpb25Db25maWcob2JqKSB8fFxuICAgIGlzU3FsTW9kZWxEYXRhU291cmNlU3NtRGJDb25uZWN0aW9uU3RyaW5nQ29uZmlnKG9iailcbiAgKTtcbn07XG5cbi8qKlxuICogVHlwZSBwcmVkaWNhdGUgdGhhdCByZXR1cm5zIHRydWUgaWYgdGhlIG9iamVjdCBpcyBhIFNxbE1vZGVsRGF0YVNvdXJjZVNzbURiQ29ubmVjdGlvbkNvbmZpZy5cbiAqIEBwYXJhbSBvYmogdGhlIG9iamVjdCB0byBpbnNwZWN0XG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgc2hhcGVkIGxpa2UgYSBTcWxNb2RlbERhdGFTb3VyY2VTc21EYkNvbm5lY3Rpb25Db25maWdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzU3FsTW9kZWxEYXRhU291cmNlU3NtRGJDb25uZWN0aW9uQ29uZmlnID0gKG9iajogYW55KTogb2JqIGlzIFNxbE1vZGVsRGF0YVNvdXJjZVNzbURiQ29ubmVjdGlvbkNvbmZpZyA9PiB7XG4gIHJldHVybiAoXG4gICAgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnIHx8IHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbicpICYmXG4gICAgdHlwZW9mIG9iai5ob3N0bmFtZVNzbVBhdGggPT09ICdzdHJpbmcnICYmXG4gICAgdHlwZW9mIG9iai5wb3J0U3NtUGF0aCA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb2JqLnVzZXJuYW1lU3NtUGF0aCA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb2JqLnBhc3N3b3JkU3NtUGF0aCA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb2JqLmRhdGFiYXNlTmFtZVNzbVBhdGggPT09ICdzdHJpbmcnXG4gICk7XG59O1xuXG4vKipcbiAqIFR5cGUgcHJlZGljYXRlIHRoYXQgcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgYSBTcWxNb2RlbERhdGFTb3VyY2VTZWNyZXRzTWFuYWdlckRiQ29ubmVjdGlvbkNvbmZpZy5cbiAqIEBwYXJhbSBvYmogdGhlIG9iamVjdCB0byBpbnNwZWN0XG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgc2hhcGVkIGxpa2UgYSBTcWxNb2RlbERhdGFTb3VyY2VTZWNyZXRzTWFuYWdlckRiQ29ubmVjdGlvbkNvbmZpZ1xuICovXG5leHBvcnQgY29uc3QgaXNTcWxNb2RlbERhdGFTb3VyY2VTZWNyZXRzTWFuYWdlckRiQ29ubmVjdGlvbkNvbmZpZyA9IChcbiAgb2JqOiBhbnksXG4pOiBvYmogaXMgU3FsTW9kZWxEYXRhU291cmNlU2VjcmV0c01hbmFnZXJEYkNvbm5lY3Rpb25Db25maWcgPT4ge1xuICByZXR1cm4gKFxuICAgICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyB8fCB0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nKSAmJlxuICAgIHR5cGVvZiBvYmouc2VjcmV0QXJuID09PSAnc3RyaW5nJyAmJlxuICAgIHR5cGVvZiBvYmoucG9ydCA9PT0gJ251bWJlcicgJiZcbiAgICB0eXBlb2Ygb2JqLmRhdGFiYXNlTmFtZSA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb2JqLmhvc3RuYW1lID09ICdzdHJpbmcnXG4gICk7XG59O1xuXG4vKipcbiAqIFR5cGUgcHJlZGljYXRlIHRoYXQgcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgYSBTcWxNb2RlbERhdGFTb3VyY2VTc21EYkNvbm5lY3Rpb25TdHJpbmdDb25maWcuXG4gKiBAcGFyYW0gb2JqIHRoZSBvYmplY3QgdG8gaW5zcGVjdFxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIHNoYXBlZCBsaWtlIGEgU3FsTW9kZWxEYXRhU291cmNlU3NtRGJDb25uZWN0aW9uU3RyaW5nQ29uZmlnXG4gKi9cbmV4cG9ydCBjb25zdCBpc1NxbE1vZGVsRGF0YVNvdXJjZVNzbURiQ29ubmVjdGlvblN0cmluZ0NvbmZpZyA9IChvYmo6IGFueSk6IG9iaiBpcyBTcWxNb2RlbERhdGFTb3VyY2VTc21EYkNvbm5lY3Rpb25TdHJpbmdDb25maWcgPT4ge1xuICByZXR1cm4gKFxuICAgICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyB8fCB0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nKSAmJlxuICAgICh0eXBlb2Ygb2JqLmNvbm5lY3Rpb25VcmlTc21QYXRoID09PSAnc3RyaW5nJyB8fCBBcnJheS5pc0FycmF5KG9iai5jb25uZWN0aW9uVXJpU3NtUGF0aCkpXG4gICk7XG59O1xuXG4vKipcbiAqIENsYXNzIGV4cG9zaW5nIHV0aWxpdGllcyB0byBwcm9kdWNlIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IG9iamVjdHMgZ2l2ZW4gdmFyaW91cyBpbnB1dHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneUZhY3Rvcnkge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IHdoZXJlIHRoZSBiaW5kaW5nJ3MgYGN1c3RvbVNxbFN0YXRlbWVudHNgIGFyZSBwb3B1bGF0ZWQgZnJvbSBgc3FsRmlsZXNgLiBUaGUga2V5XG4gICAqIG9mIHRoZSBgY3VzdG9tU3FsU3RhdGVtZW50c2AgcmVjb3JkIGlzIHRoZSBmaWxlJ3MgYmFzZSBuYW1lICh0aGF0IGlzLCB0aGUgbmFtZSBvZiB0aGUgZmlsZSBtaW51cyB0aGUgZGlyZWN0b3J5IGFuZCBleHRlbnNpb24pLlxuICAgKiBAcGFyYW0gc3FsRmlsZXMgdGhlIGxpc3Qgb2YgZmlsZXMgdG8gbG9hZCBTUUwgc3RhdGVtZW50cyBmcm9tLlxuICAgKiBAcGFyYW0gb3B0aW9ucyB0aGUgcmVtYWluaW5nIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IG9wdGlvbnMuXG4gICAqL1xuICBzdGF0aWMgZnJvbUN1c3RvbVNxbEZpbGVzKFxuICAgIHNxbEZpbGVzOiBzdHJpbmdbXSxcbiAgICBvcHRpb25zOiBFeGNsdWRlPFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5LCAnY3VzdG9tU3FsU3RhdGVtZW50cyc+LFxuICApOiBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSB7XG4gICAgY29uc3QgY3VzdG9tU3FsU3RhdGVtZW50cyA9IHNxbEZpbGVzLnJlZHVjZSgoYWNjLCBmaWxlUGF0aCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4ge1xuICAgICAgY29uc3QgYmFzZW5hbWUgPSBwYXRoLnBhcnNlKGZpbGVQYXRoKS5uYW1lO1xuICAgICAgYWNjW2Jhc2VuYW1lXSA9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0ZjgnKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY3VzdG9tU3FsU3RhdGVtZW50cyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -267,7 +267,9 @@ class BedrockConverseAdapter {
267
267
  if (!chunk.contentBlockDelta.delta.toolUse.input) {
268
268
  toolUseInput = '';
269
269
  }
270
- toolUseInput += chunk.contentBlockDelta.delta.toolUse.input;
270
+ else {
271
+ toolUseInput += chunk.contentBlockDelta.delta.toolUse.input;
272
+ }
271
273
  }
272
274
  else if ((_d = chunk.contentBlockDelta.delta) === null || _d === void 0 ? void 0 : _d.text) {
273
275
  text += chunk.contentBlockDelta.delta.text;
@@ -285,7 +287,14 @@ class BedrockConverseAdapter {
285
287
  }
286
288
  else if (chunk.contentBlockStop) {
287
289
  if (toolUseBlock) {
288
- toolUseBlock.toolUse.input = JSON.parse(toolUseInput);
290
+ if (toolUseInput) {
291
+ toolUseBlock.toolUse.input = JSON.parse(toolUseInput);
292
+ }
293
+ else {
294
+ // Bedrock API requires tool input to be non-null in message history.
295
+ // Therefore, falling back to empty object.
296
+ toolUseBlock.toolUse.input = {};
297
+ }
289
298
  (_e = accumulatedAssistantMessage.content) === null || _e === void 0 ? void 0 : _e.push(toolUseBlock);
290
299
  if (toolUseBlock.toolUse.name &&
291
300
  this.clientToolByName.has(toolUseBlock.toolUse.name)) {
@@ -364,4 +373,4 @@ class BedrockConverseAdapter {
364
373
  }
365
374
  }
366
375
  exports.BedrockConverseAdapter = BedrockConverseAdapter;
367
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVkcm9ja19jb252ZXJzZV9hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnZlcnNhdGlvbi9ydW50aW1lL2JlZHJvY2tfY29udmVyc2VfYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0RUFheUM7QUFPekMsaUVBQTRFO0FBQzVFLHFHQUErRjtBQUUvRixxQ0FBMkM7QUFDM0MsK0RBQTBEO0FBRTFEOzs7R0FHRztBQUNILE1BQWEsc0JBQXNCO0lBUWpDOztPQUVHO0lBQ0gsWUFDbUIsS0FBNEIsRUFDN0MsZUFBc0MsRUFDckIsZ0JBQXNDLElBQUksNkNBQW9CLENBQzdFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FDNUMsRUFDRCxrQkFBa0IsR0FBRyxJQUFJLHlEQUFrQyxDQUFDLEtBQUssQ0FBQyxFQUNqRCwwQkFBMEIsSUFBSSw0RUFBbUMsQ0FDaEYsS0FBSyxDQUNOLEVBQ0QsaUJBQWlCLEdBQUcsSUFBSSx1Q0FBaUIsQ0FBQyxLQUFLLENBQUMsRUFDL0IsU0FBUyxPQUFPOztRQVZoQixVQUFLLEdBQUwsS0FBSyxDQUF1QjtRQUU1QixrQkFBYSxHQUFiLGFBQWEsQ0FFN0I7UUFFZ0IsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUV2QztRQUVnQixXQUFNLEdBQU4sTUFBTSxDQUFVO1FBbEJsQix5QkFBb0IsR0FDbkMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNLLHFCQUFnQixHQUFnQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBOEQzRSxlQUFVLEdBQUcsS0FBSyxJQUE2QixFQUFFOztZQUMvQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxHQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDO1lBRWhDLE1BQU0sUUFBUSxHQUNaLE1BQU0sSUFBSSxDQUFDLGlDQUFpQyxFQUFFLENBQUM7WUFF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QUFDO2dCQUN2QyxNQUFNLHlCQUF5QixHQUF3QixFQUFFLENBQUM7Z0JBQzFELEtBQUssTUFBTSxvQkFBb0IsSUFBSSxhQUFhLEVBQUU7b0JBQ2hELE1BQU0sWUFBWSxHQUNoQixvQkFBa0QsQ0FBQztvQkFDckQsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ3BFLHlCQUF5QixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2lCQUN4RDtnQkFDRCxRQUFRLENBQUMsSUFBSSxDQUFDO29CQUNaLElBQUksRUFBRSxNQUFNO29CQUNaLE9BQU8sRUFBRSx5QkFBeUI7aUJBQ25DLENBQUMsQ0FBQzthQUNKO1NBQ0YsUUFBUSxVQUFVLEtBQUssVUFBVSxFQUFFO1FBRXBDLE1BQU07WUFDSixzQkFBc0IsRUFBRSxDQUFDLEdBQUcsc0JBQXNCLENBQUM7WUFDbkQsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYztZQUN6Qyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQjtZQUNwRCxpQkFBaUIsRUFBRSxjQUFjO1lBQ2pDLFVBQVUsRUFBRSxVQUFVO1NBQ3ZCLENBQUM7SUFDSixDQUFDO0NBc0dGO0FBdFpELHdEQXNaQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJlZHJvY2tSdW50aW1lQ2xpZW50LFxuICBDb250ZW50QmxvY2ssXG4gIENvbnZlcnNlQ29tbWFuZCxcbiAgQ29udmVyc2VDb21tYW5kSW5wdXQsXG4gIENvbnZlcnNlQ29tbWFuZE91dHB1dCxcbiAgQ29udmVyc2VTdHJlYW1Db21tYW5kLFxuICBDb252ZXJzZVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgQ29udmVyc2VTdHJlYW1Db21tYW5kT3V0cHV0LFxuICBNZXNzYWdlLFxuICBUb29sLFxuICBUb29sQ29uZmlndXJhdGlvbixcbiAgVG9vbElucHV0U2NoZW1hLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtYmVkcm9jay1ydW50aW1lJztcbmltcG9ydCB7XG4gIENvbnZlcnNhdGlvblR1cm5FdmVudCxcbiAgRXhlY3V0YWJsZVRvb2wsXG4gIFN0cmVhbWluZ1Jlc3BvbnNlQ2h1bmssXG4gIFRvb2xEZWZpbml0aW9uLFxufSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB7IENvbnZlcnNhdGlvblR1cm5FdmVudFRvb2xzUHJvdmlkZXIgfSBmcm9tICcuL2V2ZW50LXRvb2xzLXByb3ZpZGVyJztcbmltcG9ydCB7IENvbnZlcnNhdGlvbk1lc3NhZ2VIaXN0b3J5UmV0cmlldmVyIH0gZnJvbSAnLi9jb252ZXJzYXRpb25fbWVzc2FnZV9oaXN0b3J5X3JldHJpZXZlcic7XG5pbXBvcnQgKiBhcyBiZWRyb2NrIGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1iZWRyb2NrLXJ1bnRpbWUnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHsgVXNlckFnZW50UHJvdmlkZXIgfSBmcm9tICcuL3VzZXJfYWdlbnRfcHJvdmlkZXInO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGludGVyYWN0aW5nIHdpdGggQmVkcm9jayBDb252ZXJzZSBBUElcbiAqIGluIG9yZGVyIHRvIHByb2R1Y2UgZmluYWwgcmVzcG9uc2UgdGhhdCBjYW4gYmUgc2VudCBiYWNrIHRvIGNhbGxlci5cbiAqL1xuZXhwb3J0IGNsYXNzIEJlZHJvY2tDb252ZXJzZUFkYXB0ZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGFsbFRvb2xzOiBBcnJheTxUb29sRGVmaW5pdGlvbj47XG4gIHByaXZhdGUgcmVhZG9ubHkgZXhlY3V0YWJsZVRvb2xzOiBBcnJheTxFeGVjdXRhYmxlVG9vbD47XG4gIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50VG9vbHM6IEFycmF5PFRvb2xEZWZpbml0aW9uPjtcbiAgcHJpdmF0ZSByZWFkb25seSBleGVjdXRhYmxlVG9vbEJ5TmFtZTogTWFwPHN0cmluZywgRXhlY3V0YWJsZVRvb2w+ID1cbiAgICBuZXcgTWFwKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50VG9vbEJ5TmFtZTogTWFwPHN0cmluZywgVG9vbERlZmluaXRpb24+ID0gbmV3IE1hcCgpO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIEJlZHJvY2sgQ29udmVyc2UgQWRhcHRlci5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnQ6IENvbnZlcnNhdGlvblR1cm5FdmVudCxcbiAgICBhZGRpdGlvbmFsVG9vbHM6IEFycmF5PEV4ZWN1dGFibGVUb29sPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJlZHJvY2tDbGllbnQ6IEJlZHJvY2tSdW50aW1lQ2xpZW50ID0gbmV3IEJlZHJvY2tSdW50aW1lQ2xpZW50KFxuICAgICAgeyByZWdpb246IGV2ZW50Lm1vZGVsQ29uZmlndXJhdGlvbi5yZWdpb24gfVxuICAgICksXG4gICAgZXZlbnRUb29sc1Byb3ZpZGVyID0gbmV3IENvbnZlcnNhdGlvblR1cm5FdmVudFRvb2xzUHJvdmlkZXIoZXZlbnQpLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZUhpc3RvcnlSZXRyaWV2ZXIgPSBuZXcgQ29udmVyc2F0aW9uTWVzc2FnZUhpc3RvcnlSZXRyaWV2ZXIoXG4gICAgICBldmVudFxuICAgICksXG4gICAgdXNlckFnZW50UHJvdmlkZXIgPSBuZXcgVXNlckFnZW50UHJvdmlkZXIoZXZlbnQpLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gY29uc29sZVxuICApIHtcbiAgICB0aGlzLmJlZHJvY2tDbGllbnQubWlkZGxld2FyZVN0YWNrLmFkZChcbiAgICAgIChuZXh0KSA9PiAoYXJncykgPT4ge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFJlcXVlc3QgaXMgdHlwZWQgYXMgdW5rbm93bi5cbiAgICAgICAgLy8gQnV0IHRoaXMgaXMgcmVjb21tZW5kZWQgd2F5IHRvIGFsdGVyIGhlYWRlcnMgcGVyIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My9ibG9iL21haW4vUkVBRE1FLm1kLlxuICAgICAgICBhcmdzLnJlcXVlc3QuaGVhZGVyc1sneC1hbXotdXNlci1hZ2VudCddID1cbiAgICAgICAgICB1c2VyQWdlbnRQcm92aWRlci5nZXRVc2VyQWdlbnQoKTtcbiAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzdGVwOiAnYnVpbGQnLFxuICAgICAgICBuYW1lOiAnYW1wbGlmeS11c2VyLWFnZW50LWluamVjdG9yJyxcbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMuZXhlY3V0YWJsZVRvb2xzID0gW1xuICAgICAgLi4uZXZlbnRUb29sc1Byb3ZpZGVyLmdldEV2ZW50VG9vbHMoKSxcbiAgICAgIC4uLmFkZGl0aW9uYWxUb29scyxcbiAgICBdO1xuICAgIHRoaXMuY2xpZW50VG9vbHMgPSB0aGlzLmV2ZW50LnRvb2xzQ29uZmlndXJhdGlvbj8uY2xpZW50VG9vbHMgPz8gW107XG4gICAgdGhpcy5hbGxUb29scyA9IFsuLi50aGlzLmV4ZWN1dGFibGVUb29scywgLi4udGhpcy5jbGllbnRUb29sc107XG4gICAgY29uc3QgZHVwbGljYXRlVG9vbHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICB0aGlzLmV4ZWN1dGFibGVUb29scy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICBpZiAodGhpcy5leGVjdXRhYmxlVG9vbEJ5TmFtZS5oYXModC5uYW1lKSkge1xuICAgICAgICBkdXBsaWNhdGVUb29scy5hZGQodC5uYW1lKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZXhlY3V0YWJsZVRvb2xCeU5hbWUuc2V0KHQubmFtZSwgdCk7XG4gICAgfSk7XG4gICAgdGhpcy5jbGllbnRUb29scy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICBpZiAodGhpcy5leGVjdXRhYmxlVG9vbEJ5TmFtZS5oYXModC5uYW1lKSkge1xuICAgICAgICBkdXBsaWNhdGVUb29scy5hZGQodC5uYW1lKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmNsaWVudFRvb2xCeU5hbWUuaGFzKHQubmFtZSkpIHtcbiAgICAgICAgZHVwbGljYXRlVG9vbHMuYWRkKHQubmFtZSk7XG4gICAgICB9XG4gICAgICB0aGlzLmNsaWVudFRvb2xCeU5hbWUuc2V0KHQubmFtZSwgdCk7XG4gICAgfSk7XG4gICAgaWYgKGR1cGxpY2F0ZVRvb2xzLnNpemUgPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBgVG9vbHMgbXVzdCBoYXZlIHVuaXF1ZSBuYW1lcy4gRHVwbGljYXRlIHRvb2xzOiAke1tcbiAgICAgICAgICAuLi5kdXBsaWNhdGVUb29scyxcbiAgICAgICAgXS5qb2luKCcsICcpfS5gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGFza0JlZHJvY2sgPSBhc3luYyAoKTogUHJvbWlzZTxDb250ZW50QmxvY2tbXT4gPT4ge1xuICAgIGNvbnN0IHsgbW9kZWxJZCwgc3lzdGVtUHJvbXB0LCBpbmZlcmVuY2VDb25maWd1cmF0aW9uIH0gPVxuICAgICAgdGhpcy5ldmVudC5tb2RlbENvbmZpZ3VyYXRpb247XG5cbiAgICBjb25zdCBtZXNzYWdlczogQXJyYXk8TWVzc2FnZT4gPVxuICAgICAgYXdhaXQgdGhpcy5nZXRFdmVudE1lc3NhZ2VzQXNCZWRyb2NrTWVzc2FnZXMoKTtcblxuICAgIGxldCBiZWRyb2NrUmVzcG9uc2U6IENvbnZlcnNlQ29tbWFuZE91dHB1dDtcbiAgICBkbyB7XG4gICAgICBjb25zdCB0b29sQ29uZmlnID0gdGhpcy5jcmVhdGVUb29sQ29uZmlndXJhdGlvbigpO1xuICAgICAgY29uc3QgY29udmVyc2VDb21tYW5kSW5wdXQ6IENvbnZlcnNlQ29tbWFuZElucHV0ID0ge1xuICAgICAgICBtb2RlbElkLFxuICAgICAgICBtZXNzYWdlczogWy4uLm1lc3NhZ2VzXSxcbiAgICAgICAgc3lzdGVtOiBbeyB0ZXh0OiBzeXN0ZW1Qcm9tcHQgfV0sXG4gICAgICAgIGluZmVyZW5jZUNvbmZpZzogaW5mZXJlbmNlQ29uZmlndXJhdGlvbixcbiAgICAgICAgdG9vbENvbmZpZyxcbiAgICAgIH07XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKCdTZW5kaW5nIEJlZHJvY2sgQ29udmVyc2UgcmVxdWVzdCcpO1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0JlZHJvY2sgQ29udmVyc2UgcmVxdWVzdDonLCBjb252ZXJzZUNvbW1hbmRJbnB1dCk7XG4gICAgICBiZWRyb2NrUmVzcG9uc2UgPSBhd2FpdCB0aGlzLmJlZHJvY2tDbGllbnQuc2VuZChcbiAgICAgICAgbmV3IENvbnZlcnNlQ29tbWFuZChjb252ZXJzZUNvbW1hbmRJbnB1dClcbiAgICAgICk7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICBgUmVjZWl2ZWQgQmVkcm9jayBDb252ZXJzZSByZXNwb25zZSwgcmVxdWVzdElkPSR7YmVkcm9ja1Jlc3BvbnNlLiRtZXRhZGF0YS5yZXF1ZXN0SWR9YCxcbiAgICAgICAgYmVkcm9ja1Jlc3BvbnNlLnVzYWdlXG4gICAgICApO1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0JlZHJvY2sgQ29udmVyc2UgcmVzcG9uc2U6JywgYmVkcm9ja1Jlc3BvbnNlKTtcbiAgICAgIGlmIChiZWRyb2NrUmVzcG9uc2Uub3V0cHV0Py5tZXNzYWdlKSB7XG4gICAgICAgIG1lc3NhZ2VzLnB1c2goYmVkcm9ja1Jlc3BvbnNlLm91dHB1dD8ubWVzc2FnZSk7XG4gICAgICB9XG4gICAgICBpZiAoYmVkcm9ja1Jlc3BvbnNlLnN0b3BSZWFzb24gPT09ICd0b29sX3VzZScpIHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2VDb250ZW50QmxvY2tzID1cbiAgICAgICAgICBiZWRyb2NrUmVzcG9uc2Uub3V0cHV0Py5tZXNzYWdlPy5jb250ZW50ID8/IFtdO1xuICAgICAgICBjb25zdCB0b29sVXNlQmxvY2tzID0gcmVzcG9uc2VDb250ZW50QmxvY2tzLmZpbHRlcihcbiAgICAgICAgICAoYmxvY2spID0+ICd0b29sVXNlJyBpbiBibG9ja1xuICAgICAgICApIGFzIEFycmF5PENvbnRlbnRCbG9jay5Ub29sVXNlTWVtYmVyPjtcbiAgICAgICAgY29uc3QgY2xpZW50VG9vbFVzZUJsb2NrcyA9IHJlc3BvbnNlQ29udGVudEJsb2Nrcy5maWx0ZXIoXG4gICAgICAgICAgKGJsb2NrKSA9PlxuICAgICAgICAgICAgYmxvY2sudG9vbFVzZT8ubmFtZSAmJlxuICAgICAgICAgICAgdGhpcy5jbGllbnRUb29sQnlOYW1lLmhhcyhibG9jay50b29sVXNlPy5uYW1lKVxuICAgICAgICApO1xuICAgICAgICBpZiAoY2xpZW50VG9vbFVzZUJsb2Nrcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgLy8gRm9yIG5vdyBpZiBhbnkgb2YgY2xpZW50IHRvb2xzIGlzIHVzZWQgd2UgaWdub3JlIGV4ZWN1dGFibGUgdG9vbHNcbiAgICAgICAgICAvLyBhbmQgcHJvcGFnYXRlIHJlc3VsdCBiYWNrIHRvIGNsaWVudC5cbiAgICAgICAgICByZXR1cm4gY2xpZW50VG9vbFVzZUJsb2NrcztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0b29sUmVzcG9uc2VDb250ZW50QmxvY2tzOiBBcnJheTxDb250ZW50QmxvY2s+ID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcmVzcG9uc2VDb250ZW50QmxvY2sgb2YgdG9vbFVzZUJsb2Nrcykge1xuICAgICAgICAgIGNvbnN0IHRvb2xVc2VCbG9jayA9XG4gICAgICAgICAgICByZXNwb25zZUNvbnRlbnRCbG9jayBhcyBDb250ZW50QmxvY2suVG9vbFVzZU1lbWJlcjtcbiAgICAgICAgICBjb25zdCB0b29sUmVzdWx0Q29udGVudEJsb2NrID0gYXdhaXQgdGhpcy5leGVjdXRlVG9vbCh0b29sVXNlQmxvY2spO1xuICAgICAgICAgIHRvb2xSZXNwb25zZUNvbnRlbnRCbG9ja3MucHVzaCh0b29sUmVzdWx0Q29udGVudEJsb2NrKTtcbiAgICAgICAgfVxuICAgICAgICBtZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgICByb2xlOiAndXNlcicsXG4gICAgICAgICAgY29udGVudDogdG9vbFJlc3BvbnNlQ29udGVudEJsb2NrcyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSB3aGlsZSAoYmVkcm9ja1Jlc3BvbnNlLnN0b3BSZWFzb24gPT09ICd0b29sX3VzZScpO1xuXG4gICAgcmV0dXJuIGJlZHJvY2tSZXNwb25zZS5vdXRwdXQ/Lm1lc3NhZ2U/LmNvbnRlbnQgPz8gW107XG4gIH07XG5cbiAgLyoqXG4gICAqIEFza3MgQmVkcm9jayBmb3IgcmVzcG9uc2UgdXNpbmcgc3RyZWFtaW5nIHZlcnNpb24gb2YgQ29udmVyc2UgQVBJLlxuICAgKi9cbiAgYXN5bmMgKmFza0JlZHJvY2tTdHJlYW1pbmcoKTogQXN5bmNHZW5lcmF0b3I8U3RyZWFtaW5nUmVzcG9uc2VDaHVuaz4ge1xuICAgIGNvbnN0IHsgbW9kZWxJZCwgc3lzdGVtUHJvbXB0LCBpbmZlcmVuY2VDb25maWd1cmF0aW9uIH0gPVxuICAgICAgdGhpcy5ldmVudC5tb2RlbENvbmZpZ3VyYXRpb247XG5cbiAgICBjb25zdCBtZXNzYWdlczogQXJyYXk8TWVzc2FnZT4gPVxuICAgICAgYXdhaXQgdGhpcy5nZXRFdmVudE1lc3NhZ2VzQXNCZWRyb2NrTWVzc2FnZXMoKTtcblxuICAgIGxldCBiZWRyb2NrUmVzcG9uc2U6IENvbnZlcnNlU3RyZWFtQ29tbWFuZE91dHB1dDtcbiAgICAvLyBrZWVwIG91ciBvd24gaW5kZXhpbmcgZm9yIGJsb2NrcyBpbnN0ZWFkIG9mIHVzaW5nIEJlZHJvY2sncyBpbmRleGVzXG4gICAgLy8gc2luY2Ugd2Ugc3RyZWFtIHN1YnNldCBvZiB0aGVzZSB1cHN0cmVhbS5cbiAgICBsZXQgYmxvY2tJbmRleCA9IDA7XG4gICAgbGV0IGxhc3RCbG9ja0luZGV4ID0gMDtcbiAgICBsZXQgc3RvcFJlYXNvbiA9ICcnO1xuICAgIC8vIEFjY3VtdWxhdGVzIGNsaWVudCBmYWNpbmcgY29udGVudCBwZXIgdHVybi5cbiAgICAvLyBTbyB0aGF0IHVwc3RyZWFtIGNhbiBwZXJzaXN0IGZ1bGwgbWVzc2FnZSBhdCB0aGUgZW5kIG9mIHRoZSBzdHJlYW1pbmcuXG4gICAgY29uc3QgYWNjdW11bGF0ZWRUdXJuQ29udGVudDogQXJyYXk8YmVkcm9jay5Db250ZW50QmxvY2s+ID0gW107XG4gICAgZG8ge1xuICAgICAgY29uc3QgdG9vbENvbmZpZyA9IHRoaXMuY3JlYXRlVG9vbENvbmZpZ3VyYXRpb24oKTtcbiAgICAgIGNvbnN0IGNvbnZlcnNlQ29tbWFuZElucHV0OiBDb252ZXJzZVN0cmVhbUNvbW1hbmRJbnB1dCA9IHtcbiAgICAgICAgbW9kZWxJZCxcbiAgICAgICAgbWVzc2FnZXM6IFsuLi5tZXNzYWdlc10sXG4gICAgICAgIHN5c3RlbTogW3sgdGV4dDogc3lzdGVtUHJvbXB0IH1dLFxuICAgICAgICBpbmZlcmVuY2VDb25maWc6IGluZmVyZW5jZUNvbmZpZ3VyYXRpb24sXG4gICAgICAgIHRvb2xDb25maWcsXG4gICAgICB9O1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbygnU2VuZGluZyBCZWRyb2NrIENvbnZlcnNlIFN0cmVhbSByZXF1ZXN0Jyk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgJ0JlZHJvY2sgQ29udmVyc2UgU3RyZWFtIHJlcXVlc3Q6JyxcbiAgICAgICAgY29udmVyc2VDb21tYW5kSW5wdXRcbiAgICAgICk7XG4gICAgICBiZWRyb2NrUmVzcG9uc2UgPSBhd2FpdCB0aGlzLmJlZHJvY2tDbGllbnQuc2VuZChcbiAgICAgICAgbmV3IENvbnZlcnNlU3RyZWFtQ29tbWFuZChjb252ZXJzZUNvbW1hbmRJbnB1dClcbiAgICAgICk7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICBgUmVjZWl2ZWQgQmVkcm9jayBDb252ZXJzZSBTdHJlYW0gcmVzcG9uc2UsIHJlcXVlc3RJZD0ke2JlZHJvY2tSZXNwb25zZS4kbWV0YWRhdGEucmVxdWVzdElkfWBcbiAgICAgICk7XG4gICAgICBpZiAoIWJlZHJvY2tSZXNwb25zZS5zdHJlYW0pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCZWRyb2NrIHJlc3BvbnNlIGlzIG1pc3Npbmcgc3RyZWFtJyk7XG4gICAgICB9XG4gICAgICBsZXQgdG9vbFVzZUJsb2NrOiBDb250ZW50QmxvY2suVG9vbFVzZU1lbWJlciB8IHVuZGVmaW5lZDtcbiAgICAgIGxldCBjbGllbnRUb29sc1JlcXVlc3RlZCA9IGZhbHNlO1xuICAgICAgbGV0IHRleHQ6IHN0cmluZyA9ICcnO1xuICAgICAgbGV0IHRvb2xVc2VJbnB1dDogc3RyaW5nID0gJyc7XG4gICAgICBsZXQgYmxvY2tEZWx0YUluZGV4ID0gMDtcbiAgICAgIGxldCBsYXN0QmxvY2tEZWx0YUluZGV4ID0gMDtcbiAgICAgIC8vIEFjY3VtdWxhdGUgY3VycmVudCBtZXNzYWdlIGZvciB0aGUgdG9vbCB1c2UgbG9vcCBwdXJwb3NlLlxuICAgICAgY29uc3QgYWNjdW11bGF0ZWRBc3Npc3RhbnRNZXNzYWdlOiBNZXNzYWdlID0ge1xuICAgICAgICByb2xlOiB1bmRlZmluZWQsXG4gICAgICAgIGNvbnRlbnQ6IFtdLFxuICAgICAgfTtcblxuICAgICAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBiZWRyb2NrUmVzcG9uc2Uuc3RyZWFtKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdCZWRyb2NrIENvbnZlcnNlIFN0cmVhbSByZXNwb25zZSBjaHVuazonLCBjaHVuayk7XG4gICAgICAgIGlmIChjaHVuay5tZXNzYWdlU3RhcnQpIHtcbiAgICAgICAgICBhY2N1bXVsYXRlZEFzc2lzdGFudE1lc3NhZ2Uucm9sZSA9IGNodW5rLm1lc3NhZ2VTdGFydC5yb2xlO1xuICAgICAgICB9IGVsc2UgaWYgKGNodW5rLmNvbnRlbnRCbG9ja1N0YXJ0KSB7XG4gICAgICAgICAgYmxvY2tEZWx0YUluZGV4ID0gMDtcbiAgICAgICAgICBsYXN0QmxvY2tEZWx0YUluZGV4ID0gMDtcbiAgICAgICAgICBpZiAoY2h1bmsuY29udGVudEJsb2NrU3RhcnQuc3RhcnQ/LnRvb2xVc2UpIHtcbiAgICAgICAgICAgIHRvb2xVc2VCbG9jayA9IHtcbiAgICAgICAgICAgICAgdG9vbFVzZToge1xuICAgICAgICAgICAgICAgIC4uLmNodW5rLmNvbnRlbnRCbG9ja1N0YXJ0LnN0YXJ0Py50b29sVXNlLFxuICAgICAgICAgICAgICAgIGlucHV0OiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChjaHVuay5jb250ZW50QmxvY2tEZWx0YSkge1xuICAgICAgICAgIGlmIChjaHVuay5jb250ZW50QmxvY2tEZWx0YS5kZWx0YT8udG9vbFVzZSkge1xuICAgICAgICAgICAgaWYgKCFjaHVuay5jb250ZW50QmxvY2tEZWx0YS5kZWx0YS50b29sVXNlLmlucHV0KSB7XG4gICAgICAgICAgICAgIHRvb2xVc2VJbnB1dCA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdG9vbFVzZUlucHV0ICs9IGNodW5rLmNvbnRlbnRCbG9ja0RlbHRhLmRlbHRhLnRvb2xVc2UuaW5wdXQ7XG4gICAgICAgICAgfSBlbHNlIGlmIChjaHVuay5jb250ZW50QmxvY2tEZWx0YS5kZWx0YT8udGV4dCkge1xuICAgICAgICAgICAgdGV4dCArPSBjaHVuay5jb250ZW50QmxvY2tEZWx0YS5kZWx0YS50ZXh0O1xuICAgICAgICAgICAgeWllbGQge1xuICAgICAgICAgICAgICBhY2N1bXVsYXRlZFR1cm5Db250ZW50OiBbLi4uYWNjdW11bGF0ZWRUdXJuQ29udGVudCwgeyB0ZXh0IH1dLFxuICAgICAgICAgICAgICBjb252ZXJzYXRpb25JZDogdGhpcy5ldmVudC5jb252ZXJzYXRpb25JZCxcbiAgICAgICAgICAgICAgYXNzb2NpYXRlZFVzZXJNZXNzYWdlSWQ6IHRoaXMuZXZlbnQuY3VycmVudE1lc3NhZ2VJZCxcbiAgICAgICAgICAgICAgY29udGVudEJsb2NrVGV4dDogY2h1bmsuY29udGVudEJsb2NrRGVsdGEuZGVsdGEudGV4dCxcbiAgICAgICAgICAgICAgY29udGVudEJsb2NrSW5kZXg6IGJsb2NrSW5kZXgsXG4gICAgICAgICAgICAgIGNvbnRlbnRCbG9ja0RlbHRhSW5kZXg6IGJsb2NrRGVsdGFJbmRleCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBsYXN0QmxvY2tEZWx0YUluZGV4ID0gYmxvY2tEZWx0YUluZGV4O1xuICAgICAgICAgICAgYmxvY2tEZWx0YUluZGV4Kys7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGNodW5rLmNvbnRlbnRCbG9ja1N0b3ApIHtcbiAgICAgICAgICBpZiAodG9vbFVzZUJsb2NrKSB7XG4gICAgICAgICAgICB0b29sVXNlQmxvY2sudG9vbFVzZS5pbnB1dCA9IEpTT04ucGFyc2UodG9vbFVzZUlucHV0KTtcbiAgICAgICAgICAgIGFjY3VtdWxhdGVkQXNzaXN0YW50TWVzc2FnZS5jb250ZW50Py5wdXNoKHRvb2xVc2VCbG9jayk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHRvb2xVc2VCbG9jay50b29sVXNlLm5hbWUgJiZcbiAgICAgICAgICAgICAgdGhpcy5jbGllbnRUb29sQnlOYW1lLmhhcyh0b29sVXNlQmxvY2sudG9vbFVzZS5uYW1lKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNsaWVudFRvb2xzUmVxdWVzdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgYWNjdW11bGF0ZWRUdXJuQ29udGVudC5wdXNoKHRvb2xVc2VCbG9jayk7XG4gICAgICAgICAgICAgIHlpZWxkIHtcbiAgICAgICAgICAgICAgICBhY2N1bXVsYXRlZFR1cm5Db250ZW50OiBbLi4uYWNjdW11bGF0ZWRUdXJuQ29udGVudF0sXG4gICAgICAgICAgICAgICAgY29udmVyc2F0aW9uSWQ6IHRoaXMuZXZlbnQuY29udmVyc2F0aW9uSWQsXG4gICAgICAgICAgICAgICAgYXNzb2NpYXRlZFVzZXJNZXNzYWdlSWQ6IHRoaXMuZXZlbnQuY3VycmVudE1lc3NhZ2VJZCxcbiAgICAgICAgICAgICAgICBjb250ZW50QmxvY2tJbmRleDogYmxvY2tJbmRleCxcbiAgICAgICAgICAgICAgICBjb250ZW50QmxvY2tUb29sVXNlOiBKU09OLnN0cmluZ2lmeSh0b29sVXNlQmxvY2spLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICBsYXN0QmxvY2tJbmRleCA9IGJsb2NrSW5kZXg7XG4gICAgICAgICAgICAgIGJsb2NrSW5kZXgrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRvb2xVc2VCbG9jayA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRvb2xVc2VJbnB1dCA9ICcnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhY2N1bXVsYXRlZEFzc2lzdGFudE1lc3NhZ2UuY29udGVudD8ucHVzaCh7XG4gICAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGFjY3VtdWxhdGVkVHVybkNvbnRlbnQucHVzaCh7IHRleHQgfSk7XG4gICAgICAgICAgICB5aWVsZCB7XG4gICAgICAgICAgICAgIGFjY3VtdWxhdGVkVHVybkNvbnRlbnQ6IFsuLi5hY2N1bXVsYXRlZFR1cm5Db250ZW50XSxcbiAgICAgICAgICAgICAgY29udmVyc2F0aW9uSWQ6IHRoaXMuZXZlbnQuY29udmVyc2F0aW9uSWQsXG4gICAgICAgICAgICAgIGFzc29jaWF0ZWRVc2VyTWVzc2FnZUlkOiB0aGlzLmV2ZW50LmN1cnJlbnRNZXNzYWdlSWQsXG4gICAgICAgICAgICAgIGNvbnRlbnRCbG9ja0luZGV4OiBibG9ja0luZGV4LFxuICAgICAgICAgICAgICBjb250ZW50QmxvY2tEb25lQXRJbmRleDogbGFzdEJsb2NrRGVsdGFJbmRleCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0ZXh0ID0gJyc7XG4gICAgICAgICAgICBsYXN0QmxvY2tJbmRleCA9IGJsb2NrSW5kZXg7XG4gICAgICAgICAgICBibG9ja0luZGV4Kys7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGNodW5rLm1lc3NhZ2VTdG9wKSB7XG4gICAgICAgICAgc3RvcFJlYXNvbiA9IGNodW5rLm1lc3NhZ2VTdG9wLnN0b3BSZWFzb24gPz8gJyc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAnQWNjdW11bGF0ZWQgQmVkcm9jayBDb252ZXJzZSBTdHJlYW0gcmVzcG9uc2U6JyxcbiAgICAgICAgYWNjdW11bGF0ZWRBc3Npc3RhbnRNZXNzYWdlXG4gICAgICApO1xuICAgICAgaWYgKGNsaWVudFRvb2xzUmVxdWVzdGVkKSB7XG4gICAgICAgIC8vIEZvciBub3cgaWYgYW55IG9mIGNsaWVudCB0b29scyBpcyB1c2VkIHdlIGlnbm9yZSBleGVjdXRhYmxlIHRvb2xzXG4gICAgICAgIC8vIGFuZCBwcm9wYWdhdGUgcmVzdWx0IGJhY2sgdG8gY2xpZW50LlxuICAgICAgICB5aWVsZCB7XG4gICAgICAgICAgYWNjdW11bGF0ZWRUdXJuQ29udGVudDogWy4uLmFjY3VtdWxhdGVkVHVybkNvbnRlbnRdLFxuICAgICAgICAgIGNvbnZlcnNhdGlvbklkOiB0aGlzLmV2ZW50LmNvbnZlcnNhdGlvbklkLFxuICAgICAgICAgIGFzc29jaWF0ZWRVc2VyTWVzc2FnZUlkOiB0aGlzLmV2ZW50LmN1cnJlbnRNZXNzYWdlSWQsXG4gICAgICAgICAgY29udGVudEJsb2NrSW5kZXg6IGxhc3RCbG9ja0luZGV4LFxuICAgICAgICAgIHN0b3BSZWFzb246IHN0b3BSZWFzb24sXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIG1lc3NhZ2VzLnB1c2goYWNjdW11bGF0ZWRBc3Npc3RhbnRNZXNzYWdlKTtcbiAgICAgIGlmIChzdG9wUmVhc29uID09PSAndG9vbF91c2UnKSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlQ29udGVudEJsb2NrcyA9IGFjY3VtdWxhdGVkQXNzaXN0YW50TWVzc2FnZS5jb250ZW50ID8/IFtdO1xuICAgICAgICBjb25zdCB0b29sVXNlQmxvY2tzID0gcmVzcG9uc2VDb250ZW50QmxvY2tzLmZpbHRlcihcbiAgICAgICAgICAoYmxvY2spID0+ICd0b29sVXNlJyBpbiBibG9ja1xuICAgICAgICApIGFzIEFycmF5PENvbnRlbnRCbG9jay5Ub29sVXNlTWVtYmVyPjtcbiAgICAgICAgY29uc3QgdG9vbFJlc3BvbnNlQ29udGVudEJsb2NrczogQXJyYXk8Q29udGVudEJsb2NrPiA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHJlc3BvbnNlQ29udGVudEJsb2NrIG9mIHRvb2xVc2VCbG9ja3MpIHtcbiAgICAgICAgICBjb25zdCB0b29sVXNlQmxvY2sgPVxuICAgICAgICAgICAgcmVzcG9uc2VDb250ZW50QmxvY2sgYXMgQ29udGVudEJsb2NrLlRvb2xVc2VNZW1iZXI7XG4gICAgICAgICAgY29uc3QgdG9vbFJlc3VsdENvbnRlbnRCbG9jayA9IGF3YWl0IHRoaXMuZXhlY3V0ZVRvb2wodG9vbFVzZUJsb2NrKTtcbiAgICAgICAgICB0b29sUmVzcG9uc2VDb250ZW50QmxvY2tzLnB1c2godG9vbFJlc3VsdENvbnRlbnRCbG9jayk7XG4gICAgICAgIH1cbiAgICAgICAgbWVzc2FnZXMucHVzaCh7XG4gICAgICAgICAgcm9sZTogJ3VzZXInLFxuICAgICAgICAgIGNvbnRlbnQ6IHRvb2xSZXNwb25zZUNvbnRlbnRCbG9ja3MsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gd2hpbGUgKHN0b3BSZWFzb24gPT09ICd0b29sX3VzZScpO1xuXG4gICAgeWllbGQge1xuICAgICAgYWNjdW11bGF0ZWRUdXJuQ29udGVudDogWy4uLmFjY3VtdWxhdGVkVHVybkNvbnRlbnRdLFxuICAgICAgY29udmVyc2F0aW9uSWQ6IHRoaXMuZXZlbnQuY29udmVyc2F0aW9uSWQsXG4gICAgICBhc3NvY2lhdGVkVXNlck1lc3NhZ2VJZDogdGhpcy5ldmVudC5jdXJyZW50TWVzc2FnZUlkLFxuICAgICAgY29udGVudEJsb2NrSW5kZXg6IGxhc3RCbG9ja0luZGV4LFxuICAgICAgc3RvcFJlYXNvbjogc3RvcFJlYXNvbixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcHMgZXZlbnQgbWVzc2FnZXMgdG8gQmVkcm9jayB0eXBlcy5cbiAgICogMS4gTWFrZXMgYSBjb3B5IHNvIHRoYXQgd2UgZG9uJ3QgbXV0YXRlIGV2ZW50LlxuICAgKiAyLiBEZWNvZGVzIEJhc2U2NCBlbmNvZGVkIGltYWdlcy5cbiAgICovXG4gIHByaXZhdGUgZ2V0RXZlbnRNZXNzYWdlc0FzQmVkcm9ja01lc3NhZ2VzID0gYXN5bmMgKCk6IFByb21pc2U8XG4gICAgQXJyYXk8TWVzc2FnZT5cbiAgPiA9PiB7XG4gICAgY29uc3QgbWVzc2FnZXM6IEFycmF5PE1lc3NhZ2U+ID0gW107XG4gICAgY29uc3QgZXZlbnRNZXNzYWdlcyA9XG4gICAgICBhd2FpdCB0aGlzLm1lc3NhZ2VIaXN0b3J5UmV0cmlldmVyLmdldE1lc3NhZ2VIaXN0b3J5KCk7XG4gICAgZm9yIChjb25zdCBtZXNzYWdlIG9mIGV2ZW50TWVzc2FnZXMpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2VDb250ZW50OiBBcnJheTxDb250ZW50QmxvY2s+ID0gW107XG4gICAgICBmb3IgKGNvbnN0IGNvbnRlbnRFbGVtZW50IG9mIG1lc3NhZ2UuY29udGVudCkge1xuICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnRFbGVtZW50LmltYWdlPy5zb3VyY2U/LmJ5dGVzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIG1lc3NhZ2VDb250ZW50LnB1c2goe1xuICAgICAgICAgICAgaW1hZ2U6IHtcbiAgICAgICAgICAgICAgZm9ybWF0OiBjb250ZW50RWxlbWVudC5pbWFnZS5mb3JtYXQsXG4gICAgICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgICAgIGJ5dGVzOiBCdWZmZXIuZnJvbShjb250ZW50RWxlbWVudC5pbWFnZS5zb3VyY2UuYnl0ZXMsICdiYXNlNjQnKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gT3RoZXJ3aXNlIHR5cGUgY29uZm9ybXMgdG8gQmVkcm9jaydzIHR5cGUgYW5kIGl0J3Mgc2FmZSB0byBjYXN0LlxuICAgICAgICAgIG1lc3NhZ2VDb250ZW50LnB1c2goY29udGVudEVsZW1lbnQgYXMgQ29udGVudEJsb2NrKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHJvbGU6IG1lc3NhZ2Uucm9sZSxcbiAgICAgICAgY29udGVudDogbWVzc2FnZUNvbnRlbnQsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2VzO1xuICB9O1xuXG4gIHByaXZhdGUgY3JlYXRlVG9vbENvbmZpZ3VyYXRpb24gPSAoKTogVG9vbENvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWQgPT4ge1xuICAgIGlmICh0aGlzLmFsbFRvb2xzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdG9vbHM6IHRoaXMuYWxsVG9vbHMubWFwKCh0KTogVG9vbCA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdG9vbFNwZWM6IHtcbiAgICAgICAgICAgIG5hbWU6IHQubmFtZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBjYXN0IHRvIGJlZHJvY2sgdHlwZSBhcyB3ZSdyZSB1c2luZyBkaWZmZXJlbnQgdHlwZXMgdG8gZGVzY3JpYmUgSlNPTiBzY2hlbWEgaW4gb3VyIEFQSS5cbiAgICAgICAgICAgIC8vIFRoZXNlIHR5cGVzIGFyZSBydW50aW1lIGNvbXBhdGlibGUuXG4gICAgICAgICAgICBpbnB1dFNjaGVtYTogdC5pbnB1dFNjaGVtYSBhcyBUb29sSW5wdXRTY2hlbWEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgIH07XG4gIH07XG5cbiAgcHJpdmF0ZSBleGVjdXRlVG9vbCA9IGFzeW5jIChcbiAgICB0b29sVXNlQmxvY2s6IENvbnRlbnRCbG9jay5Ub29sVXNlTWVtYmVyXG4gICk6IFByb21pc2U8Q29udGVudEJsb2NrPiA9PiB7XG4gICAgaWYgKCF0b29sVXNlQmxvY2sudG9vbFVzZS5uYW1lKSB7XG4gICAgICB0aHJvdyBFcnJvcignQmVkcm9jayB0b29sIHVzZSByZXNwb25zZSBpcyBtaXNzaW5nIGEgdG9vbCBuYW1lJyk7XG4gICAgfVxuICAgIGNvbnN0IHRvb2wgPSB0aGlzLmV4ZWN1dGFibGVUb29sQnlOYW1lLmdldCh0b29sVXNlQmxvY2sudG9vbFVzZS5uYW1lKTtcbiAgICBpZiAoIXRvb2wpIHtcbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICBgQmVkcm9jayB0b29sIHVzZSByZXNwb25zZSBjb250YWlucyB1bmtub3duIHRvb2wgJyR7dG9vbFVzZUJsb2NrLnRvb2xVc2UubmFtZX0nYFxuICAgICAgKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oYEludm9raW5nIHRvb2wgJHt0b29sLm5hbWV9YCk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnVG9vbCBpbnB1dDonLCB0b29sVXNlQmxvY2sudG9vbFVzZS5pbnB1dCk7XG4gICAgICBjb25zdCB0b29sUmVzcG9uc2UgPSBhd2FpdCB0b29sLmV4ZWN1dGUodG9vbFVzZUJsb2NrLnRvb2xVc2UuaW5wdXQpO1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhgUmVjZWl2ZWQgcmVzcG9uc2UgZnJvbSAke3Rvb2wubmFtZX0gdG9vbGApO1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcodG9vbFJlc3BvbnNlKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRvb2xSZXN1bHQ6IHtcbiAgICAgICAgICB0b29sVXNlSWQ6IHRvb2xVc2VCbG9jay50b29sVXNlLnRvb2xVc2VJZCxcbiAgICAgICAgICBjb250ZW50OiBbdG9vbFJlc3BvbnNlXSxcbiAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRvb2xSZXN1bHQ6IHtcbiAgICAgICAgICAgIHRvb2xVc2VJZDogdG9vbFVzZUJsb2NrLnRvb2xVc2UudG9vbFVzZUlkLFxuICAgICAgICAgICAgY29udGVudDogW3sgdGV4dDogZS50b1N0cmluZygpIH1dLFxuICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0b29sUmVzdWx0OiB7XG4gICAgICAgICAgdG9vbFVzZUlkOiB0b29sVXNlQmxvY2sudG9vbFVzZS50b29sVXNlSWQsXG4gICAgICAgICAgY29udGVudDogW3sgdGV4dDogJ3Vua25vd24gZXJyb3Igb2NjdXJyZWQnIH1dLFxuICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9O1xufVxuIl19
376
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVkcm9ja19jb252ZXJzZV9hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnZlcnNhdGlvbi9ydW50aW1lL2JlZHJvY2tfY29udmVyc2VfYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0RUFheUM7QUFPekMsaUVBQTRFO0FBQzVFLHFHQUErRjtBQUUvRixxQ0FBMkM7QUFDM0MsK0RBQTBEO0FBRTFEOzs7R0FHRztBQUNILE1BQWEsc0JBQXNCO0lBUWpDOztPQUVHO0lBQ0gsWUFDbUIsS0FBNEIsRUFDN0MsZUFBc0MsRUFDckIsZ0JBQXNDLElBQUksNkNBQW9CLENBQzdFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FDNUMsRUFDRCxrQkFBa0IsR0FBRyxJQUFJLHlEQUFrQyxDQUFDLEtBQUssQ0FBQyxFQUNqRCwwQkFBMEIsSUFBSSw0RUFBbUMsQ0FDaEYsS0FBSyxDQUNOLEVBQ0QsaUJBQWlCLEdBQUcsSUFBSSx1Q0FBaUIsQ0FBQyxLQUFLLENBQUMsRUFDL0IsU0FBUyxPQUFPOztRQVZoQixVQUFLLEdBQUwsS0FBSyxDQUF1QjtRQUU1QixrQkFBYSxHQUFiLGFBQWEsQ0FFN0I7UUFFZ0IsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUV2QztRQUVnQixXQUFNLEdBQU4sTUFBTSxDQUFVO1FBbEJsQix5QkFBb0IsR0FDbkMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNLLHFCQUFnQixHQUFnQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBOEQzRSxlQUFVLEdBQUcsS0FBSyxJQUE2QixFQUFFOztZQUMvQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxHQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDO1lBRWhDLE1BQU0sUUFBUSxHQUNaLE1BQU0sSUFBSSxDQUFDLGlDQUFpQyxFQUFFLENBQUM7WUFFakQsSUFBSSxlQUFzQyxDQUFDO1lBQzNDLEdBQUc7Z0JBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7Z0JBQ2xELE1BQU0sb0JBQW9CLEdBQXlCO29CQUNqRCxPQUFPO29CQUNQLFFBQVEsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDO29CQUN2QixNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQztvQkFDaEMsZUFBZSxFQUFFLHNCQUFzQjtvQkFDdkMsVUFBVTtpQkFDWCxDQUFDO2dCQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7Z0JBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLG9CQUFvQixDQUFDLENBQUM7Z0JBQ3JFLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUM3QyxJQUFJLHdDQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FDMUMsQ0FBQztnQkFDRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCxpREFBaUQsZUFBZSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsRUFDdEYsZUFBZSxDQUFDLEtBQUssQ0FDdEIsQ0FBQztnQkFDRixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxlQUFlLENBQUMsQ0FBQztnQkFDakUsSUFBSSxNQUFBLGVBQWUsQ0FBQyxNQUFNLDBDQUFFLE9BQU8sRUFBRTtvQkFDbkMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFBLGVBQWUsQ0FBQyxNQUFNLDBDQUFFLE9BQU8sQ0FBQyxDQUFDO2lCQUNoRDtnQkFDRCxJQUFJLGVBQWUsQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO29CQUM3QyxNQUFNLHFCQUFxQixHQUN6QixNQUFBLE1BQUEsTUFBQSxlQUFlLENBQUMsTUFBTSwwQ0FBRSxPQUFPLDBDQUFFLE9BQU8sbUNBQUksRUFBRSxDQUFDO29CQUNqRCxNQUFNLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQ2hELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxTQUFTLElBQUksS0FBSyxDQUNPLENBQUM7b0JBQ3ZDLE1BQU0sbUJBQW1CLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUN0RCxDQUFDLEtBQUssRUFBRSxFQUFFOzt3QkFDUixPQUFBLENBQUEsTUFBQSxLQUFLLENBQUMsT0FBTywwQ0FBRSxJQUFJOzRCQUNuQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLE1BQUEsS0FBSyxDQUFDLE9BQU8sMENBQUUsSUFBSSxDQUFDLENBQUE7cUJBQUEsQ0FDakQsQ0FBQztvQkFDRixJQUFJLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQ2xDLG9FQUFvRTt3QkFDcEUsdUNBQXVDO3dCQUN2QyxPQUFPLG1CQUFtQixDQUFDO3FCQUM1QjtvQkFDRCxNQUFNLHlCQUF5QixHQUF3QixFQUFFLENBQUM7b0JBQzFELEtBQUssTUFBTSxvQkFBb0IsSUFBSSxhQUFhLEVBQUU7d0JBQ2hELE1BQU0sWUFBWSxHQUNoQixvQkFBa0QsQ0FBQzt3QkFDckQsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7d0JBQ3BFLHlCQUF5QixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO3FCQUN4RDtvQkFDRCxRQUFRLENBQUMsSUFBSSxDQUFDO3dCQUNaLElBQUksRUFBRSxNQUFNO3dCQUNaLE9BQU8sRUFBRSx5QkFBeUI7cUJBQ25DLENBQUMsQ0FBQztpQkFDSjthQUNGLFFBQVEsZUFBZSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7WUFFcEQsT0FBTyxNQUFBLE1BQUEsTUFBQSxlQUFlLENBQUMsTUFBTSwwQ0FBRSxPQUFPLDBDQUFFLE9BQU8sbUNBQUksRUFBRSxDQUFDO1FBQ3hELENBQUMsQ0FBQztRQXdMRjs7OztXQUlHO1FBQ0ssc0NBQWlDLEdBQUcsS0FBSyxJQUUvQyxFQUFFOztZQUNGLE1BQU0sUUFBUSxHQUFtQixFQUFFLENBQUM7WUFDcEMsTUFBTSxhQUFhLEdBQ2pCLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekQsS0FBSyxNQUFNLE9BQU8sSUFBSSxhQUFhLEVBQUU7Z0JBQ25DLE1BQU0sY0FBYyxHQUF3QixFQUFFLENBQUM7Z0JBQy9DLEtBQUssTUFBTSxjQUFjLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtvQkFDNUMsSUFBSSxPQUFPLENBQUEsTUFBQSxNQUFBLGNBQWMsQ0FBQyxLQUFLLDBDQUFFLE1BQU0sMENBQUUsS0FBSyxDQUFBLEtBQUssUUFBUSxFQUFFO3dCQUMzRCxjQUFjLENBQUMsSUFBSSxDQUFDOzRCQUNsQixLQUFLLEVBQUU7Z0NBQ0wsTUFBTSxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBTTtnQ0FDbkMsTUFBTSxFQUFFO29DQUNOLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUM7aUNBQ2hFOzZCQUNGO3lCQUNGLENBQUMsQ0FBQztxQkFDSjt5QkFBTTt3QkFDTCxtRUFBbUU7d0JBQ25FLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBOEIsQ0FBQyxDQUFDO3FCQUNyRDtpQkFDRjtnQkFDRCxRQUFRLENBQUMsSUFBSSxDQUFDO29CQUNaLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtvQkFDbEIsT0FBTyxFQUFFLGNBQWM7aUJBQ3hCLENBQUMsQ0FBQzthQUNKO1lBQ0QsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDO1FBRU0sNEJBQXVCLEdBQUcsR0FBa0MsRUFBRTtZQUNwRSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDOUIsT0FBTyxTQUFTLENBQUM7YUFDbEI7WUFFRCxPQUFPO2dCQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBUSxFQUFFO29CQUNuQyxPQUFPO3dCQUNMLFFBQVEsRUFBRTs0QkFDUixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7NEJBQ1osV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXOzRCQUMxQixxR0FBcUc7NEJBQ3JHLHNDQUFzQzs0QkFDdEMsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUE4Qjt5QkFDOUM7cUJBQ0YsQ0FBQztnQkFDSixDQUFDLENBQUM7YUFDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBRU0sZ0JBQVcsR0FBRyxLQUFLLEVBQ3pCLFlBQXdDLEVBQ2pCLEVBQUU7WUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO2dCQUM5QixNQUFNLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO2FBQ2pFO1lBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RFLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1QsTUFBTSxLQUFLLENBQ1Qsb0RBQW9ELFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQ2pGLENBQUM7YUFDSDtZQUNELElBQUk7Z0JBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0QsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDBCQUEwQixJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ2hDLE9BQU87b0JBQ0wsVUFBVSxFQUFFO3dCQUNWLFNBQVMsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVM7d0JBQ3pDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQzt3QkFDdkIsTUFBTSxFQUFFLFNBQVM7cUJBQ2xCO2lCQUNGLENBQUM7YUFDSDtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRTtvQkFDdEIsT0FBTzt3QkFDTCxVQUFVLEVBQUU7NEJBQ1YsU0FBUyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUzs0QkFDekMsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7NEJBQ2pDLE1BQU0sRUFBRSxPQUFPO3lCQUNoQjtxQkFDRixDQUFDO2lCQUNIO2dCQUNELE9BQU87b0JBQ0wsVUFBVSxFQUFFO3dCQUNWLFNBQVMsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVM7d0JBQ3pDLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFLENBQUM7d0JBQzdDLE1BQU0sRUFBRSxPQUFPO3FCQUNoQjtpQkFDRixDQUFDO2FBQ0g7UUFDSCxDQUFDLENBQUM7UUFwWUEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUNwQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNqQixnREFBZ0Q7WUFDaEQsNkdBQTZHO1lBQzdHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO2dCQUN0QyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixDQUFDLEVBQ0Q7WUFDRSxJQUFJLEVBQUUsT0FBTztZQUNiLElBQUksRUFBRSw2QkFBNkI7U0FDcEMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQixHQUFHLGtCQUFrQixDQUFDLGFBQWEsRUFBRTtZQUNyQyxHQUFHLGVBQWU7U0FDbkIsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBQSxNQUFBLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLDBDQUFFLFdBQVcsbUNBQUksRUFBRSxDQUFDO1FBQ3BFLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2pDLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3pDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzVCO1lBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM3QixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN6QyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM1QjtZQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3JDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzVCO1lBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxjQUFjLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRTtZQUMzQixNQUFNLElBQUksd0JBQWUsQ0FDdkIsa0RBQWtEO2dCQUNoRCxHQUFHLGNBQWM7YUFDbEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDaEIsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQWlFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxDQUFDLG1CQUFtQjs7UUFDeEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsR0FDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztRQUVoQyxNQUFNLFFBQVEsR0FDWixNQUFNLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDO1FBRWpELElBQUksZUFBNEMsQ0FBQztRQUNqRCxzRUFBc0U7UUFDdEUsNENBQTRDO1FBQzVDLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLDhDQUE4QztRQUM5Qyx5RUFBeUU7UUFDekUsTUFBTSxzQkFBc0IsR0FBZ0MsRUFBRSxDQUFDO1FBQy9ELEdBQUc7WUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUNsRCxNQUFNLG9CQUFvQixHQUErQjtnQkFDdkQsT0FBTztnQkFDUCxRQUFRLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztnQkFDdkIsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUM7Z0JBQ2hDLGVBQWUsRUFBRSxzQkFBc0I7Z0JBQ3ZDLFVBQVU7YUFDWCxDQUFDO1lBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMseUNBQXlDLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZixrQ0FBa0MsRUFDbEMsb0JBQW9CLENBQ3JCLENBQUM7WUFDRixlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDN0MsSUFBSSw4Q0FBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUNoRCxDQUFDO1lBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2Qsd0RBQXdELGVBQWUsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQzlGLENBQUM7WUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtnQkFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO2FBQ3ZEO1lBQ0QsSUFBSSxZQUFvRCxDQUFDO1lBQ3pELElBQUksb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1lBQ2pDLElBQUksSUFBSSxHQUFXLEVBQUUsQ0FBQztZQUN0QixJQUFJLFlBQVksR0FBVyxFQUFFLENBQUM7WUFDOUIsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLDREQUE0RDtZQUM1RCxNQUFNLDJCQUEyQixHQUFZO2dCQUMzQyxJQUFJLEVBQUUsU0FBUztnQkFDZixPQUFPLEVBQUUsRUFBRTthQUNaLENBQUM7WUFFRixJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFO2dCQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx5Q0FBeUMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDcEUsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFO29CQUN0QiwyQkFBMkIsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7aUJBQzVEO3FCQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFO29CQUNsQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO29CQUNwQixtQkFBbUIsR0FBRyxDQUFDLENBQUM7b0JBQ3hCLElBQUksTUFBQSxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSywwQ0FBRSxPQUFPLEVBQUU7d0JBQzFDLFlBQVksR0FBRzs0QkFDYixPQUFPLEVBQUU7Z0NBQ1AsR0FBRyxNQUFBLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLDBDQUFFLE9BQU87Z0NBQ3pDLEtBQUssRUFBRSxTQUFTOzZCQUNqQjt5QkFDRixDQUFDO3FCQUNIO2lCQUNGO3FCQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFO29CQUNsQyxJQUFJLE1BQUEsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQUssMENBQUUsT0FBTyxFQUFFO3dCQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFOzRCQUNoRCxZQUFZLEdBQUcsRUFBRSxDQUFDO3lCQUNuQjs2QkFBTTs0QkFDTCxZQUFZLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO3lCQUM3RDtxQkFDRjt5QkFBTSxJQUFJLE1BQUEsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQUssMENBQUUsSUFBSSxFQUFFO3dCQUM5QyxJQUFJLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7d0JBQzNDLE1BQU07NEJBQ0osc0JBQXNCLEVBQUUsQ0FBQyxHQUFHLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7NEJBQzdELGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWM7NEJBQ3pDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCOzRCQUNwRCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUk7NEJBQ3BELGlCQUFpQixFQUFFLFVBQVU7NEJBQzdCLHNCQUFzQixFQUFFLGVBQWU7eUJBQ3hDLENBQUM7d0JBQ0YsbUJBQW1CLEdBQUcsZUFBZSxDQUFDO3dCQUN0QyxlQUFlLEVBQUUsQ0FBQztxQkFDbkI7aUJBQ0Y7cUJBQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7b0JBQ2pDLElBQUksWUFBWSxFQUFFO3dCQUNoQixJQUFJLFlBQVksRUFBRTs0QkFDaEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQzt5QkFDdkQ7NkJBQU07NEJBQ0wscUVBQXFFOzRCQUNyRSwyQ0FBMkM7NEJBQzNDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQzt5QkFDakM7d0JBQ0QsTUFBQSwyQkFBMkIsQ0FBQyxPQUFPLDBDQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzt3QkFDeEQsSUFDRSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUk7NEJBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFDcEQ7NEJBQ0Esb0JBQW9CLEdBQUcsSUFBSSxDQUFDOzRCQUM1QixzQkFBc0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7NEJBQzFDLE1BQU07Z0NBQ0osc0JBQXNCLEVBQUUsQ0FBQyxHQUFHLHNCQUFzQixDQUFDO2dDQUNuRCxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjO2dDQUN6Qyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQjtnQ0FDcEQsaUJBQWlCLEVBQUUsVUFBVTtnQ0FDN0IsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7NkJBQ2xELENBQUM7NEJBQ0YsY0FBYyxHQUFHLFVBQVUsQ0FBQzs0QkFDNUIsVUFBVSxFQUFFLENBQUM7eUJBQ2Q7d0JBQ0QsWUFBWSxHQUFHLFNBQVMsQ0FBQzt3QkFDekIsWUFBWSxHQUFHLEVBQUUsQ0FBQztxQkFDbkI7eUJBQU07d0JBQ0wsTUFBQSwyQkFBMkIsQ0FBQyxPQUFPLDBDQUFFLElBQUksQ0FBQzs0QkFDeEMsSUFBSTt5QkFDTCxDQUFDLENBQUM7d0JBQ0gsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzt3QkFDdEMsTUFBTTs0QkFDSixzQkFBc0IsRUFBRSxDQUFDLEdBQUcsc0JBQXNCLENBQUM7NEJBQ25ELGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWM7NEJBQ3pDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCOzRCQUNwRCxpQkFBaUIsRUFBRSxVQUFVOzRCQUM3Qix1QkFBdUIsRUFBRSxtQkFBbUI7eUJBQzdDLENBQUM7d0JBQ0YsSUFBSSxHQUFHLEVBQUUsQ0FBQzt3QkFDVixjQUFjLEdBQUcsVUFBVSxDQUFDO3dCQUM1QixVQUFVLEVBQUUsQ0FBQztxQkFDZDtpQkFDRjtxQkFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUU7b0JBQzVCLFVBQVUsR0FBRyxNQUFBLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBVSxtQ0FBSSxFQUFFLENBQUM7aUJBQ2pEO2FBQ0Y7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZiwrQ0FBK0MsRUFDL0MsMkJBQTJCLENBQzVCLENBQUM7WUFDRixJQUFJLG9CQUFvQixFQUFFO2dCQUN4QixvRUFBb0U7Z0JBQ3BFLHVDQUF1QztnQkFDdkMsTUFBTTtvQkFDSixzQkFBc0IsRUFBRSxDQUFDLEdBQUcsc0JBQXNCLENBQUM7b0JBQ25ELGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWM7b0JBQ3pDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCO29CQUNwRCxpQkFBaUIsRUFBRSxjQUFjO29CQUNqQyxVQUFVLEVBQUUsVUFBVTtpQkFDdkIsQ0FBQztnQkFDRixPQUFPO2FBQ1I7WUFDRCxRQUFRLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDM0MsSUFBSSxVQUFVLEtBQUssVUFBVSxFQUFFO2dCQUM3QixNQUFNLHFCQUFxQixHQUFHLE1BQUEsMkJBQTJCLENBQUMsT0FBTyxtQ0FBSSxFQUFFLENBQUM7Z0JBQ3hFLE1BQU0sYUFBYSxHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FDaEQsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQ08sQ0FBQztnQkFDdkMsTUFBTSx5QkFBeUIsR0FBd0IsRUFBRSxDQUFDO2dCQUMxRCxLQUFLLE1BQU0sb0JBQW9CLElBQUksYUFBYSxFQUFFO29CQUNoRCxNQUFNLFlBQVksR0FDaEIsb0JBQWtELENBQUM7b0JBQ3JELE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUNwRSx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztpQkFDeEQ7Z0JBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQztvQkFDWixJQUFJLEVBQUUsTUFBTTtvQkFDWixPQUFPLEVBQUUseUJBQXlCO2lCQUNuQyxDQUFDLENBQUM7YUFDSjtTQUNGLFFBQVEsVUFBVSxLQUFLLFVBQVUsRUFBRTtRQUVwQyxNQUFNO1lBQ0osc0JBQXNCLEVBQUUsQ0FBQyxHQUFHLHNCQUFzQixDQUFDO1lBQ25ELGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWM7WUFDekMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0I7WUFDcEQsaUJBQWlCLEVBQUUsY0FBYztZQUNqQyxVQUFVLEVBQUUsVUFBVTtTQUN2QixDQUFDO0lBQ0osQ0FBQztDQXNHRjtBQTdaRCx3REE2WkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCZWRyb2NrUnVudGltZUNsaWVudCxcbiAgQ29udGVudEJsb2NrLFxuICBDb252ZXJzZUNvbW1hbmQsXG4gIENvbnZlcnNlQ29tbWFuZElucHV0LFxuICBDb252ZXJzZUNvbW1hbmRPdXRwdXQsXG4gIENvbnZlcnNlU3RyZWFtQ29tbWFuZCxcbiAgQ29udmVyc2VTdHJlYW1Db21tYW5kSW5wdXQsXG4gIENvbnZlcnNlU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgTWVzc2FnZSxcbiAgVG9vbCxcbiAgVG9vbENvbmZpZ3VyYXRpb24sXG4gIFRvb2xJbnB1dFNjaGVtYSxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWJlZHJvY2stcnVudGltZSc7XG5pbXBvcnQge1xuICBDb252ZXJzYXRpb25UdXJuRXZlbnQsXG4gIEV4ZWN1dGFibGVUb29sLFxuICBTdHJlYW1pbmdSZXNwb25zZUNodW5rLFxuICBUb29sRGVmaW5pdGlvbixcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5pbXBvcnQgeyBDb252ZXJzYXRpb25UdXJuRXZlbnRUb29sc1Byb3ZpZGVyIH0gZnJvbSAnLi9ldmVudC10b29scy1wcm92aWRlcic7XG5pbXBvcnQgeyBDb252ZXJzYXRpb25NZXNzYWdlSGlzdG9yeVJldHJpZXZlciB9IGZyb20gJy4vY29udmVyc2F0aW9uX21lc3NhZ2VfaGlzdG9yeV9yZXRyaWV2ZXInO1xuaW1wb3J0ICogYXMgYmVkcm9jayBmcm9tICdAYXdzLXNkay9jbGllbnQtYmVkcm9jay1ydW50aW1lJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vZXJyb3JzJztcbmltcG9ydCB7IFVzZXJBZ2VudFByb3ZpZGVyIH0gZnJvbSAnLi91c2VyX2FnZW50X3Byb3ZpZGVyJztcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBpbnRlcmFjdGluZyB3aXRoIEJlZHJvY2sgQ29udmVyc2UgQVBJXG4gKiBpbiBvcmRlciB0byBwcm9kdWNlIGZpbmFsIHJlc3BvbnNlIHRoYXQgY2FuIGJlIHNlbnQgYmFjayB0byBjYWxsZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBCZWRyb2NrQ29udmVyc2VBZGFwdGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhbGxUb29sczogQXJyYXk8VG9vbERlZmluaXRpb24+O1xuICBwcml2YXRlIHJlYWRvbmx5IGV4ZWN1dGFibGVUb29sczogQXJyYXk8RXhlY3V0YWJsZVRvb2w+O1xuICBwcml2YXRlIHJlYWRvbmx5IGNsaWVudFRvb2xzOiBBcnJheTxUb29sRGVmaW5pdGlvbj47XG4gIHByaXZhdGUgcmVhZG9ubHkgZXhlY3V0YWJsZVRvb2xCeU5hbWU6IE1hcDxzdHJpbmcsIEV4ZWN1dGFibGVUb29sPiA9XG4gICAgbmV3IE1hcCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNsaWVudFRvb2xCeU5hbWU6IE1hcDxzdHJpbmcsIFRvb2xEZWZpbml0aW9uPiA9IG5ldyBNYXAoKTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBCZWRyb2NrIENvbnZlcnNlIEFkYXB0ZXIuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50OiBDb252ZXJzYXRpb25UdXJuRXZlbnQsXG4gICAgYWRkaXRpb25hbFRvb2xzOiBBcnJheTxFeGVjdXRhYmxlVG9vbD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBiZWRyb2NrQ2xpZW50OiBCZWRyb2NrUnVudGltZUNsaWVudCA9IG5ldyBCZWRyb2NrUnVudGltZUNsaWVudChcbiAgICAgIHsgcmVnaW9uOiBldmVudC5tb2RlbENvbmZpZ3VyYXRpb24ucmVnaW9uIH1cbiAgICApLFxuICAgIGV2ZW50VG9vbHNQcm92aWRlciA9IG5ldyBDb252ZXJzYXRpb25UdXJuRXZlbnRUb29sc1Byb3ZpZGVyKGV2ZW50KSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VIaXN0b3J5UmV0cmlldmVyID0gbmV3IENvbnZlcnNhdGlvbk1lc3NhZ2VIaXN0b3J5UmV0cmlldmVyKFxuICAgICAgZXZlbnRcbiAgICApLFxuICAgIHVzZXJBZ2VudFByb3ZpZGVyID0gbmV3IFVzZXJBZ2VudFByb3ZpZGVyKGV2ZW50KSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IGNvbnNvbGVcbiAgKSB7XG4gICAgdGhpcy5iZWRyb2NrQ2xpZW50Lm1pZGRsZXdhcmVTdGFjay5hZGQoXG4gICAgICAobmV4dCkgPT4gKGFyZ3MpID0+IHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBSZXF1ZXN0IGlzIHR5cGVkIGFzIHVua25vd24uXG4gICAgICAgIC8vIEJ1dCB0aGlzIGlzIHJlY29tbWVuZGVkIHdheSB0byBhbHRlciBoZWFkZXJzIHBlciBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMvYmxvYi9tYWluL1JFQURNRS5tZC5cbiAgICAgICAgYXJncy5yZXF1ZXN0LmhlYWRlcnNbJ3gtYW16LXVzZXItYWdlbnQnXSA9XG4gICAgICAgICAgdXNlckFnZW50UHJvdmlkZXIuZ2V0VXNlckFnZW50KCk7XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc3RlcDogJ2J1aWxkJyxcbiAgICAgICAgbmFtZTogJ2FtcGxpZnktdXNlci1hZ2VudC1pbmplY3RvcicsXG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLmV4ZWN1dGFibGVUb29scyA9IFtcbiAgICAgIC4uLmV2ZW50VG9vbHNQcm92aWRlci5nZXRFdmVudFRvb2xzKCksXG4gICAgICAuLi5hZGRpdGlvbmFsVG9vbHMsXG4gICAgXTtcbiAgICB0aGlzLmNsaWVudFRvb2xzID0gdGhpcy5ldmVudC50b29sc0NvbmZpZ3VyYXRpb24/LmNsaWVudFRvb2xzID8/IFtdO1xuICAgIHRoaXMuYWxsVG9vbHMgPSBbLi4udGhpcy5leGVjdXRhYmxlVG9vbHMsIC4uLnRoaXMuY2xpZW50VG9vbHNdO1xuICAgIGNvbnN0IGR1cGxpY2F0ZVRvb2xzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgdGhpcy5leGVjdXRhYmxlVG9vbHMuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZXhlY3V0YWJsZVRvb2xCeU5hbWUuaGFzKHQubmFtZSkpIHtcbiAgICAgICAgZHVwbGljYXRlVG9vbHMuYWRkKHQubmFtZSk7XG4gICAgICB9XG4gICAgICB0aGlzLmV4ZWN1dGFibGVUb29sQnlOYW1lLnNldCh0Lm5hbWUsIHQpO1xuICAgIH0pO1xuICAgIHRoaXMuY2xpZW50VG9vbHMuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZXhlY3V0YWJsZVRvb2xCeU5hbWUuaGFzKHQubmFtZSkpIHtcbiAgICAgICAgZHVwbGljYXRlVG9vbHMuYWRkKHQubmFtZSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5jbGllbnRUb29sQnlOYW1lLmhhcyh0Lm5hbWUpKSB7XG4gICAgICAgIGR1cGxpY2F0ZVRvb2xzLmFkZCh0Lm5hbWUpO1xuICAgICAgfVxuICAgICAgdGhpcy5jbGllbnRUb29sQnlOYW1lLnNldCh0Lm5hbWUsIHQpO1xuICAgIH0pO1xuICAgIGlmIChkdXBsaWNhdGVUb29scy5zaXplID4gMCkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgYFRvb2xzIG11c3QgaGF2ZSB1bmlxdWUgbmFtZXMuIER1cGxpY2F0ZSB0b29sczogJHtbXG4gICAgICAgICAgLi4uZHVwbGljYXRlVG9vbHMsXG4gICAgICAgIF0uam9pbignLCAnKX0uYFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBhc2tCZWRyb2NrID0gYXN5bmMgKCk6IFByb21pc2U8Q29udGVudEJsb2NrW10+ID0+IHtcbiAgICBjb25zdCB7IG1vZGVsSWQsIHN5c3RlbVByb21wdCwgaW5mZXJlbmNlQ29uZmlndXJhdGlvbiB9ID1cbiAgICAgIHRoaXMuZXZlbnQubW9kZWxDb25maWd1cmF0aW9uO1xuXG4gICAgY29uc3QgbWVzc2FnZXM6IEFycmF5PE1lc3NhZ2U+ID1cbiAgICAgIGF3YWl0IHRoaXMuZ2V0RXZlbnRNZXNzYWdlc0FzQmVkcm9ja01lc3NhZ2VzKCk7XG5cbiAgICBsZXQgYmVkcm9ja1Jlc3BvbnNlOiBDb252ZXJzZUNvbW1hbmRPdXRwdXQ7XG4gICAgZG8ge1xuICAgICAgY29uc3QgdG9vbENvbmZpZyA9IHRoaXMuY3JlYXRlVG9vbENvbmZpZ3VyYXRpb24oKTtcbiAgICAgIGNvbnN0IGNvbnZlcnNlQ29tbWFuZElucHV0OiBDb252ZXJzZUNvbW1hbmRJbnB1dCA9IHtcbiAgICAgICAgbW9kZWxJZCxcbiAgICAgICAgbWVzc2FnZXM6IFsuLi5tZXNzYWdlc10sXG4gICAgICAgIHN5c3RlbTogW3sgdGV4dDogc3lzdGVtUHJvbXB0IH1dLFxuICAgICAgICBpbmZlcmVuY2VDb25maWc6IGluZmVyZW5jZUNvbmZpZ3VyYXRpb24sXG4gICAgICAgIHRvb2xDb25maWcsXG4gICAgICB9O1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbygnU2VuZGluZyBCZWRyb2NrIENvbnZlcnNlIHJlcXVlc3QnKTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdCZWRyb2NrIENvbnZlcnNlIHJlcXVlc3Q6JywgY29udmVyc2VDb21tYW5kSW5wdXQpO1xuICAgICAgYmVkcm9ja1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5iZWRyb2NrQ2xpZW50LnNlbmQoXG4gICAgICAgIG5ldyBDb252ZXJzZUNvbW1hbmQoY29udmVyc2VDb21tYW5kSW5wdXQpXG4gICAgICApO1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgYFJlY2VpdmVkIEJlZHJvY2sgQ29udmVyc2UgcmVzcG9uc2UsIHJlcXVlc3RJZD0ke2JlZHJvY2tSZXNwb25zZS4kbWV0YWRhdGEucmVxdWVzdElkfWAsXG4gICAgICAgIGJlZHJvY2tSZXNwb25zZS51c2FnZVxuICAgICAgKTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdCZWRyb2NrIENvbnZlcnNlIHJlc3BvbnNlOicsIGJlZHJvY2tSZXNwb25zZSk7XG4gICAgICBpZiAoYmVkcm9ja1Jlc3BvbnNlLm91dHB1dD8ubWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlcy5wdXNoKGJlZHJvY2tSZXNwb25zZS5vdXRwdXQ/Lm1lc3NhZ2UpO1xuICAgICAgfVxuICAgICAgaWYgKGJlZHJvY2tSZXNwb25zZS5zdG9wUmVhc29uID09PSAndG9vbF91c2UnKSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlQ29udGVudEJsb2NrcyA9XG4gICAgICAgICAgYmVkcm9ja1Jlc3BvbnNlLm91dHB1dD8ubWVzc2FnZT8uY29udGVudCA/PyBbXTtcbiAgICAgICAgY29uc3QgdG9vbFVzZUJsb2NrcyA9IHJlc3BvbnNlQ29udGVudEJsb2Nrcy5maWx0ZXIoXG4gICAgICAgICAgKGJsb2NrKSA9PiAndG9vbFVzZScgaW4gYmxvY2tcbiAgICAgICAgKSBhcyBBcnJheTxDb250ZW50QmxvY2suVG9vbFVzZU1lbWJlcj47XG4gICAgICAgIGNvbnN0IGNsaWVudFRvb2xVc2VCbG9ja3MgPSByZXNwb25zZUNvbnRlbnRCbG9ja3MuZmlsdGVyKFxuICAgICAgICAgIChibG9jaykgPT5cbiAgICAgICAgICAgIGJsb2NrLnRvb2xVc2U/Lm5hbWUgJiZcbiAgICAgICAgICAgIHRoaXMuY2xpZW50VG9vbEJ5TmFtZS5oYXMoYmxvY2sudG9vbFVzZT8ubmFtZSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGNsaWVudFRvb2xVc2VCbG9ja3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgIC8vIEZvciBub3cgaWYgYW55IG9mIGNsaWVudCB0b29scyBpcyB1c2VkIHdlIGlnbm9yZSBleGVjdXRhYmxlIHRvb2xzXG4gICAgICAgICAgLy8gYW5kIHByb3BhZ2F0ZSByZXN1bHQgYmFjayB0byBjbGllbnQuXG4gICAgICAgICAgcmV0dXJuIGNsaWVudFRvb2xVc2VCbG9ja3M7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdG9vbFJlc3BvbnNlQ29udGVudEJsb2NrczogQXJyYXk8Q29udGVudEJsb2NrPiA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHJlc3BvbnNlQ29udGVudEJsb2NrIG9mIHRvb2xVc2VCbG9ja3MpIHtcbiAgICAgICAgICBjb25zdCB0b29sVXNlQmxvY2sgPVxuICAgICAgICAgICAgcmVzcG9uc2VDb250ZW50QmxvY2sgYXMgQ29udGVudEJsb2NrLlRvb2xVc2VNZW1iZXI7XG4gICAgICAgICAgY29uc3QgdG9vbFJlc3VsdENvbnRlbnRCbG9jayA9IGF3YWl0IHRoaXMuZXhlY3V0ZVRvb2wodG9vbFVzZUJsb2NrKTtcbiAgICAgICAgICB0b29sUmVzcG9uc2VDb250ZW50QmxvY2tzLnB1c2godG9vbFJlc3VsdENvbnRlbnRCbG9jayk7XG4gICAgICAgIH1cbiAgICAgICAgbWVzc2FnZXMucHVzaCh7XG4gICAgICAgICAgcm9sZTogJ3VzZXInLFxuICAgICAgICAgIGNvbnRlbnQ6IHRvb2xSZXNwb25zZUNvbnRlbnRCbG9ja3MsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gd2hpbGUgKGJlZHJvY2tSZXNwb25zZS5zdG9wUmVhc29uID09PSAndG9vbF91c2UnKTtcblxuICAgIHJldHVybiBiZWRyb2NrUmVzcG9uc2Uub3V0cHV0Py5tZXNzYWdlPy5jb250ZW50ID8/IFtdO1xuICB9O1xuXG4gIC8qKlxuICAgKiBBc2tzIEJlZHJvY2sgZm9yIHJlc3BvbnNlIHVzaW5nIHN0cmVhbWluZyB2ZXJzaW9uIG9mIENvbnZlcnNlIEFQSS5cbiAgICovXG4gIGFzeW5jICphc2tCZWRyb2NrU3RyZWFtaW5nKCk6IEFzeW5jR2VuZXJhdG9yPFN0cmVhbWluZ1Jlc3BvbnNlQ2h1bms+IHtcbiAgICBjb25zdCB7IG1vZGVsSWQsIHN5c3RlbVByb21wdCwgaW5mZXJlbmNlQ29uZmlndXJhdGlvbiB9ID1cbiAgICAgIHRoaXMuZXZlbnQubW9kZWxDb25maWd1cmF0aW9uO1xuXG4gICAgY29uc3QgbWVzc2FnZXM6IEFycmF5PE1lc3NhZ2U+ID1cbiAgICAgIGF3YWl0IHRoaXMuZ2V0RXZlbnRNZXNzYWdlc0FzQmVkcm9ja01lc3NhZ2VzKCk7XG5cbiAgICBsZXQgYmVkcm9ja1Jlc3BvbnNlOiBDb252ZXJzZVN0cmVhbUNvbW1hbmRPdXRwdXQ7XG4gICAgLy8ga2VlcCBvdXIgb3duIGluZGV4aW5nIGZvciBibG9ja3MgaW5zdGVhZCBvZiB1c2luZyBCZWRyb2NrJ3MgaW5kZXhlc1xuICAgIC8vIHNpbmNlIHdlIHN0cmVhbSBzdWJzZXQgb2YgdGhlc2UgdXBzdHJlYW0uXG4gICAgbGV0IGJsb2NrSW5kZXggPSAwO1xuICAgIGxldCBsYXN0QmxvY2tJbmRleCA9IDA7XG4gICAgbGV0IHN0b3BSZWFzb24gPSAnJztcbiAgICAvLyBBY2N1bXVsYXRlcyBjbGllbnQgZmFjaW5nIGNvbnRlbnQgcGVyIHR1cm4uXG4gICAgLy8gU28gdGhhdCB1cHN0cmVhbSBjYW4gcGVyc2lzdCBmdWxsIG1lc3NhZ2UgYXQgdGhlIGVuZCBvZiB0aGUgc3RyZWFtaW5nLlxuICAgIGNvbnN0IGFjY3VtdWxhdGVkVHVybkNvbnRlbnQ6IEFycmF5PGJlZHJvY2suQ29udGVudEJsb2NrPiA9IFtdO1xuICAgIGRvIHtcbiAgICAgIGNvbnN0IHRvb2xDb25maWcgPSB0aGlzLmNyZWF0ZVRvb2xDb25maWd1cmF0aW9uKCk7XG4gICAgICBjb25zdCBjb252ZXJzZUNvbW1hbmRJbnB1dDogQ29udmVyc2VTdHJlYW1Db21tYW5kSW5wdXQgPSB7XG4gICAgICAgIG1vZGVsSWQsXG4gICAgICAgIG1lc3NhZ2VzOiBbLi4ubWVzc2FnZXNdLFxuICAgICAgICBzeXN0ZW06IFt7IHRleHQ6IHN5c3RlbVByb21wdCB9XSxcbiAgICAgICAgaW5mZXJlbmNlQ29uZmlnOiBpbmZlcmVuY2VDb25maWd1cmF0aW9uLFxuICAgICAgICB0b29sQ29uZmlnLFxuICAgICAgfTtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ1NlbmRpbmcgQmVkcm9jayBDb252ZXJzZSBTdHJlYW0gcmVxdWVzdCcpO1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICdCZWRyb2NrIENvbnZlcnNlIFN0cmVhbSByZXF1ZXN0OicsXG4gICAgICAgIGNvbnZlcnNlQ29tbWFuZElucHV0XG4gICAgICApO1xuICAgICAgYmVkcm9ja1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5iZWRyb2NrQ2xpZW50LnNlbmQoXG4gICAgICAgIG5ldyBDb252ZXJzZVN0cmVhbUNvbW1hbmQoY29udmVyc2VDb21tYW5kSW5wdXQpXG4gICAgICApO1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgYFJlY2VpdmVkIEJlZHJvY2sgQ29udmVyc2UgU3RyZWFtIHJlc3BvbnNlLCByZXF1ZXN0SWQ9JHtiZWRyb2NrUmVzcG9uc2UuJG1ldGFkYXRhLnJlcXVlc3RJZH1gXG4gICAgICApO1xuICAgICAgaWYgKCFiZWRyb2NrUmVzcG9uc2Uuc3RyZWFtKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQmVkcm9jayByZXNwb25zZSBpcyBtaXNzaW5nIHN0cmVhbScpO1xuICAgICAgfVxuICAgICAgbGV0IHRvb2xVc2VCbG9jazogQ29udGVudEJsb2NrLlRvb2xVc2VNZW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgICBsZXQgY2xpZW50VG9vbHNSZXF1ZXN0ZWQgPSBmYWxzZTtcbiAgICAgIGxldCB0ZXh0OiBzdHJpbmcgPSAnJztcbiAgICAgIGxldCB0b29sVXNlSW5wdXQ6IHN0cmluZyA9ICcnO1xuICAgICAgbGV0IGJsb2NrRGVsdGFJbmRleCA9IDA7XG4gICAgICBsZXQgbGFzdEJsb2NrRGVsdGFJbmRleCA9IDA7XG4gICAgICAvLyBBY2N1bXVsYXRlIGN1cnJlbnQgbWVzc2FnZSBmb3IgdGhlIHRvb2wgdXNlIGxvb3AgcHVycG9zZS5cbiAgICAgIGNvbnN0IGFjY3VtdWxhdGVkQXNzaXN0YW50TWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgICAgICAgcm9sZTogdW5kZWZpbmVkLFxuICAgICAgICBjb250ZW50OiBbXSxcbiAgICAgIH07XG5cbiAgICAgIGZvciBhd2FpdCAoY29uc3QgY2h1bmsgb2YgYmVkcm9ja1Jlc3BvbnNlLnN0cmVhbSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQmVkcm9jayBDb252ZXJzZSBTdHJlYW0gcmVzcG9uc2UgY2h1bms6JywgY2h1bmspO1xuICAgICAgICBpZiAoY2h1bmsubWVzc2FnZVN0YXJ0KSB7XG4gICAgICAgICAgYWNjdW11bGF0ZWRBc3Npc3RhbnRNZXNzYWdlLnJvbGUgPSBjaHVuay5tZXNzYWdlU3RhcnQucm9sZTtcbiAgICAgICAgfSBlbHNlIGlmIChjaHVuay5jb250ZW50QmxvY2tTdGFydCkge1xuICAgICAgICAgIGJsb2NrRGVsdGFJbmRleCA9IDA7XG4gICAgICAgICAgbGFzdEJsb2NrRGVsdGFJbmRleCA9IDA7XG4gICAgICAgICAgaWYgKGNodW5rLmNvbnRlbnRCbG9ja1N0YXJ0LnN0YXJ0Py50b29sVXNlKSB7XG4gICAgICAgICAgICB0b29sVXNlQmxvY2sgPSB7XG4gICAgICAgICAgICAgIHRvb2xVc2U6IHtcbiAgICAgICAgICAgICAgICAuLi5jaHVuay5jb250ZW50QmxvY2tTdGFydC5zdGFydD8udG9vbFVzZSxcbiAgICAgICAgICAgICAgICBpbnB1dDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoY2h1bmsuY29udGVudEJsb2NrRGVsdGEpIHtcbiAgICAgICAgICBpZiAoY2h1bmsuY29udGVudEJsb2NrRGVsdGEuZGVsdGE/LnRvb2xVc2UpIHtcbiAgICAgICAgICAgIGlmICghY2h1bmsuY29udGVudEJsb2NrRGVsdGEuZGVsdGEudG9vbFVzZS5pbnB1dCkge1xuICAgICAgICAgICAgICB0b29sVXNlSW5wdXQgPSAnJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRvb2xVc2VJbnB1dCArPSBjaHVuay5jb250ZW50QmxvY2tEZWx0YS5kZWx0YS50b29sVXNlLmlucHV0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoY2h1bmsuY29udGVudEJsb2NrRGVsdGEuZGVsdGE/LnRleHQpIHtcbiAgICAgICAgICAgIHRleHQgKz0gY2h1bmsuY29udGVudEJsb2NrRGVsdGEuZGVsdGEudGV4dDtcbiAgICAgICAgICAgIHlpZWxkIHtcbiAgICAgICAgICAgICAgYWNjdW11bGF0ZWRUdXJuQ29udGVudDogWy4uLmFjY3VtdWxhdGVkVHVybkNvbnRlbnQsIHsgdGV4dCB9XSxcbiAgICAgICAgICAgICAgY29udmVyc2F0aW9uSWQ6IHRoaXMuZXZlbnQuY29udmVyc2F0aW9uSWQsXG4gICAgICAgICAgICAgIGFzc29jaWF0ZWRVc2VyTWVzc2FnZUlkOiB0aGlzLmV2ZW50LmN1cnJlbnRNZXNzYWdlSWQsXG4gICAgICAgICAgICAgIGNvbnRlbnRCbG9ja1RleHQ6IGNodW5rLmNvbnRlbnRCbG9ja0RlbHRhLmRlbHRhLnRleHQsXG4gICAgICAgICAgICAgIGNvbnRlbnRCbG9ja0luZGV4OiBibG9ja0luZGV4LFxuICAgICAgICAgICAgICBjb250ZW50QmxvY2tEZWx0YUluZGV4OiBibG9ja0RlbHRhSW5kZXgsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbGFzdEJsb2NrRGVsdGFJbmRleCA9IGJsb2NrRGVsdGFJbmRleDtcbiAgICAgICAgICAgIGJsb2NrRGVsdGFJbmRleCsrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChjaHVuay5jb250ZW50QmxvY2tTdG9wKSB7XG4gICAgICAgICAgaWYgKHRvb2xVc2VCbG9jaykge1xuICAgICAgICAgICAgaWYgKHRvb2xVc2VJbnB1dCkge1xuICAgICAgICAgICAgICB0b29sVXNlQmxvY2sudG9vbFVzZS5pbnB1dCA9IEpTT04ucGFyc2UodG9vbFVzZUlucHV0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIEJlZHJvY2sgQVBJIHJlcXVpcmVzIHRvb2wgaW5wdXQgdG8gYmUgbm9uLW51bGwgaW4gbWVzc2FnZSBoaXN0b3J5LlxuICAgICAgICAgICAgICAvLyBUaGVyZWZvcmUsIGZhbGxpbmcgYmFjayB0byBlbXB0eSBvYmplY3QuXG4gICAgICAgICAgICAgIHRvb2xVc2VCbG9jay50b29sVXNlLmlucHV0ID0ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhY2N1bXVsYXRlZEFzc2lzdGFudE1lc3NhZ2UuY29udGVudD8ucHVzaCh0b29sVXNlQmxvY2spO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0b29sVXNlQmxvY2sudG9vbFVzZS5uYW1lICYmXG4gICAgICAgICAgICAgIHRoaXMuY2xpZW50VG9vbEJ5TmFtZS5oYXModG9vbFVzZUJsb2NrLnRvb2xVc2UubmFtZSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjbGllbnRUb29sc1JlcXVlc3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgIGFjY3VtdWxhdGVkVHVybkNvbnRlbnQucHVzaCh0b29sVXNlQmxvY2spO1xuICAgICAgICAgICAgICB5aWVsZCB7XG4gICAgICAgICAgICAgICAgYWNjdW11bGF0ZWRUdXJuQ29udGVudDogWy4uLmFjY3VtdWxhdGVkVHVybkNvbnRlbnRdLFxuICAgICAgICAgICAgICAgIGNvbnZlcnNhdGlvbklkOiB0aGlzLmV2ZW50LmNvbnZlcnNhdGlvbklkLFxuICAgICAgICAgICAgICAgIGFzc29jaWF0ZWRVc2VyTWVzc2FnZUlkOiB0aGlzLmV2ZW50LmN1cnJlbnRNZXNzYWdlSWQsXG4gICAgICAgICAgICAgICAgY29udGVudEJsb2NrSW5kZXg6IGJsb2NrSW5kZXgsXG4gICAgICAgICAgICAgICAgY29udGVudEJsb2NrVG9vbFVzZTogSlNPTi5zdHJpbmdpZnkodG9vbFVzZUJsb2NrKSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgbGFzdEJsb2NrSW5kZXggPSBibG9ja0luZGV4O1xuICAgICAgICAgICAgICBibG9ja0luZGV4Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0b29sVXNlQmxvY2sgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0b29sVXNlSW5wdXQgPSAnJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWNjdW11bGF0ZWRBc3Npc3RhbnRNZXNzYWdlLmNvbnRlbnQ/LnB1c2goe1xuICAgICAgICAgICAgICB0ZXh0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBhY2N1bXVsYXRlZFR1cm5Db250ZW50LnB1c2goeyB0ZXh0IH0pO1xuICAgICAgICAgICAgeWllbGQge1xuICAgICAgICAgICAgICBhY2N1bXVsYXRlZFR1cm5Db250ZW50OiBbLi4uYWNjdW11bGF0ZWRUdXJuQ29udGVudF0sXG4gICAgICAgICAgICAgIGNvbnZlcnNhdGlvbklkOiB0aGlzLmV2ZW50LmNvbnZlcnNhdGlvbklkLFxuICAgICAgICAgICAgICBhc3NvY2lhdGVkVXNlck1lc3NhZ2VJZDogdGhpcy5ldmVudC5jdXJyZW50TWVzc2FnZUlkLFxuICAgICAgICAgICAgICBjb250ZW50QmxvY2tJbmRleDogYmxvY2tJbmRleCxcbiAgICAgICAgICAgICAgY29udGVudEJsb2NrRG9uZUF0SW5kZXg6IGxhc3RCbG9ja0RlbHRhSW5kZXgsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGV4dCA9ICcnO1xuICAgICAgICAgICAgbGFzdEJsb2NrSW5kZXggPSBibG9ja0luZGV4O1xuICAgICAgICAgICAgYmxvY2tJbmRleCsrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChjaHVuay5tZXNzYWdlU3RvcCkge1xuICAgICAgICAgIHN0b3BSZWFzb24gPSBjaHVuay5tZXNzYWdlU3RvcC5zdG9wUmVhc29uID8/ICcnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgJ0FjY3VtdWxhdGVkIEJlZHJvY2sgQ29udmVyc2UgU3RyZWFtIHJlc3BvbnNlOicsXG4gICAgICAgIGFjY3VtdWxhdGVkQXNzaXN0YW50TWVzc2FnZVxuICAgICAgKTtcbiAgICAgIGlmIChjbGllbnRUb29sc1JlcXVlc3RlZCkge1xuICAgICAgICAvLyBGb3Igbm93IGlmIGFueSBvZiBjbGllbnQgdG9vbHMgaXMgdXNlZCB3ZSBpZ25vcmUgZXhlY3V0YWJsZSB0b29sc1xuICAgICAgICAvLyBhbmQgcHJvcGFnYXRlIHJlc3VsdCBiYWNrIHRvIGNsaWVudC5cbiAgICAgICAgeWllbGQge1xuICAgICAgICAgIGFjY3VtdWxhdGVkVHVybkNvbnRlbnQ6IFsuLi5hY2N1bXVsYXRlZFR1cm5Db250ZW50XSxcbiAgICAgICAgICBjb252ZXJzYXRpb25JZDogdGhpcy5ldmVudC5jb252ZXJzYXRpb25JZCxcbiAgICAgICAgICBhc3NvY2lhdGVkVXNlck1lc3NhZ2VJZDogdGhpcy5ldmVudC5jdXJyZW50TWVzc2FnZUlkLFxuICAgICAgICAgIGNvbnRlbnRCbG9ja0luZGV4OiBsYXN0QmxvY2tJbmRleCxcbiAgICAgICAgICBzdG9wUmVhc29uOiBzdG9wUmVhc29uLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBtZXNzYWdlcy5wdXNoKGFjY3VtdWxhdGVkQXNzaXN0YW50TWVzc2FnZSk7XG4gICAgICBpZiAoc3RvcFJlYXNvbiA9PT0gJ3Rvb2xfdXNlJykge1xuICAgICAgICBjb25zdCByZXNwb25zZUNvbnRlbnRCbG9ja3MgPSBhY2N1bXVsYXRlZEFzc2lzdGFudE1lc3NhZ2UuY29udGVudCA/PyBbXTtcbiAgICAgICAgY29uc3QgdG9vbFVzZUJsb2NrcyA9IHJlc3BvbnNlQ29udGVudEJsb2Nrcy5maWx0ZXIoXG4gICAgICAgICAgKGJsb2NrKSA9PiAndG9vbFVzZScgaW4gYmxvY2tcbiAgICAgICAgKSBhcyBBcnJheTxDb250ZW50QmxvY2suVG9vbFVzZU1lbWJlcj47XG4gICAgICAgIGNvbnN0IHRvb2xSZXNwb25zZUNvbnRlbnRCbG9ja3M6IEFycmF5PENvbnRlbnRCbG9jaz4gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCByZXNwb25zZUNvbnRlbnRCbG9jayBvZiB0b29sVXNlQmxvY2tzKSB7XG4gICAgICAgICAgY29uc3QgdG9vbFVzZUJsb2NrID1cbiAgICAgICAgICAgIHJlc3BvbnNlQ29udGVudEJsb2NrIGFzIENvbnRlbnRCbG9jay5Ub29sVXNlTWVtYmVyO1xuICAgICAgICAgIGNvbnN0IHRvb2xSZXN1bHRDb250ZW50QmxvY2sgPSBhd2FpdCB0aGlzLmV4ZWN1dGVUb29sKHRvb2xVc2VCbG9jayk7XG4gICAgICAgICAgdG9vbFJlc3BvbnNlQ29udGVudEJsb2Nrcy5wdXNoKHRvb2xSZXN1bHRDb250ZW50QmxvY2spO1xuICAgICAgICB9XG4gICAgICAgIG1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgIHJvbGU6ICd1c2VyJyxcbiAgICAgICAgICBjb250ZW50OiB0b29sUmVzcG9uc2VDb250ZW50QmxvY2tzLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IHdoaWxlIChzdG9wUmVhc29uID09PSAndG9vbF91c2UnKTtcblxuICAgIHlpZWxkIHtcbiAgICAgIGFjY3VtdWxhdGVkVHVybkNvbnRlbnQ6IFsuLi5hY2N1bXVsYXRlZFR1cm5Db250ZW50XSxcbiAgICAgIGNvbnZlcnNhdGlvbklkOiB0aGlzLmV2ZW50LmNvbnZlcnNhdGlvbklkLFxuICAgICAgYXNzb2NpYXRlZFVzZXJNZXNzYWdlSWQ6IHRoaXMuZXZlbnQuY3VycmVudE1lc3NhZ2VJZCxcbiAgICAgIGNvbnRlbnRCbG9ja0luZGV4OiBsYXN0QmxvY2tJbmRleCxcbiAgICAgIHN0b3BSZWFzb246IHN0b3BSZWFzb24sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXBzIGV2ZW50IG1lc3NhZ2VzIHRvIEJlZHJvY2sgdHlwZXMuXG4gICAqIDEuIE1ha2VzIGEgY29weSBzbyB0aGF0IHdlIGRvbid0IG11dGF0ZSBldmVudC5cbiAgICogMi4gRGVjb2RlcyBCYXNlNjQgZW5jb2RlZCBpbWFnZXMuXG4gICAqL1xuICBwcml2YXRlIGdldEV2ZW50TWVzc2FnZXNBc0JlZHJvY2tNZXNzYWdlcyA9IGFzeW5jICgpOiBQcm9taXNlPFxuICAgIEFycmF5PE1lc3NhZ2U+XG4gID4gPT4ge1xuICAgIGNvbnN0IG1lc3NhZ2VzOiBBcnJheTxNZXNzYWdlPiA9IFtdO1xuICAgIGNvbnN0IGV2ZW50TWVzc2FnZXMgPVxuICAgICAgYXdhaXQgdGhpcy5tZXNzYWdlSGlzdG9yeVJldHJpZXZlci5nZXRNZXNzYWdlSGlzdG9yeSgpO1xuICAgIGZvciAoY29uc3QgbWVzc2FnZSBvZiBldmVudE1lc3NhZ2VzKSB7XG4gICAgICBjb25zdCBtZXNzYWdlQ29udGVudDogQXJyYXk8Q29udGVudEJsb2NrPiA9IFtdO1xuICAgICAgZm9yIChjb25zdCBjb250ZW50RWxlbWVudCBvZiBtZXNzYWdlLmNvbnRlbnQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50RWxlbWVudC5pbWFnZT8uc291cmNlPy5ieXRlcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBtZXNzYWdlQ29udGVudC5wdXNoKHtcbiAgICAgICAgICAgIGltYWdlOiB7XG4gICAgICAgICAgICAgIGZvcm1hdDogY29udGVudEVsZW1lbnQuaW1hZ2UuZm9ybWF0LFxuICAgICAgICAgICAgICBzb3VyY2U6IHtcbiAgICAgICAgICAgICAgICBieXRlczogQnVmZmVyLmZyb20oY29udGVudEVsZW1lbnQuaW1hZ2Uuc291cmNlLmJ5dGVzLCAnYmFzZTY0JyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIE90aGVyd2lzZSB0eXBlIGNvbmZvcm1zIHRvIEJlZHJvY2sncyB0eXBlIGFuZCBpdCdzIHNhZmUgdG8gY2FzdC5cbiAgICAgICAgICBtZXNzYWdlQ29udGVudC5wdXNoKGNvbnRlbnRFbGVtZW50IGFzIENvbnRlbnRCbG9jayk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG1lc3NhZ2VzLnB1c2goe1xuICAgICAgICByb2xlOiBtZXNzYWdlLnJvbGUsXG4gICAgICAgIGNvbnRlbnQ6IG1lc3NhZ2VDb250ZW50LFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlcztcbiAgfTtcblxuICBwcml2YXRlIGNyZWF0ZVRvb2xDb25maWd1cmF0aW9uID0gKCk6IFRvb2xDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkID0+IHtcbiAgICBpZiAodGhpcy5hbGxUb29scy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRvb2xzOiB0aGlzLmFsbFRvb2xzLm1hcCgodCk6IFRvb2wgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRvb2xTcGVjOiB7XG4gICAgICAgICAgICBuYW1lOiB0Lm5hbWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogdC5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gY2FzdCB0byBiZWRyb2NrIHR5cGUgYXMgd2UncmUgdXNpbmcgZGlmZmVyZW50IHR5cGVzIHRvIGRlc2NyaWJlIEpTT04gc2NoZW1hIGluIG91ciBBUEkuXG4gICAgICAgICAgICAvLyBUaGVzZSB0eXBlcyBhcmUgcnVudGltZSBjb21wYXRpYmxlLlxuICAgICAgICAgICAgaW5wdXRTY2hlbWE6IHQuaW5wdXRTY2hlbWEgYXMgVG9vbElucHV0U2NoZW1hLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9KSxcbiAgICB9O1xuICB9O1xuXG4gIHByaXZhdGUgZXhlY3V0ZVRvb2wgPSBhc3luYyAoXG4gICAgdG9vbFVzZUJsb2NrOiBDb250ZW50QmxvY2suVG9vbFVzZU1lbWJlclxuICApOiBQcm9taXNlPENvbnRlbnRCbG9jaz4gPT4ge1xuICAgIGlmICghdG9vbFVzZUJsb2NrLnRvb2xVc2UubmFtZSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0JlZHJvY2sgdG9vbCB1c2UgcmVzcG9uc2UgaXMgbWlzc2luZyBhIHRvb2wgbmFtZScpO1xuICAgIH1cbiAgICBjb25zdCB0b29sID0gdGhpcy5leGVjdXRhYmxlVG9vbEJ5TmFtZS5nZXQodG9vbFVzZUJsb2NrLnRvb2xVc2UubmFtZSk7XG4gICAgaWYgKCF0b29sKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgYEJlZHJvY2sgdG9vbCB1c2UgcmVzcG9uc2UgY29udGFpbnMgdW5rbm93biB0b29sICcke3Rvb2xVc2VCbG9jay50b29sVXNlLm5hbWV9J2BcbiAgICAgICk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKGBJbnZva2luZyB0b29sICR7dG9vbC5uYW1lfWApO1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ1Rvb2wgaW5wdXQ6JywgdG9vbFVzZUJsb2NrLnRvb2xVc2UuaW5wdXQpO1xuICAgICAgY29uc3QgdG9vbFJlc3BvbnNlID0gYXdhaXQgdG9vbC5leGVjdXRlKHRvb2xVc2VCbG9jay50b29sVXNlLmlucHV0KTtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oYFJlY2VpdmVkIHJlc3BvbnNlIGZyb20gJHt0b29sLm5hbWV9IHRvb2xgKTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKHRvb2xSZXNwb25zZSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0b29sUmVzdWx0OiB7XG4gICAgICAgICAgdG9vbFVzZUlkOiB0b29sVXNlQmxvY2sudG9vbFVzZS50b29sVXNlSWQsXG4gICAgICAgICAgY29udGVudDogW3Rvb2xSZXNwb25zZV0sXG4gICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0b29sUmVzdWx0OiB7XG4gICAgICAgICAgICB0b29sVXNlSWQ6IHRvb2xVc2VCbG9jay50b29sVXNlLnRvb2xVc2VJZCxcbiAgICAgICAgICAgIGNvbnRlbnQ6IFt7IHRleHQ6IGUudG9TdHJpbmcoKSB9XSxcbiAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdG9vbFJlc3VsdDoge1xuICAgICAgICAgIHRvb2xVc2VJZDogdG9vbFVzZUJsb2NrLnRvb2xVc2UudG9vbFVzZUlkLFxuICAgICAgICAgIGNvbnRlbnQ6IFt7IHRleHQ6ICd1bmtub3duIGVycm9yIG9jY3VycmVkJyB9XSxcbiAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/ai-constructs",
3
- "version": "0.8.1",
3
+ "version": "1.0.0",
4
4
  "type": "commonjs",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -3,6 +3,18 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.1.2](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-conversation-transformer@1.1.1...@aws-amplify/graphql-conversation-transformer@1.1.2) (2024-11-20)
7
+
8
+ ### Bug Fixes
9
+
10
+ - bump ai-constructs to ^1.0.0 ([#3040](https://github.com/aws-amplify/amplify-category-api/issues/3040)) ([0e9e195](https://github.com/aws-amplify/amplify-category-api/commit/0e9e195b05e7d40e41c29b82b8f3fb3a8961d80b))
11
+
12
+ ## [1.1.1](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-conversation-transformer@1.1.0...@aws-amplify/graphql-conversation-transformer@1.1.1) (2024-11-20)
13
+
14
+ ### Bug Fixes
15
+
16
+ - **conversation:** model list tool query name infinite recursion ([#3037](https://github.com/aws-amplify/amplify-category-api/issues/3037)) ([63aea80](https://github.com/aws-amplify/amplify-category-api/commit/63aea80cfe3c0b9f1d74b80af1eb38a6ac96a190))
17
+
6
18
  # [1.1.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-conversation-transformer@0.7.1...@aws-amplify/graphql-conversation-transformer@1.1.0) (2024-11-19)
7
19
 
8
20
  ### Bug Fixes
@@ -1 +1 @@
1
- {"version":3,"file":"process-tools.d.ts","sourceRoot":"","sources":["../../src/tools/process-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAC3G,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAWzF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAG9G,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,UAAU,CAAC;KAClB,CAAC;IACF,6BAA6B,CAAC,EAAE,6BAA6B,CAAC;CAC/D,CAAC;AAEF,eAAO,MAAM,6BAA6B,SAAU,cAAc,+BACiC,CAAC;AAEpG,eAAO,MAAM,0BAA0B,SAAU,cAAc,4BACoC,CAAC;AAEpG,KAAK,6BAA6B,GAAG;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAUF,eAAO,MAAM,YAAY,oBAAqB,cAAc,EAAE,OAAO,0BAA0B,KAAG,IAAI,EAAE,GAAG,SA0B1G,CAAC"}
1
+ {"version":3,"file":"process-tools.d.ts","sourceRoot":"","sources":["../../src/tools/process-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAC3G,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAWzF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAG9G,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,UAAU,CAAC;KAClB,CAAC;IACF,6BAA6B,CAAC,EAAE,6BAA6B,CAAC;CAC/D,CAAC;AAEF,eAAO,MAAM,6BAA6B,SAAU,cAAc,+BACiC,CAAC;AAEpG,eAAO,MAAM,0BAA0B,SAAU,cAAc,4BACoC,CAAC;AAEpG,KAAK,6BAA6B,GAAG;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAUF,eAAO,MAAM,YAAY,oBAAqB,cAAc,EAAE,OAAO,0BAA0B,KAAG,IAAI,EAAE,GAAG,SA2B1G,CAAC"}
@@ -18,13 +18,12 @@ const processTools = (toolDefinitions, ctx) => {
18
18
  }
19
19
  const tools = toolDefinitions.map((toolDefinition) => {
20
20
  var _a;
21
- const { name: toolName, description } = toolDefinition;
22
21
  const queryName = (0, exports.isModelOperationToolPredicate)(toolDefinition) ? modelListQueryName(toolDefinition, ctx) : toolDefinition.queryName;
23
22
  const queryField = (_a = queryType.fields) === null || _a === void 0 ? void 0 : _a.find((field) => field.name.value === queryName);
24
23
  if (!queryField) {
25
- throw new graphql_transformer_core_1.InvalidDirectiveError(`Tool "${toolName}" defined in @conversation directive has no matching Query field definition`);
24
+ throw new graphql_transformer_core_1.InvalidDirectiveError(`Tool "${toolDefinition.name}" defined in @conversation directive has no matching Query field definition`);
26
25
  }
27
- return createTool({ toolName, description, queryField, ctx });
26
+ return createTool({ toolDefinition, queryField, ctx });
28
27
  });
29
28
  return tools;
30
29
  };
@@ -63,11 +62,12 @@ const getObjectTypeFromName = (name, ctx) => {
63
62
  return node;
64
63
  };
65
64
  const createTool = (input) => {
66
- const { toolName, description, queryField, ctx } = input;
65
+ const { toolDefinition, queryField, ctx } = input;
66
+ const { name: toolName, description } = toolDefinition;
67
67
  const { type: returnType, arguments: fieldArguments } = queryField;
68
- const { properties, required } = generateToolProperties(fieldArguments, ctx, toolName, returnType);
68
+ const { properties, required } = generateToolProperties(fieldArguments, ctx, toolDefinition);
69
69
  const selectionSet = generateSelectionSet(returnType, ctx).trim();
70
- const propertyTypes = generatePropertyTypes(fieldArguments, toolName, returnType);
70
+ const propertyTypes = generatePropertyTypes(fieldArguments, toolDefinition);
71
71
  const graphqlRequestInputDescriptor = {
72
72
  selectionSet,
73
73
  propertyTypes,
@@ -86,11 +86,11 @@ const createTool = (input) => {
86
86
  graphqlRequestInputDescriptor,
87
87
  };
88
88
  };
89
- const generateToolProperties = (fieldArguments, ctx, toolName, returnType) => {
89
+ const generateToolProperties = (fieldArguments, ctx, toolDefinition) => {
90
90
  if (!fieldArguments || fieldArguments.length === 0) {
91
91
  return { properties: {}, required: [] };
92
92
  }
93
- if (isModelListOperation(toolName, returnType)) {
93
+ if ((0, exports.isModelOperationToolPredicate)(toolDefinition)) {
94
94
  return { properties: {}, required: [] };
95
95
  }
96
96
  return fieldArguments.reduce((acc, fieldArgument) => {
@@ -102,11 +102,11 @@ const generateToolProperties = (fieldArguments, ctx, toolName, returnType) => {
102
102
  return acc;
103
103
  }, { properties: {}, required: [] });
104
104
  };
105
- const generatePropertyTypes = (fieldArguments, toolName, returnType) => {
105
+ const generatePropertyTypes = (fieldArguments, toolDefinition) => {
106
106
  if (!fieldArguments || fieldArguments.length === 0) {
107
107
  return {};
108
108
  }
109
- if (isModelListOperation(toolName, returnType)) {
109
+ if ((0, exports.isModelOperationToolPredicate)(toolDefinition)) {
110
110
  return {};
111
111
  }
112
112
  return fieldArguments.reduce((acc, fieldArgument) => {
@@ -116,9 +116,6 @@ const generatePropertyTypes = (fieldArguments, toolName, returnType) => {
116
116
  return acc;
117
117
  }, {});
118
118
  };
119
- const isModelListOperation = (toolName, responseType) => {
120
- return (0, graphql_transformer_common_1.getBaseType)(responseType).startsWith('Model') && toolName.startsWith('list');
121
- };
122
119
  const modelListQueryName = (modelTool, ctx) => {
123
120
  var _a, _b, _c;
124
121
  const { modelName } = modelTool;
@@ -1 +1 @@
1
- {"version":3,"file":"process-tools.js","sourceRoot":"","sources":["../../src/tools/process-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-tools.js","sourceRoot":"","sources":["../../src/tools/process-tools.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/graphql-conversation-transformer",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "Amplify GraphQL @conversation transformer",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,7 +24,7 @@
24
24
  "extract-api": "ts-node ../../scripts/extract-api.ts"
25
25
  },
26
26
  "dependencies": {
27
- "@aws-amplify/ai-constructs": "^0.8.1",
27
+ "@aws-amplify/ai-constructs": "^1.0.0",
28
28
  "@aws-amplify/graphql-directives": "2.6.0",
29
29
  "@aws-amplify/graphql-index-transformer": "3.0.9",
30
30
  "@aws-amplify/graphql-model-transformer": "3.1.1",
@@ -82,5 +82,5 @@
82
82
  "/__tests__/"
83
83
  ]
84
84
  },
85
- "gitHead": "4985ac3451b492bc5fd36d9cb33bf70d9985b24b"
85
+ "gitHead": "c3a7bf6b258e3d71cecee0ec267f2d869d482c42"
86
86
  }
@@ -74,6 +74,5 @@
74
74
  "coveragePathIgnorePatterns": [
75
75
  "/__tests__/"
76
76
  ]
77
- },
78
- "gitHead": "4985ac3451b492bc5fd36d9cb33bf70d9985b24b"
77
+ }
79
78
  }
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [2.2.2](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-transformer@2.2.1...@aws-amplify/graphql-transformer@2.2.2) (2024-11-20)
7
+
8
+ **Note:** Version bump only for package @aws-amplify/graphql-transformer
9
+
10
+ ## [2.2.1](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-transformer@2.2.0...@aws-amplify/graphql-transformer@2.2.1) (2024-11-20)
11
+
12
+ **Note:** Version bump only for package @aws-amplify/graphql-transformer
13
+
6
14
  # [2.2.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-transformer@2.1.8...@aws-amplify/graphql-transformer@2.2.0) (2024-11-19)
7
15
 
8
16
  ### Features
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/graphql-transformer",
3
- "version": "2.2.0",
3
+ "version": "2.2.2",
4
4
  "description": "Amplify GraphQL Transformer Root Package",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,7 +30,7 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@aws-amplify/graphql-auth-transformer": "4.1.7",
33
- "@aws-amplify/graphql-conversation-transformer": "1.1.0",
33
+ "@aws-amplify/graphql-conversation-transformer": "1.1.2",
34
34
  "@aws-amplify/graphql-default-value-transformer": "3.1.4",
35
35
  "@aws-amplify/graphql-function-transformer": "3.1.6",
36
36
  "@aws-amplify/graphql-generation-transformer": "1.1.0",
@@ -97,5 +97,5 @@
97
97
  "printBasicPrototype": true
98
98
  }
99
99
  },
100
- "gitHead": "4985ac3451b492bc5fd36d9cb33bf70d9985b24b"
100
+ "gitHead": "c3a7bf6b258e3d71cecee0ec267f2d869d482c42"
101
101
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/graphql-api-construct",
3
- "version": "1.18.0",
3
+ "version": "1.18.2",
4
4
  "description": "AppSync GraphQL Api Construct using Amplify GraphQL Transformer.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -158,11 +158,11 @@
158
158
  "semver"
159
159
  ],
160
160
  "dependencies": {
161
- "@aws-amplify/ai-constructs": "^0.8.1",
161
+ "@aws-amplify/ai-constructs": "^1.0.0",
162
162
  "@aws-amplify/backend-output-schemas": "^1.0.0",
163
163
  "@aws-amplify/backend-output-storage": "^1.0.0",
164
164
  "@aws-amplify/graphql-auth-transformer": "4.1.7",
165
- "@aws-amplify/graphql-conversation-transformer": "1.1.0",
165
+ "@aws-amplify/graphql-conversation-transformer": "1.1.2",
166
166
  "@aws-amplify/graphql-default-value-transformer": "3.1.4",
167
167
  "@aws-amplify/graphql-directives": "2.6.0",
168
168
  "@aws-amplify/graphql-function-transformer": "3.1.6",
@@ -175,7 +175,7 @@
175
175
  "@aws-amplify/graphql-relational-transformer": "3.1.1",
176
176
  "@aws-amplify/graphql-searchable-transformer": "3.0.9",
177
177
  "@aws-amplify/graphql-sql-transformer": "0.4.9",
178
- "@aws-amplify/graphql-transformer": "2.2.0",
178
+ "@aws-amplify/graphql-transformer": "2.2.2",
179
179
  "@aws-amplify/graphql-transformer-core": "3.3.1",
180
180
  "@aws-amplify/graphql-transformer-interfaces": "4.2.0",
181
181
  "@aws-amplify/platform-core": "^1.0.0",
@@ -353,5 +353,5 @@
353
353
  "printBasicPrototype": true
354
354
  }
355
355
  },
356
- "gitHead": "4985ac3451b492bc5fd36d9cb33bf70d9985b24b"
356
+ "gitHead": "c3a7bf6b258e3d71cecee0ec267f2d869d482c42"
357
357
  }
@@ -1,201 +0,0 @@
1
- Apache License
2
- Version 2.0, January 2004
3
- http://www.apache.org/licenses/
4
-
5
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
-
7
- 1. Definitions.
8
-
9
- "License" shall mean the terms and conditions for use, reproduction,
10
- and distribution as defined by Sections 1 through 9 of this document.
11
-
12
- "Licensor" shall mean the copyright owner or entity authorized by
13
- the copyright owner that is granting the License.
14
-
15
- "Legal Entity" shall mean the union of the acting entity and all
16
- other entities that control, are controlled by, or are under common
17
- control with that entity. For the purposes of this definition,
18
- "control" means (i) the power, direct or indirect, to cause the
19
- direction or management of such entity, whether by contract or
20
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
- outstanding shares, or (iii) beneficial ownership of such entity.
22
-
23
- "You" (or "Your") shall mean an individual or Legal Entity
24
- exercising permissions granted by this License.
25
-
26
- "Source" form shall mean the preferred form for making modifications,
27
- including but not limited to software source code, documentation
28
- source, and configuration files.
29
-
30
- "Object" form shall mean any form resulting from mechanical
31
- transformation or translation of a Source form, including but
32
- not limited to compiled object code, generated documentation,
33
- and conversions to other media types.
34
-
35
- "Work" shall mean the work of authorship, whether in Source or
36
- Object form, made available under the License, as indicated by a
37
- copyright notice that is included in or attached to the work
38
- (an example is provided in the Appendix below).
39
-
40
- "Derivative Works" shall mean any work, whether in Source or Object
41
- form, that is based on (or derived from) the Work and for which the
42
- editorial revisions, annotations, elaborations, or other modifications
43
- represent, as a whole, an original work of authorship. For the purposes
44
- of this License, Derivative Works shall not include works that remain
45
- separable from, or merely link (or bind by name) to the interfaces of,
46
- the Work and Derivative Works thereof.
47
-
48
- "Contribution" shall mean any work of authorship, including
49
- the original version of the Work and any modifications or additions
50
- to that Work or Derivative Works thereof, that is intentionally
51
- submitted to Licensor for inclusion in the Work by the copyright owner
52
- or by an individual or Legal Entity authorized to submit on behalf of
53
- the copyright owner. For the purposes of this definition, "submitted"
54
- means any form of electronic, verbal, or written communication sent
55
- to the Licensor or its representatives, including but not limited to
56
- communication on electronic mailing lists, source code control systems,
57
- and issue tracking systems that are managed by, or on behalf of, the
58
- Licensor for the purpose of discussing and improving the Work, but
59
- excluding communication that is conspicuously marked or otherwise
60
- designated in writing by the copyright owner as "Not a Contribution."
61
-
62
- "Contributor" shall mean Licensor and any individual or Legal Entity
63
- on behalf of whom a Contribution has been received by Licensor and
64
- subsequently incorporated within the Work.
65
-
66
- 2. Grant of Copyright License. Subject to the terms and conditions of
67
- this License, each Contributor hereby grants to You a perpetual,
68
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
- copyright license to reproduce, prepare Derivative Works of,
70
- publicly display, publicly perform, sublicense, and distribute the
71
- Work and such Derivative Works in Source or Object form.
72
-
73
- 3. Grant of Patent License. Subject to the terms and conditions of
74
- this License, each Contributor hereby grants to You a perpetual,
75
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
- (except as stated in this section) patent license to make, have made,
77
- use, offer to sell, sell, import, and otherwise transfer the Work,
78
- where such license applies only to those patent claims licensable
79
- by such Contributor that are necessarily infringed by their
80
- Contribution(s) alone or by combination of their Contribution(s)
81
- with the Work to which such Contribution(s) was submitted. If You
82
- institute patent litigation against any entity (including a
83
- cross-claim or counterclaim in a lawsuit) alleging that the Work
84
- or a Contribution incorporated within the Work constitutes direct
85
- or contributory patent infringement, then any patent licenses
86
- granted to You under this License for that Work shall terminate
87
- as of the date such litigation is filed.
88
-
89
- 4. Redistribution. You may reproduce and distribute copies of the
90
- Work or Derivative Works thereof in any medium, with or without
91
- modifications, and in Source or Object form, provided that You
92
- meet the following conditions:
93
-
94
- (a) You must give any other recipients of the Work or
95
- Derivative Works a copy of this License; and
96
-
97
- (b) You must cause any modified files to carry prominent notices
98
- stating that You changed the files; and
99
-
100
- (c) You must retain, in the Source form of any Derivative Works
101
- that You distribute, all copyright, patent, trademark, and
102
- attribution notices from the Source form of the Work,
103
- excluding those notices that do not pertain to any part of
104
- the Derivative Works; and
105
-
106
- (d) If the Work includes a "NOTICE" text file as part of its
107
- distribution, then any Derivative Works that You distribute must
108
- include a readable copy of the attribution notices contained
109
- within such NOTICE file, excluding those notices that do not
110
- pertain to any part of the Derivative Works, in at least one
111
- of the following places: within a NOTICE text file distributed
112
- as part of the Derivative Works; within the Source form or
113
- documentation, if provided along with the Derivative Works; or,
114
- within a display generated by the Derivative Works, if and
115
- wherever such third-party notices normally appear. The contents
116
- of the NOTICE file are for informational purposes only and
117
- do not modify the License. You may add Your own attribution
118
- notices within Derivative Works that You distribute, alongside
119
- or as an addendum to the NOTICE text from the Work, provided
120
- that such additional attribution notices cannot be construed
121
- as modifying the License.
122
-
123
- You may add Your own copyright statement to Your modifications and
124
- may provide additional or different license terms and conditions
125
- for use, reproduction, or distribution of Your modifications, or
126
- for any such Derivative Works as a whole, provided Your use,
127
- reproduction, and distribution of the Work otherwise complies with
128
- the conditions stated in this License.
129
-
130
- 5. Submission of Contributions. Unless You explicitly state otherwise,
131
- any Contribution intentionally submitted for inclusion in the Work
132
- by You to the Licensor shall be under the terms and conditions of
133
- this License, without any additional terms or conditions.
134
- Notwithstanding the above, nothing herein shall supersede or modify
135
- the terms of any separate license agreement you may have executed
136
- with Licensor regarding such Contributions.
137
-
138
- 6. Trademarks. This License does not grant permission to use the trade
139
- names, trademarks, service marks, or product names of the Licensor,
140
- except as required for reasonable and customary use in describing the
141
- origin of the Work and reproducing the content of the NOTICE file.
142
-
143
- 7. Disclaimer of Warranty. Unless required by applicable law or
144
- agreed to in writing, Licensor provides the Work (and each
145
- Contributor provides its Contributions) on an "AS IS" BASIS,
146
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
- implied, including, without limitation, any warranties or conditions
148
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
- PARTICULAR PURPOSE. You are solely responsible for determining the
150
- appropriateness of using or redistributing the Work and assume any
151
- risks associated with Your exercise of permissions under this License.
152
-
153
- 8. Limitation of Liability. In no event and under no legal theory,
154
- whether in tort (including negligence), contract, or otherwise,
155
- unless required by applicable law (such as deliberate and grossly
156
- negligent acts) or agreed to in writing, shall any Contributor be
157
- liable to You for damages, including any direct, indirect, special,
158
- incidental, or consequential damages of any character arising as a
159
- result of this License or out of the use or inability to use the
160
- Work (including but not limited to damages for loss of goodwill,
161
- work stoppage, computer failure or malfunction, or any and all
162
- other commercial damages or losses), even if such Contributor
163
- has been advised of the possibility of such damages.
164
-
165
- 9. Accepting Warranty or Additional Liability. While redistributing
166
- the Work or Derivative Works thereof, You may choose to offer,
167
- and charge a fee for, acceptance of support, warranty, indemnity,
168
- or other liability obligations and/or rights consistent with this
169
- License. However, in accepting such obligations, You may act only
170
- on Your own behalf and on Your sole responsibility, not on behalf
171
- of any other Contributor, and only if You agree to indemnify,
172
- defend, and hold each Contributor harmless for any liability
173
- incurred by, or claims asserted against, such Contributor by reason
174
- of your accepting any such warranty or additional liability.
175
-
176
- END OF TERMS AND CONDITIONS
177
-
178
- APPENDIX: How to apply the Apache License to your work.
179
-
180
- To apply the Apache License to your work, attach the following
181
- boilerplate notice, with the fields enclosed by brackets "{}"
182
- replaced with your own identifying information. (Don't include
183
- the brackets!) The text should be enclosed in the appropriate
184
- comment syntax for the file format. We also recommend that a
185
- file or class name and description of purpose be included on the
186
- same "printed page" as the copyright notice for easier
187
- identification within third-party archives.
188
-
189
- Copyright 2017 - 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
190
-
191
- Licensed under the Apache License, Version 2.0 (the "License");
192
- you may not use this file except in compliance with the License.
193
- You may obtain a copy of the License at
194
-
195
- http://www.apache.org/licenses/LICENSE-2.0
196
-
197
- Unless required by applicable law or agreed to in writing, software
198
- distributed under the License is distributed on an "AS IS" BASIS,
199
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
- See the License for the specific language governing permissions and
201
- limitations under the License.