@cdklabs/cdk-appmod-catalog-blueprints 1.16.1 → 1.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/.jsii +963 -146
  2. package/lib/document-processing/adapter/queued-s3-adapter.js +39 -5
  3. package/lib/document-processing/agentic-document-processing.js +6 -4
  4. package/lib/document-processing/base-document-processing.js +16 -4
  5. package/lib/document-processing/bedrock-document-processing.d.ts +1 -0
  6. package/lib/document-processing/bedrock-document-processing.js +117 -70
  7. package/lib/document-processing/default-document-processing-config.js +3 -5
  8. package/lib/document-processing/index.d.ts +2 -0
  9. package/lib/document-processing/index.js +3 -1
  10. package/lib/document-processing/localstack-agentic-document-processing.d.ts +20 -0
  11. package/lib/document-processing/localstack-agentic-document-processing.js +99 -0
  12. package/lib/document-processing/localstack-bedrock-document-processing.d.ts +16 -0
  13. package/lib/document-processing/localstack-bedrock-document-processing.js +69 -0
  14. package/lib/document-processing/resources/cleanup/handler.py +16 -1
  15. package/lib/document-processing/resources/default-localstack-invoke/index.py +184 -0
  16. package/lib/document-processing/resources/default-localstack-invoke/provider_runtime.py +251 -0
  17. package/lib/document-processing/resources/default-localstack-invoke/requirements.txt +5 -0
  18. package/lib/document-processing/resources/default-sqs-consumer/index.py +17 -2
  19. package/lib/document-processing/resources/pdf-chunking/handler.py +16 -1
  20. package/lib/document-processing/tests/base-document-processing-nag.test.js +3 -1
  21. package/lib/document-processing/tests/base-document-processing-schema.test.js +6 -1
  22. package/lib/document-processing/tests/base-document-processing.test.js +12 -1
  23. package/lib/document-processing/tests/localstack-agentic-document-processing.test.d.ts +1 -0
  24. package/lib/document-processing/tests/localstack-agentic-document-processing.test.js +111 -0
  25. package/lib/document-processing/tests/localstack-document-processing.test.d.ts +1 -0
  26. package/lib/document-processing/tests/localstack-document-processing.test.js +149 -0
  27. package/lib/document-processing/tests/queued-s3-adapter-nag.test.js +3 -1
  28. package/lib/document-processing/tests/queued-s3-adapter.test.js +3 -1
  29. package/lib/framework/agents/base-agent.js +31 -4
  30. package/lib/framework/agents/batch-agent.d.ts +1 -0
  31. package/lib/framework/agents/batch-agent.js +42 -7
  32. package/lib/framework/agents/default-agent-config.js +3 -5
  33. package/lib/framework/agents/index.d.ts +1 -0
  34. package/lib/framework/agents/index.js +2 -1
  35. package/lib/framework/agents/interactive-agent.js +115 -23
  36. package/lib/framework/agents/knowledge-base/base-knowledge-base.js +30 -4
  37. package/lib/framework/agents/knowledge-base/bedrock-knowledge-base.js +81 -5
  38. package/lib/framework/agents/localstack-batch-agent.d.ts +15 -0
  39. package/lib/framework/agents/localstack-batch-agent.js +64 -0
  40. package/lib/framework/agents/resources/default-ollama-agent/batch.py +396 -0
  41. package/lib/framework/agents/resources/default-ollama-agent/models.py +7 -0
  42. package/lib/framework/agents/resources/default-ollama-agent/requirements.txt +9 -0
  43. package/lib/framework/agents/resources/default-ollama-agent/runtime_support.py +237 -0
  44. package/lib/framework/agents/resources/default-ollama-agent/utils.py +77 -0
  45. package/lib/framework/agents/tests/agent-knowledge-base-nag.test.js +35 -2
  46. package/lib/framework/bedrock/bedrock.d.ts +9 -0
  47. package/lib/framework/bedrock/bedrock.js +20 -12
  48. package/lib/framework/custom-resource/default-runtimes.js +20 -22
  49. package/lib/framework/foundation/access-log.js +50 -7
  50. package/lib/framework/foundation/eventbridge-broker.js +5 -4
  51. package/lib/framework/foundation/network.js +4 -4
  52. package/lib/framework/index.d.ts +1 -0
  53. package/lib/framework/index.js +2 -1
  54. package/lib/framework/localstack/index.d.ts +1 -0
  55. package/lib/framework/localstack/index.js +18 -0
  56. package/lib/framework/localstack/localstack-config.d.ts +79 -0
  57. package/lib/framework/localstack/localstack-config.js +47 -0
  58. package/lib/framework/tests/base-agent-knowledge-base.test.js +35 -2
  59. package/lib/framework/tests/batch-agent.test.js +35 -2
  60. package/lib/framework/tests/framework-nag.test.js +35 -2
  61. package/lib/framework/tests/interactive-agent-nag.test.js +35 -2
  62. package/lib/framework/tests/interactive-agent.test.js +35 -2
  63. package/lib/framework/tests/localstack-batch-agent.test.d.ts +1 -0
  64. package/lib/framework/tests/localstack-batch-agent.test.js +100 -0
  65. package/lib/utilities/data-loader.js +50 -5
  66. package/lib/utilities/lambda-iam-utils.js +38 -7
  67. package/lib/utilities/lambda_layers/data-masking/layer-construct.js +40 -3
  68. package/lib/utilities/observability/bedrock-observability.js +38 -2
  69. package/lib/utilities/observability/cloudfront-distribution-observability-property-injector.js +3 -4
  70. package/lib/utilities/observability/cloudwatch-transaction-search.js +36 -5
  71. package/lib/utilities/observability/default-observability-config.js +6 -8
  72. package/lib/utilities/observability/lambda-observability-property-injector.js +4 -4
  73. package/lib/utilities/observability/log-group-data-protection-utils.js +2 -4
  74. package/lib/utilities/observability/observability.js +47 -6
  75. package/lib/utilities/observability/powertools-config.js +2 -4
  76. package/lib/utilities/observability/state-machine-observability-property-injector.js +4 -4
  77. package/lib/webapp/frontend-construct.js +46 -5
  78. package/lib/webapp/tests/frontend-construct-nag.test.js +36 -3
  79. package/lib/webapp/tests/frontend-construct.test.js +36 -3
  80. package/package.json +60 -61
  81. package/lib/tsconfig.tsbuildinfo +0 -1
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.BaseKnowledgeBase = void 0;
5
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
@@ -22,6 +21,35 @@ const constructs_1 = require("constructs");
22
21
  * - `generateIamPermissions()`: Return IAM permissions specific to the KB type
23
22
  */
24
23
  class BaseKnowledgeBase extends constructs_1.Construct {
24
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.BaseKnowledgeBase", version: "1.17.1" };
25
+ /**
26
+ * Human-readable name for this knowledge base.
27
+ *
28
+ * This name is used for logging, display purposes, and to help the agent
29
+ * identify which knowledge base to query.
30
+ */
31
+ name;
32
+ /**
33
+ * Human-readable description of what this knowledge base contains.
34
+ *
35
+ * This description is included in the agent's system prompt to help
36
+ * the agent decide when to query this knowledge base.
37
+ */
38
+ description;
39
+ /**
40
+ * Retrieval configuration for this knowledge base.
41
+ *
42
+ * Contains settings like numberOfResults and optional metadata filters.
43
+ * Defaults to { numberOfResults: 5 } if not provided.
44
+ */
45
+ retrievalConfig;
46
+ /**
47
+ * ACL configuration for identity-aware retrieval.
48
+ *
49
+ * When enabled, retrieval queries will be filtered based on user
50
+ * identity context.
51
+ */
52
+ aclConfig;
25
53
  /**
26
54
  * Creates a new BaseKnowledgeBase instance.
27
55
  *
@@ -102,6 +130,4 @@ class BaseKnowledgeBase extends constructs_1.Construct {
102
130
  }
103
131
  }
104
132
  exports.BaseKnowledgeBase = BaseKnowledgeBase;
105
- _a = JSII_RTTI_SYMBOL_1;
106
- BaseKnowledgeBase[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.BaseKnowledgeBase", version: "1.16.1" };
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1rbm93bGVkZ2UtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3VzZS1jYXNlcy9mcmFtZXdvcmsvYWdlbnRzL2tub3dsZWRnZS1iYXNlL2Jhc2Uta25vd2xlZGdlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFNQSwyQ0FBdUM7QUFTdkM7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFzQixpQkFBa0IsU0FBUSxzQkFBUztJQWlDdkQ7Ozs7Ozs7O09BUUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTZCO1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFLGVBQWUsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNqRSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDTyxhQUFhLENBQUMsS0FBNkI7UUFDbkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM1QyxNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7SUFDSCxDQUFDO0lBWUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQy9CLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUztTQUNwQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksa0JBQWtCO1FBQ3ZCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLG1CQUFtQjtRQUN4QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOztBQTlISCw4Q0ErSEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgTGF5ZXJWZXJzaW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBBc3NldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1hc3NldHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJS25vd2xlZGdlQmFzZSB9IGZyb20gJy4vaS1rbm93bGVkZ2UtYmFzZSc7XG5pbXBvcnQge1xuICBBY2xDb25maWd1cmF0aW9uLFxuICBCYXNlS25vd2xlZGdlQmFzZVByb3BzLFxuICBLbm93bGVkZ2VCYXNlUnVudGltZUNvbmZpZyxcbiAgUmV0cmlldmFsQ29uZmlndXJhdGlvbixcbn0gZnJvbSAnLi9rbm93bGVkZ2UtYmFzZS1wcm9wcyc7XG5cbi8qKlxuICogQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3Iga25vd2xlZGdlIGJhc2UgaW1wbGVtZW50YXRpb25zLlxuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgY29tbW9uIGZ1bmN0aW9uYWxpdHkgZm9yIGFsbCBrbm93bGVkZ2UgYmFzZSBpbXBsZW1lbnRhdGlvbnMsXG4gKiBpbmNsdWRpbmcgY29uZmlndXJhdGlvbiBtYW5hZ2VtZW50LCB2YWxpZGF0aW9uLCBhbmQgZGVmYXVsdCBiZWhhdmlvcnMuIENvbmNyZXRlXG4gKiBpbXBsZW1lbnRhdGlvbnMgKGxpa2UgQmVkcm9ja0tub3dsZWRnZUJhc2UpIGV4dGVuZCB0aGlzIGNsYXNzIGFuZCBpbXBsZW1lbnRcbiAqIHRoZSBhYnN0cmFjdCBtZXRob2RzLlxuICpcbiAqIFRoZSBiYXNlIGNsYXNzIGhhbmRsZXM6XG4gKiAtIFByb3BzIHZhbGlkYXRpb24gKG5hbWUgYW5kIGRlc2NyaXB0aW9uIGFyZSByZXF1aXJlZClcbiAqIC0gRGVmYXVsdCByZXRyaWV2YWwgY29uZmlndXJhdGlvbiAobnVtYmVyT2ZSZXN1bHRzIGRlZmF1bHRzIHRvIDUpXG4gKiAtIEFDTCBjb25maWd1cmF0aW9uIHN0b3JhZ2VcbiAqIC0gQmFzZSBydW50aW1lIGNvbmZpZ3VyYXRpb24gZXhwb3J0XG4gKlxuICogU3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudDpcbiAqIC0gYGdlbmVyYXRlSWFtUGVybWlzc2lvbnMoKWA6IFJldHVybiBJQU0gcGVybWlzc2lvbnMgc3BlY2lmaWMgdG8gdGhlIEtCIHR5cGVcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VLbm93bGVkZ2VCYXNlIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSUtub3dsZWRnZUJhc2Uge1xuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhpcyBrbm93bGVkZ2UgYmFzZS5cbiAgICpcbiAgICogVGhpcyBuYW1lIGlzIHVzZWQgZm9yIGxvZ2dpbmcsIGRpc3BsYXkgcHVycG9zZXMsIGFuZCB0byBoZWxwIHRoZSBhZ2VudFxuICAgKiBpZGVudGlmeSB3aGljaCBrbm93bGVkZ2UgYmFzZSB0byBxdWVyeS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhpcyBrbm93bGVkZ2UgYmFzZSBjb250YWlucy5cbiAgICpcbiAgICogVGhpcyBkZXNjcmlwdGlvbiBpcyBpbmNsdWRlZCBpbiB0aGUgYWdlbnQncyBzeXN0ZW0gcHJvbXB0IHRvIGhlbHBcbiAgICogdGhlIGFnZW50IGRlY2lkZSB3aGVuIHRvIHF1ZXJ5IHRoaXMga25vd2xlZGdlIGJhc2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcblxuICAvKipcbiAgICogUmV0cmlldmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMga25vd2xlZGdlIGJhc2UuXG4gICAqXG4gICAqIENvbnRhaW5zIHNldHRpbmdzIGxpa2UgbnVtYmVyT2ZSZXN1bHRzIGFuZCBvcHRpb25hbCBtZXRhZGF0YSBmaWx0ZXJzLlxuICAgKiBEZWZhdWx0cyB0byB7IG51bWJlck9mUmVzdWx0czogNSB9IGlmIG5vdCBwcm92aWRlZC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSByZXRyaWV2YWxDb25maWc6IFJldHJpZXZhbENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIEFDTCBjb25maWd1cmF0aW9uIGZvciBpZGVudGl0eS1hd2FyZSByZXRyaWV2YWwuXG4gICAqXG4gICAqIFdoZW4gZW5hYmxlZCwgcmV0cmlldmFsIHF1ZXJpZXMgd2lsbCBiZSBmaWx0ZXJlZCBiYXNlZCBvbiB1c2VyXG4gICAqIGlkZW50aXR5IGNvbnRleHQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWNsQ29uZmlnPzogQWNsQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBCYXNlS25vd2xlZGdlQmFzZSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgLSBUaGUgc2NvcGVkIGNvbnN0cnVjdCBJRFxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBrbm93bGVkZ2UgYmFzZVxuICAgKiBAdGhyb3dzIEVycm9yIGlmIG5hbWUgaXMgZW1wdHkgb3Igbm90IHByb3ZpZGVkXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgZGVzY3JpcHRpb24gaXMgZW1wdHkgb3Igbm90IHByb3ZpZGVkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQmFzZUtub3dsZWRnZUJhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnZhbGlkYXRlUHJvcHMocHJvcHMpO1xuXG4gICAgdGhpcy5uYW1lID0gcHJvcHMubmFtZTtcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gcHJvcHMuZGVzY3JpcHRpb247XG4gICAgdGhpcy5yZXRyaWV2YWxDb25maWcgPSBwcm9wcy5yZXRyaWV2YWwgPz8geyBudW1iZXJPZlJlc3VsdHM6IDUgfTtcbiAgICB0aGlzLmFjbENvbmZpZyA9IHByb3BzLmFjbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHByb3ZpZGVkIHByb3BzIGF0IGNvbnN0cnVjdGlvbiB0aW1lLlxuICAgKlxuICAgKiBFbnN1cmVzIHRoYXQgcmVxdWlyZWQgZmllbGRzIChuYW1lIGFuZCBkZXNjcmlwdGlvbikgYXJlIHByb3ZpZGVkXG4gICAqIGFuZCBub3QgZW1wdHkuIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIGFkZCBhZGRpdGlvbmFsXG4gICAqIHZhbGlkYXRpb24sIGJ1dCBzaG91bGQgY2FsbCBzdXBlci52YWxpZGF0ZVByb3BzKCkgZmlyc3QuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIFRoZSBwcm9wcyB0byB2YWxpZGF0ZVxuICAgKiBAdGhyb3dzIEVycm9yIGlmIG5hbWUgaXMgZW1wdHkgb3Igbm90IHByb3ZpZGVkXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgZGVzY3JpcHRpb24gaXMgZW1wdHkgb3Igbm90IHByb3ZpZGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgdmFsaWRhdGVQcm9wcyhwcm9wczogQmFzZUtub3dsZWRnZUJhc2VQcm9wcyk6IHZvaWQge1xuICAgIGlmICghcHJvcHMubmFtZSB8fCBwcm9wcy5uYW1lLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbmFtZSBpcyByZXF1aXJlZCBhbmQgY2Fubm90IGJlIGVtcHR5Jyk7XG4gICAgfVxuICAgIGlmICghcHJvcHMuZGVzY3JpcHRpb24gfHwgcHJvcHMuZGVzY3JpcHRpb24udHJpbSgpID09PSAnJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdkZXNjcmlwdGlvbiBpcyByZXF1aXJlZCBhbmQgY2Fubm90IGJlIGVtcHR5Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIElBTSBwb2xpY3kgc3RhdGVtZW50cyByZXF1aXJlZCBmb3IgYWNjZXNzaW5nIHRoaXMga25vd2xlZGdlIGJhc2UuXG4gICAqXG4gICAqIFRoaXMgYWJzdHJhY3QgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3NlcyB0byByZXR1cm4gdGhlXG4gICAqIHNwZWNpZmljIElBTSBwZXJtaXNzaW9ucyBuZWVkZWQgZm9yIHRoZWlyIGtub3dsZWRnZSBiYXNlIHR5cGUuXG4gICAqXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIElBTSBQb2xpY3lTdGF0ZW1lbnQgb2JqZWN0cyBncmFudGluZyBuZWNlc3NhcnkgcGVybWlzc2lvbnNcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZW5lcmF0ZUlhbVBlcm1pc3Npb25zKCk6IFBvbGljeVN0YXRlbWVudFtdO1xuXG4gIC8qKlxuICAgKiBFeHBvcnQgY29uZmlndXJhdGlvbiBmb3IgcnVudGltZSB1c2UgYnkgdGhlIHJldHJpZXZhbCB0b29sLlxuICAgKlxuICAgKiBSZXR1cm5zIGEgY29uZmlndXJhdGlvbiBvYmplY3QgY29udGFpbmluZyB0aGUgYmFzZSBrbm93bGVkZ2UgYmFzZVxuICAgKiBzZXR0aW5ncy4gU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gYWRkIGltcGxlbWVudGF0aW9uLVxuICAgKiBzcGVjaWZpYyBjb25maWd1cmF0aW9uLCBjYWxsaW5nIHN1cGVyLmV4cG9ydENvbmZpZ3VyYXRpb24oKSB0byBpbmNsdWRlXG4gICAqIHRoZSBiYXNlIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIFJ1bnRpbWUgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoZSByZXRyaWV2YWwgdG9vbFxuICAgKi9cbiAgcHVibGljIGV4cG9ydENvbmZpZ3VyYXRpb24oKTogS25vd2xlZGdlQmFzZVJ1bnRpbWVDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgIHJldHJpZXZhbDogdGhpcy5yZXRyaWV2YWxDb25maWcsXG4gICAgICBhY2w6IHRoaXMuYWNsQ29uZmlnLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZSB0aGUgcmV0cmlldmFsIHRvb2wgYXNzZXQgZm9yIHRoaXMga25vd2xlZGdlIGJhc2UgdHlwZS5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgcmV0dXJucyB1bmRlZmluZWQgdG8gdXNlIHRoZSBmcmFtZXdvcmsncyBkZWZhdWx0IHJldHJpZXZhbFxuICAgKiB0b29sLiBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBwcm92aWRlIGEgY3VzdG9tIHJldHJpZXZhbFxuICAgKiB0b29sIGltcGxlbWVudGF0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyB1bmRlZmluZWQgdG8gdXNlIHRoZSBkZWZhdWx0IHJldHJpZXZhbCB0b29sXG4gICAqL1xuICBwdWJsaWMgcmV0cmlldmFsVG9vbEFzc2V0KCk6IEFzc2V0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgTGFtYmRhIGxheWVycyByZXF1aXJlZCBieSB0aGUgcmV0cmlldmFsIHRvb2wuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHJldHVybnMgdW5kZWZpbmVkIGluZGljYXRpbmcgbm8gYWRkaXRpb25hbCBsYXllcnMgYXJlIG5lZWRlZC5cbiAgICogU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcHJvdmlkZSBMYW1iZGEgbGF5ZXJzIGNvbnRhaW5pbmdcbiAgICogZGVwZW5kZW5jaWVzIHJlcXVpcmVkIGJ5IHRoZWlyIHJldHJpZXZhbCB0b29sLlxuICAgKlxuICAgKiBAcmV0dXJucyB1bmRlZmluZWQgaW5kaWNhdGluZyBubyBhZGRpdGlvbmFsIGxheWVycyBuZWVkZWRcbiAgICovXG4gIHB1YmxpYyByZXRyaWV2YWxUb29sTGF5ZXJzKCk6IExheWVyVmVyc2lvbltdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1rbm93bGVkZ2UtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3VzZS1jYXNlcy9mcmFtZXdvcmsvYWdlbnRzL2tub3dsZWRnZS1iYXNlL2Jhc2Uta25vd2xlZGdlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQU1BLDJDQUF1QztBQVN2Qzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQXNCLGlCQUFrQixTQUFRLHNCQUFTOztJQUN2RDs7Ozs7T0FLRztJQUNhLElBQUksQ0FBUztJQUU3Qjs7Ozs7T0FLRztJQUNhLFdBQVcsQ0FBUztJQUVwQzs7Ozs7T0FLRztJQUNnQixlQUFlLENBQXlCO0lBRTNEOzs7OztPQUtHO0lBQ2dCLFNBQVMsQ0FBb0I7SUFFaEQ7Ozs7Ozs7O09BUUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTZCO1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFLGVBQWUsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNqRSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDTyxhQUFhLENBQUMsS0FBNkI7UUFDbkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM1QyxNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7SUFDSCxDQUFDO0lBWUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQy9CLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUztTQUNwQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksa0JBQWtCO1FBQ3ZCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLG1CQUFtQjtRQUN4QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOztBQTlISCw4Q0ErSEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgTGF5ZXJWZXJzaW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBBc3NldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1hc3NldHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJS25vd2xlZGdlQmFzZSB9IGZyb20gJy4vaS1rbm93bGVkZ2UtYmFzZSc7XG5pbXBvcnQge1xuICBBY2xDb25maWd1cmF0aW9uLFxuICBCYXNlS25vd2xlZGdlQmFzZVByb3BzLFxuICBLbm93bGVkZ2VCYXNlUnVudGltZUNvbmZpZyxcbiAgUmV0cmlldmFsQ29uZmlndXJhdGlvbixcbn0gZnJvbSAnLi9rbm93bGVkZ2UtYmFzZS1wcm9wcyc7XG5cbi8qKlxuICogQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3Iga25vd2xlZGdlIGJhc2UgaW1wbGVtZW50YXRpb25zLlxuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgY29tbW9uIGZ1bmN0aW9uYWxpdHkgZm9yIGFsbCBrbm93bGVkZ2UgYmFzZSBpbXBsZW1lbnRhdGlvbnMsXG4gKiBpbmNsdWRpbmcgY29uZmlndXJhdGlvbiBtYW5hZ2VtZW50LCB2YWxpZGF0aW9uLCBhbmQgZGVmYXVsdCBiZWhhdmlvcnMuIENvbmNyZXRlXG4gKiBpbXBsZW1lbnRhdGlvbnMgKGxpa2UgQmVkcm9ja0tub3dsZWRnZUJhc2UpIGV4dGVuZCB0aGlzIGNsYXNzIGFuZCBpbXBsZW1lbnRcbiAqIHRoZSBhYnN0cmFjdCBtZXRob2RzLlxuICpcbiAqIFRoZSBiYXNlIGNsYXNzIGhhbmRsZXM6XG4gKiAtIFByb3BzIHZhbGlkYXRpb24gKG5hbWUgYW5kIGRlc2NyaXB0aW9uIGFyZSByZXF1aXJlZClcbiAqIC0gRGVmYXVsdCByZXRyaWV2YWwgY29uZmlndXJhdGlvbiAobnVtYmVyT2ZSZXN1bHRzIGRlZmF1bHRzIHRvIDUpXG4gKiAtIEFDTCBjb25maWd1cmF0aW9uIHN0b3JhZ2VcbiAqIC0gQmFzZSBydW50aW1lIGNvbmZpZ3VyYXRpb24gZXhwb3J0XG4gKlxuICogU3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudDpcbiAqIC0gYGdlbmVyYXRlSWFtUGVybWlzc2lvbnMoKWA6IFJldHVybiBJQU0gcGVybWlzc2lvbnMgc3BlY2lmaWMgdG8gdGhlIEtCIHR5cGVcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VLbm93bGVkZ2VCYXNlIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSUtub3dsZWRnZUJhc2Uge1xuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhpcyBrbm93bGVkZ2UgYmFzZS5cbiAgICpcbiAgICogVGhpcyBuYW1lIGlzIHVzZWQgZm9yIGxvZ2dpbmcsIGRpc3BsYXkgcHVycG9zZXMsIGFuZCB0byBoZWxwIHRoZSBhZ2VudFxuICAgKiBpZGVudGlmeSB3aGljaCBrbm93bGVkZ2UgYmFzZSB0byBxdWVyeS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhpcyBrbm93bGVkZ2UgYmFzZSBjb250YWlucy5cbiAgICpcbiAgICogVGhpcyBkZXNjcmlwdGlvbiBpcyBpbmNsdWRlZCBpbiB0aGUgYWdlbnQncyBzeXN0ZW0gcHJvbXB0IHRvIGhlbHBcbiAgICogdGhlIGFnZW50IGRlY2lkZSB3aGVuIHRvIHF1ZXJ5IHRoaXMga25vd2xlZGdlIGJhc2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcblxuICAvKipcbiAgICogUmV0cmlldmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMga25vd2xlZGdlIGJhc2UuXG4gICAqXG4gICAqIENvbnRhaW5zIHNldHRpbmdzIGxpa2UgbnVtYmVyT2ZSZXN1bHRzIGFuZCBvcHRpb25hbCBtZXRhZGF0YSBmaWx0ZXJzLlxuICAgKiBEZWZhdWx0cyB0byB7IG51bWJlck9mUmVzdWx0czogNSB9IGlmIG5vdCBwcm92aWRlZC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSByZXRyaWV2YWxDb25maWc6IFJldHJpZXZhbENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIEFDTCBjb25maWd1cmF0aW9uIGZvciBpZGVudGl0eS1hd2FyZSByZXRyaWV2YWwuXG4gICAqXG4gICAqIFdoZW4gZW5hYmxlZCwgcmV0cmlldmFsIHF1ZXJpZXMgd2lsbCBiZSBmaWx0ZXJlZCBiYXNlZCBvbiB1c2VyXG4gICAqIGlkZW50aXR5IGNvbnRleHQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWNsQ29uZmlnPzogQWNsQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBCYXNlS25vd2xlZGdlQmFzZSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgLSBUaGUgc2NvcGVkIGNvbnN0cnVjdCBJRFxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBrbm93bGVkZ2UgYmFzZVxuICAgKiBAdGhyb3dzIEVycm9yIGlmIG5hbWUgaXMgZW1wdHkgb3Igbm90IHByb3ZpZGVkXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgZGVzY3JpcHRpb24gaXMgZW1wdHkgb3Igbm90IHByb3ZpZGVkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQmFzZUtub3dsZWRnZUJhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnZhbGlkYXRlUHJvcHMocHJvcHMpO1xuXG4gICAgdGhpcy5uYW1lID0gcHJvcHMubmFtZTtcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gcHJvcHMuZGVzY3JpcHRpb247XG4gICAgdGhpcy5yZXRyaWV2YWxDb25maWcgPSBwcm9wcy5yZXRyaWV2YWwgPz8geyBudW1iZXJPZlJlc3VsdHM6IDUgfTtcbiAgICB0aGlzLmFjbENvbmZpZyA9IHByb3BzLmFjbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHByb3ZpZGVkIHByb3BzIGF0IGNvbnN0cnVjdGlvbiB0aW1lLlxuICAgKlxuICAgKiBFbnN1cmVzIHRoYXQgcmVxdWlyZWQgZmllbGRzIChuYW1lIGFuZCBkZXNjcmlwdGlvbikgYXJlIHByb3ZpZGVkXG4gICAqIGFuZCBub3QgZW1wdHkuIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIGFkZCBhZGRpdGlvbmFsXG4gICAqIHZhbGlkYXRpb24sIGJ1dCBzaG91bGQgY2FsbCBzdXBlci52YWxpZGF0ZVByb3BzKCkgZmlyc3QuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIFRoZSBwcm9wcyB0byB2YWxpZGF0ZVxuICAgKiBAdGhyb3dzIEVycm9yIGlmIG5hbWUgaXMgZW1wdHkgb3Igbm90IHByb3ZpZGVkXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgZGVzY3JpcHRpb24gaXMgZW1wdHkgb3Igbm90IHByb3ZpZGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgdmFsaWRhdGVQcm9wcyhwcm9wczogQmFzZUtub3dsZWRnZUJhc2VQcm9wcyk6IHZvaWQge1xuICAgIGlmICghcHJvcHMubmFtZSB8fCBwcm9wcy5uYW1lLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbmFtZSBpcyByZXF1aXJlZCBhbmQgY2Fubm90IGJlIGVtcHR5Jyk7XG4gICAgfVxuICAgIGlmICghcHJvcHMuZGVzY3JpcHRpb24gfHwgcHJvcHMuZGVzY3JpcHRpb24udHJpbSgpID09PSAnJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdkZXNjcmlwdGlvbiBpcyByZXF1aXJlZCBhbmQgY2Fubm90IGJlIGVtcHR5Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIElBTSBwb2xpY3kgc3RhdGVtZW50cyByZXF1aXJlZCBmb3IgYWNjZXNzaW5nIHRoaXMga25vd2xlZGdlIGJhc2UuXG4gICAqXG4gICAqIFRoaXMgYWJzdHJhY3QgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3NlcyB0byByZXR1cm4gdGhlXG4gICAqIHNwZWNpZmljIElBTSBwZXJtaXNzaW9ucyBuZWVkZWQgZm9yIHRoZWlyIGtub3dsZWRnZSBiYXNlIHR5cGUuXG4gICAqXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIElBTSBQb2xpY3lTdGF0ZW1lbnQgb2JqZWN0cyBncmFudGluZyBuZWNlc3NhcnkgcGVybWlzc2lvbnNcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZW5lcmF0ZUlhbVBlcm1pc3Npb25zKCk6IFBvbGljeVN0YXRlbWVudFtdO1xuXG4gIC8qKlxuICAgKiBFeHBvcnQgY29uZmlndXJhdGlvbiBmb3IgcnVudGltZSB1c2UgYnkgdGhlIHJldHJpZXZhbCB0b29sLlxuICAgKlxuICAgKiBSZXR1cm5zIGEgY29uZmlndXJhdGlvbiBvYmplY3QgY29udGFpbmluZyB0aGUgYmFzZSBrbm93bGVkZ2UgYmFzZVxuICAgKiBzZXR0aW5ncy4gU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gYWRkIGltcGxlbWVudGF0aW9uLVxuICAgKiBzcGVjaWZpYyBjb25maWd1cmF0aW9uLCBjYWxsaW5nIHN1cGVyLmV4cG9ydENvbmZpZ3VyYXRpb24oKSB0byBpbmNsdWRlXG4gICAqIHRoZSBiYXNlIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIFJ1bnRpbWUgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoZSByZXRyaWV2YWwgdG9vbFxuICAgKi9cbiAgcHVibGljIGV4cG9ydENvbmZpZ3VyYXRpb24oKTogS25vd2xlZGdlQmFzZVJ1bnRpbWVDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgIHJldHJpZXZhbDogdGhpcy5yZXRyaWV2YWxDb25maWcsXG4gICAgICBhY2w6IHRoaXMuYWNsQ29uZmlnLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZSB0aGUgcmV0cmlldmFsIHRvb2wgYXNzZXQgZm9yIHRoaXMga25vd2xlZGdlIGJhc2UgdHlwZS5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgcmV0dXJucyB1bmRlZmluZWQgdG8gdXNlIHRoZSBmcmFtZXdvcmsncyBkZWZhdWx0IHJldHJpZXZhbFxuICAgKiB0b29sLiBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBwcm92aWRlIGEgY3VzdG9tIHJldHJpZXZhbFxuICAgKiB0b29sIGltcGxlbWVudGF0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyB1bmRlZmluZWQgdG8gdXNlIHRoZSBkZWZhdWx0IHJldHJpZXZhbCB0b29sXG4gICAqL1xuICBwdWJsaWMgcmV0cmlldmFsVG9vbEFzc2V0KCk6IEFzc2V0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgTGFtYmRhIGxheWVycyByZXF1aXJlZCBieSB0aGUgcmV0cmlldmFsIHRvb2wuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHJldHVybnMgdW5kZWZpbmVkIGluZGljYXRpbmcgbm8gYWRkaXRpb25hbCBsYXllcnMgYXJlIG5lZWRlZC5cbiAgICogU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcHJvdmlkZSBMYW1iZGEgbGF5ZXJzIGNvbnRhaW5pbmdcbiAgICogZGVwZW5kZW5jaWVzIHJlcXVpcmVkIGJ5IHRoZWlyIHJldHJpZXZhbCB0b29sLlxuICAgKlxuICAgKiBAcmV0dXJucyB1bmRlZmluZWQgaW5kaWNhdGluZyBubyBhZGRpdGlvbmFsIGxheWVycyBuZWVkZWRcbiAgICovXG4gIHB1YmxpYyByZXRyaWV2YWxUb29sTGF5ZXJzKCk6IExheWVyVmVyc2lvbltdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -1,11 +1,43 @@
1
1
  "use strict";
2
- var _a;
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
3
35
  Object.defineProperty(exports, "__esModule", { value: true });
4
36
  exports.BedrockKnowledgeBase = void 0;
5
37
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
38
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
7
39
  // SPDX-License-Identifier: Apache-2.0
8
- const path = require("path");
40
+ const path = __importStar(require("path"));
9
41
  const aws_cdk_lib_1 = require("aws-cdk-lib");
10
42
  const aws_iam_1 = require("aws-cdk-lib/aws-iam");
11
43
  const aws_s3_assets_1 = require("aws-cdk-lib/aws-s3-assets");
@@ -24,6 +56,52 @@ const base_knowledge_base_1 = require("./base-knowledge-base");
24
56
  * - Runtime configuration export for the retrieval tool
25
57
  */
26
58
  class BedrockKnowledgeBase extends base_knowledge_base_1.BaseKnowledgeBase {
59
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.BedrockKnowledgeBase", version: "1.17.1" };
60
+ /**
61
+ * The unique identifier for the Bedrock Knowledge Base.
62
+ *
63
+ * This is the ID assigned by Bedrock when the knowledge base was created.
64
+ */
65
+ knowledgeBaseId;
66
+ /**
67
+ * The ARN of the Bedrock Knowledge Base.
68
+ *
69
+ * If not provided in props, this is constructed from the knowledgeBaseId
70
+ * using the current region and account.
71
+ */
72
+ knowledgeBaseArn;
73
+ /**
74
+ * Guardrail configuration for content filtering.
75
+ *
76
+ * When configured, the guardrail will be applied during retrieval
77
+ * operations to filter inappropriate or sensitive content.
78
+ */
79
+ guardrailConfig;
80
+ /**
81
+ * Vector store configuration.
82
+ *
83
+ * Defines the type of vector store used by this knowledge base.
84
+ * Defaults to S3 Vectors if not specified.
85
+ */
86
+ vectorStoreConfig;
87
+ /**
88
+ * Configuration for creating a new knowledge base.
89
+ *
90
+ * When provided, indicates that this construct should create a new
91
+ * Bedrock Knowledge Base rather than reference an existing one.
92
+ *
93
+ * Note: KB creation is an advanced feature. Currently, this property
94
+ * stores the configuration for future implementation.
95
+ */
96
+ createConfig;
97
+ /**
98
+ * The AWS region where the knowledge base is deployed.
99
+ */
100
+ region;
101
+ /**
102
+ * The AWS account ID where the knowledge base is deployed.
103
+ */
104
+ account;
27
105
  /**
28
106
  * Creates a new BedrockKnowledgeBase instance.
29
107
  *
@@ -187,6 +265,4 @@ class BedrockKnowledgeBase extends base_knowledge_base_1.BaseKnowledgeBase {
187
265
  }
188
266
  }
189
267
  exports.BedrockKnowledgeBase = BedrockKnowledgeBase;
190
- _a = JSII_RTTI_SYMBOL_1;
191
- BedrockKnowledgeBase[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.BedrockKnowledgeBase", version: "1.16.1" };
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVkcm9jay1rbm93bGVkZ2UtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3VzZS1jYXNlcy9mcmFtZXdvcmsvYWdlbnRzL2tub3dsZWRnZS1iYXNlL2JlZHJvY2sta25vd2xlZGdlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDO0FBRXRDLDZCQUE2QjtBQUM3Qiw2Q0FBb0M7QUFDcEMsaURBQThEO0FBQzlELDZEQUFrRDtBQUVsRCwrREFBMEQ7QUFTMUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBYSxvQkFBcUIsU0FBUSx1Q0FBaUI7SUFxRHpEOzs7Ozs7O09BT0c7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWdDO1FBQ3hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQyxNQUFNLEtBQUssR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRTdCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQztRQUM3QyxJQUFJLENBQUMsZ0JBQWdCO1lBQ25CLEtBQUssQ0FBQyxnQkFBZ0I7Z0JBQ3RCLG1CQUFtQixJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLG1CQUFtQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDM0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ3ZDLHlDQUF5QztRQUN6QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLFdBQVcs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QUksZ0JBQWdCLEdBQUc7aUJBQzlFO2FBQ0YsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNJLG1CQUFtQjtRQUN4QixPQUFPO1lBQ0wsR0FBRyxLQUFLLENBQUMsbUJBQW1CLEVBQUU7WUFDOUIsSUFBSSxFQUFFLFNBQVM7WUFDZixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDckMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtZQUNuQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWU7U0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLHFCQUFLLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFO1lBQzdDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxrQ0FBa0MsQ0FBQztZQUM5RCxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBeE9ILG9EQXlPQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEFzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEJhc2VLbm93bGVkZ2VCYXNlIH0gZnJvbSAnLi9iYXNlLWtub3dsZWRnZS1iYXNlJztcbmltcG9ydCB7XG4gIEJlZHJvY2tLbm93bGVkZ2VCYXNlUHJvcHMsXG4gIENyZWF0ZUtub3dsZWRnZUJhc2VDb25maWd1cmF0aW9uLFxuICBHdWFyZHJhaWxDb25maWd1cmF0aW9uLFxuICBLbm93bGVkZ2VCYXNlUnVudGltZUNvbmZpZyxcbiAgVmVjdG9yU3RvcmVDb25maWd1cmF0aW9uLFxufSBmcm9tICcuL2tub3dsZWRnZS1iYXNlLXByb3BzJztcblxuLyoqXG4gKiBBbWF6b24gQmVkcm9jayBLbm93bGVkZ2UgQmFzZSBpbXBsZW1lbnRhdGlvbi5cbiAqXG4gKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGludGVncmF0aW9uIHdpdGggQW1hem9uIEJlZHJvY2sgS25vd2xlZGdlIEJhc2VzLFxuICogd2hpY2ggdXNlIHZlY3RvciBzdG9yZXMgKFMzIFZlY3RvcnMgYnkgZGVmYXVsdCkgZm9yIHNlbWFudGljIHNlYXJjaC5cbiAqIEl0IGlzIHRoZSBkZWZhdWx0IGtub3dsZWRnZSBiYXNlIGltcGxlbWVudGF0aW9uIHdoZW4gbm9uZSBpcyBzcGVjaWZpZWQuXG4gKlxuICogVGhlIGltcGxlbWVudGF0aW9uIGhhbmRsZXM6XG4gKiAtIEFSTiBjb25zdHJ1Y3Rpb24gZnJvbSBrbm93bGVkZ2UgYmFzZSBJRCAoaWYgQVJOIG5vdCBwcm92aWRlZClcbiAqIC0gSUFNIHBlcm1pc3Npb24gZ2VuZXJhdGlvbiBmb3IgQmVkcm9jayBSZXRyaWV2ZSBhbmQgUmV0cmlldmVBbmRHZW5lcmF0ZSBBUElzXG4gKiAtIE9wdGlvbmFsIGd1YXJkcmFpbCBjb25maWd1cmF0aW9uIGZvciBjb250ZW50IGZpbHRlcmluZ1xuICogLSBSdW50aW1lIGNvbmZpZ3VyYXRpb24gZXhwb3J0IGZvciB0aGUgcmV0cmlldmFsIHRvb2xcbiAqL1xuZXhwb3J0IGNsYXNzIEJlZHJvY2tLbm93bGVkZ2VCYXNlIGV4dGVuZHMgQmFzZUtub3dsZWRnZUJhc2Uge1xuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgQmVkcm9jayBLbm93bGVkZ2UgQmFzZS5cbiAgICpcbiAgICogVGhpcyBpcyB0aGUgSUQgYXNzaWduZWQgYnkgQmVkcm9jayB3aGVuIHRoZSBrbm93bGVkZ2UgYmFzZSB3YXMgY3JlYXRlZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBrbm93bGVkZ2VCYXNlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgQmVkcm9jayBLbm93bGVkZ2UgQmFzZS5cbiAgICpcbiAgICogSWYgbm90IHByb3ZpZGVkIGluIHByb3BzLCB0aGlzIGlzIGNvbnN0cnVjdGVkIGZyb20gdGhlIGtub3dsZWRnZUJhc2VJZFxuICAgKiB1c2luZyB0aGUgY3VycmVudCByZWdpb24gYW5kIGFjY291bnQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkga25vd2xlZGdlQmFzZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHdWFyZHJhaWwgY29uZmlndXJhdGlvbiBmb3IgY29udGVudCBmaWx0ZXJpbmcuXG4gICAqXG4gICAqIFdoZW4gY29uZmlndXJlZCwgdGhlIGd1YXJkcmFpbCB3aWxsIGJlIGFwcGxpZWQgZHVyaW5nIHJldHJpZXZhbFxuICAgKiBvcGVyYXRpb25zIHRvIGZpbHRlciBpbmFwcHJvcHJpYXRlIG9yIHNlbnNpdGl2ZSBjb250ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBndWFyZHJhaWxDb25maWc/OiBHdWFyZHJhaWxDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBWZWN0b3Igc3RvcmUgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogRGVmaW5lcyB0aGUgdHlwZSBvZiB2ZWN0b3Igc3RvcmUgdXNlZCBieSB0aGlzIGtub3dsZWRnZSBiYXNlLlxuICAgKiBEZWZhdWx0cyB0byBTMyBWZWN0b3JzIGlmIG5vdCBzcGVjaWZpZWQuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHZlY3RvclN0b3JlQ29uZmlnOiBWZWN0b3JTdG9yZUNvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIGNyZWF0aW5nIGEgbmV3IGtub3dsZWRnZSBiYXNlLlxuICAgKlxuICAgKiBXaGVuIHByb3ZpZGVkLCBpbmRpY2F0ZXMgdGhhdCB0aGlzIGNvbnN0cnVjdCBzaG91bGQgY3JlYXRlIGEgbmV3XG4gICAqIEJlZHJvY2sgS25vd2xlZGdlIEJhc2UgcmF0aGVyIHRoYW4gcmVmZXJlbmNlIGFuIGV4aXN0aW5nIG9uZS5cbiAgICpcbiAgICogTm90ZTogS0IgY3JlYXRpb24gaXMgYW4gYWR2YW5jZWQgZmVhdHVyZS4gQ3VycmVudGx5LCB0aGlzIHByb3BlcnR5XG4gICAqIHN0b3JlcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgZnV0dXJlIGltcGxlbWVudGF0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBjcmVhdGVDb25maWc/OiBDcmVhdGVLbm93bGVkZ2VCYXNlQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIEFXUyByZWdpb24gd2hlcmUgdGhlIGtub3dsZWRnZSBiYXNlIGlzIGRlcGxveWVkLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFXUyBhY2NvdW50IElEIHdoZXJlIHRoZSBrbm93bGVkZ2UgYmFzZSBpcyBkZXBsb3llZC5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEJlZHJvY2tLbm93bGVkZ2VCYXNlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCAtIFRoZSBzY29wZWQgY29uc3RydWN0IElEXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIEJlZHJvY2sgS25vd2xlZGdlIEJhc2VcbiAgICogQHRocm93cyBFcnJvciBpZiBrbm93bGVkZ2VCYXNlSWQgaXMgZW1wdHkgb3Igbm90IHByb3ZpZGVkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQmVkcm9ja0tub3dsZWRnZUJhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy52YWxpZGF0ZUJlZHJvY2tQcm9wcyhwcm9wcyk7XG5cbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHRoaXMpO1xuICAgIHRoaXMucmVnaW9uID0gc3RhY2sucmVnaW9uO1xuICAgIHRoaXMuYWNjb3VudCA9IHN0YWNrLmFjY291bnQ7XG5cbiAgICB0aGlzLmtub3dsZWRnZUJhc2VJZCA9IHByb3BzLmtub3dsZWRnZUJhc2VJZDtcbiAgICB0aGlzLmtub3dsZWRnZUJhc2VBcm4gPVxuICAgICAgcHJvcHMua25vd2xlZGdlQmFzZUFybiA/P1xuICAgICAgYGFybjphd3M6YmVkcm9jazoke3RoaXMucmVnaW9ufToke3RoaXMuYWNjb3VudH06a25vd2xlZGdlLWJhc2UvJHtwcm9wcy5rbm93bGVkZ2VCYXNlSWR9YDtcbiAgICB0aGlzLmd1YXJkcmFpbENvbmZpZyA9IHByb3BzLmd1YXJkcmFpbDtcbiAgICAvLyBEZWZhdWx0IHRvIFMzIFZlY3RvcnMgaWYgbm90IHNwZWNpZmllZFxuICAgIHRoaXMudmVjdG9yU3RvcmVDb25maWcgPSBwcm9wcy52ZWN0b3JTdG9yZSA/PyB7IHR5cGU6ICdzMy12ZWN0b3JzJyB9O1xuICAgIHRoaXMuY3JlYXRlQ29uZmlnID0gcHJvcHMuY3JlYXRlO1xuXG4gICAgLy8gTm90ZTogS0IgY3JlYXRpb24gaXMgaGFuZGxlZCBzZXBhcmF0ZWx5IHdoZW4gY3JlYXRlIGNvbmZpZyBpcyBwcm92aWRlZFxuICAgIC8vIFRoaXMgaXMgYW4gYWR2YW5jZWQgZmVhdHVyZSB0aGF0IHdpbGwgY3JlYXRlIGFjdHVhbCBBV1MgcmVzb3VyY2VzXG4gICAgaWYgKHRoaXMuY3JlYXRlQ29uZmlnKSB7XG4gICAgICB0aGlzLnNldHVwS25vd2xlZGdlQmFzZUNyZWF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAga25vd2xlZGdlIGJhc2UgY3JlYXRpb24gd2hlbiBjcmVhdGUgY29uZmlndXJhdGlvbiBpcyBwcm92aWRlZC5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGR1cmluZyBjb25zdHJ1Y3Rpb24gd2hlbiB0aGUgYGNyZWF0ZWAgcHJvcGVydHlcbiAgICogaXMgc3BlY2lmaWVkLiBJdCBwcmVwYXJlcyB0aGUgbmVjZXNzYXJ5IHJlc291cmNlcyBmb3IgY3JlYXRpbmcgYSBuZXdcbiAgICogQmVkcm9jayBLbm93bGVkZ2UgQmFzZS5cbiAgICpcbiAgICogTm90ZTogRnVsbCBLQiBjcmVhdGlvbiBpbXBsZW1lbnRhdGlvbiByZXF1aXJlcyBDbG91ZEZvcm1hdGlvbiBjdXN0b21cbiAgICogcmVzb3VyY2VzIG9yIEwxIGNvbnN0cnVjdHMuIFRoaXMgaXMgYSBwbGFjZWhvbGRlciBmb3IgZnV0dXJlIGltcGxlbWVudGF0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cEtub3dsZWRnZUJhc2VDcmVhdGlvbigpOiB2b2lkIHtcbiAgICAvLyBLQiBjcmVhdGlvbiBpcyBhbiBhZHZhbmNlZCBmZWF0dXJlXG4gICAgLy8gVGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiB3b3VsZCBpbnZvbHZlOlxuICAgIC8vIDEuIENyZWF0aW5nIGFuIElBTSByb2xlIGZvciBCZWRyb2NrIEtCXG4gICAgLy8gMi4gQ3JlYXRpbmcgdGhlIEJlZHJvY2sgS0IgdmlhIENmbktub3dsZWRnZUJhc2VcbiAgICAvLyAzLiBDcmVhdGluZyBhIGRhdGEgc291cmNlIHBvaW50aW5nIHRvIHRoZSBTMyBidWNrZXRcbiAgICAvLyA0LiBDb25maWd1cmluZyB0aGUgZW1iZWRkaW5nIG1vZGVsXG4gICAgLy8gNS4gU2V0dGluZyB1cCB0aGUgdmVjdG9yIHN0b3JlIChTMyBWZWN0b3JzIGJ5IGRlZmF1bHQpXG4gICAgLy9cbiAgICAvLyBGb3Igbm93LCB0aGlzIHN0b3JlcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgcmVmZXJlbmNlLlxuICAgIC8vIFVzZXJzIHNob3VsZCBjcmVhdGUgS0JzIHZpYSB0aGUgQmVkcm9jayBjb25zb2xlIG9yIENMSVxuICAgIC8vIGFuZCByZWZlcmVuY2UgdGhlbSBieSBJRC5cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgQmVkcm9jay1zcGVjaWZpYyBwcm9wcyBhdCBjb25zdHJ1Y3Rpb24gdGltZS5cbiAgICpcbiAgICogRW5zdXJlcyB0aGF0IHRoZSBrbm93bGVkZ2VCYXNlSWQgaXMgcHJvdmlkZWQgYW5kIG5vdCBlbXB0eS5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIC0gVGhlIHByb3BzIHRvIHZhbGlkYXRlXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYga25vd2xlZGdlQmFzZUlkIGlzIGVtcHR5IG9yIG5vdCBwcm92aWRlZFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZUJlZHJvY2tQcm9wcyhwcm9wczogQmVkcm9ja0tub3dsZWRnZUJhc2VQcm9wcyk6IHZvaWQge1xuICAgIGlmICghcHJvcHMua25vd2xlZGdlQmFzZUlkIHx8IHByb3BzLmtub3dsZWRnZUJhc2VJZC50cmltKCkgPT09ICcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2tub3dsZWRnZUJhc2VJZCBpcyByZXF1aXJlZCBhbmQgY2Fubm90IGJlIGVtcHR5Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIElBTSBwb2xpY3kgc3RhdGVtZW50cyByZXF1aXJlZCBmb3IgYWNjZXNzaW5nIHRoaXMgQmVkcm9jayBLbm93bGVkZ2UgQmFzZS5cbiAgICpcbiAgICogUmV0dXJucyBwZXJtaXNzaW9ucyBmb3I6XG4gICAqIC0gYmVkcm9jazpSZXRyaWV2ZSAtIFF1ZXJ5IHRoZSBrbm93bGVkZ2UgYmFzZVxuICAgKiAtIGJlZHJvY2s6UmV0cmlldmVBbmRHZW5lcmF0ZSAtIFF1ZXJ5IGFuZCBnZW5lcmF0ZSByZXNwb25zZXNcbiAgICogLSBiZWRyb2NrOkFwcGx5R3VhcmRyYWlsIC0gQXBwbHkgZ3VhcmRyYWlsIChpZiBjb25maWd1cmVkKVxuICAgKiAtIHMzOkdldE9iamVjdCAtIEFjY2VzcyBTMyB2ZWN0b3JzIChpZiB1c2luZyBTMyBWZWN0b3JzIHdpdGggY3VzdG9tIGJ1Y2tldClcbiAgICogLSBzMzpHZXRPYmplY3QgLSBBY2Nlc3MgZGF0YSBzb3VyY2UgYnVja2V0IChpZiBjcmVhdGUgY29uZmlnIHByb3ZpZGVkKVxuICAgKlxuICAgKiBBbGwgcGVybWlzc2lvbnMgYXJlIHNjb3BlZCB0byB0aGUgc3BlY2lmaWMga25vd2xlZGdlIGJhc2UgQVJOXG4gICAqIGZvbGxvd2luZyB0aGUgcHJpbmNpcGxlIG9mIGxlYXN0IHByaXZpbGVnZS5cbiAgICpcbiAgICogQHJldHVybnMgQXJyYXkgb2YgSUFNIFBvbGljeVN0YXRlbWVudCBvYmplY3RzIGdyYW50aW5nIG5lY2Vzc2FyeSBwZXJtaXNzaW9uc1xuICAgKi9cbiAgcHVibGljIGdlbmVyYXRlSWFtUGVybWlzc2lvbnMoKTogUG9saWN5U3RhdGVtZW50W10ge1xuICAgIGNvbnN0IHN0YXRlbWVudHM6IFBvbGljeVN0YXRlbWVudFtdID0gW1xuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ2JlZHJvY2s6UmV0cmlldmUnLCAnYmVkcm9jazpSZXRyaWV2ZUFuZEdlbmVyYXRlJ10sXG4gICAgICAgIHJlc291cmNlczogW3RoaXMua25vd2xlZGdlQmFzZUFybl0sXG4gICAgICB9KSxcbiAgICBdO1xuXG4gICAgLy8gQWRkIGd1YXJkcmFpbCBwZXJtaXNzaW9ucyBpZiBjb25maWd1cmVkXG4gICAgaWYgKHRoaXMuZ3VhcmRyYWlsQ29uZmlnKSB7XG4gICAgICBzdGF0ZW1lbnRzLnB1c2goXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFsnYmVkcm9jazpBcHBseUd1YXJkcmFpbCddLFxuICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgYGFybjphd3M6YmVkcm9jazoke3RoaXMucmVnaW9ufToke3RoaXMuYWNjb3VudH06Z3VhcmRyYWlsLyR7dGhpcy5ndWFyZHJhaWxDb25maWcuZ3VhcmRyYWlsSWR9YCxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQWRkIFMzIHBlcm1pc3Npb25zIGlmIHVzaW5nIFMzIFZlY3RvcnMgd2l0aCBhIGN1c3RvbSBidWNrZXRcbiAgICBpZiAodGhpcy52ZWN0b3JTdG9yZUNvbmZpZy50eXBlID09PSAnczMtdmVjdG9ycycgJiYgdGhpcy52ZWN0b3JTdG9yZUNvbmZpZy5idWNrZXROYW1lKSB7XG4gICAgICBjb25zdCBwcmVmaXggPSB0aGlzLnZlY3RvclN0b3JlQ29uZmlnLnByZWZpeCA/PyAndmVjdG9ycy8nO1xuICAgICAgc3RhdGVtZW50cy5wdXNoKFxuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICBhY3Rpb25zOiBbJ3MzOkdldE9iamVjdCddLFxuICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgYGFybjphd3M6czM6Ojoke3RoaXMudmVjdG9yU3RvcmVDb25maWcuYnVja2V0TmFtZX0vJHtwcmVmaXh9KmAsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEFkZCBkYXRhIHNvdXJjZSBidWNrZXQgcGVybWlzc2lvbnMgaWYgY3JlYXRlIGNvbmZpZyBpcyBwcm92aWRlZFxuICAgIGlmICh0aGlzLmNyZWF0ZUNvbmZpZykge1xuICAgICAgY29uc3QgZGF0YVNvdXJjZVByZWZpeCA9IHRoaXMuY3JlYXRlQ29uZmlnLmRhdGFTb3VyY2VQcmVmaXggPz8gJyc7XG4gICAgICBzdGF0ZW1lbnRzLnB1c2goXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFsnczM6R2V0T2JqZWN0JywgJ3MzOkxpc3RCdWNrZXQnXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICAgIGBhcm46YXdzOnMzOjo6JHt0aGlzLmNyZWF0ZUNvbmZpZy5kYXRhU291cmNlQnVja2V0TmFtZX1gLFxuICAgICAgICAgICAgYGFybjphd3M6czM6Ojoke3RoaXMuY3JlYXRlQ29uZmlnLmRhdGFTb3VyY2VCdWNrZXROYW1lfS8ke2RhdGFTb3VyY2VQcmVmaXh9KmAsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnRzO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9ydCBjb25maWd1cmF0aW9uIGZvciBydW50aW1lIHVzZSBieSB0aGUgcmV0cmlldmFsIHRvb2wuXG4gICAqXG4gICAqIFJldHVybnMgYSBjb25maWd1cmF0aW9uIG9iamVjdCBjb250YWluaW5nIGFsbCBCZWRyb2NrLXNwZWNpZmljXG4gICAqIHNldHRpbmdzIG5lZWRlZCB0byBxdWVyeSB0aGUga25vd2xlZGdlIGJhc2UgYXQgcnVudGltZSwgaW5jbHVkaW5nOlxuICAgKiAtIEJhc2UgY29uZmlndXJhdGlvbiAobmFtZSwgZGVzY3JpcHRpb24sIHJldHJpZXZhbCwgYWNsKVxuICAgKiAtIEtub3dsZWRnZSBiYXNlIHR5cGUgKCdiZWRyb2NrJylcbiAgICogLSBLbm93bGVkZ2UgYmFzZSBJRCBhbmQgQVJOXG4gICAqIC0gVmVjdG9yIHN0b3JlIGNvbmZpZ3VyYXRpb25cbiAgICogLSBHdWFyZHJhaWwgY29uZmlndXJhdGlvbiAoaWYgcHJlc2VudClcbiAgICpcbiAgICogQHJldHVybnMgUnVudGltZSBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhlIHJldHJpZXZhbCB0b29sXG4gICAqL1xuICBwdWJsaWMgZXhwb3J0Q29uZmlndXJhdGlvbigpOiBLbm93bGVkZ2VCYXNlUnVudGltZUNvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLmV4cG9ydENvbmZpZ3VyYXRpb24oKSxcbiAgICAgIHR5cGU6ICdiZWRyb2NrJyxcbiAgICAgIGtub3dsZWRnZUJhc2VJZDogdGhpcy5rbm93bGVkZ2VCYXNlSWQsXG4gICAgICBrbm93bGVkZ2VCYXNlQXJuOiB0aGlzLmtub3dsZWRnZUJhc2VBcm4sXG4gICAgICB2ZWN0b3JTdG9yZTogdGhpcy52ZWN0b3JTdG9yZUNvbmZpZyxcbiAgICAgIGd1YXJkcmFpbDogdGhpcy5ndWFyZHJhaWxDb25maWcsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlIHRoZSBCZWRyb2NrLXNwZWNpZmljIHJldHJpZXZhbCB0b29sIGFzc2V0LlxuICAgKlxuICAgKiBSZXR1cm5zIGFuIEFzc2V0IGNvbnRhaW5pbmcgdGhlIFB5dGhvbiByZXRyaWV2YWwgdG9vbCB0aGF0IHVzZXNcbiAgICogdGhlIEFtYXpvbiBCZWRyb2NrIEFnZW50IFJ1bnRpbWUgQVBJIHRvIHF1ZXJ5IGtub3dsZWRnZSBiYXNlcy5cbiAgICogVGhpcyB0b29sIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gYWdlbnRzIHRoYXQgdXNlIEJlZHJvY2tcbiAgICoga25vd2xlZGdlIGJhc2VzLlxuICAgKlxuICAgKiBAcmV0dXJucyBBc3NldCBjb250YWluaW5nIHRoZSBCZWRyb2NrIHJldHJpZXZhbCB0b29sXG4gICAqL1xuICBwdWJsaWMgcmV0cmlldmFsVG9vbEFzc2V0KCk6IEFzc2V0IHtcbiAgICByZXR1cm4gbmV3IEFzc2V0KHRoaXMsICdCZWRyb2NrUmV0cmlldmFsVG9vbCcsIHtcbiAgICAgIHBhdGg6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9yZXNvdXJjZXMva25vd2xlZGdlLWJhc2UtdG9vbCcpLFxuICAgICAgZXhjbHVkZTogWyd0ZXN0XyonLCAnKl90ZXN0LnB5J10sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVkcm9jay1rbm93bGVkZ2UtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3VzZS1jYXNlcy9mcmFtZXdvcmsvYWdlbnRzL2tub3dsZWRnZS1iYXNlL2JlZHJvY2sta25vd2xlZGdlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFFdEMsMkNBQTZCO0FBQzdCLDZDQUFvQztBQUNwQyxpREFBOEQ7QUFDOUQsNkRBQWtEO0FBRWxELCtEQUEwRDtBQVMxRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLHVDQUFpQjs7SUFDekQ7Ozs7T0FJRztJQUNhLGVBQWUsQ0FBUztJQUV4Qzs7Ozs7T0FLRztJQUNhLGdCQUFnQixDQUFTO0lBRXpDOzs7OztPQUtHO0lBQ2MsZUFBZSxDQUEwQjtJQUUxRDs7Ozs7T0FLRztJQUNjLGlCQUFpQixDQUEyQjtJQUU3RDs7Ozs7Ozs7T0FRRztJQUNjLFlBQVksQ0FBb0M7SUFFakU7O09BRUc7SUFDYyxNQUFNLENBQVM7SUFFaEM7O09BRUc7SUFDYyxPQUFPLENBQVM7SUFFakM7Ozs7Ozs7T0FPRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBZ0M7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpDLE1BQU0sS0FBSyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFFN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFL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LGdCQUFnQixJQUFJLEVBQUUsQ0FBQztZQUNsRSxVQUFVLENBQUMsSUFBSSxDQUNiLElBQUkseUJBQWUsQ0FBQztnQkFDbEIsTUFBTSxFQUFFLGdCQUFNLENBQUMsS0FBSztnQkFDcEIsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLGVBQWUsQ0FBQztnQkFDMUMsU0FBUyxFQUFFO29CQUNULGdCQUFnQixJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixFQUFFO29CQUN4RCxnQkFBZ0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsSUFBSSxnQkFBZ0IsR0FBRztpQkFDOUU7YUFDRixDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU87WUFDTCxHQUFHLEtBQUssQ0FBQyxtQkFBbUIsRUFBRTtZQUM5QixJQUFJLEVBQUUsU0FBUztZQUNmLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3ZDLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQ25DLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZTtTQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLGtCQUFrQjtRQUN2QixPQUFPLElBQUkscUJBQUssQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7WUFDN0MsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGtDQUFrQyxDQUFDO1lBQzlELE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF4T0gsb0RBeU9DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBFZmZlY3QsIFBvbGljeVN0YXRlbWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQXNzZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtYXNzZXRzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQmFzZUtub3dsZWRnZUJhc2UgfSBmcm9tICcuL2Jhc2Uta25vd2xlZGdlLWJhc2UnO1xuaW1wb3J0IHtcbiAgQmVkcm9ja0tub3dsZWRnZUJhc2VQcm9wcyxcbiAgQ3JlYXRlS25vd2xlZGdlQmFzZUNvbmZpZ3VyYXRpb24sXG4gIEd1YXJkcmFpbENvbmZpZ3VyYXRpb24sXG4gIEtub3dsZWRnZUJhc2VSdW50aW1lQ29uZmlnLFxuICBWZWN0b3JTdG9yZUNvbmZpZ3VyYXRpb24sXG59IGZyb20gJy4va25vd2xlZGdlLWJhc2UtcHJvcHMnO1xuXG4vKipcbiAqIEFtYXpvbiBCZWRyb2NrIEtub3dsZWRnZSBCYXNlIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgaW50ZWdyYXRpb24gd2l0aCBBbWF6b24gQmVkcm9jayBLbm93bGVkZ2UgQmFzZXMsXG4gKiB3aGljaCB1c2UgdmVjdG9yIHN0b3JlcyAoUzMgVmVjdG9ycyBieSBkZWZhdWx0KSBmb3Igc2VtYW50aWMgc2VhcmNoLlxuICogSXQgaXMgdGhlIGRlZmF1bHQga25vd2xlZGdlIGJhc2UgaW1wbGVtZW50YXRpb24gd2hlbiBub25lIGlzIHNwZWNpZmllZC5cbiAqXG4gKiBUaGUgaW1wbGVtZW50YXRpb24gaGFuZGxlczpcbiAqIC0gQVJOIGNvbnN0cnVjdGlvbiBmcm9tIGtub3dsZWRnZSBiYXNlIElEIChpZiBBUk4gbm90IHByb3ZpZGVkKVxuICogLSBJQU0gcGVybWlzc2lvbiBnZW5lcmF0aW9uIGZvciBCZWRyb2NrIFJldHJpZXZlIGFuZCBSZXRyaWV2ZUFuZEdlbmVyYXRlIEFQSXNcbiAqIC0gT3B0aW9uYWwgZ3VhcmRyYWlsIGNvbmZpZ3VyYXRpb24gZm9yIGNvbnRlbnQgZmlsdGVyaW5nXG4gKiAtIFJ1bnRpbWUgY29uZmlndXJhdGlvbiBleHBvcnQgZm9yIHRoZSByZXRyaWV2YWwgdG9vbFxuICovXG5leHBvcnQgY2xhc3MgQmVkcm9ja0tub3dsZWRnZUJhc2UgZXh0ZW5kcyBCYXNlS25vd2xlZGdlQmFzZSB7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBCZWRyb2NrIEtub3dsZWRnZSBCYXNlLlxuICAgKlxuICAgKiBUaGlzIGlzIHRoZSBJRCBhc3NpZ25lZCBieSBCZWRyb2NrIHdoZW4gdGhlIGtub3dsZWRnZSBiYXNlIHdhcyBjcmVhdGVkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGtub3dsZWRnZUJhc2VJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBCZWRyb2NrIEtub3dsZWRnZSBCYXNlLlxuICAgKlxuICAgKiBJZiBub3QgcHJvdmlkZWQgaW4gcHJvcHMsIHRoaXMgaXMgY29uc3RydWN0ZWQgZnJvbSB0aGUga25vd2xlZGdlQmFzZUlkXG4gICAqIHVzaW5nIHRoZSBjdXJyZW50IHJlZ2lvbiBhbmQgYWNjb3VudC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBrbm93bGVkZ2VCYXNlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEd1YXJkcmFpbCBjb25maWd1cmF0aW9uIGZvciBjb250ZW50IGZpbHRlcmluZy5cbiAgICpcbiAgICogV2hlbiBjb25maWd1cmVkLCB0aGUgZ3VhcmRyYWlsIHdpbGwgYmUgYXBwbGllZCBkdXJpbmcgcmV0cmlldmFsXG4gICAqIG9wZXJhdGlvbnMgdG8gZmlsdGVyIGluYXBwcm9wcmlhdGUgb3Igc2Vuc2l0aXZlIGNvbnRlbnQuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGd1YXJkcmFpbENvbmZpZz86IEd1YXJkcmFpbENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFZlY3RvciBzdG9yZSBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBEZWZpbmVzIHRoZSB0eXBlIG9mIHZlY3RvciBzdG9yZSB1c2VkIGJ5IHRoaXMga25vd2xlZGdlIGJhc2UuXG4gICAqIERlZmF1bHRzIHRvIFMzIFZlY3RvcnMgaWYgbm90IHNwZWNpZmllZC5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdmVjdG9yU3RvcmVDb25maWc6IFZlY3RvclN0b3JlQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgY3JlYXRpbmcgYSBuZXcga25vd2xlZGdlIGJhc2UuXG4gICAqXG4gICAqIFdoZW4gcHJvdmlkZWQsIGluZGljYXRlcyB0aGF0IHRoaXMgY29uc3RydWN0IHNob3VsZCBjcmVhdGUgYSBuZXdcbiAgICogQmVkcm9jayBLbm93bGVkZ2UgQmFzZSByYXRoZXIgdGhhbiByZWZlcmVuY2UgYW4gZXhpc3Rpbmcgb25lLlxuICAgKlxuICAgKiBOb3RlOiBLQiBjcmVhdGlvbiBpcyBhbiBhZHZhbmNlZCBmZWF0dXJlLiBDdXJyZW50bHksIHRoaXMgcHJvcGVydHlcbiAgICogc3RvcmVzIHRoZSBjb25maWd1cmF0aW9uIGZvciBmdXR1cmUgaW1wbGVtZW50YXRpb24uXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGNyZWF0ZUNvbmZpZz86IENyZWF0ZUtub3dsZWRnZUJhc2VDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIHJlZ2lvbiB3aGVyZSB0aGUga25vd2xlZGdlIGJhc2UgaXMgZGVwbG95ZWQuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIGFjY291bnQgSUQgd2hlcmUgdGhlIGtub3dsZWRnZSBiYXNlIGlzIGRlcGxveWVkLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQmVkcm9ja0tub3dsZWRnZUJhc2UgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHNjb3BlZCBjb25zdHJ1Y3QgSURcbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgQmVkcm9jayBLbm93bGVkZ2UgQmFzZVxuICAgKiBAdGhyb3dzIEVycm9yIGlmIGtub3dsZWRnZUJhc2VJZCBpcyBlbXB0eSBvciBub3QgcHJvdmlkZWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBCZWRyb2NrS25vd2xlZGdlQmFzZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLnZhbGlkYXRlQmVkcm9ja1Byb3BzKHByb3BzKTtcblxuICAgIGNvbnN0IHN0YWNrID0gU3RhY2sub2YodGhpcyk7XG4gICAgdGhpcy5yZWdpb24gPSBzdGFjay5yZWdpb247XG4gICAgdGhpcy5hY2NvdW50ID0gc3RhY2suYWNjb3VudDtcblxuICAgIHRoaXMua25vd2xlZGdlQmFzZUlkID0gcHJvcHMua25vd2xlZGdlQmFzZUlkO1xuICAgIHRoaXMua25vd2xlZGdlQmFzZUFybiA9XG4gICAgICBwcm9wcy5rbm93bGVkZ2VCYXNlQXJuID8/XG4gICAgICBgYXJuOmF3czpiZWRyb2NrOiR7dGhpcy5yZWdpb259OiR7dGhpcy5hY2NvdW50fTprbm93bGVkZ2UtYmFzZS8ke3Byb3BzLmtub3dsZWRnZUJhc2VJZH1gO1xuICAgIHRoaXMuZ3VhcmRyYWlsQ29uZmlnID0gcHJvcHMuZ3VhcmRyYWlsO1xuICAgIC8vIERlZmF1bHQgdG8gUzMgVmVjdG9ycyBpZiBub3Qgc3BlY2lmaWVkXG4gICAgdGhpcy52ZWN0b3JTdG9yZUNvbmZpZyA9IHByb3BzLnZlY3RvclN0b3JlID8/IHsgdHlwZTogJ3MzLXZlY3RvcnMnIH07XG4gICAgdGhpcy5jcmVhdGVDb25maWcgPSBwcm9wcy5jcmVhdGU7XG5cbiAgICAvLyBOb3RlOiBLQiBjcmVhdGlvbiBpcyBoYW5kbGVkIHNlcGFyYXRlbHkgd2hlbiBjcmVhdGUgY29uZmlnIGlzIHByb3ZpZGVkXG4gICAgLy8gVGhpcyBpcyBhbiBhZHZhbmNlZCBmZWF0dXJlIHRoYXQgd2lsbCBjcmVhdGUgYWN0dWFsIEFXUyByZXNvdXJjZXNcbiAgICBpZiAodGhpcy5jcmVhdGVDb25maWcpIHtcbiAgICAgIHRoaXMuc2V0dXBLbm93bGVkZ2VCYXNlQ3JlYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB1cCBrbm93bGVkZ2UgYmFzZSBjcmVhdGlvbiB3aGVuIGNyZWF0ZSBjb25maWd1cmF0aW9uIGlzIHByb3ZpZGVkLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgZHVyaW5nIGNvbnN0cnVjdGlvbiB3aGVuIHRoZSBgY3JlYXRlYCBwcm9wZXJ0eVxuICAgKiBpcyBzcGVjaWZpZWQuIEl0IHByZXBhcmVzIHRoZSBuZWNlc3NhcnkgcmVzb3VyY2VzIGZvciBjcmVhdGluZyBhIG5ld1xuICAgKiBCZWRyb2NrIEtub3dsZWRnZSBCYXNlLlxuICAgKlxuICAgKiBOb3RlOiBGdWxsIEtCIGNyZWF0aW9uIGltcGxlbWVudGF0aW9uIHJlcXVpcmVzIENsb3VkRm9ybWF0aW9uIGN1c3RvbVxuICAgKiByZXNvdXJjZXMgb3IgTDEgY29uc3RydWN0cy4gVGhpcyBpcyBhIHBsYWNlaG9sZGVyIGZvciBmdXR1cmUgaW1wbGVtZW50YXRpb24uXG4gICAqL1xuICBwcml2YXRlIHNldHVwS25vd2xlZGdlQmFzZUNyZWF0aW9uKCk6IHZvaWQge1xuICAgIC8vIEtCIGNyZWF0aW9uIGlzIGFuIGFkdmFuY2VkIGZlYXR1cmVcbiAgICAvLyBUaGUgYWN0dWFsIGltcGxlbWVudGF0aW9uIHdvdWxkIGludm9sdmU6XG4gICAgLy8gMS4gQ3JlYXRpbmcgYW4gSUFNIHJvbGUgZm9yIEJlZHJvY2sgS0JcbiAgICAvLyAyLiBDcmVhdGluZyB0aGUgQmVkcm9jayBLQiB2aWEgQ2ZuS25vd2xlZGdlQmFzZVxuICAgIC8vIDMuIENyZWF0aW5nIGEgZGF0YSBzb3VyY2UgcG9pbnRpbmcgdG8gdGhlIFMzIGJ1Y2tldFxuICAgIC8vIDQuIENvbmZpZ3VyaW5nIHRoZSBlbWJlZGRpbmcgbW9kZWxcbiAgICAvLyA1LiBTZXR0aW5nIHVwIHRoZSB2ZWN0b3Igc3RvcmUgKFMzIFZlY3RvcnMgYnkgZGVmYXVsdClcbiAgICAvL1xuICAgIC8vIEZvciBub3csIHRoaXMgc3RvcmVzIHRoZSBjb25maWd1cmF0aW9uIGZvciByZWZlcmVuY2UuXG4gICAgLy8gVXNlcnMgc2hvdWxkIGNyZWF0ZSBLQnMgdmlhIHRoZSBCZWRyb2NrIGNvbnNvbGUgb3IgQ0xJXG4gICAgLy8gYW5kIHJlZmVyZW5jZSB0aGVtIGJ5IElELlxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBCZWRyb2NrLXNwZWNpZmljIHByb3BzIGF0IGNvbnN0cnVjdGlvbiB0aW1lLlxuICAgKlxuICAgKiBFbnN1cmVzIHRoYXQgdGhlIGtub3dsZWRnZUJhc2VJZCBpcyBwcm92aWRlZCBhbmQgbm90IGVtcHR5LlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgLSBUaGUgcHJvcHMgdG8gdmFsaWRhdGVcbiAgICogQHRocm93cyBFcnJvciBpZiBrbm93bGVkZ2VCYXNlSWQgaXMgZW1wdHkgb3Igbm90IHByb3ZpZGVkXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlQmVkcm9ja1Byb3BzKHByb3BzOiBCZWRyb2NrS25vd2xlZGdlQmFzZVByb3BzKTogdm9pZCB7XG4gICAgaWYgKCFwcm9wcy5rbm93bGVkZ2VCYXNlSWQgfHwgcHJvcHMua25vd2xlZGdlQmFzZUlkLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigna25vd2xlZGdlQmFzZUlkIGlzIHJlcXVpcmVkIGFuZCBjYW5ub3QgYmUgZW1wdHknKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgSUFNIHBvbGljeSBzdGF0ZW1lbnRzIHJlcXVpcmVkIGZvciBhY2Nlc3NpbmcgdGhpcyBCZWRyb2NrIEtub3dsZWRnZSBCYXNlLlxuICAgKlxuICAgKiBSZXR1cm5zIHBlcm1pc3Npb25zIGZvcjpcbiAgICogLSBiZWRyb2NrOlJldHJpZXZlIC0gUXVlcnkgdGhlIGtub3dsZWRnZSBiYXNlXG4gICAqIC0gYmVkcm9jazpSZXRyaWV2ZUFuZEdlbmVyYXRlIC0gUXVlcnkgYW5kIGdlbmVyYXRlIHJlc3BvbnNlc1xuICAgKiAtIGJlZHJvY2s6QXBwbHlHdWFyZHJhaWwgLSBBcHBseSBndWFyZHJhaWwgKGlmIGNvbmZpZ3VyZWQpXG4gICAqIC0gczM6R2V0T2JqZWN0IC0gQWNjZXNzIFMzIHZlY3RvcnMgKGlmIHVzaW5nIFMzIFZlY3RvcnMgd2l0aCBjdXN0b20gYnVja2V0KVxuICAgKiAtIHMzOkdldE9iamVjdCAtIEFjY2VzcyBkYXRhIHNvdXJjZSBidWNrZXQgKGlmIGNyZWF0ZSBjb25maWcgcHJvdmlkZWQpXG4gICAqXG4gICAqIEFsbCBwZXJtaXNzaW9ucyBhcmUgc2NvcGVkIHRvIHRoZSBzcGVjaWZpYyBrbm93bGVkZ2UgYmFzZSBBUk5cbiAgICogZm9sbG93aW5nIHRoZSBwcmluY2lwbGUgb2YgbGVhc3QgcHJpdmlsZWdlLlxuICAgKlxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBJQU0gUG9saWN5U3RhdGVtZW50IG9iamVjdHMgZ3JhbnRpbmcgbmVjZXNzYXJ5IHBlcm1pc3Npb25zXG4gICAqL1xuICBwdWJsaWMgZ2VuZXJhdGVJYW1QZXJtaXNzaW9ucygpOiBQb2xpY3lTdGF0ZW1lbnRbXSB7XG4gICAgY29uc3Qgc3RhdGVtZW50czogUG9saWN5U3RhdGVtZW50W10gPSBbXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnYmVkcm9jazpSZXRyaWV2ZScsICdiZWRyb2NrOlJldHJpZXZlQW5kR2VuZXJhdGUnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbdGhpcy5rbm93bGVkZ2VCYXNlQXJuXSxcbiAgICAgIH0pLFxuICAgIF07XG5cbiAgICAvLyBBZGQgZ3VhcmRyYWlsIHBlcm1pc3Npb25zIGlmIGNvbmZpZ3VyZWRcbiAgICBpZiAodGhpcy5ndWFyZHJhaWxDb25maWcpIHtcbiAgICAgIHN0YXRlbWVudHMucHVzaChcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgYWN0aW9uczogWydiZWRyb2NrOkFwcGx5R3VhcmRyYWlsJ10sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICBgYXJuOmF3czpiZWRyb2NrOiR7dGhpcy5yZWdpb259OiR7dGhpcy5hY2NvdW50fTpndWFyZHJhaWwvJHt0aGlzLmd1YXJkcmFpbENvbmZpZy5ndWFyZHJhaWxJZH1gLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgUzMgcGVybWlzc2lvbnMgaWYgdXNpbmcgUzMgVmVjdG9ycyB3aXRoIGEgY3VzdG9tIGJ1Y2tldFxuICAgIGlmICh0aGlzLnZlY3RvclN0b3JlQ29uZmlnLnR5cGUgPT09ICdzMy12ZWN0b3JzJyAmJiB0aGlzLnZlY3RvclN0b3JlQ29uZmlnLmJ1Y2tldE5hbWUpIHtcbiAgICAgIGNvbnN0IHByZWZpeCA9IHRoaXMudmVjdG9yU3RvcmVDb25maWcucHJlZml4ID8/ICd2ZWN0b3JzLyc7XG4gICAgICBzdGF0ZW1lbnRzLnB1c2goXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFsnczM6R2V0T2JqZWN0J10sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICBgYXJuOmF3czpzMzo6OiR7dGhpcy52ZWN0b3JTdG9yZUNvbmZpZy5idWNrZXROYW1lfS8ke3ByZWZpeH0qYCxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQWRkIGRhdGEgc291cmNlIGJ1Y2tldCBwZXJtaXNzaW9ucyBpZiBjcmVhdGUgY29uZmlnIGlzIHByb3ZpZGVkXG4gICAgaWYgKHRoaXMuY3JlYXRlQ29uZmlnKSB7XG4gICAgICBjb25zdCBkYXRhU291cmNlUHJlZml4ID0gdGhpcy5jcmVhdGVDb25maWcuZGF0YVNvdXJjZVByZWZpeCA/PyAnJztcbiAgICAgIHN0YXRlbWVudHMucHVzaChcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgYWN0aW9uczogWydzMzpHZXRPYmplY3QnLCAnczM6TGlzdEJ1Y2tldCddLFxuICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgYGFybjphd3M6czM6Ojoke3RoaXMuY3JlYXRlQ29uZmlnLmRhdGFTb3VyY2VCdWNrZXROYW1lfWAsXG4gICAgICAgICAgICBgYXJuOmF3czpzMzo6OiR7dGhpcy5jcmVhdGVDb25maWcuZGF0YVNvdXJjZUJ1Y2tldE5hbWV9LyR7ZGF0YVNvdXJjZVByZWZpeH0qYCxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudHM7XG4gIH1cblxuICAvKipcbiAgICogRXhwb3J0IGNvbmZpZ3VyYXRpb24gZm9yIHJ1bnRpbWUgdXNlIGJ5IHRoZSByZXRyaWV2YWwgdG9vbC5cbiAgICpcbiAgICogUmV0dXJucyBhIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGNvbnRhaW5pbmcgYWxsIEJlZHJvY2stc3BlY2lmaWNcbiAgICogc2V0dGluZ3MgbmVlZGVkIHRvIHF1ZXJ5IHRoZSBrbm93bGVkZ2UgYmFzZSBhdCBydW50aW1lLCBpbmNsdWRpbmc6XG4gICAqIC0gQmFzZSBjb25maWd1cmF0aW9uIChuYW1lLCBkZXNjcmlwdGlvbiwgcmV0cmlldmFsLCBhY2wpXG4gICAqIC0gS25vd2xlZGdlIGJhc2UgdHlwZSAoJ2JlZHJvY2snKVxuICAgKiAtIEtub3dsZWRnZSBiYXNlIElEIGFuZCBBUk5cbiAgICogLSBWZWN0b3Igc3RvcmUgY29uZmlndXJhdGlvblxuICAgKiAtIEd1YXJkcmFpbCBjb25maWd1cmF0aW9uIChpZiBwcmVzZW50KVxuICAgKlxuICAgKiBAcmV0dXJucyBSdW50aW1lIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGUgcmV0cmlldmFsIHRvb2xcbiAgICovXG4gIHB1YmxpYyBleHBvcnRDb25maWd1cmF0aW9uKCk6IEtub3dsZWRnZUJhc2VSdW50aW1lQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIuZXhwb3J0Q29uZmlndXJhdGlvbigpLFxuICAgICAgdHlwZTogJ2JlZHJvY2snLFxuICAgICAga25vd2xlZGdlQmFzZUlkOiB0aGlzLmtub3dsZWRnZUJhc2VJZCxcbiAgICAgIGtub3dsZWRnZUJhc2VBcm46IHRoaXMua25vd2xlZGdlQmFzZUFybixcbiAgICAgIHZlY3RvclN0b3JlOiB0aGlzLnZlY3RvclN0b3JlQ29uZmlnLFxuICAgICAgZ3VhcmRyYWlsOiB0aGlzLmd1YXJkcmFpbENvbmZpZyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgdGhlIEJlZHJvY2stc3BlY2lmaWMgcmV0cmlldmFsIHRvb2wgYXNzZXQuXG4gICAqXG4gICAqIFJldHVybnMgYW4gQXNzZXQgY29udGFpbmluZyB0aGUgUHl0aG9uIHJldHJpZXZhbCB0b29sIHRoYXQgdXNlc1xuICAgKiB0aGUgQW1hem9uIEJlZHJvY2sgQWdlbnQgUnVudGltZSBBUEkgdG8gcXVlcnkga25vd2xlZGdlIGJhc2VzLlxuICAgKiBUaGlzIHRvb2wgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byBhZ2VudHMgdGhhdCB1c2UgQmVkcm9ja1xuICAgKiBrbm93bGVkZ2UgYmFzZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIEFzc2V0IGNvbnRhaW5pbmcgdGhlIEJlZHJvY2sgcmV0cmlldmFsIHRvb2xcbiAgICovXG4gIHB1YmxpYyByZXRyaWV2YWxUb29sQXNzZXQoKTogQXNzZXQge1xuICAgIHJldHVybiBuZXcgQXNzZXQodGhpcywgJ0JlZHJvY2tSZXRyaWV2YWxUb29sJywge1xuICAgICAgcGF0aDogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL3Jlc291cmNlcy9rbm93bGVkZ2UtYmFzZS10b29sJyksXG4gICAgICBleGNsdWRlOiBbJ3Rlc3RfKicsICcqX3Rlc3QucHknXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,15 @@
1
+ import { Construct } from 'constructs';
2
+ import { BatchAgent, BatchAgentProps } from './batch-agent';
3
+ import { LocalStackEndpointOverrides } from '../localstack';
4
+ export interface LocalStackBatchAgentProps extends BatchAgentProps {
5
+ /**
6
+ * LocalStack endpoint routing configuration for Lambda runtime SDK calls.
7
+ *
8
+ * @default { enabled: true }
9
+ */
10
+ readonly localStack?: LocalStackEndpointOverrides;
11
+ }
12
+ export declare class LocalStackBatchAgent extends BatchAgent {
13
+ constructor(scope: Construct, id: string, props: LocalStackBatchAgentProps);
14
+ protected resolveAgentRuntimeEntry(): string;
15
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.LocalStackBatchAgent = void 0;
37
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
38
+ const path = __importStar(require("path"));
39
+ const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
40
+ const batch_agent_1 = require("./batch-agent");
41
+ const localstack_1 = require("../localstack");
42
+ class LocalStackBatchAgent extends batch_agent_1.BatchAgent {
43
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.LocalStackBatchAgent", version: "1.17.1" };
44
+ constructor(scope, id, props) {
45
+ super(scope, id, props);
46
+ const localStackEnv = localstack_1.LocalStackIntegrationUtils.toLambdaEnvironment({
47
+ enabled: true,
48
+ ...props.localStack,
49
+ });
50
+ for (const child of this.node.findAll()) {
51
+ if (!(child instanceof aws_lambda_1.Function)) {
52
+ continue;
53
+ }
54
+ for (const [key, value] of Object.entries(localStackEnv)) {
55
+ child.addEnvironment(key, value);
56
+ }
57
+ }
58
+ }
59
+ resolveAgentRuntimeEntry() {
60
+ return path.join(__dirname, 'resources/default-ollama-agent');
61
+ }
62
+ }
63
+ exports.LocalStackBatchAgent = LocalStackBatchAgent;
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxzdGFjay1iYXRjaC1hZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3VzZS1jYXNlcy9mcmFtZXdvcmsvYWdlbnRzL2xvY2Fsc3RhY2stYmF0Y2gtYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUE2QjtBQUM3Qix1REFBb0U7QUFFcEUsK0NBQTREO0FBQzVELDhDQUF3RjtBQVd4RixNQUFhLG9CQUFxQixTQUFRLHdCQUFVOztJQUNsRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWdDO1FBQ3hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLE1BQU0sYUFBYSxHQUFHLHVDQUEwQixDQUFDLG1CQUFtQixDQUFDO1lBQ25FLE9BQU8sRUFBRSxJQUFJO1lBQ2IsR0FBRyxLQUFLLENBQUMsVUFBVTtTQUNwQixDQUFDLENBQUM7UUFFSCxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsQ0FBQyxLQUFLLFlBQVkscUJBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLFNBQVM7WUFDWCxDQUFDO1lBQ0QsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztnQkFDekQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRVMsd0JBQXdCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQztJQUNoRSxDQUFDOztBQXJCSCxvREFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRnVuY3Rpb24gYXMgTGFtYmRhRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQmF0Y2hBZ2VudCwgQmF0Y2hBZ2VudFByb3BzIH0gZnJvbSAnLi9iYXRjaC1hZ2VudCc7XG5pbXBvcnQgeyBMb2NhbFN0YWNrRW5kcG9pbnRPdmVycmlkZXMsIExvY2FsU3RhY2tJbnRlZ3JhdGlvblV0aWxzIH0gZnJvbSAnLi4vbG9jYWxzdGFjayc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxTdGFja0JhdGNoQWdlbnRQcm9wcyBleHRlbmRzIEJhdGNoQWdlbnRQcm9wcyB7XG4gIC8qKlxuICAgKiBMb2NhbFN0YWNrIGVuZHBvaW50IHJvdXRpbmcgY29uZmlndXJhdGlvbiBmb3IgTGFtYmRhIHJ1bnRpbWUgU0RLIGNhbGxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB7IGVuYWJsZWQ6IHRydWUgfVxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYWxTdGFjaz86IExvY2FsU3RhY2tFbmRwb2ludE92ZXJyaWRlcztcbn1cblxuZXhwb3J0IGNsYXNzIExvY2FsU3RhY2tCYXRjaEFnZW50IGV4dGVuZHMgQmF0Y2hBZ2VudCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBMb2NhbFN0YWNrQmF0Y2hBZ2VudFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBjb25zdCBsb2NhbFN0YWNrRW52ID0gTG9jYWxTdGFja0ludGVncmF0aW9uVXRpbHMudG9MYW1iZGFFbnZpcm9ubWVudCh7XG4gICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgLi4ucHJvcHMubG9jYWxTdGFjayxcbiAgICB9KTtcblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5ub2RlLmZpbmRBbGwoKSkge1xuICAgICAgaWYgKCEoY2hpbGQgaW5zdGFuY2VvZiBMYW1iZGFGdW5jdGlvbikpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhsb2NhbFN0YWNrRW52KSkge1xuICAgICAgICBjaGlsZC5hZGRFbnZpcm9ubWVudChrZXksIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVzb2x2ZUFnZW50UnVudGltZUVudHJ5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBhdGguam9pbihfX2Rpcm5hbWUsICdyZXNvdXJjZXMvZGVmYXVsdC1vbGxhbWEtYWdlbnQnKTtcbiAgfVxufVxuIl19