@aws-cdk/aws-imagebuilder-alpha 2.237.1-alpha.0 → 2.238.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +163 -163
- package/.jsii.tabl.json.gz +0 -0
- package/lib/amazon-managed-component.d.ts +2 -2
- package/lib/amazon-managed-component.js +2 -2
- package/lib/amazon-managed-image.d.ts +3 -2
- package/lib/amazon-managed-image.js +2 -2
- package/lib/amazon-managed-workflow.d.ts +3 -2
- package/lib/amazon-managed-workflow.js +2 -2
- package/lib/base-image.d.ts +3 -3
- package/lib/base-image.js +4 -4
- package/lib/component.d.ts +4 -4
- package/lib/component.js +8 -8
- package/lib/container-recipe.d.ts +9 -9
- package/lib/container-recipe.js +5 -5
- package/lib/distribution-configuration.d.ts +5 -5
- package/lib/distribution-configuration.js +3 -3
- package/lib/image-pipeline.d.ts +7 -7
- package/lib/image-pipeline.js +2 -2
- package/lib/image-recipe.d.ts +5 -5
- package/lib/image-recipe.js +2 -2
- package/lib/image.d.ts +7 -7
- package/lib/image.js +2 -2
- package/lib/infrastructure-configuration.d.ts +4 -4
- package/lib/infrastructure-configuration.js +2 -2
- package/lib/lifecycle-policy.d.ts +2 -2
- package/lib/lifecycle-policy.js +2 -2
- package/lib/os-version.js +1 -1
- package/lib/private/image-and-pipeline-props-helper.d.ts +4 -4
- package/lib/private/image-and-pipeline-props-helper.js +1 -1
- package/lib/private/policy-helper.d.ts +5 -5
- package/lib/private/policy-helper.js +1 -1
- package/lib/recipe-base.d.ts +5 -5
- package/lib/recipe-base.js +2 -2
- package/lib/workflow.d.ts +3 -3
- package/lib/workflow.js +5 -5
- package/package.json +6 -6
package/lib/lifecycle-policy.js
CHANGED
|
@@ -135,7 +135,7 @@ let LifecyclePolicy = (() => {
|
|
|
135
135
|
LifecyclePolicy = _classThis = _classDescriptor.value;
|
|
136
136
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
137
137
|
}
|
|
138
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.LifecyclePolicy", version: "2.
|
|
138
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.LifecyclePolicy", version: "2.238.0-alpha.0" };
|
|
139
139
|
/** Uniquely identifies this class. */
|
|
140
140
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-imagebuilder-alpha.LifecyclePolicy';
|
|
141
141
|
/**
|
|
@@ -468,4 +468,4 @@ let LifecyclePolicy = (() => {
|
|
|
468
468
|
return LifecyclePolicy = _classThis;
|
|
469
469
|
})();
|
|
470
470
|
exports.LifecyclePolicy = LifecyclePolicy;
|
|
471
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLXBvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxpZmVjeWNsZS1wb2xpY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQyxtRUFBa0U7QUFDbEUsNEVBQXVFO0FBQ3ZFLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFJMUUsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7QUFvQzlGOztHQUVHO0FBQ0gsSUFBWSx5QkFhWDtBQWJELFdBQVkseUJBQXlCO0lBQ25DOztPQUVHO0lBQ0gsOENBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCxvREFBdUIsQ0FBQTtJQUN2Qjs7T0FFRztJQUNILGdEQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFiVyx5QkFBeUIseUNBQXpCLHlCQUF5QixRQWFwQztBQUVEOztHQUVHO0FBQ0gsSUFBWSxxQkFVWDtBQVZELFdBQVkscUJBQXFCO0lBQy9COztPQUVHO0lBQ0gsNENBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCw4Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBVlcscUJBQXFCLHFDQUFyQixxQkFBcUIsUUFVaEM7QUFFRDs7R0FFRztBQUNILElBQVksMkJBVVg7QUFWRCxXQUFZLDJCQUEyQjtJQUNyQzs7T0FFRztJQUNILHNEQUF1QixDQUFBO0lBRXZCOztPQUVHO0lBQ0gsa0VBQW1DLENBQUE7QUFDckMsQ0FBQyxFQVZXLDJCQUEyQiwyQ0FBM0IsMkJBQTJCLFFBVXRDO0FBeVBELE1BQWUsbUJBQW9CLFNBQVEsR0FBRyxDQUFDLFFBQVE7SUFJckQ7O09BRUc7SUFDSSxLQUFLLENBQUMsT0FBdUIsRUFBRSxHQUFHLE9BQWlCO1FBQ3hELE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDOUIsT0FBTztZQUNQ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QUFFLElBQUksQ0FBQyxDQUFDO1lBQ25GLENBQUM7U0FDRjs7WUE1WlUsdURBQWU7Ozs7O0FBQWYsMENBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ2ZuTGlmZWN5Y2xlUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWltYWdlYnVpbGRlcic7XG5pbXBvcnQgeyBtZW1vaXplZEdldHRlciB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJUmVjaXBlQmFzZSB9IGZyb20gJy4vcmVjaXBlLWJhc2UnO1xuXG5jb25zdCBMSUZFQ1lDTEVfUE9MSUNZX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL2F3cy1pbWFnZWJ1aWxkZXItYWxwaGEuTGlmZWN5Y2xlUG9saWN5Jyk7XG5cbi8qKlxuICogQW4gRUMyIEltYWdlIEJ1aWxkZXIgTGlmZWN5Y2xlIFBvbGljeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTGlmZWN5Y2xlUG9saWN5IGV4dGVuZHMgY2RrLklSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBsaWZlY3ljbGUgcG9saWN5XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGxpZmVjeWNsZVBvbGljeUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgbGlmZWN5Y2xlIHBvbGljeVxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBsaWZlY3ljbGVQb2xpY3lOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdyYW50IGN1c3RvbSBhY3Rpb25zIHRvIHRoZSBnaXZlbiBncmFudGVlIGZvciB0aGUgbGlmZWN5Y2xlIHBvbGljeVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSAtIFRoZSBwcmluY2lwYWxcbiAgICogQHBhcmFtIGFjdGlvbnMgLSBUaGUgbGlzdCBvZiBhY3Rpb25zXG4gICAqL1xuICBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSBsaWZlY3ljbGUgcG9saWN5XG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIHByaW5jaXBhbFxuICAgKi9cbiAgZ3JhbnRSZWFkKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xufVxuXG4vKipcbiAqIFRoZSBhY3Rpb24gdG8gcGVyZm9ybSBvbiB0aGUgcmVzb3VyY2VzIHdoaWNoIHRoZSBwb2xpY3kgYXBwbGllcyB0b1xuICovXG5leHBvcnQgZW51bSBMaWZlY3ljbGVQb2xpY3lBY3Rpb25UeXBlIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSBydWxlIHNob3VsZCBkZWxldGUgdGhlIHJlc291cmNlIHdoZW4gaXQgaXMgYXBwbGllZFxuICAgKi9cbiAgREVMRVRFID0gJ0RFTEVURScsXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcnVsZSBzaG91bGQgZGVwcmVjYXRlIHRoZSByZXNvdXJjZSB3aGVuIGl0IGlzIGFwcGxpZWRcbiAgICovXG4gIERFUFJFQ0FURSA9ICdERVBSRUNBVEUnLFxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHJ1bGUgc2hvdWxkIGRpc2FibGUgdGhlIHJlc291cmNlIHdoZW4gaXQgaXMgYXBwbGllZFxuICAgKi9cbiAgRElTQUJMRSA9ICdESVNBQkxFJyxcbn1cblxuLyoqXG4gKiBUaGUgc3RhdHVzIG9mIHRoZSBsaWZlY3ljbGUgcG9saWN5LCBpbmRpY2F0aW5nIHdoZXRoZXIgaXQgd2lsbCBydW5cbiAqL1xuZXhwb3J0IGVudW0gTGlmZWN5Y2xlUG9saWN5U3RhdHVzIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSBsaWZlY3ljbGUgcG9saWN5IHNob3VsZCBiZSBlbmFibGVkXG4gICAqL1xuICBFTkFCTEVEID0gJ0VOQUJMRUQnLFxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgbGlmZWN5Y2xlIHBvbGljeSBzaG91bGQgYmUgZGlzYWJsZWRcbiAgICovXG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcbn1cblxuLyoqXG4gKiBUaGUgcmVzb3VyY2UgdHlwZSB3aGljaCB0aGUgbGlmZWN5Y2xlIHBvbGljeSBpcyBhcHBsaWVkIHRvXG4gKi9cbmV4cG9ydCBlbnVtIExpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZSB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHBvbGljeSBhcHBsaWVzIHRvIEFNSS1iYXNlZCBpbWFnZXNcbiAgICovXG4gIEFNSV9JTUFHRSA9ICdBTUlfSU1BR0UnLFxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHBvbGljeSBhcHBsaWVzIHRvIGNvbnRhaW5lciBpbWFnZXNcbiAgICovXG4gIENPTlRBSU5FUl9JTUFHRSA9ICdDT05UQUlORVJfSU1BR0UnLFxufVxuXG4vKipcbiAqIFRoZSBhY3Rpb24gdG8gcGVyZm9ybSBpbiB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlmZWN5Y2xlUG9saWN5QWN0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBhY3Rpb24gdG8gcGVyZm9ybSBvbiB0aGUgcmVzb3VyY2VzIHNlbGVjdGVkIGluIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IExpZmVjeWNsZVBvbGljeUFjdGlvblR5cGU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5jbHVkZSBBTUlzIGluIHRoZSBzY29wZSBvZiB0aGUgbGlmZWN5Y2xlIHJ1bGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlIGZvciBBTUktYmFzZWQgcG9saWNpZXMsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZUFtaXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgY29udGFpbmVycyBpbiB0aGUgc2NvcGUgb2YgdGhlIGxpZmVjeWNsZSBydWxlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZSBmb3IgY29udGFpbmVyLWJhc2VkIHBvbGljaWVzLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHJlYWRvbmx5IGluY2x1ZGVDb250YWluZXJzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHNuYXBzaG90cyBpbiB0aGUgc2NvcGUgb2YgdGhlIGxpZmVjeWNsZSBydWxlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZSBmb3IgQU1JLWJhc2VkIHBvbGljaWVzLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHJlYWRvbmx5IGluY2x1ZGVTbmFwc2hvdHM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSByZXNvdXJjZSBmaWx0ZXJpbmcgdG8gYXBwbHkgaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpZmVjeWNsZVBvbGljeUZpbHRlciB7XG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgYWdlIGZpbHRlciB0byBhcHBseSBpbiB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZSBpZiBhIGNvdW50IGZpbHRlciBpcyBwcm92aWRlZC4gT3RoZXJ3aXNlLCBhbiBhZ2UgZmlsdGVyIGlzIHJlcXVpcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWdlRmlsdGVyPzogTGlmZWN5Y2xlUG9saWN5QWdlRmlsdGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgY291bnQgZmlsdGVyIHRvIGFwcGx5IGluIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lIGlmIGFuIGFnZSBmaWx0ZXIgaXMgcHJvdmlkZWQuIE90aGVyd2lzZSwgYSBjb3VudCBmaWx0ZXIgaXMgcmVxdWlyZWQuXG4gICAqL1xuICByZWFkb25seSBjb3VudEZpbHRlcj86IExpZmVjeWNsZVBvbGljeUNvdW50RmlsdGVyO1xufVxuXG4vKipcbiAqIFRoZSBjb3VudC1iYXNlZCBmaWx0ZXJpbmcgdG8gYXBwbHkgaW4gYSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVQb2xpY3lDb3VudEZpbHRlciB7XG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgcmVzb3VyY2VzIHRvIGtlZXAgb24gaGFuZCBhcyBwYXJ0IG9mIHJlc291cmNlIGZpbHRlcmluZ1xuICAgKi9cbiAgcmVhZG9ubHkgY291bnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgYWdlLWJhc2VkIGZpbHRlcmluZyB0byBhcHBseSBpbiBhIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpZmVjeWNsZVBvbGljeUFnZUZpbHRlciB7XG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBhZ2Ugb2YgdGhlIHJlc291cmNlIHRvIGZpbHRlci4gVGhlIHByb3ZpZGVkIGR1cmF0aW9uIHdpbGwgYmUgcm91bmRlZCB1cCB0byB0aGUgbmVhcmVzdFxuICAgKiBkYXkvd2Vlay9tb250aC95ZWFyIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgYWdlOiBjZGsuRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIEZvciBhZ2UtYmFzZWQgZmlsdGVycywgdGhlIG51bWJlciBvZiBFQzIgSW1hZ2UgQnVpbGRlciBpbWFnZXMgdG8ga2VlcCBvbiBoYW5kIG9uY2UgdGhlIHJ1bGUgaXMgYXBwbGllZC4gVGhlIHZhbHVlXG4gICAqIG11c3QgYmUgYmV0d2VlbiAxIGFuZCAxMC5cbiAgICpcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgcmVhZG9ubHkgcmV0YWluQXRMZWFzdD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgcnVsZXMgdG8gYXBwbHkgZm9yIGV4Y2x1ZGluZyBFQzIgSW1hZ2UgQnVpbGRlciBpbWFnZXMgZnJvbSB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlmZWN5Y2xlUG9saWN5SW1hZ2VFeGNsdXNpb25SdWxlcyB7XG4gIC8qKlxuICAgKiBFeGNsdWRlcyBFQzIgSW1hZ2UgQnVpbGRlciBpbWFnZXMgd2l0aCBhbnkgb2YgdGhlIHByb3ZpZGVkIHRhZ3MgZnJvbSB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gICAqL1xuICByZWFkb25seSB0YWdzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIFRoZSBydWxlcyB0byBhcHBseSBmb3IgZXhjbHVkaW5nIEFNSXMgZnJvbSB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlmZWN5Y2xlUG9saWN5QW1pRXhjbHVzaW9uUnVsZXMge1xuICAvKipcbiAgICogRXhjbHVkZXMgcHVibGljIEFNSXMgZnJvbSB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlIGlmIHRydWVcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGlzUHVibGljPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRXhjbHVkZXMgQU1JcyB3aGljaCB3ZXJlIGxhdW5jaGVkIGZyb20gd2l0aGluIHRoZSBwcm92aWRlZCBkdXJhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBsYXN0TGF1bmNoZWQ/OiBjZGsuRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIEV4Y2x1ZGVzIEFNSXMgd2hpY2ggcmVzaWRlIGluIGFueSBvZiB0aGUgcHJvdmlkZWQgcmVnaW9uc1xuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSByZWdpb25zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEV4Y2x1ZGVzIEFNSXMgd2hpY2ggYXJlIHNoYXJlZCB3aXRoIGFueSBvZiB0aGUgcHJvdmlkZWQgc2hhcmVkIGFjY291bnRzXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHNoYXJlZEFjY291bnRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEV4Y2x1ZGVzIEFNSXMgd2hpY2ggaGF2ZSBhbnkgb2YgdGhlIHByb3ZpZGVkIHRhZ3MgYXBwbGllZCB0byBpdFxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBUaGUgcnVsZXMgdG8gYXBwbHkgZm9yIGV4Y2x1ZGluZyByZXNvdXJjZXMgZnJvbSB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlmZWN5Y2xlUG9saWN5RXhjbHVzaW9uUnVsZXMge1xuICAvKipcbiAgICogVGhlIHJ1bGVzIHRvIGFwcGx5IGZvciBleGNsdWRpbmcgRUMyIEltYWdlIEJ1aWxkZXIgaW1hZ2VzIGZyb20gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGV4Y2x1c2lvbiBydWxlcyBhcmUgYXBwbGllZCBvbiB0aGUgaW1hZ2VcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlRXhjbHVzaW9uUnVsZXM/OiBMaWZlY3ljbGVQb2xpY3lJbWFnZUV4Y2x1c2lvblJ1bGVzO1xuXG4gIC8qKlxuICAgKiBUaGUgcnVsZXMgdG8gYXBwbHkgZm9yIGV4Y2x1ZGluZyBBTUlzIGZyb20gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGV4Y2x1c2lvbiBydWxlcyBhcmUgYXBwbGllZCBvbiB0aGUgQU1JXG4gICAqL1xuICByZWFkb25seSBhbWlFeGNsdXNpb25SdWxlcz86IExpZmVjeWNsZVBvbGljeUFtaUV4Y2x1c2lvblJ1bGVzO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZGV0YWlscyBmb3IgdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVQb2xpY3lEZXRhaWwge1xuICAvKipcbiAgICogVGhlIGFjdGlvbiB0byBwZXJmb3JtIGluIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvbjogTGlmZWN5Y2xlUG9saWN5QWN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgZmlsdGVyaW5nIHRvIGFwcGx5IGluIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICovXG4gIHJlYWRvbmx5IGZpbHRlcjogTGlmZWN5Y2xlUG9saWN5RmlsdGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcnVsZXMgdG8gYXBwbHkgZm9yIGV4Y2x1ZGluZyByZXNvdXJjZXMgZnJvbSB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZXhjbHVzaW9uIHJ1bGVzIGFyZSBhcHBsaWVkIG9uIGFueSByZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVzaW9uUnVsZXM/OiBMaWZlY3ljbGVQb2xpY3lFeGNsdXNpb25SdWxlcztcbn1cblxuLyoqXG4gKiBTZWxlY3Rpb24gY3JpdGVyaWEgZm9yIHRoZSByZXNvdXJjZXMgdGhhdCB0aGUgbGlmZWN5Y2xlIHBvbGljeSBhcHBsaWVzIHRvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VTZWxlY3Rpb24ge1xuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgaW1hZ2UgcmVjaXBlcyBvciBjb250YWluZXIgcmVjaXBlcyB0byBhcHBseSB0aGUgbGlmZWN5Y2xlIHBvbGljeSB0b1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmUgaWYgdGFnIHNlbGVjdGlvbnMgYXJlIHByb3ZpZGVkLiBPdGhlcndpc2UsIGF0IGxlYXN0IG9uZSByZWNpcGUgb3IgdGFnIHNlbGVjdGlvbiBtdXN0IGJlIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSByZWNpcGVzPzogSVJlY2lwZUJhc2VbXTtcblxuICAvKipcbiAgICogU2VsZWN0cyBFQzIgSW1hZ2UgQnVpbGRlciBpbWFnZXMgY29udGFpbmluZyBhbnkgb2YgdGhlIHByb3ZpZGVkIHRhZ3NcbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lIGlmIHJlY2lwZSBzZWxlY3Rpb25zIGFyZSBwcm92aWRlZC4gT3RoZXJ3aXNlLCBhdCBsZWFzdCBvbmUgcmVjaXBlIG9yIHRhZyBzZWxlY3Rpb24gbXVzdCBiZSBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBMaWZlY3ljbGUgUG9saWN5IHJlc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlmZWN5Y2xlUG9saWN5UHJvcHMge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgSW1hZ2UgQnVpbGRlciByZXNvdXJjZSB0aGF0IHRoZSBsaWZlY3ljbGUgcG9saWN5IGFwcGxpZXMgdG8uXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZVR5cGU6IExpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZTtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBkZXRhaWxzIGZvciB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlcy5cbiAgICovXG4gIHJlYWRvbmx5IGRldGFpbHM6IExpZmVjeWNsZVBvbGljeURldGFpbFtdO1xuXG4gIC8qKlxuICAgKiBTZWxlY3Rpb24gY3JpdGVyaWEgZm9yIHRoZSByZXNvdXJjZXMgdGhhdCB0aGUgbGlmZWN5Y2xlIHBvbGljeSBhcHBsaWVzIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VTZWxlY3Rpb246IExpZmVjeWNsZVBvbGljeVJlc291cmNlU2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgbGlmZWN5Y2xlIHBvbGljeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIG5hbWUgaXMgZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBsaWZlY3ljbGVQb2xpY3lOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIGxpZmVjeWNsZSBwb2xpY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBsaWZlY3ljbGUgcG9saWN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBMaWZlY3ljbGVQb2xpY3lTdGF0dXMuRU5BQkxFRFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzPzogTGlmZWN5Y2xlUG9saWN5U3RhdHVzO1xuXG4gIC8qKlxuICAgKiBUaGUgZXhlY3V0aW9uIHJvbGUgdGhhdCBncmFudHMgSW1hZ2UgQnVpbGRlciBhY2Nlc3MgdG8gcnVuIGxpZmVjeWNsZSBhY3Rpb25zLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBhbiBleGVjdXRpb24gcm9sZSB3aWxsIGJlIGNyZWF0ZWQgd2l0aCB0aGUgbWluaW1hbCBwZXJtaXNzaW9ucyBuZWVkZWQgdG8gZXhlY3V0ZSB0aGUgbGlmZWN5Y2xlIHBvbGljeVxuICAgKiBhY3Rpb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFuIGV4ZWN1dGlvbiByb2xlIHdpbGwgYmUgZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBleGVjdXRpb25Sb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFncyB0byBhcHBseSB0byB0aGUgbGlmZWN5Y2xlIHBvbGljeVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG5hYnN0cmFjdCBjbGFzcyBMaWZlY3ljbGVQb2xpY3lCYXNlIGV4dGVuZHMgY2RrLlJlc291cmNlIGltcGxlbWVudHMgSUxpZmVjeWNsZVBvbGljeSB7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGxpZmVjeWNsZVBvbGljeUFybjogc3RyaW5nO1xuICBhYnN0cmFjdCByZWFkb25seSBsaWZlY3ljbGVQb2xpY3lOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9ucyxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMubGlmZWN5Y2xlUG9saWN5QXJuXSxcbiAgICAgIHNjb3BlOiB0aGlzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoZ3JhbnRlZSwgJ2ltYWdlYnVpbGRlcjpHZXRMaWZlY3ljbGVQb2xpY3knKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gRUMyIEltYWdlIEJ1aWxkZXIgTGlmZWN5Y2xlIFBvbGljeS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9pbWFnZWJ1aWxkZXIvbGF0ZXN0L3VzZXJndWlkZS9tYW5hZ2UtaW1hZ2UtbGlmZWN5Y2xlcy5odG1sXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBMaWZlY3ljbGVQb2xpY3kgZXh0ZW5kcyBMaWZlY3ljbGVQb2xpY3lCYXNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtaW1hZ2VidWlsZGVyLWFscGhhLkxpZmVjeWNsZVBvbGljeSc7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBsaWZlY3ljbGUgcG9saWN5IGdpdmVuIGl0cyBBUk4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21MaWZlY3ljbGVQb2xpY3lBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgbGlmZWN5Y2xlUG9saWN5QXJuOiBzdHJpbmcpOiBJTGlmZWN5Y2xlUG9saWN5IHtcbiAgICBjb25zdCBsaWZlY3ljbGVQb2xpY3lOYW1lID0gY2RrLlN0YWNrLm9mKHNjb3BlKS5zcGxpdEFybihcbiAgICAgIGxpZmVjeWNsZVBvbGljeUFybixcbiAgICAgIGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICApLnJlc291cmNlTmFtZSE7XG5cbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBMaWZlY3ljbGVQb2xpY3lCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBsaWZlY3ljbGVQb2xpY3lBcm4gPSBsaWZlY3ljbGVQb2xpY3lBcm47XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbGlmZWN5Y2xlUG9saWN5TmFtZSA9IGxpZmVjeWNsZVBvbGljeU5hbWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgbGlmZWN5Y2xlIHBvbGljeSBnaXZlbiBpdHMgbmFtZS4gSWYgdGhlIG5hbWUgaXMgYSB0b2tlbiByZXByZXNlbnRpbmcgYSBkeW5hbWljIENsb3VkRm9ybWF0aW9uXG4gICAqIGV4cHJlc3Npb24sIHlvdSBtdXN0IGVuc3VyZSBhbGwgYWxwaGFiZXRpYyBjaGFyYWN0ZXJzIGluIHRoZSBleHByZXNzaW9uIGFyZSBhbHJlYWR5IGxvd2VyY2FzZWRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUxpZmVjeWNsZVBvbGljeU5hbWUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgbGlmZWN5Y2xlUG9saWN5TmFtZTogc3RyaW5nKTogSUxpZmVjeWNsZVBvbGljeSB7XG4gICAgcmV0dXJuIExpZmVjeWNsZVBvbGljeS5mcm9tTGlmZWN5Y2xlUG9saWN5QXJuKFxuICAgICAgc2NvcGUsXG4gICAgICBpZCxcbiAgICAgIGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgICAgc2VydmljZTogJ2ltYWdlYnVpbGRlcicsXG4gICAgICAgIHJlc291cmNlOiAnbGlmZWN5Y2xlLXBvbGljeScsXG4gICAgICAgIHJlc291cmNlTmFtZTogbGlmZWN5Y2xlUG9saWN5TmFtZSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVuIG9iamVjdCBpcyBhIExpZmVjeWNsZVBvbGljeS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNMaWZlY3ljbGVQb2xpY3koeDogYW55KTogeCBpcyBMaWZlY3ljbGVQb2xpY3kge1xuICAgIHJldHVybiB4ICE9PSBudWxsICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiBMSUZFQ1lDTEVfUE9MSUNZX1NZTUJPTCBpbiB4O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBleGVjdXRpb24gcm9sZSB1c2VkIGZvciBsaWZlY3ljbGUgcG9saWN5IGV4ZWN1dGlvbnNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBleGVjdXRpb25Sb2xlOiBpYW0uSVJvbGU7XG5cbiAgcHJpdmF0ZSByZXNvdXJjZTogQ2ZuTGlmZWN5Y2xlUG9saWN5O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTGlmZWN5Y2xlUG9saWN5UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTpcbiAgICAgICAgcHJvcHMubGlmZWN5Y2xlUG9saWN5TmFtZSA/P1xuICAgICAgICBjZGsuTGF6eS5zdHJpbmcoe1xuICAgICAgICAgIHByb2R1Y2U6ICgpID0+XG4gICAgICAgICAgICBjZGsuTmFtZXMudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMsIHtcbiAgICAgICAgICAgICAgbWF4TGVuZ3RoOiAxMjgsXG4gICAgICAgICAgICAgIHNlcGFyYXRvcjogJy0nLFxuICAgICAgICAgICAgICBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM6ICctJyxcbiAgICAgICAgICAgIH0pLnRvTG93ZXJDYXNlKCksXG4gICAgICAgIH0pLFxuICAgIH0pO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIExJRkVDWUNMRV9QT0xJQ1lfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuXG4gICAgdGhpcy52YWxpZGF0ZUxpZmVjeWNsZVBvbGljeU5hbWUoKTtcbiAgICB0aGlzLnZhbGlkYXRlUG9saWN5KHByb3BzKTtcblxuICAgIHRoaXMuZXhlY3V0aW9uUm9sZSA9XG4gICAgICBwcm9wcy5leGVjdXRpb25Sb2xlID8/XG4gICAgICBuZXcgaWFtLlJvbGUodGhpcywgJ0V4ZWN1dGlvblJvbGUnLCB7XG4gICAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdpbWFnZWJ1aWxkZXIuYW1hem9uYXdzLmNvbScpLFxuICAgICAgICBtYW5hZ2VkUG9saWNpZXM6IFtcbiAgICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9FQzJJbWFnZUJ1aWxkZXJMaWZlY3ljbGVFeGVjdXRpb25Qb2xpY3knKSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgbGlmZWN5Y2xlUG9saWN5ID0gbmV3IENmbkxpZmVjeWNsZVBvbGljeSh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBuYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogcHJvcHMucmVzb3VyY2VUeXBlLFxuICAgICAgZXhlY3V0aW9uUm9sZTogdGhpcy5leGVjdXRpb25Sb2xlLnJvbGVBcm4sXG4gICAgICBwb2xpY3lEZXRhaWxzOiB0aGlzLmJ1aWxkUG9saWN5RGV0YWlscyhwcm9wcy5yZXNvdXJjZVR5cGUsIHByb3BzLmRldGFpbHMpLFxuICAgICAgcmVzb3VyY2VTZWxlY3Rpb246IHtcbiAgICAgICAgLi4uKHByb3BzLnJlc291cmNlU2VsZWN0aW9uLnJlY2lwZXMgIT09IHVuZGVmaW5lZCAmJiB7XG4gICAgICAgICAgcmVjaXBlczogdGhpcy5idWlsZFJlY2lwZXMocHJvcHMucmVzb3VyY2VUeXBlLCBwcm9wcy5yZXNvdXJjZVNlbGVjdGlvbi5yZWNpcGVzKSxcbiAgICAgICAgfSksXG4gICAgICAgIHRhZ01hcDogcHJvcHMucmVzb3VyY2VTZWxlY3Rpb24udGFncyxcbiAgICAgIH0sXG4gICAgICBzdGF0dXM6IHByb3BzLnN0YXR1cyxcbiAgICAgIHRhZ3M6IHByb3BzLnRhZ3MsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbGlmZWN5Y2xlUG9saWN5O1xuICB9XG5cbiAgQG1lbW9pemVkR2V0dGVyXG4gIHB1YmxpYyBnZXQgbGlmZWN5Y2xlUG9saWN5TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZSh0aGlzLnJlc291cmNlLnJlZik7XG4gIH1cblxuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCBsaWZlY3ljbGVQb2xpY3lBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRSZXNvdXJjZUFybkF0dHJpYnV0ZSh0aGlzLnJlc291cmNlLmF0dHJBcm4sIHtcbiAgICAgIHNlcnZpY2U6ICdpbWFnZWJ1aWxkZXInLFxuICAgICAgcmVzb3VyY2U6ICdsaWZlY3ljbGUtcG9saWN5JyxcbiAgICAgIHJlc291cmNlTmFtZTogdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIHRoZSBwb2xpY3kgZGV0YWlscyBwcm9wZXJ0eSBpbnRvIHRoZSBgUG9saWN5RGV0YWlsYCB0eXBlIGluIHRoZSBDbG91ZEZvcm1hdGlvbiBMMSBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VUeXBlIFRoZSByZXNvdXJjZSB0eXBlIG9mIHRoZSBsaWZlY3ljbGUgcG9saWN5XG4gICAqIEBwYXJhbSBkZXRhaWxzIFRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkUG9saWN5RGV0YWlscyhcbiAgICByZXNvdXJjZVR5cGU6IExpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZSxcbiAgICBkZXRhaWxzOiBMaWZlY3ljbGVQb2xpY3lEZXRhaWxbXSxcbiAgKTogQ2ZuTGlmZWN5Y2xlUG9saWN5LlBvbGljeURldGFpbFByb3BlcnR5W10ge1xuICAgIHJldHVybiBkZXRhaWxzLm1hcCgoZGV0YWlsKTogQ2ZuTGlmZWN5Y2xlUG9saWN5LlBvbGljeURldGFpbFByb3BlcnR5ID0+IHtcbiAgICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYnVpbGRBY3Rpb24ocmVzb3VyY2VUeXBlLCBkZXRhaWwuYWN0aW9uKTtcbiAgICAgIGNvbnN0IGV4Y2x1c2lvblJ1bGVzID1cbiAgICAgICAgZGV0YWlsLmV4Y2x1c2lvblJ1bGVzICE9PSB1bmRlZmluZWQgPyB0aGlzLmJ1aWxkRXhjbHVzaW9uUnVsZXMoZGV0YWlsLmV4Y2x1c2lvblJ1bGVzKSA6IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy52YWxpZGF0ZVBvbGljeURldGFpbEFjdGlvbihyZXNvdXJjZVR5cGUsIGRldGFpbC5hY3Rpb24sIGV4Y2x1c2lvblJ1bGVzPy5hbWlzKTtcbiAgICAgIHRoaXMudmFsaWRhdGVQb2xpY3lEZXRhaWxGaWx0ZXIoZGV0YWlsLmZpbHRlcik7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICByZXRhaW5BdExlYXN0OiBkZXRhaWwuZmlsdGVyLmFnZUZpbHRlcj8ucmV0YWluQXRMZWFzdCxcbiAgICAgICAgICB0eXBlOiBkZXRhaWwuZmlsdGVyLmFnZUZpbHRlciAhPT0gdW5kZWZpbmVkID8gJ0FHRScgOiAnQ09VTlQnLFxuICAgICAgICAgIC4uLihkZXRhaWwuZmlsdGVyLmFnZUZpbHRlciAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IHRoaXMuY29udmVydER1cmF0aW9uVG9UaW1lVW5pdFZhbHVlKGRldGFpbC5maWx0ZXIuYWdlRmlsdGVyLmFnZSlcbiAgICAgICAgICAgIDogeyB2YWx1ZTogZGV0YWlsLmZpbHRlci5jb3VudEZpbHRlciEuY291bnQgfSksXG4gICAgICAgIH0sXG4gICAgICAgIC4uLihleGNsdXNpb25SdWxlcyAhPT0gdW5kZWZpbmVkICYmIHsgZXhjbHVzaW9uUnVsZXMgfSksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyB0aGUgcmVjaXBlcyBwcm9wZXJ0eSBpbiB0aGUgcmVzb3VyY2Ugc2VsZWN0aW9uIGludG8gdGhlIGBSZWNpcGVTZWxlY3Rpb25gIHR5cGUgaW4gdGhlIENsb3VkRm9ybWF0aW9uIEwxXG4gICAqIGRlZmluaXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZVR5cGUgVGhlIHJlc291cmNlIHR5cGUgb2YgdGhlIGxpZmVjeWNsZSBwb2xpY3lcbiAgICogQHBhcmFtIHJlY2lwZXMgVGhlIHJlY2lwZXMgcGFzc2VkIGluIHRoZSBwcm9wc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZFJlY2lwZXMoXG4gICAgcmVzb3VyY2VUeXBlOiBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUsXG4gICAgcmVjaXBlczogSVJlY2lwZUJhc2VbXSxcbiAgKTogQ2ZuTGlmZWN5Y2xlUG9saWN5LlJlY2lwZVNlbGVjdGlvblByb3BlcnR5W10gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiByZWNpcGVzPy5tYXAoKHJlY2lwZSk6IENmbkxpZmVjeWNsZVBvbGljeS5SZWNpcGVTZWxlY3Rpb25Qcm9wZXJ0eSA9PiB7XG4gICAgICBpZiAocmVjaXBlLl9pc0ltYWdlUmVjaXBlKCkpIHtcbiAgICAgICAgaWYgKHJlc291cmNlVHlwZSA9PT0gTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlLkNPTlRBSU5FUl9JTUFHRSkge1xuICAgICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgICAgYHJlY2lwZXMgaW4gdGhlIHJlc291cmNlIHNlbGVjdGlvbiBtdXN0IGFsbCBiZSBjb250YWluZXIgcmVjaXBlcyBmb3IgcG9saWN5IHR5cGUgJHtMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUuQ09OVEFJTkVSX0lNQUdFfWAsXG4gICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6IHJlY2lwZS5pbWFnZVJlY2lwZU5hbWUsXG4gICAgICAgICAgc2VtYW50aWNWZXJzaW9uOiByZWNpcGUuaW1hZ2VSZWNpcGVWZXJzaW9uLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBpZiAocmVjaXBlLl9pc0NvbnRhaW5lclJlY2lwZSgpKSB7XG4gICAgICAgIGlmIChyZXNvdXJjZVR5cGUgPT09IExpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZS5BTUlfSU1BR0UpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICAgIGByZWNpcGVzIGluIHRoZSByZXNvdXJjZSBzZWxlY3Rpb24gbXVzdCBhbGwgYmUgaW1hZ2UgcmVjaXBlcyBmb3IgcG9saWN5IHR5cGUgJHtMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUuQU1JX0lNQUdFfWAsXG4gICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6IHJlY2lwZS5jb250YWluZXJSZWNpcGVOYW1lLFxuICAgICAgICAgIHNlbWFudGljVmVyc2lvbjogcmVjaXBlLmNvbnRhaW5lclJlY2lwZVZlcnNpb24sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAncmVjaXBlcyBpbiB0aGUgcmVzb3VyY2Ugc2VsZWN0aW9uIG11c3QgZWl0aGVyIGJlIGFuIElJbWFnZVJlY2lwZSBvciBJQ29udGFpbmVyUmVjaXBlJyxcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIHRoZSBleGNsdXNpb24gcnVsZXMgcHJvcGVydHkgaW50byB0aGUgYEV4Y2x1c2lvblJ1bGVzYCB0eXBlIGluIHRoZSBDbG91ZEZvcm1hdGlvbiBMMSBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gZXhjbHVzaW9uUnVsZXMgVGhlIGV4Y2x1c2lvbiBydWxlcyBmb3IgcmVzb3VyY2VzIGFwcGxpZWQgaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEV4Y2x1c2lvblJ1bGVzKFxuICAgIGV4Y2x1c2lvblJ1bGVzOiBMaWZlY3ljbGVQb2xpY3lFeGNsdXNpb25SdWxlcyxcbiAgKTogQ2ZuTGlmZWN5Y2xlUG9saWN5LkV4Y2x1c2lvblJ1bGVzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGFtaUV4Y2x1c2lvblJ1bGVzOiBDZm5MaWZlY3ljbGVQb2xpY3kuQW1pRXhjbHVzaW9uUnVsZXNQcm9wZXJ0eSA9IHtcbiAgICAgIC4uLihleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcz8uaXNQdWJsaWMgJiYgeyBpc1B1YmxpYzogZXhjbHVzaW9uUnVsZXMuYW1pRXhjbHVzaW9uUnVsZXMuaXNQdWJsaWMgfSksXG4gICAgICAuLi4oZXhjbHVzaW9uUnVsZXMuYW1pRXhjbHVzaW9uUnVsZXM/Lmxhc3RMYXVuY2hlZCAhPT0gdW5kZWZpbmVkICYmIHtcbiAgICAgICAgbGFzdExhdW5jaGVkOiB0aGlzLmNvbnZlcnREdXJhdGlvblRvVGltZVVuaXRWYWx1ZShleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcy5sYXN0TGF1bmNoZWQsIDM2NSksXG4gICAgICB9KSxcbiAgICAgIC4uLihleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcz8ucmVnaW9ucz8ubGVuZ3RoICYmIHsgcmVnaW9uczogZXhjbHVzaW9uUnVsZXMuYW1pRXhjbHVzaW9uUnVsZXMucmVnaW9ucyB9KSxcbiAgICAgIC4uLihleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcz8uc2hhcmVkQWNjb3VudHM/Lmxlbmd0aCAmJiB7XG4gICAgICAgIHNoYXJlZEFjY291bnRzOiBleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcy5zaGFyZWRBY2NvdW50cyxcbiAgICAgIH0pLFxuICAgICAgLi4uKGV4Y2x1c2lvblJ1bGVzLmFtaUV4Y2x1c2lvblJ1bGVzPy50YWdzICYmIHsgdGFnTWFwOiBleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcy50YWdzIH0pLFxuICAgIH07XG5cbiAgICBjb25zdCBjZm5FeGNsdXNpb25SdWxlczogQ2ZuTGlmZWN5Y2xlUG9saWN5LkV4Y2x1c2lvblJ1bGVzUHJvcGVydHkgPSB7XG4gICAgICAuLi4oT2JqZWN0LmtleXMoYW1pRXhjbHVzaW9uUnVsZXMpLmxlbmd0aCAmJiB7IGFtaXM6IGFtaUV4Y2x1c2lvblJ1bGVzIH0pLFxuICAgICAgLi4uKGV4Y2x1c2lvblJ1bGVzLmltYWdlRXhjbHVzaW9uUnVsZXMgIT09IHVuZGVmaW5lZCAmJiB7IHRhZ01hcDogZXhjbHVzaW9uUnVsZXMuaW1hZ2VFeGNsdXNpb25SdWxlcy50YWdzIH0pLFxuICAgIH07XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZXhjbHVzaW9uUnVsZXMpLmxlbmd0aCA/IGNmbkV4Y2x1c2lvblJ1bGVzIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyB0aGUgYWN0aW9uIHByb3BlcnR5IGludG8gdGhlIGBBY3Rpb25gIHR5cGUgaW4gdGhlIENsb3VkRm9ybWF0aW9uIEwxIGRlZmluaXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZVR5cGUgVGhlIHJlc291cmNlIHR5cGUgb2YgdGhlIGxpZmVjeWNsZSBwb2xpY3lcbiAgICogQHBhcmFtIGFjdGlvbiBUaGUgYWN0aW9uIGJlaW5nIHRha2VuIGluIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYnVpbGRBY3Rpb24oXG4gICAgcmVzb3VyY2VUeXBlOiBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUsXG4gICAgYWN0aW9uOiBMaWZlY3ljbGVQb2xpY3lBY3Rpb24sXG4gICk6IENmbkxpZmVjeWNsZVBvbGljeS5BY3Rpb25Qcm9wZXJ0eSB7XG4gICAgY29uc3QgaXNDb250YWluZXJQb2xpY3kgPVxuICAgICAgIWNkay5Ub2tlbi5pc1VucmVzb2x2ZWQocmVzb3VyY2VUeXBlKSAmJiByZXNvdXJjZVR5cGUgPT09IExpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZS5DT05UQUlORVJfSU1BR0U7XG4gICAgY29uc3QgaXNBbWlQb2xpY3kgPSAhY2RrLlRva2VuLmlzVW5yZXNvbHZlZChyZXNvdXJjZVR5cGUpICYmIHJlc291cmNlVHlwZSA9PT0gTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlLkFNSV9JTUFHRTtcblxuICAgIGNvbnN0IGFtaXMgPSBhY3Rpb24uaW5jbHVkZUFtaXMgPz8gKGlzQW1pUG9saWN5ID8gdHJ1ZSA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3Qgc25hcHNob3RzID0gYWN0aW9uLmluY2x1ZGVTbmFwc2hvdHMgPz8gKGlzQW1pUG9saWN5ID8gdHJ1ZSA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgY29udGFpbmVycyA9IGFjdGlvbi5pbmNsdWRlQ29udGFpbmVycyA/PyAoaXNDb250YWluZXJQb2xpY3kgPyB0cnVlIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBpbmNsdWRlUmVzb3VyY2VzOiBDZm5MaWZlY3ljbGVQb2xpY3kuSW5jbHVkZVJlc291cmNlc1Byb3BlcnR5ID0ge1xuICAgICAgLi4uKGFtaXMgIT09IHVuZGVmaW5lZCAmJiB7IGFtaXMgfSksXG4gICAgICAuLi4oc25hcHNob3RzICE9PSB1bmRlZmluZWQgJiYgeyBzbmFwc2hvdHMgfSksXG4gICAgICAuLi4oY29udGFpbmVycyAhPT0gdW5kZWZpbmVkICYmIHsgY29udGFpbmVycyB9KSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IGFjdGlvbi50eXBlLFxuICAgICAgLi4uKE9iamVjdC5rZXlzKGluY2x1ZGVSZXNvdXJjZXMpLmxlbmd0aCAmJiB7IGluY2x1ZGVSZXNvdXJjZXMgfSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHRvcC1sZXZlbCBwcm9wZXJ0aWVzIG9mIHRoZSBwb2xpY3lcbiAgICpcbiAgICogQHBhcmFtIHByb3BzIFRoZSBwcm9wcyBwYXNzZWQgYXMgaW5wdXQgdG8gdGhlIGNvbnN0cnVjdFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVBvbGljeShwcm9wczogTGlmZWN5Y2xlUG9saWN5UHJvcHMpOiB2b2lkIHtcbiAgICBpZiAocHJvcHMucmVzb3VyY2VTZWxlY3Rpb24ucmVjaXBlcz8ubGVuZ3RoICYmIE9iamVjdC5rZXlzKHByb3BzLnJlc291cmNlU2VsZWN0aW9uLnRhZ3MgfHwge30pLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ3Jlc291cmNlIHNlbGVjdGlvbiBjYW5ub3QgY29udGFpbiBib3RoIHJlY2lwZXMgYW5kIHRhZ3MnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAoIXByb3BzLnJlc291cmNlU2VsZWN0aW9uLnJlY2lwZXM/Lmxlbmd0aCAmJiAhT2JqZWN0LmtleXMocHJvcHMucmVzb3VyY2VTZWxlY3Rpb24udGFncyB8fCB7fSkubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcigncmVzb3VyY2Ugc2VsZWN0aW9uIG11c3QgY29udGFpbiBlaXRoZXIgcmVjaXBlcyBvciB0YWdzJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmRldGFpbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcignYSBsaWZlY3ljbGUgcG9saWN5IG11c3QgaGF2ZSBhdCBsZWFzdCAxIHJ1bGUnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuZGV0YWlscy5sZW5ndGggPiAzKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcignYSBsaWZlY3ljbGUgcG9saWN5IGNhbiBvbmx5IGhhdmUgdXAgdG8gMyBydWxlcycsIHRoaXMpO1xuICAgIH1cblxuICAgIGNvbnN0IGFjdGlvbnMgPSBwcm9wcy5kZXRhaWxzLm1hcCgoZGV0YWlsKSA9PiBkZXRhaWwuYWN0aW9uLnR5cGUpO1xuICAgIGlmIChuZXcgU2V0KGFjdGlvbnMpLnNpemUgIT0gYWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCdsaWZlY3ljbGUgcG9saWN5IHJ1bGVzIG1heSBub3QgaGF2ZSBkdXBsaWNhdGUgYWN0aW9ucycsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYSBwb2xpY3kgZGV0YWlsIGZpbHRlciB3aXRoaW4gYSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlVHlwZSBUaGUgcmVzb3VyY2UgdHlwZSBvZiB0aGUgbGlmZWN5Y2xlIHBvbGljeVxuICAgKiBAcGFyYW0gYWN0aW9uIFRoZSBhY3Rpb24gYmVpbmcgdGFrZW4gaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKiBAcGFyYW0gYW1pRXhjbHVzaW9uUnVsZXMgVGhlIEFNSSBleGNsdXNpb24gcnVsZXMgaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVBvbGljeURldGFpbEFjdGlvbihcbiAgICByZXNvdXJjZVR5cGU6IExpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZSxcbiAgICBhY3Rpb246IExpZmVjeWNsZVBvbGljeUFjdGlvbixcbiAgICBhbWlFeGNsdXNpb25SdWxlczogQ2ZuTGlmZWN5Y2xlUG9saWN5LkFtaUV4Y2x1c2lvblJ1bGVzUHJvcGVydHkgfCBjZGsuSVJlc29sdmFibGUgfCB1bmRlZmluZWQsXG4gICkge1xuICAgIGlmICghY2RrLlRva2VuLmlzVW5yZXNvbHZlZChyZXNvdXJjZVR5cGUpICYmIHJlc291cmNlVHlwZSA9PT0gTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlLkNPTlRBSU5FUl9JTUFHRSkge1xuICAgICAgaWYgKCFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKGFjdGlvbi50eXBlKSAmJiBhY3Rpb24udHlwZSAhPT0gTGlmZWN5Y2xlUG9saWN5QWN0aW9uVHlwZS5ERUxFVEUpIHtcbiAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ3lvdSBtYXkgb25seSBzcGVjaWZ5IERFTEVURSBydWxlcyBmb3IgY29udGFpbmVyIHBvbGljaWVzJywgdGhpcyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhY3Rpb24uaW5jbHVkZUFtaXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ3lvdSBjYW5ub3QgaW5jbHVkZSBBTUlzIGluIGEgY29udGFpbmVyIHBvbGljeScsIHRoaXMpO1xuICAgICAgfVxuXG4gICAgICBpZiAoYWN0aW9uLmluY2x1ZGVTbmFwc2hvdHMpIHtcbiAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ3lvdSBjYW5ub3QgaW5jbHVkZSBzbmFwc2hvdHMgaW4gYSBjb250YWluZXIgcG9saWN5JywgdGhpcyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhbWlFeGNsdXNpb25SdWxlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCd5b3UgY2Fubm90IGV4Y2x1ZGUgQU1JcyBpbiBhIGNvbnRhaW5lciBwb2xpY3knLCB0aGlzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAhY2RrLlRva2VuLmlzVW5yZXNvbHZlZChyZXNvdXJjZVR5cGUpICYmXG4gICAgICByZXNvdXJjZVR5cGUgPT09IExpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZS5BTUlfSU1BR0UgJiZcbiAgICAgIGFjdGlvbi5pbmNsdWRlQ29udGFpbmVyc1xuICAgICkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ3lvdSBjYW5ub3QgaW5jbHVkZSBjb250YWluZXJzIGluIGFuIEFNSSBwb2xpY3knLCB0aGlzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGEgcG9saWN5IGRldGFpbCBmaWx0ZXJcbiAgICpcbiAgICogQHBhcmFtIGZpbHRlciBUaGUgbGlmZWN5Y2xlIHBvbGljeSByZXNvdXJjZSBmaWx0ZXIgYXBwbGllZCBpbiB0aGUgcnVsZVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVBvbGljeURldGFpbEZpbHRlcihmaWx0ZXI6IExpZmVjeWNsZVBvbGljeUZpbHRlcikge1xuICAgIGlmIChmaWx0ZXIuYWdlRmlsdGVyICE9PSB1bmRlZmluZWQgJiYgZmlsdGVyLmNvdW50RmlsdGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCdlaXRoZXIgYWdlIGNvdW50IGNhbiBiZSBzcGVjaWZpZWQgaW4gYSBwb2xpY3kgZmlsdGVyLCBidXQgbm90IGJvdGgnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAoZmlsdGVyLmFnZUZpbHRlciA9PT0gdW5kZWZpbmVkICYmIGZpbHRlci5jb3VudEZpbHRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcigneW91IG11c3QgcHJvdmlkZSBhbiBhZ2Ugb3IgY291bnQgZmlsdGVyIGluIHRoZSBwb2xpY3knLCB0aGlzKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXRhaW5BdExlYXN0ID0gZmlsdGVyLmFnZUZpbHRlcj8ucmV0YWluQXRMZWFzdDtcbiAgICBpZiAocmV0YWluQXRMZWFzdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAocmV0YWluQXRMZWFzdCA8IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ3RoZSByZXRhaW5BdExlYXN0IGZpbHRlciB2YWx1ZSBtdXN0IGJlIGF0IGxlYXN0IDEnLCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZXRhaW5BdExlYXN0ID4gMTApIHtcbiAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ3RoZSByZXRhaW5BdExlYXN0IGZpbHRlciB2YWx1ZSBtdXN0IGJlIGF0IG1vc3QgMTAnLCB0aGlzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBgY2RrLkR1cmF0aW9uYCBpbnRvIHRoZSB2YWx1ZSBhbmQgdW5pdCB3aGljaCBpcyBhY2NlcHRlZCBhcyBmaWx0ZXIgYWdlIGFuZCBsYXN0IGxhdW5jaGVkIGFnZSBpbiB0aGVcbiAgICogbGlmZWN5Y2xlIHBvbGljeS4gVGhlIHZhbHVlIGlzIHJvdW5kZWQgdXAgdG8gdGhlIG5lYXJlc3Qgd2hvbGUgbnVtYmVyLlxuICAgKlxuICAgKiBAcGFyYW0gZHVyYXRpb24gVGhlIGR1cmF0aW9uIHRvIGNvbnZlcnRcbiAgICogQHBhcmFtIHZhbHVlTGltaXQgVGhlIG1heGltdW0gdmFsdWUgdGhhdCBjYW4gYmUgc3BlY2lmaWVkXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGNvbnZlcnREdXJhdGlvblRvVGltZVVuaXRWYWx1ZShcbiAgICBkdXJhdGlvbjogY2RrLkR1cmF0aW9uLFxuICAgIHZhbHVlTGltaXQ6IG51bWJlciA9IDEwMDAsXG4gICk6IHsgdmFsdWU6IG51bWJlcjsgdW5pdDogJ0RBWVMnIHwgJ1dFRUtTJyB8ICdNT05USFMnIHwgJ1lFQVJTJyB9IHtcbiAgICBjb25zdCBEQVlTX1BFUl9XRUVLID0gNztcbiAgICBjb25zdCBEQVlTX1BFUl9NT05USCA9IDMwO1xuICAgIGNvbnN0IERBWVNfUEVSX1lFQVIgPSAzNjU7XG5cbiAgICBjb25zdCB2YWx1ZUluRGF5cyA9IE1hdGguY2VpbChkdXJhdGlvbi50b0RheXMoKSk7XG4gICAgaWYgKHZhbHVlSW5EYXlzIDwgMSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ3RoZSBwcm92aWRlZCBkdXJhdGlvbiBtdXN0IGJlIGF0IGxlYXN0IDEgZGF5JywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlSW5EYXlzIDw9IHZhbHVlTGltaXQpIHtcbiAgICAgIHJldHVybiB7IHZhbHVlOiB2YWx1ZUluRGF5cywgdW5pdDogJ0RBWVMnIH07XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWVJbldlZWtzID0gTWF0aC5jZWlsKHZhbHVlSW5EYXlzIC8gREFZU19QRVJfV0VFSyk7XG4gICAgaWYgKHZhbHVlSW5XZWVrcyA8PSB2YWx1ZUxpbWl0KSB7XG4gICAgICByZXR1cm4geyB2YWx1ZTogdmFsdWVJbldlZWtzLCB1bml0OiAnV0VFS1MnIH07XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWVJbk1vbnRocyA9IE1hdGguY2VpbCh2YWx1ZUluRGF5cyAvIERBWVNfUEVSX01PTlRIKTtcbiAgICBpZiAodmFsdWVJbk1vbnRocyA8PSB2YWx1ZUxpbWl0KSB7XG4gICAgICByZXR1cm4geyB2YWx1ZTogdmFsdWVJbk1vbnRocywgdW5pdDogJ01PTlRIUycgfTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZUluWWVhcnMgPSBNYXRoLmNlaWwodmFsdWVJbkRheXMgLyBEQVlTX1BFUl9ZRUFSKTtcbiAgICBpZiAodmFsdWVJblllYXJzIDw9IHZhbHVlTGltaXQpIHtcbiAgICAgIHJldHVybiB7IHZhbHVlOiB2YWx1ZUluWWVhcnMsIHVuaXQ6ICdZRUFSUycgfTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihgdGhlIHByb3ZpZGVkIGR1cmF0aW9uIG11c3QgYmUgbGVzcyB0aGFuICR7dmFsdWVMaW1pdH0geWVhcnNgLCB0aGlzKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVMaWZlY3ljbGVQb2xpY3lOYW1lKCkge1xuICAgIGlmIChjZGsuVG9rZW4uaXNVbnJlc29sdmVkKHRoaXMucGh5c2ljYWxOYW1lKSkge1xuICAgICAgcmV0dXJuOyAvLyBDYW5ub3QgdmFsaWRhdGUgdW5yZXNvbHZlZCB0b2tlbnMsIGdpdmVuIHRoZWlyIGFjdHVhbCB2YWx1ZSBpcyByZW5kZXJlZCBhdCBkZXBsb3ltZW50IHRpbWVcbiAgICB9XG5cbiAgICBpZiAodGhpcy5waHlzaWNhbE5hbWUubGVuZ3RoID4gMTI4KSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcignVGhlIGxpZmVjeWNsZVBvbGljeU5hbWUgY2Fubm90IGJlIGxvbmdlciB0aGFuIDEyOCBjaGFyYWN0ZXJzJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGh5c2ljYWxOYW1lLmluY2x1ZGVzKCcgJykpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCdUaGUgbGlmZWN5Y2xlUG9saWN5TmFtZSBjYW5ub3QgY29udGFpbiBzcGFjZXMnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5waHlzaWNhbE5hbWUuaW5jbHVkZXMoJ18nKSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ1RoZSBsaWZlY3ljbGVQb2xpY3lOYW1lIGNhbm5vdCBjb250YWluIHVuZGVyc2NvcmVzJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGh5c2ljYWxOYW1lICE9PSB0aGlzLnBoeXNpY2FsTmFtZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcignVGhlIGxpZmVjeWNsZVBvbGljeU5hbWUgbXVzdCBiZSBsb3dlcmNhc2UnLCB0aGlzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
471
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLXBvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxpZmVjeWNsZS1wb2xpY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQyxtRUFBa0U7QUFDbEUsNEVBQXVFO0FBQ3ZFLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFJMUUsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7QUFvQzlGOztHQUVHO0FBQ0gsSUFBWSx5QkFhWDtBQWJELFdBQVkseUJBQXlCO0lBQ25DOztPQUVHO0lBQ0gsOENBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCxvREFBdUIsQ0FBQTtJQUN2Qjs7T0FFRztJQUNILGdEQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFiVyx5QkFBeUIseUNBQXpCLHlCQUF5QixRQWFwQztBQUVEOztHQUVHO0FBQ0gsSUFBWSxxQkFVWDtBQVZELFdBQVkscUJBQXFCO0lBQy9COztPQUVHO0lBQ0gsNENBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCw4Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBVlcscUJBQXFCLHFDQUFyQixxQkFBcUIsUUFVaEM7QUFFRDs7R0FFRztBQUNILElBQVksMkJBVVg7QUFWRCxXQUFZLDJCQUEyQjtJQUNyQzs7T0FFRztJQUNILHNEQUF1QixDQUFBO0lBRXZCOztPQUVHO0lBQ0gsa0VBQW1DLENBQUE7QUFDckMsQ0FBQyxFQVZXLDJCQUEyQiwyQ0FBM0IsMkJBQTJCLFFBVXRDO0FBeVBELE1BQWUsbUJBQW9CLFNBQVEsR0FBRyxDQUFDLFFBQVE7SUFJckQ7O09BRUc7SUFDSSxLQUFLLENBQUMsT0FBdUIsRUFBRSxHQUFHLE9BQWlCO1FBQ3hELE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDOUIsT0FBTztZQUNQ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QUFFLElBQUksQ0FBQyxDQUFDO1lBQ25GLENBQUM7U0FDRjs7WUE1WlUsdURBQWU7Ozs7O0FBQWYsMENBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ2ZuTGlmZWN5Y2xlUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWltYWdlYnVpbGRlcic7XG5pbXBvcnQgeyBtZW1vaXplZEdldHRlciB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSVJlY2lwZUJhc2UgfSBmcm9tICcuL3JlY2lwZS1iYXNlJztcblxuY29uc3QgTElGRUNZQ0xFX1BPTElDWV9TWU1CT0wgPSBTeW1ib2wuZm9yKCdAYXdzLWNkay9hd3MtaW1hZ2VidWlsZGVyLWFscGhhLkxpZmVjeWNsZVBvbGljeScpO1xuXG4vKipcbiAqIEFuIEVDMiBJbWFnZSBCdWlsZGVyIExpZmVjeWNsZSBQb2xpY3kuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUxpZmVjeWNsZVBvbGljeSBleHRlbmRzIGNkay5JUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgbGlmZWN5Y2xlIHBvbGljeVxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBsaWZlY3ljbGVQb2xpY3lBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGxpZmVjeWNsZSBwb2xpY3lcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbGlmZWN5Y2xlUG9saWN5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHcmFudCBjdXN0b20gYWN0aW9ucyB0byB0aGUgZ2l2ZW4gZ3JhbnRlZSBmb3IgdGhlIGxpZmVjeWNsZSBwb2xpY3lcbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgcHJpbmNpcGFsXG4gICAqIEBwYXJhbSBhY3Rpb25zIC0gVGhlIGxpc3Qgb2YgYWN0aW9uc1xuICAgKi9cbiAgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIHBlcm1pc3Npb25zIHRvIHRoZSBnaXZlbiBncmFudGVlIGZvciB0aGUgbGlmZWN5Y2xlIHBvbGljeVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSAtIFRoZSBwcmluY2lwYWxcbiAgICovXG4gIGdyYW50UmVhZChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcbn1cblxuLyoqXG4gKiBUaGUgYWN0aW9uIHRvIHBlcmZvcm0gb24gdGhlIHJlc291cmNlcyB3aGljaCB0aGUgcG9saWN5IGFwcGxpZXMgdG9cbiAqL1xuZXhwb3J0IGVudW0gTGlmZWN5Y2xlUG9saWN5QWN0aW9uVHlwZSB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcnVsZSBzaG91bGQgZGVsZXRlIHRoZSByZXNvdXJjZSB3aGVuIGl0IGlzIGFwcGxpZWRcbiAgICovXG4gIERFTEVURSA9ICdERUxFVEUnLFxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHJ1bGUgc2hvdWxkIGRlcHJlY2F0ZSB0aGUgcmVzb3VyY2Ugd2hlbiBpdCBpcyBhcHBsaWVkXG4gICAqL1xuICBERVBSRUNBVEUgPSAnREVQUkVDQVRFJyxcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSBydWxlIHNob3VsZCBkaXNhYmxlIHRoZSByZXNvdXJjZSB3aGVuIGl0IGlzIGFwcGxpZWRcbiAgICovXG4gIERJU0FCTEUgPSAnRElTQUJMRScsXG59XG5cbi8qKlxuICogVGhlIHN0YXR1cyBvZiB0aGUgbGlmZWN5Y2xlIHBvbGljeSwgaW5kaWNhdGluZyB3aGV0aGVyIGl0IHdpbGwgcnVuXG4gKi9cbmV4cG9ydCBlbnVtIExpZmVjeWNsZVBvbGljeVN0YXR1cyB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgbGlmZWN5Y2xlIHBvbGljeSBzaG91bGQgYmUgZW5hYmxlZFxuICAgKi9cbiAgRU5BQkxFRCA9ICdFTkFCTEVEJyxcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgdGhlIGxpZmVjeWNsZSBwb2xpY3kgc2hvdWxkIGJlIGRpc2FibGVkXG4gICAqL1xuICBESVNBQkxFRCA9ICdESVNBQkxFRCcsXG59XG5cbi8qKlxuICogVGhlIHJlc291cmNlIHR5cGUgd2hpY2ggdGhlIGxpZmVjeWNsZSBwb2xpY3kgaXMgYXBwbGllZCB0b1xuICovXG5leHBvcnQgZW51bSBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSBwb2xpY3kgYXBwbGllcyB0byBBTUktYmFzZWQgaW1hZ2VzXG4gICAqL1xuICBBTUlfSU1BR0UgPSAnQU1JX0lNQUdFJyxcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSBwb2xpY3kgYXBwbGllcyB0byBjb250YWluZXIgaW1hZ2VzXG4gICAqL1xuICBDT05UQUlORVJfSU1BR0UgPSAnQ09OVEFJTkVSX0lNQUdFJyxcbn1cblxuLyoqXG4gKiBUaGUgYWN0aW9uIHRvIHBlcmZvcm0gaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpZmVjeWNsZVBvbGljeUFjdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgYWN0aW9uIHRvIHBlcmZvcm0gb24gdGhlIHJlc291cmNlcyBzZWxlY3RlZCBpbiB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBMaWZlY3ljbGVQb2xpY3lBY3Rpb25UeXBlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgQU1JcyBpbiB0aGUgc2NvcGUgb2YgdGhlIGxpZmVjeWNsZSBydWxlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZSBmb3IgQU1JLWJhc2VkIHBvbGljaWVzLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHJlYWRvbmx5IGluY2x1ZGVBbWlzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIGNvbnRhaW5lcnMgaW4gdGhlIHNjb3BlIG9mIHRoZSBsaWZlY3ljbGUgcnVsZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRydWUgZm9yIGNvbnRhaW5lci1iYXNlZCBwb2xpY2llcywgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICByZWFkb25seSBpbmNsdWRlQ29udGFpbmVycz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5jbHVkZSBzbmFwc2hvdHMgaW4gdGhlIHNjb3BlIG9mIHRoZSBsaWZlY3ljbGUgcnVsZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRydWUgZm9yIEFNSS1iYXNlZCBwb2xpY2llcywgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICByZWFkb25seSBpbmNsdWRlU25hcHNob3RzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgcmVzb3VyY2UgZmlsdGVyaW5nIHRvIGFwcGx5IGluIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVQb2xpY3lGaWx0ZXIge1xuICAvKipcbiAgICogVGhlIHJlc291cmNlIGFnZSBmaWx0ZXIgdG8gYXBwbHkgaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmUgaWYgYSBjb3VudCBmaWx0ZXIgaXMgcHJvdmlkZWQuIE90aGVyd2lzZSwgYW4gYWdlIGZpbHRlciBpcyByZXF1aXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFnZUZpbHRlcj86IExpZmVjeWNsZVBvbGljeUFnZUZpbHRlcjtcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIGNvdW50IGZpbHRlciB0byBhcHBseSBpbiB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZSBpZiBhbiBhZ2UgZmlsdGVyIGlzIHByb3ZpZGVkLiBPdGhlcndpc2UsIGEgY291bnQgZmlsdGVyIGlzIHJlcXVpcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY291bnRGaWx0ZXI/OiBMaWZlY3ljbGVQb2xpY3lDb3VudEZpbHRlcjtcbn1cblxuLyoqXG4gKiBUaGUgY291bnQtYmFzZWQgZmlsdGVyaW5nIHRvIGFwcGx5IGluIGEgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlmZWN5Y2xlUG9saWN5Q291bnRGaWx0ZXIge1xuICAvKipcbiAgICogVGhlIG1pbmltdW0gbnVtYmVyIG9mIHJlc291cmNlcyB0byBrZWVwIG9uIGhhbmQgYXMgcGFydCBvZiByZXNvdXJjZSBmaWx0ZXJpbmdcbiAgICovXG4gIHJlYWRvbmx5IGNvdW50OiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhlIGFnZS1iYXNlZCBmaWx0ZXJpbmcgdG8gYXBwbHkgaW4gYSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVQb2xpY3lBZ2VGaWx0ZXIge1xuICAvKipcbiAgICogVGhlIG1pbmltdW0gYWdlIG9mIHRoZSByZXNvdXJjZSB0byBmaWx0ZXIuIFRoZSBwcm92aWRlZCBkdXJhdGlvbiB3aWxsIGJlIHJvdW5kZWQgdXAgdG8gdGhlIG5lYXJlc3RcbiAgICogZGF5L3dlZWsvbW9udGgveWVhciB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5IGFnZTogY2RrLkR1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBGb3IgYWdlLWJhc2VkIGZpbHRlcnMsIHRoZSBudW1iZXIgb2YgRUMyIEltYWdlIEJ1aWxkZXIgaW1hZ2VzIHRvIGtlZXAgb24gaGFuZCBvbmNlIHRoZSBydWxlIGlzIGFwcGxpZWQuIFRoZSB2YWx1ZVxuICAgKiBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMTAuXG4gICAqXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IHJldGFpbkF0TGVhc3Q/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhlIHJ1bGVzIHRvIGFwcGx5IGZvciBleGNsdWRpbmcgRUMyIEltYWdlIEJ1aWxkZXIgaW1hZ2VzIGZyb20gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpZmVjeWNsZVBvbGljeUltYWdlRXhjbHVzaW9uUnVsZXMge1xuICAvKipcbiAgICogRXhjbHVkZXMgRUMyIEltYWdlIEJ1aWxkZXIgaW1hZ2VzIHdpdGggYW55IG9mIHRoZSBwcm92aWRlZCB0YWdzIGZyb20gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFnczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBUaGUgcnVsZXMgdG8gYXBwbHkgZm9yIGV4Y2x1ZGluZyBBTUlzIGZyb20gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpZmVjeWNsZVBvbGljeUFtaUV4Y2x1c2lvblJ1bGVzIHtcbiAgLyoqXG4gICAqIEV4Y2x1ZGVzIHB1YmxpYyBBTUlzIGZyb20gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZSBpZiB0cnVlXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBpc1B1YmxpYz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEV4Y2x1ZGVzIEFNSXMgd2hpY2ggd2VyZSBsYXVuY2hlZCBmcm9tIHdpdGhpbiB0aGUgcHJvdmlkZWQgZHVyYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgbGFzdExhdW5jaGVkPzogY2RrLkR1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBFeGNsdWRlcyBBTUlzIHdoaWNoIHJlc2lkZSBpbiBhbnkgb2YgdGhlIHByb3ZpZGVkIHJlZ2lvbnNcbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9ucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBFeGNsdWRlcyBBTUlzIHdoaWNoIGFyZSBzaGFyZWQgd2l0aCBhbnkgb2YgdGhlIHByb3ZpZGVkIHNoYXJlZCBhY2NvdW50c1xuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBzaGFyZWRBY2NvdW50cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBFeGNsdWRlcyBBTUlzIHdoaWNoIGhhdmUgYW55IG9mIHRoZSBwcm92aWRlZCB0YWdzIGFwcGxpZWQgdG8gaXRcbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogVGhlIHJ1bGVzIHRvIGFwcGx5IGZvciBleGNsdWRpbmcgcmVzb3VyY2VzIGZyb20gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpZmVjeWNsZVBvbGljeUV4Y2x1c2lvblJ1bGVzIHtcbiAgLyoqXG4gICAqIFRoZSBydWxlcyB0byBhcHBseSBmb3IgZXhjbHVkaW5nIEVDMiBJbWFnZSBCdWlsZGVyIGltYWdlcyBmcm9tIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBleGNsdXNpb24gcnVsZXMgYXJlIGFwcGxpZWQgb24gdGhlIGltYWdlXG4gICAqL1xuICByZWFkb25seSBpbWFnZUV4Y2x1c2lvblJ1bGVzPzogTGlmZWN5Y2xlUG9saWN5SW1hZ2VFeGNsdXNpb25SdWxlcztcblxuICAvKipcbiAgICogVGhlIHJ1bGVzIHRvIGFwcGx5IGZvciBleGNsdWRpbmcgQU1JcyBmcm9tIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBleGNsdXNpb24gcnVsZXMgYXJlIGFwcGxpZWQgb24gdGhlIEFNSVxuICAgKi9cbiAgcmVhZG9ubHkgYW1pRXhjbHVzaW9uUnVsZXM/OiBMaWZlY3ljbGVQb2xpY3lBbWlFeGNsdXNpb25SdWxlcztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGRldGFpbHMgZm9yIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlmZWN5Y2xlUG9saWN5RGV0YWlsIHtcbiAgLyoqXG4gICAqIFRoZSBhY3Rpb24gdG8gcGVyZm9ybSBpbiB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gICAqL1xuICByZWFkb25seSBhY3Rpb246IExpZmVjeWNsZVBvbGljeUFjdGlvbjtcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIGZpbHRlcmluZyB0byBhcHBseSBpbiB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXI6IExpZmVjeWNsZVBvbGljeUZpbHRlcjtcblxuICAvKipcbiAgICogVGhlIHJ1bGVzIHRvIGFwcGx5IGZvciBleGNsdWRpbmcgcmVzb3VyY2VzIGZyb20gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGV4Y2x1c2lvbiBydWxlcyBhcmUgYXBwbGllZCBvbiBhbnkgcmVzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IGV4Y2x1c2lvblJ1bGVzPzogTGlmZWN5Y2xlUG9saWN5RXhjbHVzaW9uUnVsZXM7XG59XG5cbi8qKlxuICogU2VsZWN0aW9uIGNyaXRlcmlhIGZvciB0aGUgcmVzb3VyY2VzIHRoYXQgdGhlIGxpZmVjeWNsZSBwb2xpY3kgYXBwbGllcyB0b1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExpZmVjeWNsZVBvbGljeVJlc291cmNlU2VsZWN0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGltYWdlIHJlY2lwZXMgb3IgY29udGFpbmVyIHJlY2lwZXMgdG8gYXBwbHkgdGhlIGxpZmVjeWNsZSBwb2xpY3kgdG9cbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lIGlmIHRhZyBzZWxlY3Rpb25zIGFyZSBwcm92aWRlZC4gT3RoZXJ3aXNlLCBhdCBsZWFzdCBvbmUgcmVjaXBlIG9yIHRhZyBzZWxlY3Rpb24gbXVzdCBiZSBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVjaXBlcz86IElSZWNpcGVCYXNlW107XG5cbiAgLyoqXG4gICAqIFNlbGVjdHMgRUMyIEltYWdlIEJ1aWxkZXIgaW1hZ2VzIGNvbnRhaW5pbmcgYW55IG9mIHRoZSBwcm92aWRlZCB0YWdzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZSBpZiByZWNpcGUgc2VsZWN0aW9ucyBhcmUgcHJvdmlkZWQuIE90aGVyd2lzZSwgYXQgbGVhc3Qgb25lIHJlY2lwZSBvciB0YWcgc2VsZWN0aW9uIG11c3QgYmUgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgTGlmZWN5Y2xlIFBvbGljeSByZXNvdXJjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpZmVjeWNsZVBvbGljeVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIEltYWdlIEJ1aWxkZXIgcmVzb3VyY2UgdGhhdCB0aGUgbGlmZWN5Y2xlIHBvbGljeSBhcHBsaWVzIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VUeXBlOiBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGU7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZGV0YWlscyBmb3IgdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZXMuXG4gICAqL1xuICByZWFkb25seSBkZXRhaWxzOiBMaWZlY3ljbGVQb2xpY3lEZXRhaWxbXTtcblxuICAvKipcbiAgICogU2VsZWN0aW9uIGNyaXRlcmlhIGZvciB0aGUgcmVzb3VyY2VzIHRoYXQgdGhlIGxpZmVjeWNsZSBwb2xpY3kgYXBwbGllcyB0by5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlU2VsZWN0aW9uOiBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVNlbGVjdGlvbjtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGxpZmVjeWNsZSBwb2xpY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBuYW1lIGlzIGdlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbGlmZWN5Y2xlUG9saWN5TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBsaWZlY3ljbGUgcG9saWN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0YXR1cyBvZiB0aGUgbGlmZWN5Y2xlIHBvbGljeS5cbiAgICpcbiAgICogQGRlZmF1bHQgTGlmZWN5Y2xlUG9saWN5U3RhdHVzLkVOQUJMRURcbiAgICovXG4gIHJlYWRvbmx5IHN0YXR1cz86IExpZmVjeWNsZVBvbGljeVN0YXR1cztcblxuICAvKipcbiAgICogVGhlIGV4ZWN1dGlvbiByb2xlIHRoYXQgZ3JhbnRzIEltYWdlIEJ1aWxkZXIgYWNjZXNzIHRvIHJ1biBsaWZlY3ljbGUgYWN0aW9ucy5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgYW4gZXhlY3V0aW9uIHJvbGUgd2lsbCBiZSBjcmVhdGVkIHdpdGggdGhlIG1pbmltYWwgcGVybWlzc2lvbnMgbmVlZGVkIHRvIGV4ZWN1dGUgdGhlIGxpZmVjeWNsZSBwb2xpY3lcbiAgICogYWN0aW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbiBleGVjdXRpb24gcm9sZSB3aWxsIGJlIGdlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0aW9uUm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIHRhZ3MgdG8gYXBwbHkgdG8gdGhlIGxpZmVjeWNsZSBwb2xpY3lcbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuYWJzdHJhY3QgY2xhc3MgTGlmZWN5Y2xlUG9saWN5QmFzZSBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIElMaWZlY3ljbGVQb2xpY3kge1xuICBhYnN0cmFjdCByZWFkb25seSBsaWZlY3ljbGVQb2xpY3lBcm46IHN0cmluZztcbiAgYWJzdHJhY3QgcmVhZG9ubHkgbGlmZWN5Y2xlUG9saWN5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIHB1YmxpYyBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnMsXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLmxpZmVjeWNsZVBvbGljeUFybl0sXG4gICAgICBzY29wZTogdGhpcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmdyYW50KGdyYW50ZWUsICdpbWFnZWJ1aWxkZXI6R2V0TGlmZWN5Y2xlUG9saWN5Jyk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIEVDMiBJbWFnZSBCdWlsZGVyIExpZmVjeWNsZSBQb2xpY3kuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaW1hZ2VidWlsZGVyL2xhdGVzdC91c2VyZ3VpZGUvbWFuYWdlLWltYWdlLWxpZmVjeWNsZXMuaHRtbFxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgTGlmZWN5Y2xlUG9saWN5IGV4dGVuZHMgTGlmZWN5Y2xlUG9saWN5QmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWltYWdlYnVpbGRlci1hbHBoYS5MaWZlY3ljbGVQb2xpY3knO1xuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgbGlmZWN5Y2xlIHBvbGljeSBnaXZlbiBpdHMgQVJOLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tTGlmZWN5Y2xlUG9saWN5QXJuKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGxpZmVjeWNsZVBvbGljeUFybjogc3RyaW5nKTogSUxpZmVjeWNsZVBvbGljeSB7XG4gICAgY29uc3QgbGlmZWN5Y2xlUG9saWN5TmFtZSA9IGNkay5TdGFjay5vZihzY29wZSkuc3BsaXRBcm4oXG4gICAgICBsaWZlY3ljbGVQb2xpY3lBcm4sXG4gICAgICBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgKS5yZXNvdXJjZU5hbWUhO1xuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgTGlmZWN5Y2xlUG9saWN5QmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbGlmZWN5Y2xlUG9saWN5QXJuID0gbGlmZWN5Y2xlUG9saWN5QXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGxpZmVjeWNsZVBvbGljeU5hbWUgPSBsaWZlY3ljbGVQb2xpY3lOYW1lO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGxpZmVjeWNsZSBwb2xpY3kgZ2l2ZW4gaXRzIG5hbWUuIElmIHRoZSBuYW1lIGlzIGEgdG9rZW4gcmVwcmVzZW50aW5nIGEgZHluYW1pYyBDbG91ZEZvcm1hdGlvblxuICAgKiBleHByZXNzaW9uLCB5b3UgbXVzdCBlbnN1cmUgYWxsIGFscGhhYmV0aWMgY2hhcmFjdGVycyBpbiB0aGUgZXhwcmVzc2lvbiBhcmUgYWxyZWFkeSBsb3dlcmNhc2VkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21MaWZlY3ljbGVQb2xpY3lOYW1lKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGxpZmVjeWNsZVBvbGljeU5hbWU6IHN0cmluZyk6IElMaWZlY3ljbGVQb2xpY3kge1xuICAgIHJldHVybiBMaWZlY3ljbGVQb2xpY3kuZnJvbUxpZmVjeWNsZVBvbGljeUFybihcbiAgICAgIHNjb3BlLFxuICAgICAgaWQsXG4gICAgICBjZGsuU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICAgIHNlcnZpY2U6ICdpbWFnZWJ1aWxkZXInLFxuICAgICAgICByZXNvdXJjZTogJ2xpZmVjeWNsZS1wb2xpY3knLFxuICAgICAgICByZXNvdXJjZU5hbWU6IGxpZmVjeWNsZVBvbGljeU5hbWUsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBMaWZlY3ljbGVQb2xpY3kuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzTGlmZWN5Y2xlUG9saWN5KHg6IGFueSk6IHggaXMgTGlmZWN5Y2xlUG9saWN5IHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YgeCA9PT0gJ29iamVjdCcgJiYgTElGRUNZQ0xFX1BPTElDWV9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZXhlY3V0aW9uIHJvbGUgdXNlZCBmb3IgbGlmZWN5Y2xlIHBvbGljeSBleGVjdXRpb25zXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZXhlY3V0aW9uUm9sZTogaWFtLklSb2xlO1xuXG4gIHByaXZhdGUgcmVzb3VyY2U6IENmbkxpZmVjeWNsZVBvbGljeTtcblxuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IExpZmVjeWNsZVBvbGljeVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6XG4gICAgICAgIHByb3BzLmxpZmVjeWNsZVBvbGljeU5hbWUgPz9cbiAgICAgICAgY2RrLkxhenkuc3RyaW5nKHtcbiAgICAgICAgICBwcm9kdWNlOiAoKSA9PlxuICAgICAgICAgICAgY2RrLk5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgICAgICAgIG1heExlbmd0aDogMTI4LFxuICAgICAgICAgICAgICBzZXBhcmF0b3I6ICctJyxcbiAgICAgICAgICAgICAgYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzOiAnLScsXG4gICAgICAgICAgICB9KS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICB9KSxcbiAgICB9KTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBMSUZFQ1lDTEVfUE9MSUNZX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcblxuICAgIHRoaXMudmFsaWRhdGVMaWZlY3ljbGVQb2xpY3lOYW1lKCk7XG4gICAgdGhpcy52YWxpZGF0ZVBvbGljeShwcm9wcyk7XG5cbiAgICB0aGlzLmV4ZWN1dGlvblJvbGUgPVxuICAgICAgcHJvcHMuZXhlY3V0aW9uUm9sZSA/P1xuICAgICAgbmV3IGlhbS5Sb2xlKHRoaXMsICdFeGVjdXRpb25Sb2xlJywge1xuICAgICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnaW1hZ2VidWlsZGVyLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgICAgbWFuYWdlZFBvbGljaWVzOiBbXG4gICAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKCdzZXJ2aWNlLXJvbGUvRUMySW1hZ2VCdWlsZGVyTGlmZWN5Y2xlRXhlY3V0aW9uUG9saWN5JyksXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgIGNvbnN0IGxpZmVjeWNsZVBvbGljeSA9IG5ldyBDZm5MaWZlY3ljbGVQb2xpY3kodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgbmFtZTogdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6IHByb3BzLnJlc291cmNlVHlwZSxcbiAgICAgIGV4ZWN1dGlvblJvbGU6IHRoaXMuZXhlY3V0aW9uUm9sZS5yb2xlQXJuLFxuICAgICAgcG9saWN5RGV0YWlsczogdGhpcy5idWlsZFBvbGljeURldGFpbHMocHJvcHMucmVzb3VyY2VUeXBlLCBwcm9wcy5kZXRhaWxzKSxcbiAgICAgIHJlc291cmNlU2VsZWN0aW9uOiB7XG4gICAgICAgIC4uLihwcm9wcy5yZXNvdXJjZVNlbGVjdGlvbi5yZWNpcGVzICE9PSB1bmRlZmluZWQgJiYge1xuICAgICAgICAgIHJlY2lwZXM6IHRoaXMuYnVpbGRSZWNpcGVzKHByb3BzLnJlc291cmNlVHlwZSwgcHJvcHMucmVzb3VyY2VTZWxlY3Rpb24ucmVjaXBlcyksXG4gICAgICAgIH0pLFxuICAgICAgICB0YWdNYXA6IHByb3BzLnJlc291cmNlU2VsZWN0aW9uLnRhZ3MsXG4gICAgICB9LFxuICAgICAgc3RhdHVzOiBwcm9wcy5zdGF0dXMsXG4gICAgICB0YWdzOiBwcm9wcy50YWdzLFxuICAgIH0pO1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IGxpZmVjeWNsZVBvbGljeTtcbiAgfVxuXG4gIEBtZW1vaXplZEdldHRlclxuICBwdWJsaWMgZ2V0IGxpZmVjeWNsZVBvbGljeU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRSZXNvdXJjZU5hbWVBdHRyaWJ1dGUodGhpcy5yZXNvdXJjZS5yZWYpO1xuICB9XG5cbiAgQG1lbW9pemVkR2V0dGVyXG4gIHB1YmxpYyBnZXQgbGlmZWN5Y2xlUG9saWN5QXJuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVzb3VyY2VBcm5BdHRyaWJ1dGUodGhpcy5yZXNvdXJjZS5hdHRyQXJuLCB7XG4gICAgICBzZXJ2aWNlOiAnaW1hZ2VidWlsZGVyJyxcbiAgICAgIHJlc291cmNlOiAnbGlmZWN5Y2xlLXBvbGljeScsXG4gICAgICByZXNvdXJjZU5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyB0aGUgcG9saWN5IGRldGFpbHMgcHJvcGVydHkgaW50byB0aGUgYFBvbGljeURldGFpbGAgdHlwZSBpbiB0aGUgQ2xvdWRGb3JtYXRpb24gTDEgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlVHlwZSBUaGUgcmVzb3VyY2UgdHlwZSBvZiB0aGUgbGlmZWN5Y2xlIHBvbGljeVxuICAgKiBAcGFyYW0gZGV0YWlscyBUaGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZFBvbGljeURldGFpbHMoXG4gICAgcmVzb3VyY2VUeXBlOiBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUsXG4gICAgZGV0YWlsczogTGlmZWN5Y2xlUG9saWN5RGV0YWlsW10sXG4gICk6IENmbkxpZmVjeWNsZVBvbGljeS5Qb2xpY3lEZXRhaWxQcm9wZXJ0eVtdIHtcbiAgICByZXR1cm4gZGV0YWlscy5tYXAoKGRldGFpbCk6IENmbkxpZmVjeWNsZVBvbGljeS5Qb2xpY3lEZXRhaWxQcm9wZXJ0eSA9PiB7XG4gICAgICBjb25zdCBhY3Rpb24gPSB0aGlzLmJ1aWxkQWN0aW9uKHJlc291cmNlVHlwZSwgZGV0YWlsLmFjdGlvbik7XG4gICAgICBjb25zdCBleGNsdXNpb25SdWxlcyA9XG4gICAgICAgIGRldGFpbC5leGNsdXNpb25SdWxlcyAhPT0gdW5kZWZpbmVkID8gdGhpcy5idWlsZEV4Y2x1c2lvblJ1bGVzKGRldGFpbC5leGNsdXNpb25SdWxlcykgOiB1bmRlZmluZWQ7XG5cbiAgICAgIHRoaXMudmFsaWRhdGVQb2xpY3lEZXRhaWxBY3Rpb24ocmVzb3VyY2VUeXBlLCBkZXRhaWwuYWN0aW9uLCBleGNsdXNpb25SdWxlcz8uYW1pcyk7XG4gICAgICB0aGlzLnZhbGlkYXRlUG9saWN5RGV0YWlsRmlsdGVyKGRldGFpbC5maWx0ZXIpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgcmV0YWluQXRMZWFzdDogZGV0YWlsLmZpbHRlci5hZ2VGaWx0ZXI/LnJldGFpbkF0TGVhc3QsXG4gICAgICAgICAgdHlwZTogZGV0YWlsLmZpbHRlci5hZ2VGaWx0ZXIgIT09IHVuZGVmaW5lZCA/ICdBR0UnIDogJ0NPVU5UJyxcbiAgICAgICAgICAuLi4oZGV0YWlsLmZpbHRlci5hZ2VGaWx0ZXIgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyB0aGlzLmNvbnZlcnREdXJhdGlvblRvVGltZVVuaXRWYWx1ZShkZXRhaWwuZmlsdGVyLmFnZUZpbHRlci5hZ2UpXG4gICAgICAgICAgICA6IHsgdmFsdWU6IGRldGFpbC5maWx0ZXIuY291bnRGaWx0ZXIhLmNvdW50IH0pLFxuICAgICAgICB9LFxuICAgICAgICAuLi4oZXhjbHVzaW9uUnVsZXMgIT09IHVuZGVmaW5lZCAmJiB7IGV4Y2x1c2lvblJ1bGVzIH0pLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIHJlY2lwZXMgcHJvcGVydHkgaW4gdGhlIHJlc291cmNlIHNlbGVjdGlvbiBpbnRvIHRoZSBgUmVjaXBlU2VsZWN0aW9uYCB0eXBlIGluIHRoZSBDbG91ZEZvcm1hdGlvbiBMMVxuICAgKiBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VUeXBlIFRoZSByZXNvdXJjZSB0eXBlIG9mIHRoZSBsaWZlY3ljbGUgcG9saWN5XG4gICAqIEBwYXJhbSByZWNpcGVzIFRoZSByZWNpcGVzIHBhc3NlZCBpbiB0aGUgcHJvcHNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYnVpbGRSZWNpcGVzKFxuICAgIHJlc291cmNlVHlwZTogTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlLFxuICAgIHJlY2lwZXM6IElSZWNpcGVCYXNlW10sXG4gICk6IENmbkxpZmVjeWNsZVBvbGljeS5SZWNpcGVTZWxlY3Rpb25Qcm9wZXJ0eVtdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gcmVjaXBlcz8ubWFwKChyZWNpcGUpOiBDZm5MaWZlY3ljbGVQb2xpY3kuUmVjaXBlU2VsZWN0aW9uUHJvcGVydHkgPT4ge1xuICAgICAgaWYgKHJlY2lwZS5faXNJbWFnZVJlY2lwZSgpKSB7XG4gICAgICAgIGlmIChyZXNvdXJjZVR5cGUgPT09IExpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZS5DT05UQUlORVJfSU1BR0UpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICAgIGByZWNpcGVzIGluIHRoZSByZXNvdXJjZSBzZWxlY3Rpb24gbXVzdCBhbGwgYmUgY29udGFpbmVyIHJlY2lwZXMgZm9yIHBvbGljeSB0eXBlICR7TGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlLkNPTlRBSU5FUl9JTUFHRX1gLFxuICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBuYW1lOiByZWNpcGUuaW1hZ2VSZWNpcGVOYW1lLFxuICAgICAgICAgIHNlbWFudGljVmVyc2lvbjogcmVjaXBlLmltYWdlUmVjaXBlVmVyc2lvbixcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlY2lwZS5faXNDb250YWluZXJSZWNpcGUoKSkge1xuICAgICAgICBpZiAocmVzb3VyY2VUeXBlID09PSBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUuQU1JX0lNQUdFKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgICBgcmVjaXBlcyBpbiB0aGUgcmVzb3VyY2Ugc2VsZWN0aW9uIG11c3QgYWxsIGJlIGltYWdlIHJlY2lwZXMgZm9yIHBvbGljeSB0eXBlICR7TGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlLkFNSV9JTUFHRX1gLFxuICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBuYW1lOiByZWNpcGUuY29udGFpbmVyUmVjaXBlTmFtZSxcbiAgICAgICAgICBzZW1hbnRpY1ZlcnNpb246IHJlY2lwZS5jb250YWluZXJSZWNpcGVWZXJzaW9uLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgJ3JlY2lwZXMgaW4gdGhlIHJlc291cmNlIHNlbGVjdGlvbiBtdXN0IGVpdGhlciBiZSBhbiBJSW1hZ2VSZWNpcGUgb3IgSUNvbnRhaW5lclJlY2lwZScsXG4gICAgICAgIHRoaXMsXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyB0aGUgZXhjbHVzaW9uIHJ1bGVzIHByb3BlcnR5IGludG8gdGhlIGBFeGNsdXNpb25SdWxlc2AgdHlwZSBpbiB0aGUgQ2xvdWRGb3JtYXRpb24gTDEgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIGV4Y2x1c2lvblJ1bGVzIFRoZSBleGNsdXNpb24gcnVsZXMgZm9yIHJlc291cmNlcyBhcHBsaWVkIGluIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYnVpbGRFeGNsdXNpb25SdWxlcyhcbiAgICBleGNsdXNpb25SdWxlczogTGlmZWN5Y2xlUG9saWN5RXhjbHVzaW9uUnVsZXMsXG4gICk6IENmbkxpZmVjeWNsZVBvbGljeS5FeGNsdXNpb25SdWxlc1Byb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBhbWlFeGNsdXNpb25SdWxlczogQ2ZuTGlmZWN5Y2xlUG9saWN5LkFtaUV4Y2x1c2lvblJ1bGVzUHJvcGVydHkgPSB7XG4gICAgICAuLi4oZXhjbHVzaW9uUnVsZXMuYW1pRXhjbHVzaW9uUnVsZXM/LmlzUHVibGljICYmIHsgaXNQdWJsaWM6IGV4Y2x1c2lvblJ1bGVzLmFtaUV4Y2x1c2lvblJ1bGVzLmlzUHVibGljIH0pLFxuICAgICAgLi4uKGV4Y2x1c2lvblJ1bGVzLmFtaUV4Y2x1c2lvblJ1bGVzPy5sYXN0TGF1bmNoZWQgIT09IHVuZGVmaW5lZCAmJiB7XG4gICAgICAgIGxhc3RMYXVuY2hlZDogdGhpcy5jb252ZXJ0RHVyYXRpb25Ub1RpbWVVbml0VmFsdWUoZXhjbHVzaW9uUnVsZXMuYW1pRXhjbHVzaW9uUnVsZXMubGFzdExhdW5jaGVkLCAzNjUpLFxuICAgICAgfSksXG4gICAgICAuLi4oZXhjbHVzaW9uUnVsZXMuYW1pRXhjbHVzaW9uUnVsZXM/LnJlZ2lvbnM/Lmxlbmd0aCAmJiB7IHJlZ2lvbnM6IGV4Y2x1c2lvblJ1bGVzLmFtaUV4Y2x1c2lvblJ1bGVzLnJlZ2lvbnMgfSksXG4gICAgICAuLi4oZXhjbHVzaW9uUnVsZXMuYW1pRXhjbHVzaW9uUnVsZXM/LnNoYXJlZEFjY291bnRzPy5sZW5ndGggJiYge1xuICAgICAgICBzaGFyZWRBY2NvdW50czogZXhjbHVzaW9uUnVsZXMuYW1pRXhjbHVzaW9uUnVsZXMuc2hhcmVkQWNjb3VudHMsXG4gICAgICB9KSxcbiAgICAgIC4uLihleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcz8udGFncyAmJiB7IHRhZ01hcDogZXhjbHVzaW9uUnVsZXMuYW1pRXhjbHVzaW9uUnVsZXMudGFncyB9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgY2ZuRXhjbHVzaW9uUnVsZXM6IENmbkxpZmVjeWNsZVBvbGljeS5FeGNsdXNpb25SdWxlc1Byb3BlcnR5ID0ge1xuICAgICAgLi4uKE9iamVjdC5rZXlzKGFtaUV4Y2x1c2lvblJ1bGVzKS5sZW5ndGggJiYgeyBhbWlzOiBhbWlFeGNsdXNpb25SdWxlcyB9KSxcbiAgICAgIC4uLihleGNsdXNpb25SdWxlcy5pbWFnZUV4Y2x1c2lvblJ1bGVzICE9PSB1bmRlZmluZWQgJiYgeyB0YWdNYXA6IGV4Y2x1c2lvblJ1bGVzLmltYWdlRXhjbHVzaW9uUnVsZXMudGFncyB9KSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGV4Y2x1c2lvblJ1bGVzKS5sZW5ndGggPyBjZm5FeGNsdXNpb25SdWxlcyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIGFjdGlvbiBwcm9wZXJ0eSBpbnRvIHRoZSBgQWN0aW9uYCB0eXBlIGluIHRoZSBDbG91ZEZvcm1hdGlvbiBMMSBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VUeXBlIFRoZSByZXNvdXJjZSB0eXBlIG9mIHRoZSBsaWZlY3ljbGUgcG9saWN5XG4gICAqIEBwYXJhbSBhY3Rpb24gVGhlIGFjdGlvbiBiZWluZyB0YWtlbiBpbiB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkQWN0aW9uKFxuICAgIHJlc291cmNlVHlwZTogTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlLFxuICAgIGFjdGlvbjogTGlmZWN5Y2xlUG9saWN5QWN0aW9uLFxuICApOiBDZm5MaWZlY3ljbGVQb2xpY3kuQWN0aW9uUHJvcGVydHkge1xuICAgIGNvbnN0IGlzQ29udGFpbmVyUG9saWN5ID1cbiAgICAgICFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKHJlc291cmNlVHlwZSkgJiYgcmVzb3VyY2VUeXBlID09PSBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUuQ09OVEFJTkVSX0lNQUdFO1xuICAgIGNvbnN0IGlzQW1pUG9saWN5ID0gIWNkay5Ub2tlbi5pc1VucmVzb2x2ZWQocmVzb3VyY2VUeXBlKSAmJiByZXNvdXJjZVR5cGUgPT09IExpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZS5BTUlfSU1BR0U7XG5cbiAgICBjb25zdCBhbWlzID0gYWN0aW9uLmluY2x1ZGVBbWlzID8/IChpc0FtaVBvbGljeSA/IHRydWUgOiB1bmRlZmluZWQpO1xuICAgIGNvbnN0IHNuYXBzaG90cyA9IGFjdGlvbi5pbmNsdWRlU25hcHNob3RzID8/IChpc0FtaVBvbGljeSA/IHRydWUgOiB1bmRlZmluZWQpO1xuICAgIGNvbnN0IGNvbnRhaW5lcnMgPSBhY3Rpb24uaW5jbHVkZUNvbnRhaW5lcnMgPz8gKGlzQ29udGFpbmVyUG9saWN5ID8gdHJ1ZSA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgaW5jbHVkZVJlc291cmNlczogQ2ZuTGlmZWN5Y2xlUG9saWN5LkluY2x1ZGVSZXNvdXJjZXNQcm9wZXJ0eSA9IHtcbiAgICAgIC4uLihhbWlzICE9PSB1bmRlZmluZWQgJiYgeyBhbWlzIH0pLFxuICAgICAgLi4uKHNuYXBzaG90cyAhPT0gdW5kZWZpbmVkICYmIHsgc25hcHNob3RzIH0pLFxuICAgICAgLi4uKGNvbnRhaW5lcnMgIT09IHVuZGVmaW5lZCAmJiB7IGNvbnRhaW5lcnMgfSksXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBhY3Rpb24udHlwZSxcbiAgICAgIC4uLihPYmplY3Qua2V5cyhpbmNsdWRlUmVzb3VyY2VzKS5sZW5ndGggJiYgeyBpbmNsdWRlUmVzb3VyY2VzIH0pLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSB0b3AtbGV2ZWwgcHJvcGVydGllcyBvZiB0aGUgcG9saWN5XG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBUaGUgcHJvcHMgcGFzc2VkIGFzIGlucHV0IHRvIHRoZSBjb25zdHJ1Y3RcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVQb2xpY3kocHJvcHM6IExpZmVjeWNsZVBvbGljeVByb3BzKTogdm9pZCB7XG4gICAgaWYgKHByb3BzLnJlc291cmNlU2VsZWN0aW9uLnJlY2lwZXM/Lmxlbmd0aCAmJiBPYmplY3Qua2V5cyhwcm9wcy5yZXNvdXJjZVNlbGVjdGlvbi50YWdzIHx8IHt9KS5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCdyZXNvdXJjZSBzZWxlY3Rpb24gY2Fubm90IGNvbnRhaW4gYm90aCByZWNpcGVzIGFuZCB0YWdzJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKCFwcm9wcy5yZXNvdXJjZVNlbGVjdGlvbi5yZWNpcGVzPy5sZW5ndGggJiYgIU9iamVjdC5rZXlzKHByb3BzLnJlc291cmNlU2VsZWN0aW9uLnRhZ3MgfHwge30pLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ3Jlc291cmNlIHNlbGVjdGlvbiBtdXN0IGNvbnRhaW4gZWl0aGVyIHJlY2lwZXMgb3IgdGFncycsIHRoaXMpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5kZXRhaWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ2EgbGlmZWN5Y2xlIHBvbGljeSBtdXN0IGhhdmUgYXQgbGVhc3QgMSBydWxlJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmRldGFpbHMubGVuZ3RoID4gMykge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ2EgbGlmZWN5Y2xlIHBvbGljeSBjYW4gb25seSBoYXZlIHVwIHRvIDMgcnVsZXMnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBjb25zdCBhY3Rpb25zID0gcHJvcHMuZGV0YWlscy5tYXAoKGRldGFpbCkgPT4gZGV0YWlsLmFjdGlvbi50eXBlKTtcbiAgICBpZiAobmV3IFNldChhY3Rpb25zKS5zaXplICE9IGFjdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcignbGlmZWN5Y2xlIHBvbGljeSBydWxlcyBtYXkgbm90IGhhdmUgZHVwbGljYXRlIGFjdGlvbnMnLCB0aGlzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGEgcG9saWN5IGRldGFpbCBmaWx0ZXIgd2l0aGluIGEgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZVR5cGUgVGhlIHJlc291cmNlIHR5cGUgb2YgdGhlIGxpZmVjeWNsZSBwb2xpY3lcbiAgICogQHBhcmFtIGFjdGlvbiBUaGUgYWN0aW9uIGJlaW5nIHRha2VuIGluIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICogQHBhcmFtIGFtaUV4Y2x1c2lvblJ1bGVzIFRoZSBBTUkgZXhjbHVzaW9uIHJ1bGVzIGluIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVQb2xpY3lEZXRhaWxBY3Rpb24oXG4gICAgcmVzb3VyY2VUeXBlOiBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUsXG4gICAgYWN0aW9uOiBMaWZlY3ljbGVQb2xpY3lBY3Rpb24sXG4gICAgYW1pRXhjbHVzaW9uUnVsZXM6IENmbkxpZmVjeWNsZVBvbGljeS5BbWlFeGNsdXNpb25SdWxlc1Byb3BlcnR5IHwgY2RrLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkLFxuICApIHtcbiAgICBpZiAoIWNkay5Ub2tlbi5pc1VucmVzb2x2ZWQocmVzb3VyY2VUeXBlKSAmJiByZXNvdXJjZVR5cGUgPT09IExpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZS5DT05UQUlORVJfSU1BR0UpIHtcbiAgICAgIGlmICghY2RrLlRva2VuLmlzVW5yZXNvbHZlZChhY3Rpb24udHlwZSkgJiYgYWN0aW9uLnR5cGUgIT09IExpZmVjeWNsZVBvbGljeUFjdGlvblR5cGUuREVMRVRFKSB7XG4gICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCd5b3UgbWF5IG9ubHkgc3BlY2lmeSBERUxFVEUgcnVsZXMgZm9yIGNvbnRhaW5lciBwb2xpY2llcycsIHRoaXMpO1xuICAgICAgfVxuXG4gICAgICBpZiAoYWN0aW9uLmluY2x1ZGVBbWlzKSB7XG4gICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCd5b3UgY2Fubm90IGluY2x1ZGUgQU1JcyBpbiBhIGNvbnRhaW5lciBwb2xpY3knLCB0aGlzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGFjdGlvbi5pbmNsdWRlU25hcHNob3RzKSB7XG4gICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCd5b3UgY2Fubm90IGluY2x1ZGUgc25hcHNob3RzIGluIGEgY29udGFpbmVyIHBvbGljeScsIHRoaXMpO1xuICAgICAgfVxuXG4gICAgICBpZiAoYW1pRXhjbHVzaW9uUnVsZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcigneW91IGNhbm5vdCBleGNsdWRlIEFNSXMgaW4gYSBjb250YWluZXIgcG9saWN5JywgdGhpcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgIWNkay5Ub2tlbi5pc1VucmVzb2x2ZWQocmVzb3VyY2VUeXBlKSAmJlxuICAgICAgcmVzb3VyY2VUeXBlID09PSBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUuQU1JX0lNQUdFICYmXG4gICAgICBhY3Rpb24uaW5jbHVkZUNvbnRhaW5lcnNcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCd5b3UgY2Fubm90IGluY2x1ZGUgY29udGFpbmVycyBpbiBhbiBBTUkgcG9saWN5JywgdGhpcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhIHBvbGljeSBkZXRhaWwgZmlsdGVyXG4gICAqXG4gICAqIEBwYXJhbSBmaWx0ZXIgVGhlIGxpZmVjeWNsZSBwb2xpY3kgcmVzb3VyY2UgZmlsdGVyIGFwcGxpZWQgaW4gdGhlIHJ1bGVcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVQb2xpY3lEZXRhaWxGaWx0ZXIoZmlsdGVyOiBMaWZlY3ljbGVQb2xpY3lGaWx0ZXIpIHtcbiAgICBpZiAoZmlsdGVyLmFnZUZpbHRlciAhPT0gdW5kZWZpbmVkICYmIGZpbHRlci5jb3VudEZpbHRlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcignZWl0aGVyIGFnZSBjb3VudCBjYW4gYmUgc3BlY2lmaWVkIGluIGEgcG9saWN5IGZpbHRlciwgYnV0IG5vdCBib3RoJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKGZpbHRlci5hZ2VGaWx0ZXIgPT09IHVuZGVmaW5lZCAmJiBmaWx0ZXIuY291bnRGaWx0ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ3lvdSBtdXN0IHByb3ZpZGUgYW4gYWdlIG9yIGNvdW50IGZpbHRlciBpbiB0aGUgcG9saWN5JywgdGhpcyk7XG4gICAgfVxuXG4gICAgY29uc3QgcmV0YWluQXRMZWFzdCA9IGZpbHRlci5hZ2VGaWx0ZXI/LnJldGFpbkF0TGVhc3Q7XG4gICAgaWYgKHJldGFpbkF0TGVhc3QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHJldGFpbkF0TGVhc3QgPCAxKSB7XG4gICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCd0aGUgcmV0YWluQXRMZWFzdCBmaWx0ZXIgdmFsdWUgbXVzdCBiZSBhdCBsZWFzdCAxJywgdGhpcyk7XG4gICAgICB9XG4gICAgICBpZiAocmV0YWluQXRMZWFzdCA+IDEwKSB7XG4gICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCd0aGUgcmV0YWluQXRMZWFzdCBmaWx0ZXIgdmFsdWUgbXVzdCBiZSBhdCBtb3N0IDEwJywgdGhpcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgYGNkay5EdXJhdGlvbmAgaW50byB0aGUgdmFsdWUgYW5kIHVuaXQgd2hpY2ggaXMgYWNjZXB0ZWQgYXMgZmlsdGVyIGFnZSBhbmQgbGFzdCBsYXVuY2hlZCBhZ2UgaW4gdGhlXG4gICAqIGxpZmVjeWNsZSBwb2xpY3kuIFRoZSB2YWx1ZSBpcyByb3VuZGVkIHVwIHRvIHRoZSBuZWFyZXN0IHdob2xlIG51bWJlci5cbiAgICpcbiAgICogQHBhcmFtIGR1cmF0aW9uIFRoZSBkdXJhdGlvbiB0byBjb252ZXJ0XG4gICAqIEBwYXJhbSB2YWx1ZUxpbWl0IFRoZSBtYXhpbXVtIHZhbHVlIHRoYXQgY2FuIGJlIHNwZWNpZmllZFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0RHVyYXRpb25Ub1RpbWVVbml0VmFsdWUoXG4gICAgZHVyYXRpb246IGNkay5EdXJhdGlvbixcbiAgICB2YWx1ZUxpbWl0OiBudW1iZXIgPSAxMDAwLFxuICApOiB7IHZhbHVlOiBudW1iZXI7IHVuaXQ6ICdEQVlTJyB8ICdXRUVLUycgfCAnTU9OVEhTJyB8ICdZRUFSUycgfSB7XG4gICAgY29uc3QgREFZU19QRVJfV0VFSyA9IDc7XG4gICAgY29uc3QgREFZU19QRVJfTU9OVEggPSAzMDtcbiAgICBjb25zdCBEQVlTX1BFUl9ZRUFSID0gMzY1O1xuXG4gICAgY29uc3QgdmFsdWVJbkRheXMgPSBNYXRoLmNlaWwoZHVyYXRpb24udG9EYXlzKCkpO1xuICAgIGlmICh2YWx1ZUluRGF5cyA8IDEpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCd0aGUgcHJvdmlkZWQgZHVyYXRpb24gbXVzdCBiZSBhdCBsZWFzdCAxIGRheScsIHRoaXMpO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZUluRGF5cyA8PSB2YWx1ZUxpbWl0KSB7XG4gICAgICByZXR1cm4geyB2YWx1ZTogdmFsdWVJbkRheXMsIHVuaXQ6ICdEQVlTJyB9O1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlSW5XZWVrcyA9IE1hdGguY2VpbCh2YWx1ZUluRGF5cyAvIERBWVNfUEVSX1dFRUspO1xuICAgIGlmICh2YWx1ZUluV2Vla3MgPD0gdmFsdWVMaW1pdCkge1xuICAgICAgcmV0dXJuIHsgdmFsdWU6IHZhbHVlSW5XZWVrcywgdW5pdDogJ1dFRUtTJyB9O1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlSW5Nb250aHMgPSBNYXRoLmNlaWwodmFsdWVJbkRheXMgLyBEQVlTX1BFUl9NT05USCk7XG4gICAgaWYgKHZhbHVlSW5Nb250aHMgPD0gdmFsdWVMaW1pdCkge1xuICAgICAgcmV0dXJuIHsgdmFsdWU6IHZhbHVlSW5Nb250aHMsIHVuaXQ6ICdNT05USFMnIH07XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWVJblllYXJzID0gTWF0aC5jZWlsKHZhbHVlSW5EYXlzIC8gREFZU19QRVJfWUVBUik7XG4gICAgaWYgKHZhbHVlSW5ZZWFycyA8PSB2YWx1ZUxpbWl0KSB7XG4gICAgICByZXR1cm4geyB2YWx1ZTogdmFsdWVJblllYXJzLCB1bml0OiAnWUVBUlMnIH07XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoYHRoZSBwcm92aWRlZCBkdXJhdGlvbiBtdXN0IGJlIGxlc3MgdGhhbiAke3ZhbHVlTGltaXR9IHllYXJzYCwgdGhpcyk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlTGlmZWN5Y2xlUG9saWN5TmFtZSgpIHtcbiAgICBpZiAoY2RrLlRva2VuLmlzVW5yZXNvbHZlZCh0aGlzLnBoeXNpY2FsTmFtZSkpIHtcbiAgICAgIHJldHVybjsgLy8gQ2Fubm90IHZhbGlkYXRlIHVucmVzb2x2ZWQgdG9rZW5zLCBnaXZlbiB0aGVpciBhY3R1YWwgdmFsdWUgaXMgcmVuZGVyZWQgYXQgZGVwbG95bWVudCB0aW1lXG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGh5c2ljYWxOYW1lLmxlbmd0aCA+IDEyOCkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ1RoZSBsaWZlY3ljbGVQb2xpY3lOYW1lIGNhbm5vdCBiZSBsb25nZXIgdGhhbiAxMjggY2hhcmFjdGVycycsIHRoaXMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBoeXNpY2FsTmFtZS5pbmNsdWRlcygnICcpKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcignVGhlIGxpZmVjeWNsZVBvbGljeU5hbWUgY2Fubm90IGNvbnRhaW4gc3BhY2VzJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGh5c2ljYWxOYW1lLmluY2x1ZGVzKCdfJykpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCdUaGUgbGlmZWN5Y2xlUG9saWN5TmFtZSBjYW5ub3QgY29udGFpbiB1bmRlcnNjb3JlcycsIHRoaXMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBoeXNpY2FsTmFtZSAhPT0gdGhpcy5waHlzaWNhbE5hbWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ1RoZSBsaWZlY3ljbGVQb2xpY3lOYW1lIG11c3QgYmUgbG93ZXJjYXNlJywgdGhpcyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/lib/os-version.js
CHANGED
|
@@ -25,7 +25,7 @@ var Platform;
|
|
|
25
25
|
* Represents an OS version for an EC2 Image Builder image
|
|
26
26
|
*/
|
|
27
27
|
class OSVersion {
|
|
28
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.OSVersion", version: "2.
|
|
28
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.OSVersion", version: "2.238.0-alpha.0" };
|
|
29
29
|
/**
|
|
30
30
|
* OS version for all Linux images
|
|
31
31
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { CfnImage, CfnImagePipeline } from 'aws-cdk-lib/aws-imagebuilder';
|
|
2
|
-
import { Construct } from 'constructs';
|
|
3
|
-
import { ImageProps } from '../image';
|
|
4
|
-
import { ImagePipelineProps } from '../image-pipeline';
|
|
1
|
+
import type { CfnImage, CfnImagePipeline } from 'aws-cdk-lib/aws-imagebuilder';
|
|
2
|
+
import type { Construct } from 'constructs';
|
|
3
|
+
import type { ImageProps } from '../image';
|
|
4
|
+
import type { ImagePipelineProps } from '../image-pipeline';
|
|
5
5
|
/**
|
|
6
6
|
* Generates the image tests configuration property into the `ImageTestsConfiguration` type in the CloudFormation L1
|
|
7
7
|
* definition.
|
|
@@ -64,4 +64,4 @@ const buildWorkflows = (props) => {
|
|
|
64
64
|
return cfnWorkflows?.length ? cfnWorkflows : undefined;
|
|
65
65
|
};
|
|
66
66
|
exports.buildWorkflows = buildWorkflows;
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYW5kLXBpcGVsaW5lLXByb3BzLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImltYWdlLWFuZC1waXBlbGluZS1wcm9wcy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBTW5DOzs7OztHQUtHO0FBQ0ksTUFBTSw0QkFBNEIsR0FBRyxDQUkxQyxLQUFhLEVBQ1EsRUFBRTtJQUN2QixJQUFJLEtBQUssQ0FBQyxpQkFBaUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMxQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsRUFBYSxDQUFDO0FBQ25FLENBQUMsQ0FBQztBQVhXLFFBQUEsNEJBQTRCLGdDQVd2QztBQUVGOzs7Ozs7R0FNRztBQUNJLE1BQU0sK0JBQStCLEdBQUcsQ0FJN0MsS0FBZ0IsRUFDaEIsS0FBYSxFQUNRLEVBQUU7SUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxLQUFLLENBQUMsMEJBQTBCLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDekYsTUFBTSxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsMEVBQTBFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLElBQUksS0FBSyxDQUFDLG9CQUFvQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ25GLE1BQU0sSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLG9FQUFvRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFRCxNQUFNLGdCQUFnQixHQUE4QztRQUNsRSxHQUFHLENBQUMsS0FBSyxDQUFDLDBCQUEwQixLQUFLLFNBQVMsSUFBSTtZQUNwRCxjQUFjLEVBQUUsS0FBSyxDQUFDLDBCQUEwQixDQUFDLGNBQWM7U0FDaEUsQ0FBQztRQUNGLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7S0FDaEcsQ0FBQztJQUVGLE1BQU0sMEJBQTBCLEdBQUc7UUFDakMsR0FBRyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsS0FBSyxTQUFTLElBQUksRUFBRSxvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNyRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE1BQU0sSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUM7S0FDbEUsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUUsMEJBQXNDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUM5RyxDQUFDLENBQUM7QUE1QlcsUUFBQSwrQkFBK0IsbUNBNEIxQztBQUVGOzs7OztHQUtHO0FBQ0ksTUFBTSxjQUFjLEdBQUcsQ0FJNUIsS0FBYSxFQUNRLEVBQUU7SUFDdkIsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUNyRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkYsSUFBSTtZQUNKLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztTQUNuQixDQUFDLENBQUMsQ0FBQztRQUNKLE9BQU87WUFDTCxXQUFXLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXO1lBQzFDLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztZQUM3QixhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWE7WUFDckMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQztTQUN6QyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFFLFlBQXdCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUN0RSxDQUFDLENBQUM7QUFwQlcsUUFBQSxjQUFjLGtCQW9CekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBDZm5JbWFnZSwgQ2ZuSW1hZ2VQaXBlbGluZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pbWFnZWJ1aWxkZXInO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSW1hZ2VQcm9wcyB9IGZyb20gJy4uL2ltYWdlJztcbmltcG9ydCB0eXBlIHsgSW1hZ2VQaXBlbGluZVByb3BzIH0gZnJvbSAnLi4vaW1hZ2UtcGlwZWxpbmUnO1xuXG4vKipcbiAqIEdlbmVyYXRlcyB0aGUgaW1hZ2UgdGVzdHMgY29uZmlndXJhdGlvbiBwcm9wZXJ0eSBpbnRvIHRoZSBgSW1hZ2VUZXN0c0NvbmZpZ3VyYXRpb25gIHR5cGUgaW4gdGhlIENsb3VkRm9ybWF0aW9uIEwxXG4gKiBkZWZpbml0aW9uLlxuICpcbiAqIEBwYXJhbSBwcm9wcyBQcm9wcyBpbnB1dCBmb3IgdGhlIGNvbnN0cnVjdFxuICovXG5leHBvcnQgY29uc3QgYnVpbGRJbWFnZVRlc3RzQ29uZmlndXJhdGlvbiA9IDxcbiAgUHJvcHNUIGV4dGVuZHMgSW1hZ2VQaXBlbGluZVByb3BzIHwgSW1hZ2VQcm9wcyxcbiAgT3V0cHV0VCBleHRlbmRzIENmbkltYWdlUGlwZWxpbmUuSW1hZ2VUZXN0c0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB8IENmbkltYWdlLkltYWdlVGVzdHNDb25maWd1cmF0aW9uUHJvcGVydHksXG4+KFxuICBwcm9wczogUHJvcHNULFxuKTogT3V0cHV0VCB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChwcm9wcy5pbWFnZVRlc3RzRW5hYmxlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiB7IGltYWdlVGVzdHNFbmFibGVkOiBwcm9wcy5pbWFnZVRlc3RzRW5hYmxlZCB9IGFzIE91dHB1dFQ7XG59O1xuXG4vKipcbiAqIEdlbmVyYXRlcyB0aGUgaW1hZ2Ugc2Nhbm5pbmcgY29uZmlndXJhdGlvbiBwcm9wZXJ0eSBpbnRvIHRoZSBgSW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb25gIHR5cGUgaW4gdGhlIENsb3VkRm9ybWF0aW9uXG4gKiBMMSBkZWZpbml0aW9uLlxuICpcbiAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gKiBAcGFyYW0gcHJvcHMgUHJvcHMgaW5wdXQgZm9yIHRoZSBjb25zdHJ1Y3RcbiAqL1xuZXhwb3J0IGNvbnN0IGJ1aWxkSW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb24gPSA8XG4gIFByb3BzVCBleHRlbmRzIEltYWdlUGlwZWxpbmVQcm9wcyB8IEltYWdlUHJvcHMsXG4gIE91dHB1dFQgZXh0ZW5kcyBDZm5JbWFnZVBpcGVsaW5lLkltYWdlU2Nhbm5pbmdDb25maWd1cmF0aW9uUHJvcGVydHkgfCBDZm5JbWFnZS5JbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvblByb3BlcnR5LFxuPihcbiAgc2NvcGU6IENvbnN0cnVjdCxcbiAgcHJvcHM6IFByb3BzVCxcbik6IE91dHB1dFQgfCB1bmRlZmluZWQgPT4ge1xuICBpZiAoIXByb3BzLnJlY2lwZS5faXNDb250YWluZXJSZWNpcGUoKSAmJiBwcm9wcy5pbWFnZVNjYW5uaW5nRWNyUmVwb3NpdG9yeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ2ltYWdlU2Nhbm5pbmdFY3JSZXBvc2l0b3J5IGlzIG9ubHkgc3VwcG9ydGVkIGZvciBjb250YWluZXIgcmVjaXBlIGJ1aWxkcycsIHNjb3BlKTtcbiAgfVxuXG4gIGlmICghcHJvcHMucmVjaXBlLl9pc0NvbnRhaW5lclJlY2lwZSgpICYmIHByb3BzLmltYWdlU2Nhbm5pbmdFY3JUYWdzICE9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcignaW1hZ2VTY2FubmluZ0VjclRhZ3MgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGNvbnRhaW5lciByZWNpcGUgYnVpbGRzJywgc2NvcGUpO1xuICB9XG5cbiAgY29uc3QgZWNyQ29uZmlndXJhdGlvbjogQ2ZuSW1hZ2VQaXBlbGluZS5FY3JDb25maWd1cmF0aW9uUHJvcGVydHkgPSB7XG4gICAgLi4uKHByb3BzLmltYWdlU2Nhbm5pbmdFY3JSZXBvc2l0b3J5ICE9PSB1bmRlZmluZWQgJiYge1xuICAgICAgcmVwb3NpdG9yeU5hbWU6IHByb3BzLmltYWdlU2Nhbm5pbmdFY3JSZXBvc2l0b3J5LnJlcG9zaXRvcnlOYW1lLFxuICAgIH0pLFxuICAgIC4uLigocHJvcHMuaW1hZ2VTY2FubmluZ0VjclRhZ3MgPz8gW10pLmxlbmd0aCAmJiB7IGNvbnRhaW5lclRhZ3M6IHByb3BzLmltYWdlU2Nhbm5pbmdFY3JUYWdzIH0pLFxuICB9O1xuXG4gIGNvbnN0IGltYWdlU2Nhbm5pbmdDb25maWd1cmF0aW9uID0ge1xuICAgIC4uLihwcm9wcy5pbWFnZVNjYW5uaW5nRW5hYmxlZCAhPT0gdW5kZWZpbmVkICYmIHsgaW1hZ2VTY2FubmluZ0VuYWJsZWQ6IHByb3BzLmltYWdlU2Nhbm5pbmdFbmFibGVkIH0pLFxuICAgIC4uLihPYmplY3Qua2V5cyhlY3JDb25maWd1cmF0aW9uKS5sZW5ndGggJiYgeyBlY3JDb25maWd1cmF0aW9uIH0pLFxuICB9O1xuXG4gIHJldHVybiBPYmplY3Qua2V5cyhpbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbikubGVuZ3RoID8gKGltYWdlU2Nhbm5pbmdDb25maWd1cmF0aW9uIGFzIE91dHB1dFQpIDogdW5kZWZpbmVkO1xufTtcblxuLyoqXG4gKiBHZW5lcmF0ZXMgdGhlIHdvcmtmbG93cyBwcm9wZXJ0eSBpbnRvIHRoZSBgV29ya2Zsb3dDb25maWd1cmF0aW9uYCB0eXBlIGluIHRoZSBDbG91ZEZvcm1hdGlvbiBMMVxuICogZGVmaW5pdGlvbi5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgUHJvcHMgaW5wdXQgZm9yIHRoZSBjb25zdHJ1Y3RcbiAqL1xuZXhwb3J0IGNvbnN0IGJ1aWxkV29ya2Zsb3dzID0gPFxuICBQcm9wc1QgZXh0ZW5kcyBJbWFnZVBpcGVsaW5lUHJvcHMgfCBJbWFnZVByb3BzLFxuICBPdXRwdXRUIGV4dGVuZHMgQ2ZuSW1hZ2VQaXBlbGluZS5Xb3JrZmxvd0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eVtdIHwgQ2ZuSW1hZ2UuV29ya2Zsb3dDb25maWd1cmF0aW9uUHJvcGVydHlbXSxcbj4oXG4gIHByb3BzOiBQcm9wc1QsXG4pOiBPdXRwdXRUIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgY2ZuV29ya2Zsb3dzID0gcHJvcHMud29ya2Zsb3dzPy5tYXAoKHdvcmtmbG93KSA9PiB7XG4gICAgY29uc3QgcGFyYW1ldGVycyA9IE9iamVjdC5lbnRyaWVzKHdvcmtmbG93LnBhcmFtZXRlcnMgPz8ge30pLm1hcCgoW25hbWUsIHZhbHVlXSkgPT4gKHtcbiAgICAgIG5hbWUsXG4gICAgICB2YWx1ZTogdmFsdWUudmFsdWUsXG4gICAgfSkpO1xuICAgIHJldHVybiB7XG4gICAgICB3b3JrZmxvd0Fybjogd29ya2Zsb3cud29ya2Zsb3cud29ya2Zsb3dBcm4sXG4gICAgICBvbkZhaWx1cmU6IHdvcmtmbG93Lm9uRmFpbHVyZSxcbiAgICAgIHBhcmFsbGVsR3JvdXA6IHdvcmtmbG93LnBhcmFsbGVsR3JvdXAsXG4gICAgICAuLi4ocGFyYW1ldGVycy5sZW5ndGggJiYgeyBwYXJhbWV0ZXJzIH0pLFxuICAgIH07XG4gIH0pO1xuXG4gIHJldHVybiBjZm5Xb3JrZmxvd3M/Lmxlbmd0aCA/IChjZm5Xb3JrZmxvd3MgYXMgT3V0cHV0VCkgOiB1bmRlZmluZWQ7XG59O1xuIl19
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
2
|
-
import * as logs from 'aws-cdk-lib/aws-logs';
|
|
3
|
-
import { Construct } from 'constructs';
|
|
4
|
-
import { ImageProps } from '../image';
|
|
5
|
-
import { ImagePipelineProps } from '../image-pipeline';
|
|
6
|
-
import { WorkflowConfiguration } from '../workflow';
|
|
2
|
+
import type * as logs from 'aws-cdk-lib/aws-logs';
|
|
3
|
+
import type { Construct } from 'constructs';
|
|
4
|
+
import type { ImageProps } from '../image';
|
|
5
|
+
import type { ImagePipelineProps } from '../image-pipeline';
|
|
6
|
+
import type { WorkflowConfiguration } from '../workflow';
|
|
7
7
|
/**
|
|
8
8
|
* Returns the default execution role policy, for auto-generated execution roles.
|
|
9
9
|
*
|
|
@@ -417,4 +417,4 @@ const getExecutionRoleRequirements = ({ workflows, imageLogGroup, imagePipelineL
|
|
|
417
417
|
applyGrants: (role) => granters.forEach((granter) => granter(role)),
|
|
418
418
|
};
|
|
419
419
|
};
|
|
420
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBvbGljeS1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUEyQztBQU8zQzs7Ozs7OztHQU9HO0FBQ0ksTUFBTSwwQkFBMEIsR0FBRyxDQUN4QyxLQUFnQixFQUNoQixLQUFjLEVBQ1MsRUFBRTtJQUN6QixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQ2xDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDNUIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUU5QixrSUFBa0k7SUFDbEksbUdBQW1HO0lBQ25HLE1BQU0sUUFBUSxHQUFHO1FBQ2YsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQ3RCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDeEIsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7WUFDOUIsU0FBUyxFQUFFLENBQUMsT0FBTyxTQUFTLGlCQUFpQixDQUFDO1lBQzlDLFVBQVUsRUFBRTtnQkFDVixZQUFZLEVBQUU7b0JBQ1osMEJBQTBCLEVBQUUsbUJBQW1CO2lCQUNoRDthQUNGO1NBQ0YsQ0FBQztRQUNGLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3hCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO1lBQzlCLFNBQVMsRUFBRSxDQUFDLE9BQU8sU0FBUyxvQkFBb0IsQ0FBQztZQUNqRCxVQUFVLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFO29CQUNaLDJCQUEyQixFQUFFLG1CQUFtQjtpQkFDakQ7YUFDRjtTQUNGLENBQUM7UUFD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SUFBSSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsT0FBTztRQUNMLHFCQUFxQixFQUFFLFlBQVksSUFBSSwyQkFBMkIsSUFBSSw4QkFBOEI7UUFDcEcsV0FBVyxFQUFFLENBQUMsSUFBZSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDL0UsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSW1hZ2VQcm9wcyB9IGZyb20gJy4uL2ltYWdlJztcbmltcG9ydCB7IEltYWdlUGlwZWxpbmVQcm9wcyB9IGZyb20gJy4uL2ltYWdlLXBpcGVsaW5lJztcbmltcG9ydCB7IFdvcmtmbG93Q29uZmlndXJhdGlvbiB9IGZyb20gJy4uL3dvcmtmbG93JztcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBkZWZhdWx0IGV4ZWN1dGlvbiByb2xlIHBvbGljeSwgZm9yIGF1dG8tZ2VuZXJhdGVkIGV4ZWN1dGlvbiByb2xlcy5cbiAqXG4gKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICogQHBhcmFtIHByb3BzIFByb3BzIGlucHV0IGZvciB0aGUgY29uc3RydWN0XG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXdzLW1hbmFnZWQtcG9saWN5L2xhdGVzdC9yZWZlcmVuY2UvQVdTU2VydmljZVJvbGVGb3JJbWFnZUJ1aWxkZXIuaHRtbFxuICovXG5leHBvcnQgY29uc3QgZGVmYXVsdEV4ZWN1dGlvblJvbGVQb2xpY3kgPSA8UHJvcHNUIGV4dGVuZHMgSW1hZ2VQaXBlbGluZVByb3BzIHwgSW1hZ2VQcm9wcz4oXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIHByb3BzPzogUHJvcHNULFxuKTogaWFtLlBvbGljeVN0YXRlbWVudFtdID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBjZGsuU3RhY2sub2Yoc2NvcGUpO1xuICBjb25zdCBwYXJ0aXRpb24gPSBzdGFjay5wYXJ0aXRpb247XG4gIGNvbnN0IHJlZ2lvbiA9IHN0YWNrLnJlZ2lvbjtcbiAgY29uc3QgYWNjb3VudCA9IHN0YWNrLmFjY291bnQ7XG5cbiAgLy8gUGVybWlzc2lvbnMgYXJlIGlkZW50aWNhbCB0byBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXdzLW1hbmFnZWQtcG9saWN5L2xhdGVzdC9yZWZlcmVuY2UvQVdTU2VydmljZVJvbGVGb3JJbWFnZUJ1aWxkZXIuaHRtbFxuICAvLyBTTFIgcG9saWNpZXMgY2Fubm90IGJlIGF0dGFjaGVkIHRvIHJvbGVzLCBhbmQgbm8gbWFuYWdlZCBwb2xpY3kgZXhpc3RzIGZvciB0aGVzZSBwZXJtaXNzaW9ucyB5ZXRcbiAgY29uc3QgcG9saWNpZXMgPSBbXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydlYzI6UmVnaXN0ZXJJbWFnZSddLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06ZWMyOio6OmltYWdlLypgXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgJ2F3czpSZXF1ZXN0VGFnL0NyZWF0ZWRCeSc6ICdFQzIgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOlJlZ2lzdGVySW1hZ2UnXSxcbiAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjMjoqOjpzbmFwc2hvdC8qYF0sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICdlYzI6UmVzb3VyY2VUYWcvQ3JlYXRlZEJ5JzogJ0VDMiBJbWFnZSBCdWlsZGVyJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydlYzI6UnVuSW5zdGFuY2VzJ10sXG4gICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6OmltYWdlLypgLFxuICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTplYzI6Kjo6c25hcHNob3QvKmAsXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6c3VibmV0LypgLFxuICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTplYzI6KjoqOm5ldHdvcmstaW50ZXJmYWNlLypgLFxuICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTplYzI6KjoqOnNlY3VyaXR5LWdyb3VwLypgLFxuICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTplYzI6KjoqOmtleS1wYWlyLypgLFxuICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTplYzI6KjoqOmxhdW5jaC10ZW1wbGF0ZS8qYCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06bGljZW5zZS1tYW5hZ2VyOio6KjpsaWNlbnNlLWNvbmZpZ3VyYXRpb246KmAsXG4gICAgICBdLFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOlJ1bkluc3RhbmNlcyddLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06ZWMyOio6Kjp2b2x1bWUvKmAsIGBhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6aW5zdGFuY2UvKmBdLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAnYXdzOlJlcXVlc3RUYWcvQ3JlYXRlZEJ5JzogWydFQzIgSW1hZ2UgQnVpbGRlcicsICdFQzIgRmFzdCBMYXVuY2gnXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydpYW06UGFzc1JvbGUnXSxcbiAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICdpYW06UGFzc2VkVG9TZXJ2aWNlJzogWydlYzIuYW1hem9uYXdzLmNvbScsICdlYzIuYW1hem9uYXdzLmNvbS5jbicsICd2bWllLmFtYXpvbmF3cy5jb20nXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydlYzI6U3RvcEluc3RhbmNlcycsICdlYzI6U3RhcnRJbnN0YW5jZXMnLCAnZWMyOlRlcm1pbmF0ZUluc3RhbmNlcyddLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgJ2VjMjpSZXNvdXJjZVRhZy9DcmVhdGVkQnknOiAnRUMyIEltYWdlIEJ1aWxkZXInLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdlYzI6Q29weUltYWdlJyxcbiAgICAgICAgJ2VjMjpDcmVhdGVJbWFnZScsXG4gICAgICAgICdlYzI6Q3JlYXRlTGF1bmNoVGVtcGxhdGUnLFxuICAgICAgICAnZWMyOkRlcmVnaXN0ZXJJbWFnZScsXG4gICAgICAgICdlYzI6RGVzY3JpYmVJbWFnZXMnLFxuICAgICAgICAnZWMyOkRlc2NyaWJlSW5zdGFuY2VBdHRyaWJ1dGUnLFxuICAgICAgICAnZWMyOkRlc2NyaWJlSW5zdGFuY2VTdGF0dXMnLFxuICAgICAgICAnZWMyOkRlc2NyaWJlSW5zdGFuY2VzJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZUluc3RhbmNlVHlwZU9mZmVyaW5ncycsXG4gICAgICAgICdlYzI6RGVzY3JpYmVJbnN0YW5jZVR5cGVzJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZVN1Ym5ldHMnLFxuICAgICAgICAnZWMyOkRlc2NyaWJlVGFncycsXG4gICAgICAgICdlYzI6TW9kaWZ5SW1hZ2VBdHRyaWJ1dGUnLFxuICAgICAgICAnZWMyOkRlc2NyaWJlSW1wb3J0SW1hZ2VUYXNrcycsXG4gICAgICAgICdlYzI6RGVzY3JpYmVTbmFwc2hvdHMnLFxuICAgICAgICAnZWMyOkRlc2NyaWJlSG9zdHMnLFxuICAgICAgXSxcbiAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydlYzI6TW9kaWZ5U25hcHNob3RBdHRyaWJ1dGUnXSxcbiAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjMjoqOjpzbmFwc2hvdC8qYF0sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICdlYzI6UmVzb3VyY2VUYWcvQ3JlYXRlZEJ5JzogJ0VDMiBJbWFnZSBCdWlsZGVyJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydlYzI6Q3JlYXRlVGFncyddLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgJ2VjMjpDcmVhdGVBY3Rpb24nOiBbJ1J1bkluc3RhbmNlcycsICdDcmVhdGVJbWFnZSddLFxuICAgICAgICAgICdhd3M6UmVxdWVzdFRhZy9DcmVhdGVkQnknOiBbJ0VDMiBJbWFnZSBCdWlsZGVyJywgJ0VDMiBGYXN0IExhdW5jaCddLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ2VjMjpDcmVhdGVUYWdzJ10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6Kjo6aW1hZ2UvKmAsIGBhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6ZXhwb3J0LWltYWdlLXRhc2svKmBdLFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOkNyZWF0ZVRhZ3MnXSxcbiAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjMjoqOjpzbmFwc2hvdC8qYCwgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjpsYXVuY2gtdGVtcGxhdGUvKmBdLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAnYXdzOlJlcXVlc3RUYWcvQ3JlYXRlZEJ5JzogWydFQzIgSW1hZ2UgQnVpbGRlcicsICdFQzIgRmFzdCBMYXVuY2gnXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydzbnM6UHVibGlzaCddLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06c25zOiR7cmVnaW9ufToke2FjY291bnR9OipgXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdzc206TGlzdENvbW1hbmRzJyxcbiAgICAgICAgJ3NzbTpMaXN0Q29tbWFuZEludm9jYXRpb25zJyxcbiAgICAgICAgJ3NzbTpBZGRUYWdzVG9SZXNvdXJjZScsXG4gICAgICAgICdzc206RGVzY3JpYmVJbnN0YW5jZUluZm9ybWF0aW9uJyxcbiAgICAgICAgJ3NzbTpMaXN0SW52ZW50b3J5RW50cmllcycsXG4gICAgICAgICdzc206RGVzY3JpYmVJbnN0YW5jZUFzc29jaWF0aW9uc1N0YXR1cycsXG4gICAgICAgICdzc206RGVzY3JpYmVBc3NvY2lhdGlvbkV4ZWN1dGlvbnMnLFxuICAgICAgICAnc3NtOkdldENvbW1hbmRJbnZvY2F0aW9uJyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnc3NtOlNlbmRDb21tYW5kJ10sXG4gICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06c3NtOio6Kjpkb2N1bWVudC9BV1MtUnVuUG93ZXJTaGVsbFNjcmlwdGAsXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OnNzbToqOio6ZG9jdW1lbnQvQVdTLVJ1blNoZWxsU2NyaXB0YCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06c3NtOio6Kjpkb2N1bWVudC9BV1NFQzItUnVuU3lzcHJlcGAsXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OnMzOjo6KmAsXG4gICAgICBdLFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnc3NtOlNlbmRDb21tYW5kJ10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6KjoqOmluc3RhbmNlLypgXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgJ3NzbTpyZXNvdXJjZVRhZy9DcmVhdGVkQnknOiBbJ0VDMiBJbWFnZSBCdWlsZGVyJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnc3NtOkNyZWF0ZUFzc29jaWF0aW9uJywgJ3NzbTpEZWxldGVBc3NvY2lhdGlvbiddLFxuICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OnNzbToqOio6ZG9jdW1lbnQvQVdTLUdhdGhlclNvZnR3YXJlSW52ZW50b3J5YCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06c3NtOio6Kjphc3NvY2lhdGlvbi8qYCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjppbnN0YW5jZS8qYCxcbiAgICAgIF0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAna21zOkVuY3J5cHQnLFxuICAgICAgICAna21zOkRlY3J5cHQnLFxuICAgICAgICAna21zOlJlRW5jcnlwdEZyb20nLFxuICAgICAgICAna21zOlJlRW5jcnlwdFRvJyxcbiAgICAgICAgJ2ttczpHZW5lcmF0ZURhdGFLZXlXaXRob3V0UGxhaW50ZXh0JyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAnRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFscyc6IHtcbiAgICAgICAgICAna21zOkVuY3J5cHRpb25Db250ZXh0S2V5cyc6IFsnYXdzOmViczppZCddLFxuICAgICAgICB9LFxuICAgICAgICAnU3RyaW5nTGlrZSc6IHtcbiAgICAgICAgICAna21zOlZpYVNlcnZpY2UnOiBbJ2VjMi4qLmFtYXpvbmF3cy5jb20nXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydrbXM6RGVzY3JpYmVLZXknXSxcbiAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIFN0cmluZ0xpa2U6IHtcbiAgICAgICAgICAna21zOlZpYVNlcnZpY2UnOiBbJ2VjMi4qLmFtYXpvbmF3cy5jb20nXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydrbXM6Q3JlYXRlR3JhbnQnXSxcbiAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIEJvb2w6IHtcbiAgICAgICAgICAna21zOkdyYW50SXNGb3JBV1NSZXNvdXJjZSc6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIFN0cmluZ0xpa2U6IHtcbiAgICAgICAgICAna21zOlZpYVNlcnZpY2UnOiBbJ2VjMi4qLmFtYXpvbmF3cy5jb20nXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydsb2dzOkNyZWF0ZUxvZ1N0cmVhbScsICdsb2dzOkNyZWF0ZUxvZ0dyb3VwJywgJ2xvZ3M6UHV0TG9nRXZlbnRzJ10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTpsb2dzOio6Kjpsb2ctZ3JvdXA6L2F3cy9pbWFnZWJ1aWxkZXIvKmBdLFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnaWFtOkNyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlJ10sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAnaWFtOkFXU1NlcnZpY2VOYW1lJzogWydzc20uYW1hem9uYXdzLmNvbSddLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdldmVudHM6RGVsZXRlUnVsZScsXG4gICAgICAgICdldmVudHM6RGVzY3JpYmVSdWxlJyxcbiAgICAgICAgJ2V2ZW50czpQdXRSdWxlJyxcbiAgICAgICAgJ2V2ZW50czpQdXRUYXJnZXRzJyxcbiAgICAgICAgJ2V2ZW50czpSZW1vdmVUYXJnZXRzJyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTpldmVudHM6KjoqOnJ1bGUvSW1hZ2VCdWlsZGVyLSpgXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ3NzbTpHZXRQYXJhbWV0ZXInLCAnc3NtOlB1dFBhcmFtZXRlciddLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06c3NtOio6KjpwYXJhbWV0ZXIvaW1hZ2VidWlsZGVyLypgXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ3NzbTpHZXRQYXJhbWV0ZXInXSxcbiAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OnNzbToqOjpwYXJhbWV0ZXIvYXdzL3NlcnZpY2UvKmBdLFxuICAgIH0pLFxuICBdO1xuXG4gIGNvbnN0IGhhc1Byb3BzID0gcHJvcHMgIT09IHVuZGVmaW5lZDtcbiAgaWYgKCFoYXNQcm9wcyB8fCAocHJvcHMucmVjaXBlLl9pc0ltYWdlUmVjaXBlKCkgJiYgcHJvcHMuZGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiAhPT0gdW5kZWZpbmVkKSkge1xuICAgIC8vIERpc3RyaWJ1dGlvbi1zcGVjaWZpYyBwZXJtaXNzaW9ucyBpZiBkaXN0cmlidXRpb24gc2V0dGluZ3MgYXJlIHByb3ZpZGVkLiBBbGwgcGVybWlzc2lvbnMgaGVyZSBhcmUgZm9yIEFNSSBidWlsZHNcbiAgICAvLyBzcGVjaWZpY2FsbHkuXG4gICAgcG9saWNpZXMucHVzaChcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ2VjMjpEZXNjcmliZUV4cG9ydEltYWdlVGFza3MnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIH0pLFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnbGljZW5zZS1tYW5hZ2VyOlVwZGF0ZUxpY2Vuc2VTcGVjaWZpY2F0aW9uc0ZvclJlc291cmNlJ10sXG4gICAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmxpY2Vuc2UtbWFuYWdlcjoqOiR7YWNjb3VudH06bGljZW5zZS1jb25maWd1cmF0aW9uOipgXSxcbiAgICAgIH0pLFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnc3RzOkFzc3VtZVJvbGUnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06aWFtOjoqOnJvbGUvRUMySW1hZ2VCdWlsZGVyRGlzdHJpYnV0aW9uQ3Jvc3NBY2NvdW50Um9sZWBdLFxuICAgICAgfSksXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogWydlYzI6RGVzY3JpYmVMYXVuY2hUZW1wbGF0ZXMnLCAnZWMyOkRlc2NyaWJlTGF1bmNoVGVtcGxhdGVWZXJzaW9ucyddLFxuICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgfSksXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogWydlYzI6Q3JlYXRlTGF1bmNoVGVtcGxhdGVWZXJzaW9uJywgJ2VjMjpNb2RpZnlMYXVuY2hUZW1wbGF0ZSddLFxuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6JHtyZWdpb259OiR7YWNjb3VudH06bGF1bmNoLXRlbXBsYXRlLypgXSxcbiAgICAgIH0pLFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnZWMyOkV4cG9ydEltYWdlJ10sXG4gICAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjMjoqOjppbWFnZS8qYF0sXG4gICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAgICdlYzI6UmVzb3VyY2VUYWcvQ3JlYXRlZEJ5JzogJ0VDMiBJbWFnZSBCdWlsZGVyJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogWydlYzI6RXhwb3J0SW1hZ2UnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjpleHBvcnQtaW1hZ2UtdGFzay8qYF0sXG4gICAgICB9KSxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ2VjMjpDYW5jZWxFeHBvcnRUYXNrJ10sXG4gICAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6ZXhwb3J0LWltYWdlLXRhc2svKmBdLFxuICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAnZWMyOlJlc291cmNlVGFnL0NyZWF0ZWRCeSc6ICdFQzIgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnaWFtOkNyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlJ10sXG4gICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAgICdpYW06QVdTU2VydmljZU5hbWUnOiBbJ2VjMmZhc3RsYXVuY2guYW1hem9uYXdzLmNvbSddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ2VjMjpFbmFibGVGYXN0TGF1bmNoJ10sXG4gICAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjMjoqOjppbWFnZS8qYCwgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjpsYXVuY2gtdGVtcGxhdGUvKmBdLFxuICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAnZWMyOlJlc291cmNlVGFnL0NyZWF0ZWRCeSc6ICdFQzIgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BzIHx8IHByb3BzLmltYWdlU2Nhbm5pbmdFbmFibGVkICE9PSBmYWxzZSkge1xuICAgIC8vIEFkZCBJbnNwZWN0b3IgcGVybWlzc2lvbnMgaWYgc2Nhbm5pbmcgaXMgZW5hYmxlZFxuICAgIHBvbGljaWVzLnB1c2goXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogWydpbnNwZWN0b3IyOkxpc3RDb3ZlcmFnZScsICdpbnNwZWN0b3IyOkxpc3RGaW5kaW5ncyddLFxuICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIC8vIEFkZCBpbWFnZSBzY2FubmluZyBFQ1IgcGVybWlzc2lvbnMgZm9yIGNvbnRhaW5lciBidWlsZHNcbiAgICBpZiAoIWhhc1Byb3BzIHx8IHByb3BzLnJlY2lwZS5faXNDb250YWluZXJSZWNpcGUoKSkge1xuICAgICAgcG9saWNpZXMucHVzaChcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICBhY3Rpb25zOiBbJ2VjcjpDcmVhdGVSZXBvc2l0b3J5J10sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAgICAgJ2F3czpSZXF1ZXN0VGFnL0NyZWF0ZWRCeSc6ICdFQzIgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFsnZWNyOlRhZ1Jlc291cmNlJ10sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06ZWNyOio6KjpyZXBvc2l0b3J5L2ltYWdlLWJ1aWxkZXItKmBdLFxuICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICAgICAnYXdzOlJlcXVlc3RUYWcvQ3JlYXRlZEJ5JzogJ0VDMiBJbWFnZSBCdWlsZGVyJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgYWN0aW9uczogWydlY3I6QmF0Y2hEZWxldGVJbWFnZSddLFxuICAgICAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjcjoqOio6cmVwb3NpdG9yeS9pbWFnZS1idWlsZGVyLSpgXSxcbiAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAgICAgJ2VjcjpSZXNvdXJjZVRhZy9DcmVhdGVkQnknOiAnRUMyIEltYWdlIEJ1aWxkZXInLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHBvbGljaWVzO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEV4ZWN1dGlvblJvbGUgPSAoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGdyYW50RGVmYXVsdEV4ZWN1dGlvblJvbGVQZXJtaXNzaW9uczogKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKSA9PiB2b2lkLFxuICB7XG4gICAgZXhlY3V0aW9uUm9sZSxcbiAgICB3b3JrZmxvd3MsXG4gICAgaW1hZ2VMb2dHcm91cCxcbiAgICBpbWFnZVBpcGVsaW5lTG9nR3JvdXAsXG4gIH06IHtcbiAgICBleGVjdXRpb25Sb2xlPzogaWFtLklSb2xlO1xuICAgIGltYWdlTG9nR3JvdXA/OiBsb2dzLklMb2dHcm91cDtcbiAgICBpbWFnZVBpcGVsaW5lTG9nR3JvdXA/OiBsb2dzLklMb2dHcm91cDtcbiAgICB3b3JrZmxvd3M/OiBXb3JrZmxvd0NvbmZpZ3VyYXRpb25bXTtcbiAgfSxcbik6IGlhbS5JUm9sZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHsgZXhlY3V0aW9uUm9sZVJlcXVpcmVkLCBhcHBseUdyYW50cyB9ID0gZ2V0RXhlY3V0aW9uUm9sZVJlcXVpcmVtZW50cyh7XG4gICAgd29ya2Zsb3dzLFxuICAgIGltYWdlTG9nR3JvdXAsXG4gICAgaW1hZ2VQaXBlbGluZUxvZ0dyb3VwLFxuICB9KTtcbiAgaWYgKCFleGVjdXRpb25Sb2xlUmVxdWlyZWQpIHtcbiAgICByZXR1cm4gZXhlY3V0aW9uUm9sZTtcbiAgfVxuXG4gIGlmIChleGVjdXRpb25Sb2xlICE9PSB1bmRlZmluZWQpIHtcbiAgICBhcHBseUdyYW50cyhleGVjdXRpb25Sb2xlKTtcbiAgICByZXR1cm4gZXhlY3V0aW9uUm9sZTtcbiAgfVxuXG4gIGNvbnN0IGF1dG9HZW5lcmF0ZWRFeGVjdXRpb25Sb2xlID0gbmV3IGlhbS5Sb2xlKHNjb3BlLCAnRXhlY3V0aW9uUm9sZScsIHtcbiAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnaW1hZ2VidWlsZGVyLmFtYXpvbmF3cy5jb20nKSxcbiAgfSk7XG4gIGdyYW50RGVmYXVsdEV4ZWN1dGlvblJvbGVQZXJtaXNzaW9ucyhhdXRvR2VuZXJhdGVkRXhlY3V0aW9uUm9sZSk7XG4gIGFwcGx5R3JhbnRzKGF1dG9HZW5lcmF0ZWRFeGVjdXRpb25Sb2xlKTtcblxuICByZXR1cm4gYXV0b0dlbmVyYXRlZEV4ZWN1dGlvblJvbGU7XG59O1xuXG5jb25zdCBnZXRFeGVjdXRpb25Sb2xlUmVxdWlyZW1lbnRzID0gKHtcbiAgd29ya2Zsb3dzLFxuICBpbWFnZUxvZ0dyb3VwLFxuICBpbWFnZVBpcGVsaW5lTG9nR3JvdXAsXG59OiB7XG4gIGltYWdlTG9nR3JvdXA/OiBsb2dzLklMb2dHcm91cDtcbiAgaW1hZ2VQaXBlbGluZUxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG4gIHdvcmtmbG93cz86IFdvcmtmbG93Q29uZmlndXJhdGlvbltdO1xufSk6IHsgZXhlY3V0aW9uUm9sZVJlcXVpcmVkOiBib29sZWFuOyBhcHBseUdyYW50czogKHJvbGU6IGlhbS5JUm9sZSkgPT4gdm9pZCB9ID0+IHtcbiAgY29uc3QgZ3JhbnRlcnM6IEFycmF5PChyb2xlOiBpYW0uSVJvbGUpID0+IHZvaWQ+ID0gW107XG5cbiAgY29uc3QgaGFzV29ya2Zsb3dzID0gQm9vbGVhbih3b3JrZmxvd3M/Lmxlbmd0aCk7XG4gIGNvbnN0IGFkZEltYWdlTG9nR3JvdXBQZXJtaXNzaW9ucyA9XG4gICAgaW1hZ2VMb2dHcm91cCAhPT0gdW5kZWZpbmVkICYmXG4gICAgIWNkay5Ub2tlbi5pc1VucmVzb2x2ZWQoaW1hZ2VMb2dHcm91cC5sb2dHcm91cE5hbWUpICYmXG4gICAgIWltYWdlTG9nR3JvdXAubG9nR3JvdXBOYW1lLnN0YXJ0c1dpdGgoJy9hd3MvaW1hZ2VidWlsZGVyLycpO1xuICBjb25zdCBhZGRQaXBlbGluZUxvZ0dyb3VwUGVybWlzc2lvbnMgPVxuICAgIGltYWdlUGlwZWxpbmVMb2dHcm91cCAhPT0gdW5kZWZpbmVkICYmXG4gICAgIWNkay5Ub2tlbi5pc1VucmVzb2x2ZWQoaW1hZ2VQaXBlbGluZUxvZ0dyb3VwLmxvZ0dyb3VwTmFtZSkgJiZcbiAgICAhaW1hZ2VQaXBlbGluZUxvZ0dyb3VwLmxvZ0dyb3VwTmFtZS5zdGFydHNXaXRoKCcvYXdzL2ltYWdlYnVpbGRlci8nKTtcblxuICBpZiAoYWRkSW1hZ2VMb2dHcm91cFBlcm1pc3Npb25zKSB7XG4gICAgZ3JhbnRlcnMucHVzaCgocm9sZSkgPT4gaW1hZ2VMb2dHcm91cCEuZ3JhbnRXcml0ZShyb2xlKSk7XG4gIH1cblxuICBpZiAoYWRkUGlwZWxpbmVMb2dHcm91cFBlcm1pc3Npb25zKSB7XG4gICAgZ3JhbnRlcnMucHVzaCgocm9sZSkgPT4gaW1hZ2VQaXBlbGluZUxvZ0dyb3VwIS5ncmFudFdyaXRlKHJvbGUpKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZXhlY3V0aW9uUm9sZVJlcXVpcmVkOiBoYXNXb3JrZmxvd3MgfHwgYWRkSW1hZ2VMb2dHcm91cFBlcm1pc3Npb25zIHx8IGFkZFBpcGVsaW5lTG9nR3JvdXBQZXJtaXNzaW9ucyxcbiAgICBhcHBseUdyYW50czogKHJvbGU6IGlhbS5JUm9sZSkgPT4gZ3JhbnRlcnMuZm9yRWFjaCgoZ3JhbnRlcikgPT4gZ3JhbnRlcihyb2xlKSksXG4gIH07XG59O1xuIl19
|
|
420
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBvbGljeS1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUEyQztBQU8zQzs7Ozs7OztHQU9HO0FBQ0ksTUFBTSwwQkFBMEIsR0FBRyxDQUN4QyxLQUFnQixFQUNoQixLQUFjLEVBQ1MsRUFBRTtJQUN6QixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQ2xDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDNUIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUU5QixrSUFBa0k7SUFDbEksbUdBQW1HO0lBQ25HLE1BQU0sUUFBUSxHQUFHO1FBQ2YsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQ3RCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDeEIsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7WUFDOUIsU0FBUyxFQUFFLENBQUMsT0FBTyxTQUFTLGlCQUFpQixDQUFDO1lBQzlDLFVBQVUsRUFBRTtnQkFDVixZQUFZLEVBQUU7b0JBQ1osMEJBQTBCLEVBQUUsbUJBQW1CO2lCQUNoRDthQUNGO1NBQ0YsQ0FBQztRQUNGLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3hCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO1lBQzlCLFNBQVMsRUFBRSxDQUFDLE9BQU8sU0FBUyxvQkFBb0IsQ0FBQztZQUNqRCxVQUFVLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFO29CQUNaLDJCQUEyQixFQUFFLG1CQUFtQjtpQkFDakQ7YUFDRjtTQUNGLENBQUM7UUFD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SUFBSSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsT0FBTztRQUNMLHFCQUFxQixFQUFFLFlBQVksSUFBSSwyQkFBMkIsSUFBSSw4QkFBOEI7UUFDcEcsV0FBVyxFQUFFLENBQUMsSUFBZSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDL0UsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgdHlwZSAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSW1hZ2VQcm9wcyB9IGZyb20gJy4uL2ltYWdlJztcbmltcG9ydCB0eXBlIHsgSW1hZ2VQaXBlbGluZVByb3BzIH0gZnJvbSAnLi4vaW1hZ2UtcGlwZWxpbmUnO1xuaW1wb3J0IHR5cGUgeyBXb3JrZmxvd0NvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi93b3JrZmxvdyc7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZGVmYXVsdCBleGVjdXRpb24gcm9sZSBwb2xpY3ksIGZvciBhdXRvLWdlbmVyYXRlZCBleGVjdXRpb24gcm9sZXMuXG4gKlxuICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAqIEBwYXJhbSBwcm9wcyBQcm9wcyBpbnB1dCBmb3IgdGhlIGNvbnN0cnVjdFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F3cy1tYW5hZ2VkLXBvbGljeS9sYXRlc3QvcmVmZXJlbmNlL0FXU1NlcnZpY2VSb2xlRm9ySW1hZ2VCdWlsZGVyLmh0bWxcbiAqL1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRFeGVjdXRpb25Sb2xlUG9saWN5ID0gPFByb3BzVCBleHRlbmRzIEltYWdlUGlwZWxpbmVQcm9wcyB8IEltYWdlUHJvcHM+KFxuICBzY29wZTogQ29uc3RydWN0LFxuICBwcm9wcz86IFByb3BzVCxcbik6IGlhbS5Qb2xpY3lTdGF0ZW1lbnRbXSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gY2RrLlN0YWNrLm9mKHNjb3BlKTtcbiAgY29uc3QgcGFydGl0aW9uID0gc3RhY2sucGFydGl0aW9uO1xuICBjb25zdCByZWdpb24gPSBzdGFjay5yZWdpb247XG4gIGNvbnN0IGFjY291bnQgPSBzdGFjay5hY2NvdW50O1xuXG4gIC8vIFBlcm1pc3Npb25zIGFyZSBpZGVudGljYWwgdG8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F3cy1tYW5hZ2VkLXBvbGljeS9sYXRlc3QvcmVmZXJlbmNlL0FXU1NlcnZpY2VSb2xlRm9ySW1hZ2VCdWlsZGVyLmh0bWxcbiAgLy8gU0xSIHBvbGljaWVzIGNhbm5vdCBiZSBhdHRhY2hlZCB0byByb2xlcywgYW5kIG5vIG1hbmFnZWQgcG9saWN5IGV4aXN0cyBmb3IgdGhlc2UgcGVybWlzc2lvbnMgeWV0XG4gIGNvbnN0IHBvbGljaWVzID0gW1xuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOlJlZ2lzdGVySW1hZ2UnXSxcbiAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjMjoqOjppbWFnZS8qYF0sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICdhd3M6UmVxdWVzdFRhZy9DcmVhdGVkQnknOiAnRUMyIEltYWdlIEJ1aWxkZXInLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ2VjMjpSZWdpc3RlckltYWdlJ10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6Kjo6c25hcHNob3QvKmBdLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAnZWMyOlJlc291cmNlVGFnL0NyZWF0ZWRCeSc6ICdFQzIgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOlJ1bkluc3RhbmNlcyddLFxuICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OmVjMjoqOjppbWFnZS8qYCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6OnNuYXBzaG90LypgLFxuICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTplYzI6KjoqOnN1Ym5ldC8qYCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjpuZXR3b3JrLWludGVyZmFjZS8qYCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjpzZWN1cml0eS1ncm91cC8qYCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjprZXktcGFpci8qYCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjpsYXVuY2gtdGVtcGxhdGUvKmAsXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OmxpY2Vuc2UtbWFuYWdlcjoqOio6bGljZW5zZS1jb25maWd1cmF0aW9uOipgLFxuICAgICAgXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ2VjMjpSdW5JbnN0YW5jZXMnXSxcbiAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6dm9sdW1lLypgLCBgYXJuOiR7cGFydGl0aW9ufTplYzI6KjoqOmluc3RhbmNlLypgXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgJ2F3czpSZXF1ZXN0VGFnL0NyZWF0ZWRCeSc6IFsnRUMyIEltYWdlIEJ1aWxkZXInLCAnRUMyIEZhc3QgTGF1bmNoJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnaWFtOlBhc3NSb2xlJ10sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAnaWFtOlBhc3NlZFRvU2VydmljZSc6IFsnZWMyLmFtYXpvbmF3cy5jb20nLCAnZWMyLmFtYXpvbmF3cy5jb20uY24nLCAndm1pZS5hbWF6b25hd3MuY29tJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOlN0b3BJbnN0YW5jZXMnLCAnZWMyOlN0YXJ0SW5zdGFuY2VzJywgJ2VjMjpUZXJtaW5hdGVJbnN0YW5jZXMnXSxcbiAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICdlYzI6UmVzb3VyY2VUYWcvQ3JlYXRlZEJ5JzogJ0VDMiBJbWFnZSBCdWlsZGVyJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnZWMyOkNvcHlJbWFnZScsXG4gICAgICAgICdlYzI6Q3JlYXRlSW1hZ2UnLFxuICAgICAgICAnZWMyOkNyZWF0ZUxhdW5jaFRlbXBsYXRlJyxcbiAgICAgICAgJ2VjMjpEZXJlZ2lzdGVySW1hZ2UnLFxuICAgICAgICAnZWMyOkRlc2NyaWJlSW1hZ2VzJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZUluc3RhbmNlQXR0cmlidXRlJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZUluc3RhbmNlU3RhdHVzJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZUluc3RhbmNlcycsXG4gICAgICAgICdlYzI6RGVzY3JpYmVJbnN0YW5jZVR5cGVPZmZlcmluZ3MnLFxuICAgICAgICAnZWMyOkRlc2NyaWJlSW5zdGFuY2VUeXBlcycsXG4gICAgICAgICdlYzI6RGVzY3JpYmVTdWJuZXRzJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZVRhZ3MnLFxuICAgICAgICAnZWMyOk1vZGlmeUltYWdlQXR0cmlidXRlJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZUltcG9ydEltYWdlVGFza3MnLFxuICAgICAgICAnZWMyOkRlc2NyaWJlU25hcHNob3RzJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZUhvc3RzJyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOk1vZGlmeVNuYXBzaG90QXR0cmlidXRlJ10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6Kjo6c25hcHNob3QvKmBdLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAnZWMyOlJlc291cmNlVGFnL0NyZWF0ZWRCeSc6ICdFQzIgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOkNyZWF0ZVRhZ3MnXSxcbiAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICdlYzI6Q3JlYXRlQWN0aW9uJzogWydSdW5JbnN0YW5jZXMnLCAnQ3JlYXRlSW1hZ2UnXSxcbiAgICAgICAgICAnYXdzOlJlcXVlc3RUYWcvQ3JlYXRlZEJ5JzogWydFQzIgSW1hZ2UgQnVpbGRlcicsICdFQzIgRmFzdCBMYXVuY2gnXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydlYzI6Q3JlYXRlVGFncyddLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06ZWMyOio6OmltYWdlLypgLCBgYXJuOiR7cGFydGl0aW9ufTplYzI6KjoqOmV4cG9ydC1pbWFnZS10YXNrLypgXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ2VjMjpDcmVhdGVUYWdzJ10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6Kjo6c25hcHNob3QvKmAsIGBhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6bGF1bmNoLXRlbXBsYXRlLypgXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgJ2F3czpSZXF1ZXN0VGFnL0NyZWF0ZWRCeSc6IFsnRUMyIEltYWdlIEJ1aWxkZXInLCAnRUMyIEZhc3QgTGF1bmNoJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnc25zOlB1Ymxpc2gnXSxcbiAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OnNuczoke3JlZ2lvbn06JHthY2NvdW50fToqYF0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnc3NtOkxpc3RDb21tYW5kcycsXG4gICAgICAgICdzc206TGlzdENvbW1hbmRJbnZvY2F0aW9ucycsXG4gICAgICAgICdzc206QWRkVGFnc1RvUmVzb3VyY2UnLFxuICAgICAgICAnc3NtOkRlc2NyaWJlSW5zdGFuY2VJbmZvcm1hdGlvbicsXG4gICAgICAgICdzc206TGlzdEludmVudG9yeUVudHJpZXMnLFxuICAgICAgICAnc3NtOkRlc2NyaWJlSW5zdGFuY2VBc3NvY2lhdGlvbnNTdGF0dXMnLFxuICAgICAgICAnc3NtOkRlc2NyaWJlQXNzb2NpYXRpb25FeGVjdXRpb25zJyxcbiAgICAgICAgJ3NzbTpHZXRDb21tYW5kSW52b2NhdGlvbicsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ3NzbTpTZW5kQ29tbWFuZCddLFxuICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OnNzbToqOio6ZG9jdW1lbnQvQVdTLVJ1blBvd2VyU2hlbGxTY3JpcHRgLFxuICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTpzc206KjoqOmRvY3VtZW50L0FXUy1SdW5TaGVsbFNjcmlwdGAsXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OnNzbToqOio6ZG9jdW1lbnQvQVdTRUMyLVJ1blN5c3ByZXBgLFxuICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTpzMzo6OipgLFxuICAgICAgXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ3NzbTpTZW5kQ29tbWFuZCddLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjppbnN0YW5jZS8qYF0sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICdzc206cmVzb3VyY2VUYWcvQ3JlYXRlZEJ5JzogWydFQzIgSW1hZ2UgQnVpbGRlciddLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ3NzbTpDcmVhdGVBc3NvY2lhdGlvbicsICdzc206RGVsZXRlQXNzb2NpYXRpb24nXSxcbiAgICAgIHJlc291cmNlczogW1xuICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTpzc206KjoqOmRvY3VtZW50L0FXUy1HYXRoZXJTb2Z0d2FyZUludmVudG9yeWAsXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OnNzbToqOio6YXNzb2NpYXRpb24vKmAsXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6aW5zdGFuY2UvKmAsXG4gICAgICBdLFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgJ2ttczpFbmNyeXB0JyxcbiAgICAgICAgJ2ttczpEZWNyeXB0JyxcbiAgICAgICAgJ2ttczpSZUVuY3J5cHRGcm9tJyxcbiAgICAgICAgJ2ttczpSZUVuY3J5cHRUbycsXG4gICAgICAgICdrbXM6R2VuZXJhdGVEYXRhS2V5V2l0aG91dFBsYWludGV4dCcsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgJ0ZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHMnOiB7XG4gICAgICAgICAgJ2ttczpFbmNyeXB0aW9uQ29udGV4dEtleXMnOiBbJ2F3czplYnM6aWQnXSxcbiAgICAgICAgfSxcbiAgICAgICAgJ1N0cmluZ0xpa2UnOiB7XG4gICAgICAgICAgJ2ttczpWaWFTZXJ2aWNlJzogWydlYzIuKi5hbWF6b25hd3MuY29tJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsna21zOkRlc2NyaWJlS2V5J10sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdMaWtlOiB7XG4gICAgICAgICAgJ2ttczpWaWFTZXJ2aWNlJzogWydlYzIuKi5hbWF6b25hd3MuY29tJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsna21zOkNyZWF0ZUdyYW50J10sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBCb29sOiB7XG4gICAgICAgICAgJ2ttczpHcmFudElzRm9yQVdTUmVzb3VyY2UnOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBTdHJpbmdMaWtlOiB7XG4gICAgICAgICAgJ2ttczpWaWFTZXJ2aWNlJzogWydlYzIuKi5hbWF6b25hd3MuY29tJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnbG9nczpDcmVhdGVMb2dTdHJlYW0nLCAnbG9nczpDcmVhdGVMb2dHcm91cCcsICdsb2dzOlB1dExvZ0V2ZW50cyddLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06bG9nczoqOio6bG9nLWdyb3VwOi9hd3MvaW1hZ2VidWlsZGVyLypgXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ2lhbTpDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZSddLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgJ2lhbTpBV1NTZXJ2aWNlTmFtZSc6IFsnc3NtLmFtYXpvbmF3cy5jb20nXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnZXZlbnRzOkRlbGV0ZVJ1bGUnLFxuICAgICAgICAnZXZlbnRzOkRlc2NyaWJlUnVsZScsXG4gICAgICAgICdldmVudHM6UHV0UnVsZScsXG4gICAgICAgICdldmVudHM6UHV0VGFyZ2V0cycsXG4gICAgICAgICdldmVudHM6UmVtb3ZlVGFyZ2V0cycsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06ZXZlbnRzOio6KjpydWxlL0ltYWdlQnVpbGRlci0qYF0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydzc206R2V0UGFyYW1ldGVyJywgJ3NzbTpQdXRQYXJhbWV0ZXInXSxcbiAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OnNzbToqOio6cGFyYW1ldGVyL2ltYWdlYnVpbGRlci8qYF0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydzc206R2V0UGFyYW1ldGVyJ10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTpzc206Kjo6cGFyYW1ldGVyL2F3cy9zZXJ2aWNlLypgXSxcbiAgICB9KSxcbiAgXTtcblxuICBjb25zdCBoYXNQcm9wcyA9IHByb3BzICE9PSB1bmRlZmluZWQ7XG4gIGlmICghaGFzUHJvcHMgfHwgKHByb3BzLnJlY2lwZS5faXNJbWFnZVJlY2lwZSgpICYmIHByb3BzLmRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24gIT09IHVuZGVmaW5lZCkpIHtcbiAgICAvLyBEaXN0cmlidXRpb24tc3BlY2lmaWMgcGVybWlzc2lvbnMgaWYgZGlzdHJpYnV0aW9uIHNldHRpbmdzIGFyZSBwcm92aWRlZC4gQWxsIHBlcm1pc3Npb25zIGhlcmUgYXJlIGZvciBBTUkgYnVpbGRzXG4gICAgLy8gc3BlY2lmaWNhbGx5LlxuICAgIHBvbGljaWVzLnB1c2goXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogWydlYzI6RGVzY3JpYmVFeHBvcnRJbWFnZVRhc2tzJ10sXG4gICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICB9KSxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ2xpY2Vuc2UtbWFuYWdlcjpVcGRhdGVMaWNlbnNlU3BlY2lmaWNhdGlvbnNGb3JSZXNvdXJjZSddLFxuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTpsaWNlbnNlLW1hbmFnZXI6Kjoke2FjY291bnR9OmxpY2Vuc2UtY29uZmlndXJhdGlvbjoqYF0sXG4gICAgICB9KSxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ3N0czpBc3N1bWVSb2xlJ10sXG4gICAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmlhbTo6Kjpyb2xlL0VDMkltYWdlQnVpbGRlckRpc3RyaWJ1dGlvbkNyb3NzQWNjb3VudFJvbGVgXSxcbiAgICAgIH0pLFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnZWMyOkRlc2NyaWJlTGF1bmNoVGVtcGxhdGVzJywgJ2VjMjpEZXNjcmliZUxhdW5jaFRlbXBsYXRlVmVyc2lvbnMnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIH0pLFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnZWMyOkNyZWF0ZUxhdW5jaFRlbXBsYXRlVmVyc2lvbicsICdlYzI6TW9kaWZ5TGF1bmNoVGVtcGxhdGUnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06ZWMyOiR7cmVnaW9ufToke2FjY291bnR9OmxhdW5jaC10ZW1wbGF0ZS8qYF0sXG4gICAgICB9KSxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ2VjMjpFeHBvcnRJbWFnZSddLFxuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6Kjo6aW1hZ2UvKmBdLFxuICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAnZWMyOlJlc291cmNlVGFnL0NyZWF0ZWRCeSc6ICdFQzIgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnZWMyOkV4cG9ydEltYWdlJ10sXG4gICAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6ZXhwb3J0LWltYWdlLXRhc2svKmBdLFxuICAgICAgfSksXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogWydlYzI6Q2FuY2VsRXhwb3J0VGFzayddLFxuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6KjoqOmV4cG9ydC1pbWFnZS10YXNrLypgXSxcbiAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICAgJ2VjMjpSZXNvdXJjZVRhZy9DcmVhdGVkQnknOiAnRUMyIEltYWdlIEJ1aWxkZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ2lhbTpDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZSddLFxuICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAnaWFtOkFXU1NlcnZpY2VOYW1lJzogWydlYzJmYXN0bGF1bmNoLmFtYXpvbmF3cy5jb20nXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogWydlYzI6RW5hYmxlRmFzdExhdW5jaCddLFxuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6Kjo6aW1hZ2UvKmAsIGBhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6bGF1bmNoLXRlbXBsYXRlLypgXSxcbiAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICAgJ2VjMjpSZXNvdXJjZVRhZy9DcmVhdGVkQnknOiAnRUMyIEltYWdlIEJ1aWxkZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wcyB8fCBwcm9wcy5pbWFnZVNjYW5uaW5nRW5hYmxlZCAhPT0gZmFsc2UpIHtcbiAgICAvLyBBZGQgSW5zcGVjdG9yIHBlcm1pc3Npb25zIGlmIHNjYW5uaW5nIGlzIGVuYWJsZWRcbiAgICBwb2xpY2llcy5wdXNoKFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnaW5zcGVjdG9yMjpMaXN0Q292ZXJhZ2UnLCAnaW5zcGVjdG9yMjpMaXN0RmluZGluZ3MnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICAvLyBBZGQgaW1hZ2Ugc2Nhbm5pbmcgRUNSIHBlcm1pc3Npb25zIGZvciBjb250YWluZXIgYnVpbGRzXG4gICAgaWYgKCFoYXNQcm9wcyB8fCBwcm9wcy5yZWNpcGUuX2lzQ29udGFpbmVyUmVjaXBlKCkpIHtcbiAgICAgIHBvbGljaWVzLnB1c2goXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgYWN0aW9uczogWydlY3I6Q3JlYXRlUmVwb3NpdG9yeSddLFxuICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAgICdhd3M6UmVxdWVzdFRhZy9DcmVhdGVkQnknOiAnRUMyIEltYWdlIEJ1aWxkZXInLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICBhY3Rpb25zOiBbJ2VjcjpUYWdSZXNvdXJjZSddLFxuICAgICAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjcjoqOio6cmVwb3NpdG9yeS9pbWFnZS1idWlsZGVyLSpgXSxcbiAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAgICAgJ2F3czpSZXF1ZXN0VGFnL0NyZWF0ZWRCeSc6ICdFQzIgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFsnZWNyOkJhdGNoRGVsZXRlSW1hZ2UnXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplY3I6KjoqOnJlcG9zaXRvcnkvaW1hZ2UtYnVpbGRlci0qYF0sXG4gICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAgICdlY3I6UmVzb3VyY2VUYWcvQ3JlYXRlZEJ5JzogJ0VDMiBJbWFnZSBCdWlsZGVyJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwb2xpY2llcztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFeGVjdXRpb25Sb2xlID0gKFxuICBzY29wZTogQ29uc3RydWN0LFxuICBncmFudERlZmF1bHRFeGVjdXRpb25Sb2xlUGVybWlzc2lvbnM6IChncmFudGVlOiBpYW0uSUdyYW50YWJsZSkgPT4gdm9pZCxcbiAge1xuICAgIGV4ZWN1dGlvblJvbGUsXG4gICAgd29ya2Zsb3dzLFxuICAgIGltYWdlTG9nR3JvdXAsXG4gICAgaW1hZ2VQaXBlbGluZUxvZ0dyb3VwLFxuICB9OiB7XG4gICAgZXhlY3V0aW9uUm9sZT86IGlhbS5JUm9sZTtcbiAgICBpbWFnZUxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG4gICAgaW1hZ2VQaXBlbGluZUxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG4gICAgd29ya2Zsb3dzPzogV29ya2Zsb3dDb25maWd1cmF0aW9uW107XG4gIH0sXG4pOiBpYW0uSVJvbGUgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCB7IGV4ZWN1dGlvblJvbGVSZXF1aXJlZCwgYXBwbHlHcmFudHMgfSA9IGdldEV4ZWN1dGlvblJvbGVSZXF1aXJlbWVudHMoe1xuICAgIHdvcmtmbG93cyxcbiAgICBpbWFnZUxvZ0dyb3VwLFxuICAgIGltYWdlUGlwZWxpbmVMb2dHcm91cCxcbiAgfSk7XG4gIGlmICghZXhlY3V0aW9uUm9sZVJlcXVpcmVkKSB7XG4gICAgcmV0dXJuIGV4ZWN1dGlvblJvbGU7XG4gIH1cblxuICBpZiAoZXhlY3V0aW9uUm9sZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgYXBwbHlHcmFudHMoZXhlY3V0aW9uUm9sZSk7XG4gICAgcmV0dXJuIGV4ZWN1dGlvblJvbGU7XG4gIH1cblxuICBjb25zdCBhdXRvR2VuZXJhdGVkRXhlY3V0aW9uUm9sZSA9IG5ldyBpYW0uUm9sZShzY29wZSwgJ0V4ZWN1dGlvblJvbGUnLCB7XG4gICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2ltYWdlYnVpbGRlci5hbWF6b25hd3MuY29tJyksXG4gIH0pO1xuICBncmFudERlZmF1bHRFeGVjdXRpb25Sb2xlUGVybWlzc2lvbnMoYXV0b0dlbmVyYXRlZEV4ZWN1dGlvblJvbGUpO1xuICBhcHBseUdyYW50cyhhdXRvR2VuZXJhdGVkRXhlY3V0aW9uUm9sZSk7XG5cbiAgcmV0dXJuIGF1dG9HZW5lcmF0ZWRFeGVjdXRpb25Sb2xlO1xufTtcblxuY29uc3QgZ2V0RXhlY3V0aW9uUm9sZVJlcXVpcmVtZW50cyA9ICh7XG4gIHdvcmtmbG93cyxcbiAgaW1hZ2VMb2dHcm91cCxcbiAgaW1hZ2VQaXBlbGluZUxvZ0dyb3VwLFxufToge1xuICBpbWFnZUxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG4gIGltYWdlUGlwZWxpbmVMb2dHcm91cD86IGxvZ3MuSUxvZ0dyb3VwO1xuICB3b3JrZmxvd3M/OiBXb3JrZmxvd0NvbmZpZ3VyYXRpb25bXTtcbn0pOiB7IGV4ZWN1dGlvblJvbGVSZXF1aXJlZDogYm9vbGVhbjsgYXBwbHlHcmFudHM6IChyb2xlOiBpYW0uSVJvbGUpID0+IHZvaWQgfSA9PiB7XG4gIGNvbnN0IGdyYW50ZXJzOiBBcnJheTwocm9sZTogaWFtLklSb2xlKSA9PiB2b2lkPiA9IFtdO1xuXG4gIGNvbnN0IGhhc1dvcmtmbG93cyA9IEJvb2xlYW4od29ya2Zsb3dzPy5sZW5ndGgpO1xuICBjb25zdCBhZGRJbWFnZUxvZ0dyb3VwUGVybWlzc2lvbnMgPVxuICAgIGltYWdlTG9nR3JvdXAgIT09IHVuZGVmaW5lZCAmJlxuICAgICFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKGltYWdlTG9nR3JvdXAubG9nR3JvdXBOYW1lKSAmJlxuICAgICFpbWFnZUxvZ0dyb3VwLmxvZ0dyb3VwTmFtZS5zdGFydHNXaXRoKCcvYXdzL2ltYWdlYnVpbGRlci8nKTtcbiAgY29uc3QgYWRkUGlwZWxpbmVMb2dHcm91cFBlcm1pc3Npb25zID1cbiAgICBpbWFnZVBpcGVsaW5lTG9nR3JvdXAgIT09IHVuZGVmaW5lZCAmJlxuICAgICFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKGltYWdlUGlwZWxpbmVMb2dHcm91cC5sb2dHcm91cE5hbWUpICYmXG4gICAgIWltYWdlUGlwZWxpbmVMb2dHcm91cC5sb2dHcm91cE5hbWUuc3RhcnRzV2l0aCgnL2F3cy9pbWFnZWJ1aWxkZXIvJyk7XG5cbiAgaWYgKGFkZEltYWdlTG9nR3JvdXBQZXJtaXNzaW9ucykge1xuICAgIGdyYW50ZXJzLnB1c2goKHJvbGUpID0+IGltYWdlTG9nR3JvdXAhLmdyYW50V3JpdGUocm9sZSkpO1xuICB9XG5cbiAgaWYgKGFkZFBpcGVsaW5lTG9nR3JvdXBQZXJtaXNzaW9ucykge1xuICAgIGdyYW50ZXJzLnB1c2goKHJvbGUpID0+IGltYWdlUGlwZWxpbmVMb2dHcm91cCEuZ3JhbnRXcml0ZShyb2xlKSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGV4ZWN1dGlvblJvbGVSZXF1aXJlZDogaGFzV29ya2Zsb3dzIHx8IGFkZEltYWdlTG9nR3JvdXBQZXJtaXNzaW9ucyB8fCBhZGRQaXBlbGluZUxvZ0dyb3VwUGVybWlzc2lvbnMsXG4gICAgYXBwbHlHcmFudHM6IChyb2xlOiBpYW0uSVJvbGUpID0+IGdyYW50ZXJzLmZvckVhY2goKGdyYW50ZXIpID0+IGdyYW50ZXIocm9sZSkpLFxuICB9O1xufTtcbiJdfQ==
|
package/lib/recipe-base.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as cdk from 'aws-cdk-lib';
|
|
2
|
-
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
3
|
-
import { IComponent } from './component';
|
|
4
|
-
import { IContainerRecipe } from './container-recipe';
|
|
5
|
-
import { IImageRecipe } from './image-recipe';
|
|
1
|
+
import type * as cdk from 'aws-cdk-lib';
|
|
2
|
+
import type * as iam from 'aws-cdk-lib/aws-iam';
|
|
3
|
+
import type { IComponent } from './component';
|
|
4
|
+
import type { IContainerRecipe } from './container-recipe';
|
|
5
|
+
import type { IImageRecipe } from './image-recipe';
|
|
6
6
|
/**
|
|
7
7
|
* The parameter value for a component parameter
|
|
8
8
|
*/
|
package/lib/recipe-base.js
CHANGED
|
@@ -6,7 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
6
6
|
* The parameter value for a component parameter
|
|
7
7
|
*/
|
|
8
8
|
class ComponentParameterValue {
|
|
9
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.ComponentParameterValue", version: "2.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.ComponentParameterValue", version: "2.238.0-alpha.0" };
|
|
10
10
|
/**
|
|
11
11
|
* The value of the parameter as a string
|
|
12
12
|
*
|
|
@@ -24,4 +24,4 @@ class ComponentParameterValue {
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
exports.ComponentParameterValue = ComponentParameterValue;
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZWNpcGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBTUE7O0dBRUc7QUFDSCxNQUFhLHVCQUF1Qjs7SUFDbEM7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBYTtRQUNwQyxPQUFPLElBQUksdUJBQXVCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0tBQzdDO0lBRUQ7O09BRUc7SUFDYSxLQUFLLENBQVc7SUFFaEMsWUFBc0IsS0FBZTtRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFqQkgsMERBa0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgdHlwZSB7IElDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudCc7XG5pbXBvcnQgdHlwZSB7IElDb250YWluZXJSZWNpcGUgfSBmcm9tICcuL2NvbnRhaW5lci1yZWNpcGUnO1xuaW1wb3J0IHR5cGUgeyBJSW1hZ2VSZWNpcGUgfSBmcm9tICcuL2ltYWdlLXJlY2lwZSc7XG5cbi8qKlxuICogVGhlIHBhcmFtZXRlciB2YWx1ZSBmb3IgYSBjb21wb25lbnQgcGFyYW1ldGVyXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21wb25lbnRQYXJhbWV0ZXJWYWx1ZSB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciBhcyBhIHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHN0cmluZyB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TdHJpbmcodmFsdWU6IHN0cmluZyk6IENvbXBvbmVudFBhcmFtZXRlclZhbHVlIHtcbiAgICByZXR1cm4gbmV3IENvbXBvbmVudFBhcmFtZXRlclZhbHVlKFt2YWx1ZV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByZW5kZXJlZCBwYXJhbWV0ZXIgdmFsdWVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nW107XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZGV0YWlscyBmb3IgYSBjb21wb25lbnQsIHRvIGluY2x1ZGUgaW4gYSByZWNpcGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBjb21wb25lbnQgdG8gZXhlY3V0ZSBhcyBwYXJ0IG9mIHRoZSBpbWFnZSBidWlsZFxuICAgKi9cbiAgcmVhZG9ubHkgY29tcG9uZW50OiBJQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVycyB0byB1c2Ugd2hlbiBleGVjdXRpbmcgdGhlIGNvbXBvbmVudFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHBhcmFtZXRlcnMuIGlmIHRoZSBjb21wb25lbnQgY29udGFpbnMgcGFyYW1ldGVycywgdGhlaXIgZGVmYXVsdCB2YWx1ZXMgd2lsbCBiZSB1c2VkLiBvdGhlcndpc2UsIGFueVxuICAgKiAgICAgICAgICAgIHJlcXVpcmVkIHBhcmFtZXRlcnMgdGhhdCBhcmUgbm90IGluY2x1ZGVkIHdpbGwgcmVzdWx0IGluIGEgYnVpbGQgZmFpbHVyZVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IHsgW25hbWU6IHN0cmluZ106IENvbXBvbmVudFBhcmFtZXRlclZhbHVlIH07XG59XG5cbi8qKlxuICogQSBiYXNlIGludGVyZmFjZSBmb3IgRUMyIEltYWdlIEJ1aWxkZXIgcmVjaXBlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElSZWNpcGVCYXNlIGV4dGVuZHMgY2RrLklSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBHcmFudCBjdXN0b20gYWN0aW9ucyB0byB0aGUgZ2l2ZW4gZ3JhbnRlZSBmb3IgdGhlIHJlY2lwZVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsXG4gICAqIEBwYXJhbSBhY3Rpb25zIFRoZSBsaXN0IG9mIGFjdGlvbnNcbiAgICovXG4gIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudDtcblxuICAvKipcbiAgICogR3JhbnQgcmVhZCBwZXJtaXNzaW9ucyB0byB0aGUgZ2l2ZW4gZ3JhbnRlZSBmb3IgdGhlIHJlY2lwZVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsXG4gICAqL1xuICBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSByZWNpcGUgaXMgYSBDb250YWluZXIgUmVjaXBlXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX2lzQ29udGFpbmVyUmVjaXBlKCk6IHRoaXMgaXMgSUNvbnRhaW5lclJlY2lwZTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHJlY2lwZSBpcyBhbiBJbWFnZSBSZWNpcGVcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBfaXNJbWFnZVJlY2lwZSgpOiB0aGlzIGlzIElJbWFnZVJlY2lwZTtcbn1cbiJdfQ==
|
package/lib/workflow.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as cdk from 'aws-cdk-lib';
|
|
2
2
|
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
3
|
-
import * as kms from 'aws-cdk-lib/aws-kms';
|
|
4
|
-
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
3
|
+
import type * as kms from 'aws-cdk-lib/aws-kms';
|
|
4
|
+
import type * as s3 from 'aws-cdk-lib/aws-s3';
|
|
5
5
|
import * as s3assets from 'aws-cdk-lib/aws-s3-assets';
|
|
6
|
-
import { Construct } from 'constructs';
|
|
6
|
+
import type { Construct } from 'constructs';
|
|
7
7
|
/**
|
|
8
8
|
* An EC2 Image Builder Workflow.
|
|
9
9
|
*/
|