Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@aws-cdk/custom-resources

Package Overview
Dependencies
Maintainers
5
Versions
248
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-cdk/custom-resources - npm Package Compare versions

Comparing version 1.31.0 to 1.32.0

8

lib/aws-custom-resource/aws-custom-resource.js

@@ -98,3 +98,3 @@ "use strict";

if ((_a = call === null || call === void 0 ? void 0 : call.physicalResourceId) === null || _a === void 0 ? void 0 : _a.responsePath) {
AwsCustomResource.breakIgnoreErrorsCircuit([call], "PhysicalResourceId.fromResponse");
AwsCustomResource.breakIgnoreErrorsCircuit([call], 'PhysicalResourceId.fromResponse');
}

@@ -164,3 +164,3 @@ }

getResponseFieldReference(dataPath) {
AwsCustomResource.breakIgnoreErrorsCircuit([this.props.onCreate, this.props.onUpdate], "getData");
AwsCustomResource.breakIgnoreErrorsCircuit([this.props.onCreate, this.props.onUpdate], 'getData');
return this.customResource.getAtt(dataPath);

@@ -180,3 +180,3 @@ }

getResponseField(dataPath) {
AwsCustomResource.breakIgnoreErrorsCircuit([this.props.onCreate, this.props.onUpdate], "getDataString");
AwsCustomResource.breakIgnoreErrorsCircuit([this.props.onCreate, this.props.onUpdate], 'getDataString');
return this.customResource.getAttString(dataPath);

@@ -213,2 +213,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWN1c3RvbS1yZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1jdXN0b20tcmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxvRUFBcUY7QUFDckYsd0NBQXdDO0FBQ3hDLDhDQUE4QztBQUU5QyxxQ0FBcUM7QUFDckMseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUU3Qiw0RUFBNEU7QUFDNUUsdUNBQXVDO0FBQ3ZDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFPckcsTUFBTSxjQUFjLEdBQW1CLFFBQVEsQ0FBQztBQUVoRDs7R0FFRztBQUNILE1BQWEsa0JBQWtCO0lBZ0I3Qjs7O09BR0c7SUFDSCxZQUFvQyxZQUFxQixFQUFrQixFQUFXO1FBQWxELGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQWtCLE9BQUUsR0FBRixFQUFFLENBQVM7SUFBSSxDQUFDO0lBbEIzRjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsWUFBb0I7UUFDN0MsT0FBTyxJQUFJLGtCQUFrQixDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQVU7UUFDekIsT0FBTyxJQUFJLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBT0Y7QUFyQkQsZ0RBcUJDO0FBNkZEOztHQUVHO0FBQ0gsTUFBYSx1QkFBdUI7SUEyQmxDOzs7T0FHRztJQUNILFlBQW9DLFVBQWlDLEVBQWtCLFNBQW9CO1FBQXZFLGVBQVUsR0FBVixVQUFVLENBQXVCO1FBQWtCLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFBRyxDQUFDO0lBeEIvRzs7OztPQUlH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QUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ2xELFFBQVEsQ0FBQyxFQUFFO1lBQ1QsS0FBSyxJQUFJO2dCQUNQLE9BQU8sY0FBYyxDQUFDO1lBQ3hCLEtBQUssS0FBSztnQkFDUixPQUFPLGVBQWUsQ0FBQztZQUN6QjtnQkFDRSxPQUFPLENBQUMsQ0FBQztTQUNaO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UsIEN1c3RvbVJlc291cmNlUHJvdmlkZXIgfSBmcm9tICdAYXdzLWNkay9hd3MtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ0Bhd3MtY2RrL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ0Bhd3MtY2RrL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdAYXdzLWNkay9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG4vLyBkb24ndCB1c2UgXCJyZXF1aXJlXCIgc2luY2UgdGhlIHR5cGVzY3JpcHQgY29tcGlsZXIgZW1pdHMgZXJyb3JzIHNpbmNlIHRoaXNcbi8vIGZpbGUgaXMgbm90IGxpc3RlZCBpbiB0c2NvbmZpZy5qc29uLlxuY29uc3QgbWV0YWRhdGEgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnc2RrLWFwaS1tZXRhZGF0YS5qc29uJyksICd1dGYtOCcpKTtcblxuLyoqXG4gKiBBV1MgU0RLIHNlcnZpY2UgbWV0YWRhdGEuXG4gKi9cbmV4cG9ydCB0eXBlIEF3c1Nka01ldGFkYXRhID0ge1trZXk6IHN0cmluZ106IGFueX07XG5cbmNvbnN0IGF3c1Nka01ldGFkYXRhOiBBd3NTZGtNZXRhZGF0YSA9IG1ldGFkYXRhO1xuXG4vKipcbiAqIFBoeXNpY2FsIElEIG9mIHRoZSBjdXN0b20gcmVzb3VyY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBQaHlzaWNhbFJlc291cmNlSWQge1xuXG4gIC8qKlxuICAgKiBFeHRyYWN0IHRoZSBwaHlzaWNhbCByZXNvdXJjZSBpZCBmcm9tIHRoZSBwYXRoIChkb3Qgbm90YXRpb24pIHRvIHRoZSBkYXRhIGluIHRoZSBBUEkgY2FsbCByZXNwb25zZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVJlc3BvbnNlKHJlc3BvbnNlUGF0aDogc3RyaW5nKTogUGh5c2ljYWxSZXNvdXJjZUlkIHtcbiAgICByZXR1cm4gbmV3IFBoeXNpY2FsUmVzb3VyY2VJZChyZXNwb25zZVBhdGgsIHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogRXhwbGljaXQgcGh5c2ljYWwgcmVzb3VyY2UgaWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKGlkOiBzdHJpbmcpOiBQaHlzaWNhbFJlc291cmNlSWQge1xuICAgIHJldHVybiBuZXcgUGh5c2ljYWxSZXNvdXJjZUlkKHVuZGVmaW5lZCwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSByZXNwb25zZVBhdGggUGF0aCB0byBhIHJlc3BvbnNlIGRhdGEgZWxlbWVudCB0byBiZSB1c2VkIGFzIHRoZSBwaHlzaWNhbCBpZC5cbiAgICogQHBhcmFtIGlkIExpdGVyYWwgc3RyaW5nIHRvIGJlIHVzZWQgYXMgdGhlIHBoeXNpY2FsIGlkLlxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcmVzcG9uc2VQYXRoPzogc3RyaW5nLCBwdWJsaWMgcmVhZG9ubHkgaWQ/OiBzdHJpbmcpIHsgfVxufVxuXG4vKipcbiAqIEFuIEFXUyBTREsgY2FsbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NTZGtDYWxsIHtcbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIHRvIGNhbGxcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvaW5kZXguaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSBhY3Rpb24gdG8gY2FsbFxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9pbmRleC5odG1sXG4gICAqL1xuICByZWFkb25seSBhY3Rpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBzZXJ2aWNlIGFjdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHBhcmFtdGVyc1xuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9pbmRleC5odG1sXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgcGh5c2ljYWwgcmVzb3VyY2UgaWQgb2YgdGhlIGN1c3RvbSByZXNvdXJjZSBmb3IgdGhpcyBjYWxsLlxuICAgKiBNYW5kYXRvcnkgZm9yIG9uQ3JlYXRlIG9yIG9uVXBkYXRlIGNhbGxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHBoeXNpY2FsIHJlc291cmNlIGlkXG4gICAqL1xuICByZWFkb25seSBwaHlzaWNhbFJlc291cmNlSWQ/OiBQaHlzaWNhbFJlc291cmNlSWQ7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdleCBwYXR0ZXJuIHRvIHVzZSB0byBjYXRjaCBBUEkgZXJyb3JzLiBUaGUgYGNvZGVgIHByb3BlcnR5IG9mIHRoZVxuICAgKiBgRXJyb3JgIG9iamVjdCB3aWxsIGJlIHRlc3RlZCBhZ2FpbnN0IHRoaXMgcGF0dGVybi4gSWYgdGhlcmUgaXMgYSBtYXRjaCBhblxuICAgKiBlcnJvciB3aWxsIG5vdCBiZSB0aHJvd24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZG8gbm90IGNhdGNoIGVycm9yc1xuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBUEkgdmVyc2lvbiB0byB1c2UgZm9yIHRoZSBzZXJ2aWNlXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nkay1mb3ItamF2YXNjcmlwdC92Mi9kZXZlbG9wZXItZ3VpZGUvbG9ja2luZy1hcGktdmVyc2lvbnMuaHRtbFxuICAgKiBAZGVmYXVsdCAtIHVzZSBsYXRlc3QgYXZhaWxhYmxlIEFQSSB2ZXJzaW9uXG4gICAqL1xuICByZWFkb25seSBhcGlWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIHRvIHNlbmQgc2VydmljZSByZXF1ZXN0cyB0by5cbiAgICogKipOb3RlOiBDcm9zcy1yZWdpb24gb3BlcmF0aW9ucyBhcmUgZ2VuZXJhbGx5IGNvbnNpZGVyZWQgYW4gYW50aS1wYXR0ZXJuLioqXG4gICAqICoqQ29uc2lkZXIgZmlyc3QgZGVwbG95aW5nIGEgc3RhY2sgaW4gdGhhdCByZWdpb24uKipcbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgcmVnaW9uIHdoZXJlIHRoaXMgY3VzdG9tIHJlc291cmNlIGlzIGRlcGxveWVkXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc3RyaWN0IHRoZSBkYXRhIHJldHVybmVkIGJ5IHRoZSBjdXN0b20gcmVzb3VyY2UgdG8gYSBzcGVjaWZpYyBwYXRoIGluXG4gICAqIHRoZSBBUEkgcmVzcG9uc2UuIFVzZSB0aGlzIHRvIGxpbWl0IHRoZSBkYXRhIHJldHVybmVkIGJ5IHRoZSBjdXN0b21cbiAgICogcmVzb3VyY2UgaWYgd29ya2luZyB3aXRoIEFQSSBjYWxscyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBjdXN0b21cbiAgICogcmVzcG9uc2Ugb2JqZWN0cyBleGNlZWRpbmcgdGhlIGhhcmQgbGltaXQgb2YgNDA5NiBieXRlcy5cbiAgICpcbiAgICogRXhhbXBsZSBmb3IgRUNTIC8gdXBkYXRlU2VydmljZTogJ3NlcnZpY2UuZGVwbG95bWVudENvbmZpZ3VyYXRpb24ubWF4aW11bVBlcmNlbnQnXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcmV0dXJuIGFsbCBkYXRhXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRQYXRoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBhdXRvLWdlbmVyYXRpb24gb2YgcG9saWNpZXMgYmFzZWQgb24gdGhlIGNvbmZpZ3VyZWQgU0RLIGNhbGxzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNka0NhbGxzUG9saWN5T3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZXMgdGhhdCB0aGUgY2FsbHMgd2lsbCBoYXZlIGFjY2VzcyB0by5cbiAgICpcbiAgICogSXQgaXMgYmVzdCB0byB1c2Ugc3BlY2lmaWMgcmVzb3VyY2UgQVJOJ3Mgd2hlbiBwb3NzaWJsZS4gSG93ZXZlciwgeW91IGNhbiBhbHNvIHVzZSBgQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFYFxuICAgKiB0byBhbGxvdyBhY2Nlc3MgdG8gYWxsIHJlc291cmNlcy4gRm9yIGV4YW1wbGUsIHdoZW4gYG9uQ3JlYXRlYCBpcyB1c2VkIHRvIGNyZWF0ZSBhIHJlc291cmNlIHdoaWNoIHlvdSBkb24ndFxuICAgKiBrbm93IHRoZSBwaHlzaWNhbCBuYW1lIG9mIGluIGFkdmFuY2UuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB3aWxsIGFwcGx5IHRvIEFMTCBTREsgY2FsbHMuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZXM6IHN0cmluZ1tdXG5cbn1cblxuLyoqXG4gKiBUaGUgSUFNIFBvbGljeSB0aGF0IHdpbGwgYmUgYXBwbGllZCB0byB0aGUgZGlmZmVyZW50IGNhbGxzLlxuICovXG5leHBvcnQgY2xhc3MgQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kge1xuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBjb25zdGFudCB0byBjb25maWd1cmUgYWNjZXNzIHRvIGFueSByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQU5ZX1JFU09VUkNFID0gWycqJ107XG5cbiAgLyoqXG4gICAqIEV4cGxpY2l0IElBTSBQb2xpY3kgU3RhdGVtZW50cy5cbiAgICpcbiAgICogQHBhcmFtIHN0YXRlbWVudHMgdGhlIHN0YXRlbWVudHMgdG8gcHJvcGFnYXRlIHRvIHRoZSBTREsgY2FsbHMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TdGF0ZW1lbnRzKHN0YXRlbWVudHM6IGlhbS5Qb2xpY3lTdGF0ZW1lbnRbXSkge1xuICAgIHJldHVybiBuZXcgQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3koc3RhdGVtZW50cywgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBJQU0gUG9saWN5IFN0YXRlbWVudHMgZnJvbSB0aGUgY29uZmlndXJlZCBTREsgY2FsbHMuXG4gICAqXG4gICAqIEVhY2ggU0RLIGNhbGwgd2l0aCBiZSB0cmFuc2xhdGVkIHRvIGFuIElBTSBQb2xpY3kgU3RhdGVtZW50IGluIHRoZSBmb3JtIG9mOiBgY2FsbC5zZXJ2aWNlOmNhbGwuYWN0aW9uYCAoZS5nIGBzMzpQdXRPYmplY3RgKS5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9ucyBmb3IgdGhlIHBvbGljeSBnZW5lcmF0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TZGtDYWxscyhvcHRpb25zOiBTZGtDYWxsc1BvbGljeU9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IEF3c0N1c3RvbVJlc291cmNlUG9saWN5KFtdLCBvcHRpb25zLnJlc291cmNlcyk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHN0YXRlbWVudHMgc3RhdGVtZW50cyBmb3IgZXhwbGljaXQgcG9saWN5LlxuICAgKiBAcGFyYW0gcmVzb3VyY2VzIHJlc291cmNlcyBmb3IgYXV0by1nZW5lcmF0ZWQgZnJvbSBTREsgY2FsbHMuXG4gICAqL1xuICBwcml2YXRlIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBzdGF0ZW1lbnRzOiBpYW0uUG9saWN5U3RhdGVtZW50W10sIHB1YmxpYyByZWFkb25seSByZXNvdXJjZXM/OiBzdHJpbmdbXSkge31cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBBd3NDdXN0b21SZXNvdXJjZS5cbiAqXG4gKiBOb3RlIHRoYXQgYXQgbGVhc3Qgb25DcmVhdGUsIG9uVXBkYXRlIG9yIG9uRGVsZXRlIG11c3QgYmUgc3BlY2lmaWVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF3c0N1c3RvbVJlc291cmNlUHJvcHMge1xuICAvKipcbiAgICogQ2xvdWRmb3JtYXRpb24gUmVzb3VyY2UgdHlwZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBDdXN0b206OkFXU1xuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VUeXBlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIFNESyBjYWxsIHRvIG1ha2Ugd2hlbiB0aGUgcmVzb3VyY2UgaXMgY3JlYXRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgY2FsbCB3aGVuIHRoZSByZXNvdXJjZSBpcyB1cGRhdGVkXG4gICAqL1xuICByZWFkb25seSBvbkNyZWF0ZT86IEF3c1Nka0NhbGw7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgU0RLIGNhbGwgdG8gbWFrZSB3aGVuIHRoZSByZXNvdXJjZSBpcyB1cGRhdGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY2FsbFxuICAgKi9cbiAgcmVhZG9ubHkgb25VcGRhdGU/OiBBd3NTZGtDYWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIFNESyBjYWxsIHRvIG1ha2Ugd2hlbiB0aGUgcmVzb3VyY2UgaXMgZGVsZXRlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNhbGxcbiAgICovXG4gIHJlYWRvbmx5IG9uRGVsZXRlPzogQXdzU2RrQ2FsbDtcblxuICAvKipcbiAgICogVGhlIHBvbGljeSB0byBhcHBseSB0byB0aGUgcmVzb3VyY2UuXG4gICAqXG4gICAqIFRoZSBjdXN0b20gcmVzb3VyY2UgYWxzbyBpbXBsZW1lbnRzIGBpYW0uSUdyYW50YWJsZWAsIG1ha2luZyBpdCBwb3NzaWJsZVxuICAgKiB0byB1c2UgdGhlIGBncmFudFh4eCgpYCBtZXRob2RzLlxuICAgKlxuICAgKiBBcyB0aGlzIGN1c3RvbSByZXNvdXJjZSB1c2VzIGEgc2luZ2xldG9uIExhbWJkYSBmdW5jdGlvbiwgaXQncyBpbXBvcnRhbnRcbiAgICogdG8gbm90ZSB0aGUgdGhhdCBmdW5jdGlvbidzIHJvbGUgd2lsbCBldmVudHVhbGx5IGFjY3VtdWxhdGUgdGhlXG4gICAqIHBlcm1pc3Npb25zL2dyYW50cyBmcm9tIGFsbCByZXNvdXJjZXMuXG4gICAqXG4gICAqIEBzZWUgUG9saWN5LmZyb21TdGF0ZW1lbnRzXG4gICAqIEBzZWUgUG9saWN5LmZyb21TZGtDYWxsc1xuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeTtcblxuICAvKipcbiAgICogVGhlIGV4ZWN1dGlvbiByb2xlIGZvciB0aGUgTGFtYmRhIGZ1bmN0aW9uIGltcGxlbWVudGluZyB0aGlzIGN1c3RvbVxuICAgKiByZXNvdXJjZSBwcm92aWRlci4gVGhpcyByb2xlIHdpbGwgYXBwbHkgdG8gYWxsIGBBd3NDdXN0b21SZXNvdXJjZWBcbiAgICogaW5zdGFuY2VzIGluIHRoZSBzdGFjay4gVGhlIHJvbGUgbXVzdCBiZSBhc3N1bWFibGUgYnkgdGhlXG4gICAqIGBsYW1iZGEuYW1hem9uYXdzLmNvbWAgc2VydmljZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBuZXcgcm9sZSBpcyBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZW91dCBmb3IgdGhlIExhbWJkYSBmdW5jdGlvbiBpbXBsZW1lbnRpbmcgdGhpcyBjdXN0b20gcmVzb3VyY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLm1pbnV0ZXMoMilcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBjZGsuRHVyYXRpb25cblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBkYXlzIGxvZyBldmVudHMgb2YgdGhlIExhbWJkYSBmdW5jdGlvbiBpbXBsZW1lbnRpbmdcbiAgICogdGhpcyBjdXN0b20gcmVzb3VyY2UgYXJlIGtlcHQgaW4gQ2xvdWRXYXRjaCBMb2dzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBsb2dzLlJldGVudGlvbkRheXMuSU5GSU5JVEVcbiAgICovXG4gIHJlYWRvbmx5IGxvZ1JldGVudGlvbj86IGxvZ3MuUmV0ZW50aW9uRGF5cztcbn1cblxuLyoqXG4gKiBEZWZpbmVzIGEgY3VzdG9tIHJlc291cmNlIHRoYXQgaXMgbWF0ZXJpYWxpemVkIHVzaW5nIHNwZWNpZmljIEFXUyBBUEkgY2FsbHMuXG4gKlxuICogVXNlIHRoaXMgdG8gYnJpZGdlIGFueSBnYXAgdGhhdCBtaWdodCBleGlzdCBpbiB0aGUgQ2xvdWRGb3JtYXRpb24gQ292ZXJhZ2UuXG4gKiBZb3UgY2FuIHNwZWNpZnkgZXhhY3RseSB3aGljaCBjYWxscyBhcmUgaW52b2tlZCBmb3IgdGhlICdDUkVBVEUnLCAnVVBEQVRFJyBhbmQgJ0RFTEVURScgbGlmZSBjeWNsZSBldmVudHMuXG4gKlxuICovXG5leHBvcnQgY2xhc3MgQXdzQ3VzdG9tUmVzb3VyY2UgZXh0ZW5kcyBjZGsuQ29uc3RydWN0IGltcGxlbWVudHMgaWFtLklHcmFudGFibGUge1xuXG4gIHByaXZhdGUgc3RhdGljIGJyZWFrSWdub3JlRXJyb3JzQ2lyY3VpdChzZGtDYWxsczogQXJyYXk8QXdzU2RrQ2FsbCB8IHVuZGVmaW5lZD4sIGNhbGxlcjogc3RyaW5nKSB7XG5cbiAgICBmb3IgKGNvbnN0IGNhbGwgb2Ygc2RrQ2FsbHMpIHtcbiAgICAgIGlmIChjYWxsPy5pZ25vcmVFcnJvckNvZGVzTWF0Y2hpbmcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcXGAke2NhbGxlcn1cXGBgICsgJyBjYW5ub3QgYmUgY2FsbGVkIGFsb25nIHdpdGggYGlnbm9yZUVycm9yQ29kZXNNYXRjaGluZ2AuJyk7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY3VzdG9tUmVzb3VyY2U6IEN1c3RvbVJlc291cmNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBBd3NDdXN0b21SZXNvdXJjZVByb3BzO1xuXG4gIC8vICdwcm9wcycgY2Fubm90IGJlIG9wdGlvbmFsLCBldmVuIHRob3VnaCBhbGwgaXRzIHByb3BlcnRpZXMgYXJlIG9wdGlvbmFsLlxuICAvLyB0aGlzIGlzIGJlY2F1c2UgYXQgbGVhc3Qgb25lIHNkayBjYWxsIG11c3QgYmUgcHJvdmlkZWQuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXdzQ3VzdG9tUmVzb3VyY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAoIXByb3BzLm9uQ3JlYXRlICYmICFwcm9wcy5vblVwZGF0ZSAmJiAhcHJvcHMub25EZWxldGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXQgbGVhc3QgYG9uQ3JlYXRlYCwgYG9uVXBkYXRlYCBvciBgb25EZWxldGVgIG11c3QgYmUgc3BlY2lmaWVkLicpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgY2FsbCBvZiBbcHJvcHMub25DcmVhdGUsIHByb3BzLm9uVXBkYXRlXSkge1xuICAgICAgaWYgKGNhbGwgJiYgIWNhbGwucGh5c2ljYWxSZXNvdXJjZUlkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYHBoeXNpY2FsUmVzb3VyY2VJZGAgbXVzdCBiZSBzcGVjaWZpZWQgZm9yIG9uQ3JlYXRlIGFuZCBvblVwZGF0ZSBjYWxscy4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNhbGwgb2YgW3Byb3BzLm9uQ3JlYXRlLCBwcm9wcy5vblVwZGF0ZSwgcHJvcHMub25EZWxldGVdKSB7XG4gICAgICBpZiAoY2FsbD8ucGh5c2ljYWxSZXNvdXJjZUlkPy5yZXNwb25zZVBhdGgpIHtcbiAgICAgICAgQXdzQ3VzdG9tUmVzb3VyY2UuYnJlYWtJZ25vcmVFcnJvcnNDaXJjdWl0KFtjYWxsXSwgXCJQaHlzaWNhbFJlc291cmNlSWQuZnJvbVJlc3BvbnNlXCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IGxhbWJkYS5TaW5nbGV0b25GdW5jdGlvbih0aGlzLCAnUHJvdmlkZXInLCB7XG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJ3J1bnRpbWUnKSksXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTJfWCxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgIHV1aWQ6ICc2NzlmNTNmYS1jMDAyLTQzMGMtYjBkYS01Yjc5ODJiZDIyODcnLFxuICAgICAgbGFtYmRhUHVycG9zZTogJ0FXUycsXG4gICAgICB0aW1lb3V0OiBwcm9wcy50aW1lb3V0IHx8IGNkay5EdXJhdGlvbi5taW51dGVzKDIpLFxuICAgICAgcm9sZTogcHJvcHMucm9sZSxcbiAgICAgIGxvZ1JldGVudGlvbjogcHJvcHMubG9nUmV0ZW50aW9uLFxuICAgIH0pO1xuICAgIHRoaXMuZ3JhbnRQcmluY2lwYWwgPSBwcm92aWRlci5ncmFudFByaW5jaXBhbDtcblxuICAgIGlmIChwcm9wcy5wb2xpY3kuc3RhdGVtZW50cy5sZW5ndGggIT09IDApIHtcbiAgICAgIC8vIFVzZSBjdXN0b20gc3RhdGVtZW50cyBwcm92aWRlZCBieSB0aGUgdXNlclxuICAgICAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2YgcHJvcHMucG9saWN5LnN0YXRlbWVudHMpIHtcbiAgICAgICAgcHJvdmlkZXIuYWRkVG9Sb2xlUG9saWN5KHN0YXRlbWVudCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIERlcml2ZSBzdGF0ZW1lbnRzIGZyb20gQVdTIFNESyBjYWxsc1xuICAgICAgZm9yIChjb25zdCBjYWxsIG9mIFtwcm9wcy5vbkNyZWF0ZSwgcHJvcHMub25VcGRhdGUsIHByb3BzLm9uRGVsZXRlXSkge1xuICAgICAgICBpZiAoY2FsbCkge1xuICAgICAgICAgIHByb3ZpZGVyLmFkZFRvUm9sZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICBhY3Rpb25zOiBbYXdzU2RrVG9JYW1BY3Rpb24oY2FsbC5zZXJ2aWNlLCBjYWxsLmFjdGlvbildLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBwcm9wcy5wb2xpY3kucmVzb3VyY2VzXG4gICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICBjb25zdCBjcmVhdGUgPSBwcm9wcy5vbkNyZWF0ZSB8fCBwcm9wcy5vblVwZGF0ZTtcbiAgICB0aGlzLmN1c3RvbVJlc291cmNlID0gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIHJlc291cmNlVHlwZTogcHJvcHMucmVzb3VyY2VUeXBlIHx8ICdDdXN0b206OkFXUycsXG4gICAgICBwcm92aWRlcjogQ3VzdG9tUmVzb3VyY2VQcm92aWRlci5mcm9tTGFtYmRhKHByb3ZpZGVyKSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgY3JlYXRlOiBjcmVhdGUgJiYgZW5jb2RlQm9vbGVhbnMoY3JlYXRlKSxcbiAgICAgICAgdXBkYXRlOiBwcm9wcy5vblVwZGF0ZSAmJiBlbmNvZGVCb29sZWFucyhwcm9wcy5vblVwZGF0ZSksXG4gICAgICAgIGRlbGV0ZTogcHJvcHMub25EZWxldGUgJiYgZW5jb2RlQm9vbGVhbnMocHJvcHMub25EZWxldGUpXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyByZXNwb25zZSBkYXRhIGZvciB0aGUgQVdTIFNESyBjYWxsLlxuICAgKlxuICAgKiBFeGFtcGxlIGZvciBTMyAvIGxpc3RCdWNrZXQgOiAnQnVja2V0cy4wLk5hbWUnXG4gICAqXG4gICAqIFVzZSBgVG9rZW4uYXNYeHhgIHRvIGVuY29kZSB0aGUgcmV0dXJuZWQgYFJlZmVyZW5jZWAgYXMgYSBzcGVjaWZpYyB0eXBlIG9yXG4gICAqIHVzZSB0aGUgY29udmVuaWVuY2UgYGdldERhdGFTdHJpbmdgIGZvciBzdHJpbmcgYXR0cmlidXRlcy5cbiAgICpcbiAgICogTm90ZSB0aGF0IHlvdSBjYW5ub3QgdXNlIHRoaXMgbWV0aG9kIGlmIGBpZ25vcmVFcnJvckNvZGVzTWF0Y2hpbmdgXG4gICAqIGlzIGNvbmZpZ3VyZWQgZm9yIGFueSBvZiB0aGUgU0RLIGNhbGxzLiBUaGlzIGlzIGJlY2F1c2UgaW4gc3VjaCBhIGNhc2UsXG4gICAqIHRoZSByZXNwb25zZSBkYXRhIG1pZ2h0IG5vdCBleGlzdCwgYW5kIHdpbGwgY2F1c2UgYSBDbG91ZEZvcm1hdGlvbiBkZXBsb3kgdGltZSBlcnJvci5cbiAgICpcbiAgICogQHBhcmFtIGRhdGFQYXRoIHRoZSBwYXRoIHRvIHRoZSBkYXRhXG4gICAqL1xuICBwdWJsaWMgZ2V0UmVzcG9uc2VGaWVsZFJlZmVyZW5jZShkYXRhUGF0aDogc3RyaW5nKSB7XG4gICAgQXdzQ3VzdG9tUmVzb3VyY2UuYnJlYWtJZ25vcmVFcnJvcnNDaXJjdWl0KFt0aGlzLnByb3BzLm9uQ3JlYXRlLCB0aGlzLnByb3BzLm9uVXBkYXRlXSwgXCJnZXREYXRhXCIpO1xuICAgIHJldHVybiB0aGlzLmN1c3RvbVJlc291cmNlLmdldEF0dChkYXRhUGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyByZXNwb25zZSBkYXRhIGZvciB0aGUgQVdTIFNESyBjYWxsIGFzIHN0cmluZy5cbiAgICpcbiAgICogRXhhbXBsZSBmb3IgUzMgLyBsaXN0QnVja2V0IDogJ0J1Y2tldHMuMC5OYW1lJ1xuICAgKlxuICAgKiBOb3RlIHRoYXQgeW91IGNhbm5vdCB1c2UgdGhpcyBtZXRob2QgaWYgYGlnbm9yZUVycm9yQ29kZXNNYXRjaGluZ2BcbiAgICogaXMgY29uZmlndXJlZCBmb3IgYW55IG9mIHRoZSBTREsgY2FsbHMuIFRoaXMgaXMgYmVjYXVzZSBpbiBzdWNoIGEgY2FzZSxcbiAgICogdGhlIHJlc3BvbnNlIGRhdGEgbWlnaHQgbm90IGV4aXN0LCBhbmQgd2lsbCBjYXVzZSBhIENsb3VkRm9ybWF0aW9uIGRlcGxveSB0aW1lIGVycm9yLlxuICAgKlxuICAgKiBAcGFyYW0gZGF0YVBhdGggdGhlIHBhdGggdG8gdGhlIGRhdGFcbiAgICovXG4gIHB1YmxpYyBnZXRSZXNwb25zZUZpZWxkKGRhdGFQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIEF3c0N1c3RvbVJlc291cmNlLmJyZWFrSWdub3JlRXJyb3JzQ2lyY3VpdChbdGhpcy5wcm9wcy5vbkNyZWF0ZSwgdGhpcy5wcm9wcy5vblVwZGF0ZV0sIFwiZ2V0RGF0YVN0cmluZ1wiKTtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21SZXNvdXJjZS5nZXRBdHRTdHJpbmcoZGF0YVBhdGgpO1xuICB9XG5cbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gU0RLIHNlcnZpY2UvYWN0aW9uIHRvIElBTSBhY3Rpb24gdXNpbmcgbWV0YWRhdGEgZnJvbSBhd3Mtc2RrIG1vZHVsZS5cbiAqIEV4YW1wbGU6IENsb3VkV2F0Y2hMb2dzIHdpdGggcHV0UmV0ZW50aW9uUG9saWN5ID0+IGxvZ3M6UHV0UmV0ZW50aW9uUG9saWN5XG4gKlxuICogVE9ETzogaXMgdGhpcyBtYXBwaW5nIGNvcnJlY3QgZm9yIGFsbCBzZXJ2aWNlcz9cbiAqL1xuZnVuY3Rpb24gYXdzU2RrVG9JYW1BY3Rpb24oc2VydmljZTogc3RyaW5nLCBhY3Rpb246IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHNydiA9IHNlcnZpY2UudG9Mb3dlckNhc2UoKTtcbiAgY29uc3QgaWFtU2VydmljZSA9IChhd3NTZGtNZXRhZGF0YVtzcnZdICYmIGF3c1Nka01ldGFkYXRhW3Nydl0ucHJlZml4KSB8fCBzcnY7XG4gIGNvbnN0IGlhbUFjdGlvbiA9IGFjdGlvbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGFjdGlvbi5zbGljZSgxKTtcbiAgcmV0dXJuIGAke2lhbVNlcnZpY2V9OiR7aWFtQWN0aW9ufWA7XG59XG5cbi8qKlxuICogRW5jb2RlcyBib29sZWFucyBhcyBzcGVjaWFsIHN0cmluZ3NcbiAqL1xuZnVuY3Rpb24gZW5jb2RlQm9vbGVhbnMob2JqZWN0OiBvYmplY3QpIHtcbiAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqZWN0KSwgKF9rLCB2KSA9PiB7XG4gICAgc3dpdGNoICh2KSB7XG4gICAgICBjYXNlIHRydWU6XG4gICAgICAgIHJldHVybiAnVFJVRTpCT09MRUFOJztcbiAgICAgIGNhc2UgZmFsc2U6XG4gICAgICAgIHJldHVybiAnRkFMU0U6Qk9PTEVBTic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG4gIH0pO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWN1c3RvbS1yZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1jdXN0b20tcmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxvRUFBcUY7QUFDckYsd0NBQXdDO0FBQ3hDLDhDQUE4QztBQUU5QyxxQ0FBcUM7QUFDckMseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUU3Qiw0RUFBNEU7QUFDNUUsdUNBQXVDO0FBQ3ZDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFPckcsTUFBTSxjQUFjLEdBQW1CLFFBQVEsQ0FBQztBQUVoRDs7R0FFRztBQUNILE1BQWEsa0JBQWtCO0lBZ0I3Qjs7O09BR0c7SUFDSCxZQUFvQyxZQUFxQixFQUFrQixFQUFXO1FBQWxELGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQWtCLE9BQUUsR0FBRixFQUFFLENBQVM7SUFBSSxDQUFDO0lBbEIzRjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsWUFBb0I7UUFDN0MsT0FBTyxJQUFJLGtCQUFrQixDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQVU7UUFDekIsT0FBTyxJQUFJLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBT0Y7QUFyQkQsZ0RBcUJDO0FBNkZEOztHQUVHO0FBQ0gsTUFBYSx1QkFBdUI7SUEyQmxDOzs7T0FHRztJQUNILFlBQW9DLFVBQWlDLEVBQWtCLFNBQW9CO1FBQXZFLGVBQVUsR0FBVixVQUFVLENBQXVCO1FBQWtCLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFBRyxDQUFDO0lBeEIvRzs7OztPQUlH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QUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ2xELFFBQVEsQ0FBQyxFQUFFO1lBQ1QsS0FBSyxJQUFJO2dCQUNQLE9BQU8sY0FBYyxDQUFDO1lBQ3hCLEtBQUssS0FBSztnQkFDUixPQUFPLGVBQWUsQ0FBQztZQUN6QjtnQkFDRSxPQUFPLENBQUMsQ0FBQztTQUNaO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UsIEN1c3RvbVJlc291cmNlUHJvdmlkZXIgfSBmcm9tICdAYXdzLWNkay9hd3MtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ0Bhd3MtY2RrL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ0Bhd3MtY2RrL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdAYXdzLWNkay9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG4vLyBkb24ndCB1c2UgXCJyZXF1aXJlXCIgc2luY2UgdGhlIHR5cGVzY3JpcHQgY29tcGlsZXIgZW1pdHMgZXJyb3JzIHNpbmNlIHRoaXNcbi8vIGZpbGUgaXMgbm90IGxpc3RlZCBpbiB0c2NvbmZpZy5qc29uLlxuY29uc3QgbWV0YWRhdGEgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnc2RrLWFwaS1tZXRhZGF0YS5qc29uJyksICd1dGYtOCcpKTtcblxuLyoqXG4gKiBBV1MgU0RLIHNlcnZpY2UgbWV0YWRhdGEuXG4gKi9cbmV4cG9ydCB0eXBlIEF3c1Nka01ldGFkYXRhID0ge1trZXk6IHN0cmluZ106IGFueX07XG5cbmNvbnN0IGF3c1Nka01ldGFkYXRhOiBBd3NTZGtNZXRhZGF0YSA9IG1ldGFkYXRhO1xuXG4vKipcbiAqIFBoeXNpY2FsIElEIG9mIHRoZSBjdXN0b20gcmVzb3VyY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBQaHlzaWNhbFJlc291cmNlSWQge1xuXG4gIC8qKlxuICAgKiBFeHRyYWN0IHRoZSBwaHlzaWNhbCByZXNvdXJjZSBpZCBmcm9tIHRoZSBwYXRoIChkb3Qgbm90YXRpb24pIHRvIHRoZSBkYXRhIGluIHRoZSBBUEkgY2FsbCByZXNwb25zZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVJlc3BvbnNlKHJlc3BvbnNlUGF0aDogc3RyaW5nKTogUGh5c2ljYWxSZXNvdXJjZUlkIHtcbiAgICByZXR1cm4gbmV3IFBoeXNpY2FsUmVzb3VyY2VJZChyZXNwb25zZVBhdGgsIHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogRXhwbGljaXQgcGh5c2ljYWwgcmVzb3VyY2UgaWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKGlkOiBzdHJpbmcpOiBQaHlzaWNhbFJlc291cmNlSWQge1xuICAgIHJldHVybiBuZXcgUGh5c2ljYWxSZXNvdXJjZUlkKHVuZGVmaW5lZCwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSByZXNwb25zZVBhdGggUGF0aCB0byBhIHJlc3BvbnNlIGRhdGEgZWxlbWVudCB0byBiZSB1c2VkIGFzIHRoZSBwaHlzaWNhbCBpZC5cbiAgICogQHBhcmFtIGlkIExpdGVyYWwgc3RyaW5nIHRvIGJlIHVzZWQgYXMgdGhlIHBoeXNpY2FsIGlkLlxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcmVzcG9uc2VQYXRoPzogc3RyaW5nLCBwdWJsaWMgcmVhZG9ubHkgaWQ/OiBzdHJpbmcpIHsgfVxufVxuXG4vKipcbiAqIEFuIEFXUyBTREsgY2FsbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NTZGtDYWxsIHtcbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIHRvIGNhbGxcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvaW5kZXguaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSBhY3Rpb24gdG8gY2FsbFxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9pbmRleC5odG1sXG4gICAqL1xuICByZWFkb25seSBhY3Rpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBzZXJ2aWNlIGFjdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHBhcmFtdGVyc1xuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9pbmRleC5odG1sXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgcGh5c2ljYWwgcmVzb3VyY2UgaWQgb2YgdGhlIGN1c3RvbSByZXNvdXJjZSBmb3IgdGhpcyBjYWxsLlxuICAgKiBNYW5kYXRvcnkgZm9yIG9uQ3JlYXRlIG9yIG9uVXBkYXRlIGNhbGxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHBoeXNpY2FsIHJlc291cmNlIGlkXG4gICAqL1xuICByZWFkb25seSBwaHlzaWNhbFJlc291cmNlSWQ/OiBQaHlzaWNhbFJlc291cmNlSWQ7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdleCBwYXR0ZXJuIHRvIHVzZSB0byBjYXRjaCBBUEkgZXJyb3JzLiBUaGUgYGNvZGVgIHByb3BlcnR5IG9mIHRoZVxuICAgKiBgRXJyb3JgIG9iamVjdCB3aWxsIGJlIHRlc3RlZCBhZ2FpbnN0IHRoaXMgcGF0dGVybi4gSWYgdGhlcmUgaXMgYSBtYXRjaCBhblxuICAgKiBlcnJvciB3aWxsIG5vdCBiZSB0aHJvd24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZG8gbm90IGNhdGNoIGVycm9yc1xuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBUEkgdmVyc2lvbiB0byB1c2UgZm9yIHRoZSBzZXJ2aWNlXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nkay1mb3ItamF2YXNjcmlwdC92Mi9kZXZlbG9wZXItZ3VpZGUvbG9ja2luZy1hcGktdmVyc2lvbnMuaHRtbFxuICAgKiBAZGVmYXVsdCAtIHVzZSBsYXRlc3QgYXZhaWxhYmxlIEFQSSB2ZXJzaW9uXG4gICAqL1xuICByZWFkb25seSBhcGlWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIHRvIHNlbmQgc2VydmljZSByZXF1ZXN0cyB0by5cbiAgICogKipOb3RlOiBDcm9zcy1yZWdpb24gb3BlcmF0aW9ucyBhcmUgZ2VuZXJhbGx5IGNvbnNpZGVyZWQgYW4gYW50aS1wYXR0ZXJuLioqXG4gICAqICoqQ29uc2lkZXIgZmlyc3QgZGVwbG95aW5nIGEgc3RhY2sgaW4gdGhhdCByZWdpb24uKipcbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgcmVnaW9uIHdoZXJlIHRoaXMgY3VzdG9tIHJlc291cmNlIGlzIGRlcGxveWVkXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc3RyaWN0IHRoZSBkYXRhIHJldHVybmVkIGJ5IHRoZSBjdXN0b20gcmVzb3VyY2UgdG8gYSBzcGVjaWZpYyBwYXRoIGluXG4gICAqIHRoZSBBUEkgcmVzcG9uc2UuIFVzZSB0aGlzIHRvIGxpbWl0IHRoZSBkYXRhIHJldHVybmVkIGJ5IHRoZSBjdXN0b21cbiAgICogcmVzb3VyY2UgaWYgd29ya2luZyB3aXRoIEFQSSBjYWxscyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBjdXN0b21cbiAgICogcmVzcG9uc2Ugb2JqZWN0cyBleGNlZWRpbmcgdGhlIGhhcmQgbGltaXQgb2YgNDA5NiBieXRlcy5cbiAgICpcbiAgICogRXhhbXBsZSBmb3IgRUNTIC8gdXBkYXRlU2VydmljZTogJ3NlcnZpY2UuZGVwbG95bWVudENvbmZpZ3VyYXRpb24ubWF4aW11bVBlcmNlbnQnXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcmV0dXJuIGFsbCBkYXRhXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRQYXRoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBhdXRvLWdlbmVyYXRpb24gb2YgcG9saWNpZXMgYmFzZWQgb24gdGhlIGNvbmZpZ3VyZWQgU0RLIGNhbGxzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNka0NhbGxzUG9saWN5T3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZXMgdGhhdCB0aGUgY2FsbHMgd2lsbCBoYXZlIGFjY2VzcyB0by5cbiAgICpcbiAgICogSXQgaXMgYmVzdCB0byB1c2Ugc3BlY2lmaWMgcmVzb3VyY2UgQVJOJ3Mgd2hlbiBwb3NzaWJsZS4gSG93ZXZlciwgeW91IGNhbiBhbHNvIHVzZSBgQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFYFxuICAgKiB0byBhbGxvdyBhY2Nlc3MgdG8gYWxsIHJlc291cmNlcy4gRm9yIGV4YW1wbGUsIHdoZW4gYG9uQ3JlYXRlYCBpcyB1c2VkIHRvIGNyZWF0ZSBhIHJlc291cmNlIHdoaWNoIHlvdSBkb24ndFxuICAgKiBrbm93IHRoZSBwaHlzaWNhbCBuYW1lIG9mIGluIGFkdmFuY2UuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB3aWxsIGFwcGx5IHRvIEFMTCBTREsgY2FsbHMuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZXM6IHN0cmluZ1tdXG5cbn1cblxuLyoqXG4gKiBUaGUgSUFNIFBvbGljeSB0aGF0IHdpbGwgYmUgYXBwbGllZCB0byB0aGUgZGlmZmVyZW50IGNhbGxzLlxuICovXG5leHBvcnQgY2xhc3MgQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kge1xuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBjb25zdGFudCB0byBjb25maWd1cmUgYWNjZXNzIHRvIGFueSByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQU5ZX1JFU09VUkNFID0gWycqJ107XG5cbiAgLyoqXG4gICAqIEV4cGxpY2l0IElBTSBQb2xpY3kgU3RhdGVtZW50cy5cbiAgICpcbiAgICogQHBhcmFtIHN0YXRlbWVudHMgdGhlIHN0YXRlbWVudHMgdG8gcHJvcGFnYXRlIHRvIHRoZSBTREsgY2FsbHMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TdGF0ZW1lbnRzKHN0YXRlbWVudHM6IGlhbS5Qb2xpY3lTdGF0ZW1lbnRbXSkge1xuICAgIHJldHVybiBuZXcgQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3koc3RhdGVtZW50cywgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBJQU0gUG9saWN5IFN0YXRlbWVudHMgZnJvbSB0aGUgY29uZmlndXJlZCBTREsgY2FsbHMuXG4gICAqXG4gICAqIEVhY2ggU0RLIGNhbGwgd2l0aCBiZSB0cmFuc2xhdGVkIHRvIGFuIElBTSBQb2xpY3kgU3RhdGVtZW50IGluIHRoZSBmb3JtIG9mOiBgY2FsbC5zZXJ2aWNlOmNhbGwuYWN0aW9uYCAoZS5nIGBzMzpQdXRPYmplY3RgKS5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9ucyBmb3IgdGhlIHBvbGljeSBnZW5lcmF0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TZGtDYWxscyhvcHRpb25zOiBTZGtDYWxsc1BvbGljeU9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IEF3c0N1c3RvbVJlc291cmNlUG9saWN5KFtdLCBvcHRpb25zLnJlc291cmNlcyk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHN0YXRlbWVudHMgc3RhdGVtZW50cyBmb3IgZXhwbGljaXQgcG9saWN5LlxuICAgKiBAcGFyYW0gcmVzb3VyY2VzIHJlc291cmNlcyBmb3IgYXV0by1nZW5lcmF0ZWQgZnJvbSBTREsgY2FsbHMuXG4gICAqL1xuICBwcml2YXRlIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBzdGF0ZW1lbnRzOiBpYW0uUG9saWN5U3RhdGVtZW50W10sIHB1YmxpYyByZWFkb25seSByZXNvdXJjZXM/OiBzdHJpbmdbXSkge31cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBBd3NDdXN0b21SZXNvdXJjZS5cbiAqXG4gKiBOb3RlIHRoYXQgYXQgbGVhc3Qgb25DcmVhdGUsIG9uVXBkYXRlIG9yIG9uRGVsZXRlIG11c3QgYmUgc3BlY2lmaWVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF3c0N1c3RvbVJlc291cmNlUHJvcHMge1xuICAvKipcbiAgICogQ2xvdWRmb3JtYXRpb24gUmVzb3VyY2UgdHlwZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBDdXN0b206OkFXU1xuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VUeXBlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIFNESyBjYWxsIHRvIG1ha2Ugd2hlbiB0aGUgcmVzb3VyY2UgaXMgY3JlYXRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgY2FsbCB3aGVuIHRoZSByZXNvdXJjZSBpcyB1cGRhdGVkXG4gICAqL1xuICByZWFkb25seSBvbkNyZWF0ZT86IEF3c1Nka0NhbGw7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgU0RLIGNhbGwgdG8gbWFrZSB3aGVuIHRoZSByZXNvdXJjZSBpcyB1cGRhdGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY2FsbFxuICAgKi9cbiAgcmVhZG9ubHkgb25VcGRhdGU/OiBBd3NTZGtDYWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIFNESyBjYWxsIHRvIG1ha2Ugd2hlbiB0aGUgcmVzb3VyY2UgaXMgZGVsZXRlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNhbGxcbiAgICovXG4gIHJlYWRvbmx5IG9uRGVsZXRlPzogQXdzU2RrQ2FsbDtcblxuICAvKipcbiAgICogVGhlIHBvbGljeSB0byBhcHBseSB0byB0aGUgcmVzb3VyY2UuXG4gICAqXG4gICAqIFRoZSBjdXN0b20gcmVzb3VyY2UgYWxzbyBpbXBsZW1lbnRzIGBpYW0uSUdyYW50YWJsZWAsIG1ha2luZyBpdCBwb3NzaWJsZVxuICAgKiB0byB1c2UgdGhlIGBncmFudFh4eCgpYCBtZXRob2RzLlxuICAgKlxuICAgKiBBcyB0aGlzIGN1c3RvbSByZXNvdXJjZSB1c2VzIGEgc2luZ2xldG9uIExhbWJkYSBmdW5jdGlvbiwgaXQncyBpbXBvcnRhbnRcbiAgICogdG8gbm90ZSB0aGUgdGhhdCBmdW5jdGlvbidzIHJvbGUgd2lsbCBldmVudHVhbGx5IGFjY3VtdWxhdGUgdGhlXG4gICAqIHBlcm1pc3Npb25zL2dyYW50cyBmcm9tIGFsbCByZXNvdXJjZXMuXG4gICAqXG4gICAqIEBzZWUgUG9saWN5LmZyb21TdGF0ZW1lbnRzXG4gICAqIEBzZWUgUG9saWN5LmZyb21TZGtDYWxsc1xuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeTtcblxuICAvKipcbiAgICogVGhlIGV4ZWN1dGlvbiByb2xlIGZvciB0aGUgTGFtYmRhIGZ1bmN0aW9uIGltcGxlbWVudGluZyB0aGlzIGN1c3RvbVxuICAgKiByZXNvdXJjZSBwcm92aWRlci4gVGhpcyByb2xlIHdpbGwgYXBwbHkgdG8gYWxsIGBBd3NDdXN0b21SZXNvdXJjZWBcbiAgICogaW5zdGFuY2VzIGluIHRoZSBzdGFjay4gVGhlIHJvbGUgbXVzdCBiZSBhc3N1bWFibGUgYnkgdGhlXG4gICAqIGBsYW1iZGEuYW1hem9uYXdzLmNvbWAgc2VydmljZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBuZXcgcm9sZSBpcyBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZW91dCBmb3IgdGhlIExhbWJkYSBmdW5jdGlvbiBpbXBsZW1lbnRpbmcgdGhpcyBjdXN0b20gcmVzb3VyY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLm1pbnV0ZXMoMilcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBjZGsuRHVyYXRpb25cblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBkYXlzIGxvZyBldmVudHMgb2YgdGhlIExhbWJkYSBmdW5jdGlvbiBpbXBsZW1lbnRpbmdcbiAgICogdGhpcyBjdXN0b20gcmVzb3VyY2UgYXJlIGtlcHQgaW4gQ2xvdWRXYXRjaCBMb2dzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBsb2dzLlJldGVudGlvbkRheXMuSU5GSU5JVEVcbiAgICovXG4gIHJlYWRvbmx5IGxvZ1JldGVudGlvbj86IGxvZ3MuUmV0ZW50aW9uRGF5cztcbn1cblxuLyoqXG4gKiBEZWZpbmVzIGEgY3VzdG9tIHJlc291cmNlIHRoYXQgaXMgbWF0ZXJpYWxpemVkIHVzaW5nIHNwZWNpZmljIEFXUyBBUEkgY2FsbHMuXG4gKlxuICogVXNlIHRoaXMgdG8gYnJpZGdlIGFueSBnYXAgdGhhdCBtaWdodCBleGlzdCBpbiB0aGUgQ2xvdWRGb3JtYXRpb24gQ292ZXJhZ2UuXG4gKiBZb3UgY2FuIHNwZWNpZnkgZXhhY3RseSB3aGljaCBjYWxscyBhcmUgaW52b2tlZCBmb3IgdGhlICdDUkVBVEUnLCAnVVBEQVRFJyBhbmQgJ0RFTEVURScgbGlmZSBjeWNsZSBldmVudHMuXG4gKlxuICovXG5leHBvcnQgY2xhc3MgQXdzQ3VzdG9tUmVzb3VyY2UgZXh0ZW5kcyBjZGsuQ29uc3RydWN0IGltcGxlbWVudHMgaWFtLklHcmFudGFibGUge1xuXG4gIHByaXZhdGUgc3RhdGljIGJyZWFrSWdub3JlRXJyb3JzQ2lyY3VpdChzZGtDYWxsczogQXJyYXk8QXdzU2RrQ2FsbCB8IHVuZGVmaW5lZD4sIGNhbGxlcjogc3RyaW5nKSB7XG5cbiAgICBmb3IgKGNvbnN0IGNhbGwgb2Ygc2RrQ2FsbHMpIHtcbiAgICAgIGlmIChjYWxsPy5pZ25vcmVFcnJvckNvZGVzTWF0Y2hpbmcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcXGAke2NhbGxlcn1cXGBgICsgJyBjYW5ub3QgYmUgY2FsbGVkIGFsb25nIHdpdGggYGlnbm9yZUVycm9yQ29kZXNNYXRjaGluZ2AuJyk7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY3VzdG9tUmVzb3VyY2U6IEN1c3RvbVJlc291cmNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBBd3NDdXN0b21SZXNvdXJjZVByb3BzO1xuXG4gIC8vICdwcm9wcycgY2Fubm90IGJlIG9wdGlvbmFsLCBldmVuIHRob3VnaCBhbGwgaXRzIHByb3BlcnRpZXMgYXJlIG9wdGlvbmFsLlxuICAvLyB0aGlzIGlzIGJlY2F1c2UgYXQgbGVhc3Qgb25lIHNkayBjYWxsIG11c3QgYmUgcHJvdmlkZWQuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXdzQ3VzdG9tUmVzb3VyY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAoIXByb3BzLm9uQ3JlYXRlICYmICFwcm9wcy5vblVwZGF0ZSAmJiAhcHJvcHMub25EZWxldGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXQgbGVhc3QgYG9uQ3JlYXRlYCwgYG9uVXBkYXRlYCBvciBgb25EZWxldGVgIG11c3QgYmUgc3BlY2lmaWVkLicpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgY2FsbCBvZiBbcHJvcHMub25DcmVhdGUsIHByb3BzLm9uVXBkYXRlXSkge1xuICAgICAgaWYgKGNhbGwgJiYgIWNhbGwucGh5c2ljYWxSZXNvdXJjZUlkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYHBoeXNpY2FsUmVzb3VyY2VJZGAgbXVzdCBiZSBzcGVjaWZpZWQgZm9yIG9uQ3JlYXRlIGFuZCBvblVwZGF0ZSBjYWxscy4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNhbGwgb2YgW3Byb3BzLm9uQ3JlYXRlLCBwcm9wcy5vblVwZGF0ZSwgcHJvcHMub25EZWxldGVdKSB7XG4gICAgICBpZiAoY2FsbD8ucGh5c2ljYWxSZXNvdXJjZUlkPy5yZXNwb25zZVBhdGgpIHtcbiAgICAgICAgQXdzQ3VzdG9tUmVzb3VyY2UuYnJlYWtJZ25vcmVFcnJvcnNDaXJjdWl0KFtjYWxsXSwgJ1BoeXNpY2FsUmVzb3VyY2VJZC5mcm9tUmVzcG9uc2UnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBsYW1iZGEuU2luZ2xldG9uRnVuY3Rpb24odGhpcywgJ1Byb3ZpZGVyJywge1xuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICdydW50aW1lJykpLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzEyX1gsXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICB1dWlkOiAnNjc5ZjUzZmEtYzAwMi00MzBjLWIwZGEtNWI3OTgyYmQyMjg3JyxcbiAgICAgIGxhbWJkYVB1cnBvc2U6ICdBV1MnLFxuICAgICAgdGltZW91dDogcHJvcHMudGltZW91dCB8fCBjZGsuRHVyYXRpb24ubWludXRlcygyKSxcbiAgICAgIHJvbGU6IHByb3BzLnJvbGUsXG4gICAgICBsb2dSZXRlbnRpb246IHByb3BzLmxvZ1JldGVudGlvbixcbiAgICB9KTtcbiAgICB0aGlzLmdyYW50UHJpbmNpcGFsID0gcHJvdmlkZXIuZ3JhbnRQcmluY2lwYWw7XG5cbiAgICBpZiAocHJvcHMucG9saWN5LnN0YXRlbWVudHMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAvLyBVc2UgY3VzdG9tIHN0YXRlbWVudHMgcHJvdmlkZWQgYnkgdGhlIHVzZXJcbiAgICAgIGZvciAoY29uc3Qgc3RhdGVtZW50IG9mIHByb3BzLnBvbGljeS5zdGF0ZW1lbnRzKSB7XG4gICAgICAgIHByb3ZpZGVyLmFkZFRvUm9sZVBvbGljeShzdGF0ZW1lbnQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBEZXJpdmUgc3RhdGVtZW50cyBmcm9tIEFXUyBTREsgY2FsbHNcbiAgICAgIGZvciAoY29uc3QgY2FsbCBvZiBbcHJvcHMub25DcmVhdGUsIHByb3BzLm9uVXBkYXRlLCBwcm9wcy5vbkRlbGV0ZV0pIHtcbiAgICAgICAgaWYgKGNhbGwpIHtcbiAgICAgICAgICBwcm92aWRlci5hZGRUb1JvbGVQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogW2F3c1Nka1RvSWFtQWN0aW9uKGNhbGwuc2VydmljZSwgY2FsbC5hY3Rpb24pXSxcbiAgICAgICAgICAgIHJlc291cmNlczogcHJvcHMucG9saWN5LnJlc291cmNlc1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gICAgY29uc3QgY3JlYXRlID0gcHJvcHMub25DcmVhdGUgfHwgcHJvcHMub25VcGRhdGU7XG4gICAgdGhpcy5jdXN0b21SZXNvdXJjZSA9IG5ldyBDdXN0b21SZXNvdXJjZSh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICByZXNvdXJjZVR5cGU6IHByb3BzLnJlc291cmNlVHlwZSB8fCAnQ3VzdG9tOjpBV1MnLFxuICAgICAgcHJvdmlkZXI6IEN1c3RvbVJlc291cmNlUHJvdmlkZXIuZnJvbUxhbWJkYShwcm92aWRlciksXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGNyZWF0ZTogY3JlYXRlICYmIGVuY29kZUJvb2xlYW5zKGNyZWF0ZSksXG4gICAgICAgIHVwZGF0ZTogcHJvcHMub25VcGRhdGUgJiYgZW5jb2RlQm9vbGVhbnMocHJvcHMub25VcGRhdGUpLFxuICAgICAgICBkZWxldGU6IHByb3BzLm9uRGVsZXRlICYmIGVuY29kZUJvb2xlYW5zKHByb3BzLm9uRGVsZXRlKVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgcmVzcG9uc2UgZGF0YSBmb3IgdGhlIEFXUyBTREsgY2FsbC5cbiAgICpcbiAgICogRXhhbXBsZSBmb3IgUzMgLyBsaXN0QnVja2V0IDogJ0J1Y2tldHMuMC5OYW1lJ1xuICAgKlxuICAgKiBVc2UgYFRva2VuLmFzWHh4YCB0byBlbmNvZGUgdGhlIHJldHVybmVkIGBSZWZlcmVuY2VgIGFzIGEgc3BlY2lmaWMgdHlwZSBvclxuICAgKiB1c2UgdGhlIGNvbnZlbmllbmNlIGBnZXREYXRhU3RyaW5nYCBmb3Igc3RyaW5nIGF0dHJpYnV0ZXMuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB5b3UgY2Fubm90IHVzZSB0aGlzIG1ldGhvZCBpZiBgaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nYFxuICAgKiBpcyBjb25maWd1cmVkIGZvciBhbnkgb2YgdGhlIFNESyBjYWxscy4gVGhpcyBpcyBiZWNhdXNlIGluIHN1Y2ggYSBjYXNlLFxuICAgKiB0aGUgcmVzcG9uc2UgZGF0YSBtaWdodCBub3QgZXhpc3QsIGFuZCB3aWxsIGNhdXNlIGEgQ2xvdWRGb3JtYXRpb24gZGVwbG95IHRpbWUgZXJyb3IuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhUGF0aCB0aGUgcGF0aCB0byB0aGUgZGF0YVxuICAgKi9cbiAgcHVibGljIGdldFJlc3BvbnNlRmllbGRSZWZlcmVuY2UoZGF0YVBhdGg6IHN0cmluZykge1xuICAgIEF3c0N1c3RvbVJlc291cmNlLmJyZWFrSWdub3JlRXJyb3JzQ2lyY3VpdChbdGhpcy5wcm9wcy5vbkNyZWF0ZSwgdGhpcy5wcm9wcy5vblVwZGF0ZV0sICdnZXREYXRhJyk7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tUmVzb3VyY2UuZ2V0QXR0KGRhdGFQYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHJlc3BvbnNlIGRhdGEgZm9yIHRoZSBBV1MgU0RLIGNhbGwgYXMgc3RyaW5nLlxuICAgKlxuICAgKiBFeGFtcGxlIGZvciBTMyAvIGxpc3RCdWNrZXQgOiAnQnVja2V0cy4wLk5hbWUnXG4gICAqXG4gICAqIE5vdGUgdGhhdCB5b3UgY2Fubm90IHVzZSB0aGlzIG1ldGhvZCBpZiBgaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nYFxuICAgKiBpcyBjb25maWd1cmVkIGZvciBhbnkgb2YgdGhlIFNESyBjYWxscy4gVGhpcyBpcyBiZWNhdXNlIGluIHN1Y2ggYSBjYXNlLFxuICAgKiB0aGUgcmVzcG9uc2UgZGF0YSBtaWdodCBub3QgZXhpc3QsIGFuZCB3aWxsIGNhdXNlIGEgQ2xvdWRGb3JtYXRpb24gZGVwbG95IHRpbWUgZXJyb3IuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhUGF0aCB0aGUgcGF0aCB0byB0aGUgZGF0YVxuICAgKi9cbiAgcHVibGljIGdldFJlc3BvbnNlRmllbGQoZGF0YVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgQXdzQ3VzdG9tUmVzb3VyY2UuYnJlYWtJZ25vcmVFcnJvcnNDaXJjdWl0KFt0aGlzLnByb3BzLm9uQ3JlYXRlLCB0aGlzLnByb3BzLm9uVXBkYXRlXSwgJ2dldERhdGFTdHJpbmcnKTtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21SZXNvdXJjZS5nZXRBdHRTdHJpbmcoZGF0YVBhdGgpO1xuICB9XG5cbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gU0RLIHNlcnZpY2UvYWN0aW9uIHRvIElBTSBhY3Rpb24gdXNpbmcgbWV0YWRhdGEgZnJvbSBhd3Mtc2RrIG1vZHVsZS5cbiAqIEV4YW1wbGU6IENsb3VkV2F0Y2hMb2dzIHdpdGggcHV0UmV0ZW50aW9uUG9saWN5ID0+IGxvZ3M6UHV0UmV0ZW50aW9uUG9saWN5XG4gKlxuICogVE9ETzogaXMgdGhpcyBtYXBwaW5nIGNvcnJlY3QgZm9yIGFsbCBzZXJ2aWNlcz9cbiAqL1xuZnVuY3Rpb24gYXdzU2RrVG9JYW1BY3Rpb24oc2VydmljZTogc3RyaW5nLCBhY3Rpb246IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHNydiA9IHNlcnZpY2UudG9Mb3dlckNhc2UoKTtcbiAgY29uc3QgaWFtU2VydmljZSA9IChhd3NTZGtNZXRhZGF0YVtzcnZdICYmIGF3c1Nka01ldGFkYXRhW3Nydl0ucHJlZml4KSB8fCBzcnY7XG4gIGNvbnN0IGlhbUFjdGlvbiA9IGFjdGlvbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGFjdGlvbi5zbGljZSgxKTtcbiAgcmV0dXJuIGAke2lhbVNlcnZpY2V9OiR7aWFtQWN0aW9ufWA7XG59XG5cbi8qKlxuICogRW5jb2RlcyBib29sZWFucyBhcyBzcGVjaWFsIHN0cmluZ3NcbiAqL1xuZnVuY3Rpb24gZW5jb2RlQm9vbGVhbnMob2JqZWN0OiBvYmplY3QpIHtcbiAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqZWN0KSwgKF9rLCB2KSA9PiB7XG4gICAgc3dpdGNoICh2KSB7XG4gICAgICBjYXNlIHRydWU6XG4gICAgICAgIHJldHVybiAnVFJVRTpCT09MRUFOJztcbiAgICAgIGNhc2UgZmFsc2U6XG4gICAgICAgIHJldHVybiAnRkFMU0U6Qk9PTEVBTic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG4gIH0pO1xufVxuIl19

@@ -157,2 +157,2 @@ "use strict";

exports.handler = handler;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDRCQUE0QjtBQUM1QixpREFBeUM7QUFHekM7Ozs7O0dBS0c7QUFDSCxTQUFnQixPQUFPLENBQUMsTUFBYztJQUNwQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLEVBQUUsRUFDRixHQUFHLFNBQVMsUUFBUSxDQUFDLEtBQVUsRUFBRSxPQUFpQixFQUFFO1FBQ2xELE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ25DLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUNULE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSTtZQUNuRCxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FDdkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUNWLENBQUM7QUFDSixDQUFDO0FBWkQsMEJBWUM7QUFFRDs7R0FFRztBQUNILFNBQVMsY0FBYyxDQUFDLE1BQWM7SUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDbEQsUUFBUSxDQUFDLEVBQUU7WUFDVCxLQUFLLGNBQWM7Z0JBQ2pCLE9BQU8s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U0FDdkUsQ0FBQztRQUVGLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSTtnQkFDRixpRUFBaUU7Z0JBQ2pFLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNsRSxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ2Y7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDWDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUM7QUE3R0QsMEJBNkdDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6bm8tY29uc29sZVxuaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB7IEF3c1Nka0NhbGwgfSBmcm9tICcuLi9hd3MtY3VzdG9tLXJlc291cmNlJztcblxuLyoqXG4gKiBGbGF0dGVucyBhIG5lc3RlZCBvYmplY3RcbiAqXG4gKiBAcGFyYW0gb2JqZWN0IHRoZSBvYmplY3QgdG8gYmUgZmxhdHRlbmVkXG4gKiBAcmV0dXJucyBhIGZsYXQgb2JqZWN0IHdpdGggcGF0aCBhcyBrZXlzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuKG9iamVjdDogb2JqZWN0KTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgIHt9LFxuICAgIC4uLmZ1bmN0aW9uIF9mbGF0dGVuKGNoaWxkOiBhbnksIHBhdGg6IHN0cmluZ1tdID0gW10pOiBhbnkge1xuICAgICAgcmV0dXJuIFtdLmNvbmNhdCguLi5PYmplY3Qua2V5cyhjaGlsZClcbiAgICAgICAgLm1hcChrZXkgPT5cbiAgICAgICAgICB0eXBlb2YgY2hpbGRba2V5XSA9PT0gJ29iamVjdCcgJiYgY2hpbGRba2V5XSAhPT0gbnVsbFxuICAgICAgICAgICAgPyBfZmxhdHRlbihjaGlsZFtrZXldLCBwYXRoLmNvbmNhdChba2V5XSkpXG4gICAgICAgICAgICA6ICh7IFtwYXRoLmNvbmNhdChba2V5XSkuam9pbignLicpXTogY2hpbGRba2V5XSB9KVxuICAgICAgKSk7XG4gICAgfShvYmplY3QpXG4gICk7XG59XG5cbi8qKlxuICogRGVjb2RlcyBlbmNvZGVkIHRydWUvZmFsc2UgdmFsdWVzXG4gKi9cbmZ1bmN0aW9uIGRlY29kZUJvb2xlYW5zKG9iamVjdDogb2JqZWN0KSB7XG4gIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iamVjdCksIChfaywgdikgPT4ge1xuICAgIHN3aXRjaCAodikge1xuICAgICAgY2FzZSAnVFJVRTpCT09MRUFOJzpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlICdGQUxTRTpCT09MRUFOJzpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBGaWx0ZXJzIHRoZSBrZXlzIG9mIGFuIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gZmlsdGVyS2V5cyhvYmplY3Q6IG9iamVjdCwgcHJlZDogKGtleTogc3RyaW5nKSA9PiBib29sZWFuKSB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhvYmplY3QpXG4gICAgLnJlZHVjZShcbiAgICAgIChhY2MsIFtrLCB2XSkgPT4gcHJlZChrKVxuICAgICAgICA/IHsgLi4uYWNjLCBba106IHYgfVxuICAgICAgICA6IGFjYyxcbiAgICAgICAge31cbiAgICApO1xufVxuXG5sZXQgbGF0ZXN0U2RrSW5zdGFsbGVkID0gZmFsc2U7XG5cbi8qKlxuICogSW5zdGFsbHMgbGF0ZXN0IEFXUyBTREsgdjJcbiAqL1xuZnVuY3Rpb24gaW5zdGFsbExhdGVzdFNkaygpOiB2b2lkIHtcbiAgY29uc29sZS5sb2coJ0luc3RhbGxpbmcgbGF0ZXN0IEFXUyBTREsgdjInKTtcbiAgLy8gQm90aCBIT01FIGFuZCAtLXByZWZpeCBhcmUgbmVlZGVkIGhlcmUgYmVjYXVzZSAvdG1wIGlzIHRoZSBvbmx5IHdyaXRhYmxlIGxvY2F0aW9uXG4gIGV4ZWNTeW5jKCdIT01FPS90bXAgbnBtIGluc3RhbGwgYXdzLXNka0AyIC0tcHJvZHVjdGlvbiAtLW5vLXBhY2thZ2UtbG9jayAtLW5vLXNhdmUgLS1wcmVmaXggL3RtcCcpO1xuICBsYXRlc3RTZGtJbnN0YWxsZWQgPSB0cnVlO1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzLCBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50OiBBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUV2ZW50LCBjb250ZXh0OiBBV1NMYW1iZGEuQ29udGV4dCkge1xuICB0cnkge1xuICAgIGxldCBBV1M6IGFueTtcbiAgICBpZiAoIWxhdGVzdFNka0luc3RhbGxlZCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaW5zdGFsbExhdGVzdFNkaygpO1xuICAgICAgICBBV1MgPSByZXF1aXJlKCcvdG1wL25vZGVfbW9kdWxlcy9hd3Mtc2RrJyk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBGYWlsZWQgdG8gaW5zdGFsbCBsYXRlc3QgQVdTIFNESyB2MjogJHtlfWApO1xuICAgICAgICBBV1MgPSByZXF1aXJlKCdhd3Mtc2RrJyk7IC8vIEZhbGxiYWNrIHRvIHByZS1pbnN0YWxsZWQgdmVyc2lvblxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBBV1MgPSByZXF1aXJlKCcvdG1wL25vZGVfbW9kdWxlcy9hd3Mtc2RrJyk7XG4gICAgfVxuXG4gICAgaWYgKHByb2Nlc3MuZW52LlVTRV9OT1JNQUxfU0RLKSB7IC8vIEZvciB0ZXN0cyBvbmx5XG4gICAgICBBV1MgPSByZXF1aXJlKCdhd3Mtc2RrJyk7XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZXZlbnQpKTtcbiAgICBjb25zb2xlLmxvZygnQVdTIFNESyBWRVJTSU9OOiAnICsgQVdTLlZFUlNJT04pO1xuXG4gICAgLy8gRGVmYXVsdCBwaHlzaWNhbCByZXNvdXJjZSBpZFxuICAgIGxldCBwaHlzaWNhbFJlc291cmNlSWQ6IHN0cmluZztcbiAgICBzd2l0Y2ggKGV2ZW50LlJlcXVlc3RUeXBlKSB7XG4gICAgICBjYXNlICdDcmVhdGUnOlxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuQ3JlYXRlPy5waHlzaWNhbFJlc291cmNlSWQ/LmlkID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5VcGRhdGU/LnBoeXNpY2FsUmVzb3VyY2VJZD8uaWQgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLkRlbGV0ZT8ucGh5c2ljYWxSZXNvdXJjZUlkPy5pZCA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5Mb2dpY2FsUmVzb3VyY2VJZDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdVcGRhdGUnOlxuICAgICAgY2FzZSAnRGVsZXRlJzpcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkID0gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzW2V2ZW50LlJlcXVlc3RUeXBlXT8ucGh5c2ljYWxSZXNvdXJjZUlkPy5pZCA/PyBldmVudC5QaHlzaWNhbFJlc291cmNlSWQ7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGxldCBmbGF0RGF0YTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIGxldCBkYXRhOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgY29uc3QgY2FsbDogQXdzU2RrQ2FsbCB8IHVuZGVmaW5lZCA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllc1tldmVudC5SZXF1ZXN0VHlwZV07XG5cbiAgICBpZiAoY2FsbCkge1xuICAgICAgY29uc3QgYXdzU2VydmljZSA9IG5ldyAoQVdTIGFzIGFueSlbY2FsbC5zZXJ2aWNlXSh7XG4gICAgICAgIGFwaVZlcnNpb246IGNhbGwuYXBpVmVyc2lvbixcbiAgICAgICAgcmVnaW9uOiBjYWxsLnJlZ2lvbixcbiAgICAgIH0pO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF3c1NlcnZpY2VbY2FsbC5hY3Rpb25dKGNhbGwucGFyYW1ldGVycyAmJiBkZWNvZGVCb29sZWFucyhjYWxsLnBhcmFtZXRlcnMpKS5wcm9taXNlKCk7XG4gICAgICAgIGZsYXREYXRhID0ge1xuICAgICAgICAgIGFwaVZlcnNpb246IGF3c1NlcnZpY2UuY29uZmlnLmFwaVZlcnNpb24sIC8vIEZvciB0ZXN0IHB1cnBvc2VzOiBjaGVjayBpZiBhcGlWZXJzaW9uIHdhcyBjb3JyZWN0bHkgcGFzc2VkLlxuICAgICAgICAgIHJlZ2lvbjogYXdzU2VydmljZS5jb25maWcucmVnaW9uLCAvLyBGb3IgdGVzdCBwdXJwb3NlczogY2hlY2sgaWYgcmVnaW9uIHdhcyBjb3JyZWN0bHkgcGFzc2VkLlxuICAgICAgICAgIC4uLmZsYXR0ZW4ocmVzcG9uc2UpLFxuICAgICAgICB9O1xuICAgICAgICBkYXRhID0gY2FsbC5vdXRwdXRQYXRoXG4gICAgICAgICAgPyBmaWx0ZXJLZXlzKGZsYXREYXRhLCBrID0+IGsuc3RhcnRzV2l0aChjYWxsLm91dHB1dFBhdGghKSlcbiAgICAgICAgICA6IGZsYXREYXRhO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoIWNhbGwuaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nIHx8ICFuZXcgUmVnRXhwKGNhbGwuaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nKS50ZXN0KGUuY29kZSkpIHtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChjYWxsLnBoeXNpY2FsUmVzb3VyY2VJZD8ucmVzcG9uc2VQYXRoKSB7XG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZCA9IGZsYXREYXRhW2NhbGwucGh5c2ljYWxSZXNvdXJjZUlkLnJlc3BvbnNlUGF0aF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgYXdhaXQgcmVzcG9uZCgnU1VDQ0VTUycsICdPSycsIHBoeXNpY2FsUmVzb3VyY2VJZCwgZGF0YSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmxvZyhlKTtcbiAgICBhd2FpdCByZXNwb25kKCdGQUlMRUQnLCBlLm1lc3NhZ2UgfHwgJ0ludGVybmFsIEVycm9yJywgY29udGV4dC5sb2dTdHJlYW1OYW1lLCB7fSk7XG4gIH1cblxuICBmdW5jdGlvbiByZXNwb25kKHJlc3BvbnNlU3RhdHVzOiBzdHJpbmcsIHJlYXNvbjogc3RyaW5nLCBwaHlzaWNhbFJlc291cmNlSWQ6IHN0cmluZywgZGF0YTogYW55KSB7XG4gICAgY29uc3QgcmVzcG9uc2VCb2R5ID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgU3RhdHVzOiByZXNwb25zZVN0YXR1cyxcbiAgICAgIFJlYXNvbjogcmVhc29uLFxuICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBwaHlzaWNhbFJlc291cmNlSWQsXG4gICAgICBTdGFja0lkOiBldmVudC5TdGFja0lkLFxuICAgICAgUmVxdWVzdElkOiBldmVudC5SZXF1ZXN0SWQsXG4gICAgICBMb2dpY2FsUmVzb3VyY2VJZDogZXZlbnQuTG9naWNhbFJlc291cmNlSWQsXG4gICAgICBOb0VjaG86IGZhbHNlLFxuICAgICAgRGF0YTogZGF0YVxuICAgIH0pO1xuXG4gICAgY29uc29sZS5sb2coJ1Jlc3BvbmRpbmcnLCByZXNwb25zZUJvZHkpO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgICBjb25zdCBwYXJzZWRVcmwgPSByZXF1aXJlKCd1cmwnKS5wYXJzZShldmVudC5SZXNwb25zZVVSTCk7XG4gICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICBob3N0bmFtZTogcGFyc2VkVXJsLmhvc3RuYW1lLFxuICAgICAgcGF0aDogcGFyc2VkVXJsLnBhdGgsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgaGVhZGVyczogeyAnY29udGVudC10eXBlJzogJycsICdjb250ZW50LWxlbmd0aCc6IHJlc3BvbnNlQm9keS5sZW5ndGggfVxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHJlcXVpcmUoJ2h0dHBzJykucmVxdWVzdChyZXF1ZXN0T3B0aW9ucywgcmVzb2x2ZSk7XG4gICAgICAgIHJlcXVlc3Qub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgICAgcmVxdWVzdC53cml0ZShyZXNwb25zZUJvZHkpO1xuICAgICAgICByZXF1ZXN0LmVuZCgpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDRCQUE0QjtBQUM1QixpREFBeUM7QUFHekM7Ozs7O0dBS0c7QUFDSCxTQUFnQixPQUFPLENBQUMsTUFBYztJQUNwQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLEVBQUUsRUFDRixHQUFHLFNBQVMsUUFBUSxDQUFDLEtBQVUsRUFBRSxPQUFpQixFQUFFO1FBQ2xELE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ25DLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUNULE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSTtZQUNuRCxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FDckQsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUNWLENBQUM7QUFDSixDQUFDO0FBWkQsMEJBWUM7QUFFRDs7R0FFRztBQUNILFNBQVMsY0FBYyxDQUFDLE1BQWM7SUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDbEQsUUFBUSxDQUFDLEVBQUU7WUFDVCxLQUFLLGNBQWM7Z0JBQ2pCLE9BQU8s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U0FDdkUsQ0FBQztRQUVGLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSTtnQkFDRixpRUFBaUU7Z0JBQ2pFLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNsRSxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ2Y7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDWDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUM7QUE3R0QsMEJBNkdDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6bm8tY29uc29sZVxuaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB7IEF3c1Nka0NhbGwgfSBmcm9tICcuLi9hd3MtY3VzdG9tLXJlc291cmNlJztcblxuLyoqXG4gKiBGbGF0dGVucyBhIG5lc3RlZCBvYmplY3RcbiAqXG4gKiBAcGFyYW0gb2JqZWN0IHRoZSBvYmplY3QgdG8gYmUgZmxhdHRlbmVkXG4gKiBAcmV0dXJucyBhIGZsYXQgb2JqZWN0IHdpdGggcGF0aCBhcyBrZXlzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuKG9iamVjdDogb2JqZWN0KTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgIHt9LFxuICAgIC4uLmZ1bmN0aW9uIF9mbGF0dGVuKGNoaWxkOiBhbnksIHBhdGg6IHN0cmluZ1tdID0gW10pOiBhbnkge1xuICAgICAgcmV0dXJuIFtdLmNvbmNhdCguLi5PYmplY3Qua2V5cyhjaGlsZClcbiAgICAgICAgLm1hcChrZXkgPT5cbiAgICAgICAgICB0eXBlb2YgY2hpbGRba2V5XSA9PT0gJ29iamVjdCcgJiYgY2hpbGRba2V5XSAhPT0gbnVsbFxuICAgICAgICAgICAgPyBfZmxhdHRlbihjaGlsZFtrZXldLCBwYXRoLmNvbmNhdChba2V5XSkpXG4gICAgICAgICAgICA6ICh7IFtwYXRoLmNvbmNhdChba2V5XSkuam9pbignLicpXTogY2hpbGRba2V5XSB9KVxuICAgICAgICApKTtcbiAgICB9KG9iamVjdClcbiAgKTtcbn1cblxuLyoqXG4gKiBEZWNvZGVzIGVuY29kZWQgdHJ1ZS9mYWxzZSB2YWx1ZXNcbiAqL1xuZnVuY3Rpb24gZGVjb2RlQm9vbGVhbnMob2JqZWN0OiBvYmplY3QpIHtcbiAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqZWN0KSwgKF9rLCB2KSA9PiB7XG4gICAgc3dpdGNoICh2KSB7XG4gICAgICBjYXNlICdUUlVFOkJPT0xFQU4nOlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGNhc2UgJ0ZBTFNFOkJPT0xFQU4nOlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIEZpbHRlcnMgdGhlIGtleXMgb2YgYW4gb2JqZWN0LlxuICovXG5mdW5jdGlvbiBmaWx0ZXJLZXlzKG9iamVjdDogb2JqZWN0LCBwcmVkOiAoa2V5OiBzdHJpbmcpID0+IGJvb2xlYW4pIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iamVjdClcbiAgICAucmVkdWNlKFxuICAgICAgKGFjYywgW2ssIHZdKSA9PiBwcmVkKGspXG4gICAgICAgID8geyAuLi5hY2MsIFtrXTogdiB9XG4gICAgICAgIDogYWNjLFxuICAgICAge31cbiAgICApO1xufVxuXG5sZXQgbGF0ZXN0U2RrSW5zdGFsbGVkID0gZmFsc2U7XG5cbi8qKlxuICogSW5zdGFsbHMgbGF0ZXN0IEFXUyBTREsgdjJcbiAqL1xuZnVuY3Rpb24gaW5zdGFsbExhdGVzdFNkaygpOiB2b2lkIHtcbiAgY29uc29sZS5sb2coJ0luc3RhbGxpbmcgbGF0ZXN0IEFXUyBTREsgdjInKTtcbiAgLy8gQm90aCBIT01FIGFuZCAtLXByZWZpeCBhcmUgbmVlZGVkIGhlcmUgYmVjYXVzZSAvdG1wIGlzIHRoZSBvbmx5IHdyaXRhYmxlIGxvY2F0aW9uXG4gIGV4ZWNTeW5jKCdIT01FPS90bXAgbnBtIGluc3RhbGwgYXdzLXNka0AyIC0tcHJvZHVjdGlvbiAtLW5vLXBhY2thZ2UtbG9jayAtLW5vLXNhdmUgLS1wcmVmaXggL3RtcCcpO1xuICBsYXRlc3RTZGtJbnN0YWxsZWQgPSB0cnVlO1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzLCBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50OiBBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUV2ZW50LCBjb250ZXh0OiBBV1NMYW1iZGEuQ29udGV4dCkge1xuICB0cnkge1xuICAgIGxldCBBV1M6IGFueTtcbiAgICBpZiAoIWxhdGVzdFNka0luc3RhbGxlZCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaW5zdGFsbExhdGVzdFNkaygpO1xuICAgICAgICBBV1MgPSByZXF1aXJlKCcvdG1wL25vZGVfbW9kdWxlcy9hd3Mtc2RrJyk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBGYWlsZWQgdG8gaW5zdGFsbCBsYXRlc3QgQVdTIFNESyB2MjogJHtlfWApO1xuICAgICAgICBBV1MgPSByZXF1aXJlKCdhd3Mtc2RrJyk7IC8vIEZhbGxiYWNrIHRvIHByZS1pbnN0YWxsZWQgdmVyc2lvblxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBBV1MgPSByZXF1aXJlKCcvdG1wL25vZGVfbW9kdWxlcy9hd3Mtc2RrJyk7XG4gICAgfVxuXG4gICAgaWYgKHByb2Nlc3MuZW52LlVTRV9OT1JNQUxfU0RLKSB7IC8vIEZvciB0ZXN0cyBvbmx5XG4gICAgICBBV1MgPSByZXF1aXJlKCdhd3Mtc2RrJyk7XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZXZlbnQpKTtcbiAgICBjb25zb2xlLmxvZygnQVdTIFNESyBWRVJTSU9OOiAnICsgQVdTLlZFUlNJT04pO1xuXG4gICAgLy8gRGVmYXVsdCBwaHlzaWNhbCByZXNvdXJjZSBpZFxuICAgIGxldCBwaHlzaWNhbFJlc291cmNlSWQ6IHN0cmluZztcbiAgICBzd2l0Y2ggKGV2ZW50LlJlcXVlc3RUeXBlKSB7XG4gICAgICBjYXNlICdDcmVhdGUnOlxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuQ3JlYXRlPy5waHlzaWNhbFJlc291cmNlSWQ/LmlkID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5VcGRhdGU/LnBoeXNpY2FsUmVzb3VyY2VJZD8uaWQgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLkRlbGV0ZT8ucGh5c2ljYWxSZXNvdXJjZUlkPy5pZCA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5Mb2dpY2FsUmVzb3VyY2VJZDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdVcGRhdGUnOlxuICAgICAgY2FzZSAnRGVsZXRlJzpcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkID0gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzW2V2ZW50LlJlcXVlc3RUeXBlXT8ucGh5c2ljYWxSZXNvdXJjZUlkPy5pZCA/PyBldmVudC5QaHlzaWNhbFJlc291cmNlSWQ7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGxldCBmbGF0RGF0YTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIGxldCBkYXRhOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgY29uc3QgY2FsbDogQXdzU2RrQ2FsbCB8IHVuZGVmaW5lZCA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllc1tldmVudC5SZXF1ZXN0VHlwZV07XG5cbiAgICBpZiAoY2FsbCkge1xuICAgICAgY29uc3QgYXdzU2VydmljZSA9IG5ldyAoQVdTIGFzIGFueSlbY2FsbC5zZXJ2aWNlXSh7XG4gICAgICAgIGFwaVZlcnNpb246IGNhbGwuYXBpVmVyc2lvbixcbiAgICAgICAgcmVnaW9uOiBjYWxsLnJlZ2lvbixcbiAgICAgIH0pO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF3c1NlcnZpY2VbY2FsbC5hY3Rpb25dKGNhbGwucGFyYW1ldGVycyAmJiBkZWNvZGVCb29sZWFucyhjYWxsLnBhcmFtZXRlcnMpKS5wcm9taXNlKCk7XG4gICAgICAgIGZsYXREYXRhID0ge1xuICAgICAgICAgIGFwaVZlcnNpb246IGF3c1NlcnZpY2UuY29uZmlnLmFwaVZlcnNpb24sIC8vIEZvciB0ZXN0IHB1cnBvc2VzOiBjaGVjayBpZiBhcGlWZXJzaW9uIHdhcyBjb3JyZWN0bHkgcGFzc2VkLlxuICAgICAgICAgIHJlZ2lvbjogYXdzU2VydmljZS5jb25maWcucmVnaW9uLCAvLyBGb3IgdGVzdCBwdXJwb3NlczogY2hlY2sgaWYgcmVnaW9uIHdhcyBjb3JyZWN0bHkgcGFzc2VkLlxuICAgICAgICAgIC4uLmZsYXR0ZW4ocmVzcG9uc2UpLFxuICAgICAgICB9O1xuICAgICAgICBkYXRhID0gY2FsbC5vdXRwdXRQYXRoXG4gICAgICAgICAgPyBmaWx0ZXJLZXlzKGZsYXREYXRhLCBrID0+IGsuc3RhcnRzV2l0aChjYWxsLm91dHB1dFBhdGghKSlcbiAgICAgICAgICA6IGZsYXREYXRhO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoIWNhbGwuaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nIHx8ICFuZXcgUmVnRXhwKGNhbGwuaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nKS50ZXN0KGUuY29kZSkpIHtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChjYWxsLnBoeXNpY2FsUmVzb3VyY2VJZD8ucmVzcG9uc2VQYXRoKSB7XG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZCA9IGZsYXREYXRhW2NhbGwucGh5c2ljYWxSZXNvdXJjZUlkLnJlc3BvbnNlUGF0aF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgYXdhaXQgcmVzcG9uZCgnU1VDQ0VTUycsICdPSycsIHBoeXNpY2FsUmVzb3VyY2VJZCwgZGF0YSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmxvZyhlKTtcbiAgICBhd2FpdCByZXNwb25kKCdGQUlMRUQnLCBlLm1lc3NhZ2UgfHwgJ0ludGVybmFsIEVycm9yJywgY29udGV4dC5sb2dTdHJlYW1OYW1lLCB7fSk7XG4gIH1cblxuICBmdW5jdGlvbiByZXNwb25kKHJlc3BvbnNlU3RhdHVzOiBzdHJpbmcsIHJlYXNvbjogc3RyaW5nLCBwaHlzaWNhbFJlc291cmNlSWQ6IHN0cmluZywgZGF0YTogYW55KSB7XG4gICAgY29uc3QgcmVzcG9uc2VCb2R5ID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgU3RhdHVzOiByZXNwb25zZVN0YXR1cyxcbiAgICAgIFJlYXNvbjogcmVhc29uLFxuICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBwaHlzaWNhbFJlc291cmNlSWQsXG4gICAgICBTdGFja0lkOiBldmVudC5TdGFja0lkLFxuICAgICAgUmVxdWVzdElkOiBldmVudC5SZXF1ZXN0SWQsXG4gICAgICBMb2dpY2FsUmVzb3VyY2VJZDogZXZlbnQuTG9naWNhbFJlc291cmNlSWQsXG4gICAgICBOb0VjaG86IGZhbHNlLFxuICAgICAgRGF0YTogZGF0YVxuICAgIH0pO1xuXG4gICAgY29uc29sZS5sb2coJ1Jlc3BvbmRpbmcnLCByZXNwb25zZUJvZHkpO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgICBjb25zdCBwYXJzZWRVcmwgPSByZXF1aXJlKCd1cmwnKS5wYXJzZShldmVudC5SZXNwb25zZVVSTCk7XG4gICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICBob3N0bmFtZTogcGFyc2VkVXJsLmhvc3RuYW1lLFxuICAgICAgcGF0aDogcGFyc2VkVXJsLnBhdGgsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgaGVhZGVyczogeyAnY29udGVudC10eXBlJzogJycsICdjb250ZW50LWxlbmd0aCc6IHJlc3BvbnNlQm9keS5sZW5ndGggfVxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHJlcXVpcmUoJ2h0dHBzJykucmVxdWVzdChyZXF1ZXN0T3B0aW9ucywgcmVzb2x2ZSk7XG4gICAgICAgIHJlcXVlc3Qub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgICAgcmVxdWVzdC53cml0ZShyZXNwb25zZUJvZHkpO1xuICAgICAgICByZXF1ZXN0LmVuZCgpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==

@@ -19,3 +19,3 @@ "use strict";

if (!props.isCompleteHandler && (props.queryInterval || props.totalTimeout)) {
throw new Error(`"queryInterval" and "totalTimeout" can only be configured if "isCompleteHandler" is specified. Otherwise, they have no meaning`);
throw new Error('"queryInterval" and "totalTimeout" can only be configured if "isCompleteHandler" is specified. Otherwise, they have no meaning');
}

@@ -70,2 +70,2 @@ this.onEventHandler = props.onEventHandler;

exports.Provider = Provider;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLDhDQUE4QztBQUM5QyxrREFBa0Q7QUFDbEQsMERBQTBEO0FBQzFELHdDQUFvRDtBQUNwRCw2QkFBNkI7QUFDN0IsMkNBQTJDO0FBQzNDLGlDQUE4QztBQUU5QyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzdELE1BQU0seUJBQXlCLEdBQUcsZUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtBQXNEakY7O0dBRUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxnQkFBUztJQWdCckMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFvQjtRQUM1RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUMzRSxNQUFNLElBQUksS0FBSyxDQUFDLGdJQUFnSSxDQUFDLENBQUM7U0FDbko7UUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDM0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztRQUVqRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBRXBGLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztZQUMxRixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1lBRXRGLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUMzRCxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUMxRCxjQUFjLENBQUMsUUFBUSxDQUFDLDJCQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFFckQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFO2dCQUM1RSxVQUFVLEVBQUUsY0FBYzthQUMzQixDQUFDLENBQUM7WUFFSCx3RUFBd0U7WUFDeEUsZUFBZSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsNEJBQTRCLEVBQUUsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDeEcsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDekQ7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxJQUFJLENBQUMsQ0FBWTtRQUN0QixPQUFPO1lBQ0wsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVztTQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxVQUFrQjtRQUN2QyxNQUFNLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGFBQWEsVUFBVSxFQUFFLEVBQUU7WUFDOUQsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDO1lBQ2pELE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDbkMsT0FBTyxFQUFFLGFBQWEsVUFBVSxFQUFFO1lBQ2xDLE9BQU8sRUFBRSx5QkFBeUI7U0FDbkMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsOEJBQThCLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVwQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixFQUFFLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxpQ0FBaUMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDaEcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN4QztRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVPLFVBQVUsQ0FBQyxPQUF3QjtRQUN6QyxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFO1lBQ25ELElBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO1NBQ3hDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWpGRCw0QkFpRkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTogbWF4LWxpbmUtbGVuZ3RoXG5pbXBvcnQgKiBhcyBjZm4gZnJvbSAnQGF3cy1jZGsvYXdzLWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdAYXdzLWNkay9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIHNmbiBmcm9tICdAYXdzLWNkay9hd3Mtc3RlcGZ1bmN0aW9ucyc7XG5pbXBvcnQgKiBhcyB0YXNrcyBmcm9tICdAYXdzLWNkay9hd3Mtc3RlcGZ1bmN0aW9ucy10YXNrcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIER1cmF0aW9uIH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY29uc3RzIGZyb20gJy4vcnVudGltZS9jb25zdHMnO1xuaW1wb3J0IHsgY2FsY3VsYXRlUmV0cnlQb2xpY3kgfSBmcm9tICcuL3V0aWwnO1xuXG5jb25zdCBSVU5USU1FX0hBTkRMRVJfUEFUSCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICdydW50aW1lJyk7XG5jb25zdCBGUkFNRVdPUktfSEFORExFUl9USU1FT1VUID0gRHVyYXRpb24ubWludXRlcygxNSk7IC8vIGtlZXAgaXQgc2ltcGxlIGZvciBub3dcblxuLyoqXG4gKiBJbml0aWFsaXphdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgYFByb3ZpZGVyYCBjb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJQcm9wcyB7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgTGFtYmRhIGZ1bmN0aW9uIHRvIGludm9rZSBmb3IgYWxsIHJlc291cmNlIGxpZmVjeWNsZSBvcGVyYXRpb25zXG4gICAqIChDUkVBVEUvVVBEQVRFL0RFTEVURSkuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgdG8gYmVnaW4gdGhlIHJlcXVlc3RlZCByZXNvdXJjZSBvcGVyYXRpb25cbiAgICogKENSRUFURS9VUERBVEUvREVMRVRFKSBhbmQgcmV0dXJuIGFueSBhZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gYWRkIHRvIHRoZVxuICAgKiBldmVudCwgd2hpY2ggd2lsbCBsYXRlciBiZSBwYXNzZWQgdG8gYGlzQ29tcGxldGVgLiBUaGUgYFBoeXNpY2FsUmVzb3VyY2VJZGBcbiAgICogcHJvcGVydHkgbXVzdCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UuXG4gICAqL1xuICByZWFkb25seSBvbkV2ZW50SGFuZGxlcjogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogVGhlIEFXUyBMYW1iZGEgZnVuY3Rpb24gdG8gaW52b2tlIGluIG9yZGVyIHRvIGRldGVybWluZSBpZiB0aGUgb3BlcmF0aW9uIGlzXG4gICAqIGNvbXBsZXRlLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGltbWVkaWF0ZWx5IGFmdGVyIGBvbkV2ZW50YCBhbmQgdGhlblxuICAgKiBwZXJpb2RpY2FsbHkgYmFzZWQgb24gdGhlIGNvbmZpZ3VyZWQgcXVlcnkgaW50ZXJ2YWwgYXMgbG9uZyBhcyBpdCByZXR1cm5zXG4gICAqIGBmYWxzZWAuIElmIHRoZSBmdW5jdGlvbiBzdGlsbCByZXR1cm5zIGBmYWxzZWAgYW5kIHRoZSBhbGxvdGVkIHRpbWVvdXQgaGFzXG4gICAqIHBhc3NlZCwgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcHJvdmlkZXIgaXMgc3luY2hyb25vdXMuIFRoaXMgbWVhbnMgdGhhdCB0aGUgYG9uRXZlbnRgIGhhbmRsZXJcbiAgICogaXMgZXhwZWN0ZWQgdG8gZmluaXNoIGFsbCBsaWZlY3ljbGUgb3BlcmF0aW9ucyB3aXRoaW4gdGhlIGluaXRpYWwgaW52b2NhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGlzQ29tcGxldGVIYW5kbGVyPzogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogVGltZSBiZXR3ZWVuIGNhbGxzIHRvIHRoZSBgaXNDb21wbGV0ZWAgaGFuZGxlciB3aGljaCBkZXRlcm1pbmVzIGlmIHRoZVxuICAgKiByZXNvdXJjZSBoYXMgYmVlbiBzdGFiaWxpemVkLlxuICAgKlxuICAgKiBUaGUgZmlyc3QgYGlzQ29tcGxldGVgIHdpbGwgYmUgY2FsbGVkIGltbWVkaWF0ZWx5IGFmdGVyIGBoYW5kbGVyYCBhbmQgdGhlblxuICAgKiBldmVyeSBgcXVlcnlJbnRlcnZhbGAgc2Vjb25kcywgYW5kIHVudGlsIGB0aW1lb3V0YCBoYXMgYmVlbiByZWFjaGVkIG9yIHVudGlsXG4gICAqIGBpc0NvbXBsZXRlYCByZXR1cm5zIGB0cnVlYC5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uc2Vjb25kcyg1KVxuICAgKi9cbiAgcmVhZG9ubHkgcXVlcnlJbnRlcnZhbD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUb3RhbCB0aW1lb3V0IGZvciB0aGUgZW50aXJlIG9wZXJhdGlvbi5cbiAgICpcbiAgICogVGhlIG1heGltdW0gdGltZW91dCBpcyAyIGhvdXJzICh5ZXMsIGl0IGNhbiBleGNlZWQgdGhlIEFXUyBMYW1iZGEgMTUgbWludXRlcylcbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24ubWludXRlcygzMClcbiAgICovXG4gIHJlYWRvbmx5IHRvdGFsVGltZW91dD86IER1cmF0aW9uO1xufVxuXG4vKipcbiAqIERlZmluZXMgYW4gQVdTIENsb3VkRm9ybWF0aW9uIGN1c3RvbSByZXNvdXJjZSBwcm92aWRlci5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb3ZpZGVyIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgY2ZuLklDdXN0b21SZXNvdXJjZVByb3ZpZGVyIHtcblxuICAvKipcbiAgICogVGhlIHVzZXItZGVmaW5lZCBBV1MgTGFtYmRhIGZ1bmN0aW9uIHdoaWNoIGlzIGludm9rZWQgZm9yIGFsbCByZXNvdXJjZVxuICAgKiBsaWZlY3ljbGUgb3BlcmF0aW9ucyAoQ1JFQVRFL1VQREFURS9ERUxFVEUpLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9uRXZlbnRIYW5kbGVyOiBsYW1iZGEuSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdXNlci1kZWZpbmVkIEFXUyBMYW1iZGEgZnVuY3Rpb24gd2hpY2ggaXMgaW52b2tlZCBhc3luY2hyb25vdXNseSBpblxuICAgKiBvcmRlciB0byBkZXRlcm1pbmUgaWYgdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpc0NvbXBsZXRlSGFuZGxlcj86IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlbnRyeXBvaW50OiBsYW1iZGEuRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFByb3ZpZGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKCFwcm9wcy5pc0NvbXBsZXRlSGFuZGxlciAmJiAocHJvcHMucXVlcnlJbnRlcnZhbCB8fCBwcm9wcy50b3RhbFRpbWVvdXQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFwicXVlcnlJbnRlcnZhbFwiIGFuZCBcInRvdGFsVGltZW91dFwiIGNhbiBvbmx5IGJlIGNvbmZpZ3VyZWQgaWYgXCJpc0NvbXBsZXRlSGFuZGxlclwiIGlzIHNwZWNpZmllZC4gT3RoZXJ3aXNlLCB0aGV5IGhhdmUgbm8gbWVhbmluZ2ApO1xuICAgIH1cblxuICAgIHRoaXMub25FdmVudEhhbmRsZXIgPSBwcm9wcy5vbkV2ZW50SGFuZGxlcjtcbiAgICB0aGlzLmlzQ29tcGxldGVIYW5kbGVyID0gcHJvcHMuaXNDb21wbGV0ZUhhbmRsZXI7XG5cbiAgICBjb25zdCBvbkV2ZW50RnVuY3Rpb24gPSB0aGlzLmNyZWF0ZUZ1bmN0aW9uKGNvbnN0cy5GUkFNRVdPUktfT05fRVZFTlRfSEFORExFUl9OQU1FKTtcblxuICAgIGlmICh0aGlzLmlzQ29tcGxldGVIYW5kbGVyKSB7XG4gICAgICBjb25zdCBpc0NvbXBsZXRlRnVuY3Rpb24gPSB0aGlzLmNyZWF0ZUZ1bmN0aW9uKGNvbnN0cy5GUkFNRVdPUktfSVNfQ09NUExFVEVfSEFORExFUl9OQU1FKTtcbiAgICAgIGNvbnN0IHRpbWVvdXRGdW5jdGlvbiA9IHRoaXMuY3JlYXRlRnVuY3Rpb24oY29uc3RzLkZSQU1FV09SS19PTl9USU1FT1VUX0hBTkRMRVJfTkFNRSk7XG5cbiAgICAgIGNvbnN0IGlzQ29tcGxldGVUYXNrID0gdGhpcy5jcmVhdGVUYXNrKGlzQ29tcGxldGVGdW5jdGlvbik7XG4gICAgICBpc0NvbXBsZXRlVGFzay5hZGRDYXRjaCh0aGlzLmNyZWF0ZVRhc2sodGltZW91dEZ1bmN0aW9uKSk7XG4gICAgICBpc0NvbXBsZXRlVGFzay5hZGRSZXRyeShjYWxjdWxhdGVSZXRyeVBvbGljeShwcm9wcykpO1xuXG4gICAgICBjb25zdCB3YWl0ZXJTdGF0ZU1hY2hpbmUgPSBuZXcgc2ZuLlN0YXRlTWFjaGluZSh0aGlzLCAnd2FpdGVyLXN0YXRlLW1hY2hpbmUnLCB7XG4gICAgICAgIGRlZmluaXRpb246IGlzQ29tcGxldGVUYXNrXG4gICAgICB9KTtcblxuICAgICAgLy8gdGhlIG9uLWV2ZW50IGVudHJ5cG9pbnQgaXMgZ29pbmcgdG8gc3RhcnQgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgd2FpdGVyXG4gICAgICBvbkV2ZW50RnVuY3Rpb24uYWRkRW52aXJvbm1lbnQoY29uc3RzLldBSVRFUl9TVEFURV9NQUNISU5FX0FSTl9FTlYsIHdhaXRlclN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm4pO1xuICAgICAgd2FpdGVyU3RhdGVNYWNoaW5lLmdyYW50U3RhcnRFeGVjdXRpb24ob25FdmVudEZ1bmN0aW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLmVudHJ5cG9pbnQgPSBvbkV2ZW50RnVuY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IGBDdXN0b21SZXNvdXJjZWAgd2hpY2ggdXNlcyB0aGlzIHByb3ZpZGVyLlxuICAgKi9cbiAgcHVibGljIGJpbmQoXzogQ29uc3RydWN0KTogY2ZuLkN1c3RvbVJlc291cmNlUHJvdmlkZXJDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHRoaXMuZW50cnlwb2ludC5mdW5jdGlvbkFyblxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZ1bmN0aW9uKGVudHJ5cG9pbnQ6IHN0cmluZykge1xuICAgIGNvbnN0IGZuID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCBgZnJhbWV3b3JrLSR7ZW50cnlwb2ludH1gLCB7XG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoUlVOVElNRV9IQU5ETEVSX1BBVEgpLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzEwX1gsXG4gICAgICBoYW5kbGVyOiBgZnJhbWV3b3JrLiR7ZW50cnlwb2ludH1gLFxuICAgICAgdGltZW91dDogRlJBTUVXT1JLX0hBTkRMRVJfVElNRU9VVCxcbiAgICB9KTtcblxuICAgIGZuLmFkZEVudmlyb25tZW50KGNvbnN0cy5VU0VSX09OX0VWRU5UX0ZVTkNUSU9OX0FSTl9FTlYsIHRoaXMub25FdmVudEhhbmRsZXIuZnVuY3Rpb25Bcm4pO1xuICAgIHRoaXMub25FdmVudEhhbmRsZXIuZ3JhbnRJbnZva2UoZm4pO1xuXG4gICAgaWYgKHRoaXMuaXNDb21wbGV0ZUhhbmRsZXIpIHtcbiAgICAgIGZuLmFkZEVudmlyb25tZW50KGNvbnN0cy5VU0VSX0lTX0NPTVBMRVRFX0ZVTkNUSU9OX0FSTl9FTlYsIHRoaXMuaXNDb21wbGV0ZUhhbmRsZXIuZnVuY3Rpb25Bcm4pO1xuICAgICAgdGhpcy5pc0NvbXBsZXRlSGFuZGxlci5ncmFudEludm9rZShmbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZuO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUYXNrKGhhbmRsZXI6IGxhbWJkYS5GdW5jdGlvbikge1xuICAgIHJldHVybiBuZXcgc2ZuLlRhc2sodGhpcywgYCR7aGFuZGxlci5ub2RlLmlkfS10YXNrYCwge1xuICAgICAgdGFzazogbmV3IHRhc2tzLkludm9rZUZ1bmN0aW9uKGhhbmRsZXIpLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLDhDQUE4QztBQUM5QyxrREFBa0Q7QUFDbEQsMERBQTBEO0FBQzFELHdDQUFvRDtBQUNwRCw2QkFBNkI7QUFDN0IsMkNBQTJDO0FBQzNDLGlDQUE4QztBQUU5QyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzdELE1BQU0seUJBQXlCLEdBQUcsZUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtBQXNEakY7O0dBRUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxnQkFBUztJQWdCckMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFvQjtRQUM1RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUMzRSxNQUFNLElBQUksS0FBSyxDQUFDLGdJQUFnSSxDQUFDLENBQUM7U0FDbko7UUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDM0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztRQUVqRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBRXBGLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztZQUMxRixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1lBRXRGLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUMzRCxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUMxRCxjQUFjLENBQUMsUUFBUSxDQUFDLDJCQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFFckQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFO2dCQUM1RSxVQUFVLEVBQUUsY0FBYzthQUMzQixDQUFDLENBQUM7WUFFSCx3RUFBd0U7WUFDeEUsZUFBZSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsNEJBQTRCLEVBQUUsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDeEcsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDekQ7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxJQUFJLENBQUMsQ0FBWTtRQUN0QixPQUFPO1lBQ0wsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVztTQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxVQUFrQjtRQUN2QyxNQUFNLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGFBQWEsVUFBVSxFQUFFLEVBQUU7WUFDOUQsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDO1lBQ2pELE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDbkMsT0FBTyxFQUFFLGFBQWEsVUFBVSxFQUFFO1lBQ2xDLE9BQU8sRUFBRSx5QkFBeUI7U0FDbkMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsOEJBQThCLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVwQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixFQUFFLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxpQ0FBaUMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDaEcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN4QztRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVPLFVBQVUsQ0FBQyxPQUF3QjtRQUN6QyxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFO1lBQ25ELElBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO1NBQ3hDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWpGRCw0QkFpRkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTogbWF4LWxpbmUtbGVuZ3RoXG5pbXBvcnQgKiBhcyBjZm4gZnJvbSAnQGF3cy1jZGsvYXdzLWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdAYXdzLWNkay9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIHNmbiBmcm9tICdAYXdzLWNkay9hd3Mtc3RlcGZ1bmN0aW9ucyc7XG5pbXBvcnQgKiBhcyB0YXNrcyBmcm9tICdAYXdzLWNkay9hd3Mtc3RlcGZ1bmN0aW9ucy10YXNrcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIER1cmF0aW9uIH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY29uc3RzIGZyb20gJy4vcnVudGltZS9jb25zdHMnO1xuaW1wb3J0IHsgY2FsY3VsYXRlUmV0cnlQb2xpY3kgfSBmcm9tICcuL3V0aWwnO1xuXG5jb25zdCBSVU5USU1FX0hBTkRMRVJfUEFUSCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICdydW50aW1lJyk7XG5jb25zdCBGUkFNRVdPUktfSEFORExFUl9USU1FT1VUID0gRHVyYXRpb24ubWludXRlcygxNSk7IC8vIGtlZXAgaXQgc2ltcGxlIGZvciBub3dcblxuLyoqXG4gKiBJbml0aWFsaXphdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgYFByb3ZpZGVyYCBjb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJQcm9wcyB7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgTGFtYmRhIGZ1bmN0aW9uIHRvIGludm9rZSBmb3IgYWxsIHJlc291cmNlIGxpZmVjeWNsZSBvcGVyYXRpb25zXG4gICAqIChDUkVBVEUvVVBEQVRFL0RFTEVURSkuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgdG8gYmVnaW4gdGhlIHJlcXVlc3RlZCByZXNvdXJjZSBvcGVyYXRpb25cbiAgICogKENSRUFURS9VUERBVEUvREVMRVRFKSBhbmQgcmV0dXJuIGFueSBhZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gYWRkIHRvIHRoZVxuICAgKiBldmVudCwgd2hpY2ggd2lsbCBsYXRlciBiZSBwYXNzZWQgdG8gYGlzQ29tcGxldGVgLiBUaGUgYFBoeXNpY2FsUmVzb3VyY2VJZGBcbiAgICogcHJvcGVydHkgbXVzdCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UuXG4gICAqL1xuICByZWFkb25seSBvbkV2ZW50SGFuZGxlcjogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogVGhlIEFXUyBMYW1iZGEgZnVuY3Rpb24gdG8gaW52b2tlIGluIG9yZGVyIHRvIGRldGVybWluZSBpZiB0aGUgb3BlcmF0aW9uIGlzXG4gICAqIGNvbXBsZXRlLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGltbWVkaWF0ZWx5IGFmdGVyIGBvbkV2ZW50YCBhbmQgdGhlblxuICAgKiBwZXJpb2RpY2FsbHkgYmFzZWQgb24gdGhlIGNvbmZpZ3VyZWQgcXVlcnkgaW50ZXJ2YWwgYXMgbG9uZyBhcyBpdCByZXR1cm5zXG4gICAqIGBmYWxzZWAuIElmIHRoZSBmdW5jdGlvbiBzdGlsbCByZXR1cm5zIGBmYWxzZWAgYW5kIHRoZSBhbGxvdGVkIHRpbWVvdXQgaGFzXG4gICAqIHBhc3NlZCwgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcHJvdmlkZXIgaXMgc3luY2hyb25vdXMuIFRoaXMgbWVhbnMgdGhhdCB0aGUgYG9uRXZlbnRgIGhhbmRsZXJcbiAgICogaXMgZXhwZWN0ZWQgdG8gZmluaXNoIGFsbCBsaWZlY3ljbGUgb3BlcmF0aW9ucyB3aXRoaW4gdGhlIGluaXRpYWwgaW52b2NhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGlzQ29tcGxldGVIYW5kbGVyPzogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogVGltZSBiZXR3ZWVuIGNhbGxzIHRvIHRoZSBgaXNDb21wbGV0ZWAgaGFuZGxlciB3aGljaCBkZXRlcm1pbmVzIGlmIHRoZVxuICAgKiByZXNvdXJjZSBoYXMgYmVlbiBzdGFiaWxpemVkLlxuICAgKlxuICAgKiBUaGUgZmlyc3QgYGlzQ29tcGxldGVgIHdpbGwgYmUgY2FsbGVkIGltbWVkaWF0ZWx5IGFmdGVyIGBoYW5kbGVyYCBhbmQgdGhlblxuICAgKiBldmVyeSBgcXVlcnlJbnRlcnZhbGAgc2Vjb25kcywgYW5kIHVudGlsIGB0aW1lb3V0YCBoYXMgYmVlbiByZWFjaGVkIG9yIHVudGlsXG4gICAqIGBpc0NvbXBsZXRlYCByZXR1cm5zIGB0cnVlYC5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uc2Vjb25kcyg1KVxuICAgKi9cbiAgcmVhZG9ubHkgcXVlcnlJbnRlcnZhbD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUb3RhbCB0aW1lb3V0IGZvciB0aGUgZW50aXJlIG9wZXJhdGlvbi5cbiAgICpcbiAgICogVGhlIG1heGltdW0gdGltZW91dCBpcyAyIGhvdXJzICh5ZXMsIGl0IGNhbiBleGNlZWQgdGhlIEFXUyBMYW1iZGEgMTUgbWludXRlcylcbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24ubWludXRlcygzMClcbiAgICovXG4gIHJlYWRvbmx5IHRvdGFsVGltZW91dD86IER1cmF0aW9uO1xufVxuXG4vKipcbiAqIERlZmluZXMgYW4gQVdTIENsb3VkRm9ybWF0aW9uIGN1c3RvbSByZXNvdXJjZSBwcm92aWRlci5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb3ZpZGVyIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgY2ZuLklDdXN0b21SZXNvdXJjZVByb3ZpZGVyIHtcblxuICAvKipcbiAgICogVGhlIHVzZXItZGVmaW5lZCBBV1MgTGFtYmRhIGZ1bmN0aW9uIHdoaWNoIGlzIGludm9rZWQgZm9yIGFsbCByZXNvdXJjZVxuICAgKiBsaWZlY3ljbGUgb3BlcmF0aW9ucyAoQ1JFQVRFL1VQREFURS9ERUxFVEUpLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9uRXZlbnRIYW5kbGVyOiBsYW1iZGEuSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdXNlci1kZWZpbmVkIEFXUyBMYW1iZGEgZnVuY3Rpb24gd2hpY2ggaXMgaW52b2tlZCBhc3luY2hyb25vdXNseSBpblxuICAgKiBvcmRlciB0byBkZXRlcm1pbmUgaWYgdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpc0NvbXBsZXRlSGFuZGxlcj86IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlbnRyeXBvaW50OiBsYW1iZGEuRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFByb3ZpZGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKCFwcm9wcy5pc0NvbXBsZXRlSGFuZGxlciAmJiAocHJvcHMucXVlcnlJbnRlcnZhbCB8fCBwcm9wcy50b3RhbFRpbWVvdXQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1wicXVlcnlJbnRlcnZhbFwiIGFuZCBcInRvdGFsVGltZW91dFwiIGNhbiBvbmx5IGJlIGNvbmZpZ3VyZWQgaWYgXCJpc0NvbXBsZXRlSGFuZGxlclwiIGlzIHNwZWNpZmllZC4gT3RoZXJ3aXNlLCB0aGV5IGhhdmUgbm8gbWVhbmluZycpO1xuICAgIH1cblxuICAgIHRoaXMub25FdmVudEhhbmRsZXIgPSBwcm9wcy5vbkV2ZW50SGFuZGxlcjtcbiAgICB0aGlzLmlzQ29tcGxldGVIYW5kbGVyID0gcHJvcHMuaXNDb21wbGV0ZUhhbmRsZXI7XG5cbiAgICBjb25zdCBvbkV2ZW50RnVuY3Rpb24gPSB0aGlzLmNyZWF0ZUZ1bmN0aW9uKGNvbnN0cy5GUkFNRVdPUktfT05fRVZFTlRfSEFORExFUl9OQU1FKTtcblxuICAgIGlmICh0aGlzLmlzQ29tcGxldGVIYW5kbGVyKSB7XG4gICAgICBjb25zdCBpc0NvbXBsZXRlRnVuY3Rpb24gPSB0aGlzLmNyZWF0ZUZ1bmN0aW9uKGNvbnN0cy5GUkFNRVdPUktfSVNfQ09NUExFVEVfSEFORExFUl9OQU1FKTtcbiAgICAgIGNvbnN0IHRpbWVvdXRGdW5jdGlvbiA9IHRoaXMuY3JlYXRlRnVuY3Rpb24oY29uc3RzLkZSQU1FV09SS19PTl9USU1FT1VUX0hBTkRMRVJfTkFNRSk7XG5cbiAgICAgIGNvbnN0IGlzQ29tcGxldGVUYXNrID0gdGhpcy5jcmVhdGVUYXNrKGlzQ29tcGxldGVGdW5jdGlvbik7XG4gICAgICBpc0NvbXBsZXRlVGFzay5hZGRDYXRjaCh0aGlzLmNyZWF0ZVRhc2sodGltZW91dEZ1bmN0aW9uKSk7XG4gICAgICBpc0NvbXBsZXRlVGFzay5hZGRSZXRyeShjYWxjdWxhdGVSZXRyeVBvbGljeShwcm9wcykpO1xuXG4gICAgICBjb25zdCB3YWl0ZXJTdGF0ZU1hY2hpbmUgPSBuZXcgc2ZuLlN0YXRlTWFjaGluZSh0aGlzLCAnd2FpdGVyLXN0YXRlLW1hY2hpbmUnLCB7XG4gICAgICAgIGRlZmluaXRpb246IGlzQ29tcGxldGVUYXNrXG4gICAgICB9KTtcblxuICAgICAgLy8gdGhlIG9uLWV2ZW50IGVudHJ5cG9pbnQgaXMgZ29pbmcgdG8gc3RhcnQgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgd2FpdGVyXG4gICAgICBvbkV2ZW50RnVuY3Rpb24uYWRkRW52aXJvbm1lbnQoY29uc3RzLldBSVRFUl9TVEFURV9NQUNISU5FX0FSTl9FTlYsIHdhaXRlclN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm4pO1xuICAgICAgd2FpdGVyU3RhdGVNYWNoaW5lLmdyYW50U3RhcnRFeGVjdXRpb24ob25FdmVudEZ1bmN0aW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLmVudHJ5cG9pbnQgPSBvbkV2ZW50RnVuY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IGBDdXN0b21SZXNvdXJjZWAgd2hpY2ggdXNlcyB0aGlzIHByb3ZpZGVyLlxuICAgKi9cbiAgcHVibGljIGJpbmQoXzogQ29uc3RydWN0KTogY2ZuLkN1c3RvbVJlc291cmNlUHJvdmlkZXJDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHRoaXMuZW50cnlwb2ludC5mdW5jdGlvbkFyblxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZ1bmN0aW9uKGVudHJ5cG9pbnQ6IHN0cmluZykge1xuICAgIGNvbnN0IGZuID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCBgZnJhbWV3b3JrLSR7ZW50cnlwb2ludH1gLCB7XG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoUlVOVElNRV9IQU5ETEVSX1BBVEgpLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzEwX1gsXG4gICAgICBoYW5kbGVyOiBgZnJhbWV3b3JrLiR7ZW50cnlwb2ludH1gLFxuICAgICAgdGltZW91dDogRlJBTUVXT1JLX0hBTkRMRVJfVElNRU9VVCxcbiAgICB9KTtcblxuICAgIGZuLmFkZEVudmlyb25tZW50KGNvbnN0cy5VU0VSX09OX0VWRU5UX0ZVTkNUSU9OX0FSTl9FTlYsIHRoaXMub25FdmVudEhhbmRsZXIuZnVuY3Rpb25Bcm4pO1xuICAgIHRoaXMub25FdmVudEhhbmRsZXIuZ3JhbnRJbnZva2UoZm4pO1xuXG4gICAgaWYgKHRoaXMuaXNDb21wbGV0ZUhhbmRsZXIpIHtcbiAgICAgIGZuLmFkZEVudmlyb25tZW50KGNvbnN0cy5VU0VSX0lTX0NPTVBMRVRFX0ZVTkNUSU9OX0FSTl9FTlYsIHRoaXMuaXNDb21wbGV0ZUhhbmRsZXIuZnVuY3Rpb25Bcm4pO1xuICAgICAgdGhpcy5pc0NvbXBsZXRlSGFuZGxlci5ncmFudEludm9rZShmbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZuO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUYXNrKGhhbmRsZXI6IGxhbWJkYS5GdW5jdGlvbikge1xuICAgIHJldHVybiBuZXcgc2ZuLlRhc2sodGhpcywgYCR7aGFuZGxlci5ub2RlLmlkfS10YXNrYCwge1xuICAgICAgdGFzazogbmV3IHRhc2tzLkludm9rZUZ1bmN0aW9uKGhhbmRsZXIpLFxuICAgIH0pO1xuICB9XG59XG4iXX0=

@@ -42,3 +42,3 @@ "use strict";

if (event.RequestType === 'Delete' && event.PhysicalResourceId === exports.CREATE_FAILED_PHYSICAL_ID_MARKER) {
util_1.log(`ignoring DELETE event caused by a failed CREATE event`);
util_1.log('ignoring DELETE event caused by a failed CREATE event');
await submitResponse('SUCCESS', event);

@@ -53,3 +53,3 @@ return;

if (e instanceof Retry) {
util_1.log(`retry requested by handler`);
util_1.log('retry requested by handler');
throw e;

@@ -64,3 +64,3 @@ }

if (event.RequestType === 'Create') {
util_1.log(`CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored`);
util_1.log('CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored');
event.PhysicalResourceId = exports.CREATE_FAILED_PHYSICAL_ID_MARKER;

@@ -85,2 +85,2 @@ }

exports.Retry = Retry;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZuLXJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2ZuLXJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsa0NBQWtDO0FBQ2xDLDZCQUE2QjtBQUM3QiwyQkFBMkI7QUFDM0IseUNBQXlDO0FBQ3pDLGlDQUE2QjtBQUVoQixRQUFBLGdDQUFnQyxHQUFHLHdEQUF3RCxDQUFDO0FBQzVGLFFBQUEsMEJBQTBCLEdBQUcsOERBQThELENBQUM7QUFnQmxHLEtBQUssVUFBVSxjQUFjLENBQUMsTUFBNEIsRUFBRSxLQUFpQyxFQUFFLFVBQXlDLEVBQUc7SUFDaEosTUFBTSxJQUFJLEdBQW1EO1FBQzNELE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksTUFBTTtRQUNoQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQzFCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxrQ0FBMEI7UUFDMUUsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtRQUMxQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDdEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO0tBQ2pCLENBQUM7SUFFRixVQUFHLENBQUMsbUNBQW1DLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFL0MsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUxQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxNQUFNLHNCQUFXLENBQUM7UUFDaEIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO1FBQzVCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtRQUNwQixNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRTtZQUNQLGNBQWMsRUFBRSxFQUFFO1lBQ2xCLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxNQUFNO1NBQ3RDO0tBQ0YsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUNuQixDQUFDO0FBMUJELHdDQTBCQztBQUVVLFFBQUEsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLENBQUMsaUJBQWlCO0FBRXZELFNBQWdCLFdBQVcsQ0FBQyxLQUFvQztJQUM5RCxPQUFPLEtBQUssRUFBRSxLQUFVLEVBQUUsRUFBRTtRQUUxQix1RUFBdUU7UUFDdkUsdUVBQXVFO1FBQ3ZFLGFBQWE7UUFDYixJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyx3Q0FBZ0MsRUFBRTtZQUNuRyxVQUFHLENBQUMsdURBQXVELENBQUMsQ0FBQztZQUM3RCxNQUFNLGNBQWMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdkMsT0FBTztTQUNSO1FBRUQsSUFBSTtZQUNGLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixxQ0FBcUM7WUFDckMsSUFBSSxDQUFDLFlBQVksS0FBSyxFQUFFO2dCQUN0QixVQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztnQkFDbEMsTUFBTSxDQUFDLENBQUM7YUFDVDtZQUVELElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUU7Z0JBQzdCLHlFQUF5RTtnQkFDekUsbUVBQW1FO2dCQUNuRSx3RUFBd0U7Z0JBQ3hFLHFFQUFxRTtnQkFDckUsZ0NBQWdDO2dCQUNoQyxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssUUFBUSxFQUFFO29CQUNsQyxVQUFHLENBQUMsNEdBQTRHLENBQUMsQ0FBQztvQkFDbEgsS0FBSyxDQUFDLGtCQUFrQixHQUFHLHdDQUFnQyxDQUFDO2lCQUM3RDtxQkFBTTtvQkFDTCxrRUFBa0U7b0JBQ2xFLDZEQUE2RDtvQkFDN0QsVUFBRyxDQUFDLDZEQUE2RCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDM0Y7YUFDRjtZQUVELG1FQUFtRTtZQUNuRSxNQUFNLGNBQWMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUNwQyxNQUFNLEVBQUUsMEJBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPO2FBQ2pELENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQTNDRCxrQ0EyQ0M7QUFFRCxNQUFhLEtBQU0sU0FBUSxLQUFLO0NBQUk7QUFBcEMsc0JBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6IG1heC1saW5lLWxlbmd0aFxuLy8gdHNsaW50OmRpc2FibGU6IG5vLWNvbnNvbGVcbmltcG9ydCAqIGFzIHVybCBmcm9tICd1cmwnO1xuaW1wb3J0IHsgaHR0cFJlcXVlc3QgfSBmcm9tICcuL291dGJvdW5kJztcbmltcG9ydCB7IGxvZyB9IGZyb20gJy4vdXRpbCc7XG5cbmV4cG9ydCBjb25zdCBDUkVBVEVfRkFJTEVEX1BIWVNJQ0FMX0lEX01BUktFUiA9ICdBV1NDREs6OkN1c3RvbVJlc291cmNlUHJvdmlkZXJGcmFtZXdvcms6OkNSRUFURV9GQUlMRUQnO1xuZXhwb3J0IGNvbnN0IE1JU1NJTkdfUEhZU0lDQUxfSURfTUFSS0VSID0gJ0FXU0NESzo6Q3VzdG9tUmVzb3VyY2VQcm92aWRlckZyYW1ld29yazo6TUlTU0lOR19QSFlTSUNBTF9JRCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGb3JtYXRpb25SZXNwb25zZU9wdGlvbnMge1xuICByZWFkb25seSByZWFzb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5vRWNobz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGb3JtYXRpb25FdmVudENvbnRleHQge1xuICBTdGFja0lkOiBzdHJpbmc7XG4gIFJlcXVlc3RJZDogc3RyaW5nO1xuICBQaHlzaWNhbFJlc291cmNlSWQ/OiBzdHJpbmc7XG4gIExvZ2ljYWxSZXNvdXJjZUlkOiBzdHJpbmc7XG4gIFJlc3BvbnNlVVJMOiBzdHJpbmc7XG4gIERhdGE/OiBhbnlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN1Ym1pdFJlc3BvbnNlKHN0YXR1czogJ1NVQ0NFU1MnIHwgJ0ZBSUxFRCcsIGV2ZW50OiBDbG91ZEZvcm1hdGlvbkV2ZW50Q29udGV4dCwgb3B0aW9uczogQ2xvdWRGb3JtYXRpb25SZXNwb25zZU9wdGlvbnMgPSB7IH0pIHtcbiAgY29uc3QganNvbjogQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VSZXNwb25zZSA9IHtcbiAgICBTdGF0dXM6IHN0YXR1cyxcbiAgICBSZWFzb246IG9wdGlvbnMucmVhc29uIHx8IHN0YXR1cyxcbiAgICBTdGFja0lkOiBldmVudC5TdGFja0lkLFxuICAgIFJlcXVlc3RJZDogZXZlbnQuUmVxdWVzdElkLFxuICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkIHx8IE1JU1NJTkdfUEhZU0lDQUxfSURfTUFSS0VSLFxuICAgIExvZ2ljYWxSZXNvdXJjZUlkOiBldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCxcbiAgICBOb0VjaG86IG9wdGlvbnMubm9FY2hvLFxuICAgIERhdGE6IGV2ZW50LkRhdGFcbiAgfTtcblxuICBsb2coJ3N1Ym1pdCByZXNwb25zZSB0byBjbG91ZGZvcm1hdGlvbicsIGpzb24pO1xuXG4gIGNvbnN0IHJlc3BvbnNlQm9keSA9IEpTT04uc3RyaW5naWZ5KGpzb24pO1xuXG4gIGNvbnN0IHBhcnNlZFVybCA9IHVybC5wYXJzZShldmVudC5SZXNwb25zZVVSTCk7XG4gIGF3YWl0IGh0dHBSZXF1ZXN0KHtcbiAgICBob3N0bmFtZTogcGFyc2VkVXJsLmhvc3RuYW1lLFxuICAgIHBhdGg6IHBhcnNlZFVybC5wYXRoLFxuICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ2NvbnRlbnQtdHlwZSc6ICcnLFxuICAgICAgJ2NvbnRlbnQtbGVuZ3RoJzogcmVzcG9uc2VCb2R5Lmxlbmd0aFxuICAgIH1cbiAgfSwgcmVzcG9uc2VCb2R5KTtcbn1cblxuZXhwb3J0IGxldCBpbmNsdWRlU3RhY2tUcmFjZXMgPSB0cnVlOyAvLyBmb3IgdW5pdCB0ZXN0c1xuXG5leHBvcnQgZnVuY3Rpb24gc2FmZUhhbmRsZXIoYmxvY2s6IChldmVudDogYW55KSA9PiBQcm9taXNlPHZvaWQ+KSB7XG4gIHJldHVybiBhc3luYyAoZXZlbnQ6IGFueSkgPT4ge1xuXG4gICAgLy8gaWdub3JlIERFTEVURSBldmVudCB3aGVuIHRoZSBwaHlzaWNhbCByZXNvdXJjZSBJRCBpcyB0aGUgbWFya2VyIHRoYXRcbiAgICAvLyBpbmRpY2F0ZXMgdGhhdCB0aGlzIERFTEVURSBpcyBhIHN1YnNlcXVlbnQgREVMRVRFIHRvIGEgZmFpbGVkIENSRUFURVxuICAgIC8vIG9wZXJhdGlvbi5cbiAgICBpZiAoZXZlbnQuUmVxdWVzdFR5cGUgPT09ICdEZWxldGUnICYmIGV2ZW50LlBoeXNpY2FsUmVzb3VyY2VJZCA9PT0gQ1JFQVRFX0ZBSUxFRF9QSFlTSUNBTF9JRF9NQVJLRVIpIHtcbiAgICAgIGxvZyhgaWdub3JpbmcgREVMRVRFIGV2ZW50IGNhdXNlZCBieSBhIGZhaWxlZCBDUkVBVEUgZXZlbnRgKTtcbiAgICAgIGF3YWl0IHN1Ym1pdFJlc3BvbnNlKCdTVUNDRVNTJywgZXZlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBibG9jayhldmVudCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gdGVsbCB3YWl0ZXIgc3RhdGUgbWFjaGluZSB0byByZXRyeVxuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBSZXRyeSkge1xuICAgICAgICBsb2coYHJldHJ5IHJlcXVlc3RlZCBieSBoYW5kbGVyYCk7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG5cbiAgICAgIGlmICghZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkKSB7XG4gICAgICAgIC8vIHNwZWNpYWwgY2FzZTogaWYgQ1JFQVRFIGZhaWxzLCB3aGljaCB1c3VhbGx5IGltcGxpZXMsIHdlIHVzdWFsbHkgZG9uJ3RcbiAgICAgICAgLy8gaGF2ZSBhIHBoeXNpY2FsIHJlc291cmNlIGlkLiBpbiB0aGlzIGNhc2UsIHRoZSBzdWJzZXF1ZW50IERFTEVURVxuICAgICAgICAvLyBvcGVyYXRpb24gZG9lcyBub3QgaGF2ZSBhbnkgbWVhbmluZywgYW5kIHdpbGwgbGlrZWx5IGZhaWwgYXMgd2VsbC4gdG9cbiAgICAgICAgLy8gYWRkcmVzcyB0aGlzLCB3ZSB1c2UgYSBtYXJrZXIgc28gdGhlIHByb3ZpZGVyIGZyYW1ld29yayBjYW4gc2ltcGx5XG4gICAgICAgIC8vIGlnbm9yZSB0aGUgc3Vic2VxdWVudCBERUxFVEUuXG4gICAgICAgIGlmIChldmVudC5SZXF1ZXN0VHlwZSA9PT0gJ0NyZWF0ZScpIHtcbiAgICAgICAgICBsb2coYENSRUFURSBmYWlsZWQsIHJlc3BvbmRpbmcgd2l0aCBhIG1hcmtlciBwaHlzaWNhbCByZXNvdXJjZSBpZCBzbyB0aGF0IHRoZSBzdWJzZXF1ZW50IERFTEVURSB3aWxsIGJlIGlnbm9yZWRgKTtcbiAgICAgICAgICBldmVudC5QaHlzaWNhbFJlc291cmNlSWQgPSBDUkVBVEVfRkFJTEVEX1BIWVNJQ0FMX0lEX01BUktFUjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBvdGhlcndpc2UsIGlmIFBoeXNpY2FsUmVzb3VyY2VJZCBpcyBub3Qgc3BlY2lmaWVkLCBzb21ldGhpbmcgaXNcbiAgICAgICAgICAvLyB0ZXJyaWJseSB3cm9uZyBiZWNhdXNlIGFsbCBvdGhlciBldmVudHMgc2hvdWxkIGhhdmUgYW4gSUQuXG4gICAgICAgICAgbG9nKGBFUlJPUjogTWFsZm9ybWVkIGV2ZW50LiBcIlBoeXNpY2FsUmVzb3VyY2VJZFwiIGlzIHJlcXVpcmVkOiAke0pTT04uc3RyaW5naWZ5KGV2ZW50KX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyB0aGlzIGlzIGFuIGFjdHVhbCBlcnJvciwgZmFpbCB0aGUgYWN0aXZpdHkgYWx0b2dldGhlciBhbmQgZXhpc3QuXG4gICAgICBhd2FpdCBzdWJtaXRSZXNwb25zZSgnRkFJTEVEJywgZXZlbnQsIHtcbiAgICAgICAgcmVhc29uOiBpbmNsdWRlU3RhY2tUcmFjZXMgPyBlLnN0YWNrIDogZS5tZXNzYWdlLFxuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgUmV0cnkgZXh0ZW5kcyBFcnJvciB7IH1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZuLXJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2ZuLXJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsa0NBQWtDO0FBQ2xDLDZCQUE2QjtBQUM3QiwyQkFBMkI7QUFDM0IseUNBQXlDO0FBQ3pDLGlDQUE2QjtBQUVoQixRQUFBLGdDQUFnQyxHQUFHLHdEQUF3RCxDQUFDO0FBQzVGLFFBQUEsMEJBQTBCLEdBQUcsOERBQThELENBQUM7QUFnQmxHLEtBQUssVUFBVSxjQUFjLENBQUMsTUFBNEIsRUFBRSxLQUFpQyxFQUFFLFVBQXlDLEVBQUc7SUFDaEosTUFBTSxJQUFJLEdBQW1EO1FBQzNELE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksTUFBTTtRQUNoQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQzFCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxrQ0FBMEI7UUFDMUUsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtRQUMxQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDdEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO0tBQ2pCLENBQUM7SUFFRixVQUFHLENBQUMsbUNBQW1DLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFL0MsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUxQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxNQUFNLHNCQUFXLENBQUM7UUFDaEIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO1FBQzVCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtRQUNwQixNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRTtZQUNQLGNBQWMsRUFBRSxFQUFFO1lBQ2xCLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxNQUFNO1NBQ3RDO0tBQ0YsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUNuQixDQUFDO0FBMUJELHdDQTBCQztBQUVVLFFBQUEsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLENBQUMsaUJBQWlCO0FBRXZELFNBQWdCLFdBQVcsQ0FBQyxLQUFvQztJQUM5RCxPQUFPLEtBQUssRUFBRSxLQUFVLEVBQUUsRUFBRTtRQUUxQix1RUFBdUU7UUFDdkUsdUVBQXVFO1FBQ3ZFLGFBQWE7UUFDYixJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyx3Q0FBZ0MsRUFBRTtZQUNuRyxVQUFHLENBQUMsdURBQXVELENBQUMsQ0FBQztZQUM3RCxNQUFNLGNBQWMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdkMsT0FBTztTQUNSO1FBRUQsSUFBSTtZQUNGLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixxQ0FBcUM7WUFDckMsSUFBSSxDQUFDLFlBQVksS0FBSyxFQUFFO2dCQUN0QixVQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztnQkFDbEMsTUFBTSxDQUFDLENBQUM7YUFDVDtZQUVELElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUU7Z0JBQzdCLHlFQUF5RTtnQkFDekUsbUVBQW1FO2dCQUNuRSx3RUFBd0U7Z0JBQ3hFLHFFQUFxRTtnQkFDckUsZ0NBQWdDO2dCQUNoQyxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssUUFBUSxFQUFFO29CQUNsQyxVQUFHLENBQUMsNEdBQTRHLENBQUMsQ0FBQztvQkFDbEgsS0FBSyxDQUFDLGtCQUFrQixHQUFHLHdDQUFnQyxDQUFDO2lCQUM3RDtxQkFBTTtvQkFDTCxrRUFBa0U7b0JBQ2xFLDZEQUE2RDtvQkFDN0QsVUFBRyxDQUFDLDZEQUE2RCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDM0Y7YUFDRjtZQUVELG1FQUFtRTtZQUNuRSxNQUFNLGNBQWMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUNwQyxNQUFNLEVBQUUsMEJBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPO2FBQ2pELENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQTNDRCxrQ0EyQ0M7QUFFRCxNQUFhLEtBQU0sU0FBUSxLQUFLO0NBQUk7QUFBcEMsc0JBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6IG1heC1saW5lLWxlbmd0aFxuLy8gdHNsaW50OmRpc2FibGU6IG5vLWNvbnNvbGVcbmltcG9ydCAqIGFzIHVybCBmcm9tICd1cmwnO1xuaW1wb3J0IHsgaHR0cFJlcXVlc3QgfSBmcm9tICcuL291dGJvdW5kJztcbmltcG9ydCB7IGxvZyB9IGZyb20gJy4vdXRpbCc7XG5cbmV4cG9ydCBjb25zdCBDUkVBVEVfRkFJTEVEX1BIWVNJQ0FMX0lEX01BUktFUiA9ICdBV1NDREs6OkN1c3RvbVJlc291cmNlUHJvdmlkZXJGcmFtZXdvcms6OkNSRUFURV9GQUlMRUQnO1xuZXhwb3J0IGNvbnN0IE1JU1NJTkdfUEhZU0lDQUxfSURfTUFSS0VSID0gJ0FXU0NESzo6Q3VzdG9tUmVzb3VyY2VQcm92aWRlckZyYW1ld29yazo6TUlTU0lOR19QSFlTSUNBTF9JRCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGb3JtYXRpb25SZXNwb25zZU9wdGlvbnMge1xuICByZWFkb25seSByZWFzb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5vRWNobz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGb3JtYXRpb25FdmVudENvbnRleHQge1xuICBTdGFja0lkOiBzdHJpbmc7XG4gIFJlcXVlc3RJZDogc3RyaW5nO1xuICBQaHlzaWNhbFJlc291cmNlSWQ/OiBzdHJpbmc7XG4gIExvZ2ljYWxSZXNvdXJjZUlkOiBzdHJpbmc7XG4gIFJlc3BvbnNlVVJMOiBzdHJpbmc7XG4gIERhdGE/OiBhbnlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN1Ym1pdFJlc3BvbnNlKHN0YXR1czogJ1NVQ0NFU1MnIHwgJ0ZBSUxFRCcsIGV2ZW50OiBDbG91ZEZvcm1hdGlvbkV2ZW50Q29udGV4dCwgb3B0aW9uczogQ2xvdWRGb3JtYXRpb25SZXNwb25zZU9wdGlvbnMgPSB7IH0pIHtcbiAgY29uc3QganNvbjogQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VSZXNwb25zZSA9IHtcbiAgICBTdGF0dXM6IHN0YXR1cyxcbiAgICBSZWFzb246IG9wdGlvbnMucmVhc29uIHx8IHN0YXR1cyxcbiAgICBTdGFja0lkOiBldmVudC5TdGFja0lkLFxuICAgIFJlcXVlc3RJZDogZXZlbnQuUmVxdWVzdElkLFxuICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkIHx8IE1JU1NJTkdfUEhZU0lDQUxfSURfTUFSS0VSLFxuICAgIExvZ2ljYWxSZXNvdXJjZUlkOiBldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCxcbiAgICBOb0VjaG86IG9wdGlvbnMubm9FY2hvLFxuICAgIERhdGE6IGV2ZW50LkRhdGFcbiAgfTtcblxuICBsb2coJ3N1Ym1pdCByZXNwb25zZSB0byBjbG91ZGZvcm1hdGlvbicsIGpzb24pO1xuXG4gIGNvbnN0IHJlc3BvbnNlQm9keSA9IEpTT04uc3RyaW5naWZ5KGpzb24pO1xuXG4gIGNvbnN0IHBhcnNlZFVybCA9IHVybC5wYXJzZShldmVudC5SZXNwb25zZVVSTCk7XG4gIGF3YWl0IGh0dHBSZXF1ZXN0KHtcbiAgICBob3N0bmFtZTogcGFyc2VkVXJsLmhvc3RuYW1lLFxuICAgIHBhdGg6IHBhcnNlZFVybC5wYXRoLFxuICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ2NvbnRlbnQtdHlwZSc6ICcnLFxuICAgICAgJ2NvbnRlbnQtbGVuZ3RoJzogcmVzcG9uc2VCb2R5Lmxlbmd0aFxuICAgIH1cbiAgfSwgcmVzcG9uc2VCb2R5KTtcbn1cblxuZXhwb3J0IGxldCBpbmNsdWRlU3RhY2tUcmFjZXMgPSB0cnVlOyAvLyBmb3IgdW5pdCB0ZXN0c1xuXG5leHBvcnQgZnVuY3Rpb24gc2FmZUhhbmRsZXIoYmxvY2s6IChldmVudDogYW55KSA9PiBQcm9taXNlPHZvaWQ+KSB7XG4gIHJldHVybiBhc3luYyAoZXZlbnQ6IGFueSkgPT4ge1xuXG4gICAgLy8gaWdub3JlIERFTEVURSBldmVudCB3aGVuIHRoZSBwaHlzaWNhbCByZXNvdXJjZSBJRCBpcyB0aGUgbWFya2VyIHRoYXRcbiAgICAvLyBpbmRpY2F0ZXMgdGhhdCB0aGlzIERFTEVURSBpcyBhIHN1YnNlcXVlbnQgREVMRVRFIHRvIGEgZmFpbGVkIENSRUFURVxuICAgIC8vIG9wZXJhdGlvbi5cbiAgICBpZiAoZXZlbnQuUmVxdWVzdFR5cGUgPT09ICdEZWxldGUnICYmIGV2ZW50LlBoeXNpY2FsUmVzb3VyY2VJZCA9PT0gQ1JFQVRFX0ZBSUxFRF9QSFlTSUNBTF9JRF9NQVJLRVIpIHtcbiAgICAgIGxvZygnaWdub3JpbmcgREVMRVRFIGV2ZW50IGNhdXNlZCBieSBhIGZhaWxlZCBDUkVBVEUgZXZlbnQnKTtcbiAgICAgIGF3YWl0IHN1Ym1pdFJlc3BvbnNlKCdTVUNDRVNTJywgZXZlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBibG9jayhldmVudCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gdGVsbCB3YWl0ZXIgc3RhdGUgbWFjaGluZSB0byByZXRyeVxuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBSZXRyeSkge1xuICAgICAgICBsb2coJ3JldHJ5IHJlcXVlc3RlZCBieSBoYW5kbGVyJyk7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG5cbiAgICAgIGlmICghZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkKSB7XG4gICAgICAgIC8vIHNwZWNpYWwgY2FzZTogaWYgQ1JFQVRFIGZhaWxzLCB3aGljaCB1c3VhbGx5IGltcGxpZXMsIHdlIHVzdWFsbHkgZG9uJ3RcbiAgICAgICAgLy8gaGF2ZSBhIHBoeXNpY2FsIHJlc291cmNlIGlkLiBpbiB0aGlzIGNhc2UsIHRoZSBzdWJzZXF1ZW50IERFTEVURVxuICAgICAgICAvLyBvcGVyYXRpb24gZG9lcyBub3QgaGF2ZSBhbnkgbWVhbmluZywgYW5kIHdpbGwgbGlrZWx5IGZhaWwgYXMgd2VsbC4gdG9cbiAgICAgICAgLy8gYWRkcmVzcyB0aGlzLCB3ZSB1c2UgYSBtYXJrZXIgc28gdGhlIHByb3ZpZGVyIGZyYW1ld29yayBjYW4gc2ltcGx5XG4gICAgICAgIC8vIGlnbm9yZSB0aGUgc3Vic2VxdWVudCBERUxFVEUuXG4gICAgICAgIGlmIChldmVudC5SZXF1ZXN0VHlwZSA9PT0gJ0NyZWF0ZScpIHtcbiAgICAgICAgICBsb2coJ0NSRUFURSBmYWlsZWQsIHJlc3BvbmRpbmcgd2l0aCBhIG1hcmtlciBwaHlzaWNhbCByZXNvdXJjZSBpZCBzbyB0aGF0IHRoZSBzdWJzZXF1ZW50IERFTEVURSB3aWxsIGJlIGlnbm9yZWQnKTtcbiAgICAgICAgICBldmVudC5QaHlzaWNhbFJlc291cmNlSWQgPSBDUkVBVEVfRkFJTEVEX1BIWVNJQ0FMX0lEX01BUktFUjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBvdGhlcndpc2UsIGlmIFBoeXNpY2FsUmVzb3VyY2VJZCBpcyBub3Qgc3BlY2lmaWVkLCBzb21ldGhpbmcgaXNcbiAgICAgICAgICAvLyB0ZXJyaWJseSB3cm9uZyBiZWNhdXNlIGFsbCBvdGhlciBldmVudHMgc2hvdWxkIGhhdmUgYW4gSUQuXG4gICAgICAgICAgbG9nKGBFUlJPUjogTWFsZm9ybWVkIGV2ZW50LiBcIlBoeXNpY2FsUmVzb3VyY2VJZFwiIGlzIHJlcXVpcmVkOiAke0pTT04uc3RyaW5naWZ5KGV2ZW50KX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyB0aGlzIGlzIGFuIGFjdHVhbCBlcnJvciwgZmFpbCB0aGUgYWN0aXZpdHkgYWx0b2dldGhlciBhbmQgZXhpc3QuXG4gICAgICBhd2FpdCBzdWJtaXRSZXNwb25zZSgnRkFJTEVEJywgZXZlbnQsIHtcbiAgICAgICAgcmVhc29uOiBpbmNsdWRlU3RhY2tUcmFjZXMgPyBlLnN0YWNrIDogZS5tZXNzYWdlLFxuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgUmV0cnkgZXh0ZW5kcyBFcnJvciB7IH1cbiJdfQ==

@@ -48,3 +48,3 @@ "use strict";

if (isCompleteResult.Data && Object.keys(isCompleteResult.Data).length > 0) {
throw new Error(`"Data" is not allowed if "IsComplete" is "False"`);
throw new Error('"Data" is not allowed if "IsComplete" is "False"');
}

@@ -85,3 +85,3 @@ throw new cfnResponse.Retry(JSON.stringify(event));

const errorMessage = jsonPayload.errorMessage || 'error';
const trace = jsonPayload.trace ? `\nRemote function error: ` + jsonPayload.trace.join('\n') : '';
const trace = jsonPayload.trace ? '\nRemote function error: ' + jsonPayload.trace.join('\n') : '';
const e = new Error(errorMessage);

@@ -150,2 +150,2 @@ e.stack += trace;

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZnJhbWV3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQSw4Q0FBOEM7QUFDOUMsbUNBQW1DO0FBQ25DLHlDQUE0RDtBQUM1RCxpQ0FBcUM7QUFTckM7Ozs7Ozs7OztHQVNHO0FBQ0gsS0FBSyxVQUFVLE9BQU8sQ0FBQyxVQUF1RDtJQUM1RSxVQUFHLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFbEMsVUFBVSxDQUFDLGtCQUFrQixHQUFHLFVBQVUsQ0FBQyxrQkFBa0IsSUFBSSxFQUFHLENBQUM7SUFFckUsTUFBTSxhQUFhLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsOEJBQThCLEVBQUUsVUFBVSxDQUFvQixDQUFDO0lBQ3JILFVBQUcsQ0FBQyxtQkFBbUIsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUV4QyxvRkFBb0Y7SUFDcEYsaUNBQWlDO0lBQ2pDLE1BQU0sYUFBYSxHQUFHLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNyRSxVQUFHLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTdCLGlHQUFpRztJQUNqRyxtRkFBbUY7SUFDbkYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLEVBQUU7UUFDMUQsT0FBTyxNQUFNLFdBQVcsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0tBQ25FO0lBRUQsMkRBQTJEO0lBQzNELE1BQU0sTUFBTSxHQUFHO1FBQ2IsZUFBZSxFQUFFLGFBQU0sQ0FBQyxNQUFNLENBQUMsNEJBQTRCLENBQUM7UUFDNUQsSUFBSSxFQUFFLGFBQWEsQ0FBQyxTQUFTO1FBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztLQUNyQyxDQUFDO0lBRUYsVUFBRyxDQUFDLGlCQUFpQixFQUFF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QUVELDBEQUEwRDtJQUMxRCxPQUFPO1FBQ0wsR0FBRyxVQUFVO1FBQ2IsR0FBRyxhQUFhO1FBQ2hCLGtCQUFrQixFQUFFLGtCQUFrQjtLQUN2QyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQVMseUJBQXlCLENBQUMsR0FBZ0Q7SUFDakYsUUFBUSxHQUFHLENBQUMsV0FBVyxFQUFFO1FBQ3ZCLEtBQUssUUFBUTtZQUNYLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUV2QixLQUFLLFFBQVEsQ0FBQztRQUNkLEtBQUssUUFBUTtZQUNYLE9BQU8sR0FBRyxDQUFDLGtCQUFrQixDQUFDO1FBRWhDO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDaEY7QUFDSCxDQUFDO0FBMUtELGlCQUFTO0lBQ1AsQ0FBQyxNQUFNLENBQUMsK0JBQStCLENBQUMsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUMxRSxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO0lBQ2hGLENBQUMsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLEVBQUUsU0FBUztDQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6IG5vLWNvbnNvbGVcbi8vIHRzbGludDpkaXNhYmxlOiBtYXgtbGluZS1sZW5ndGhcbmltcG9ydCB7IElzQ29tcGxldGVSZXNwb25zZSwgT25FdmVudFJlc3BvbnNlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0ICogYXMgY2ZuUmVzcG9uc2UgZnJvbSAnLi9jZm4tcmVzcG9uc2UnO1xuaW1wb3J0ICogYXMgY29uc3RzIGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IGludm9rZUZ1bmN0aW9uLCBzdGFydEV4ZWN1dGlvbiB9IGZyb20gJy4vb3V0Ym91bmQnO1xuaW1wb3J0IHsgZ2V0RW52LCBsb2cgfSBmcm9tICcuL3V0aWwnO1xuXG4vLyB1c2UgY29uc3RzIGZvciBoYW5kbGVyIG5hbWVzIHRvIGNvbXBpbGVyLWVuZm9yY2UgdGhlIGNvdXBsaW5nIHdpdGggY29uc3RydWN0aW9uIGNvZGUuXG5leHBvcnQgPSB7XG4gIFtjb25zdHMuRlJBTUVXT1JLX09OX0VWRU5UX0hBTkRMRVJfTkFNRV06IGNmblJlc3BvbnNlLnNhZmVIYW5kbGVyKG9uRXZlbnQpLFxuICBbY29uc3RzLkZSQU1FV09SS19JU19DT01QTEVURV9IQU5ETEVSX05BTUVdOiBjZm5SZXNwb25zZS5zYWZlSGFuZGxlcihpc0NvbXBsZXRlKSxcbiAgW2NvbnN0cy5GUkFNRVdPUktfT05fVElNRU9VVF9IQU5ETEVSX05BTUVdOiBvblRpbWVvdXRcbn07XG5cbi8qKlxuICogVGhlIG1haW4gcnVudGltZSBlbnRyeXBvaW50IG9mIHRoZSBhc3luYyBjdXN0b20gcmVzb3VyY2UgbGFtYmRhIGZ1bmN0aW9uLlxuICpcbiAqIEFueSBsaWZlY3ljbGUgZXZlbnQgY2hhbmdlcyB0byB0aGUgY3VzdG9tIHJlc291cmNlcyB3aWxsIGludm9rZSB0aGlzIGhhbmRsZXIsIHdoaWNoIHdpbGwsIGluIHR1cm4sXG4gKiBpbnRlcmFjdCB3aXRoIHRoZSB1c2VyLWRlZmluZWQgYG9uRXZlbnRgIGFuZCBgaXNDb21wbGV0ZWAgaGFuZGxlcnMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiB3aWxsIGFsd2F5cyBzdWNjZWVkLiBJZiBhbiBlcnJvciBvY2N1cnNcbiAqXG4gKiBAcGFyYW0gY2ZuUmVxdWVzdCBUaGUgY2xvdWRmb3JtYXRpb24gY3VzdG9tIHJlc291cmNlIGV2ZW50LlxuICovXG5hc3luYyBmdW5jdGlvbiBvbkV2ZW50KGNmblJlcXVlc3Q6IEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlRXZlbnQpIHtcbiAgbG9nKCdvbkV2ZW50SGFuZGxlcicsIGNmblJlcXVlc3QpO1xuXG4gIGNmblJlcXVlc3QuUmVzb3VyY2VQcm9wZXJ0aWVzID0gY2ZuUmVxdWVzdC5SZXNvdXJjZVByb3BlcnRpZXMgfHwgeyB9O1xuXG4gIGNvbnN0IG9uRXZlbnRSZXN1bHQgPSBhd2FpdCBpbnZva2VVc2VyRnVuY3Rpb24oY29uc3RzLlVTRVJfT05fRVZFTlRfRlVOQ1RJT05fQVJOX0VOViwgY2ZuUmVxdWVzdCkgYXMgT25FdmVudFJlc3BvbnNlO1xuICBsb2coJ29uRXZlbnQgcmV0dXJuZWQ6Jywgb25FdmVudFJlc3VsdCk7XG5cbiAgLy8gbWVyZ2UgdGhlIHJlcXVlc3QgYW5kIHRoZSByZXN1bHQgZnJvbSBvbkV2ZW50IHRvIGZvcm0gdGhlIGNvbXBsZXRlIHJlc291cmNlIGV2ZW50XG4gIC8vIHRoaXMgYWxzbyBwZXJmb3JtcyB2YWxpZGF0aW9uLlxuICBjb25zdCByZXNvdXJjZUV2ZW50ID0gY3JlYXRlUmVzcG9uc2VFdmVudChjZm5SZXF1ZXN0LCBvbkV2ZW50UmVzdWx0KTtcbiAgbG9nKCdldmVudDonLCBvbkV2ZW50UmVzdWx0KTtcblxuICAvLyBkZXRlcm1pbmUgaWYgdGhpcyBpcyBhbiBhc3luYyBwcm92aWRlciBiYXNlZCBvbiB3aGV0aGVyIHdlIGhhdmUgYW4gaXNDb21wbGV0ZSBoYW5kbGVyIGRlZmluZWQuXG4gIC8vIGlmIGl0IGlzIG5vdCBkZWZpbmVkLCB0aGVuIHdlIGFyZSBiYXNpY2FsbHkgcmVhZHkgdG8gcmV0dXJuIGEgcG9zaXRpdmUgcmVzcG9uc2UuXG4gIGlmICghcHJvY2Vzcy5lbnZbY29uc3RzLlVTRVJfSVNfQ09NUExFVEVfRlVOQ1RJT05fQVJOX0VOVl0pIHtcbiAgICByZXR1cm4gYXdhaXQgY2ZuUmVzcG9uc2Uuc3VibWl0UmVzcG9uc2UoJ1NVQ0NFU1MnLCByZXNvdXJjZUV2ZW50KTtcbiAgfVxuXG4gIC8vIG9rLCB3ZSBhcmUgbm90IGNvbXBsZXRlLCBzbyBraWNrIG9mZiB0aGUgd2FpdGVyIHdvcmtmbG93XG4gIGNvbnN0IHdhaXRlciA9IHtcbiAgICBzdGF0ZU1hY2hpbmVBcm46IGdldEVudihjb25zdHMuV0FJVEVSX1NUQVRFX01BQ0hJTkVfQVJOX0VOViksXG4gICAgbmFtZTogcmVzb3VyY2VFdmVudC5SZXF1ZXN0SWQsXG4gICAgaW5wdXQ6IEpTT04uc3RyaW5naWZ5KHJlc291cmNlRXZlbnQpLFxuICB9O1xuXG4gIGxvZygnc3RhcnRpbmcgd2FpdGVyJywgd2FpdGVyKTtcblxuICAvLyBraWNrIG9mZiB3YWl0ZXIgc3RhdGUgbWFjaGluZVxuICBhd2FpdCBzdGFydEV4ZWN1dGlvbih3YWl0ZXIpO1xufVxuXG4vLyBpbnZva2VkIGEgZmV3IHRpbWVzIHVudGlsIGBjb21wbGV0ZWAgaXMgdHJ1ZSBvciB1bnRpbCBpdCB0aW1lcyBvdXQuXG5hc3luYyBmdW5jdGlvbiBpc0NvbXBsZXRlKGV2ZW50OiBBV1NDREtBc3luY0N1c3RvbVJlc291cmNlLklzQ29tcGxldGVSZXF1ZXN0KSB7XG4gIGxvZygnaXNDb21wbGV0ZScsIGV2ZW50KTtcblxuICBjb25zdCBpc0NvbXBsZXRlUmVzdWx0ID0gYXdhaXQgaW52b2tlVXNlckZ1bmN0aW9uKGNvbnN0cy5VU0VSX0lTX0NPTVBMRVRFX0ZVTkNUSU9OX0FSTl9FTlYsIGV2ZW50KSBhcyBJc0NvbXBsZXRlUmVzcG9uc2U7XG4gIGxvZygndXNlciBpc0NvbXBsZXRlIHJldHVybmVkOicsIGlzQ29tcGxldGVSZXN1bHQpO1xuXG4gIC8vIGlmIHdlIGFyZSBub3QgY29tcGxldGUsIHJlZXR1cm4gZmFsc2UsIGFuZCBkb24ndCBzZW5kIGEgcmVzcG9uc2UgYmFjay5cbiAgaWYgKCFpc0NvbXBsZXRlUmVzdWx0LklzQ29tcGxldGUpIHtcbiAgICBpZiAoaXNDb21wbGV0ZVJlc3VsdC5EYXRhICYmIE9iamVjdC5rZXlzKGlzQ29tcGxldGVSZXN1bHQuRGF0YSkubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBcIkRhdGFcIiBpcyBub3QgYWxsb3dlZCBpZiBcIklzQ29tcGxldGVcIiBpcyBcIkZhbHNlXCJgKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgY2ZuUmVzcG9uc2UuUmV0cnkoSlNPTi5zdHJpbmdpZnkoZXZlbnQpKTtcbiAgfVxuXG4gIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgIC4uLmV2ZW50LFxuICAgIERhdGE6IHtcbiAgICAgIC4uLmV2ZW50LkRhdGEsXG4gICAgICAuLi5pc0NvbXBsZXRlUmVzdWx0LkRhdGFcbiAgICB9XG4gIH07XG5cbiAgYXdhaXQgY2ZuUmVzcG9uc2Uuc3VibWl0UmVzcG9uc2UoJ1NVQ0NFU1MnLCByZXNwb25zZSk7XG59XG5cbi8vIGludm9rZWQgd2hlbiBjb21wbGV0aW9uIHJldHJpZXMgYXJlIGV4aGF1c2VkLlxuYXN5bmMgZnVuY3Rpb24gb25UaW1lb3V0KHRpbWVvdXRFdmVudDogYW55KSB7XG4gIGxvZygndGltZW91dEhhbmRsZXInLCB0aW1lb3V0RXZlbnQpO1xuXG4gIGNvbnN0IGlzQ29tcGxldGVSZXF1ZXN0ID0gSlNPTi5wYXJzZShKU09OLnBhcnNlKHRpbWVvdXRFdmVudC5DYXVzZSkuZXJyb3JNZXNzYWdlKSBhcyBBV1NDREtBc3luY0N1c3RvbVJlc291cmNlLklzQ29tcGxldGVSZXF1ZXN0O1xuICBhd2FpdCBjZm5SZXNwb25zZS5zdWJtaXRSZXNwb25zZSgnRkFJTEVEJywgaXNDb21wbGV0ZVJlcXVlc3QsIHtcbiAgICByZWFzb246ICdPcGVyYXRpb24gdGltZWQgb3V0J1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW52b2tlVXNlckZ1bmN0aW9uKGZ1bmN0aW9uQXJuRW52OiBzdHJpbmcsIHBheWxvYWQ6IGFueSkge1xuICBjb25zdCBmdW5jdGlvbkFybiA9IGdldEVudihmdW5jdGlvbkFybkVudik7XG4gIGxvZyhgZXhlY3V0aW5nIHVzZXIgZnVuY3Rpb24gJHtmdW5jdGlvbkFybn0gd2l0aCBwYXlsb2FkYCwgcGF5bG9hZCk7XG5cbiAgLy8gdHJhbnNpZW50IGVycm9ycyBzdWNoIGFzIHRpbWVvdXRzLCB0aHJvdHRsaW5nIGVycm9ycyAoNDI5KSwgYW5kIG90aGVyXG4gIC8vIGVycm9ycyB0aGF0IGFyZW4ndCBjYXVzZWQgYnkgYSBiYWQgcmVxdWVzdCAoNTAwIHNlcmllcykgYXJlIHJldHJpZWRcbiAgLy8gYXV0b21hdGljYWxseSBieSB0aGUgSmF2YVNjcmlwdCBTREsuXG4gIGNvbnN0IHJlc3AgPSBhd2FpdCBpbnZva2VGdW5jdGlvbih7XG4gICAgRnVuY3Rpb25OYW1lOiBmdW5jdGlvbkFybixcbiAgICBQYXlsb2FkOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKVxuICB9KTtcblxuICBsb2coJ3VzZXIgZnVuY3Rpb24gcmVzcG9uc2U6JywgcmVzcCwgdHlwZW9mKHJlc3ApKTtcblxuICBjb25zdCBqc29uUGF5bG9hZCA9IHBhcnNlSnNvblBheWxvYWQocmVzcC5QYXlsb2FkKTtcbiAgaWYgKHJlc3AuRnVuY3Rpb25FcnJvcikge1xuICAgIGxvZygndXNlciBmdW5jdGlvbiB0aHJldyBhbiBlcnJvcjonLCByZXNwLkZ1bmN0aW9uRXJyb3IpO1xuICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGpzb25QYXlsb2FkLmVycm9yTWVzc2FnZSB8fCAnZXJyb3InO1xuICAgIGNvbnN0IHRyYWNlID0ganNvblBheWxvYWQudHJhY2UgPyBgXFxuUmVtb3RlIGZ1bmN0aW9uIGVycm9yOiBgICsganNvblBheWxvYWQudHJhY2Uuam9pbignXFxuJykgOiAnJztcblxuICAgIGNvbnN0IGUgPSBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgICBlLnN0YWNrICs9IHRyYWNlO1xuICAgIHRocm93IGU7XG4gIH1cblxuICByZXR1cm4ganNvblBheWxvYWQ7XG59XG5cbmZ1bmN0aW9uIHBhcnNlSnNvblBheWxvYWQocGF5bG9hZDogYW55KTogYW55IHtcbiAgaWYgKCFwYXlsb2FkKSB7IHJldHVybiB7IH07IH1cbiAgY29uc3QgdGV4dCA9IHBheWxvYWQudG9TdHJpbmcoKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZSh0ZXh0KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgcmV0dXJuIHZhbHVlcyBmcm9tIHVzZXItaGFuZGxlcnMgbXVzdCBiZSBKU09OIG9iamVjdHMuIGdvdDogXCIke3RleHR9XCJgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVSZXNwb25zZUV2ZW50KGNmblJlcXVlc3Q6IEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlRXZlbnQsIG9uRXZlbnRSZXN1bHQ6IE9uRXZlbnRSZXNwb25zZSk6IEFXU0NES0FzeW5jQ3VzdG9tUmVzb3VyY2UuSXNDb21wbGV0ZVJlcXVlc3Qge1xuICAvL1xuICAvLyB2YWxpZGF0ZSB0aGF0IG9uRXZlbnRSZXN1bHQgYWx3YXlzIGluY2x1ZGVzIGEgUGh5c2ljYWxSZXNvdXJjZUlkXG5cbiAgb25FdmVudFJlc3VsdCA9IG9uRXZlbnRSZXN1bHQgfHwgeyB9O1xuXG4gIC8vIGlmIHBoeXNpY2FsIElEIGlzIG5vdCByZXR1cm5lZCwgd2UgaGF2ZSBzb21lIGRlZmF1bHRzIGZvciB5b3UgYmFzZWRcbiAgLy8gb24gdGhlIHJlcXVlc3QgdHlwZS5cbiAgY29uc3QgcGh5c2ljYWxSZXNvdXJjZUlkID0gb25FdmVudFJlc3VsdC5QaHlzaWNhbFJlc291cmNlSWQgfHwgZGVmYXVsdFBoeXNpY2FsUmVzb3VyY2VJZChjZm5SZXF1ZXN0KTtcblxuICAvLyBpZiB3ZSBhcmUgaW4gREVMRVRFIGFuZCBwaHlzaWNhbCBJRCB3YXMgY2hhbmdlZCwgaXQncyBhbiBlcnJvci5cbiAgaWYgKGNmblJlcXVlc3QuUmVxdWVzdFR5cGUgPT09ICdEZWxldGUnICYmIHBoeXNpY2FsUmVzb3VyY2VJZCAhPT0gY2ZuUmVxdWVzdC5QaHlzaWNhbFJlc291cmNlSWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYERFTEVURTogY2Fubm90IGNoYW5nZSB0aGUgcGh5c2ljYWwgcmVzb3VyY2UgSUQgZnJvbSBcIiR7Y2ZuUmVxdWVzdC5QaHlzaWNhbFJlc291cmNlSWR9XCIgdG8gXCIke29uRXZlbnRSZXN1bHQuUGh5c2ljYWxSZXNvdXJjZUlkfVwiIGR1cmluZyBkZWxldGlvbmApO1xuICB9XG5cbiAgLy8gaWYgd2UgYXJlIGluIFVQREFURSBhbmQgcGh5c2ljYWwgSUQgd2FzIGNoYW5nZWQsIGl0J3MgYSByZXBsYWNlbWVudCAoanVzdCBsb2cpXG4gIGlmIChjZm5SZXF1ZXN0LlJlcXVlc3RUeXBlID09PSAnVXBkYXRlJyAmJiBwaHlzaWNhbFJlc291cmNlSWQgIT09IGNmblJlcXVlc3QuUGh5c2ljYWxSZXNvdXJjZUlkKSB7XG4gICAgbG9nKGBVUERBVEU6IGNoYW5naW5nIHBoeXNpY2FsIHJlc291cmNlIElEIGZyb20gXCIke2NmblJlcXVlc3QuUGh5c2ljYWxSZXNvdXJjZUlkfVwiIHRvIFwiJHtvbkV2ZW50UmVzdWx0LlBoeXNpY2FsUmVzb3VyY2VJZH1cImApO1xuICB9XG5cbiAgLy8gbWVyZ2UgcmVxdWVzdCBldmVudCBhbmQgcmVzdWx0IGV2ZW50IChyZXN1bHQgcHJldmFpbHMpLlxuICByZXR1cm4ge1xuICAgIC4uLmNmblJlcXVlc3QsXG4gICAgLi4ub25FdmVudFJlc3VsdCxcbiAgICBQaHlzaWNhbFJlc291cmNlSWQ6IHBoeXNpY2FsUmVzb3VyY2VJZCxcbiAgfTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGVzIHRoZSBkZWZhdWx0IHBoeXNpY2FsIHJlc291cmNlIElEIGJhc2VkIGluIGNhc2UgdXNlciBoYW5kbGVyIGRpZFxuICogbm90IHJldHVybiBhIFBoeXNpY2FsUmVzb3VyY2VJZC5cbiAqXG4gKiBGb3IgXCJDUkVBVEVcIiwgaXQgdXNlcyB0aGUgUmVxdWVzdElkLlxuICogRm9yIFwiVVBEQVRFXCIgYW5kIFwiREVMRVRFXCIgYW5kIHJldHVybnMgdGhlIGN1cnJlbnQgUGh5c2ljYWxSZXNvdXJjZUlkICh0aGUgb25lIHByb3ZpZGVkIGluIGBldmVudGApLlxuICovXG5mdW5jdGlvbiBkZWZhdWx0UGh5c2ljYWxSZXNvdXJjZUlkKHJlcTogQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VFdmVudCk6IHN0cmluZyB7XG4gIHN3aXRjaCAocmVxLlJlcXVlc3RUeXBlKSB7XG4gICAgY2FzZSAnQ3JlYXRlJzpcbiAgICAgIHJldHVybiByZXEuUmVxdWVzdElkO1xuXG4gICAgY2FzZSAnVXBkYXRlJzpcbiAgICBjYXNlICdEZWxldGUnOlxuICAgICAgcmV0dXJuIHJlcS5QaHlzaWNhbFJlc291cmNlSWQ7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFwiUmVxdWVzdFR5cGVcIiBpbiByZXF1ZXN0IFwiJHtKU09OLnN0cmluZ2lmeShyZXEpfVwiYCk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZnJhbWV3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQSw4Q0FBOEM7QUFDOUMsbUNBQW1DO0FBQ25DLHlDQUE0RDtBQUM1RCxpQ0FBcUM7QUFTckM7Ozs7Ozs7OztHQVNHO0FBQ0gsS0FBSyxVQUFVLE9BQU8sQ0FBQyxVQUF1RDtJQUM1RSxVQUFHLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFbEMsVUFBVSxDQUFDLGtCQUFrQixHQUFHLFVBQVUsQ0FBQyxrQkFBa0IsSUFBSSxFQUFHLENBQUM7SUFFckUsTUFBTSxhQUFhLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsOEJBQThCLEVBQUUsVUFBVSxDQUFvQixDQUFDO0lBQ3JILFVBQUcsQ0FBQyxtQkFBbUIsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUV4QyxvRkFBb0Y7SUFDcEYsaUNBQWlDO0lBQ2pDLE1BQU0sYUFBYSxHQUFHLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNyRSxVQUFHLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTdCLGlHQUFpRztJQUNqRyxtRkFBbUY7SUFDbkYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLEVBQUU7UUFDMUQsT0FBTyxNQUFNLFdBQVcsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0tBQ25FO0lBRUQsMkRBQTJEO0lBQzNELE1BQU0sTUFBTSxHQUFHO1FBQ2IsZUFBZSxFQUFFLGFBQU0sQ0FBQyxNQUFNLENBQUMsNEJBQTRCLENBQUM7UUFDNUQsSUFBSSxFQUFFLGFBQWEsQ0FBQyxTQUFTO1FBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztLQUNyQyxDQUFDO0lBRUYsVUFBRyxDQUFDLGlCQUFpQixFQUFF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QUVELDBEQUEwRDtJQUMxRCxPQUFPO1FBQ0wsR0FBRyxVQUFVO1FBQ2IsR0FBRyxhQUFhO1FBQ2hCLGtCQUFrQixFQUFFLGtCQUFrQjtLQUN2QyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQVMseUJBQXlCLENBQUMsR0FBZ0Q7SUFDakYsUUFBUSxHQUFHLENBQUMsV0FBVyxFQUFFO1FBQ3ZCLEtBQUssUUFBUTtZQUNYLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUV2QixLQUFLLFFBQVEsQ0FBQztRQUNkLEtBQUssUUFBUTtZQUNYLE9BQU8sR0FBRyxDQUFDLGtCQUFrQixDQUFDO1FBRWhDO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDaEY7QUFDSCxDQUFDO0FBMUtELGlCQUFTO0lBQ1AsQ0FBQyxNQUFNLENBQUMsK0JBQStCLENBQUMsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUMxRSxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO0lBQ2hGLENBQUMsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLEVBQUUsU0FBUztDQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6IG5vLWNvbnNvbGVcbi8vIHRzbGludDpkaXNhYmxlOiBtYXgtbGluZS1sZW5ndGhcbmltcG9ydCB7IElzQ29tcGxldGVSZXNwb25zZSwgT25FdmVudFJlc3BvbnNlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0ICogYXMgY2ZuUmVzcG9uc2UgZnJvbSAnLi9jZm4tcmVzcG9uc2UnO1xuaW1wb3J0ICogYXMgY29uc3RzIGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IGludm9rZUZ1bmN0aW9uLCBzdGFydEV4ZWN1dGlvbiB9IGZyb20gJy4vb3V0Ym91bmQnO1xuaW1wb3J0IHsgZ2V0RW52LCBsb2cgfSBmcm9tICcuL3V0aWwnO1xuXG4vLyB1c2UgY29uc3RzIGZvciBoYW5kbGVyIG5hbWVzIHRvIGNvbXBpbGVyLWVuZm9yY2UgdGhlIGNvdXBsaW5nIHdpdGggY29uc3RydWN0aW9uIGNvZGUuXG5leHBvcnQgPSB7XG4gIFtjb25zdHMuRlJBTUVXT1JLX09OX0VWRU5UX0hBTkRMRVJfTkFNRV06IGNmblJlc3BvbnNlLnNhZmVIYW5kbGVyKG9uRXZlbnQpLFxuICBbY29uc3RzLkZSQU1FV09SS19JU19DT01QTEVURV9IQU5ETEVSX05BTUVdOiBjZm5SZXNwb25zZS5zYWZlSGFuZGxlcihpc0NvbXBsZXRlKSxcbiAgW2NvbnN0cy5GUkFNRVdPUktfT05fVElNRU9VVF9IQU5ETEVSX05BTUVdOiBvblRpbWVvdXRcbn07XG5cbi8qKlxuICogVGhlIG1haW4gcnVudGltZSBlbnRyeXBvaW50IG9mIHRoZSBhc3luYyBjdXN0b20gcmVzb3VyY2UgbGFtYmRhIGZ1bmN0aW9uLlxuICpcbiAqIEFueSBsaWZlY3ljbGUgZXZlbnQgY2hhbmdlcyB0byB0aGUgY3VzdG9tIHJlc291cmNlcyB3aWxsIGludm9rZSB0aGlzIGhhbmRsZXIsIHdoaWNoIHdpbGwsIGluIHR1cm4sXG4gKiBpbnRlcmFjdCB3aXRoIHRoZSB1c2VyLWRlZmluZWQgYG9uRXZlbnRgIGFuZCBgaXNDb21wbGV0ZWAgaGFuZGxlcnMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiB3aWxsIGFsd2F5cyBzdWNjZWVkLiBJZiBhbiBlcnJvciBvY2N1cnNcbiAqXG4gKiBAcGFyYW0gY2ZuUmVxdWVzdCBUaGUgY2xvdWRmb3JtYXRpb24gY3VzdG9tIHJlc291cmNlIGV2ZW50LlxuICovXG5hc3luYyBmdW5jdGlvbiBvbkV2ZW50KGNmblJlcXVlc3Q6IEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlRXZlbnQpIHtcbiAgbG9nKCdvbkV2ZW50SGFuZGxlcicsIGNmblJlcXVlc3QpO1xuXG4gIGNmblJlcXVlc3QuUmVzb3VyY2VQcm9wZXJ0aWVzID0gY2ZuUmVxdWVzdC5SZXNvdXJjZVByb3BlcnRpZXMgfHwgeyB9O1xuXG4gIGNvbnN0IG9uRXZlbnRSZXN1bHQgPSBhd2FpdCBpbnZva2VVc2VyRnVuY3Rpb24oY29uc3RzLlVTRVJfT05fRVZFTlRfRlVOQ1RJT05fQVJOX0VOViwgY2ZuUmVxdWVzdCkgYXMgT25FdmVudFJlc3BvbnNlO1xuICBsb2coJ29uRXZlbnQgcmV0dXJuZWQ6Jywgb25FdmVudFJlc3VsdCk7XG5cbiAgLy8gbWVyZ2UgdGhlIHJlcXVlc3QgYW5kIHRoZSByZXN1bHQgZnJvbSBvbkV2ZW50IHRvIGZvcm0gdGhlIGNvbXBsZXRlIHJlc291cmNlIGV2ZW50XG4gIC8vIHRoaXMgYWxzbyBwZXJmb3JtcyB2YWxpZGF0aW9uLlxuICBjb25zdCByZXNvdXJjZUV2ZW50ID0gY3JlYXRlUmVzcG9uc2VFdmVudChjZm5SZXF1ZXN0LCBvbkV2ZW50UmVzdWx0KTtcbiAgbG9nKCdldmVudDonLCBvbkV2ZW50UmVzdWx0KTtcblxuICAvLyBkZXRlcm1pbmUgaWYgdGhpcyBpcyBhbiBhc3luYyBwcm92aWRlciBiYXNlZCBvbiB3aGV0aGVyIHdlIGhhdmUgYW4gaXNDb21wbGV0ZSBoYW5kbGVyIGRlZmluZWQuXG4gIC8vIGlmIGl0IGlzIG5vdCBkZWZpbmVkLCB0aGVuIHdlIGFyZSBiYXNpY2FsbHkgcmVhZHkgdG8gcmV0dXJuIGEgcG9zaXRpdmUgcmVzcG9uc2UuXG4gIGlmICghcHJvY2Vzcy5lbnZbY29uc3RzLlVTRVJfSVNfQ09NUExFVEVfRlVOQ1RJT05fQVJOX0VOVl0pIHtcbiAgICByZXR1cm4gYXdhaXQgY2ZuUmVzcG9uc2Uuc3VibWl0UmVzcG9uc2UoJ1NVQ0NFU1MnLCByZXNvdXJjZUV2ZW50KTtcbiAgfVxuXG4gIC8vIG9rLCB3ZSBhcmUgbm90IGNvbXBsZXRlLCBzbyBraWNrIG9mZiB0aGUgd2FpdGVyIHdvcmtmbG93XG4gIGNvbnN0IHdhaXRlciA9IHtcbiAgICBzdGF0ZU1hY2hpbmVBcm46IGdldEVudihjb25zdHMuV0FJVEVSX1NUQVRFX01BQ0hJTkVfQVJOX0VOViksXG4gICAgbmFtZTogcmVzb3VyY2VFdmVudC5SZXF1ZXN0SWQsXG4gICAgaW5wdXQ6IEpTT04uc3RyaW5naWZ5KHJlc291cmNlRXZlbnQpLFxuICB9O1xuXG4gIGxvZygnc3RhcnRpbmcgd2FpdGVyJywgd2FpdGVyKTtcblxuICAvLyBraWNrIG9mZiB3YWl0ZXIgc3RhdGUgbWFjaGluZVxuICBhd2FpdCBzdGFydEV4ZWN1dGlvbih3YWl0ZXIpO1xufVxuXG4vLyBpbnZva2VkIGEgZmV3IHRpbWVzIHVudGlsIGBjb21wbGV0ZWAgaXMgdHJ1ZSBvciB1bnRpbCBpdCB0aW1lcyBvdXQuXG5hc3luYyBmdW5jdGlvbiBpc0NvbXBsZXRlKGV2ZW50OiBBV1NDREtBc3luY0N1c3RvbVJlc291cmNlLklzQ29tcGxldGVSZXF1ZXN0KSB7XG4gIGxvZygnaXNDb21wbGV0ZScsIGV2ZW50KTtcblxuICBjb25zdCBpc0NvbXBsZXRlUmVzdWx0ID0gYXdhaXQgaW52b2tlVXNlckZ1bmN0aW9uKGNvbnN0cy5VU0VSX0lTX0NPTVBMRVRFX0ZVTkNUSU9OX0FSTl9FTlYsIGV2ZW50KSBhcyBJc0NvbXBsZXRlUmVzcG9uc2U7XG4gIGxvZygndXNlciBpc0NvbXBsZXRlIHJldHVybmVkOicsIGlzQ29tcGxldGVSZXN1bHQpO1xuXG4gIC8vIGlmIHdlIGFyZSBub3QgY29tcGxldGUsIHJlZXR1cm4gZmFsc2UsIGFuZCBkb24ndCBzZW5kIGEgcmVzcG9uc2UgYmFjay5cbiAgaWYgKCFpc0NvbXBsZXRlUmVzdWx0LklzQ29tcGxldGUpIHtcbiAgICBpZiAoaXNDb21wbGV0ZVJlc3VsdC5EYXRhICYmIE9iamVjdC5rZXlzKGlzQ29tcGxldGVSZXN1bHQuRGF0YSkubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdcIkRhdGFcIiBpcyBub3QgYWxsb3dlZCBpZiBcIklzQ29tcGxldGVcIiBpcyBcIkZhbHNlXCInKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgY2ZuUmVzcG9uc2UuUmV0cnkoSlNPTi5zdHJpbmdpZnkoZXZlbnQpKTtcbiAgfVxuXG4gIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgIC4uLmV2ZW50LFxuICAgIERhdGE6IHtcbiAgICAgIC4uLmV2ZW50LkRhdGEsXG4gICAgICAuLi5pc0NvbXBsZXRlUmVzdWx0LkRhdGFcbiAgICB9XG4gIH07XG5cbiAgYXdhaXQgY2ZuUmVzcG9uc2Uuc3VibWl0UmVzcG9uc2UoJ1NVQ0NFU1MnLCByZXNwb25zZSk7XG59XG5cbi8vIGludm9rZWQgd2hlbiBjb21wbGV0aW9uIHJldHJpZXMgYXJlIGV4aGF1c2VkLlxuYXN5bmMgZnVuY3Rpb24gb25UaW1lb3V0KHRpbWVvdXRFdmVudDogYW55KSB7XG4gIGxvZygndGltZW91dEhhbmRsZXInLCB0aW1lb3V0RXZlbnQpO1xuXG4gIGNvbnN0IGlzQ29tcGxldGVSZXF1ZXN0ID0gSlNPTi5wYXJzZShKU09OLnBhcnNlKHRpbWVvdXRFdmVudC5DYXVzZSkuZXJyb3JNZXNzYWdlKSBhcyBBV1NDREtBc3luY0N1c3RvbVJlc291cmNlLklzQ29tcGxldGVSZXF1ZXN0O1xuICBhd2FpdCBjZm5SZXNwb25zZS5zdWJtaXRSZXNwb25zZSgnRkFJTEVEJywgaXNDb21wbGV0ZVJlcXVlc3QsIHtcbiAgICByZWFzb246ICdPcGVyYXRpb24gdGltZWQgb3V0J1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW52b2tlVXNlckZ1bmN0aW9uKGZ1bmN0aW9uQXJuRW52OiBzdHJpbmcsIHBheWxvYWQ6IGFueSkge1xuICBjb25zdCBmdW5jdGlvbkFybiA9IGdldEVudihmdW5jdGlvbkFybkVudik7XG4gIGxvZyhgZXhlY3V0aW5nIHVzZXIgZnVuY3Rpb24gJHtmdW5jdGlvbkFybn0gd2l0aCBwYXlsb2FkYCwgcGF5bG9hZCk7XG5cbiAgLy8gdHJhbnNpZW50IGVycm9ycyBzdWNoIGFzIHRpbWVvdXRzLCB0aHJvdHRsaW5nIGVycm9ycyAoNDI5KSwgYW5kIG90aGVyXG4gIC8vIGVycm9ycyB0aGF0IGFyZW4ndCBjYXVzZWQgYnkgYSBiYWQgcmVxdWVzdCAoNTAwIHNlcmllcykgYXJlIHJldHJpZWRcbiAgLy8gYXV0b21hdGljYWxseSBieSB0aGUgSmF2YVNjcmlwdCBTREsuXG4gIGNvbnN0IHJlc3AgPSBhd2FpdCBpbnZva2VGdW5jdGlvbih7XG4gICAgRnVuY3Rpb25OYW1lOiBmdW5jdGlvbkFybixcbiAgICBQYXlsb2FkOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKVxuICB9KTtcblxuICBsb2coJ3VzZXIgZnVuY3Rpb24gcmVzcG9uc2U6JywgcmVzcCwgdHlwZW9mKHJlc3ApKTtcblxuICBjb25zdCBqc29uUGF5bG9hZCA9IHBhcnNlSnNvblBheWxvYWQocmVzcC5QYXlsb2FkKTtcbiAgaWYgKHJlc3AuRnVuY3Rpb25FcnJvcikge1xuICAgIGxvZygndXNlciBmdW5jdGlvbiB0aHJldyBhbiBlcnJvcjonLCByZXNwLkZ1bmN0aW9uRXJyb3IpO1xuICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGpzb25QYXlsb2FkLmVycm9yTWVzc2FnZSB8fCAnZXJyb3InO1xuICAgIGNvbnN0IHRyYWNlID0ganNvblBheWxvYWQudHJhY2UgPyAnXFxuUmVtb3RlIGZ1bmN0aW9uIGVycm9yOiAnICsganNvblBheWxvYWQudHJhY2Uuam9pbignXFxuJykgOiAnJztcblxuICAgIGNvbnN0IGUgPSBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgICBlLnN0YWNrICs9IHRyYWNlO1xuICAgIHRocm93IGU7XG4gIH1cblxuICByZXR1cm4ganNvblBheWxvYWQ7XG59XG5cbmZ1bmN0aW9uIHBhcnNlSnNvblBheWxvYWQocGF5bG9hZDogYW55KTogYW55IHtcbiAgaWYgKCFwYXlsb2FkKSB7IHJldHVybiB7IH07IH1cbiAgY29uc3QgdGV4dCA9IHBheWxvYWQudG9TdHJpbmcoKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZSh0ZXh0KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgcmV0dXJuIHZhbHVlcyBmcm9tIHVzZXItaGFuZGxlcnMgbXVzdCBiZSBKU09OIG9iamVjdHMuIGdvdDogXCIke3RleHR9XCJgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVSZXNwb25zZUV2ZW50KGNmblJlcXVlc3Q6IEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlRXZlbnQsIG9uRXZlbnRSZXN1bHQ6IE9uRXZlbnRSZXNwb25zZSk6IEFXU0NES0FzeW5jQ3VzdG9tUmVzb3VyY2UuSXNDb21wbGV0ZVJlcXVlc3Qge1xuICAvL1xuICAvLyB2YWxpZGF0ZSB0aGF0IG9uRXZlbnRSZXN1bHQgYWx3YXlzIGluY2x1ZGVzIGEgUGh5c2ljYWxSZXNvdXJjZUlkXG5cbiAgb25FdmVudFJlc3VsdCA9IG9uRXZlbnRSZXN1bHQgfHwgeyB9O1xuXG4gIC8vIGlmIHBoeXNpY2FsIElEIGlzIG5vdCByZXR1cm5lZCwgd2UgaGF2ZSBzb21lIGRlZmF1bHRzIGZvciB5b3UgYmFzZWRcbiAgLy8gb24gdGhlIHJlcXVlc3QgdHlwZS5cbiAgY29uc3QgcGh5c2ljYWxSZXNvdXJjZUlkID0gb25FdmVudFJlc3VsdC5QaHlzaWNhbFJlc291cmNlSWQgfHwgZGVmYXVsdFBoeXNpY2FsUmVzb3VyY2VJZChjZm5SZXF1ZXN0KTtcblxuICAvLyBpZiB3ZSBhcmUgaW4gREVMRVRFIGFuZCBwaHlzaWNhbCBJRCB3YXMgY2hhbmdlZCwgaXQncyBhbiBlcnJvci5cbiAgaWYgKGNmblJlcXVlc3QuUmVxdWVzdFR5cGUgPT09ICdEZWxldGUnICYmIHBoeXNpY2FsUmVzb3VyY2VJZCAhPT0gY2ZuUmVxdWVzdC5QaHlzaWNhbFJlc291cmNlSWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYERFTEVURTogY2Fubm90IGNoYW5nZSB0aGUgcGh5c2ljYWwgcmVzb3VyY2UgSUQgZnJvbSBcIiR7Y2ZuUmVxdWVzdC5QaHlzaWNhbFJlc291cmNlSWR9XCIgdG8gXCIke29uRXZlbnRSZXN1bHQuUGh5c2ljYWxSZXNvdXJjZUlkfVwiIGR1cmluZyBkZWxldGlvbmApO1xuICB9XG5cbiAgLy8gaWYgd2UgYXJlIGluIFVQREFURSBhbmQgcGh5c2ljYWwgSUQgd2FzIGNoYW5nZWQsIGl0J3MgYSByZXBsYWNlbWVudCAoanVzdCBsb2cpXG4gIGlmIChjZm5SZXF1ZXN0LlJlcXVlc3RUeXBlID09PSAnVXBkYXRlJyAmJiBwaHlzaWNhbFJlc291cmNlSWQgIT09IGNmblJlcXVlc3QuUGh5c2ljYWxSZXNvdXJjZUlkKSB7XG4gICAgbG9nKGBVUERBVEU6IGNoYW5naW5nIHBoeXNpY2FsIHJlc291cmNlIElEIGZyb20gXCIke2NmblJlcXVlc3QuUGh5c2ljYWxSZXNvdXJjZUlkfVwiIHRvIFwiJHtvbkV2ZW50UmVzdWx0LlBoeXNpY2FsUmVzb3VyY2VJZH1cImApO1xuICB9XG5cbiAgLy8gbWVyZ2UgcmVxdWVzdCBldmVudCBhbmQgcmVzdWx0IGV2ZW50IChyZXN1bHQgcHJldmFpbHMpLlxuICByZXR1cm4ge1xuICAgIC4uLmNmblJlcXVlc3QsXG4gICAgLi4ub25FdmVudFJlc3VsdCxcbiAgICBQaHlzaWNhbFJlc291cmNlSWQ6IHBoeXNpY2FsUmVzb3VyY2VJZCxcbiAgfTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGVzIHRoZSBkZWZhdWx0IHBoeXNpY2FsIHJlc291cmNlIElEIGJhc2VkIGluIGNhc2UgdXNlciBoYW5kbGVyIGRpZFxuICogbm90IHJldHVybiBhIFBoeXNpY2FsUmVzb3VyY2VJZC5cbiAqXG4gKiBGb3IgXCJDUkVBVEVcIiwgaXQgdXNlcyB0aGUgUmVxdWVzdElkLlxuICogRm9yIFwiVVBEQVRFXCIgYW5kIFwiREVMRVRFXCIgYW5kIHJldHVybnMgdGhlIGN1cnJlbnQgUGh5c2ljYWxSZXNvdXJjZUlkICh0aGUgb25lIHByb3ZpZGVkIGluIGBldmVudGApLlxuICovXG5mdW5jdGlvbiBkZWZhdWx0UGh5c2ljYWxSZXNvdXJjZUlkKHJlcTogQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VFdmVudCk6IHN0cmluZyB7XG4gIHN3aXRjaCAocmVxLlJlcXVlc3RUeXBlKSB7XG4gICAgY2FzZSAnQ3JlYXRlJzpcbiAgICAgIHJldHVybiByZXEuUmVxdWVzdElkO1xuXG4gICAgY2FzZSAnVXBkYXRlJzpcbiAgICBjYXNlICdEZWxldGUnOlxuICAgICAgcmV0dXJuIHJlcS5QaHlzaWNhbFJlc291cmNlSWQ7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFwiUmVxdWVzdFR5cGVcIiBpbiByZXF1ZXN0IFwiJHtKU09OLnN0cmluZ2lmeShyZXEpfVwiYCk7XG4gIH1cbn1cbiJdfQ==
{
"name": "@aws-cdk/custom-resources",
"version": "1.31.0",
"version": "1.32.0",
"description": "Constructs for implementing CDK custom resources",

@@ -69,28 +69,28 @@ "main": "lib/index.js",

"devDependencies": {
"@aws-cdk/assert": "1.31.0",
"@aws-cdk/aws-events": "1.31.0",
"@aws-cdk/aws-s3": "1.31.0",
"@aws-cdk/aws-ssm": "1.31.0",
"@aws-cdk/assert": "1.32.0",
"@aws-cdk/aws-events": "1.32.0",
"@aws-cdk/aws-s3": "1.32.0",
"@aws-cdk/aws-ssm": "1.32.0",
"@types/aws-lambda": "^8.10.39",
"@types/fs-extra": "^8.1.0",
"@types/sinon": "^7.5.2",
"aws-sdk": "^2.644.0",
"@types/sinon": "^9.0.0",
"aws-sdk": "^2.654.0",
"aws-sdk-mock": "^5.1.0",
"cdk-build-tools": "1.31.0",
"cdk-integ-tools": "1.31.0",
"cfn2ts": "1.31.0",
"cdk-build-tools": "1.32.0",
"cdk-integ-tools": "1.32.0",
"cfn2ts": "1.32.0",
"fs-extra": "^8.1.0",
"nock": "^12.0.3",
"pkglint": "1.31.0",
"pkglint": "1.32.0",
"sinon": "^9.0.1"
},
"dependencies": {
"@aws-cdk/aws-cloudformation": "1.31.0",
"@aws-cdk/aws-iam": "1.31.0",
"@aws-cdk/aws-lambda": "1.31.0",
"@aws-cdk/aws-logs": "1.31.0",
"@aws-cdk/aws-sns": "1.31.0",
"@aws-cdk/aws-stepfunctions": "1.31.0",
"@aws-cdk/aws-stepfunctions-tasks": "1.31.0",
"@aws-cdk/core": "1.31.0",
"@aws-cdk/aws-cloudformation": "1.32.0",
"@aws-cdk/aws-iam": "1.32.0",
"@aws-cdk/aws-lambda": "1.32.0",
"@aws-cdk/aws-logs": "1.32.0",
"@aws-cdk/aws-sns": "1.32.0",
"@aws-cdk/aws-stepfunctions": "1.32.0",
"@aws-cdk/aws-stepfunctions-tasks": "1.32.0",
"@aws-cdk/core": "1.32.0",
"constructs": "^2.0.0"

@@ -100,10 +100,10 @@ },

"peerDependencies": {
"@aws-cdk/aws-cloudformation": "1.31.0",
"@aws-cdk/aws-iam": "1.31.0",
"@aws-cdk/aws-lambda": "1.31.0",
"@aws-cdk/aws-logs": "1.31.0",
"@aws-cdk/aws-sns": "1.31.0",
"@aws-cdk/aws-stepfunctions": "1.31.0",
"@aws-cdk/aws-stepfunctions-tasks": "1.31.0",
"@aws-cdk/core": "1.31.0",
"@aws-cdk/aws-cloudformation": "1.32.0",
"@aws-cdk/aws-iam": "1.32.0",
"@aws-cdk/aws-lambda": "1.32.0",
"@aws-cdk/aws-logs": "1.32.0",
"@aws-cdk/aws-sns": "1.32.0",
"@aws-cdk/aws-stepfunctions": "1.32.0",
"@aws-cdk/aws-stepfunctions-tasks": "1.32.0",
"@aws-cdk/core": "1.32.0",
"constructs": "^2.0.0"

@@ -110,0 +110,0 @@ },

@@ -35,18 +35,18 @@ "use strict";

expect(stack).toHaveResource('Custom::LogRetentionPolicy', {
"Create": {
"service": "CloudWatchLogs",
"action": "putRetentionPolicy",
"parameters": {
"logGroupName": "/aws/lambda/loggroup",
"retentionInDays": 90
'Create': {
'service': 'CloudWatchLogs',
'action': 'putRetentionPolicy',
'parameters': {
'logGroupName': '/aws/lambda/loggroup',
'retentionInDays': 90
},
"physicalResourceId": {
"id": "loggroup"
'physicalResourceId': {
'id': 'loggroup'
}
},
"Delete": {
"service": "CloudWatchLogs",
"action": "deleteRetentionPolicy",
"parameters": {
"logGroupName": "/aws/lambda/loggroup"
'Delete': {
'service': 'CloudWatchLogs',
'action': 'deleteRetentionPolicy',
'parameters': {
'logGroupName': '/aws/lambda/loggroup'
}

@@ -56,16 +56,16 @@ }

expect(stack).toHaveResource('AWS::IAM::Policy', {
"PolicyDocument": {
"Statement": [
'PolicyDocument': {
'Statement': [
{
"Action": "logs:PutRetentionPolicy",
"Effect": "Allow",
"Resource": "*"
'Action': 'logs:PutRetentionPolicy',
'Effect': 'Allow',
'Resource': '*'
},
{
"Action": "logs:DeleteRetentionPolicy",
"Effect": "Allow",
"Resource": "*"
'Action': 'logs:DeleteRetentionPolicy',
'Effect': 'Allow',
'Resource': '*'
}
],
"Version": "2012-10-17"
'Version': '2012-10-17'
},

@@ -94,24 +94,24 @@ });

expect(stack).toHaveResource('Custom::S3PutObject', {
"Create": {
"service": "s3",
"action": "putObject",
"parameters": {
"Bucket": "my-bucket",
"Key": "my-key",
"Body": "my-body"
'Create': {
'service': 's3',
'action': 'putObject',
'parameters': {
'Bucket': 'my-bucket',
'Key': 'my-key',
'Body': 'my-body'
},
"physicalResourceId": {
"responsePath": "ETag"
'physicalResourceId': {
'responsePath': 'ETag'
}
},
"Update": {
"service": "s3",
"action": "putObject",
"parameters": {
"Bucket": "my-bucket",
"Key": "my-key",
"Body": "my-body"
'Update': {
'service': 's3',
'action': 'putObject',
'parameters': {
'Bucket': 'my-bucket',
'Key': 'my-key',
'Body': 'my-body'
},
"physicalResourceId": {
"responsePath": "ETag"
'physicalResourceId': {
'responsePath': 'ETag'
}

@@ -145,11 +145,11 @@ },

expect(stack).toHaveResource('AWS::IAM::Policy', {
"PolicyDocument": {
"Statement": [
'PolicyDocument': {
'Statement': [
{
"Action": "s3:PutObject",
"Effect": "Allow",
"Resource": "arn:aws:s3:::my-bucket/my-key"
'Action': 's3:PutObject',
'Effect': 'Allow',
'Resource': 'arn:aws:s3:::my-bucket/my-key'
},
],
"Version": "2012-10-17"
'Version': '2012-10-17'
},

@@ -199,13 +199,13 @@ });

expect(stack).toHaveResource('Custom::ServiceAction', {
"Create": {
"service": "service",
"action": "action",
"parameters": {
"trueBoolean": "TRUE:BOOLEAN",
"trueString": "true",
"falseBoolean": "FALSE:BOOLEAN",
"falseString": "false"
'Create': {
'service': 'service',
'action': 'action',
'parameters': {
'trueBoolean': 'TRUE:BOOLEAN',
'trueString': 'true',
'falseBoolean': 'FALSE:BOOLEAN',
'falseString': 'false'
},
"physicalResourceId": {
"id": "id"
'physicalResourceId': {
'id': 'id'
}

@@ -340,8 +340,8 @@ },

},
ignoreErrorCodesMatching: ".*",
physicalResourceId: lib_1.PhysicalResourceId.of("Id")
ignoreErrorCodesMatching: '.*',
physicalResourceId: lib_1.PhysicalResourceId.of('Id')
},
policy: lib_1.AwsCustomResourcePolicy.fromSdkCalls({ resources: lib_1.AwsCustomResourcePolicy.ANY_RESOURCE }),
});
expect(() => resource.getResponseFieldReference("ShouldFail")).toThrow(/`getData`.+`ignoreErrorCodesMatching`/);
expect(() => resource.getResponseFieldReference('ShouldFail')).toThrow(/`getData`.+`ignoreErrorCodesMatching`/);
});

@@ -358,8 +358,8 @@ test('fails when getDataString is used with `ignoreErrorCodesMatching`', () => {

},
ignoreErrorCodesMatching: ".*",
physicalResourceId: lib_1.PhysicalResourceId.of("Id"),
ignoreErrorCodesMatching: '.*',
physicalResourceId: lib_1.PhysicalResourceId.of('Id'),
},
policy: lib_1.AwsCustomResourcePolicy.fromSdkCalls({ resources: lib_1.AwsCustomResourcePolicy.ANY_RESOURCE }),
});
expect(() => resource.getResponseField("ShouldFail")).toThrow(/`getDataString`.+`ignoreErrorCodesMatching`/);
expect(() => resource.getResponseField('ShouldFail')).toThrow(/`getDataString`.+`ignoreErrorCodesMatching`/);
});

@@ -376,4 +376,4 @@ test('fail when `PhysicalResourceId.fromResponse` is used with `ignoreErrorCodesMatching', () => {

},
ignoreErrorCodesMatching: ".*",
physicalResourceId: lib_1.PhysicalResourceId.fromResponse("Response")
ignoreErrorCodesMatching: '.*',
physicalResourceId: lib_1.PhysicalResourceId.fromResponse('Response')
},

@@ -390,4 +390,4 @@ policy: lib_1.AwsCustomResourcePolicy.fromSdkCalls({ resources: lib_1.AwsCustomResourcePolicy.ANY_RESOURCE }),

},
ignoreErrorCodesMatching: ".*",
physicalResourceId: lib_1.PhysicalResourceId.fromResponse("Response")
ignoreErrorCodesMatching: '.*',
physicalResourceId: lib_1.PhysicalResourceId.fromResponse('Response')
},

@@ -404,4 +404,4 @@ policy: lib_1.AwsCustomResourcePolicy.fromSdkCalls({ resources: lib_1.AwsCustomResourcePolicy.ANY_RESOURCE }),

},
ignoreErrorCodesMatching: ".*",
physicalResourceId: lib_1.PhysicalResourceId.fromResponse("Response")
ignoreErrorCodesMatching: '.*',
physicalResourceId: lib_1.PhysicalResourceId.fromResponse('Response')
},

@@ -448,3 +448,3 @@ policy: lib_1.AwsCustomResourcePolicy.fromSdkCalls({ resources: lib_1.AwsCustomResourcePolicy.ANY_RESOURCE }),

physicalResourceId: {
"id": 'id'
'id': 'id'
}

@@ -483,2 +483,2 @@ }

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWN1c3RvbS1yZXNvdXJjZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWN1c3RvbS1yZXNvdXJjZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0NBQThCO0FBQzlCLHdDQUF3QztBQUN4QywwQ0FBMEM7QUFDMUMscUNBQXFDO0FBQ3JDLG1DQUEyRjtBQUUzRiwyQ0FBMkM7QUFFM0MsSUFBSSxDQUFDLHVEQUF1RCxFQUFFLEdBQUcsRUFBRTtJQUMvRCxRQUFRO0lBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFOUIsT0FBTztJQUNQLElBQUksdUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtRQUNyQyxZQUFZLEVBQUUsNEJBQTRCO1FBQzFDLFFBQVEsRUFBRTtZQUNSLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixVQUFVLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFLHNCQUFzQjtnQkFDcEMsZUFBZSxFQUFFLEVBQUU7YUFDcEI7WUFDRCxrQkFBa0IsRUFBRSx3QkFBa0IsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDO1NBQ3REO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixNQUFNLEVBQUUsdUJBQXVCO1lBQy9CLFVBQVUsRUFBRTtnQkFDVixZQUFZLEVBQUUsc0JBQXNCO2FBQ3JDO1NBQ0Y7UUFDRCxNQUFNLEVBQUUsNkJBQXVCLENBQUMsWUFBWSxDQUFDLEVBQUMsU0FBUyxFQUFFLDZCQUF1QixDQUFDLFlBQVksRUFBQyxDQUFDO0tBQ2hHLENBQUMsQ0FBQztJQUVILE9BQU87SUFDUCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLDRCQUE0QixFQUFFO1FBQ3pELFFBQVEsRUFBRTtZQUNSLFNBQVMsRUFBRSxnQkFBZ0I7WUFDM0IsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixZQUFZLEVBQUU7Z0JBQ1osY0FBYyxFQUFFLHNCQUFzQjtnQkFDdEMsaUJBQWlCLEVBQUUsRUFBRTthQUN0QjtZQUNELG9CQUFvQixFQUFFO2dCQUNwQixJQUFJLEVBQUUsVUFBVTthQUNqQjtTQUNGO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsU0FBUyxFQUFFLGdCQUFnQjtZQUMzQixRQUFRLEVBQUUsdUJBQXVCO1lBQ2pDLFlBQVksRUFBRTtnQkFDWixjQUFjLEVBQUUsc0JBQXNCO2FBQ3ZDO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLGtCQUFrQixFQUFFO1FBQ2pELGdCQUFnQixFQUFFO1lBQ2hCLFdBQVcsRUFBRTtnQkFDWDtvQkFDRSxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxRQUFRLEVBQUUsT0FBTztvQkFDakIsVUFBVSxFQUFFLEdBQUc7aUJBQ2hCO2dCQUNEO29CQUNFLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFFBQVEsRUFBRSxPQUFPO29CQUNqQixVQUFVLEVBQUUsR0FBRztpQkFDaEI7YUFDRjtZQUNELFNBQVMsRUFBRSxZQUFZO1NBQ3hCO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsK0JBQStCLEVBQUUsR0FBRyxFQUFFO0lBQ3pDLFFBQVE7SUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUU5QixPQUFPO0lBQ1AsSUFBSSx1QkFBaUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFO1FBQ3JDLFlBQVksRUFBRSxxQkFBcUI7UUFDbkMsUUFBUSxFQUFFO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixNQUFNLEVBQUUsV0FBVztZQUNuQixVQUFVLEVBQUU7Z0JBQ1YsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLEdBQUcsRUFBRSxRQUFRO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Qsa0JBQWtCLEVBQUUsd0JBQWtCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztTQUM1RDtRQUNELE1BQU0sRUFBRSw2QkFBdUIsQ0FBQyxZQUFZLENBQUMsRUFBQyxTQUFTLEVBQUUsNkJBQXVCLENBQUMsWUFBWSxFQUFDLENBQUM7S0FDaEcsQ0FBQyxDQUFDO0lBRUgsT0FBTztJQUNQLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMscUJBQXFCLEVBQUU7UUFDbEQsUUFBUSxFQUFFO1lBQ1IsU0FBUyxFQUFFLElBQUk7WUFDZixRQUFRLEVBQUUsV0FBVztZQUNyQixZQUFZLEVBQUU7Z0JBQ1osUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLEtBQUssRUFBRSxRQUFRO2dCQUNmLE1BQU0sRUFBRSxTQUFTO2FBQ2xCO1lBQ0Qsb0JBQW9CLEVBQUU7Z0JBQ3BCLGNBQWMsRUFBRSxNQUFNO2FBQ3ZCO1NBQ0Y7UUFDRCxRQUFRLEVBQUU7WUFDUixTQUFTLEVBQUUsSUFBSTtZQUNmLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLFlBQVksRUFBRTtnQkFDWixRQUFRLEVBQUUsV0FBVztnQkFDckIsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsTUFBTSxFQUFFLFNBQVM7YUFDbEI7WUFDRCxvQkFBb0IsRUFBRTtnQkFDcEIsY0FBYyxFQUFFLE1BQU07YUFDdkI7U0FDRjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLDhCQUE4QixFQUFFLEdBQUcsRUFBRTtJQUN4QyxRQUFRO0lBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFOUIsT0FBTztJQUNQLElBQUksdUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtRQUNyQyxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsSUFBSTtZQUNiLE1BQU0sRUFBRSxXQUFXO1lBQ25CLFVBQVUsRUFBRTtnQkFDVixNQUFNLEVBQUUsV0FBVztnQkFDbkIsR0FBRyxFQUFFLFFBQVE7Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRCxrQkFBa0IsRUFBRSx3QkFBa0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1NBQzVEO1FBQ0QsTUFBTSxFQUFFLDZCQUF1QixDQUFDLGNBQWMsQ0FBQztZQUM3QyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztnQkFDekIsU0FBUyxFQUFFLENBQUMsK0JBQStCLENBQUM7YUFDN0MsQ0FBQztTQUNILENBQUM7S0FDSCxDQUFDLENBQUM7SUFFSCxPQUFPO0lBQ1AsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRTtRQUMvQyxnQkFBZ0IsRUFBRTtZQUNoQixXQUFXLEVBQUU7Z0JBQ1g7b0JBQ0UsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFFBQVEsRUFBRSxPQUFPO29CQUNqQixVQUFVLEVBQUUsK0JBQStCO2lCQUM1QzthQUNGO1lBQ0QsU0FBUyxFQUFFLFlBQVk7U0FDeEI7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxtQ0FBbUMsRUFBRSxHQUFHLEVBQUU7SUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDOUIsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksdUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtRQUNsRCxNQUFNLEVBQUUsNkJBQXVCLENBQUMsWUFBWSxDQUFDLEVBQUMsU0FBUyxFQUFFLDZCQUF1QixDQUFDLFlBQVksRUFBQyxDQUFDO0tBQ2hHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0FBQ3BELENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLHFEQUFxRCxFQUFFLEdBQUcsRUFBRTtJQUMvRCxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUU5QixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSx1QkFBaUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFO1FBQ2xELFFBQVEsRUFBRTtZQUNSLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixVQUFVLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFLHNCQUFzQjtnQkFDcEMsZUFBZSxFQUFFLEVBQUU7YUFDcEI7U0FDRjtRQUNELE1BQU0sRUFBRSw2QkFBdUIsQ0FBQyxZQUFZLENBQUMsRUFBQyxTQUFTLEVBQUUsNkJBQXVCLENBQUMsWUFBWSxFQUFDLENBQUM7S0FDaEcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO0lBQzVCLFFBQVE7SUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUU5QixPQUFPO0lBQ1AsSUFBSSx1QkFBaUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFO1FBQ3JDLFlBQVksRUFBRSx1QkFBdUI7UUFDckMsUUFBUSxFQUFFO1lBQ1IsT0FBTyxFQUFFLFNBQVM7WUFDbEIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsVUFBVSxFQUFFO2dCQUNWLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsTUFBTTtnQkFDbEIsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLFdBQVcsRUFBRSxPQUFPO2FBQ3JCO1lBQ0Qsa0JBQWtCLEVBQUUsd0JBQWtCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztTQUNoRDtRQUNELE1BQU0sRUFBRSw2QkFBdUIsQ0FBQyxZQUFZLENBQUMsRUFBQyxTQUFTLEVBQUUsNkJBQXVCLENBQUMsWUFBWSxFQUFDLENBQUM7S0FDaEcsQ0FBQyxDQUFDO0lBRUgsT0FBTztJQUNQLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUU7UUFDcEQsUUFBUSxFQUFFO1lBQ1IsU0FBUyxFQUFFLFNBQVM7WUFDcEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsWUFBWSxFQUFFO2dCQUNaLGFBQWEsRUFBRSxjQUFjO2dCQUM3QixZQUFZLEVBQUUsTUFBTTtnQkFDcEIsY0FBYyxFQUFFLGVBQWU7Z0JBQy9CLGFBQWEsRUFBRSxPQUFPO2FBQ3ZCO1lBQ0Qsb0JBQW9CLEVBQUU7Z0JBQ3BCLElBQUksRUFBRSxJQUFJO2FBQ1g7U0FDRjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLCtCQUErQixFQUFFLEdBQUcsRUFBRTtJQUN6QyxRQUFRO0lBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFOUIsT0FBTztJQUNQLElBQUksdUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtRQUNyQyxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsU0FBUztZQUNsQixNQUFNLEVBQUUsUUFBUTtZQUNoQixrQkFBa0IsRUFBRSx3QkFBa0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1NBQ2hEO1FBQ0QsTUFBTSxFQUFFLDZCQUF1QixDQUFDLFlBQVksQ0FBQyxFQUFDLFNBQVMsRUFBRSw2QkFBdUIsQ0FBQyxZQUFZLEVBQUMsQ0FBQztLQUNoRyxDQUFDLENBQUM7SUFFSCxPQUFPO0lBQ1AsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRTtRQUNwRCxPQUFPLEVBQUUsR0FBRztLQUNiLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtJQUMvQixRQUFRO0lBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFOUIsT0FBTztJQUNQLElBQUksdUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtRQUNyQyxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsU0FBUztZQUNsQixNQUFNLEVBQUUsUUFBUTtZQUNoQixrQkFBa0IsRUFBRSx3QkFBa0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1NBQ2hEO1FBQ0QsT0FBTyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNqQyxNQUFNLEVBQUUsNkJBQXVCLENBQUMsWUFBWSxDQUFDLEVBQUMsU0FBUyxFQUFFLDZCQUF1QixDQUFDLFlBQVksRUFBQyxDQUFDO0tBQ2hHLENBQUMsQ0FBQztJQUVILE9BQU87SUFDUCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLHVCQUF1QixFQUFFO1FBQ3BELE9BQU8sRUFBRSxHQUFHO0tBQ2IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO0lBQ2pDLFFBQVE7SUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM5QixNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN2QyxTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUM7S0FDekQsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxjQUFjLEdBQUcsSUFBSSx1QkFBaUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFO1FBQzVELFFBQVEsRUFBRTtZQUNSLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLGtCQUFrQixFQUFFLHdCQUFrQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7U0FDaEQ7UUFDRCxNQUFNLEVBQUUsNkJBQXVCLENBQUMsWUFBWSxDQUFDLEVBQUMsU0FBUyxFQUFFLDZCQUF1QixDQUFDLFlBQVksRUFBQyxDQUFDO0tBQ2hHLENBQUMsQ0FBQztJQUVILE9BQU87SUFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUVsRCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLGtCQUFrQixFQUFFO1FBQy9DLGNBQWMsRUFBRTtZQUNkLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxNQUFNLEVBQUUsZ0JBQWdCO29CQUN4QixNQUFNLEVBQUUsT0FBTztvQkFDZixRQUFRLEVBQUUsR0FBRztpQkFDZDtnQkFDRDtvQkFDRSxNQUFNLEVBQUUsY0FBYztvQkFDdEIsTUFBTSxFQUFFLE9BQU87b0JBQ2YsUUFBUSxFQUFFO3dCQUNSLFlBQVksRUFBRTs0QkFDWixjQUFjOzRCQUNkLEtBQUs7eUJBQ047cUJBQ0Y7aUJBQ0Y7YUFDRjtZQUNELE9BQU8sRUFBRSxZQUFZO1NBQ3RCO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO0lBQ2pDLFFBQVE7SUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM5QixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLHlDQUF5QyxDQUFDLENBQUM7SUFFNUYsT0FBTztJQUNQLElBQUksdUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtRQUNyQyxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsU0FBUztZQUNsQixNQUFNLEVBQUUsUUFBUTtZQUNoQixrQkFBa0IsRUFBRSx3QkFBa0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1NBQ2hEO1FBQ0QsSUFBSTtRQUNKLE1BQU0sRUFBRSw2QkFBdUIsQ0FBQyxZQUFZLENBQUMsRUFBQyxTQUFTLEVBQUUsNkJBQXVCLENBQUMsWUFBWSxFQUFDLENBQUM7S0FDaEcsQ0FBQyxDQUFDO0lBRUgsT0FBTztJQUNQLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUU7UUFDcEQsSUFBSSxFQUFFLHlDQUF5QztLQUNoRCxDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3JELENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7SUFDbkIsUUFBUTtJQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzlCLE1BQU0sTUFBTSxHQUFHLElBQUksdUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtRQUNwRCxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsU0FBUztZQUNsQixNQUFNLEVBQUUsUUFBUTtZQUNoQixrQkFBa0IsRUFBRSx3QkFBa0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1NBQ2hEO1FBQ0QsTUFBTSxFQUFFLDZCQUF1QixDQUFDLFlBQVksQ0FBQyxFQUFDLFNBQVMsRUFBRSw2QkFBdUIsQ0FBQyxZQUFZLEVBQUMsQ0FBQztLQUNoRyxDQUFDLENBQUM7SUFFSCxPQUFPO0lBQ1AsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXZELE9BQU87SUFDUCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNuQyxZQUFZLEVBQUU7WUFDWixnQkFBZ0I7WUFDaEIsTUFBTTtTQUNQO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsNERBQTRELEVBQUUsR0FBRyxFQUFFO0lBRXRFLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRTlCLE1BQU0sUUFBUSxHQUFHLElBQUksdUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtRQUN0RCxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLE1BQU0sRUFBRSxvQkFBb0I7WUFDNUIsVUFBVSxFQUFFO2dCQUNWLFlBQVksRUFBRSxzQkFBc0I7Z0JBQ3BDLGVBQWUsRUFBRSxFQUFFO2FBQ3BCO1lBQ0Qsd0JBQXdCLEVBQUUsSUFBSTtZQUM5QixrQkFBa0IsRUFBRSx3QkFBa0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1NBQ2hEO1FBQ0QsTUFBTSxFQUFFLDZCQUF1QixDQUFDLFlBQVksQ0FBQyxFQUFDLFNBQVMsRUFBRSw2QkFBdUIsQ0FBQyxZQUFZLEVBQUMsQ0FBQztLQUNoRyxDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7QUFFbEgsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsa0VBQWtFLEVBQUUsR0FBRyxFQUFFO0lBRTVFLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRTlCLE1BQU0sUUFBUSxHQUFHLElBQUksdUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtRQUN0RCxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLE1BQU0sRUFBRSxvQkFBb0I7WUFDNUIsVUFBVSxFQUFFO2dCQUNWLFlBQVksRUFBRSxzQkFBc0I7Z0JBQ3BDLGVBQWUsRUFBRSxFQUFFO2FBQ3BCO1lBQ0Qsd0JBQXdCLEVBQUUsSUFBSTtZQUM5QixrQkFBa0IsRUFBRSx3QkFBa0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1NBQ2hEO1FBQ0QsTUFBTSxFQUFFLDZCQUF1QixDQUFDLFlBQVksQ0FBQyxFQUFDLFNBQVMsRUFBRSw2QkFBdUIsQ0FBQyxZQUFZLEVBQUMsQ0FBQztLQUNoRyxDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7QUFFL0csQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsb0ZBQW9GLEVBQUUsR0FBRyxFQUFFO0lBRTlGLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLHVCQUFpQixDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtRQUMxRCxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLE1BQU0sRUFBRSxvQkFBb0I7WUFDNUIsVUFBVSxFQUFFO2dCQUNWLFlBQVksRUFBRSxzQkFBc0I7Z0JBQ3BDLGVBQWUsRUFBRSxFQUFFO2FBQ3BCO1lBQ0Qsd0JBQXdCLEVBQUUsSUFBSTtZQUM5QixrQkFBa0IsRUFBRSx3QkFBa0IsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDO1NBQ2hFO1FBQ0QsTUFBTSxFQUFFLDZCQUF1QixDQUFDLFlBQVksQ0FBQyxFQUFDLFNBQVMsRUFBRSw2QkFBdUIsQ0FBQyxZQUFZLEVBQUMsQ0FBQztLQUNoRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsK0RBQStELENBQUMsQ0FBQztJQUU3RSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSx1QkFBaUIsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7UUFDMUQsUUFBUSxFQUFFO1lBQ1IsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixNQUFNLEVBQUUsb0JBQW9CO1lBQzVCLFVBQVUsRUFBRTtnQkFDVixZQUFZLEVBQUUsc0JBQXNCO2dCQUNwQyxlQUFlLEVBQUUsRUFBRTthQUNwQjtZQUNELHdCQUF3QixFQUFFLElBQUk7WUFDOUIsa0JBQWtCLEVBQUUsd0JBQWtCLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztTQUNoRTtRQUNELE1BQU0sRUFBRSw2QkFBdUIsQ0FBQyxZQUFZLENBQUMsRUFBQyxTQUFTLEVBQUUsNkJBQXVCLENBQUMsWUFBWSxFQUFDLENBQUM7S0FDaEcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLCtEQUErRCxDQUFDLENBQUM7SUFFN0UsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksdUJBQWlCLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFO1FBQzFELFFBQVEsRUFBRTtZQUNSLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixVQUFVLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFLHNCQUFzQjtnQkFDcEMsZUFBZSxFQUFFLEVBQUU7YUFDcEI7WUFDRCx3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLGtCQUFrQixFQUFFLHdCQUFrQixDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7U0FDaEU7UUFDRCxNQUFNLEVBQUUsNkJBQXVCLENBQUMsWUFBWSxDQUFDLEVBQUMsU0FBUyxFQUFFLDZCQUF1QixDQUFDLFlBQVksRUFBQyxDQUFDO0tBQ2hHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQywrREFBK0QsQ0FBQyxDQUFDO0FBRS9FLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7SUFDekIsUUFBUTtJQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzlCLE1BQU0sTUFBTSxHQUFHLElBQUksdUJBQWlCLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRTtRQUNyRCxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsU0FBUztZQUNsQixNQUFNLEVBQUUsUUFBUTtZQUNoQixrQkFBa0IsRUFBRSx3QkFBa0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1NBQ2hEO1FBQ0QsTUFBTSxFQUFFLDZCQUF1QixDQUFDLFlBQVksQ0FBQyxFQUFDLFNBQVMsRUFBRSw2QkFBdUIsQ0FBQyxZQUFZLEVBQUMsQ0FBQztLQUNoRyxDQUFDLENBQUM7SUFFSCxPQUFPO0lBQ1AsSUFBSSx1QkFBaUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFO1FBQ3RDLFFBQVEsRUFBRTtZQUNSLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFVBQVUsRUFBRTtnQkFDVixDQUFDLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQzthQUNuQztZQUNELGtCQUFrQixFQUFFLHdCQUFrQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7U0FDaEQ7UUFDRCxNQUFNLEVBQUUsNkJBQXVCLENBQUMsWUFBWSxDQUFDLEVBQUMsU0FBUyxFQUFFLDZCQUF1QixDQUFDLFlBQVksRUFBQyxDQUFDO0tBQ2hHLENBQUMsQ0FBQztJQUVILE9BQU87SUFDUCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRTtRQUMxQyxNQUFNLEVBQUU7WUFDTixPQUFPLEVBQUUsU0FBUztZQUNsQixNQUFNLEVBQUUsUUFBUTtZQUNoQixVQUFVLEVBQUU7Z0JBQ1YsQ0FBQyxFQUFFO29CQUNELFlBQVksRUFBRTt3QkFDWixpQkFBaUI7d0JBQ2pCLE1BQU07cUJBQ1A7aUJBQ0Y7YUFDRjtZQUNELGtCQUFrQixFQUFFO2dCQUNsQixJQUFJLEVBQUUsSUFBSTthQUNYO1NBQ0Y7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEVBQUU7SUFDckMsUUFBUTtJQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRTlCLE9BQU87SUFDUCxJQUFJLHVCQUFpQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUU7UUFDckMsUUFBUSxFQUFFO1lBQ1IsT0FBTyxFQUFFLFNBQVM7WUFDbEIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsa0JBQWtCLEVBQUUsd0JBQWtCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztTQUNoRDtRQUNELFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVE7UUFDekMsTUFBTSxFQUFFLDZCQUF1QixDQUFDLFlBQVksQ0FBQyxFQUFFLFNBQVMsRUFBRSw2QkFBdUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQUNsRyxDQUFDLENBQUM7SUFFSCxPQUFPO0lBQ1AsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsRUFBRTtRQUNuRCxZQUFZLEVBQUU7WUFDWixVQUFVLEVBQUU7Z0JBQ1YsRUFBRTtnQkFDRjtvQkFDRSxjQUFjO29CQUNkO3dCQUNFLEdBQUcsRUFBRSw2Q0FBNkM7cUJBQ25EO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELGVBQWUsRUFBRSxDQUFDO0tBQ25CLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdAYXdzLWNkay9hc3NlcnQvamVzdCc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnQGF3cy1jZGsvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ0Bhd3MtY2RrL2F3cy1sb2dzJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlLCBBd3NDdXN0b21SZXNvdXJjZVBvbGljeSwgUGh5c2ljYWxSZXNvdXJjZUlkIH0gZnJvbSAnLi4vLi4vbGliJztcblxuLy8gdHNsaW50OmRpc2FibGU6b2JqZWN0LWxpdGVyYWwta2V5LXF1b3Rlc1xuXG50ZXN0KCdhd3Mgc2RrIGpzIGN1c3RvbSByZXNvdXJjZSB3aXRoIG9uQ3JlYXRlIGFuZCBvbkRlbGV0ZScsICgpID0+IHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gICAgLy8gV0hFTlxuICAgIG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1NkaycsIHtcbiAgICAgIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6TG9nUmV0ZW50aW9uUG9saWN5JyxcbiAgICAgIG9uQ3JlYXRlOiB7XG4gICAgICAgIHNlcnZpY2U6ICdDbG91ZFdhdGNoTG9ncycsXG4gICAgICAgIGFjdGlvbjogJ3B1dFJldGVudGlvblBvbGljeScsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBsb2dHcm91cE5hbWU6ICcvYXdzL2xhbWJkYS9sb2dncm91cCcsXG4gICAgICAgICAgcmV0ZW50aW9uSW5EYXlzOiA5MFxuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5vZignbG9nZ3JvdXAnKVxuICAgICAgfSxcbiAgICAgIG9uRGVsZXRlOiB7XG4gICAgICAgIHNlcnZpY2U6ICdDbG91ZFdhdGNoTG9ncycsXG4gICAgICAgIGFjdGlvbjogJ2RlbGV0ZVJldGVudGlvblBvbGljeScsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBsb2dHcm91cE5hbWU6ICcvYXdzL2xhbWJkYS9sb2dncm91cCcsXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBwb2xpY3k6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7cmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0V9KVxuICAgIH0pO1xuXG4gICAgLy8gVEhFTlxuICAgIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0N1c3RvbTo6TG9nUmV0ZW50aW9uUG9saWN5Jywge1xuICAgICAgXCJDcmVhdGVcIjoge1xuICAgICAgICBcInNlcnZpY2VcIjogXCJDbG91ZFdhdGNoTG9nc1wiLFxuICAgICAgICBcImFjdGlvblwiOiBcInB1dFJldGVudGlvblBvbGljeVwiLFxuICAgICAgICBcInBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IFwiL2F3cy9sYW1iZGEvbG9nZ3JvdXBcIixcbiAgICAgICAgICBcInJldGVudGlvbkluRGF5c1wiOiA5MFxuICAgICAgICB9LFxuICAgICAgICBcInBoeXNpY2FsUmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgXCJpZFwiOiBcImxvZ2dyb3VwXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiRGVsZXRlXCI6IHtcbiAgICAgICAgXCJzZXJ2aWNlXCI6IFwiQ2xvdWRXYXRjaExvZ3NcIixcbiAgICAgICAgXCJhY3Rpb25cIjogXCJkZWxldGVSZXRlbnRpb25Qb2xpY3lcIixcbiAgICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiBcIi9hd3MvbGFtYmRhL2xvZ2dyb3VwXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQVdTOjpJQU06OlBvbGljeScsIHtcbiAgICBcIlBvbGljeURvY3VtZW50XCI6IHtcbiAgICAgIFwiU3RhdGVtZW50XCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiQWN0aW9uXCI6IFwibG9nczpQdXRSZXRlbnRpb25Qb2xpY3lcIixcbiAgICAgICAgICBcIkVmZmVjdFwiOiBcIkFsbG93XCIsXG4gICAgICAgICAgXCJSZXNvdXJjZVwiOiBcIipcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJBY3Rpb25cIjogXCJsb2dzOkRlbGV0ZVJldGVudGlvblBvbGljeVwiLFxuICAgICAgICAgIFwiRWZmZWN0XCI6IFwiQWxsb3dcIixcbiAgICAgICAgICBcIlJlc291cmNlXCI6IFwiKlwiXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBcIlZlcnNpb25cIjogXCIyMDEyLTEwLTE3XCJcbiAgICB9LFxuICB9KTtcbn0pO1xuXG50ZXN0KCdvbkNyZWF0ZSBkZWZhdWx0cyB0byBvblVwZGF0ZScsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgLy8gV0hFTlxuICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7XG4gICAgcmVzb3VyY2VUeXBlOiAnQ3VzdG9tOjpTM1B1dE9iamVjdCcsXG4gICAgb25VcGRhdGU6IHtcbiAgICAgIHNlcnZpY2U6ICdzMycsXG4gICAgICBhY3Rpb246ICdwdXRPYmplY3QnLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBCdWNrZXQ6ICdteS1idWNrZXQnLFxuICAgICAgICBLZXk6ICdteS1rZXknLFxuICAgICAgICBCb2R5OiAnbXktYm9keSdcbiAgICAgIH0sXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5mcm9tUmVzcG9uc2UoJ0VUYWcnKVxuICAgIH0sXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe3Jlc291cmNlczogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFfSlcbiAgfSk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdDdXN0b206OlMzUHV0T2JqZWN0Jywge1xuICAgIFwiQ3JlYXRlXCI6IHtcbiAgICAgIFwic2VydmljZVwiOiBcInMzXCIsXG4gICAgICBcImFjdGlvblwiOiBcInB1dE9iamVjdFwiLFxuICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgXCJCdWNrZXRcIjogXCJteS1idWNrZXRcIixcbiAgICAgICAgXCJLZXlcIjogXCJteS1rZXlcIixcbiAgICAgICAgXCJCb2R5XCI6IFwibXktYm9keVwiXG4gICAgICB9LFxuICAgICAgXCJwaHlzaWNhbFJlc291cmNlSWRcIjoge1xuICAgICAgICBcInJlc3BvbnNlUGF0aFwiOiBcIkVUYWdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVcIjoge1xuICAgICAgXCJzZXJ2aWNlXCI6IFwiczNcIixcbiAgICAgIFwiYWN0aW9uXCI6IFwicHV0T2JqZWN0XCIsXG4gICAgICBcInBhcmFtZXRlcnNcIjoge1xuICAgICAgICBcIkJ1Y2tldFwiOiBcIm15LWJ1Y2tldFwiLFxuICAgICAgICBcIktleVwiOiBcIm15LWtleVwiLFxuICAgICAgICBcIkJvZHlcIjogXCJteS1ib2R5XCJcbiAgICAgIH0sXG4gICAgICBcInBoeXNpY2FsUmVzb3VyY2VJZFwiOiB7XG4gICAgICAgIFwicmVzcG9uc2VQYXRoXCI6IFwiRVRhZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG59KTtcblxudGVzdCgnd2l0aCBjdXN0b20gcG9saWN5U3RhdGVtZW50cycsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgLy8gV0hFTlxuICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7XG4gICAgb25VcGRhdGU6IHtcbiAgICAgIHNlcnZpY2U6ICdTMycsXG4gICAgICBhY3Rpb246ICdwdXRPYmplY3QnLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBCdWNrZXQ6ICdteS1idWNrZXQnLFxuICAgICAgICBLZXk6ICdteS1rZXknLFxuICAgICAgICBCb2R5OiAnbXktYm9keSdcbiAgICAgIH0sXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5mcm9tUmVzcG9uc2UoJ0VUYWcnKVxuICAgIH0sXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFsnczM6UHV0T2JqZWN0J10sXG4gICAgICAgIHJlc291cmNlczogWydhcm46YXdzOnMzOjo6bXktYnVja2V0L215LWtleSddXG4gICAgICB9KVxuICAgIF0pXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQVdTOjpJQU06OlBvbGljeScsIHtcbiAgICBcIlBvbGljeURvY3VtZW50XCI6IHtcbiAgICAgIFwiU3RhdGVtZW50XCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiQWN0aW9uXCI6IFwiczM6UHV0T2JqZWN0XCIsXG4gICAgICAgICAgXCJFZmZlY3RcIjogXCJBbGxvd1wiLFxuICAgICAgICAgIFwiUmVzb3VyY2VcIjogXCJhcm46YXdzOnMzOjo6bXktYnVja2V0L215LWtleVwiXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgXCJWZXJzaW9uXCI6IFwiMjAxMi0xMC0xN1wiXG4gICAgfSxcbiAgfSk7XG59KTtcblxudGVzdCgnZmFpbHMgd2hlbiBubyBjYWxscyBhcmUgc3BlY2lmaWVkJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgZXhwZWN0KCgpID0+IG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1NkaycsIHtcbiAgICBwb2xpY3k6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7cmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0V9KVxuICB9KSkudG9UaHJvdygvYG9uQ3JlYXRlYC4rYG9uVXBkYXRlYC4rYG9uRGVsZXRlYC8pO1xufSk7XG5cbnRlc3QoJ2ZhaWxzIHdoZW4gbm8gcGh5c2ljYWwgcmVzb3VyY2UgbWV0aG9kIGlzIHNwZWNpZmllZCcsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgZXhwZWN0KCgpID0+IG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1NkaycsIHtcbiAgICBvblVwZGF0ZToge1xuICAgICAgc2VydmljZTogJ0Nsb3VkV2F0Y2hMb2dzJyxcbiAgICAgIGFjdGlvbjogJ3B1dFJldGVudGlvblBvbGljeScsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIGxvZ0dyb3VwTmFtZTogJy9hd3MvbGFtYmRhL2xvZ2dyb3VwJyxcbiAgICAgICAgcmV0ZW50aW9uSW5EYXlzOiA5MFxuICAgICAgfVxuICAgIH0sXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe3Jlc291cmNlczogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFfSlcbiAgfSkpLnRvVGhyb3coL2BwaHlzaWNhbFJlc291cmNlSWRgLyk7XG59KTtcblxudGVzdCgnZW5jb2RlcyBib29sZWFucycsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgLy8gV0hFTlxuICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7XG4gICAgcmVzb3VyY2VUeXBlOiAnQ3VzdG9tOjpTZXJ2aWNlQWN0aW9uJyxcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgdHJ1ZUJvb2xlYW46IHRydWUsXG4gICAgICAgIHRydWVTdHJpbmc6ICd0cnVlJyxcbiAgICAgICAgZmFsc2VCb29sZWFuOiBmYWxzZSxcbiAgICAgICAgZmFsc2VTdHJpbmc6ICdmYWxzZSdcbiAgICAgIH0sXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5vZignaWQnKVxuICAgIH0sXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe3Jlc291cmNlczogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFfSlcbiAgfSk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdDdXN0b206OlNlcnZpY2VBY3Rpb24nLCB7XG4gICAgXCJDcmVhdGVcIjoge1xuICAgICAgXCJzZXJ2aWNlXCI6IFwic2VydmljZVwiLFxuICAgICAgXCJhY3Rpb25cIjogXCJhY3Rpb25cIixcbiAgICAgIFwicGFyYW1ldGVyc1wiOiB7XG4gICAgICAgIFwidHJ1ZUJvb2xlYW5cIjogXCJUUlVFOkJPT0xFQU5cIixcbiAgICAgICAgXCJ0cnVlU3RyaW5nXCI6IFwidHJ1ZVwiLFxuICAgICAgICBcImZhbHNlQm9vbGVhblwiOiBcIkZBTFNFOkJPT0xFQU5cIixcbiAgICAgICAgXCJmYWxzZVN0cmluZ1wiOiBcImZhbHNlXCJcbiAgICAgIH0sXG4gICAgICBcInBoeXNpY2FsUmVzb3VyY2VJZFwiOiB7XG4gICAgICAgIFwiaWRcIjogXCJpZFwiXG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG59KTtcblxudGVzdCgndGltZW91dCBkZWZhdWx0cyB0byAyIG1pbnV0ZXMnLCAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gIC8vIFdIRU5cbiAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnc2VydmljZScsXG4gICAgICBhY3Rpb246ICdhY3Rpb24nLFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ2lkJylcbiAgICB9LFxuICAgIHBvbGljeTogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHtyZXNvdXJjZXM6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LkFOWV9SRVNPVVJDRX0pXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJywge1xuICAgIFRpbWVvdXQ6IDEyMFxuICB9KTtcbn0pO1xuXG50ZXN0KCdjYW4gc3BlY2lmeSB0aW1lb3V0JywgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcblxuICAvLyBXSEVOXG4gIG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1NkaycsIHtcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKCdpZCcpXG4gICAgfSxcbiAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24ubWludXRlcygxNSksXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe3Jlc291cmNlczogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFfSlcbiAgfSk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nLCB7XG4gICAgVGltZW91dDogOTAwXG4gIH0pO1xufSk7XG5cbnRlc3QoJ2ltcGxlbWVudHMgSUdyYW50YWJsZScsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gIGNvbnN0IHJvbGUgPSBuZXcgaWFtLlJvbGUoc3RhY2ssICdSb2xlJywge1xuICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdlYzIuYW1hem9uYXdzLmNvbScpXG4gIH0pO1xuICBjb25zdCBjdXN0b21SZXNvdXJjZSA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1NkaycsIHtcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKCdpZCcpXG4gICAgfSxcbiAgICBwb2xpY3k6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7cmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0V9KVxuICB9KTtcblxuICAvLyBXSEVOXG4gIHJvbGUuZ3JhbnRQYXNzUm9sZShjdXN0b21SZXNvdXJjZS5ncmFudFByaW5jaXBhbCk7XG5cbiAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQVdTOjpJQU06OlBvbGljeScsIHtcbiAgICBQb2xpY3lEb2N1bWVudDoge1xuICAgICAgU3RhdGVtZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246ICdzZXJ2aWNlOkFjdGlvbicsXG4gICAgICAgICAgRWZmZWN0OiAnQWxsb3cnLFxuICAgICAgICAgIFJlc291cmNlOiAnKidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogJ2lhbTpQYXNzUm9sZScsXG4gICAgICAgICAgRWZmZWN0OiAnQWxsb3cnLFxuICAgICAgICAgIFJlc291cmNlOiB7XG4gICAgICAgICAgICAnRm46OkdldEF0dCc6IFtcbiAgICAgICAgICAgICAgJ1JvbGUxQUJDQzVGMCcsXG4gICAgICAgICAgICAgICdBcm4nXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgVmVyc2lvbjogJzIwMTItMTAtMTcnXG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCdjYW4gdXNlIGV4aXN0aW5nIHJvbGUnLCAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuICBjb25zdCByb2xlID0gaWFtLlJvbGUuZnJvbVJvbGVBcm4oc3RhY2ssICdSb2xlJywgJ2Fybjphd3M6aWFtOjoxMjM0NTY3ODkwMTI6cm9sZS9Db29sUm9sZScpO1xuXG4gIC8vIFdIRU5cbiAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnc2VydmljZScsXG4gICAgICBhY3Rpb246ICdhY3Rpb24nLFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ2lkJylcbiAgICB9LFxuICAgIHJvbGUsXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe3Jlc291cmNlczogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFfSlcbiAgfSk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nLCB7XG4gICAgUm9sZTogJ2Fybjphd3M6aWFtOjoxMjM0NTY3ODkwMTI6cm9sZS9Db29sUm9sZSdcbiAgfSk7XG5cbiAgZXhwZWN0KHN0YWNrKS5ub3QudG9IYXZlUmVzb3VyY2UoJ0FXUzo6SUFNOjpSb2xlJyk7XG59KTtcblxudGVzdCgnZ2V0RGF0YScsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gIGNvbnN0IGF3c1NkayA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1NkaycsIHtcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKCdpZCcpXG4gICAgfSxcbiAgICBwb2xpY3k6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7cmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0V9KVxuICB9KTtcblxuICAvLyBXSEVOXG4gIGNvbnN0IHRva2VuID0gYXdzU2RrLmdldFJlc3BvbnNlRmllbGRSZWZlcmVuY2UoJ0RhdGEnKTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChzdGFjay5yZXNvbHZlKHRva2VuKSkudG9FcXVhbCh7XG4gICAgJ0ZuOjpHZXRBdHQnOiBbXG4gICAgICAnQXdzU2RrRTk2NkZFNDMnLFxuICAgICAgJ0RhdGEnXG4gICAgXVxuICB9KTtcbn0pO1xuXG50ZXN0KCdmYWlscyB3aGVuIGdldERhdGEgaXMgdXNlZCB3aXRoIGBpZ25vcmVFcnJvckNvZGVzTWF0Y2hpbmdgJywgKCkgPT4ge1xuXG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gIGNvbnN0IHJlc291cmNlID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgIG9uVXBkYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnQ2xvdWRXYXRjaExvZ3MnLFxuICAgICAgYWN0aW9uOiAncHV0UmV0ZW50aW9uUG9saWN5JyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiAnL2F3cy9sYW1iZGEvbG9nZ3JvdXAnLFxuICAgICAgICByZXRlbnRpb25JbkRheXM6IDkwXG4gICAgICB9LFxuICAgICAgaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nOiBcIi4qXCIsXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5vZihcIklkXCIpXG4gICAgfSxcbiAgICBwb2xpY3k6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7cmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0V9KSxcbiAgfSk7XG5cbiAgZXhwZWN0KCgpID0+IHJlc291cmNlLmdldFJlc3BvbnNlRmllbGRSZWZlcmVuY2UoXCJTaG91bGRGYWlsXCIpKS50b1Rocm93KC9gZ2V0RGF0YWAuK2BpZ25vcmVFcnJvckNvZGVzTWF0Y2hpbmdgLyk7XG5cbn0pO1xuXG50ZXN0KCdmYWlscyB3aGVuIGdldERhdGFTdHJpbmcgaXMgdXNlZCB3aXRoIGBpZ25vcmVFcnJvckNvZGVzTWF0Y2hpbmdgJywgKCkgPT4ge1xuXG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gIGNvbnN0IHJlc291cmNlID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgIG9uVXBkYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnQ2xvdWRXYXRjaExvZ3MnLFxuICAgICAgYWN0aW9uOiAncHV0UmV0ZW50aW9uUG9saWN5JyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiAnL2F3cy9sYW1iZGEvbG9nZ3JvdXAnLFxuICAgICAgICByZXRlbnRpb25JbkRheXM6IDkwXG4gICAgICB9LFxuICAgICAgaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nOiBcIi4qXCIsXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5vZihcIklkXCIpLFxuICAgIH0sXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe3Jlc291cmNlczogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFfSksXG4gIH0pO1xuXG4gIGV4cGVjdCgoKSA9PiByZXNvdXJjZS5nZXRSZXNwb25zZUZpZWxkKFwiU2hvdWxkRmFpbFwiKSkudG9UaHJvdygvYGdldERhdGFTdHJpbmdgLitgaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nYC8pO1xuXG59KTtcblxudGVzdCgnZmFpbCB3aGVuIGBQaHlzaWNhbFJlc291cmNlSWQuZnJvbVJlc3BvbnNlYCBpcyB1c2VkIHdpdGggYGlnbm9yZUVycm9yQ29kZXNNYXRjaGluZycsICgpID0+IHtcblxuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgZXhwZWN0KCgpID0+IG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1Nka09uVXBkYXRlJywge1xuICAgIG9uVXBkYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnQ2xvdWRXYXRjaExvZ3MnLFxuICAgICAgYWN0aW9uOiAncHV0UmV0ZW50aW9uUG9saWN5JyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiAnL2F3cy9sYW1iZGEvbG9nZ3JvdXAnLFxuICAgICAgICByZXRlbnRpb25JbkRheXM6IDkwXG4gICAgICB9LFxuICAgICAgaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nOiBcIi4qXCIsXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5mcm9tUmVzcG9uc2UoXCJSZXNwb25zZVwiKVxuICAgIH0sXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe3Jlc291cmNlczogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFfSksXG4gIH0pKS50b1Rocm93KC9gUGh5c2ljYWxSZXNvdXJjZUlkLmZyb21SZXNwb25zZWAuK2BpZ25vcmVFcnJvckNvZGVzTWF0Y2hpbmdgLyk7XG5cbiAgZXhwZWN0KCgpID0+IG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1Nka09uQ3JlYXRlJywge1xuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnQ2xvdWRXYXRjaExvZ3MnLFxuICAgICAgYWN0aW9uOiAncHV0UmV0ZW50aW9uUG9saWN5JyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiAnL2F3cy9sYW1iZGEvbG9nZ3JvdXAnLFxuICAgICAgICByZXRlbnRpb25JbkRheXM6IDkwXG4gICAgICB9LFxuICAgICAgaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nOiBcIi4qXCIsXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5mcm9tUmVzcG9uc2UoXCJSZXNwb25zZVwiKVxuICAgIH0sXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe3Jlc291cmNlczogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFfSksXG4gIH0pKS50b1Rocm93KC9gUGh5c2ljYWxSZXNvdXJjZUlkLmZyb21SZXNwb25zZWAuK2BpZ25vcmVFcnJvckNvZGVzTWF0Y2hpbmdgLyk7XG5cbiAgZXhwZWN0KCgpID0+IG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1Nka09uRGVsZXRlJywge1xuICAgIG9uRGVsZXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnQ2xvdWRXYXRjaExvZ3MnLFxuICAgICAgYWN0aW9uOiAncHV0UmV0ZW50aW9uUG9saWN5JyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiAnL2F3cy9sYW1iZGEvbG9nZ3JvdXAnLFxuICAgICAgICByZXRlbnRpb25JbkRheXM6IDkwXG4gICAgICB9LFxuICAgICAgaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nOiBcIi4qXCIsXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5mcm9tUmVzcG9uc2UoXCJSZXNwb25zZVwiKVxuICAgIH0sXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe3Jlc291cmNlczogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFfSksXG4gIH0pKS50b1Rocm93KC9gUGh5c2ljYWxSZXNvdXJjZUlkLmZyb21SZXNwb25zZWAuK2BpZ25vcmVFcnJvckNvZGVzTWF0Y2hpbmdgLyk7XG5cbn0pO1xuXG50ZXN0KCdnZXREYXRhU3RyaW5nJywgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgY29uc3QgYXdzU2RrID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrMScsIHtcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKCdpZCcpXG4gICAgfSxcbiAgICBwb2xpY3k6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7cmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0V9KSxcbiAgfSk7XG5cbiAgLy8gV0hFTlxuICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsyJywge1xuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnc2VydmljZScsXG4gICAgICBhY3Rpb246ICdhY3Rpb24nLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBhOiBhd3NTZGsuZ2V0UmVzcG9uc2VGaWVsZCgnRGF0YScpXG4gICAgICB9LFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ2lkJylcbiAgICB9LFxuICAgIHBvbGljeTogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHtyZXNvdXJjZXM6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LkFOWV9SRVNPVVJDRX0pXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQ3VzdG9tOjpBV1MnLCB7XG4gICAgQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnc2VydmljZScsXG4gICAgICBhY3Rpb246ICdhY3Rpb24nLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBhOiB7XG4gICAgICAgICAgJ0ZuOjpHZXRBdHQnOiBbXG4gICAgICAgICAgICAnQXdzU2RrMTU1QjkxMDcxJyxcbiAgICAgICAgICAgICdEYXRhJ1xuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDoge1xuICAgICAgICBcImlkXCI6ICdpZCdcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ2NhbiBzcGVjaWZ5IGxvZyByZXRlbnRpb24nLCAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gIC8vIFdIRU5cbiAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnc2VydmljZScsXG4gICAgICBhY3Rpb246ICdhY3Rpb24nLFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ2lkJylcbiAgICB9LFxuICAgIGxvZ1JldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9XRUVLLFxuICAgIHBvbGljeTogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHsgcmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0UgfSlcbiAgfSk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdDdXN0b206OkxvZ1JldGVudGlvbicsIHtcbiAgICBMb2dHcm91cE5hbWU6IHtcbiAgICAgICdGbjo6Sm9pbic6IFtcbiAgICAgICAgJycsXG4gICAgICAgIFtcbiAgICAgICAgICAnL2F3cy9sYW1iZGEvJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBSZWY6ICdBV1M2NzlmNTNmYWMwMDI0MzBjYjBkYTViNzk4MmJkMjI4NzJEMTY0QzRDJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgXVxuICAgIH0sXG4gICAgUmV0ZW50aW9uSW5EYXlzOiA3XG4gIH0pO1xufSk7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWN1c3RvbS1yZXNvdXJjZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWN1c3RvbS1yZXNvdXJjZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0NBQThCO0FBQzlCLHdDQUF3QztBQUN4QywwQ0FBMEM7QUFDMUMscUNBQXFDO0FBQ3JDLG1DQUEyRjtBQUUzRiwyQ0FBMkM7QUFFM0MsSUFBSSxDQUFDLHVEQUF1RCxFQUFFLEdBQUcsRUFBRTtJQUNqRSxRQUFRO0lBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFOUIsT0FBTztJQUNQLElBQUksdUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtRQUNyQyxZQUFZLEVBQUUsNEJBQTRCO1FBQzFDLFFBQVEsRUFBRTtZQUNSLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixVQUFVLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFLHNCQUFzQjtnQkFDcEMsZUFBZSxFQUFFLEVBQUU7YUFDcEI7WUFDRCxrQkFBa0IsRUFBRSx3QkFBa0IsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDO1NBQ3REO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixNQUFNLEVBQUUsdUJBQXVCO1lBQy9CLFVBQVUsRUFBRTtnQkFDVixZQUFZLEVBQUUsc0JBQXNCO2FBQ3JDO1NBQ0Y7UUFDRCxNQUFNLEVBQUUsNkJBQXVCLENBQUMsWUFBWSxDQUFDLEVBQUMsU0FBUyxFQUFFLDZCQUF1QixDQUFDLFlBQVksRUFBQyxDQUFDO0tBQ2hHLENBQUMsQ0FBQztJQUVILE9BQU87SUFDUCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLDRCQUE0QixFQUFFO1FBQ3pELFFBQVEsRUFBRTtZQUNSLFNBQVMsRUFBRSxnQkFBZ0I7WUFDM0IsUUFBUSxFQUFFLG9CQUFvQjtZQUM5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TUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsRUFBRTtRQUNuRCxZQUFZLEVBQUU7WUFDWixVQUFVLEVBQUU7Z0JBQ1YsRUFBRTtnQkFDRjtvQkFDRSxjQUFjO29CQUNkO3dCQUNFLEdBQUcsRUFBRSw2Q0FBNkM7cUJBQ25EO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELGVBQWUsRUFBRSxDQUFDO0tBQ25CLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdAYXdzLWNkay9hc3NlcnQvamVzdCc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnQGF3cy1jZGsvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ0Bhd3MtY2RrL2F3cy1sb2dzJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlLCBBd3NDdXN0b21SZXNvdXJjZVBvbGljeSwgUGh5c2ljYWxSZXNvdXJjZUlkIH0gZnJvbSAnLi4vLi4vbGliJztcblxuLy8gdHNsaW50OmRpc2FibGU6b2JqZWN0LWxpdGVyYWwta2V5LXF1b3Rlc1xuXG50ZXN0KCdhd3Mgc2RrIGpzIGN1c3RvbSByZXNvdXJjZSB3aXRoIG9uQ3JlYXRlIGFuZCBvbkRlbGV0ZScsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgLy8gV0hFTlxuICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7XG4gICAgcmVzb3VyY2VUeXBlOiAnQ3VzdG9tOjpMb2dSZXRlbnRpb25Qb2xpY3knLFxuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnQ2xvdWRXYXRjaExvZ3MnLFxuICAgICAgYWN0aW9uOiAncHV0UmV0ZW50aW9uUG9saWN5JyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiAnL2F3cy9sYW1iZGEvbG9nZ3JvdXAnLFxuICAgICAgICByZXRlbnRpb25JbkRheXM6IDkwXG4gICAgICB9LFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ2xvZ2dyb3VwJylcbiAgICB9LFxuICAgIG9uRGVsZXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnQ2xvdWRXYXRjaExvZ3MnLFxuICAgICAgYWN0aW9uOiAnZGVsZXRlUmV0ZW50aW9uUG9saWN5JyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiAnL2F3cy9sYW1iZGEvbG9nZ3JvdXAnLFxuICAgICAgfVxuICAgIH0sXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe3Jlc291cmNlczogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFfSlcbiAgfSk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdDdXN0b206OkxvZ1JldGVudGlvblBvbGljeScsIHtcbiAgICAnQ3JlYXRlJzoge1xuICAgICAgJ3NlcnZpY2UnOiAnQ2xvdWRXYXRjaExvZ3MnLFxuICAgICAgJ2FjdGlvbic6ICdwdXRSZXRlbnRpb25Qb2xpY3knLFxuICAgICAgJ3BhcmFtZXRlcnMnOiB7XG4gICAgICAgICdsb2dHcm91cE5hbWUnOiAnL2F3cy9sYW1iZGEvbG9nZ3JvdXAnLFxuICAgICAgICAncmV0ZW50aW9uSW5EYXlzJzogOTBcbiAgICAgIH0sXG4gICAgICAncGh5c2ljYWxSZXNvdXJjZUlkJzoge1xuICAgICAgICAnaWQnOiAnbG9nZ3JvdXAnXG4gICAgICB9XG4gICAgfSxcbiAgICAnRGVsZXRlJzoge1xuICAgICAgJ3NlcnZpY2UnOiAnQ2xvdWRXYXRjaExvZ3MnLFxuICAgICAgJ2FjdGlvbic6ICdkZWxldGVSZXRlbnRpb25Qb2xpY3knLFxuICAgICAgJ3BhcmFtZXRlcnMnOiB7XG4gICAgICAgICdsb2dHcm91cE5hbWUnOiAnL2F3cy9sYW1iZGEvbG9nZ3JvdXAnXG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdBV1M6OklBTTo6UG9saWN5Jywge1xuICAgICdQb2xpY3lEb2N1bWVudCc6IHtcbiAgICAgICdTdGF0ZW1lbnQnOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAnQWN0aW9uJzogJ2xvZ3M6UHV0UmV0ZW50aW9uUG9saWN5JyxcbiAgICAgICAgICAnRWZmZWN0JzogJ0FsbG93JyxcbiAgICAgICAgICAnUmVzb3VyY2UnOiAnKidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICdBY3Rpb24nOiAnbG9nczpEZWxldGVSZXRlbnRpb25Qb2xpY3knLFxuICAgICAgICAgICdFZmZlY3QnOiAnQWxsb3cnLFxuICAgICAgICAgICdSZXNvdXJjZSc6ICcqJ1xuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgJ1ZlcnNpb24nOiAnMjAxMi0xMC0xNydcbiAgICB9LFxuICB9KTtcbn0pO1xuXG50ZXN0KCdvbkNyZWF0ZSBkZWZhdWx0cyB0byBvblVwZGF0ZScsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgLy8gV0hFTlxuICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7XG4gICAgcmVzb3VyY2VUeXBlOiAnQ3VzdG9tOjpTM1B1dE9iamVjdCcsXG4gICAgb25VcGRhdGU6IHtcbiAgICAgIHNlcnZpY2U6ICdzMycsXG4gICAgICBhY3Rpb246ICdwdXRPYmplY3QnLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBCdWNrZXQ6ICdteS1idWNrZXQnLFxuICAgICAgICBLZXk6ICdteS1rZXknLFxuICAgICAgICBCb2R5OiAnbXktYm9keSdcbiAgICAgIH0sXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5mcm9tUmVzcG9uc2UoJ0VUYWcnKVxuICAgIH0sXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe3Jlc291cmNlczogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFfSlcbiAgfSk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdDdXN0b206OlMzUHV0T2JqZWN0Jywge1xuICAgICdDcmVhdGUnOiB7XG4gICAgICAnc2VydmljZSc6ICdzMycsXG4gICAgICAnYWN0aW9uJzogJ3B1dE9iamVjdCcsXG4gICAgICAncGFyYW1ldGVycyc6IHtcbiAgICAgICAgJ0J1Y2tldCc6ICdteS1idWNrZXQnLFxuICAgICAgICAnS2V5JzogJ215LWtleScsXG4gICAgICAgICdCb2R5JzogJ215LWJvZHknXG4gICAgICB9LFxuICAgICAgJ3BoeXNpY2FsUmVzb3VyY2VJZCc6IHtcbiAgICAgICAgJ3Jlc3BvbnNlUGF0aCc6ICdFVGFnJ1xuICAgICAgfVxuICAgIH0sXG4gICAgJ1VwZGF0ZSc6IHtcbiAgICAgICdzZXJ2aWNlJzogJ3MzJyxcbiAgICAgICdhY3Rpb24nOiAncHV0T2JqZWN0JyxcbiAgICAgICdwYXJhbWV0ZXJzJzoge1xuICAgICAgICAnQnVja2V0JzogJ215LWJ1Y2tldCcsXG4gICAgICAgICdLZXknOiAnbXkta2V5JyxcbiAgICAgICAgJ0JvZHknOiAnbXktYm9keSdcbiAgICAgIH0sXG4gICAgICAncGh5c2ljYWxSZXNvdXJjZUlkJzoge1xuICAgICAgICAncmVzcG9uc2VQYXRoJzogJ0VUYWcnXG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG59KTtcblxudGVzdCgnd2l0aCBjdXN0b20gcG9saWN5U3RhdGVtZW50cycsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgLy8gV0hFTlxuICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7XG4gICAgb25VcGRhdGU6IHtcbiAgICAgIHNlcnZpY2U6ICdTMycsXG4gICAgICBhY3Rpb246ICdwdXRPYmplY3QnLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBCdWNrZXQ6ICdteS1idWNrZXQnLFxuICAgICAgICBLZXk6ICdteS1rZXknLFxuICAgICAgICBCb2R5OiAnbXktYm9keSdcbiAgICAgIH0sXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5mcm9tUmVzcG9uc2UoJ0VUYWcnKVxuICAgIH0sXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFsnczM6UHV0T2JqZWN0J10sXG4gICAgICAgIHJlc291cmNlczogWydhcm46YXdzOnMzOjo6bXktYnVja2V0L215LWtleSddXG4gICAgICB9KVxuICAgIF0pXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQVdTOjpJQU06OlBvbGljeScsIHtcbiAgICAnUG9saWN5RG9jdW1lbnQnOiB7XG4gICAgICAnU3RhdGVtZW50JzogW1xuICAgICAgICB7XG4gICAgICAgICAgJ0FjdGlvbic6ICdzMzpQdXRPYmplY3QnLFxuICAgICAgICAgICdFZmZlY3QnOiAnQWxsb3cnLFxuICAgICAgICAgICdSZXNvdXJjZSc6ICdhcm46YXdzOnMzOjo6bXktYnVja2V0L215LWtleSdcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICAnVmVyc2lvbic6ICcyMDEyLTEwLTE3J1xuICAgIH0sXG4gIH0pO1xufSk7XG5cbnRlc3QoJ2ZhaWxzIHdoZW4gbm8gY2FsbHMgYXJlIHNwZWNpZmllZCcsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gIGV4cGVjdCgoKSA9PiBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7XG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe3Jlc291cmNlczogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFfSlcbiAgfSkpLnRvVGhyb3coL2BvbkNyZWF0ZWAuK2BvblVwZGF0ZWAuK2BvbkRlbGV0ZWAvKTtcbn0pO1xuXG50ZXN0KCdmYWlscyB3aGVuIG5vIHBoeXNpY2FsIHJlc291cmNlIG1ldGhvZCBpcyBzcGVjaWZpZWQnLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gIGV4cGVjdCgoKSA9PiBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsnLCB7XG4gICAgb25VcGRhdGU6IHtcbiAgICAgIHNlcnZpY2U6ICdDbG91ZFdhdGNoTG9ncycsXG4gICAgICBhY3Rpb246ICdwdXRSZXRlbnRpb25Qb2xpY3knLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBsb2dHcm91cE5hbWU6ICcvYXdzL2xhbWJkYS9sb2dncm91cCcsXG4gICAgICAgIHJldGVudGlvbkluRGF5czogOTBcbiAgICAgIH1cbiAgICB9LFxuICAgIHBvbGljeTogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHtyZXNvdXJjZXM6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LkFOWV9SRVNPVVJDRX0pXG4gIH0pKS50b1Rocm93KC9gcGh5c2ljYWxSZXNvdXJjZUlkYC8pO1xufSk7XG5cbnRlc3QoJ2VuY29kZXMgYm9vbGVhbnMnLCAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gIC8vIFdIRU5cbiAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6U2VydmljZUFjdGlvbicsXG4gICAgb25DcmVhdGU6IHtcbiAgICAgIHNlcnZpY2U6ICdzZXJ2aWNlJyxcbiAgICAgIGFjdGlvbjogJ2FjdGlvbicsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIHRydWVCb29sZWFuOiB0cnVlLFxuICAgICAgICB0cnVlU3RyaW5nOiAndHJ1ZScsXG4gICAgICAgIGZhbHNlQm9vbGVhbjogZmFsc2UsXG4gICAgICAgIGZhbHNlU3RyaW5nOiAnZmFsc2UnXG4gICAgICB9LFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ2lkJylcbiAgICB9LFxuICAgIHBvbGljeTogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHtyZXNvdXJjZXM6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LkFOWV9SRVNPVVJDRX0pXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQ3VzdG9tOjpTZXJ2aWNlQWN0aW9uJywge1xuICAgICdDcmVhdGUnOiB7XG4gICAgICAnc2VydmljZSc6ICdzZXJ2aWNlJyxcbiAgICAgICdhY3Rpb24nOiAnYWN0aW9uJyxcbiAgICAgICdwYXJhbWV0ZXJzJzoge1xuICAgICAgICAndHJ1ZUJvb2xlYW4nOiAnVFJVRTpCT09MRUFOJyxcbiAgICAgICAgJ3RydWVTdHJpbmcnOiAndHJ1ZScsXG4gICAgICAgICdmYWxzZUJvb2xlYW4nOiAnRkFMU0U6Qk9PTEVBTicsXG4gICAgICAgICdmYWxzZVN0cmluZyc6ICdmYWxzZSdcbiAgICAgIH0sXG4gICAgICAncGh5c2ljYWxSZXNvdXJjZUlkJzoge1xuICAgICAgICAnaWQnOiAnaWQnXG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG59KTtcblxudGVzdCgndGltZW91dCBkZWZhdWx0cyB0byAyIG1pbnV0ZXMnLCAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gIC8vIFdIRU5cbiAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnc2VydmljZScsXG4gICAgICBhY3Rpb246ICdhY3Rpb24nLFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ2lkJylcbiAgICB9LFxuICAgIHBvbGljeTogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHtyZXNvdXJjZXM6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LkFOWV9SRVNPVVJDRX0pXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJywge1xuICAgIFRpbWVvdXQ6IDEyMFxuICB9KTtcbn0pO1xuXG50ZXN0KCdjYW4gc3BlY2lmeSB0aW1lb3V0JywgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcblxuICAvLyBXSEVOXG4gIG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1NkaycsIHtcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKCdpZCcpXG4gICAgfSxcbiAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24ubWludXRlcygxNSksXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe3Jlc291cmNlczogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFfSlcbiAgfSk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nLCB7XG4gICAgVGltZW91dDogOTAwXG4gIH0pO1xufSk7XG5cbnRlc3QoJ2ltcGxlbWVudHMgSUdyYW50YWJsZScsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gIGNvbnN0IHJvbGUgPSBuZXcgaWFtLlJvbGUoc3RhY2ssICdSb2xlJywge1xuICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdlYzIuYW1hem9uYXdzLmNvbScpXG4gIH0pO1xuICBjb25zdCBjdXN0b21SZXNvdXJjZSA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1NkaycsIHtcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKCdpZCcpXG4gICAgfSxcbiAgICBwb2xpY3k6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7cmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0V9KVxuICB9KTtcblxuICAvLyBXSEVOXG4gIHJvbGUuZ3JhbnRQYXNzUm9sZShjdXN0b21SZXNvdXJjZS5ncmFudFByaW5jaXBhbCk7XG5cbiAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQVdTOjpJQU06OlBvbGljeScsIHtcbiAgICBQb2xpY3lEb2N1bWVudDoge1xuICAgICAgU3RhdGVtZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246ICdzZXJ2aWNlOkFjdGlvbicsXG4gICAgICAgICAgRWZmZWN0OiAnQWxsb3cnLFxuICAgICAgICAgIFJlc291cmNlOiAnKidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogJ2lhbTpQYXNzUm9sZScsXG4gICAgICAgICAgRWZmZWN0OiAnQWxsb3cnLFxuICAgICAgICAgIFJlc291cmNlOiB7XG4gICAgICAgICAgICAnRm46OkdldEF0dCc6IFtcbiAgICAgICAgICAgICAgJ1JvbGUxQUJDQzVGMCcsXG4gICAgICAgICAgICAgICdBcm4nXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgVmVyc2lvbjogJzIwMTItMTAtMTcnXG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCdjYW4gdXNlIGV4aXN0aW5nIHJvbGUnLCAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuICBjb25zdCByb2xlID0gaWFtLlJvbGUuZnJvbVJvbGVBcm4oc3RhY2ssICdSb2xlJywgJ2Fybjphd3M6aWFtOjoxMjM0NTY3ODkwMTI6cm9sZS9Db29sUm9sZScpO1xuXG4gIC8vIFdIRU5cbiAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnc2VydmljZScsXG4gICAgICBhY3Rpb246ICdhY3Rpb24nLFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ2lkJylcbiAgICB9LFxuICAgIHJvbGUsXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe3Jlc291cmNlczogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFfSlcbiAgfSk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nLCB7XG4gICAgUm9sZTogJ2Fybjphd3M6aWFtOjoxMjM0NTY3ODkwMTI6cm9sZS9Db29sUm9sZSdcbiAgfSk7XG5cbiAgZXhwZWN0KHN0YWNrKS5ub3QudG9IYXZlUmVzb3VyY2UoJ0FXUzo6SUFNOjpSb2xlJyk7XG59KTtcblxudGVzdCgnZ2V0RGF0YScsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gIGNvbnN0IGF3c1NkayA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1NkaycsIHtcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKCdpZCcpXG4gICAgfSxcbiAgICBwb2xpY3k6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7cmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0V9KVxuICB9KTtcblxuICAvLyBXSEVOXG4gIGNvbnN0IHRva2VuID0gYXdzU2RrLmdldFJlc3BvbnNlRmllbGRSZWZlcmVuY2UoJ0RhdGEnKTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChzdGFjay5yZXNvbHZlKHRva2VuKSkudG9FcXVhbCh7XG4gICAgJ0ZuOjpHZXRBdHQnOiBbXG4gICAgICAnQXdzU2RrRTk2NkZFNDMnLFxuICAgICAgJ0RhdGEnXG4gICAgXVxuICB9KTtcbn0pO1xuXG50ZXN0KCdmYWlscyB3aGVuIGdldERhdGEgaXMgdXNlZCB3aXRoIGBpZ25vcmVFcnJvckNvZGVzTWF0Y2hpbmdgJywgKCkgPT4ge1xuXG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gIGNvbnN0IHJlc291cmNlID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgIG9uVXBkYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnQ2xvdWRXYXRjaExvZ3MnLFxuICAgICAgYWN0aW9uOiAncHV0UmV0ZW50aW9uUG9saWN5JyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiAnL2F3cy9sYW1iZGEvbG9nZ3JvdXAnLFxuICAgICAgICByZXRlbnRpb25JbkRheXM6IDkwXG4gICAgICB9LFxuICAgICAgaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nOiAnLionLFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ0lkJylcbiAgICB9LFxuICAgIHBvbGljeTogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHtyZXNvdXJjZXM6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LkFOWV9SRVNPVVJDRX0pLFxuICB9KTtcblxuICBleHBlY3QoKCkgPT4gcmVzb3VyY2UuZ2V0UmVzcG9uc2VGaWVsZFJlZmVyZW5jZSgnU2hvdWxkRmFpbCcpKS50b1Rocm93KC9gZ2V0RGF0YWAuK2BpZ25vcmVFcnJvckNvZGVzTWF0Y2hpbmdgLyk7XG5cbn0pO1xuXG50ZXN0KCdmYWlscyB3aGVuIGdldERhdGFTdHJpbmcgaXMgdXNlZCB3aXRoIGBpZ25vcmVFcnJvckNvZGVzTWF0Y2hpbmdgJywgKCkgPT4ge1xuXG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gIGNvbnN0IHJlc291cmNlID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrJywge1xuICAgIG9uVXBkYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnQ2xvdWRXYXRjaExvZ3MnLFxuICAgICAgYWN0aW9uOiAncHV0UmV0ZW50aW9uUG9saWN5JyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiAnL2F3cy9sYW1iZGEvbG9nZ3JvdXAnLFxuICAgICAgICByZXRlbnRpb25JbkRheXM6IDkwXG4gICAgICB9LFxuICAgICAgaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nOiAnLionLFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ0lkJyksXG4gICAgfSxcbiAgICBwb2xpY3k6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7cmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0V9KSxcbiAgfSk7XG5cbiAgZXhwZWN0KCgpID0+IHJlc291cmNlLmdldFJlc3BvbnNlRmllbGQoJ1Nob3VsZEZhaWwnKSkudG9UaHJvdygvYGdldERhdGFTdHJpbmdgLitgaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nYC8pO1xuXG59KTtcblxudGVzdCgnZmFpbCB3aGVuIGBQaHlzaWNhbFJlc291cmNlSWQuZnJvbVJlc3BvbnNlYCBpcyB1c2VkIHdpdGggYGlnbm9yZUVycm9yQ29kZXNNYXRjaGluZycsICgpID0+IHtcblxuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgZXhwZWN0KCgpID0+IG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1Nka09uVXBkYXRlJywge1xuICAgIG9uVXBkYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnQ2xvdWRXYXRjaExvZ3MnLFxuICAgICAgYWN0aW9uOiAncHV0UmV0ZW50aW9uUG9saWN5JyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiAnL2F3cy9sYW1iZGEvbG9nZ3JvdXAnLFxuICAgICAgICByZXRlbnRpb25JbkRheXM6IDkwXG4gICAgICB9LFxuICAgICAgaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nOiAnLionLFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQuZnJvbVJlc3BvbnNlKCdSZXNwb25zZScpXG4gICAgfSxcbiAgICBwb2xpY3k6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7cmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0V9KSxcbiAgfSkpLnRvVGhyb3coL2BQaHlzaWNhbFJlc291cmNlSWQuZnJvbVJlc3BvbnNlYC4rYGlnbm9yZUVycm9yQ29kZXNNYXRjaGluZ2AvKTtcblxuICBleHBlY3QoKCkgPT4gbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrT25DcmVhdGUnLCB7XG4gICAgb25DcmVhdGU6IHtcbiAgICAgIHNlcnZpY2U6ICdDbG91ZFdhdGNoTG9ncycsXG4gICAgICBhY3Rpb246ICdwdXRSZXRlbnRpb25Qb2xpY3knLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBsb2dHcm91cE5hbWU6ICcvYXdzL2xhbWJkYS9sb2dncm91cCcsXG4gICAgICAgIHJldGVudGlvbkluRGF5czogOTBcbiAgICAgIH0sXG4gICAgICBpZ25vcmVFcnJvckNvZGVzTWF0Y2hpbmc6ICcuKicsXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5mcm9tUmVzcG9uc2UoJ1Jlc3BvbnNlJylcbiAgICB9LFxuICAgIHBvbGljeTogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHtyZXNvdXJjZXM6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LkFOWV9SRVNPVVJDRX0pLFxuICB9KSkudG9UaHJvdygvYFBoeXNpY2FsUmVzb3VyY2VJZC5mcm9tUmVzcG9uc2VgLitgaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nYC8pO1xuXG4gIGV4cGVjdCgoKSA9PiBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGtPbkRlbGV0ZScsIHtcbiAgICBvbkRlbGV0ZToge1xuICAgICAgc2VydmljZTogJ0Nsb3VkV2F0Y2hMb2dzJyxcbiAgICAgIGFjdGlvbjogJ3B1dFJldGVudGlvblBvbGljeScsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIGxvZ0dyb3VwTmFtZTogJy9hd3MvbGFtYmRhL2xvZ2dyb3VwJyxcbiAgICAgICAgcmV0ZW50aW9uSW5EYXlzOiA5MFxuICAgICAgfSxcbiAgICAgIGlnbm9yZUVycm9yQ29kZXNNYXRjaGluZzogJy4qJyxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLmZyb21SZXNwb25zZSgnUmVzcG9uc2UnKVxuICAgIH0sXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe3Jlc291cmNlczogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFfSksXG4gIH0pKS50b1Rocm93KC9gUGh5c2ljYWxSZXNvdXJjZUlkLmZyb21SZXNwb25zZWAuK2BpZ25vcmVFcnJvckNvZGVzTWF0Y2hpbmdgLyk7XG5cbn0pO1xuXG50ZXN0KCdnZXREYXRhU3RyaW5nJywgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgY29uc3QgYXdzU2RrID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKHN0YWNrLCAnQXdzU2RrMScsIHtcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKCdpZCcpXG4gICAgfSxcbiAgICBwb2xpY3k6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7cmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0V9KSxcbiAgfSk7XG5cbiAgLy8gV0hFTlxuICBuZXcgQXdzQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssICdBd3NTZGsyJywge1xuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnc2VydmljZScsXG4gICAgICBhY3Rpb246ICdhY3Rpb24nLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBhOiBhd3NTZGsuZ2V0UmVzcG9uc2VGaWVsZCgnRGF0YScpXG4gICAgICB9LFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoJ2lkJylcbiAgICB9LFxuICAgIHBvbGljeTogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHtyZXNvdXJjZXM6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LkFOWV9SRVNPVVJDRX0pXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQ3VzdG9tOjpBV1MnLCB7XG4gICAgQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnc2VydmljZScsXG4gICAgICBhY3Rpb246ICdhY3Rpb24nLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBhOiB7XG4gICAgICAgICAgJ0ZuOjpHZXRBdHQnOiBbXG4gICAgICAgICAgICAnQXdzU2RrMTU1QjkxMDcxJyxcbiAgICAgICAgICAgICdEYXRhJ1xuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDoge1xuICAgICAgICAnaWQnOiAnaWQnXG4gICAgICB9XG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCdjYW4gc3BlY2lmeSBsb2cgcmV0ZW50aW9uJywgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcblxuICAvLyBXSEVOXG4gIG5ldyBBd3NDdXN0b21SZXNvdXJjZShzdGFjaywgJ0F3c1NkaycsIHtcbiAgICBvbkNyZWF0ZToge1xuICAgICAgc2VydmljZTogJ3NlcnZpY2UnLFxuICAgICAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKCdpZCcpXG4gICAgfSxcbiAgICBsb2dSZXRlbnRpb246IGxvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfV0VFSyxcbiAgICBwb2xpY3k6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7IHJlc291cmNlczogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFIH0pXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQ3VzdG9tOjpMb2dSZXRlbnRpb24nLCB7XG4gICAgTG9nR3JvdXBOYW1lOiB7XG4gICAgICAnRm46OkpvaW4nOiBbXG4gICAgICAgICcnLFxuICAgICAgICBbXG4gICAgICAgICAgJy9hd3MvbGFtYmRhLycsXG4gICAgICAgICAge1xuICAgICAgICAgICAgUmVmOiAnQVdTNjc5ZjUzZmFjMDAyNDMwY2IwZGE1Yjc5ODJiZDIyODcyRDE2NEM0QydcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIF1cbiAgICB9LFxuICAgIFJldGVudGlvbkluRGF5czogN1xuICB9KTtcbn0pO1xuIl19

@@ -116,3 +116,3 @@ {

"S3Bucket": {
"Ref": "AssetParameters4718577725532d08cf875314c622b10bfebd0c4f04b32068eaab4efc82808d35S3BucketCF631B76"
"Ref": "AssetParameters7e0ab73835911f6cf537c945c2d01caa68ab4279b34be0bbc98161e6354c1479S3Bucket62E7A741"
},

@@ -130,3 +130,3 @@ "S3Key": {

{
"Ref": "AssetParameters4718577725532d08cf875314c622b10bfebd0c4f04b32068eaab4efc82808d35S3VersionKeyDA4009C2"
"Ref": "AssetParameters7e0ab73835911f6cf537c945c2d01caa68ab4279b34be0bbc98161e6354c1479S3VersionKey50B9BA00"
}

@@ -144,3 +144,3 @@ ]

{
"Ref": "AssetParameters4718577725532d08cf875314c622b10bfebd0c4f04b32068eaab4efc82808d35S3VersionKeyDA4009C2"
"Ref": "AssetParameters7e0ab73835911f6cf537c945c2d01caa68ab4279b34be0bbc98161e6354c1479S3VersionKey50B9BA00"
}

@@ -248,13 +248,13 @@ ]

"Parameters": {
"AssetParameters4718577725532d08cf875314c622b10bfebd0c4f04b32068eaab4efc82808d35S3BucketCF631B76": {
"AssetParameters7e0ab73835911f6cf537c945c2d01caa68ab4279b34be0bbc98161e6354c1479S3Bucket62E7A741": {
"Type": "String",
"Description": "S3 bucket for asset \"4718577725532d08cf875314c622b10bfebd0c4f04b32068eaab4efc82808d35\""
"Description": "S3 bucket for asset \"7e0ab73835911f6cf537c945c2d01caa68ab4279b34be0bbc98161e6354c1479\""
},
"AssetParameters4718577725532d08cf875314c622b10bfebd0c4f04b32068eaab4efc82808d35S3VersionKeyDA4009C2": {
"AssetParameters7e0ab73835911f6cf537c945c2d01caa68ab4279b34be0bbc98161e6354c1479S3VersionKey50B9BA00": {
"Type": "String",
"Description": "S3 key for asset version \"4718577725532d08cf875314c622b10bfebd0c4f04b32068eaab4efc82808d35\""
"Description": "S3 key for asset version \"7e0ab73835911f6cf537c945c2d01caa68ab4279b34be0bbc98161e6354c1479\""
},
"AssetParameters4718577725532d08cf875314c622b10bfebd0c4f04b32068eaab4efc82808d35ArtifactHashA08117AC": {
"AssetParameters7e0ab73835911f6cf537c945c2d01caa68ab4279b34be0bbc98161e6354c1479ArtifactHash19FB1963": {
"Type": "String",
"Description": "Artifact hash for asset \"4718577725532d08cf875314c622b10bfebd0c4f04b32068eaab4efc82808d35\""
"Description": "Artifact hash for asset \"7e0ab73835911f6cf537c945c2d01caa68ab4279b34be0bbc98161e6354c1479\""
}

@@ -261,0 +261,0 @@ },

@@ -91,3 +91,3 @@ {

"S3Bucket": {
"Ref": "AssetParameters865603dd9d562e52d496bad5ef42cafdeb7c05931986d8ad11deb93dc0e436e6S3BucketF5C9A372"
"Ref": "AssetParameters4e58be255351bb020a688273c7de89050b27ce786aa929bb9aae47d4c205e9d6S3Bucket158A0E64"
},

@@ -105,3 +105,3 @@ "S3Key": {

{
"Ref": "AssetParameters865603dd9d562e52d496bad5ef42cafdeb7c05931986d8ad11deb93dc0e436e6S3VersionKey4F7573DF"
"Ref": "AssetParameters4e58be255351bb020a688273c7de89050b27ce786aa929bb9aae47d4c205e9d6S3VersionKeyD4C466BB"
}

@@ -119,3 +119,3 @@ ]

{
"Ref": "AssetParameters865603dd9d562e52d496bad5ef42cafdeb7c05931986d8ad11deb93dc0e436e6S3VersionKey4F7573DF"
"Ref": "AssetParameters4e58be255351bb020a688273c7de89050b27ce786aa929bb9aae47d4c205e9d6S3VersionKeyD4C466BB"
}

@@ -206,3 +206,3 @@ ]

"S3Bucket": {
"Ref": "AssetParameters082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33aS3Bucket347EC9ED"
"Ref": "AssetParameters17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4S3Bucket732DB36D"
},

@@ -220,3 +220,3 @@ "S3Key": {

{
"Ref": "AssetParameters082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33aS3VersionKeyDE3A9B7E"
"Ref": "AssetParameters17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4S3VersionKey2A0FDBB2"
}

@@ -234,3 +234,3 @@ ]

{
"Ref": "AssetParameters082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33aS3VersionKeyDE3A9B7E"
"Ref": "AssetParameters17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4S3VersionKey2A0FDBB2"
}

@@ -588,3 +588,3 @@ ]

"S3Bucket": {
"Ref": "AssetParameters082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33aS3Bucket347EC9ED"
"Ref": "AssetParameters17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4S3Bucket732DB36D"
},

@@ -602,3 +602,3 @@ "S3Key": {

{
"Ref": "AssetParameters082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33aS3VersionKeyDE3A9B7E"
"Ref": "AssetParameters17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4S3VersionKey2A0FDBB2"
}

@@ -616,3 +616,3 @@ ]

{
"Ref": "AssetParameters082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33aS3VersionKeyDE3A9B7E"
"Ref": "AssetParameters17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4S3VersionKey2A0FDBB2"
}

@@ -733,3 +733,3 @@ ]

"S3Bucket": {
"Ref": "AssetParameters082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33aS3Bucket347EC9ED"
"Ref": "AssetParameters17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4S3Bucket732DB36D"
},

@@ -747,3 +747,3 @@ "S3Key": {

{
"Ref": "AssetParameters082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33aS3VersionKeyDE3A9B7E"
"Ref": "AssetParameters17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4S3VersionKey2A0FDBB2"
}

@@ -761,3 +761,3 @@ ]

{
"Ref": "AssetParameters082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33aS3VersionKeyDE3A9B7E"
"Ref": "AssetParameters17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4S3VersionKey2A0FDBB2"
}

@@ -875,3 +875,3 @@ ]

"S3Bucket": {
"Ref": "AssetParameters082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33aS3Bucket347EC9ED"
"Ref": "AssetParameters17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4S3Bucket732DB36D"
},

@@ -889,3 +889,3 @@ "S3Key": {

{
"Ref": "AssetParameters082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33aS3VersionKeyDE3A9B7E"
"Ref": "AssetParameters17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4S3VersionKey2A0FDBB2"
}

@@ -903,3 +903,3 @@ ]

{
"Ref": "AssetParameters082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33aS3VersionKeyDE3A9B7E"
"Ref": "AssetParameters17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4S3VersionKey2A0FDBB2"
}

@@ -1048,25 +1048,25 @@ ]

"Parameters": {
"AssetParameters865603dd9d562e52d496bad5ef42cafdeb7c05931986d8ad11deb93dc0e436e6S3BucketF5C9A372": {
"AssetParameters4e58be255351bb020a688273c7de89050b27ce786aa929bb9aae47d4c205e9d6S3Bucket158A0E64": {
"Type": "String",
"Description": "S3 bucket for asset \"865603dd9d562e52d496bad5ef42cafdeb7c05931986d8ad11deb93dc0e436e6\""
"Description": "S3 bucket for asset \"4e58be255351bb020a688273c7de89050b27ce786aa929bb9aae47d4c205e9d6\""
},
"AssetParameters865603dd9d562e52d496bad5ef42cafdeb7c05931986d8ad11deb93dc0e436e6S3VersionKey4F7573DF": {
"AssetParameters4e58be255351bb020a688273c7de89050b27ce786aa929bb9aae47d4c205e9d6S3VersionKeyD4C466BB": {
"Type": "String",
"Description": "S3 key for asset version \"865603dd9d562e52d496bad5ef42cafdeb7c05931986d8ad11deb93dc0e436e6\""
"Description": "S3 key for asset version \"4e58be255351bb020a688273c7de89050b27ce786aa929bb9aae47d4c205e9d6\""
},
"AssetParameters865603dd9d562e52d496bad5ef42cafdeb7c05931986d8ad11deb93dc0e436e6ArtifactHash00378E6C": {
"AssetParameters4e58be255351bb020a688273c7de89050b27ce786aa929bb9aae47d4c205e9d6ArtifactHash60E41BCF": {
"Type": "String",
"Description": "Artifact hash for asset \"865603dd9d562e52d496bad5ef42cafdeb7c05931986d8ad11deb93dc0e436e6\""
"Description": "Artifact hash for asset \"4e58be255351bb020a688273c7de89050b27ce786aa929bb9aae47d4c205e9d6\""
},
"AssetParameters082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33aS3Bucket347EC9ED": {
"AssetParameters17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4S3Bucket732DB36D": {
"Type": "String",
"Description": "S3 bucket for asset \"082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33a\""
"Description": "S3 bucket for asset \"17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4\""
},
"AssetParameters082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33aS3VersionKeyDE3A9B7E": {
"AssetParameters17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4S3VersionKey2A0FDBB2": {
"Type": "String",
"Description": "S3 key for asset version \"082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33a\""
"Description": "S3 key for asset version \"17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4\""
},
"AssetParameters082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33aArtifactHash0DA92241": {
"AssetParameters17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4ArtifactHashC92EB69E": {
"Type": "String",
"Description": "Artifact hash for asset \"082715a6f74a051218c287c9750d2fff07912878d011fad47eb21f33f335a33a\""
"Description": "Artifact hash for asset \"17429b8bbbb0484d167711d8d3baf4abc55be3663b0f19233952a7fa9d9db8d4\""
},

@@ -1073,0 +1073,0 @@ "AssetParametersdb961fc9d087616ad76339bd5135f518cea24001f866a17067a1024235128511S3Bucket776FD46E": {

@@ -20,7 +20,7 @@ "use strict";

if (!bucketName) {
throw new Error(`"BucketName" is required`);
throw new Error('"BucketName" is required');
}
const contents = event.ResourceProperties[api.PROP_CONTENTS];
if (!contents) {
throw new Error(`"Contents" is required`);
throw new Error('"Contents" is required');
}

@@ -58,7 +58,7 @@ // determine the object key which is the physical ID of the resource.

if (!bucketName) {
throw new Error(`"BucketName" is required`);
throw new Error('"BucketName" is required');
}
const objectKey = event.PhysicalResourceId;
if (!objectKey) {
throw new Error(`PhysicalResourceId expected for DELETE events`);
throw new Error('PhysicalResourceId expected for DELETE events');
}

@@ -71,2 +71,2 @@ await s3.deleteObject({

exports.deleteObject = deleteObject;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBRTdCLE1BQU0sRUFBRSxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBRWpCLEtBQUssVUFBVSxPQUFPLENBQUMsS0FBK0M7SUFDM0UsUUFBUSxLQUFLLENBQUMsV0FBVyxFQUFFO1FBQ3pCLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxRQUFRO1lBQ1gsT0FBTyxNQUFNLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVoQyxLQUFLLFFBQVE7WUFDWCxPQUFPLE1BQU0sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3BDO0FBQ0gsQ0FBQztBQVRELDBCQVNDO0FBRU0sS0FBSyxVQUFVLFNBQVMsQ0FBQyxLQUErQztJQUM3RSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbEUsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztLQUFFO0lBRWpFLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0QsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztLQUFFO0lBRTdELHFFQUFxRTtJQUNyRSw0RUFBNEU7SUFDNUUsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUM7SUFFNUksb0JBQW9CO0lBQ3BCLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUM3QixTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNqQztJQUVELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxDQUFDO0lBRXRFLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLFVBQVUsSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBRXZELE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUM5QixNQUFNLEVBQUUsVUFBVTtRQUNsQixHQUFHLEVBQUUsU0FBUztRQUNkLElBQUksRUFBRSxRQUFRO1FBQ2QsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQzVDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUViLDZHQUE2RztJQUM3Ryw2R0FBNkc7SUFDN0csc0JBQXNCO0lBRXRCLE9BQU87UUFDTCxrQkFBa0IsRUFBRSxTQUFTO1FBQzdCLElBQUksRUFBRTtZQUNKLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLFNBQVM7WUFDaEMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDMUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsV0FBVyxVQUFVLHFCQUFxQixTQUFTLEVBQUU7U0FDdEU7S0FDRixDQUFDO0FBQ0osQ0FBQztBQXZDRCw4QkF1Q0M7QUFFTSxLQUFLLFVBQVUsWUFBWSxDQUFDLEtBQStDO0lBQ2hGLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUM7SUFDdkQsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztLQUFFO0lBRWpFLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztJQUMzQyxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0tBQ2xFO0lBRUQsTUFBTSxFQUFFLENBQUMsWUFBWSxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLEdBQUcsRUFBRSxTQUFTO0tBQ2YsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ2YsQ0FBQztBQWJELG9DQWFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6IG5vLWNvbnNvbGVcbmltcG9ydCAqIGFzIEFXUyBmcm9tICdhd3Mtc2RrJztcbmltcG9ydCAqIGFzIGFwaSBmcm9tICcuL2FwaSc7XG5cbmNvbnN0IHMzID0gbmV3IEFXUy5TMygpO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gb25FdmVudChldmVudDogQVdTQ0RLQXN5bmNDdXN0b21SZXNvdXJjZS5PbkV2ZW50UmVxdWVzdCkge1xuICBzd2l0Y2ggKGV2ZW50LlJlcXVlc3RUeXBlKSB7XG4gICAgY2FzZSAnQ3JlYXRlJzpcbiAgICBjYXNlICdVcGRhdGUnOlxuICAgICAgcmV0dXJuIGF3YWl0IHB1dE9iamVjdChldmVudCk7XG5cbiAgICBjYXNlICdEZWxldGUnOlxuICAgICAgcmV0dXJuIGF3YWl0IGRlbGV0ZU9iamVjdChldmVudCk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHB1dE9iamVjdChldmVudDogQVdTQ0RLQXN5bmNDdXN0b21SZXNvdXJjZS5PbkV2ZW50UmVxdWVzdCk6IFByb21pc2U8QVdTQ0RLQXN5bmNDdXN0b21SZXNvdXJjZS5PbkV2ZW50UmVzcG9uc2U+IHtcbiAgY29uc3QgYnVja2V0TmFtZSA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllc1thcGkuUFJPUF9CVUNLRVRfTkFNRV07XG4gIGlmICghYnVja2V0TmFtZSkgeyB0aHJvdyBuZXcgRXJyb3IoYFwiQnVja2V0TmFtZVwiIGlzIHJlcXVpcmVkYCk7IH1cblxuICBjb25zdCBjb250ZW50cyA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllc1thcGkuUFJPUF9DT05URU5UU107XG4gIGlmICghY29udGVudHMpIHsgdGhyb3cgbmV3IEVycm9yKGBcIkNvbnRlbnRzXCIgaXMgcmVxdWlyZWRgKTsgfVxuXG4gIC8vIGRldGVybWluZSB0aGUgb2JqZWN0IGtleSB3aGljaCBpcyB0aGUgcGh5c2ljYWwgSUQgb2YgdGhlIHJlc291cmNlLlxuICAvLyBpZiBpdCB3YXMgbm90IHByb3ZpZGVkIGJ5IHRoZSB1c2VyLCB3ZSBnZW5lcmF0ZWQgaXQgdXNpbmcgdGhlIHJlcXVlc3QgSUQuXG4gIGxldCBvYmplY3RLZXkgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXNbYXBpLlBST1BfT0JKRUNUX0tFWV0gfHwgZXZlbnQuTG9naWNhbFJlc291cmNlSWQgKyAnLScgKyBldmVudC5SZXF1ZXN0SWQucmVwbGFjZSgvLS9nLCAnJykgKyAnLnR4dCc7XG5cbiAgLy8gdHJpbSB0cmFpbGluZyBgL2BcbiAgaWYgKG9iamVjdEtleS5zdGFydHNXaXRoKCcvJykpIHtcbiAgICBvYmplY3RLZXkgPSBvYmplY3RLZXkuc3Vic3RyKDEpO1xuICB9XG5cbiAgY29uc3QgcHVibGljUmVhZCA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllc1thcGkuUFJPUF9QVUJMSUNdIHx8IGZhbHNlO1xuXG4gIGNvbnNvbGUubG9nKGB3cml0aW5nIHMzOi8vJHtidWNrZXROYW1lfS8ke29iamVjdEtleX1gKTtcblxuICBjb25zdCByZXNwID0gYXdhaXQgczMucHV0T2JqZWN0KHtcbiAgICBCdWNrZXQ6IGJ1Y2tldE5hbWUsXG4gICAgS2V5OiBvYmplY3RLZXksXG4gICAgQm9keTogY29udGVudHMsXG4gICAgQUNMOiBwdWJsaWNSZWFkID8gJ3B1YmxpYy1yZWFkJyA6IHVuZGVmaW5lZFxuICB9KS5wcm9taXNlKCk7XG5cbiAgLy8gTk9URTogdXBkYXRlcyB0byB0aGUgb2JqZWN0IGtleSB3aWxsIGJlIGhhbmRsZWQgYXV0b21hdGljYWxseTogYSBuZXcgb2JqZWN0IHdpbGwgYmUgcHV0IGFuZCB0aGVuIHdlIHJldHVyblxuICAvLyB0aGUgbmV3IG5hbWUuIHRoaXMgd2lsbCB0ZWxsIGNsb3VkZm9ybWF0aW9uIHRoYXQgdGhlIHJlc291cmNlIGhhcyBiZWVuIHJlcGxhY2VkIGFuZCBpdCB3aWxsIGlzc3VlIGEgREVMRVRFXG4gIC8vIGZvciB0aGUgb2xkIG9iamVjdC5cblxuICByZXR1cm4ge1xuICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogb2JqZWN0S2V5LFxuICAgIERhdGE6IHtcbiAgICAgIFthcGkuQVRUUl9PQkpFQ1RfS0VZXTogb2JqZWN0S2V5LFxuICAgICAgW2FwaS5BVFRSX0VUQUddOiByZXNwLkVUYWcsXG4gICAgICBbYXBpLkFUVFJfVVJMXTogYGh0dHBzOi8vJHtidWNrZXROYW1lfS5zMy5hbWF6b25hd3MuY29tLyR7b2JqZWN0S2V5fWBcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVPYmplY3QoZXZlbnQ6IEFXU0NES0FzeW5jQ3VzdG9tUmVzb3VyY2UuT25FdmVudFJlcXVlc3QpIHtcbiAgY29uc3QgYnVja2V0TmFtZSA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5CdWNrZXROYW1lO1xuICBpZiAoIWJ1Y2tldE5hbWUpIHsgdGhyb3cgbmV3IEVycm9yKGBcIkJ1Y2tldE5hbWVcIiBpcyByZXF1aXJlZGApOyB9XG5cbiAgY29uc3Qgb2JqZWN0S2V5ID0gZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkO1xuICBpZiAoIW9iamVjdEtleSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUGh5c2ljYWxSZXNvdXJjZUlkIGV4cGVjdGVkIGZvciBERUxFVEUgZXZlbnRzYCk7XG4gIH1cblxuICBhd2FpdCBzMy5kZWxldGVPYmplY3Qoe1xuICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICBLZXk6IG9iamVjdEtleSxcbiAgfSkucHJvbWlzZSgpO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBRTdCLE1BQU0sRUFBRSxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBRWpCLEtBQUssVUFBVSxPQUFPLENBQUMsS0FBK0M7SUFDM0UsUUFBUSxLQUFLLENBQUMsV0FBVyxFQUFFO1FBQ3pCLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxRQUFRO1lBQ1gsT0FBTyxNQUFNLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVoQyxLQUFLLFFBQVE7WUFDWCxPQUFPLE1BQU0sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3BDO0FBQ0gsQ0FBQztBQVRELDBCQVNDO0FBRU0sS0FBSyxVQUFVLFNBQVMsQ0FBQyxLQUErQztJQUM3RSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbEUsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztLQUFFO0lBRWpFLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0QsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztLQUFFO0lBRTdELHFFQUFxRTtJQUNyRSw0RUFBNEU7SUFDNUUsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUM7SUFFNUksb0JBQW9CO0lBQ3BCLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUM3QixTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNqQztJQUVELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxDQUFDO0lBRXRFLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLFVBQVUsSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBRXZELE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUM5QixNQUFNLEVBQUUsVUFBVTtRQUNsQixHQUFHLEVBQUUsU0FBUztRQUNkLElBQUksRUFBRSxRQUFRO1FBQ2QsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQzVDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUViLDZHQUE2RztJQUM3Ryw2R0FBNkc7SUFDN0csc0JBQXNCO0lBRXRCLE9BQU87UUFDTCxrQkFBa0IsRUFBRSxTQUFTO1FBQzdCLElBQUksRUFBRTtZQUNKLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLFNBQVM7WUFDaEMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDMUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsV0FBVyxVQUFVLHFCQUFxQixTQUFTLEVBQUU7U0FDdEU7S0FDRixDQUFDO0FBQ0osQ0FBQztBQXZDRCw4QkF1Q0M7QUFFTSxLQUFLLFVBQVUsWUFBWSxDQUFDLEtBQStDO0lBQ2hGLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUM7SUFDdkQsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztLQUFFO0lBRWpFLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztJQUMzQyxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0tBQ2xFO0lBRUQsTUFBTSxFQUFFLENBQUMsWUFBWSxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLEdBQUcsRUFBRSxTQUFTO0tBQ2YsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ2YsQ0FBQztBQWJELG9DQWFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6IG5vLWNvbnNvbGVcbmltcG9ydCAqIGFzIEFXUyBmcm9tICdhd3Mtc2RrJztcbmltcG9ydCAqIGFzIGFwaSBmcm9tICcuL2FwaSc7XG5cbmNvbnN0IHMzID0gbmV3IEFXUy5TMygpO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gb25FdmVudChldmVudDogQVdTQ0RLQXN5bmNDdXN0b21SZXNvdXJjZS5PbkV2ZW50UmVxdWVzdCkge1xuICBzd2l0Y2ggKGV2ZW50LlJlcXVlc3RUeXBlKSB7XG4gICAgY2FzZSAnQ3JlYXRlJzpcbiAgICBjYXNlICdVcGRhdGUnOlxuICAgICAgcmV0dXJuIGF3YWl0IHB1dE9iamVjdChldmVudCk7XG5cbiAgICBjYXNlICdEZWxldGUnOlxuICAgICAgcmV0dXJuIGF3YWl0IGRlbGV0ZU9iamVjdChldmVudCk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHB1dE9iamVjdChldmVudDogQVdTQ0RLQXN5bmNDdXN0b21SZXNvdXJjZS5PbkV2ZW50UmVxdWVzdCk6IFByb21pc2U8QVdTQ0RLQXN5bmNDdXN0b21SZXNvdXJjZS5PbkV2ZW50UmVzcG9uc2U+IHtcbiAgY29uc3QgYnVja2V0TmFtZSA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllc1thcGkuUFJPUF9CVUNLRVRfTkFNRV07XG4gIGlmICghYnVja2V0TmFtZSkgeyB0aHJvdyBuZXcgRXJyb3IoJ1wiQnVja2V0TmFtZVwiIGlzIHJlcXVpcmVkJyk7IH1cblxuICBjb25zdCBjb250ZW50cyA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllc1thcGkuUFJPUF9DT05URU5UU107XG4gIGlmICghY29udGVudHMpIHsgdGhyb3cgbmV3IEVycm9yKCdcIkNvbnRlbnRzXCIgaXMgcmVxdWlyZWQnKTsgfVxuXG4gIC8vIGRldGVybWluZSB0aGUgb2JqZWN0IGtleSB3aGljaCBpcyB0aGUgcGh5c2ljYWwgSUQgb2YgdGhlIHJlc291cmNlLlxuICAvLyBpZiBpdCB3YXMgbm90IHByb3ZpZGVkIGJ5IHRoZSB1c2VyLCB3ZSBnZW5lcmF0ZWQgaXQgdXNpbmcgdGhlIHJlcXVlc3QgSUQuXG4gIGxldCBvYmplY3RLZXkgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXNbYXBpLlBST1BfT0JKRUNUX0tFWV0gfHwgZXZlbnQuTG9naWNhbFJlc291cmNlSWQgKyAnLScgKyBldmVudC5SZXF1ZXN0SWQucmVwbGFjZSgvLS9nLCAnJykgKyAnLnR4dCc7XG5cbiAgLy8gdHJpbSB0cmFpbGluZyBgL2BcbiAgaWYgKG9iamVjdEtleS5zdGFydHNXaXRoKCcvJykpIHtcbiAgICBvYmplY3RLZXkgPSBvYmplY3RLZXkuc3Vic3RyKDEpO1xuICB9XG5cbiAgY29uc3QgcHVibGljUmVhZCA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllc1thcGkuUFJPUF9QVUJMSUNdIHx8IGZhbHNlO1xuXG4gIGNvbnNvbGUubG9nKGB3cml0aW5nIHMzOi8vJHtidWNrZXROYW1lfS8ke29iamVjdEtleX1gKTtcblxuICBjb25zdCByZXNwID0gYXdhaXQgczMucHV0T2JqZWN0KHtcbiAgICBCdWNrZXQ6IGJ1Y2tldE5hbWUsXG4gICAgS2V5OiBvYmplY3RLZXksXG4gICAgQm9keTogY29udGVudHMsXG4gICAgQUNMOiBwdWJsaWNSZWFkID8gJ3B1YmxpYy1yZWFkJyA6IHVuZGVmaW5lZFxuICB9KS5wcm9taXNlKCk7XG5cbiAgLy8gTk9URTogdXBkYXRlcyB0byB0aGUgb2JqZWN0IGtleSB3aWxsIGJlIGhhbmRsZWQgYXV0b21hdGljYWxseTogYSBuZXcgb2JqZWN0IHdpbGwgYmUgcHV0IGFuZCB0aGVuIHdlIHJldHVyblxuICAvLyB0aGUgbmV3IG5hbWUuIHRoaXMgd2lsbCB0ZWxsIGNsb3VkZm9ybWF0aW9uIHRoYXQgdGhlIHJlc291cmNlIGhhcyBiZWVuIHJlcGxhY2VkIGFuZCBpdCB3aWxsIGlzc3VlIGEgREVMRVRFXG4gIC8vIGZvciB0aGUgb2xkIG9iamVjdC5cblxuICByZXR1cm4ge1xuICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogb2JqZWN0S2V5LFxuICAgIERhdGE6IHtcbiAgICAgIFthcGkuQVRUUl9PQkpFQ1RfS0VZXTogb2JqZWN0S2V5LFxuICAgICAgW2FwaS5BVFRSX0VUQUddOiByZXNwLkVUYWcsXG4gICAgICBbYXBpLkFUVFJfVVJMXTogYGh0dHBzOi8vJHtidWNrZXROYW1lfS5zMy5hbWF6b25hd3MuY29tLyR7b2JqZWN0S2V5fWBcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVPYmplY3QoZXZlbnQ6IEFXU0NES0FzeW5jQ3VzdG9tUmVzb3VyY2UuT25FdmVudFJlcXVlc3QpIHtcbiAgY29uc3QgYnVja2V0TmFtZSA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5CdWNrZXROYW1lO1xuICBpZiAoIWJ1Y2tldE5hbWUpIHsgdGhyb3cgbmV3IEVycm9yKCdcIkJ1Y2tldE5hbWVcIiBpcyByZXF1aXJlZCcpOyB9XG5cbiAgY29uc3Qgb2JqZWN0S2V5ID0gZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkO1xuICBpZiAoIW9iamVjdEtleSkge1xuICAgIHRocm93IG5ldyBFcnJvcignUGh5c2ljYWxSZXNvdXJjZUlkIGV4cGVjdGVkIGZvciBERUxFVEUgZXZlbnRzJyk7XG4gIH1cblxuICBhd2FpdCBzMy5kZWxldGVPYmplY3Qoe1xuICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICBLZXk6IG9iamVjdEtleSxcbiAgfSkucHJvbWlzZSgpO1xufVxuIl19

@@ -63,2 +63,2 @@ "use strict";

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInMzLWZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtREFBbUQ7QUFDbkQsd0NBQXdDO0FBQ3hDLDhDQUE4QztBQUU5Qyx3Q0FBaUQ7QUFDakQsNkJBQTZCO0FBQzdCLG1DQUFtQztBQUNuQyw2Q0FBNkM7QUE0QjdDLE1BQWEsTUFBTyxTQUFRLGdCQUFTO0lBS25DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBa0I7UUFDMUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUN4RCxRQUFRLEVBQUUsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDMUMsWUFBWSxFQUFFLGdCQUFnQjtZQUM5QixVQUFVLEVBQUU7Z0JBQ1YsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVU7Z0JBQy9DLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxRQUFRO2dCQUNuQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDdEMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU07YUFDaEM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDO0NBQ0Y7QUF2QkQsd0JBdUJDO0FBRUQsTUFBTSxjQUFlLFNBQVEsZ0JBQVM7SUFjcEMsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDdkQsY0FBYyxFQUFFLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7Z0JBQzNELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO2dCQUNwRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXO2dCQUNuQyxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsYUFBYSxFQUFFO29CQUNiLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQzt3QkFDdEIsU0FBUyxFQUFFLENBQUUsR0FBRyxDQUFFO3dCQUNsQixPQUFPLEVBQUU7NEJBQ1AsZUFBZTs0QkFDZixlQUFlOzRCQUNmLFVBQVU7NEJBQ1Ysa0JBQWtCOzRCQUNsQixlQUFlOzRCQUNmLFdBQVc7eUJBQ1o7cUJBQUUsQ0FBQztpQkFDTDthQUNKLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBbENEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFnQjtRQUN4QyxNQUFNLEtBQUssR0FBRyxZQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLE1BQU0sRUFBRSxHQUFHLG9EQUFvRCxDQUFDO1FBQ2hFLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBbUIsSUFBSSxJQUFJLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekYsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0EyQkYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZm4gZnJvbSAnQGF3cy1jZGsvYXdzLWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdAYXdzLWNkay9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdAYXdzLWNkay9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ0Bhd3MtY2RrL2F3cy1zMyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIFN0YWNrIH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY3IgZnJvbSAnLi4vLi4vLi4vbGliJztcbmltcG9ydCAqIGFzIGFwaSBmcm9tICcuL3MzLWZpbGUtaGFuZGxlci9hcGknO1xuXG5pbnRlcmZhY2UgUzNGaWxlUHJvcHMge1xuICAvKipcbiAgICogVGhlIGJ1Y2tldCBpbiB3aGljaCB0aGUgZmlsZSB3aWxsIGJlIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBidWNrZXQ6IHMzLklCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBvYmplY3Qga2V5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGF1dG9tYXRpY2FsbHktZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBvYmplY3RLZXk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50cyBvZiB0aGUgZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnRzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGlzIGZpbGUgc2hvdWxkIGhhdmUgcHVibGljLXJlYWQgcGVybWlzc2lvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwdWJsaWM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgUzNGaWxlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IG9iamVjdEtleTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBldGFnOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFMzRmlsZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IGNmbi5DdXN0b21SZXNvdXJjZSh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBwcm92aWRlcjogUzNGaWxlUHJvdmlkZXIuZ2V0T3JDcmVhdGUodGhpcyksXG4gICAgICByZXNvdXJjZVR5cGU6ICdDdXN0b206OlMzRmlsZScsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIFthcGkuUFJPUF9CVUNLRVRfTkFNRV06IHByb3BzLmJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICBbYXBpLlBST1BfQ09OVEVOVFNdOiBwcm9wcy5jb250ZW50cyxcbiAgICAgICAgW2FwaS5QUk9QX09CSkVDVF9LRVldOiBwcm9wcy5vYmplY3RLZXksXG4gICAgICAgIFthcGkuUFJPUF9QVUJMSUNdOiBwcm9wcy5wdWJsaWNcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMub2JqZWN0S2V5ID0gcmVzb3VyY2UuZ2V0QXR0U3RyaW5nKGFwaS5BVFRSX09CSkVDVF9LRVkpO1xuICAgIHRoaXMudXJsID0gcmVzb3VyY2UuZ2V0QXR0U3RyaW5nKGFwaS5BVFRSX1VSTCk7XG4gICAgdGhpcy5ldGFnID0gcmVzb3VyY2UuZ2V0QXR0U3RyaW5nKGFwaS5BVFRSX0VUQUcpO1xuICB9XG59XG5cbmNsYXNzIFMzRmlsZVByb3ZpZGVyIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc2luZ2xldG9uIHByb3ZpZGVyLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXRPckNyZWF0ZShzY29wZTogQ29uc3RydWN0KSB7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZihzY29wZSk7XG4gICAgY29uc3QgaWQgPSAnY29tLmFtYXpvbmF3cy5jZGsuY3VzdG9tLXJlc291cmNlcy5zM2ZpbGUtcHJvdmlkZXInO1xuICAgIGNvbnN0IHggPSBzdGFjay5ub2RlLnRyeUZpbmRDaGlsZChpZCkgYXMgUzNGaWxlUHJvdmlkZXIgfHwgbmV3IFMzRmlsZVByb3ZpZGVyKHN0YWNrLCBpZCk7XG4gICAgcmV0dXJuIHgucHJvdmlkZXI7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHByb3ZpZGVyOiBjci5Qcm92aWRlcjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMucHJvdmlkZXIgPSBuZXcgY3IuUHJvdmlkZXIodGhpcywgJ3MzZmlsZS1wcm92aWRlcicsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsICdzM2ZpbGUtb24tZXZlbnQnLCB7XG4gICAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnczMtZmlsZS1oYW5kbGVyJykpLFxuICAgICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTBfWCxcbiAgICAgICAgaGFuZGxlcjogJ2luZGV4Lm9uRXZlbnQnLFxuICAgICAgICBpbml0aWFsUG9saWN5OiBbXG4gICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgcmVzb3VyY2VzOiBbICcqJyBdLFxuICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAnczM6R2V0T2JqZWN0KicsXG4gICAgICAgICAgICAgICdzMzpHZXRCdWNrZXQqJyxcbiAgICAgICAgICAgICAgJ3MzOkxpc3QqJyxcbiAgICAgICAgICAgICAgJ3MzOkRlbGV0ZU9iamVjdConLFxuICAgICAgICAgICAgICAnczM6UHV0T2JqZWN0KicsXG4gICAgICAgICAgICAgICdzMzpBYm9ydConXG4gICAgICAgICAgICBdIH0pXG4gICAgICAgICAgXVxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInMzLWZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtREFBbUQ7QUFDbkQsd0NBQXdDO0FBQ3hDLDhDQUE4QztBQUU5Qyx3Q0FBaUQ7QUFDakQsNkJBQTZCO0FBQzdCLG1DQUFtQztBQUNuQyw2Q0FBNkM7QUE0QjdDLE1BQWEsTUFBTyxTQUFRLGdCQUFTO0lBS25DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBa0I7UUFDMUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUN4RCxRQUFRLEVBQUUsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDMUMsWUFBWSxFQUFFLGdCQUFnQjtZQUM5QixVQUFVLEVBQUU7Z0JBQ1YsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVU7Z0JBQy9DLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxRQUFRO2dCQUNuQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDdEMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU07YUFDaEM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDO0NBQ0Y7QUF2QkQsd0JBdUJDO0FBRUQsTUFBTSxjQUFlLFNBQVEsZ0JBQVM7SUFjcEMsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDdkQsY0FBYyxFQUFFLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7Z0JBQzNELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO2dCQUNwRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXO2dCQUNuQyxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsYUFBYSxFQUFFO29CQUNiLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQzt3QkFDdEIsU0FBUyxFQUFFLENBQUUsR0FBRyxDQUFFO3dCQUNsQixPQUFPLEVBQUU7NEJBQ1AsZUFBZTs0QkFDZixlQUFlOzRCQUNmLFVBQVU7NEJBQ1Ysa0JBQWtCOzRCQUNsQixlQUFlOzRCQUNmLFdBQVc7eUJBQ1o7cUJBQUUsQ0FBQztpQkFDUDthQUNGLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBbENEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFnQjtRQUN4QyxNQUFNLEtBQUssR0FBRyxZQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLE1BQU0sRUFBRSxHQUFHLG9EQUFvRCxDQUFDO1FBQ2hFLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBbUIsSUFBSSxJQUFJLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekYsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0EyQkYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZm4gZnJvbSAnQGF3cy1jZGsvYXdzLWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdAYXdzLWNkay9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdAYXdzLWNkay9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ0Bhd3MtY2RrL2F3cy1zMyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIFN0YWNrIH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY3IgZnJvbSAnLi4vLi4vLi4vbGliJztcbmltcG9ydCAqIGFzIGFwaSBmcm9tICcuL3MzLWZpbGUtaGFuZGxlci9hcGknO1xuXG5pbnRlcmZhY2UgUzNGaWxlUHJvcHMge1xuICAvKipcbiAgICogVGhlIGJ1Y2tldCBpbiB3aGljaCB0aGUgZmlsZSB3aWxsIGJlIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBidWNrZXQ6IHMzLklCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBvYmplY3Qga2V5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGF1dG9tYXRpY2FsbHktZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBvYmplY3RLZXk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50cyBvZiB0aGUgZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnRzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGlzIGZpbGUgc2hvdWxkIGhhdmUgcHVibGljLXJlYWQgcGVybWlzc2lvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwdWJsaWM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgUzNGaWxlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IG9iamVjdEtleTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBldGFnOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFMzRmlsZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IGNmbi5DdXN0b21SZXNvdXJjZSh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBwcm92aWRlcjogUzNGaWxlUHJvdmlkZXIuZ2V0T3JDcmVhdGUodGhpcyksXG4gICAgICByZXNvdXJjZVR5cGU6ICdDdXN0b206OlMzRmlsZScsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIFthcGkuUFJPUF9CVUNLRVRfTkFNRV06IHByb3BzLmJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICBbYXBpLlBST1BfQ09OVEVOVFNdOiBwcm9wcy5jb250ZW50cyxcbiAgICAgICAgW2FwaS5QUk9QX09CSkVDVF9LRVldOiBwcm9wcy5vYmplY3RLZXksXG4gICAgICAgIFthcGkuUFJPUF9QVUJMSUNdOiBwcm9wcy5wdWJsaWNcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMub2JqZWN0S2V5ID0gcmVzb3VyY2UuZ2V0QXR0U3RyaW5nKGFwaS5BVFRSX09CSkVDVF9LRVkpO1xuICAgIHRoaXMudXJsID0gcmVzb3VyY2UuZ2V0QXR0U3RyaW5nKGFwaS5BVFRSX1VSTCk7XG4gICAgdGhpcy5ldGFnID0gcmVzb3VyY2UuZ2V0QXR0U3RyaW5nKGFwaS5BVFRSX0VUQUcpO1xuICB9XG59XG5cbmNsYXNzIFMzRmlsZVByb3ZpZGVyIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc2luZ2xldG9uIHByb3ZpZGVyLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXRPckNyZWF0ZShzY29wZTogQ29uc3RydWN0KSB7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZihzY29wZSk7XG4gICAgY29uc3QgaWQgPSAnY29tLmFtYXpvbmF3cy5jZGsuY3VzdG9tLXJlc291cmNlcy5zM2ZpbGUtcHJvdmlkZXInO1xuICAgIGNvbnN0IHggPSBzdGFjay5ub2RlLnRyeUZpbmRDaGlsZChpZCkgYXMgUzNGaWxlUHJvdmlkZXIgfHwgbmV3IFMzRmlsZVByb3ZpZGVyKHN0YWNrLCBpZCk7XG4gICAgcmV0dXJuIHgucHJvdmlkZXI7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHByb3ZpZGVyOiBjci5Qcm92aWRlcjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMucHJvdmlkZXIgPSBuZXcgY3IuUHJvdmlkZXIodGhpcywgJ3MzZmlsZS1wcm92aWRlcicsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsICdzM2ZpbGUtb24tZXZlbnQnLCB7XG4gICAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnczMtZmlsZS1oYW5kbGVyJykpLFxuICAgICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTBfWCxcbiAgICAgICAgaGFuZGxlcjogJ2luZGV4Lm9uRXZlbnQnLFxuICAgICAgICBpbml0aWFsUG9saWN5OiBbXG4gICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgcmVzb3VyY2VzOiBbICcqJyBdLFxuICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAnczM6R2V0T2JqZWN0KicsXG4gICAgICAgICAgICAgICdzMzpHZXRCdWNrZXQqJyxcbiAgICAgICAgICAgICAgJ3MzOkxpc3QqJyxcbiAgICAgICAgICAgICAgJ3MzOkRlbGV0ZU9iamVjdConLFxuICAgICAgICAgICAgICAnczM6UHV0T2JqZWN0KicsXG4gICAgICAgICAgICAgICdzMzpBYm9ydConXG4gICAgICAgICAgICBdIH0pXG4gICAgICAgIF1cbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG59XG4iXX0=

@@ -6,5 +6,5 @@ "use strict";

exports.MOCK_REQUEST = {
ResponseURL: "http://pre-signed-S3-url-for-response/path/in/bucket",
ResponseURL: 'http://pre-signed-S3-url-for-response/path/in/bucket',
LogicalResourceId: 'MyTestResource',
RequestId: "uniqueid-for-this-create-request",
RequestId: 'uniqueid-for-this-create-request',
StackId: 'arn:aws:cloudformation:us-west-2:123456789012:stack/stack-name/guid',

@@ -32,3 +32,3 @@ };

expect(headers['content-length']).toEqual(body.length);
expect(headers['content-type']).toStrictEqual("");
expect(headers['content-type']).toStrictEqual('');
exports.cfnResponse = JSON.parse(body);

@@ -58,3 +58,3 @@ if (!exports.cfnResponse) {

if (!exports.onEventImplMock) {
throw new Error(`Trying to trigger "onEvent" but it is not implemented`);
throw new Error('Trying to trigger "onEvent" but it is not implemented');
}

@@ -65,3 +65,3 @@ ret = await exports.onEventImplMock(input);

if (!exports.isCompleteImplMock) {
throw new Error(`Trying to trigger "isComplete" but it is not implemented`);
throw new Error('Trying to trigger "isComplete" but it is not implemented');
}

@@ -71,3 +71,3 @@ ret = await exports.isCompleteImplMock(input);

default:
throw new Error(`unknown mock function`);
throw new Error('unknown mock function');
}

@@ -85,13 +85,13 @@ return {

trace: [
"AccessDenied: Access Denied",
" at Request.extractError (/var/runtime/node_modules/aws-sdk/lib/services/s3.js:585:35)",
" at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)",
" at Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:78:10)",
" at Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:683:14)",
" at Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)",
" at AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)",
" at /var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10",
" at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)",
" at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:685:12)",
" at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:116:18)"
'AccessDenied: Access Denied',
' at Request.extractError (/var/runtime/node_modules/aws-sdk/lib/services/s3.js:585:35)',
' at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)',
' at Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:78:10)',
' at Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:683:14)',
' at Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)',
' at AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)',
' at /var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10',
' at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)',
' at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:685:12)',
' at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:116:18)'
]

@@ -128,2 +128,2 @@ })

exports.startExecutionMock = startExecutionMock;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDZCQUF3QztBQUN4QyxzRUFBc0U7QUFFekQsUUFBQSxZQUFZLEdBQUc7SUFDMUIsV0FBVyxFQUFFLHNEQUFzRDtJQUNuRSxpQkFBaUIsRUFBRSxnQkFBZ0I7SUFDbkMsU0FBUyxFQUFFLGtDQUFrQztJQUM3QyxPQUFPLEVBQUUscUVBQXFFO0NBQy9FLENBQUM7QUFFVyxRQUFBLDBCQUEwQixHQUFHLDBCQUEwQixDQUFDO0FBQ3hELFFBQUEsNkJBQTZCLEdBQUcsNkJBQTZCLENBQUM7QUFDOUQsUUFBQSxZQUFZLEdBQUcsc0JBQXNCLENBQUM7QUFFeEMsUUFBQSxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7QUFNbkMsU0FBZ0IsS0FBSztJQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLG9CQUFZLENBQUM7SUFFaEUsd0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLHVCQUFlLEdBQUcsU0FBUyxDQUFDO0lBQzVCLDBCQUFrQixHQUFHLFNBQVMsQ0FBQztJQUMvQixtQkFBVyxHQUFHLEVBQVMsQ0FBQztJQUN4Qiw4QkFBc0IsR0FBRyxTQUFTLENBQUM7QUFDckMsQ0FBQztBQVJELHNCQVFDO0FBRU0sS0FBSyxVQUFVLGVBQWUsQ0FBQyxPQUE2QixFQUFFLElBQVk7SUFDL0UsTUFBTSxXQUFXLEdBQUcsV0FBUSxDQUFDLG9CQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFdkQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENB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ImltcG9ydCAqIGFzIGh0dHBzIGZyb20gJ2h0dHBzJztcbmltcG9ydCB7IHBhcnNlIGFzIHVybHBhcnNlIH0gZnJvbSAndXJsJztcbmltcG9ydCAqIGFzIGNvbnN0cyBmcm9tICcuLi8uLi9saWIvcHJvdmlkZXItZnJhbWV3b3JrL3J1bnRpbWUvY29uc3RzJztcblxuZXhwb3J0IGNvbnN0IE1PQ0tfUkVRVUVTVCA9IHtcbiAgUmVzcG9uc2VVUkw6IFwiaHR0cDovL3ByZS1zaWduZWQtUzMtdXJsLWZvci1yZXNwb25zZS9wYXRoL2luL2J1Y2tldFwiLFxuICBMb2dpY2FsUmVzb3VyY2VJZDogJ015VGVzdFJlc291cmNlJyxcbiAgUmVxdWVzdElkOiBcInVuaXF1ZWlkLWZvci10aGlzLWNyZWF0ZS1yZXF1ZXN0XCIsXG4gIFN0YWNrSWQ6ICdhcm46YXdzOmNsb3VkZm9ybWF0aW9uOnVzLXdlc3QtMjoxMjM0NTY3ODkwMTI6c3RhY2svc3RhY2stbmFtZS9ndWlkJyxcbn07XG5cbmV4cG9ydCBjb25zdCBNT0NLX09OX0VWRU5UX0ZVTkNUSU9OX0FSTiA9ICdhcm46bGFtYmRhOnVzZXI6b246ZXZlbnQnO1xuZXhwb3J0IGNvbnN0IE1PQ0tfSVNfQ09NUExFVEVfRlVOQ1RJT05fQVJOID0gJ2FybjpsYW1iZGE6dXNlcjppczpjb21wbGV0ZSc7XG5leHBvcnQgY29uc3QgTU9DS19TRk5fQVJOID0gJ2FybjpvZjpzdGF0ZTptYWNoaW5lJztcblxuZXhwb3J0IGxldCBzdHJpbmdpZnlQYXlsb2FkID0gdHJ1ZTtcbmV4cG9ydCBsZXQgb25FdmVudEltcGxNb2NrOiBBV1NDREtBc3luY0N1c3RvbVJlc291cmNlLk9uRXZlbnRIYW5kbGVyIHwgdW5kZWZpbmVkO1xuZXhwb3J0IGxldCBpc0NvbXBsZXRlSW1wbE1vY2s6IEFXU0NES0FzeW5jQ3VzdG9tUmVzb3VyY2UuSXNDb21wbGV0ZUhhbmRsZXIgfCB1bmRlZmluZWQ7XG5leHBvcnQgbGV0IHN0YXJ0U3RhdGVNYWNoaW5lSW5wdXQ6IEFXUy5TdGVwRnVuY3Rpb25zLlN0YXJ0RXhlY3V0aW9uSW5wdXQgfCB1bmRlZmluZWQ7XG5leHBvcnQgbGV0IGNmblJlc3BvbnNlOiBBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZVJlc3BvbnNlO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXAoKSB7XG4gIHByb2Nlc3MuZW52W2NvbnN0cy5XQUlURVJfU1RBVEVfTUFDSElORV9BUk5fRU5WXSA9IE1PQ0tfU0ZOX0FSTjtcblxuICBzdHJpbmdpZnlQYXlsb2FkID0gdHJ1ZTtcbiAgb25FdmVudEltcGxNb2NrID0gdW5kZWZpbmVkO1xuICBpc0NvbXBsZXRlSW1wbE1vY2sgPSB1bmRlZmluZWQ7XG4gIGNmblJlc3BvbnNlID0ge30gYXMgYW55O1xuICBzdGFydFN0YXRlTWFjaGluZUlucHV0ID0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaHR0cFJlcXVlc3RNb2NrKG9wdGlvbnM6IGh0dHBzLlJlcXVlc3RPcHRpb25zLCBib2R5OiBzdHJpbmcpIHtcbiAgY29uc3QgcmVzcG9uc2VVcmwgPSB1cmxwYXJzZShNT0NLX1JFUVVFU1QuUmVzcG9uc2VVUkwpO1xuXG4gIGV4cGVjdChvcHRpb25zLm1ldGhvZCkudG9FcXVhbCgnUFVUJyk7XG4gIGV4cGVjdChvcHRpb25zLnBhdGgpLnRvRXF1YWwocmVzcG9uc2VVcmwucGF0aCk7XG4gIGV4cGVjdChvcHRpb25zLmhvc3RuYW1lKS50b0VxdWFsKHJlc3BvbnNlVXJsLmhvc3RuYW1lKTtcbiAgY29uc3QgaGVhZGVycyA9IG9wdGlvbnMuaGVhZGVycyB8fCB7fTtcbiAgZXhwZWN0KGhlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ10pLnRvRXF1YWwoYm9keS5sZW5ndGgpO1xuICBleHBlY3QoaGVhZGVyc1snY29udGVudC10eXBlJ10pLnRvU3RyaWN0RXF1YWwoXCJcIik7XG4gIGNmblJlc3BvbnNlID0gSlNPTi5wYXJzZShib2R5KTtcblxuICBpZiAoIWNmblJlc3BvbnNlKSB7IHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCcpOyB9XG5cbiAgLy8gd2UgYWx3YXlzIGV4cGVjdCBhIHBoeXNpY2FsIHJlc291cmNlIGlkXG4gIGV4cGVjdChjZm5SZXNwb25zZS5QaHlzaWNhbFJlc291cmNlSWQpLnRvQmVUcnV0aHkoKTtcblxuICAvLyB3ZSBhbHdheXMgZXhwZWN0IGEgcmVhc29uXG4gIGV4cGVjdChjZm5SZXNwb25zZS5SZWFzb24pLnRvQmVUcnV0aHkoKTtcblxuICBleHBlY3QoY2ZuUmVzcG9uc2UuTG9naWNhbFJlc291cmNlSWQpLnRvRXF1YWwoTU9DS19SRVFVRVNULkxvZ2ljYWxSZXNvdXJjZUlkKTtcbiAgZXhwZWN0KGNmblJlc3BvbnNlLlJlcXVlc3RJZCkudG9FcXVhbChNT0NLX1JFUVVFU1QuUmVxdWVzdElkKTtcbiAgZXhwZWN0KGNmblJlc3BvbnNlLlN0YWNrSWQpLnRvRXF1YWwoTU9DS19SRVFVRVNULlN0YWNrSWQpO1xuICBleHBlY3QoY2ZuUmVzcG9uc2UuU3RhdHVzID09PSAnRkFJTEVEJyB8fCBjZm5SZXNwb25zZS5TdGF0dXMgPT09ICdTVUNDRVNTJykudG9CZVRydXRoeSgpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW52b2tlRnVuY3Rpb25Nb2NrKHJlcTogQVdTLkxhbWJkYS5JbnZvY2F0aW9uUmVxdWVzdCk6IFByb21pc2U8QVdTLkxhbWJkYS5JbnZvY2F0aW9uUmVzcG9uc2U+IHtcbiAgaWYgKCFyZXEuUGF5bG9hZCB8fCB0eXBlb2YgKHJlcS5QYXlsb2FkKSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgcGF5bG9hZCBvZiB0eXBlICR7dHlwZW9mIChyZXEuUGF5bG9hZCl9fWApO1xuICB9XG5cbiAgY29uc3QgaW5wdXQgPSBKU09OLnBhcnNlKHJlcS5QYXlsb2FkKTtcblxuICB0cnkge1xuXG4gICAgbGV0IHJldDtcbiAgICBzd2l0Y2ggKHJlcS5GdW5jdGlvbk5hbWUpIHtcbiAgICAgIGNhc2UgTU9DS19PTl9FVkVOVF9GVU5DVElPTl9BUk46XG4gICAgICAgIGlmICghb25FdmVudEltcGxNb2NrKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUcnlpbmcgdG8gdHJpZ2dlciBcIm9uRXZlbnRcIiBidXQgaXQgaXMgbm90IGltcGxlbWVudGVkYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0ID0gYXdhaXQgb25FdmVudEltcGxNb2NrKGlucHV0IGFzIEFXU0NES0FzeW5jQ3VzdG9tUmVzb3VyY2UuT25FdmVudFJlcXVlc3QpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBNT0NLX0lTX0NPTVBMRVRFX0ZVTkNUSU9OX0FSTjpcbiAgICAgICAgICBpZiAoIWlzQ29tcGxldGVJbXBsTW9jaykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUcnlpbmcgdG8gdHJpZ2dlciBcImlzQ29tcGxldGVcIiBidXQgaXQgaXMgbm90IGltcGxlbWVudGVkYCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldCA9IGF3YWl0IGlzQ29tcGxldGVJbXBsTW9jayhpbnB1dCBhcyBBV1NDREtBc3luY0N1c3RvbVJlc291cmNlLklzQ29tcGxldGVSZXF1ZXN0KTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmtub3duIG1vY2sgZnVuY3Rpb25gKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgUGF5bG9hZDogc3RyaW5naWZ5UGF5bG9hZCA/IEpTT04uc3RyaW5naWZ5KHJldCkgOiByZXRcbiAgICB9O1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIEZ1bmN0aW9uRXJyb3I6ICdVbmhhbmRsZWQnLFxuICAgICAgUGF5bG9hZDogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBlcnJvclR5cGU6IGUubmFtZSxcbiAgICAgICAgZXJyb3JNZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgIHRyYWNlOiBbXG4gICAgICAgICAgXCJBY2Nlc3NEZW5pZWQ6IEFjY2VzcyBEZW5pZWRcIixcbiAgICAgICAgICBcIiAgICBhdCBSZXF1ZXN0LmV4dHJhY3RFcnJvciAoL3Zhci9ydW50aW1lL25vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zZXJ2aWNlcy9zMy5qczo1ODU6MzUpXCIsXG4gICAgICAgICAgXCIgICAgYXQgUmVxdWVzdC5jYWxsTGlzdGVuZXJzICgvdmFyL3J1bnRpbWUvbm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NlcXVlbnRpYWxfZXhlY3V0b3IuanM6MTA2OjIwKVwiLFxuICAgICAgICAgIFwiICAgIGF0IFJlcXVlc3QuZW1pdCAoL3Zhci9ydW50aW1lL25vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zZXF1ZW50aWFsX2V4ZWN1dG9yLmpzOjc4OjEwKVwiLFxuICAgICAgICAgIFwiICAgIGF0IFJlcXVlc3QuZW1pdCAoL3Zhci9ydW50aW1lL25vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9yZXF1ZXN0LmpzOjY4MzoxNClcIixcbiAgICAgICAgICBcIiAgICBhdCBSZXF1ZXN0LnRyYW5zaXRpb24gKC92YXIvcnVudGltZS9ub2RlX21vZHVsZXMvYXdzLXNkay9saWIvcmVxdWVzdC5qczoyMjoxMClcIixcbiAgICAgICAgICBcIiAgICBhdCBBY2NlcHRvclN0YXRlTWFjaGluZS5ydW5UbyAoL3Zhci9ydW50aW1lL25vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zdGF0ZV9tYWNoaW5lLmpzOjE0OjEyKVwiLFxuICAgICAgICAgIFwiICAgIGF0IC92YXIvcnVudGltZS9ub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc3RhdGVfbWFjaGluZS5qczoyNjoxMFwiLFxuICAgICAgICAgIFwiICAgIGF0IFJlcXVlc3QuPGFub255bW91cz4gKC92YXIvcnVudGltZS9ub2RlX21vZHVsZXMvYXdzLXNkay9saWIvcmVxdWVzdC5qczozODo5KVwiLFxuICAgICAgICAgIFwiICAgIGF0IFJlcXVlc3QuPGFub255bW91cz4gKC92YXIvcnVudGltZS9ub2RlX21vZHVsZXMvYXdzLXNkay9saWIvcmVxdWVzdC5qczo2ODU6MTIpXCIsXG4gICAgICAgICAgXCIgICAgYXQgUmVxdWVzdC5jYWxsTGlzdGVuZXJzICgvdmFyL3J1bnRpbWUvbm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NlcXVlbnRpYWxfZXhlY3V0b3IuanM6MTE2OjE4KVwiXG4gICAgICAgIF1cbiAgICAgIH0pXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlcGFyZUZvckV4ZWN1dGlvbigpIHtcbiAgc3RhcnRTdGF0ZU1hY2hpbmVJbnB1dCA9IHVuZGVmaW5lZDtcblxuICBpZiAob25FdmVudEltcGxNb2NrKSB7XG4gICAgcHJvY2Vzcy5lbnZbY29uc3RzLlVTRVJfT05fRVZFTlRfRlVOQ1RJT05fQVJOX0VOVl0gPSBNT0NLX09OX0VWRU5UX0ZVTkNUSU9OX0FSTjtcbiAgfSBlbHNlIHtcbiAgICBkZWxldGUgcHJvY2Vzcy5lbnZbY29uc3RzLlVTRVJfT05fRVZFTlRfRlVOQ1RJT05fQVJOX0VOVl07XG4gIH1cblxuICBpZiAoaXNDb21wbGV0ZUltcGxNb2NrKSB7XG4gICAgcHJvY2Vzcy5lbnZbY29uc3RzLlVTRVJfSVNfQ09NUExFVEVfRlVOQ1RJT05fQVJOX0VOVl0gPSBNT0NLX0lTX0NPTVBMRVRFX0ZVTkNUSU9OX0FSTjtcbiAgfSBlbHNlIHtcbiAgICBkZWxldGUgcHJvY2Vzcy5lbnZbY29uc3RzLlVTRVJfSVNfQ09NUExFVEVfRlVOQ1RJT05fQVJOX0VOVl07XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0RXhlY3V0aW9uTW9jayhyZXE6IEFXUy5TdGVwRnVuY3Rpb25zLlN0YXJ0RXhlY3V0aW9uSW5wdXQpIHtcbiAgc3RhcnRTdGF0ZU1hY2hpbmVJbnB1dCA9IHJlcTtcbiAgZXhwZWN0KHJlcS5zdGF0ZU1hY2hpbmVBcm4pLnRvRXF1YWwoTU9DS19TRk5fQVJOKTtcbiAgcmV0dXJuIHtcbiAgICBleGVjdXRpb25Bcm46IHJlcS5zdGF0ZU1hY2hpbmVBcm4gKyAnL2V4ZWN1dGlvbicsXG4gICAgc3RhcnREYXRlOiBuZXcgRGF0ZSgpLFxuICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDZCQUF3QztBQUN4QyxzRUFBc0U7QUFFekQsUUFBQSxZQUFZLEdBQUc7SUFDMUIsV0FBVyxFQUFFLHNEQUFzRDtJQUNuRSxpQkFBaUIsRUFBRSxnQkFBZ0I7SUFDbkMsU0FBUyxFQUFFLGtDQUFrQztJQUM3QyxPQUFPLEVBQUUscUVBQXFFO0NBQy9FLENBQUM7QUFFVyxRQUFBLDBCQUEwQixHQUFHLDBCQUEwQixDQUFDO0FBQ3hELFFBQUEsNkJBQTZCLEdBQUcsNkJBQTZCLENBQUM7QUFDOUQsUUFBQSxZQUFZLEdBQUcsc0JBQXNCLENBQUM7QUFFeEMsUUFBQSxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7QUFNbkMsU0FBZ0IsS0FBSztJQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLG9CQUFZLENBQUM7SUFFaEUsd0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLHVCQUFlLEdBQUcsU0FBUyxDQUFDO0lBQzVCLDBCQUFrQixHQUFHLFNBQVMsQ0FBQztJQUMvQixtQkFBVyxHQUFHLEVBQVMsQ0FBQztJQUN4Qiw4QkFBc0IsR0FBRyxTQUFTLENBQUM7QUFDckMsQ0FBQztBQVJELHNCQVFDO0FBRU0sS0FBSyxVQUFVLGVBQWUsQ0FBQyxPQUE2QixFQUFFLElBQVk7SUFDL0UsTUFBTSxXQUFXLEdBQUcsV0FBUSxDQUFDLG9CQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFdkQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENB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ImltcG9ydCAqIGFzIGh0dHBzIGZyb20gJ2h0dHBzJztcbmltcG9ydCB7IHBhcnNlIGFzIHVybHBhcnNlIH0gZnJvbSAndXJsJztcbmltcG9ydCAqIGFzIGNvbnN0cyBmcm9tICcuLi8uLi9saWIvcHJvdmlkZXItZnJhbWV3b3JrL3J1bnRpbWUvY29uc3RzJztcblxuZXhwb3J0IGNvbnN0IE1PQ0tfUkVRVUVTVCA9IHtcbiAgUmVzcG9uc2VVUkw6ICdodHRwOi8vcHJlLXNpZ25lZC1TMy11cmwtZm9yLXJlc3BvbnNlL3BhdGgvaW4vYnVja2V0JyxcbiAgTG9naWNhbFJlc291cmNlSWQ6ICdNeVRlc3RSZXNvdXJjZScsXG4gIFJlcXVlc3RJZDogJ3VuaXF1ZWlkLWZvci10aGlzLWNyZWF0ZS1yZXF1ZXN0JyxcbiAgU3RhY2tJZDogJ2Fybjphd3M6Y2xvdWRmb3JtYXRpb246dXMtd2VzdC0yOjEyMzQ1Njc4OTAxMjpzdGFjay9zdGFjay1uYW1lL2d1aWQnLFxufTtcblxuZXhwb3J0IGNvbnN0IE1PQ0tfT05fRVZFTlRfRlVOQ1RJT05fQVJOID0gJ2FybjpsYW1iZGE6dXNlcjpvbjpldmVudCc7XG5leHBvcnQgY29uc3QgTU9DS19JU19DT01QTEVURV9GVU5DVElPTl9BUk4gPSAnYXJuOmxhbWJkYTp1c2VyOmlzOmNvbXBsZXRlJztcbmV4cG9ydCBjb25zdCBNT0NLX1NGTl9BUk4gPSAnYXJuOm9mOnN0YXRlOm1hY2hpbmUnO1xuXG5leHBvcnQgbGV0IHN0cmluZ2lmeVBheWxvYWQgPSB0cnVlO1xuZXhwb3J0IGxldCBvbkV2ZW50SW1wbE1vY2s6IEFXU0NES0FzeW5jQ3VzdG9tUmVzb3VyY2UuT25FdmVudEhhbmRsZXIgfCB1bmRlZmluZWQ7XG5leHBvcnQgbGV0IGlzQ29tcGxldGVJbXBsTW9jazogQVdTQ0RLQXN5bmNDdXN0b21SZXNvdXJjZS5Jc0NvbXBsZXRlSGFuZGxlciB8IHVuZGVmaW5lZDtcbmV4cG9ydCBsZXQgc3RhcnRTdGF0ZU1hY2hpbmVJbnB1dDogQVdTLlN0ZXBGdW5jdGlvbnMuU3RhcnRFeGVjdXRpb25JbnB1dCB8IHVuZGVmaW5lZDtcbmV4cG9ydCBsZXQgY2ZuUmVzcG9uc2U6IEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlUmVzcG9uc2U7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cCgpIHtcbiAgcHJvY2Vzcy5lbnZbY29uc3RzLldBSVRFUl9TVEFURV9NQUNISU5FX0FSTl9FTlZdID0gTU9DS19TRk5fQVJOO1xuXG4gIHN0cmluZ2lmeVBheWxvYWQgPSB0cnVlO1xuICBvbkV2ZW50SW1wbE1vY2sgPSB1bmRlZmluZWQ7XG4gIGlzQ29tcGxldGVJbXBsTW9jayA9IHVuZGVmaW5lZDtcbiAgY2ZuUmVzcG9uc2UgPSB7fSBhcyBhbnk7XG4gIHN0YXJ0U3RhdGVNYWNoaW5lSW5wdXQgPSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBodHRwUmVxdWVzdE1vY2sob3B0aW9uczogaHR0cHMuUmVxdWVzdE9wdGlvbnMsIGJvZHk6IHN0cmluZykge1xuICBjb25zdCByZXNwb25zZVVybCA9IHVybHBhcnNlKE1PQ0tfUkVRVUVTVC5SZXNwb25zZVVSTCk7XG5cbiAgZXhwZWN0KG9wdGlvbnMubWV0aG9kKS50b0VxdWFsKCdQVVQnKTtcbiAgZXhwZWN0KG9wdGlvbnMucGF0aCkudG9FcXVhbChyZXNwb25zZVVybC5wYXRoKTtcbiAgZXhwZWN0KG9wdGlvbnMuaG9zdG5hbWUpLnRvRXF1YWwocmVzcG9uc2VVcmwuaG9zdG5hbWUpO1xuICBjb25zdCBoZWFkZXJzID0gb3B0aW9ucy5oZWFkZXJzIHx8IHt9O1xuICBleHBlY3QoaGVhZGVyc1snY29udGVudC1sZW5ndGgnXSkudG9FcXVhbChib2R5Lmxlbmd0aCk7XG4gIGV4cGVjdChoZWFkZXJzWydjb250ZW50LXR5cGUnXSkudG9TdHJpY3RFcXVhbCgnJyk7XG4gIGNmblJlc3BvbnNlID0gSlNPTi5wYXJzZShib2R5KTtcblxuICBpZiAoIWNmblJlc3BvbnNlKSB7IHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCcpOyB9XG5cbiAgLy8gd2UgYWx3YXlzIGV4cGVjdCBhIHBoeXNpY2FsIHJlc291cmNlIGlkXG4gIGV4cGVjdChjZm5SZXNwb25zZS5QaHlzaWNhbFJlc291cmNlSWQpLnRvQmVUcnV0aHkoKTtcblxuICAvLyB3ZSBhbHdheXMgZXhwZWN0IGEgcmVhc29uXG4gIGV4cGVjdChjZm5SZXNwb25zZS5SZWFzb24pLnRvQmVUcnV0aHkoKTtcblxuICBleHBlY3QoY2ZuUmVzcG9uc2UuTG9naWNhbFJlc291cmNlSWQpLnRvRXF1YWwoTU9DS19SRVFVRVNULkxvZ2ljYWxSZXNvdXJjZUlkKTtcbiAgZXhwZWN0KGNmblJlc3BvbnNlLlJlcXVlc3RJZCkudG9FcXVhbChNT0NLX1JFUVVFU1QuUmVxdWVzdElkKTtcbiAgZXhwZWN0KGNmblJlc3BvbnNlLlN0YWNrSWQpLnRvRXF1YWwoTU9DS19SRVFVRVNULlN0YWNrSWQpO1xuICBleHBlY3QoY2ZuUmVzcG9uc2UuU3RhdHVzID09PSAnRkFJTEVEJyB8fCBjZm5SZXNwb25zZS5TdGF0dXMgPT09ICdTVUNDRVNTJykudG9CZVRydXRoeSgpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW52b2tlRnVuY3Rpb25Nb2NrKHJlcTogQVdTLkxhbWJkYS5JbnZvY2F0aW9uUmVxdWVzdCk6IFByb21pc2U8QVdTLkxhbWJkYS5JbnZvY2F0aW9uUmVzcG9uc2U+IHtcbiAgaWYgKCFyZXEuUGF5bG9hZCB8fCB0eXBlb2YgKHJlcS5QYXlsb2FkKSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgcGF5bG9hZCBvZiB0eXBlICR7dHlwZW9mIChyZXEuUGF5bG9hZCl9fWApO1xuICB9XG5cbiAgY29uc3QgaW5wdXQgPSBKU09OLnBhcnNlKHJlcS5QYXlsb2FkKTtcblxuICB0cnkge1xuXG4gICAgbGV0IHJldDtcbiAgICBzd2l0Y2ggKHJlcS5GdW5jdGlvbk5hbWUpIHtcbiAgICAgIGNhc2UgTU9DS19PTl9FVkVOVF9GVU5DVElPTl9BUk46XG4gICAgICAgIGlmICghb25FdmVudEltcGxNb2NrKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUcnlpbmcgdG8gdHJpZ2dlciBcIm9uRXZlbnRcIiBidXQgaXQgaXMgbm90IGltcGxlbWVudGVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0ID0gYXdhaXQgb25FdmVudEltcGxNb2NrKGlucHV0IGFzIEFXU0NES0FzeW5jQ3VzdG9tUmVzb3VyY2UuT25FdmVudFJlcXVlc3QpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBNT0NLX0lTX0NPTVBMRVRFX0ZVTkNUSU9OX0FSTjpcbiAgICAgICAgaWYgKCFpc0NvbXBsZXRlSW1wbE1vY2spIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyeWluZyB0byB0cmlnZ2VyIFwiaXNDb21wbGV0ZVwiIGJ1dCBpdCBpcyBub3QgaW1wbGVtZW50ZWQnKTtcbiAgICAgICAgfVxuICAgICAgICByZXQgPSBhd2FpdCBpc0NvbXBsZXRlSW1wbE1vY2soaW5wdXQgYXMgQVdTQ0RLQXN5bmNDdXN0b21SZXNvdXJjZS5Jc0NvbXBsZXRlUmVxdWVzdCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24gbW9jayBmdW5jdGlvbicpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBQYXlsb2FkOiBzdHJpbmdpZnlQYXlsb2FkID8gSlNPTi5zdHJpbmdpZnkocmV0KSA6IHJldFxuICAgIH07XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgRnVuY3Rpb25FcnJvcjogJ1VuaGFuZGxlZCcsXG4gICAgICBQYXlsb2FkOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGVycm9yVHlwZTogZS5uYW1lLFxuICAgICAgICBlcnJvck1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgdHJhY2U6IFtcbiAgICAgICAgICAnQWNjZXNzRGVuaWVkOiBBY2Nlc3MgRGVuaWVkJyxcbiAgICAgICAgICAnICAgIGF0IFJlcXVlc3QuZXh0cmFjdEVycm9yICgvdmFyL3J1bnRpbWUvbm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NlcnZpY2VzL3MzLmpzOjU4NTozNSknLFxuICAgICAgICAgICcgICAgYXQgUmVxdWVzdC5jYWxsTGlzdGVuZXJzICgvdmFyL3J1bnRpbWUvbm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NlcXVlbnRpYWxfZXhlY3V0b3IuanM6MTA2OjIwKScsXG4gICAgICAgICAgJyAgICBhdCBSZXF1ZXN0LmVtaXQgKC92YXIvcnVudGltZS9ub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc2VxdWVudGlhbF9leGVjdXRvci5qczo3ODoxMCknLFxuICAgICAgICAgICcgICAgYXQgUmVxdWVzdC5lbWl0ICgvdmFyL3J1bnRpbWUvbm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3JlcXVlc3QuanM6NjgzOjE0KScsXG4gICAgICAgICAgJyAgICBhdCBSZXF1ZXN0LnRyYW5zaXRpb24gKC92YXIvcnVudGltZS9ub2RlX21vZHVsZXMvYXdzLXNkay9saWIvcmVxdWVzdC5qczoyMjoxMCknLFxuICAgICAgICAgICcgICAgYXQgQWNjZXB0b3JTdGF0ZU1hY2hpbmUucnVuVG8gKC92YXIvcnVudGltZS9ub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc3RhdGVfbWFjaGluZS5qczoxNDoxMiknLFxuICAgICAgICAgICcgICAgYXQgL3Zhci9ydW50aW1lL25vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zdGF0ZV9tYWNoaW5lLmpzOjI2OjEwJyxcbiAgICAgICAgICAnICAgIGF0IFJlcXVlc3QuPGFub255bW91cz4gKC92YXIvcnVudGltZS9ub2RlX21vZHVsZXMvYXdzLXNkay9saWIvcmVxdWVzdC5qczozODo5KScsXG4gICAgICAgICAgJyAgICBhdCBSZXF1ZXN0Ljxhbm9ueW1vdXM+ICgvdmFyL3J1bnRpbWUvbm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3JlcXVlc3QuanM6Njg1OjEyKScsXG4gICAgICAgICAgJyAgICBhdCBSZXF1ZXN0LmNhbGxMaXN0ZW5lcnMgKC92YXIvcnVudGltZS9ub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc2VxdWVudGlhbF9leGVjdXRvci5qczoxMTY6MTgpJ1xuICAgICAgICBdXG4gICAgICB9KVxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmVGb3JFeGVjdXRpb24oKSB7XG4gIHN0YXJ0U3RhdGVNYWNoaW5lSW5wdXQgPSB1bmRlZmluZWQ7XG5cbiAgaWYgKG9uRXZlbnRJbXBsTW9jaykge1xuICAgIHByb2Nlc3MuZW52W2NvbnN0cy5VU0VSX09OX0VWRU5UX0ZVTkNUSU9OX0FSTl9FTlZdID0gTU9DS19PTl9FVkVOVF9GVU5DVElPTl9BUk47XG4gIH0gZWxzZSB7XG4gICAgZGVsZXRlIHByb2Nlc3MuZW52W2NvbnN0cy5VU0VSX09OX0VWRU5UX0ZVTkNUSU9OX0FSTl9FTlZdO1xuICB9XG5cbiAgaWYgKGlzQ29tcGxldGVJbXBsTW9jaykge1xuICAgIHByb2Nlc3MuZW52W2NvbnN0cy5VU0VSX0lTX0NPTVBMRVRFX0ZVTkNUSU9OX0FSTl9FTlZdID0gTU9DS19JU19DT01QTEVURV9GVU5DVElPTl9BUk47XG4gIH0gZWxzZSB7XG4gICAgZGVsZXRlIHByb2Nlc3MuZW52W2NvbnN0cy5VU0VSX0lTX0NPTVBMRVRFX0ZVTkNUSU9OX0FSTl9FTlZdO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdGFydEV4ZWN1dGlvbk1vY2socmVxOiBBV1MuU3RlcEZ1bmN0aW9ucy5TdGFydEV4ZWN1dGlvbklucHV0KSB7XG4gIHN0YXJ0U3RhdGVNYWNoaW5lSW5wdXQgPSByZXE7XG4gIGV4cGVjdChyZXEuc3RhdGVNYWNoaW5lQXJuKS50b0VxdWFsKE1PQ0tfU0ZOX0FSTik7XG4gIHJldHVybiB7XG4gICAgZXhlY3V0aW9uQXJuOiByZXEuc3RhdGVNYWNoaW5lQXJuICsgJy9leGVjdXRpb24nLFxuICAgIHN0YXJ0RGF0ZTogbmV3IERhdGUoKSxcbiAgfTtcbn1cbiJdfQ==

@@ -23,4 +23,4 @@ "use strict";

expect(stack).toHaveResource('AWS::Lambda::Function', {
Handler: "framework.onEvent",
Environment: { Variables: { USER_ON_EVENT_FUNCTION_ARN: { "Fn::GetAtt": ["MyHandler6B74D312", "Arn"] } } },
Handler: 'framework.onEvent',
Environment: { Variables: { USER_ON_EVENT_FUNCTION_ARN: { 'Fn::GetAtt': ['MyHandler6B74D312', 'Arn'] } } },
Timeout: 900

@@ -30,3 +30,3 @@ });

expect(stack).toHaveResource('AWS::Lambda::Function', {
Handler: "index.onEvent",
Handler: 'index.onEvent',
});

@@ -36,3 +36,3 @@ // no framework "is complete" handler or state machine

expect(stack).not.toHaveResource('AWS::Lambda::Function', {
Handler: "framework.isComplete",
Handler: 'framework.isComplete',
Timeout: 900

@@ -58,8 +58,8 @@ });

Variables: {
USER_ON_EVENT_FUNCTION_ARN: { "Fn::GetAtt": ["MyHandler6B74D312", "Arn"] },
USER_IS_COMPLETE_FUNCTION_ARN: { "Fn::GetAtt": ["MyHandler6B74D312", "Arn"] }
USER_ON_EVENT_FUNCTION_ARN: { 'Fn::GetAtt': ['MyHandler6B74D312', 'Arn'] },
USER_IS_COMPLETE_FUNCTION_ARN: { 'Fn::GetAtt': ['MyHandler6B74D312', 'Arn'] }
}
};
expect(stack).toHaveResource('AWS::Lambda::Function', {
Handler: "framework.onEvent",
Handler: 'framework.onEvent',
Timeout: 900,

@@ -69,3 +69,3 @@ Environment: {

...expectedEnv.Variables,
WAITER_STATE_MACHINE_ARN: { Ref: "MyProviderwaiterstatemachineC1FBB9F9" }
WAITER_STATE_MACHINE_ARN: { Ref: 'MyProviderwaiterstatemachineC1FBB9F9' }
}

@@ -75,3 +75,3 @@ }

expect(stack).toHaveResource('AWS::Lambda::Function', {
Handler: "framework.isComplete",
Handler: 'framework.isComplete',
Timeout: 900,

@@ -87,20 +87,20 @@ Environment: expectedEnv

DefinitionString: {
"Fn::Join": [
"",
'Fn::Join': [
'',
[
"{\"StartAt\":\"framework-isComplete-task\",\"States\":{\"framework-isComplete-task\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"States.ALL\"],\"IntervalSeconds\":5,\"MaxAttempts\":360,\"BackoffRate\":1}],\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"Next\":\"framework-onTimeout-task\"}],\"Type\":\"Task\",\"Resource\":\"",
'{"StartAt":"framework-isComplete-task","States":{"framework-isComplete-task":{"End":true,"Retry":[{"ErrorEquals":["States.ALL"],"IntervalSeconds":5,"MaxAttempts":360,"BackoffRate":1}],"Catch":[{"ErrorEquals":["States.ALL"],"Next":"framework-onTimeout-task"}],"Type":"Task","Resource":"',
{
"Fn::GetAtt": [
"MyProviderframeworkisComplete364190E2",
"Arn"
'Fn::GetAtt': [
'MyProviderframeworkisComplete364190E2',
'Arn'
]
},
"\"},\"framework-onTimeout-task\":{\"End\":true,\"Type\":\"Task\",\"Resource\":\"",
'"},"framework-onTimeout-task":{"End":true,"Type":"Task","Resource":"',
{
"Fn::GetAtt": [
"MyProviderframeworkonTimeoutD9D96588",
"Arn"
'Fn::GetAtt': [
'MyProviderframeworkonTimeoutD9D96588',
'Arn'
]
},
"\"}}}"
'"}}}'
]

@@ -156,2 +156,2 @@ ]

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGVyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4Q0FBOEM7QUFDOUMsd0NBQWdEO0FBQ2hELDZCQUE2QjtBQUM3QixnQ0FBZ0M7QUFDaEMsMERBQTBEO0FBRTFELGdDQUE4QjtBQUU5QixJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtJQUN6QixRQUFRO0lBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxZQUFLLEVBQUUsQ0FBQztJQUUxQixPQUFPO0lBQ1AsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUU7UUFDbkMsY0FBYyxFQUFFLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFO1lBQ3RELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSw2Q0FBNkMsQ0FBQyxDQUFDO1lBQ2hHLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7U0FDcEMsQ0FBQztLQUNILENBQUMsQ0FBQztJQUVILE9BQU87SUFFUCw4QkFBOEI7SUFDOUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRTtRQUNwRCxPQUFPLEVBQUUsbUJBQW1CO1FBQzVCLFdBQVcsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLDBCQUEwQixFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUUsbUJBQW1CLEVBQUUsS0FBSyxDQUFFLEVBQUUsRUFBRSxFQUFFO1FBQzVHLE9BQU8sRUFBRSxHQUFHO0tBQ2IsQ0FBQyxDQUFDO0lBRUgseUJBQXlCO0lBQ3pCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUU7UUFDcEQsT0FBTyxFQUFFLGVB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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnQGF3cy1jZGsvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBEdXJhdGlvbiwgU3RhY2sgfSBmcm9tIFwiQGF3cy1jZGsvY29yZVwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGNyIGZyb20gJy4uLy4uL2xpYic7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJy4uLy4uL2xpYi9wcm92aWRlci1mcmFtZXdvcmsvdXRpbCc7XG5cbmltcG9ydCAnQGF3cy1jZGsvYXNzZXJ0L2plc3QnO1xuXG50ZXN0KCdtaW5pbWFsIHNldHVwJywgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIC8vIFdIRU5cbiAgbmV3IGNyLlByb3ZpZGVyKHN0YWNrLCAnTXlQcm92aWRlcicsIHtcbiAgICBvbkV2ZW50SGFuZGxlcjogbmV3IGxhbWJkYS5GdW5jdGlvbihzdGFjaywgJ015SGFuZGxlcicsIHtcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9pbnRlZ3JhdGlvbi10ZXN0LWZpeHR1cmVzL3MzLWZpbGUtaGFuZGxlcicpKSxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5vbkV2ZW50JyxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xMF9YXG4gICAgfSksXG4gIH0pO1xuXG4gIC8vIFRIRU5cblxuICAvLyBmcmFtZXdvcmsgXCJvbkV2ZW50XCIgaGFuZGxlclxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nLCB7XG4gICAgSGFuZGxlcjogXCJmcmFtZXdvcmsub25FdmVudFwiLFxuICAgIEVudmlyb25tZW50OiB7IFZhcmlhYmxlczogeyBVU0VSX09OX0VWRU5UX0ZVTkNUSU9OX0FSTjogeyBcIkZuOjpHZXRBdHRcIjogWyBcIk15SGFuZGxlcjZCNzREMzEyXCIsIFwiQXJuXCIgXSB9IH0gfSxcbiAgICBUaW1lb3V0OiA5MDBcbiAgfSk7XG5cbiAgLy8gdXNlciBcIm9uRXZlbnRcIiBoYW5kbGVyXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicsIHtcbiAgICBIYW5kbGVyOiBcImluZGV4Lm9uRXZlbnRcIixcbiAgfSk7XG5cbiAgLy8gbm8gZnJhbWV3b3JrIFwiaXMgY29tcGxldGVcIiBoYW5kbGVyIG9yIHN0YXRlIG1hY2hpbmVcbiAgZXhwZWN0KHN0YWNrKS5ub3QudG9IYXZlUmVzb3VyY2UoJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyk7XG4gIGV4cGVjdChzdGFjaykubm90LnRvSGF2ZVJlc291cmNlKCdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nLCB7XG4gICAgSGFuZGxlcjogXCJmcmFtZXdvcmsuaXNDb21wbGV0ZVwiLFxuICAgIFRpbWVvdXQ6IDkwMFxuICB9KTtcbn0pO1xuXG50ZXN0KCdpZiBpc0NvbXBsZXRlIGlzIHNwZWNpZmllZCwgdGhlIGlzQ29tcGxldGUgZnJhbWV3b3JrIGhhbmRsZXIgaXMgYWxzbyBpbmNsdWRlZCcsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgaGFuZGxlciA9IG5ldyBsYW1iZGEuRnVuY3Rpb24oc3RhY2ssICdNeUhhbmRsZXInLCB7XG4gICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICcuL2ludGVncmF0aW9uLXRlc3QtZml4dHVyZXMvczMtZmlsZS1oYW5kbGVyJykpLFxuICAgIGhhbmRsZXI6ICdpbmRleC5vbkV2ZW50JyxcbiAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTBfWFxuICB9KTtcblxuICAvLyBXSEVOXG4gIG5ldyBjci5Qcm92aWRlcihzdGFjaywgJ015UHJvdmlkZXInLCB7XG4gICAgb25FdmVudEhhbmRsZXI6IGhhbmRsZXIsXG4gICAgaXNDb21wbGV0ZUhhbmRsZXI6IGhhbmRsZXJcbiAgfSk7XG5cbiAgLy8gVEhFTlxuXG4gIC8vIGZyYW1ld29yayBcIm9uRXZlbnRcIiBoYW5kbGVyXG4gIGNvbnN0IGV4cGVjdGVkRW52ID0ge1xuICAgIFZhcmlhYmxlczoge1xuICAgICAgVVNFUl9PTl9FVkVOVF9GVU5DVElPTl9BUk46IHsgXCJGbjo6R2V0QXR0XCI6IFtcIk15SGFuZGxlcjZCNzREMzEyXCIsIFwiQXJuXCIgXSB9LFxuICAgICAgVVNFUl9JU19DT01QTEVURV9GVU5DVElPTl9BUk46IHsgXCJGbjo6R2V0QXR0XCI6IFsgXCJNeUhhbmRsZXI2Qjc0RDMxMlwiLCBcIkFyblwiIF0gfVxuICAgIH1cbiAgfTtcblxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nLCB7XG4gICAgSGFuZGxlcjogXCJmcmFtZXdvcmsub25FdmVudFwiLFxuICAgIFRpbWVvdXQ6IDkwMCxcbiAgICBFbnZpcm9ubWVudDoge1xuICAgICAgVmFyaWFibGVzOiB7XG4gICAgICAgIC4uLmV4cGVjdGVkRW52LlZhcmlhYmxlcyxcbiAgICAgICAgV0FJVEVSX1NUQVRFX01BQ0hJTkVfQVJOOiB7IFJlZjogXCJNeVByb3ZpZGVyd2FpdGVyc3RhdGVtYWNoaW5lQzFGQkI5RjlcIiB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nLCB7XG4gICAgSGFuZGxlcjogXCJmcmFtZXdvcmsuaXNDb21wbGV0ZVwiLFxuICAgIFRpbWVvdXQ6IDkwMCxcbiAgICBFbnZpcm9ubWVudDogZXhwZWN0ZWRFbnZcbiAgfSk7XG5cbiAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJywge1xuICAgIEhhbmRsZXI6ICdmcmFtZXdvcmsub25UaW1lb3V0JyxcbiAgICBUaW1lb3V0OiA5MDAsXG4gICAgRW52aXJvbm1lbnQ6IGV4cGVjdGVkRW52XG4gIH0pO1xuXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJywge1xuICAgIERlZmluaXRpb25TdHJpbmc6IHtcbiAgICAgIFwiRm46OkpvaW5cIjogW1xuICAgICAgICBcIlwiLFxuICAgICAgICBbXG4gICAgICAgICAgXCJ7XFxcIlN0YXJ0QXRcXFwiOlxcXCJmcmFtZXdvcmstaXNDb21wbGV0ZS10YXNrXFxcIixcXFwiU3RhdGVzXFxcIjp7XFxcImZyYW1ld29yay1pc0NvbXBsZXRlLXRhc2tcXFwiOntcXFwiRW5kXFxcIjp0cnVlLFxcXCJSZXRyeVxcXCI6W3tcXFwiRXJyb3JFcXVhbHNcXFwiOltcXFwiU3RhdGVzLkFMTFxcXCJdLFxcXCJJbnRlcnZhbFNlY29uZHNcXFwiOjUsXFxcIk1heEF0dGVtcHRzXFxcIjozNjAsXFxcIkJhY2tvZmZSYXRlXFxcIjoxfV0sXFxcIkNhdGNoXFxcIjpbe1xcXCJFcnJvckVxdWFsc1xcXCI6W1xcXCJTdGF0ZXMuQUxMXFxcIl0sXFxcIk5leHRcXFwiOlxcXCJmcmFtZXdvcmstb25UaW1lb3V0LXRhc2tcXFwifV0sXFxcIlR5cGVcXFwiOlxcXCJUYXNrXFxcIixcXFwiUmVzb3VyY2VcXFwiOlxcXCJcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgICBcIk15UHJvdmlkZXJmcmFtZXdvcmtpc0NvbXBsZXRlMzY0MTkwRTJcIixcbiAgICAgICAgICAgICAgXCJBcm5cIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJcXFwifSxcXFwiZnJhbWV3b3JrLW9uVGltZW91dC10YXNrXFxcIjp7XFxcIkVuZFxcXCI6dHJ1ZSxcXFwiVHlwZVxcXCI6XFxcIlRhc2tcXFwiLFxcXCJSZXNvdXJjZVxcXCI6XFxcIlwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiRm46OkdldEF0dFwiOiBbXG4gICAgICAgICAgICAgIFwiTXlQcm92aWRlcmZyYW1ld29ya29uVGltZW91dEQ5RDk2NTg4XCIsXG4gICAgICAgICAgICAgIFwiQXJuXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiXFxcIn19fVwiXG4gICAgICAgIF1cbiAgICAgIF1cbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ2ZhaWxzIGlmIFwicXVlcnlJbnRlcnZhbFwiIGFuZC9vciBcInRvdGFsVGltZW91dFwiIGFyZSBzZXQgd2l0aG91dCBcImlzQ29tcGxldGVIYW5kbGVyXCInLCAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IGhhbmRsZXIgPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHN0YWNrLCAnTXlIYW5kbGVyJywge1xuICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9pbnRlZ3JhdGlvbi10ZXN0LWZpeHR1cmVzL3MzLWZpbGUtaGFuZGxlcicpKSxcbiAgICBoYW5kbGVyOiAnaW5kZXgub25FdmVudCcsXG4gICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzEwX1hcbiAgfSk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3QoKCkgPT4gbmV3IGNyLlByb3ZpZGVyKHN0YWNrLCAncHJvdmlkZXIxJywge1xuICAgIG9uRXZlbnRIYW5kbGVyOiBoYW5kbGVyLFxuICAgIHF1ZXJ5SW50ZXJ2YWw6IER1cmF0aW9uLnNlY29uZHMoMTApXG4gIH0pKS50b1Rocm93KC9cXFwicXVlcnlJbnRlcnZhbFxcXCIgYW5kIFxcXCJ0b3RhbFRpbWVvdXRcXFwiIGNhbiBvbmx5IGJlIGNvbmZpZ3VyZWQgaWYgXFxcImlzQ29tcGxldGVIYW5kbGVyXFxcIiBpcyBzcGVjaWZpZWQuIE90aGVyd2lzZSwgdGhleSBoYXZlIG5vIG1lYW5pbmcvKTtcblxuICBleHBlY3QoKCkgPT4gbmV3IGNyLlByb3ZpZGVyKHN0YWNrLCAncHJvdmlkZXIyJywge1xuICAgIG9uRXZlbnRIYW5kbGVyOiBoYW5kbGVyLFxuICAgIHRvdGFsVGltZW91dDogRHVyYXRpb24uc2Vjb25kcygxMDApXG4gIH0pKS50b1Rocm93KC9cXFwicXVlcnlJbnRlcnZhbFxcXCIgYW5kIFxcXCJ0b3RhbFRpbWVvdXRcXFwiIGNhbiBvbmx5IGJlIGNvbmZpZ3VyZWQgaWYgXFxcImlzQ29tcGxldGVIYW5kbGVyXFxcIiBpcyBzcGVjaWZpZWQuIE90aGVyd2lzZSwgdGhleSBoYXZlIG5vIG1lYW5pbmcvKTtcbn0pO1xuXG5kZXNjcmliZSgncmV0cnkgcG9saWN5JywgKCkgPT4ge1xuICBpdCgnZGVmYXVsdCBpcyAzMCBtaW51dGVzIHRpbWVvdXQgaW4gNSBzZWNvbmQgaW50ZXJ2YWxzJywgKCkgPT4ge1xuICAgIGNvbnN0IHBvbGljeSA9IHV0aWwuY2FsY3VsYXRlUmV0cnlQb2xpY3koKTtcbiAgICBleHBlY3QocG9saWN5LmJhY2tvZmZSYXRlKS50b1N0cmljdEVxdWFsKDEpO1xuICAgIGV4cGVjdChwb2xpY3kuaW50ZXJ2YWwgJiYgcG9saWN5LmludGVydmFsLnRvU2Vjb25kcygpKS50b1N0cmljdEVxdWFsKDUpO1xuICAgIGV4cGVjdChwb2xpY3kubWF4QXR0ZW1wdHMpLnRvU3RyaWN0RXF1YWwoMzYwKTtcbiAgfSk7XG5cbiAgaXQoJ2lmIHRvdGFsIHRpbWVvdXQgYW5kIHF1ZXJ5IGludGVydmFsIGFyZSB0aGUgc2FtZSB3ZSB3aWxsIGhhdmUgb25lIGF0dGVtcHQnLCAoKSA9PiB7XG4gICAgY29uc3QgcG9saWN5ID0gdXRpbC5jYWxjdWxhdGVSZXRyeVBvbGljeSh7XG4gICAgICB0b3RhbFRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBxdWVyeUludGVydmFsOiBEdXJhdGlvbi5taW51dGVzKDUpXG4gICAgfSk7XG4gICAgZXhwZWN0KHBvbGljeS5tYXhBdHRlbXB0cykudG9TdHJpY3RFcXVhbCgxKTtcbiAgfSk7XG5cbiAgaXQoJ2ZhaWxzIGlmIHRvdGFsIHRpbWVvdXQgY2Fubm90IGJlIGludGVncmFsbHkgZGl2aWRlZCcsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4gdXRpbC5jYWxjdWxhdGVSZXRyeVBvbGljeSh7XG4gICAgICB0b3RhbFRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMTAwKSxcbiAgICAgIHF1ZXJ5SW50ZXJ2YWw6IER1cmF0aW9uLnNlY29uZHMoNzUpXG4gICAgfSkpLnRvVGhyb3coL0Nhbm5vdCBkZXRlcm1pbmUgcmV0cnkgY291bnQgc2luY2UgdG90YWxUaW1lb3V0PTEwMHMgaXMgbm90IGludGVncmFsbHkgZGl2aWRhYmxlIGJ5IHF1ZXJ5SW50ZXJ2YWw9NzVzLyk7XG4gIH0pO1xuXG4gIGl0KCdmYWlscyBpZiBpbnRlcnZhbCA+IHRpbWVvdXQnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHV0aWwuY2FsY3VsYXRlUmV0cnlQb2xpY3koe1xuICAgICAgdG90YWxUaW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDUpLFxuICAgICAgcXVlcnlJbnRlcnZhbDogRHVyYXRpb24uc2Vjb25kcygxMClcbiAgICB9KSkudG9UaHJvdygvQ2Fubm90IGRldGVybWluZSByZXRyeSBjb3VudCBzaW5jZSB0b3RhbFRpbWVvdXQ9NXMgaXMgbm90IGludGVncmFsbHkgZGl2aWRhYmxlIGJ5IHF1ZXJ5SW50ZXJ2YWw9MTBzLyk7XG4gIH0pO1xufSk7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGVyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4Q0FBOEM7QUFDOUMsd0NBQWdEO0FBQ2hELDZCQUE2QjtBQUM3QixnQ0FBZ0M7QUFDaEMsMERBQTBEO0FBRTFELGdDQUE4QjtBQUU5QixJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtJQUN6QixRQUFRO0lBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxZQUFLLEVBQUUsQ0FBQztJQUUxQixPQUFPO0lBQ1AsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUU7UUFDbkMsY0FBYyxFQUFFLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFO1lBQ3RELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSw2Q0FBNkMsQ0FBQyxDQUFDO1lBQ2hHLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7U0FDcEMsQ0FBQztLQUNILENBQUMsQ0FBQztJQUVILE9BQU87SUFFUCw4QkFBOEI7SUFDOUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRTtRQUNwRCxPQUFPLEVBQUUsbUJBQW1CO1FBQzVCLFdBQVcsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLDBCQUEwQixFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUUsbUJBQW1CLEVBQUUsS0FBSyxDQUFFLEVBQUUsRUFBRSxFQUFFO1FBQzVHLE9BQU8sRUFBRSxHQUFHO0tBQ2IsQ0FBQyxDQUFDO0lBRUgseUJBQXlCO0lBQ3pCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUU7UUFDcEQsT0FBTyxFQUFFLGVB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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnQGF3cy1jZGsvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBEdXJhdGlvbiwgU3RhY2sgfSBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjciBmcm9tICcuLi8uLi9saWInO1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuLi8uLi9saWIvcHJvdmlkZXItZnJhbWV3b3JrL3V0aWwnO1xuXG5pbXBvcnQgJ0Bhd3MtY2RrL2Fzc2VydC9qZXN0JztcblxudGVzdCgnbWluaW1hbCBzZXR1cCcsICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICAvLyBXSEVOXG4gIG5ldyBjci5Qcm92aWRlcihzdGFjaywgJ015UHJvdmlkZXInLCB7XG4gICAgb25FdmVudEhhbmRsZXI6IG5ldyBsYW1iZGEuRnVuY3Rpb24oc3RhY2ssICdNeUhhbmRsZXInLCB7XG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4vaW50ZWdyYXRpb24tdGVzdC1maXh0dXJlcy9zMy1maWxlLWhhbmRsZXInKSksXG4gICAgICBoYW5kbGVyOiAnaW5kZXgub25FdmVudCcsXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTBfWFxuICAgIH0pLFxuICB9KTtcblxuICAvLyBUSEVOXG5cbiAgLy8gZnJhbWV3b3JrIFwib25FdmVudFwiIGhhbmRsZXJcbiAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJywge1xuICAgIEhhbmRsZXI6ICdmcmFtZXdvcmsub25FdmVudCcsXG4gICAgRW52aXJvbm1lbnQ6IHsgVmFyaWFibGVzOiB7IFVTRVJfT05fRVZFTlRfRlVOQ1RJT05fQVJOOiB7ICdGbjo6R2V0QXR0JzogWyAnTXlIYW5kbGVyNkI3NEQzMTInLCAnQXJuJyBdIH0gfSB9LFxuICAgIFRpbWVvdXQ6IDkwMFxuICB9KTtcblxuICAvLyB1c2VyIFwib25FdmVudFwiIGhhbmRsZXJcbiAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJywge1xuICAgIEhhbmRsZXI6ICdpbmRleC5vbkV2ZW50JyxcbiAgfSk7XG5cbiAgLy8gbm8gZnJhbWV3b3JrIFwiaXMgY29tcGxldGVcIiBoYW5kbGVyIG9yIHN0YXRlIG1hY2hpbmVcbiAgZXhwZWN0KHN0YWNrKS5ub3QudG9IYXZlUmVzb3VyY2UoJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyk7XG4gIGV4cGVjdChzdGFjaykubm90LnRvSGF2ZVJlc291cmNlKCdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nLCB7XG4gICAgSGFuZGxlcjogJ2ZyYW1ld29yay5pc0NvbXBsZXRlJyxcbiAgICBUaW1lb3V0OiA5MDBcbiAgfSk7XG59KTtcblxudGVzdCgnaWYgaXNDb21wbGV0ZSBpcyBzcGVjaWZpZWQsIHRoZSBpc0NvbXBsZXRlIGZyYW1ld29yayBoYW5kbGVyIGlzIGFsc28gaW5jbHVkZWQnLCAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IGhhbmRsZXIgPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHN0YWNrLCAnTXlIYW5kbGVyJywge1xuICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9pbnRlZ3JhdGlvbi10ZXN0LWZpeHR1cmVzL3MzLWZpbGUtaGFuZGxlcicpKSxcbiAgICBoYW5kbGVyOiAnaW5kZXgub25FdmVudCcsXG4gICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzEwX1hcbiAgfSk7XG5cbiAgLy8gV0hFTlxuICBuZXcgY3IuUHJvdmlkZXIoc3RhY2ssICdNeVByb3ZpZGVyJywge1xuICAgIG9uRXZlbnRIYW5kbGVyOiBoYW5kbGVyLFxuICAgIGlzQ29tcGxldGVIYW5kbGVyOiBoYW5kbGVyXG4gIH0pO1xuXG4gIC8vIFRIRU5cblxuICAvLyBmcmFtZXdvcmsgXCJvbkV2ZW50XCIgaGFuZGxlclxuICBjb25zdCBleHBlY3RlZEVudiA9IHtcbiAgICBWYXJpYWJsZXM6IHtcbiAgICAgIFVTRVJfT05fRVZFTlRfRlVOQ1RJT05fQVJOOiB7ICdGbjo6R2V0QXR0JzogWydNeUhhbmRsZXI2Qjc0RDMxMicsICdBcm4nIF0gfSxcbiAgICAgIFVTRVJfSVNfQ09NUExFVEVfRlVOQ1RJT05fQVJOOiB7ICdGbjo6R2V0QXR0JzogWyAnTXlIYW5kbGVyNkI3NEQzMTInLCAnQXJuJyBdIH1cbiAgICB9XG4gIH07XG5cbiAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSgnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJywge1xuICAgIEhhbmRsZXI6ICdmcmFtZXdvcmsub25FdmVudCcsXG4gICAgVGltZW91dDogOTAwLFxuICAgIEVudmlyb25tZW50OiB7XG4gICAgICBWYXJpYWJsZXM6IHtcbiAgICAgICAgLi4uZXhwZWN0ZWRFbnYuVmFyaWFibGVzLFxuICAgICAgICBXQUlURVJfU1RBVEVfTUFDSElORV9BUk46IHsgUmVmOiAnTXlQcm92aWRlcndhaXRlcnN0YXRlbWFjaGluZUMxRkJCOUY5JyB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nLCB7XG4gICAgSGFuZGxlcjogJ2ZyYW1ld29yay5pc0NvbXBsZXRlJyxcbiAgICBUaW1lb3V0OiA5MDAsXG4gICAgRW52aXJvbm1lbnQ6IGV4cGVjdGVkRW52XG4gIH0pO1xuXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicsIHtcbiAgICBIYW5kbGVyOiAnZnJhbWV3b3JrLm9uVGltZW91dCcsXG4gICAgVGltZW91dDogOTAwLFxuICAgIEVudmlyb25tZW50OiBleHBlY3RlZEVudlxuICB9KTtcblxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKCdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScsIHtcbiAgICBEZWZpbml0aW9uU3RyaW5nOiB7XG4gICAgICAnRm46OkpvaW4nOiBbXG4gICAgICAgICcnLFxuICAgICAgICBbXG4gICAgICAgICAgJ3tcIlN0YXJ0QXRcIjpcImZyYW1ld29yay1pc0NvbXBsZXRlLXRhc2tcIixcIlN0YXRlc1wiOntcImZyYW1ld29yay1pc0NvbXBsZXRlLXRhc2tcIjp7XCJFbmRcIjp0cnVlLFwiUmV0cnlcIjpbe1wiRXJyb3JFcXVhbHNcIjpbXCJTdGF0ZXMuQUxMXCJdLFwiSW50ZXJ2YWxTZWNvbmRzXCI6NSxcIk1heEF0dGVtcHRzXCI6MzYwLFwiQmFja29mZlJhdGVcIjoxfV0sXCJDYXRjaFwiOlt7XCJFcnJvckVxdWFsc1wiOltcIlN0YXRlcy5BTExcIl0sXCJOZXh0XCI6XCJmcmFtZXdvcmstb25UaW1lb3V0LXRhc2tcIn1dLFwiVHlwZVwiOlwiVGFza1wiLFwiUmVzb3VyY2VcIjpcIicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgJ0ZuOjpHZXRBdHQnOiBbXG4gICAgICAgICAgICAgICdNeVByb3ZpZGVyZnJhbWV3b3JraXNDb21wbGV0ZTM2NDE5MEUyJyxcbiAgICAgICAgICAgICAgJ0FybidcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgICdcIn0sXCJmcmFtZXdvcmstb25UaW1lb3V0LXRhc2tcIjp7XCJFbmRcIjp0cnVlLFwiVHlwZVwiOlwiVGFza1wiLFwiUmVzb3VyY2VcIjpcIicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgJ0ZuOjpHZXRBdHQnOiBbXG4gICAgICAgICAgICAgICdNeVByb3ZpZGVyZnJhbWV3b3Jrb25UaW1lb3V0RDlEOTY1ODgnLFxuICAgICAgICAgICAgICAnQXJuJ1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgJ1wifX19J1xuICAgICAgICBdXG4gICAgICBdXG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCdmYWlscyBpZiBcInF1ZXJ5SW50ZXJ2YWxcIiBhbmQvb3IgXCJ0b3RhbFRpbWVvdXRcIiBhcmUgc2V0IHdpdGhvdXQgXCJpc0NvbXBsZXRlSGFuZGxlclwiJywgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBoYW5kbGVyID0gbmV3IGxhbWJkYS5GdW5jdGlvbihzdGFjaywgJ015SGFuZGxlcicsIHtcbiAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4vaW50ZWdyYXRpb24tdGVzdC1maXh0dXJlcy9zMy1maWxlLWhhbmRsZXInKSksXG4gICAgaGFuZGxlcjogJ2luZGV4Lm9uRXZlbnQnLFxuICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xMF9YXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KCgpID0+IG5ldyBjci5Qcm92aWRlcihzdGFjaywgJ3Byb3ZpZGVyMScsIHtcbiAgICBvbkV2ZW50SGFuZGxlcjogaGFuZGxlcixcbiAgICBxdWVyeUludGVydmFsOiBEdXJhdGlvbi5zZWNvbmRzKDEwKVxuICB9KSkudG9UaHJvdygvXFxcInF1ZXJ5SW50ZXJ2YWxcXFwiIGFuZCBcXFwidG90YWxUaW1lb3V0XFxcIiBjYW4gb25seSBiZSBjb25maWd1cmVkIGlmIFxcXCJpc0NvbXBsZXRlSGFuZGxlclxcXCIgaXMgc3BlY2lmaWVkLiBPdGhlcndpc2UsIHRoZXkgaGF2ZSBubyBtZWFuaW5nLyk7XG5cbiAgZXhwZWN0KCgpID0+IG5ldyBjci5Qcm92aWRlcihzdGFjaywgJ3Byb3ZpZGVyMicsIHtcbiAgICBvbkV2ZW50SGFuZGxlcjogaGFuZGxlcixcbiAgICB0b3RhbFRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMTAwKVxuICB9KSkudG9UaHJvdygvXFxcInF1ZXJ5SW50ZXJ2YWxcXFwiIGFuZCBcXFwidG90YWxUaW1lb3V0XFxcIiBjYW4gb25seSBiZSBjb25maWd1cmVkIGlmIFxcXCJpc0NvbXBsZXRlSGFuZGxlclxcXCIgaXMgc3BlY2lmaWVkLiBPdGhlcndpc2UsIHRoZXkgaGF2ZSBubyBtZWFuaW5nLyk7XG59KTtcblxuZGVzY3JpYmUoJ3JldHJ5IHBvbGljeScsICgpID0+IHtcbiAgaXQoJ2RlZmF1bHQgaXMgMzAgbWludXRlcyB0aW1lb3V0IGluIDUgc2Vjb25kIGludGVydmFscycsICgpID0+IHtcbiAgICBjb25zdCBwb2xpY3kgPSB1dGlsLmNhbGN1bGF0ZVJldHJ5UG9saWN5KCk7XG4gICAgZXhwZWN0KHBvbGljeS5iYWNrb2ZmUmF0ZSkudG9TdHJpY3RFcXVhbCgxKTtcbiAgICBleHBlY3QocG9saWN5LmludGVydmFsICYmIHBvbGljeS5pbnRlcnZhbC50b1NlY29uZHMoKSkudG9TdHJpY3RFcXVhbCg1KTtcbiAgICBleHBlY3QocG9saWN5Lm1heEF0dGVtcHRzKS50b1N0cmljdEVxdWFsKDM2MCk7XG4gIH0pO1xuXG4gIGl0KCdpZiB0b3RhbCB0aW1lb3V0IGFuZCBxdWVyeSBpbnRlcnZhbCBhcmUgdGhlIHNhbWUgd2Ugd2lsbCBoYXZlIG9uZSBhdHRlbXB0JywgKCkgPT4ge1xuICAgIGNvbnN0IHBvbGljeSA9IHV0aWwuY2FsY3VsYXRlUmV0cnlQb2xpY3koe1xuICAgICAgdG90YWxUaW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgcXVlcnlJbnRlcnZhbDogRHVyYXRpb24ubWludXRlcyg1KVxuICAgIH0pO1xuICAgIGV4cGVjdChwb2xpY3kubWF4QXR0ZW1wdHMpLnRvU3RyaWN0RXF1YWwoMSk7XG4gIH0pO1xuXG4gIGl0KCdmYWlscyBpZiB0b3RhbCB0aW1lb3V0IGNhbm5vdCBiZSBpbnRlZ3JhbGx5IGRpdmlkZWQnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHV0aWwuY2FsY3VsYXRlUmV0cnlQb2xpY3koe1xuICAgICAgdG90YWxUaW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDEwMCksXG4gICAgICBxdWVyeUludGVydmFsOiBEdXJhdGlvbi5zZWNvbmRzKDc1KVxuICAgIH0pKS50b1Rocm93KC9DYW5ub3QgZGV0ZXJtaW5lIHJldHJ5IGNvdW50IHNpbmNlIHRvdGFsVGltZW91dD0xMDBzIGlzIG5vdCBpbnRlZ3JhbGx5IGRpdmlkYWJsZSBieSBxdWVyeUludGVydmFsPTc1cy8pO1xuICB9KTtcblxuICBpdCgnZmFpbHMgaWYgaW50ZXJ2YWwgPiB0aW1lb3V0JywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiB1dGlsLmNhbGN1bGF0ZVJldHJ5UG9saWN5KHtcbiAgICAgIHRvdGFsVGltZW91dDogRHVyYXRpb24uc2Vjb25kcyg1KSxcbiAgICAgIHF1ZXJ5SW50ZXJ2YWw6IER1cmF0aW9uLnNlY29uZHMoMTApXG4gICAgfSkpLnRvVGhyb3coL0Nhbm5vdCBkZXRlcm1pbmUgcmV0cnkgY291bnQgc2luY2UgdG90YWxUaW1lb3V0PTVzIGlzIG5vdCBpbnRlZ3JhbGx5IGRpdmlkYWJsZSBieSBxdWVyeUludGVydmFsPTEwcy8pO1xuICB9KTtcbn0pO1xuIl19

@@ -14,3 +14,3 @@ "use strict";

const MOCK_PHYSICAL_ID = 'mock-physical-resource-id';
const MOCK_PROPS = { Name: "Value", List: ["1", "2", "3"], ServiceToken: 'bla' };
const MOCK_PROPS = { Name: 'Value', List: ['1', '2', '3'], ServiceToken: 'bla' };
const MOCK_ATTRS = { MyAttribute: 'my-mock-attribute' };

@@ -163,3 +163,3 @@ outbound.httpRequest = mocks.httpRequestMock;

// THEN
expectCloudFormationFailed(`Operation timed out`);
expectCloudFormationFailed('Operation timed out');
});

@@ -175,3 +175,3 @@ test('isComplete: "Data" is not allowed if InComplete is "False"', async () => {

});
expectCloudFormationFailed(`"Data" is not allowed if "IsComplete" is "False"`);
expectCloudFormationFailed('"Data" is not allowed if "IsComplete" is "False"');
});

@@ -292,2 +292,2 @@ test('if there is no user-defined "isComplete", the waiter will not be triggered or needed', async () => {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicnVudGltZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBQzdCLGtDQUFrQztBQUNsQywwREFBMEQ7QUFDMUQsaUZBQWtGO0FBQ2xGLDRFQUE2RTtBQUM3RSwwRUFBMkU7QUFDM0UsaUNBQWtDO0FBQ2xDLG1CQUFtQjtBQUVuQixPQUFPLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztBQUV4QixXQUFXLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0FBRXZDLE1BQU0sZ0JBQWdCLEdBQUcsMkJBQTJCLENBQUM7QUFDckQsTUFBTSxVQUFVLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ2pGLE1BQU0sVUFBVSxHQUFHLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLENBQUM7QUFFeEQsUUFBUSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO0FBQzdDLFFBQVEsQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDO0FBQ25ELFFBQVEsQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDO0FBRW5ELFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUVoQyxJQUFJLENBQUMsd0RBQXdELEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDeEUsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDO0lBRXhCLEtBQUssQ0FBQyxlQUFlLEdBQUcsS0FBSyxFQUFDLEtBQUssRUFBQyxFQUFFO1FBQ3BDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxD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QUFRLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2xELE1BQU0sTUFBTSxHQUFJLEtBQUssQ0FBQyxXQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBZSxDQUFDLENBQUM7S0FDL0M7QUFDSCxDQUFDO0FBRUQsU0FBUyxjQUFjO0lBQ3JCLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6IG5vLWNvbnNvbGVcbi8vIHRzbGludDpkaXNhYmxlOiBtYXgtbGluZS1sZW5ndGhcbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMgKi9cbmltcG9ydCBjZm5SZXNwb25zZSA9IHJlcXVpcmUoJy4uLy4uL2xpYi9wcm92aWRlci1mcmFtZXdvcmsvcnVudGltZS9jZm4tcmVzcG9uc2UnKTtcbmltcG9ydCBmcmFtZXdvcmsgPSByZXF1aXJlKCcuLi8uLi9saWIvcHJvdmlkZXItZnJhbWV3b3JrL3J1bnRpbWUvZnJhbWV3b3JrJyk7XG5pbXBvcnQgb3V0Ym91bmQgPSByZXF1aXJlKCcuLi8uLi9saWIvcHJvdmlkZXItZnJhbWV3b3JrL3J1bnRpbWUvb3V0Ym91bmQnKTtcbmltcG9ydCBtb2NrcyA9IHJlcXVpcmUoJy4vbW9ja3MnKTtcbi8qIGVzbGludC1lbmFibGUgKi9cblxuY29uc29sZS5sb2cgPSBqZXN0LmZuKCk7XG5cbmNmblJlc3BvbnNlLmluY2x1ZGVTdGFja1RyYWNlcyA9IGZhbHNlO1xuXG5jb25zdCBNT0NLX1BIWVNJQ0FMX0lEID0gJ21vY2stcGh5c2ljYWwtcmVzb3VyY2UtaWQnO1xuY29uc3QgTU9DS19QUk9QUyA9IHsgTmFtZTogXCJWYWx1ZVwiLCBMaXN0OiBbXCIxXCIsIFwiMlwiLCBcIjNcIl0sIFNlcnZpY2VUb2tlbjogJ2JsYScgfTtcbmNvbnN0IE1PQ0tfQVRUUlMgPSB7IE15QXR0cmlidXRlOiAnbXktbW9jay1hdHRyaWJ1dGUnIH07XG5cbm91dGJvdW5kLmh0dHBSZXF1ZXN0ID0gbW9ja3MuaHR0cFJlcXVlc3RNb2NrO1xub3V0Ym91bmQuaW52b2tlRnVuY3Rpb24gPSBtb2Nrcy5pbnZva2VGdW5jdGlvbk1vY2s7XG5vdXRib3VuZC5zdGFydEV4ZWN1dGlvbiA9IG1vY2tzLnN0YXJ0RXhlY3V0aW9uTW9jaztcblxuYmVmb3JlRWFjaCgoKSA9PiBtb2Nrcy5zZXR1cCgpKTtcblxudGVzdCgnYXN5bmMgZmxvdzogaXNDb21wbGV0ZSByZXR1cm5zIHRydWUgb25seSBhZnRlciAzIHRpbWVzJywgYXN5bmMgKCkgPT4ge1xuICBsZXQgaXNDb21wbGV0ZUNhbGxzID0gMDtcblxuICBtb2Nrcy5vbkV2ZW50SW1wbE1vY2sgPSBhc3luYyBldmVudCA9PiB7XG4gICAgZXhwZWN0KGV2ZW50LlJlcXVlc3RUeXBlKS50b0VxdWFsKCdDcmVhdGUnKTtcbiAgICBleHBlY3QoZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzKS50b1N0cmljdEVxdWFsKE1PQ0tfUFJPUFMpO1xuICAgIGV4cGVjdChldmVudC5QaHlzaWNhbFJlc291cmNlSWQpLnRvQmVVbmRlZmluZWQoKTsgLy8gcGh5c2ljYWwgSUQgaW4gQ1JFQVRFXG5cbiAgICByZXR1cm4ge1xuICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBNT0NLX1BIWVNJQ0FMX0lELFxuICAgICAgRGF0YTogTU9DS19BVFRSU1xuICAgIH07XG4gIH07XG5cbiAgbW9ja3MuaXNDb21wbGV0ZUltcGxNb2NrID0gYXN5bmMgZXZlbnQgPT4ge1xuICAgIGlzQ29tcGxldGVDYWxscysrO1xuICAgIGV4cGVjdChldmVudC5QaHlzaWNhbFJlc291cmNlSWQpLnRvRXF1YWwoTU9DS19QSFlTSUNBTF9JRCk7IC8vIHBoeXNpY2FsIElEIHJldHVybmVkIGZyb20gb25FdmVudCBpcyBwYXNzZWQgdG8gXCJpc0NvbXBsZXRlXCJcbiAgICBleHBlY3QoZXZlbnQuRGF0YSkudG9TdHJpY3RFcXVhbChNT0NLX0FUVFJTKTsgLy8gYXR0cmlidXRlcyBhcmUgcHJvcGFnYXRlZCBiZXR3ZWVuIHRoZSBjYWxsc1xuXG4gICAgY29uc3QgcmVzdWx0ID0gaXNDb21wbGV0ZUNhbGxzID09PSAzO1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBJc0NvbXBsZXRlOiBmYWxzZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgSXNDb21wbGV0ZTogdHJ1ZSxcbiAgICAgIERhdGE6IHtcbiAgICAgICAgQWRkaXRpb25hbDogJ2F0dHJpYnV0ZScgLy8gYWRkaXRpb25hbCBhdHRyaWJ1dGVzIGNhbiBiZSByZXR1cm5lZCBmcm9tIFwiaXNDb21wbGV0ZVwiXG4gICAgICB9XG4gICAgfTtcbiAgfTtcblxuICAvLyBXSEVOXG4gIGF3YWl0IHNpbXVsYXRlRXZlbnQoe1xuICAgIFJlcXVlc3RUeXBlOiAnQ3JlYXRlJyxcbiAgICBSZXNvdXJjZVByb3BlcnRpZXM6IE1PQ0tfUFJPUFNcbiAgfSk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3QoaXNDb21wbGV0ZUNhbGxzKS50b0VxdWFsKDMpO1xuXG4gIGV4cGVjdENsb3VkRm9ybWF0aW9uU3VjY2Vzcyh7XG4gICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBNT0NLX1BIWVNJQ0FMX0lELFxuICAgIERhdGE6IHtcbiAgICAgIC4uLk1PQ0tfQVRUUlMsXG4gICAgICBBZGRpdGlvbmFsOiAnYXR0cmlidXRlJ1xuICAgIH0sXG4gIH0pO1xufSk7XG5cbnRlc3QoJ2lzQ29tcGxldGUgdGhyb3dzIGluIHRoZSBmaXJzdCBpbnZvY2F0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBtb2Nrcy5vbkV2ZW50SW1wbE1vY2sgPSBhc3luYyAoKSA9PiAoeyBQaHlzaWNhbFJlc291cmNlSWQ6IE1PQ0tfUEhZU0lDQUxfSUQsIH0pO1xuICBtb2Nrcy5pc0NvbXBsZXRlSW1wbE1vY2sgPSBhc3luYyAoKSA9PiB7IHRocm93IG5ldyBFcnJvcignU29tZSBmYWlsdXJlJyk7IH07XG5cbiAgLy8gV0hFTlxuICBhd2FpdCBzaW11bGF0ZUV2ZW50KHtcbiAgICBSZXF1ZXN0VHlwZTogJ0NyZWF0ZScsXG4gICAgUmVzb3VyY2VQcm9wZXJ0aWVzOiBNT0NLX1BST1BTXG4gIH0pO1xuXG4gIGV4cGVjdENsb3VkRm9ybWF0aW9uRmFpbGVkKCdTb21lIGZhaWx1cmUnKTtcbn0pO1xuXG50ZXN0KCdmYWlscyBncmFjZWZ1bGx5IGlmIFwib25FdmVudFwiIHRocm93cyBhbiBlcnJvcicsIGFzeW5jICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgbW9ja3Mub25FdmVudEltcGxNb2NrID0gYXN5bmMgKCkgPT4geyB0aHJvdyBuZXcgRXJyb3IoJ2Vycm9yIHRocm93biBkdXJpbmcgb25FdmVudCcpOyB9O1xuICBtb2Nrcy5pc0NvbXBsZXRlSW1wbE1vY2sgPSBhc3luYyAoKSA9PiAoeyBJc0NvbXBsZXRlOiB0cnVlIH0pO1xuXG4gIC8vIFdIRU5cbiAgYXdhaXQgc2ltdWxhdGVFdmVudCh7XG4gICAgUmVxdWVzdFR5cGU6ICdDcmVhdGUnXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0Q2xvdWRGb3JtYXRpb25GYWlsZWQoJ2Vycm9yIHRocm93biBkdXJpbmcgb25FdmVudCcpO1xuICBleHBlY3ROb1dhaXRlcigpO1xufSk7XG5cbmRlc2NyaWJlKCdQaHlzaWNhbFJlc291cmNlSWQnLCAoKSA9PiB7XG5cbiAgZGVzY3JpYmUoJ2lmIG5vdCBvbWl0dGVkIGZyb20gb25FdmVudCByZXN1bHQnLCAoKSA9PiB7XG5cbiAgICBpdCgnZGVmYXVsdHMgdG8gUmVxdWVzdElkIGZvciBDUkVBVEUnLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBXSEVOXG4gICAgICBtb2Nrcy5vbkV2ZW50SW1wbE1vY2sgPSBhc3luYyAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgICAgIC8vIFRIRU5cbiAgICAgIGF3YWl0IHNpbXVsYXRlRXZlbnQoe1xuICAgICAgICBSZXF1ZXN0VHlwZTogJ0NyZWF0ZSdcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3RDbG91ZEZvcm1hdGlvblN1Y2Nlc3Moe1xuICAgICAgICBQaHlzaWNhbFJlc291cmNlSWQ6IG1vY2tzLk1PQ0tfUkVRVUVTVC5SZXF1ZXN0SWRcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RlZmF1bHRzIHRvIHRoZSBjdXJyZW50IFBoeXNpY2FsUmVzb3VyY2VJZCBmb3IgVVBEQVRFJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gV0hFTlxuICAgICAgbW9ja3Mub25FdmVudEltcGxNb2NrID0gYXN5bmMgKCkgPT4gdW5kZWZpbmVkO1xuXG4gICAgICAvLyBUSEVOXG4gICAgICBhd2FpdCBzaW11bGF0ZUV2ZW50KHtcbiAgICAgICAgUmVxdWVzdFR5cGU6ICdVcGRhdGUnLFxuICAgICAgICBQaHlzaWNhbFJlc291cmNlSWQ6IE1PQ0tfUEhZU0lDQUxfSURcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3RDbG91ZEZvcm1hdGlvblN1Y2Nlc3Moe1xuICAgICAgICBQaHlzaWNhbFJlc291cmNlSWQ6IE1PQ0tfUEhZU0lDQUxfSURcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RlZmF1bHRzIHRvIHRoZSBjdXJyZW50IFBoeXNpY2FsUmVzb3VyY2VJZCBmb3IgREVMRVRFJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gV0hFTlxuICAgICAgbW9ja3Mub25FdmVudEltcGxNb2NrID0gYXN5bmMgKCkgPT4gdW5kZWZpbmVkO1xuXG4gICAgICAvLyBUSEVOXG4gICAgICBhd2FpdCBzaW11bGF0ZUV2ZW50KHtcbiAgICAgICAgUmVxdWVzdFR5cGU6ICdEZWxldGUnLFxuICAgICAgICBQaHlzaWNhbFJlc291cmNlSWQ6IE1PQ0tfUEhZU0lDQUxfSURcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3RDbG91ZEZvcm1hdGlvblN1Y2Nlc3Moe1xuICAgICAgICBQaHlzaWNhbFJlc291cmNlSWQ6IE1PQ0tfUEhZU0lDQUxfSURcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICB0ZXN0KCdVUERBVEU6IGNhbiBjaGFuZ2UgdGhlIHBoeXNpY2FsIElEIGJ5IHJldHVybmluZyBhIG5ldyBJRCcsIGFzeW5jICgpID0+IHtcbiAgICAvLyBHSVZFTlxuICAgIG1vY2tzLm9uRXZlbnRJbXBsTW9jayA9IGFzeW5jICgpID0+ICh7IFBoeXNpY2FsUmVzb3VyY2VJZDogJ05ld1BoeXNpY2FsSWQnIH0pO1xuICAgIG1vY2tzLmlzQ29tcGxldGVJbXBsTW9jayA9IGFzeW5jICgpID0+ICh7IElzQ29tcGxldGU6IHRydWUgfSk7XG5cbiAgICAvLyBXSEVOXG4gICAgYXdhaXQgc2ltdWxhdGVFdmVudCh7XG4gICAgICBSZXF1ZXN0VHlwZTogJ1VwZGF0ZScsXG4gICAgICBQaHlzaWNhbFJlc291cmNlSWQ6ICdDdXJyZW50UGh5c2ljYWxJZCdcbiAgICB9KTtcblxuICAgIC8vIFRIRU5cbiAgICBleHBlY3RDbG91ZEZvcm1hdGlvblN1Y2Nlc3Moe1xuICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiAnTmV3UGh5c2ljYWxJZCdcbiAgICB9KTtcbiAgfSk7XG5cbiAgdGVzdCgnREVMRVRFOiBjYW5ub3QgY2hhbmdlIHRoZSBwaHlzaWNhbCByZXNvdXJjZSBJRCBkdXJpbmcgYSBkZWxldGUnLCBhc3luYyAoKSA9PiB7XG4gICAgLy8gR0lWRU5cbiAgICBtb2Nrcy5vbkV2ZW50SW1wbE1vY2sgPSBhc3luYyAoKSA9PiAoeyBQaHlzaWNhbFJlc291cmNlSWQ6ICdOZXdQaHlzaWNhbElkJyB9KTtcbiAgICBtb2Nrcy5pc0NvbXBsZXRlSW1wbE1vY2sgPSBhc3luYyAoKSA9PiAoeyBJc0NvbXBsZXRlOiB0cnVlIH0pO1xuXG4gICAgLy8gV0hFTlxuICAgIGF3YWl0IHNpbXVsYXRlRXZlbnQoe1xuICAgICAgUmVxdWVzdFR5cGU6ICdEZWxldGUnLFxuICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiAnQ3VycmVudFBoeXNpY2FsSWQnXG4gICAgfSk7XG5cbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0Tm9XYWl0ZXIoKTtcbiAgICBleHBlY3RDbG91ZEZvcm1hdGlvbkZhaWxlZCgnREVMRVRFOiBjYW5ub3QgY2hhbmdlIHRoZSBwaHlzaWNhbCByZXNvdXJjZSBJRCBmcm9tIFwiQ3VycmVudFBoeXNpY2FsSWRcIiB0byBcIk5ld1BoeXNpY2FsSWRcIiBkdXJpbmcgZGVsZXRpb24nKTtcbiAgfSk7XG5cbn0pO1xuXG50ZXN0KCdpc0NvbXBsZXRlIGFsd2F5cyByZXR1cm5zIFwiZmFsc2VcIiBhbmQgdGhlbiBhIHRpbWVvdXQgb2NjdXJzJywgYXN5bmMgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBtb2Nrcy5vbkV2ZW50SW1wbE1vY2sgPSBhc3luYyAoKSA9PiAoeyBEYXRhOiB7IEZvbzogMTIzIH0sIFBoeXNpY2FsUmVzb3VyY2VJZDogTU9DS19QSFlTSUNBTF9JRCB9KTtcbiAgbW9ja3MuaXNDb21wbGV0ZUltcGxNb2NrID0gYXN5bmMgKCkgPT4gKHsgSXNDb21wbGV0ZTogZmFsc2UgfSk7XG5cbiAgLy8gV0hFTlxuICBhd2FpdCBzaW11bGF0ZUV2ZW50KHtcbiAgICBSZXF1ZXN0VHlwZTogJ1VwZGF0ZScsXG4gICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBNT0NLX1BIWVNJQ0FMX0lEXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0Q2xvdWRGb3JtYXRpb25GYWlsZWQoYE9wZXJhdGlvbiB0aW1lZCBvdXRgKTtcbn0pO1xuXG50ZXN0KCdpc0NvbXBsZXRlOiBcIkRhdGFcIiBpcyBub3QgYWxsb3dlZCBpZiBJbkNvbXBsZXRlIGlzIFwiRmFsc2VcIicsIGFzeW5jICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgbW9ja3Mub25FdmVudEltcGxNb2NrID0gYXN5bmMgKCkgPT4gKHsgRGF0YTogeyBGb286IDEyMyB9LCBQaHlzaWNhbFJlc291cmNlSWQ6IE1PQ0tfUEhZU0lDQUxfSUQgfSk7XG4gIG1vY2tzLmlzQ29tcGxldGVJbXBsTW9jayA9IGFzeW5jICgpID0+ICh7IElzQ29tcGxldGU6IGZhbHNlLCBEYXRhOiB7IEZvbzogMzMzMyB9IH0pO1xuXG4gIC8vIFdIRU5cbiAgYXdhaXQgc2ltdWxhdGVFdmVudCh7XG4gICAgUmVxdWVzdFR5cGU6ICdVcGRhdGUnLFxuICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogTU9DS19QSFlTSUNBTF9JRFxuICB9KTtcblxuICBleHBlY3RDbG91ZEZvcm1hdGlvbkZhaWxlZChgXCJEYXRhXCIgaXMgbm90IGFsbG93ZWQgaWYgXCJJc0NvbXBsZXRlXCIgaXMgXCJGYWxzZVwiYCk7XG59KTtcblxudGVzdCgnaWYgdGhlcmUgaXMgbm8gdXNlci1kZWZpbmVkIFwiaXNDb21wbGV0ZVwiLCB0aGUgd2FpdGVyIHdpbGwgbm90IGJlIHRyaWdnZXJlZCBvciBuZWVkZWQnLCBhc3luYyAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIG1vY2tzLm9uRXZlbnRJbXBsTW9jayA9IGFzeW5jICgpID0+ICh7IFBoeXNpY2FsUmVzb3VyY2VJZDogTU9DS19QSFlTSUNBTF9JRCB9KTtcblxuICAvLyBXSEVOXG4gIGF3YWl0IHNpbXVsYXRlRXZlbnQoe1xuICAgIFJlcXVlc3RUeXBlOiAnQ3JlYXRlJyxcbiAgfSk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3ROb1dhaXRlcigpO1xuICBleHBlY3RDbG91ZEZvcm1hdGlvblN1Y2Nlc3MoeyBQaHlzaWNhbFJlc291cmNlSWQ6IE1PQ0tfUEhZU0lDQUxfSUQgfSk7XG59KTtcblxudGVzdCgnZmFpbHMgaWYgdXNlciBoYW5kbGVyIHJldHVybnMgYSBub24tb2JqZWN0IHJlc3BvbnNlJywgYXN5bmMgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBtb2Nrcy5zdHJpbmdpZnlQYXlsb2FkID0gZmFsc2U7XG4gIG1vY2tzLm9uRXZlbnRJbXBsTW9jayA9IGFzeW5jICgpID0+ICdzdHJpbmcnIGFzIGFueTtcblxuICAvLyBXSEVOXG4gIGF3YWl0IHNpbXVsYXRlRXZlbnQoeyBSZXF1ZXN0VHlwZTogJ0NyZWF0ZScgfSk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3RDbG91ZEZvcm1hdGlvbkZhaWxlZCgncmV0dXJuIHZhbHVlcyBmcm9tIHVzZXItaGFuZGxlcnMgbXVzdCBiZSBKU09OIG9iamVjdHMuIGdvdDogXFxcInN0cmluZ1xcXCInKTtcbn0pO1xuXG5kZXNjcmliZSgnaWYgQ1JFQVRFIGZhaWxzLCB0aGUgc3Vic2VxdWVudCBERUxFVEUgd2lsbCBiZSBpZ25vcmVkJywgKCkgPT4ge1xuXG4gIGl0KCdGQUlMRUQgcmVzcG9uc2Ugc2V0cyBQaHlzaWNhbFJlc291cmNlSWQgdG8gYSBzcGVjaWFsIG1hcmtlcicsIGFzeW5jICgpID0+IHtcbiAgICAvLyBXSEVOXG4gICAgbW9ja3Mub25FdmVudEltcGxNb2NrID0gYXN5bmMgKCkgPT4geyB0aHJvdyBuZXcgRXJyb3IoJ0NSRUFURSBGQUlMRUQnKTsgfTtcblxuICAgIC8vIFRIRU5cbiAgICBhd2FpdCBzaW11bGF0ZUV2ZW50KHtcbiAgICAgIFJlcXVlc3RUeXBlOiAnQ3JlYXRlJ1xuICAgIH0pO1xuXG4gICAgZXhwZWN0Q2xvdWRGb3JtYXRpb25GYWlsZWQoJ0NSRUFURSBGQUlMRUQnLCB7XG4gICAgICBQaHlzaWNhbFJlc291cmNlSWQ6IGNmblJlc3BvbnNlLkNSRUFURV9GQUlMRURfUEhZU0lDQUxfSURfTUFSS0VSLFxuICAgIH0pO1xuICB9KTtcblxuICBpdCgnREVMRVRFIHJlcXVlc3Qgd2l0aCB0aGUgbWFya2VyIHN1Y2NlZWRzIHdpdGhvdXQgY2FsbGluZyB1c2VyIGhhbmRsZXInLCBhc3luYyAoKSA9PiB7XG4gICAgLy8gR0lWRU5cbiAgICAvLyB1c2VyIGhhbmRsZXIgaXMgbm90IGFzc2lnbmVkXG5cbiAgICAvLyBXSEVOXG4gICAgYXdhaXQgc2ltdWxhdGVFdmVudCh7XG4gICAgICBSZXF1ZXN0VHlwZTogJ0RlbGV0ZScsXG4gICAgICBQaHlzaWNhbFJlc291cmNlSWQ6IGNmblJlc3BvbnNlLkNSRUFURV9GQUlMRURfUEhZU0lDQUxfSURfTUFSS0VSXG4gICAgfSk7XG5cbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0Q2xvdWRGb3JtYXRpb25TdWNjZXNzKCk7XG4gIH0pO1xuXG59KTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBUcmlnZ2VycyB0aGUgY3VzdG9tIHJlc291cmNlIGxpZmVjeWNsZSBldmVudCBmbG93IGJ5IGludm9raW5nIHRoZSBmcmFtZXdvcmsnc1xuICogb25FdmVudCBmdW5jdGlvbiBhbmQgdGhlbiwgaWYgdGhlIHdhaXRlciBzdGF0ZSBtYWNoaW5lIHdhcyBzdGFydGVkLCBzaW11bGF0ZXNcbiAqIHRoZSB3YWl0ZXIgYW5kIGludm9rZXMgaXNDb21wbGV0ZSBhbmQgb25UaW1lb3V0IGFzIGFwcHJvcHJpYXRlLlxuICovXG5hc3luYyBmdW5jdGlvbiBzaW11bGF0ZUV2ZW50KHJlcTogUGFydGlhbDxBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUV2ZW50Pikge1xuICBjb25zdCB4ID0ge1xuICAgIFNlcnZpY2VUb2tlbjogJ1NFUlZJQ0UtVE9LRU4nLFxuICAgIFJlc3BvbnNlVVJMOiBtb2Nrcy5NT0NLX1JFUVVFU1QuUmVzcG9uc2VVUkwsXG4gICAgU3RhY2tJZDogbW9ja3MuTU9DS19SRVFVRVNULlN0YWNrSWQsXG4gICAgUmVxdWVzdElkOiBtb2Nrcy5NT0NLX1JFUVVFU1QuUmVxdWVzdElkLFxuICAgIFJlc291cmNlVHlwZTogJ0N1c3RvbTo6VGVzdFJlc291cmNlJyxcbiAgICBMb2dpY2FsUmVzb3VyY2VJZDogbW9ja3MuTU9DS19SRVFVRVNULkxvZ2ljYWxSZXNvdXJjZUlkLFxuICAgIC4uLnJlcVxuICB9O1xuXG4gIG1vY2tzLnByZXBhcmVGb3JFeGVjdXRpb24oKTtcblxuICBhd2FpdCBmcmFtZXdvcmsub25FdmVudCh4IGFzIEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlRXZlbnQpO1xuXG4gIC8vIGlmIHRoZSBGU01cbiAgaWYgKG1vY2tzLnN0YXJ0U3RhdGVNYWNoaW5lSW5wdXQgJiYgbW9ja3Muc3RhcnRTdGF0ZU1hY2hpbmVJbnB1dC5zdGF0ZU1hY2hpbmVBcm4gPT09IG1vY2tzLk1PQ0tfU0ZOX0FSTikge1xuICAgIGF3YWl0IHNpbXVsYXRlV2FpdGVyKEpTT04ucGFyc2UobW9ja3Muc3RhcnRTdGF0ZU1hY2hpbmVJbnB1dC5pbnB1dCEpKTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIHNpbXVsYXRlV2FpdGVyKGV2ZW50OiBBV1NDREtBc3luY0N1c3RvbVJlc291cmNlLklzQ29tcGxldGVSZXF1ZXN0KSB7XG4gICAgbGV0IHJldHJ5ID0gdHJ1ZTtcbiAgICBsZXQgY291bnQgPSA1O1xuICAgIHdoaWxlIChyZXRyeSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZnJhbWV3b3JrLmlzQ29tcGxldGUoZXZlbnQpO1xuICAgICAgICByZXRyeSA9IGZhbHNlO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIGNmblJlc3BvbnNlLlJldHJ5KSB7XG4gICAgICAgICAgaWYgKGNvdW50LS0gPT09IDApIHtcbiAgICAgICAgICAgIGF3YWl0IGZyYW1ld29yay5vblRpbWVvdXQoeyBDYXVzZTogSlNPTi5zdHJpbmdpZnkoeyBlcnJvck1lc3NhZ2U6IGUubWVzc2FnZSB9KSB9KTtcbiAgICAgICAgICAgIHJldHJ5ID0gZmFsc2U7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHJ5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZXhwZWN0Q2xvdWRGb3JtYXRpb25GYWlsZWQoZXhwZWN0ZWRSZWFzb246IHN0cmluZywgcmVzcD86IFBhcnRpYWw8QVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VSZXNwb25zZT4pIHtcbiAgZXhwZWN0Q2xvdWRGb3JtYXRpb25SZXNwb25zZSh7XG4gICAgU3RhdHVzOiAnRkFJTEVEJyxcbiAgICBSZWFzb246IGV4cGVjdGVkUmVhc29uLFxuICAgIC4uLnJlc3BcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGV4cGVjdENsb3VkRm9ybWF0aW9uU3VjY2VzcyhyZXNwPzogUGFydGlhbDxBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZVJlc3BvbnNlPikge1xuICBpZiAobW9ja3MuY2ZuUmVzcG9uc2UuU3RhdHVzICE9PSAnU1VDQ0VTUycpIHtcbiAgICBjb25zb2xlLmVycm9yKG1vY2tzLmNmblJlc3BvbnNlLlJlYXNvbiB8fCAnPE5PIFJFQVNPTj4nKTtcbiAgfVxuXG4gIGV4cGVjdENsb3VkRm9ybWF0aW9uUmVzcG9uc2UoeyBTdGF0dXM6ICdTVUNDRVNTJywgLi4ucmVzcCB9KTtcbn1cblxuZnVuY3Rpb24gZXhwZWN0Q2xvdWRGb3JtYXRpb25SZXNwb25zZShyZXNwOiBQYXJ0aWFsPEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlUmVzcG9uc2U+ID0ge30pIHtcbiAgZm9yIChjb25zdCBba2V5LCBleHBlY3RlZF0gb2YgT2JqZWN0LmVudHJpZXMocmVzcCkpIHtcbiAgICBjb25zdCBhY3R1YWwgPSAobW9ja3MuY2ZuUmVzcG9uc2UgYXMgYW55KVtrZXldO1xuICAgIGV4cGVjdChhY3R1YWwpLnRvU3RyaWN0RXF1YWwoZXhwZWN0ZWQgYXMgYW55KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBleHBlY3ROb1dhaXRlcigpIHtcbiAgZXhwZWN0KG1vY2tzLnN0YXJ0U3RhdGVNYWNoaW5lSW5wdXQpLnRvQmVVbmRlZmluZWQoKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicnVudGltZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBQzdCLGtDQUFrQztBQUNsQywwREFBMEQ7QUFDMUQsaUZBQWtGO0FBQ2xGLDRFQUE2RTtBQUM3RSwwRUFBMkU7QUFDM0UsaUNBQWtDO0FBQ2xDLG1CQUFtQjtBQUVuQixPQUFPLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztBQUV4QixXQUFXLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0FBRXZDLE1BQU0sZ0JBQWdCLEdBQUcsMkJBQTJCLENBQUM7QUFDckQsTUFBTSxVQUFVLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ2pGLE1BQU0sVUFBVSxHQUFHLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLENBQUM7QUFFeEQsUUFBUSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO0FBQzdDLFFBQVEsQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDO0FBQ25ELFFBQVEsQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDO0FBRW5ELFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUVoQyxJQUFJLENBQUMsd0RBQXdELEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDeEUsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDO0lBRXhCLEtBQUssQ0FBQyxlQUFlLEdBQUcsS0FBSyxFQUFDLEtBQUssRUFBQyxFQUFFO1FBQ3BDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxD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QUFRLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2xELE1BQU0sTUFBTSxHQUFJLEtBQUssQ0FBQyxXQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBZSxDQUFDLENBQUM7S0FDL0M7QUFDSCxDQUFDO0FBRUQsU0FBUyxjQUFjO0lBQ3JCLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6IG5vLWNvbnNvbGVcbi8vIHRzbGludDpkaXNhYmxlOiBtYXgtbGluZS1sZW5ndGhcbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMgKi9cbmltcG9ydCBjZm5SZXNwb25zZSA9IHJlcXVpcmUoJy4uLy4uL2xpYi9wcm92aWRlci1mcmFtZXdvcmsvcnVudGltZS9jZm4tcmVzcG9uc2UnKTtcbmltcG9ydCBmcmFtZXdvcmsgPSByZXF1aXJlKCcuLi8uLi9saWIvcHJvdmlkZXItZnJhbWV3b3JrL3J1bnRpbWUvZnJhbWV3b3JrJyk7XG5pbXBvcnQgb3V0Ym91bmQgPSByZXF1aXJlKCcuLi8uLi9saWIvcHJvdmlkZXItZnJhbWV3b3JrL3J1bnRpbWUvb3V0Ym91bmQnKTtcbmltcG9ydCBtb2NrcyA9IHJlcXVpcmUoJy4vbW9ja3MnKTtcbi8qIGVzbGludC1lbmFibGUgKi9cblxuY29uc29sZS5sb2cgPSBqZXN0LmZuKCk7XG5cbmNmblJlc3BvbnNlLmluY2x1ZGVTdGFja1RyYWNlcyA9IGZhbHNlO1xuXG5jb25zdCBNT0NLX1BIWVNJQ0FMX0lEID0gJ21vY2stcGh5c2ljYWwtcmVzb3VyY2UtaWQnO1xuY29uc3QgTU9DS19QUk9QUyA9IHsgTmFtZTogJ1ZhbHVlJywgTGlzdDogWycxJywgJzInLCAnMyddLCBTZXJ2aWNlVG9rZW46ICdibGEnIH07XG5jb25zdCBNT0NLX0FUVFJTID0geyBNeUF0dHJpYnV0ZTogJ215LW1vY2stYXR0cmlidXRlJyB9O1xuXG5vdXRib3VuZC5odHRwUmVxdWVzdCA9IG1vY2tzLmh0dHBSZXF1ZXN0TW9jaztcbm91dGJvdW5kLmludm9rZUZ1bmN0aW9uID0gbW9ja3MuaW52b2tlRnVuY3Rpb25Nb2NrO1xub3V0Ym91bmQuc3RhcnRFeGVjdXRpb24gPSBtb2Nrcy5zdGFydEV4ZWN1dGlvbk1vY2s7XG5cbmJlZm9yZUVhY2goKCkgPT4gbW9ja3Muc2V0dXAoKSk7XG5cbnRlc3QoJ2FzeW5jIGZsb3c6IGlzQ29tcGxldGUgcmV0dXJucyB0cnVlIG9ubHkgYWZ0ZXIgMyB0aW1lcycsIGFzeW5jICgpID0+IHtcbiAgbGV0IGlzQ29tcGxldGVDYWxscyA9IDA7XG5cbiAgbW9ja3Mub25FdmVudEltcGxNb2NrID0gYXN5bmMgZXZlbnQgPT4ge1xuICAgIGV4cGVjdChldmVudC5SZXF1ZXN0VHlwZSkudG9FcXVhbCgnQ3JlYXRlJyk7XG4gICAgZXhwZWN0KGV2ZW50LlJlc291cmNlUHJvcGVydGllcykudG9TdHJpY3RFcXVhbChNT0NLX1BST1BTKTtcbiAgICBleHBlY3QoZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkKS50b0JlVW5kZWZpbmVkKCk7IC8vIHBoeXNpY2FsIElEIGluIENSRUFURVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogTU9DS19QSFlTSUNBTF9JRCxcbiAgICAgIERhdGE6IE1PQ0tfQVRUUlNcbiAgICB9O1xuICB9O1xuXG4gIG1vY2tzLmlzQ29tcGxldGVJbXBsTW9jayA9IGFzeW5jIGV2ZW50ID0+IHtcbiAgICBpc0NvbXBsZXRlQ2FsbHMrKztcbiAgICBleHBlY3QoZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkKS50b0VxdWFsKE1PQ0tfUEhZU0lDQUxfSUQpOyAvLyBwaHlzaWNhbCBJRCByZXR1cm5lZCBmcm9tIG9uRXZlbnQgaXMgcGFzc2VkIHRvIFwiaXNDb21wbGV0ZVwiXG4gICAgZXhwZWN0KGV2ZW50LkRhdGEpLnRvU3RyaWN0RXF1YWwoTU9DS19BVFRSUyk7IC8vIGF0dHJpYnV0ZXMgYXJlIHByb3BhZ2F0ZWQgYmV0d2VlbiB0aGUgY2FsbHNcblxuICAgIGNvbnN0IHJlc3VsdCA9IGlzQ29tcGxldGVDYWxscyA9PT0gMztcbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgSXNDb21wbGV0ZTogZmFsc2VcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIElzQ29tcGxldGU6IHRydWUsXG4gICAgICBEYXRhOiB7XG4gICAgICAgIEFkZGl0aW9uYWw6ICdhdHRyaWJ1dGUnIC8vIGFkZGl0aW9uYWwgYXR0cmlidXRlcyBjYW4gYmUgcmV0dXJuZWQgZnJvbSBcImlzQ29tcGxldGVcIlxuICAgICAgfVxuICAgIH07XG4gIH07XG5cbiAgLy8gV0hFTlxuICBhd2FpdCBzaW11bGF0ZUV2ZW50KHtcbiAgICBSZXF1ZXN0VHlwZTogJ0NyZWF0ZScsXG4gICAgUmVzb3VyY2VQcm9wZXJ0aWVzOiBNT0NLX1BST1BTXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KGlzQ29tcGxldGVDYWxscykudG9FcXVhbCgzKTtcblxuICBleHBlY3RDbG91ZEZvcm1hdGlvblN1Y2Nlc3Moe1xuICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogTU9DS19QSFlTSUNBTF9JRCxcbiAgICBEYXRhOiB7XG4gICAgICAuLi5NT0NLX0FUVFJTLFxuICAgICAgQWRkaXRpb25hbDogJ2F0dHJpYnV0ZSdcbiAgICB9LFxuICB9KTtcbn0pO1xuXG50ZXN0KCdpc0NvbXBsZXRlIHRocm93cyBpbiB0aGUgZmlyc3QgaW52b2NhdGlvbicsIGFzeW5jICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgbW9ja3Mub25FdmVudEltcGxNb2NrID0gYXN5bmMgKCkgPT4gKHsgUGh5c2ljYWxSZXNvdXJjZUlkOiBNT0NLX1BIWVNJQ0FMX0lELCB9KTtcbiAgbW9ja3MuaXNDb21wbGV0ZUltcGxNb2NrID0gYXN5bmMgKCkgPT4geyB0aHJvdyBuZXcgRXJyb3IoJ1NvbWUgZmFpbHVyZScpOyB9O1xuXG4gIC8vIFdIRU5cbiAgYXdhaXQgc2ltdWxhdGVFdmVudCh7XG4gICAgUmVxdWVzdFR5cGU6ICdDcmVhdGUnLFxuICAgIFJlc291cmNlUHJvcGVydGllczogTU9DS19QUk9QU1xuICB9KTtcblxuICBleHBlY3RDbG91ZEZvcm1hdGlvbkZhaWxlZCgnU29tZSBmYWlsdXJlJyk7XG59KTtcblxudGVzdCgnZmFpbHMgZ3JhY2VmdWxseSBpZiBcIm9uRXZlbnRcIiB0aHJvd3MgYW4gZXJyb3InLCBhc3luYyAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIG1vY2tzLm9uRXZlbnRJbXBsTW9jayA9IGFzeW5jICgpID0+IHsgdGhyb3cgbmV3IEVycm9yKCdlcnJvciB0aHJvd24gZHVyaW5nIG9uRXZlbnQnKTsgfTtcbiAgbW9ja3MuaXNDb21wbGV0ZUltcGxNb2NrID0gYXN5bmMgKCkgPT4gKHsgSXNDb21wbGV0ZTogdHJ1ZSB9KTtcblxuICAvLyBXSEVOXG4gIGF3YWl0IHNpbXVsYXRlRXZlbnQoe1xuICAgIFJlcXVlc3RUeXBlOiAnQ3JlYXRlJ1xuICB9KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdENsb3VkRm9ybWF0aW9uRmFpbGVkKCdlcnJvciB0aHJvd24gZHVyaW5nIG9uRXZlbnQnKTtcbiAgZXhwZWN0Tm9XYWl0ZXIoKTtcbn0pO1xuXG5kZXNjcmliZSgnUGh5c2ljYWxSZXNvdXJjZUlkJywgKCkgPT4ge1xuXG4gIGRlc2NyaWJlKCdpZiBub3Qgb21pdHRlZCBmcm9tIG9uRXZlbnQgcmVzdWx0JywgKCkgPT4ge1xuXG4gICAgaXQoJ2RlZmF1bHRzIHRvIFJlcXVlc3RJZCBmb3IgQ1JFQVRFJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gV0hFTlxuICAgICAgbW9ja3Mub25FdmVudEltcGxNb2NrID0gYXN5bmMgKCkgPT4gdW5kZWZpbmVkO1xuXG4gICAgICAvLyBUSEVOXG4gICAgICBhd2FpdCBzaW11bGF0ZUV2ZW50KHtcbiAgICAgICAgUmVxdWVzdFR5cGU6ICdDcmVhdGUnXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0Q2xvdWRGb3JtYXRpb25TdWNjZXNzKHtcbiAgICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBtb2Nrcy5NT0NLX1JFUVVFU1QuUmVxdWVzdElkXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdkZWZhdWx0cyB0byB0aGUgY3VycmVudCBQaHlzaWNhbFJlc291cmNlSWQgZm9yIFVQREFURScsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIFdIRU5cbiAgICAgIG1vY2tzLm9uRXZlbnRJbXBsTW9jayA9IGFzeW5jICgpID0+IHVuZGVmaW5lZDtcblxuICAgICAgLy8gVEhFTlxuICAgICAgYXdhaXQgc2ltdWxhdGVFdmVudCh7XG4gICAgICAgIFJlcXVlc3RUeXBlOiAnVXBkYXRlJyxcbiAgICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBNT0NLX1BIWVNJQ0FMX0lEXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0Q2xvdWRGb3JtYXRpb25TdWNjZXNzKHtcbiAgICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBNT0NLX1BIWVNJQ0FMX0lEXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdkZWZhdWx0cyB0byB0aGUgY3VycmVudCBQaHlzaWNhbFJlc291cmNlSWQgZm9yIERFTEVURScsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIFdIRU5cbiAgICAgIG1vY2tzLm9uRXZlbnRJbXBsTW9jayA9IGFzeW5jICgpID0+IHVuZGVmaW5lZDtcblxuICAgICAgLy8gVEhFTlxuICAgICAgYXdhaXQgc2ltdWxhdGVFdmVudCh7XG4gICAgICAgIFJlcXVlc3RUeXBlOiAnRGVsZXRlJyxcbiAgICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBNT0NLX1BIWVNJQ0FMX0lEXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0Q2xvdWRGb3JtYXRpb25TdWNjZXNzKHtcbiAgICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBNT0NLX1BIWVNJQ0FMX0lEXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgdGVzdCgnVVBEQVRFOiBjYW4gY2hhbmdlIHRoZSBwaHlzaWNhbCBJRCBieSByZXR1cm5pbmcgYSBuZXcgSUQnLCBhc3luYyAoKSA9PiB7XG4gICAgLy8gR0lWRU5cbiAgICBtb2Nrcy5vbkV2ZW50SW1wbE1vY2sgPSBhc3luYyAoKSA9PiAoeyBQaHlzaWNhbFJlc291cmNlSWQ6ICdOZXdQaHlzaWNhbElkJyB9KTtcbiAgICBtb2Nrcy5pc0NvbXBsZXRlSW1wbE1vY2sgPSBhc3luYyAoKSA9PiAoeyBJc0NvbXBsZXRlOiB0cnVlIH0pO1xuXG4gICAgLy8gV0hFTlxuICAgIGF3YWl0IHNpbXVsYXRlRXZlbnQoe1xuICAgICAgUmVxdWVzdFR5cGU6ICdVcGRhdGUnLFxuICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiAnQ3VycmVudFBoeXNpY2FsSWQnXG4gICAgfSk7XG5cbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0Q2xvdWRGb3JtYXRpb25TdWNjZXNzKHtcbiAgICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogJ05ld1BoeXNpY2FsSWQnXG4gICAgfSk7XG4gIH0pO1xuXG4gIHRlc3QoJ0RFTEVURTogY2Fubm90IGNoYW5nZSB0aGUgcGh5c2ljYWwgcmVzb3VyY2UgSUQgZHVyaW5nIGEgZGVsZXRlJywgYXN5bmMgKCkgPT4ge1xuICAgIC8vIEdJVkVOXG4gICAgbW9ja3Mub25FdmVudEltcGxNb2NrID0gYXN5bmMgKCkgPT4gKHsgUGh5c2ljYWxSZXNvdXJjZUlkOiAnTmV3UGh5c2ljYWxJZCcgfSk7XG4gICAgbW9ja3MuaXNDb21wbGV0ZUltcGxNb2NrID0gYXN5bmMgKCkgPT4gKHsgSXNDb21wbGV0ZTogdHJ1ZSB9KTtcblxuICAgIC8vIFdIRU5cbiAgICBhd2FpdCBzaW11bGF0ZUV2ZW50KHtcbiAgICAgIFJlcXVlc3RUeXBlOiAnRGVsZXRlJyxcbiAgICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogJ0N1cnJlbnRQaHlzaWNhbElkJ1xuICAgIH0pO1xuXG4gICAgLy8gVEhFTlxuICAgIGV4cGVjdE5vV2FpdGVyKCk7XG4gICAgZXhwZWN0Q2xvdWRGb3JtYXRpb25GYWlsZWQoJ0RFTEVURTogY2Fubm90IGNoYW5nZSB0aGUgcGh5c2ljYWwgcmVzb3VyY2UgSUQgZnJvbSBcIkN1cnJlbnRQaHlzaWNhbElkXCIgdG8gXCJOZXdQaHlzaWNhbElkXCIgZHVyaW5nIGRlbGV0aW9uJyk7XG4gIH0pO1xuXG59KTtcblxudGVzdCgnaXNDb21wbGV0ZSBhbHdheXMgcmV0dXJucyBcImZhbHNlXCIgYW5kIHRoZW4gYSB0aW1lb3V0IG9jY3VycycsIGFzeW5jICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgbW9ja3Mub25FdmVudEltcGxNb2NrID0gYXN5bmMgKCkgPT4gKHsgRGF0YTogeyBGb286IDEyMyB9LCBQaHlzaWNhbFJlc291cmNlSWQ6IE1PQ0tfUEhZU0lDQUxfSUQgfSk7XG4gIG1vY2tzLmlzQ29tcGxldGVJbXBsTW9jayA9IGFzeW5jICgpID0+ICh7IElzQ29tcGxldGU6IGZhbHNlIH0pO1xuXG4gIC8vIFdIRU5cbiAgYXdhaXQgc2ltdWxhdGVFdmVudCh7XG4gICAgUmVxdWVzdFR5cGU6ICdVcGRhdGUnLFxuICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogTU9DS19QSFlTSUNBTF9JRFxuICB9KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdENsb3VkRm9ybWF0aW9uRmFpbGVkKCdPcGVyYXRpb24gdGltZWQgb3V0Jyk7XG59KTtcblxudGVzdCgnaXNDb21wbGV0ZTogXCJEYXRhXCIgaXMgbm90IGFsbG93ZWQgaWYgSW5Db21wbGV0ZSBpcyBcIkZhbHNlXCInLCBhc3luYyAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIG1vY2tzLm9uRXZlbnRJbXBsTW9jayA9IGFzeW5jICgpID0+ICh7IERhdGE6IHsgRm9vOiAxMjMgfSwgUGh5c2ljYWxSZXNvdXJjZUlkOiBNT0NLX1BIWVNJQ0FMX0lEIH0pO1xuICBtb2Nrcy5pc0NvbXBsZXRlSW1wbE1vY2sgPSBhc3luYyAoKSA9PiAoeyBJc0NvbXBsZXRlOiBmYWxzZSwgRGF0YTogeyBGb286IDMzMzMgfSB9KTtcblxuICAvLyBXSEVOXG4gIGF3YWl0IHNpbXVsYXRlRXZlbnQoe1xuICAgIFJlcXVlc3RUeXBlOiAnVXBkYXRlJyxcbiAgICBQaHlzaWNhbFJlc291cmNlSWQ6IE1PQ0tfUEhZU0lDQUxfSURcbiAgfSk7XG5cbiAgZXhwZWN0Q2xvdWRGb3JtYXRpb25GYWlsZWQoJ1wiRGF0YVwiIGlzIG5vdCBhbGxvd2VkIGlmIFwiSXNDb21wbGV0ZVwiIGlzIFwiRmFsc2VcIicpO1xufSk7XG5cbnRlc3QoJ2lmIHRoZXJlIGlzIG5vIHVzZXItZGVmaW5lZCBcImlzQ29tcGxldGVcIiwgdGhlIHdhaXRlciB3aWxsIG5vdCBiZSB0cmlnZ2VyZWQgb3IgbmVlZGVkJywgYXN5bmMgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBtb2Nrcy5vbkV2ZW50SW1wbE1vY2sgPSBhc3luYyAoKSA9PiAoeyBQaHlzaWNhbFJlc291cmNlSWQ6IE1PQ0tfUEhZU0lDQUxfSUQgfSk7XG5cbiAgLy8gV0hFTlxuICBhd2FpdCBzaW11bGF0ZUV2ZW50KHtcbiAgICBSZXF1ZXN0VHlwZTogJ0NyZWF0ZScsXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0Tm9XYWl0ZXIoKTtcbiAgZXhwZWN0Q2xvdWRGb3JtYXRpb25TdWNjZXNzKHsgUGh5c2ljYWxSZXNvdXJjZUlkOiBNT0NLX1BIWVNJQ0FMX0lEIH0pO1xufSk7XG5cbnRlc3QoJ2ZhaWxzIGlmIHVzZXIgaGFuZGxlciByZXR1cm5zIGEgbm9uLW9iamVjdCByZXNwb25zZScsIGFzeW5jICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgbW9ja3Muc3RyaW5naWZ5UGF5bG9hZCA9IGZhbHNlO1xuICBtb2Nrcy5vbkV2ZW50SW1wbE1vY2sgPSBhc3luYyAoKSA9PiAnc3RyaW5nJyBhcyBhbnk7XG5cbiAgLy8gV0hFTlxuICBhd2FpdCBzaW11bGF0ZUV2ZW50KHsgUmVxdWVzdFR5cGU6ICdDcmVhdGUnIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0Q2xvdWRGb3JtYXRpb25GYWlsZWQoJ3JldHVybiB2YWx1ZXMgZnJvbSB1c2VyLWhhbmRsZXJzIG11c3QgYmUgSlNPTiBvYmplY3RzLiBnb3Q6IFxcXCJzdHJpbmdcXFwiJyk7XG59KTtcblxuZGVzY3JpYmUoJ2lmIENSRUFURSBmYWlscywgdGhlIHN1YnNlcXVlbnQgREVMRVRFIHdpbGwgYmUgaWdub3JlZCcsICgpID0+IHtcblxuICBpdCgnRkFJTEVEIHJlc3BvbnNlIHNldHMgUGh5c2ljYWxSZXNvdXJjZUlkIHRvIGEgc3BlY2lhbCBtYXJrZXInLCBhc3luYyAoKSA9PiB7XG4gICAgLy8gV0hFTlxuICAgIG1vY2tzLm9uRXZlbnRJbXBsTW9jayA9IGFzeW5jICgpID0+IHsgdGhyb3cgbmV3IEVycm9yKCdDUkVBVEUgRkFJTEVEJyk7IH07XG5cbiAgICAvLyBUSEVOXG4gICAgYXdhaXQgc2ltdWxhdGVFdmVudCh7XG4gICAgICBSZXF1ZXN0VHlwZTogJ0NyZWF0ZSdcbiAgICB9KTtcblxuICAgIGV4cGVjdENsb3VkRm9ybWF0aW9uRmFpbGVkKCdDUkVBVEUgRkFJTEVEJywge1xuICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBjZm5SZXNwb25zZS5DUkVBVEVfRkFJTEVEX1BIWVNJQ0FMX0lEX01BUktFUixcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ0RFTEVURSByZXF1ZXN0IHdpdGggdGhlIG1hcmtlciBzdWNjZWVkcyB3aXRob3V0IGNhbGxpbmcgdXNlciBoYW5kbGVyJywgYXN5bmMgKCkgPT4ge1xuICAgIC8vIEdJVkVOXG4gICAgLy8gdXNlciBoYW5kbGVyIGlzIG5vdCBhc3NpZ25lZFxuXG4gICAgLy8gV0hFTlxuICAgIGF3YWl0IHNpbXVsYXRlRXZlbnQoe1xuICAgICAgUmVxdWVzdFR5cGU6ICdEZWxldGUnLFxuICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBjZm5SZXNwb25zZS5DUkVBVEVfRkFJTEVEX1BIWVNJQ0FMX0lEX01BUktFUlxuICAgIH0pO1xuXG4gICAgLy8gVEhFTlxuICAgIGV4cGVjdENsb3VkRm9ybWF0aW9uU3VjY2VzcygpO1xuICB9KTtcblxufSk7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogVHJpZ2dlcnMgdGhlIGN1c3RvbSByZXNvdXJjZSBsaWZlY3ljbGUgZXZlbnQgZmxvdyBieSBpbnZva2luZyB0aGUgZnJhbWV3b3JrJ3NcbiAqIG9uRXZlbnQgZnVuY3Rpb24gYW5kIHRoZW4sIGlmIHRoZSB3YWl0ZXIgc3RhdGUgbWFjaGluZSB3YXMgc3RhcnRlZCwgc2ltdWxhdGVzXG4gKiB0aGUgd2FpdGVyIGFuZCBpbnZva2VzIGlzQ29tcGxldGUgYW5kIG9uVGltZW91dCBhcyBhcHByb3ByaWF0ZS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2ltdWxhdGVFdmVudChyZXE6IFBhcnRpYWw8QVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VFdmVudD4pIHtcbiAgY29uc3QgeCA9IHtcbiAgICBTZXJ2aWNlVG9rZW46ICdTRVJWSUNFLVRPS0VOJyxcbiAgICBSZXNwb25zZVVSTDogbW9ja3MuTU9DS19SRVFVRVNULlJlc3BvbnNlVVJMLFxuICAgIFN0YWNrSWQ6IG1vY2tzLk1PQ0tfUkVRVUVTVC5TdGFja0lkLFxuICAgIFJlcXVlc3RJZDogbW9ja3MuTU9DS19SRVFVRVNULlJlcXVlc3RJZCxcbiAgICBSZXNvdXJjZVR5cGU6ICdDdXN0b206OlRlc3RSZXNvdXJjZScsXG4gICAgTG9naWNhbFJlc291cmNlSWQ6IG1vY2tzLk1PQ0tfUkVRVUVTVC5Mb2dpY2FsUmVzb3VyY2VJZCxcbiAgICAuLi5yZXFcbiAgfTtcblxuICBtb2Nrcy5wcmVwYXJlRm9yRXhlY3V0aW9uKCk7XG5cbiAgYXdhaXQgZnJhbWV3b3JrLm9uRXZlbnQoeCBhcyBBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUV2ZW50KTtcblxuICAvLyBpZiB0aGUgRlNNXG4gIGlmIChtb2Nrcy5zdGFydFN0YXRlTWFjaGluZUlucHV0ICYmIG1vY2tzLnN0YXJ0U3RhdGVNYWNoaW5lSW5wdXQuc3RhdGVNYWNoaW5lQXJuID09PSBtb2Nrcy5NT0NLX1NGTl9BUk4pIHtcbiAgICBhd2FpdCBzaW11bGF0ZVdhaXRlcihKU09OLnBhcnNlKG1vY2tzLnN0YXJ0U3RhdGVNYWNoaW5lSW5wdXQuaW5wdXQhKSk7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiBzaW11bGF0ZVdhaXRlcihldmVudDogQVdTQ0RLQXN5bmNDdXN0b21SZXNvdXJjZS5Jc0NvbXBsZXRlUmVxdWVzdCkge1xuICAgIGxldCByZXRyeSA9IHRydWU7XG4gICAgbGV0IGNvdW50ID0gNTtcbiAgICB3aGlsZSAocmV0cnkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGZyYW1ld29yay5pc0NvbXBsZXRlKGV2ZW50KTtcbiAgICAgICAgcmV0cnkgPSBmYWxzZTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBjZm5SZXNwb25zZS5SZXRyeSkge1xuICAgICAgICAgIGlmIChjb3VudC0tID09PSAwKSB7XG4gICAgICAgICAgICBhd2FpdCBmcmFtZXdvcmsub25UaW1lb3V0KHsgQ2F1c2U6IEpTT04uc3RyaW5naWZ5KHsgZXJyb3JNZXNzYWdlOiBlLm1lc3NhZ2UgfSkgfSk7XG4gICAgICAgICAgICByZXRyeSA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXRyeSA9IHRydWU7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGV4cGVjdENsb3VkRm9ybWF0aW9uRmFpbGVkKGV4cGVjdGVkUmVhc29uOiBzdHJpbmcsIHJlc3A/OiBQYXJ0aWFsPEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlUmVzcG9uc2U+KSB7XG4gIGV4cGVjdENsb3VkRm9ybWF0aW9uUmVzcG9uc2Uoe1xuICAgIFN0YXR1czogJ0ZBSUxFRCcsXG4gICAgUmVhc29uOiBleHBlY3RlZFJlYXNvbixcbiAgICAuLi5yZXNwXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBleHBlY3RDbG91ZEZvcm1hdGlvblN1Y2Nlc3MocmVzcD86IFBhcnRpYWw8QVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VSZXNwb25zZT4pIHtcbiAgaWYgKG1vY2tzLmNmblJlc3BvbnNlLlN0YXR1cyAhPT0gJ1NVQ0NFU1MnKSB7XG4gICAgY29uc29sZS5lcnJvcihtb2Nrcy5jZm5SZXNwb25zZS5SZWFzb24gfHwgJzxOTyBSRUFTT04+Jyk7XG4gIH1cblxuICBleHBlY3RDbG91ZEZvcm1hdGlvblJlc3BvbnNlKHsgU3RhdHVzOiAnU1VDQ0VTUycsIC4uLnJlc3AgfSk7XG59XG5cbmZ1bmN0aW9uIGV4cGVjdENsb3VkRm9ybWF0aW9uUmVzcG9uc2UocmVzcDogUGFydGlhbDxBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZVJlc3BvbnNlPiA9IHt9KSB7XG4gIGZvciAoY29uc3QgW2tleSwgZXhwZWN0ZWRdIG9mIE9iamVjdC5lbnRyaWVzKHJlc3ApKSB7XG4gICAgY29uc3QgYWN0dWFsID0gKG1vY2tzLmNmblJlc3BvbnNlIGFzIGFueSlba2V5XTtcbiAgICBleHBlY3QoYWN0dWFsKS50b1N0cmljdEVxdWFsKGV4cGVjdGVkIGFzIGFueSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZXhwZWN0Tm9XYWl0ZXIoKSB7XG4gIGV4cGVjdChtb2Nrcy5zdGFydFN0YXRlTWFjaGluZUlucHV0KS50b0JlVW5kZWZpbmVkKCk7XG59XG4iXX0=

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc