cdk-nuxt 0.6.1 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -89,7 +89,7 @@ class NuxtServerAppStack extends aws_cdk_lib_1.Stack {
|
|
|
89
89
|
*/
|
|
90
90
|
createAppLambdaFunction(props) {
|
|
91
91
|
var _a;
|
|
92
|
-
const funcName = `${this.resourceIdPrefix}-function`;
|
|
92
|
+
const funcName = `${this.resourceIdPrefix}-app-function`;
|
|
93
93
|
return new aws_lambda_1.Function(this, funcName, {
|
|
94
94
|
functionName: funcName,
|
|
95
95
|
description: `Renders the ${this.resourceIdPrefix} Nuxt app.`,
|
|
@@ -114,7 +114,7 @@ class NuxtServerAppStack extends aws_cdk_lib_1.Stack {
|
|
|
114
114
|
* @private
|
|
115
115
|
*/
|
|
116
116
|
createCleanupLambdaFunction(props) {
|
|
117
|
-
const functionName = `${this.resourceIdPrefix}-function`;
|
|
117
|
+
const functionName = `${this.resourceIdPrefix}-cleanup-function`;
|
|
118
118
|
const result = new aws_lambda_1.Function(this, functionName, {
|
|
119
119
|
functionName: functionName,
|
|
120
120
|
description: `Auto-deletes the outdated static assets in the ${this.staticAssetsBucket.bucketName} S3 bucket.`,
|
|
@@ -386,4 +386,4 @@ class NuxtServerAppStack extends aws_cdk_lib_1.Stack {
|
|
|
386
386
|
}
|
|
387
387
|
}
|
|
388
388
|
exports.NuxtServerAppStack = NuxtServerAppStack;
|
|
389
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnV4dC1zZXJ2ZXItYXBwLXN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibnV4dC1zZXJ2ZXItYXBwLXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUEyRDtBQUUzRCwrRUFBK0Q7QUFDL0QsK0RBZ0JvQztBQUNwQyx1REFBb0c7QUFDcEcsK0NBQTJGO0FBQzNGLHlEQUFtRztBQUNuRyxxRUFBbUc7QUFDbkcsK0VBQXdFO0FBQ3hFLHlFQUFpRTtBQUNqRSxpRkFBK0Q7QUFDL0QsbURBQW1EO0FBQ25ELHNHQUFtRjtBQUNuRiw0RUFBa0c7QUFDbEcsc0VBQTBGO0FBQzFGLHlCQUF5QjtBQUN6Qix1REFBdUU7QUFDdkUsdUVBQThEO0FBRTlELDZCQUE2QjtBQTBCN0I7O0dBRUc7QUFDSCxNQUFhLGtCQUFtQixTQUFRLG1CQUFLO0lBaUV6QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQThCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFakYscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFBLHFEQUE0QixFQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FB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LENBQUM7aUJBQzdELENBQUMsQ0FBQztTQUNOLENBQUMsQ0FBQztJQUNQLENBQUM7SUFHRDs7Ozs7T0FLRztJQUNLLHdCQUF3QjtRQUM1QixJQUFJLGlCQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixpQkFBaUIsRUFBRTtZQUN0RCxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLFlBQVk7WUFDOUMsV0FBVyxFQUFFLDJEQUEyRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxhQUFhO1lBQ3ZILE9BQU8sRUFBRSxJQUFJO1lBQ2IsUUFBUSxFQUFFLHFCQUFRLENBQUMsSUFBSSxDQUFDLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQztZQUNoRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLG1DQUFjLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDNUQsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBL2NELGdEQStjQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RHVyYXRpb24sIFJlbW92YWxQb2xpY3ksIFN0YWNrfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge0NvbnN0cnVjdH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge0NlcnRpZmljYXRlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0IHtcbiAgICBBbGxvd2VkTWV0aG9kcyxcbiAgICBCZWhhdmlvck9wdGlvbnMsXG4gICAgQ2FjaGVDb29raWVCZWhhdmlvcixcbiAgICBDYWNoZWRNZXRob2RzLFxuICAgIENhY2hlSGVhZGVyQmVoYXZpb3IsXG4gICAgQ2FjaGVQb2xpY3ksXG4gICAgQ2FjaGVRdWVyeVN0cmluZ0JlaGF2aW9yLFxuICAgIERpc3RyaWJ1dGlvbixcbiAgICBJQ2FjaGVQb2xpY3ksXG4gICAgSU9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgIE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgIE9yaWdpblByb3RvY29sUG9saWN5LFxuICAgIFByaWNlQ2xhc3MsXG4gICAgU2VjdXJpdHlQb2xpY3lQcm90b2NvbCxcbiAgICBWaWV3ZXJQcm90b2NvbFBvbGljeVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7QXJjaGl0ZWN0dXJlLCBDb2RlLCBGdW5jdGlvbiwgTGF5ZXJWZXJzaW9uLCBSdW50aW1lLCBUcmFjaW5nfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHtCbG9ja1B1YmxpY0FjY2VzcywgQnVja2V0LCBCdWNrZXRBY2Nlc3NDb250cm9sLCBJQnVja2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQge0FhYWFSZWNvcmQsIEFSZWNvcmQsIEhvc3RlZFpvbmUsIElIb3N0ZWRab25lLCBSZWNvcmRUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtCdWNrZXREZXBsb3ltZW50LCBDYWNoZUNvbnRyb2wsIFNvdXJjZSwgU3RvcmFnZUNsYXNzfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzLWRlcGxveW1lbnRcIjtcbmltcG9ydCB7SHR0cE9yaWdpbiwgUzNPcmlnaW59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zXCI7XG5pbXBvcnQge0Nsb3VkRnJvbnRUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzXCI7XG5pbXBvcnQge0h0dHBNZXRob2R9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucy10YXNrc1wiO1xuaW1wb3J0IHtSZXRlbnRpb25EYXlzfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIjtcbmltcG9ydCB7SHR0cExhbWJkYUludGVncmF0aW9ufSBmcm9tICdAYXdzLWNkay9hd3MtYXBpZ2F0ZXdheXYyLWludGVncmF0aW9ucy1hbHBoYSc7XG5pbXBvcnQge0RvbWFpbk5hbWUsIEVuZHBvaW50VHlwZSwgSHR0cEFwaSwgU2VjdXJpdHlQb2xpY3l9IGZyb20gXCJAYXdzLWNkay9hd3MtYXBpZ2F0ZXdheXYyLWFscGhhXCI7XG5pbXBvcnQge2dldE51eHRBcHBTdGF0aWNBc3NldENvbmZpZ3MsIFN0YXRpY0Fzc2V0Q29uZmlnfSBmcm9tIFwiLi4vbnV4dC1hcHAtc3RhdGljLWFzc2V0c1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQge1J1bGUsIFJ1bGVUYXJnZXRJbnB1dCwgU2NoZWR1bGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZXZlbnRzXCI7XG5pbXBvcnQge0xhbWJkYUZ1bmN0aW9ufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWV2ZW50cy10YXJnZXRzXCI7XG5pbXBvcnQge051eHRBcHBTdGFja1Byb3BzfSBmcm9tIFwiLi4vbnV4dC1hcHAtc3RhY2stcHJvcHNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBwcm9wcyByZXF1aXJlZCBmb3IgdGhlIHtAc2VlIE51eHRTZXJ2ZXJBcHBTdGFja30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnV4dFNlcnZlckFwcFN0YWNrUHJvcHMgZXh0ZW5kcyBOdXh0QXBwU3RhY2tQcm9wcyB7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgQVJOIG9mIHRoZSBjZXJ0aWZpY2F0ZSB0byB1c2UgYXQgdGhlIEFwaUdhdGV3YXkgZm9yIHRoZSBOdXh0IGFwcCB0byBtYWtlIGl0IGFjY2Vzc2libGUgdmlhIHRoZSBjdXN0b20gZG9tYWluXG4gICAgICogYW5kIHRvIHByb3ZpZGUgdGhlIGN1c3RvbSBkb21haW4gdG8gdGhlIE51eHQgYXBwIHZpYSB0aGUgJ0hvc3QnIGhlYWRlciBmb3Igc2VydmVyIHNpZGUgcmVuZGVyaW5nIHVzZSBjYXNlcy5cbiAgICAgKiBUaGUgY2VydGlmaWNhdGUgbXVzdCBiZSBpc3N1ZWQgaW4gdGhlIHNhbWUgcmVnaW9uIGFzIHNwZWNpZmllZCB2aWEgJ2Vudi5yZWdpb24nIGFzIEFwaUdhdGV3YXkgd29ya3MgcmVnaW9uYWxseS5cbiAgICAgKi9cbiAgICByZWFkb25seSByZWdpb25hbFRsc0NlcnRpZmljYXRlQXJuOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbWVtb3J5IHNpemUgdG8gYXBwbHkgdG8gdGhlIE51eHQgYXBwJ3MgTGFtYmRhLlxuICAgICAqIERlZmF1bHRzIHRvIDE3OTJNQiAob3B0aW1pemVkIGZvciBjb3N0cyBhbmQgcGVyZm9ybWFuY2UgZm9yIHN0YW5kYXJkIE51eHQgYXBwcykuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbWVtb3J5U2l6ZT86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gZW5hYmxlIEFXUyBYLVJheSBmb3IgdGhlIE51eHQgTGFtYmRhIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVuYWJsZVRyYWNpbmc/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENESyBzdGFjayB0byBkZXBsb3kgYSBkeW5hbWljIE51eHQgYXBwICh0YXJnZXQ9c2VydmVyKSBvbiBBV1Mgd2l0aCBMYW1iZGEsIEFwaUdhdGV3YXksIFMzIGFuZCBDbG91ZEZyb250LlxuICovXG5leHBvcnQgY2xhc3MgTnV4dFNlcnZlckFwcFN0YWNrIGV4dGVuZHMgU3RhY2sge1xuXG4gICAgLyoqXG4gICAgICogVGhlIGlkZW50aWZpZXIgcHJlZml4IG9mIHRoZSByZXNvdXJjZXMgY3JlYXRlZCBieSB0aGUgc3RhY2suXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VJZFByZWZpeDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBjdXJyZW50IGRlcGxveW1lbnQgdGhhdCBpcyB1c2VkIGFzIFMzIGZvbGRlciBuYW1lXG4gICAgICogdG8gc3RvcmUgdGhlIHN0YXRpYyBhc3NldHMgb2YgdGhlIE51eHQgYXBwLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlcGxveW1lbnRSZXZpc2lvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGlkZW50aXR5IHRvIHVzZSBmb3IgYWNjZXNzaW5nIHRoZSBkZXBsb3ltZW50IGFzc2V0cyBvbiBTMy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZG5BY2Nlc3NJZGVudGl0eTogSU9yaWdpbkFjY2Vzc0lkZW50aXR5O1xuXG4gICAgLyoqXG4gICAgICogVGhlIFMzIGJ1Y2tldCB3aGVyZSB0aGUgZGVwbG95bWVudCBhc3NldHMgZ2V0cyBzdG9yZWQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpY0Fzc2V0c0J1Y2tldDogSUJ1Y2tldDtcblxuICAgIC8qKlxuICAgICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gdG8gcmVuZGVyIHRoZSBOdXh0IGFwcCBvbiB0aGUgc2VydmVyIHNpZGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwTGFtYmRhRnVuY3Rpb246IEZ1bmN0aW9uO1xuXG4gICAgLyoqXG4gICAgICogVGhlIExhbWJkYSBmdW5jdGlvbiB0aGF0IGNsZWFudXBzIHRoZSBvdXRkYXRlZCBzdGF0aWMgYXNzZXRzIG9mIHRoZSBOdXh0IGFwcC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjbGVhbnVwTGFtYmRhRnVuY3Rpb246IEZ1bmN0aW9uO1xuXG4gICAgLyoqXG4gICAgICogVGhlIEFQSSBnYXRld2F5IHRvIG1ha2UgdGhlIExhbWJkYSBmdW5jdGlvbiB0byByZW5kZXIgdGhlIE51eHQgYXBwIHB1YmxpY2x5IGF2YWlsYWJsZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBhcGlHYXRld2F5OiBIdHRwQXBpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNvbmZpZ3MgZm9yIHRoZSBzdGF0aWMgYXNzZXRzIG9mIHRoZSBOdXh0IGFwcCB0aGF0IHNoYWxsIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBzdGF0aWNBc3NldENvbmZpZ3M6IFN0YXRpY0Fzc2V0Q29uZmlnW107XG5cbiAgICAvKipcbiAgICAgKiBUaGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gdG8gcm91dGUgaW5jb21pbmcgcmVxdWVzdHMgdG8gdGhlIE51eHQgTGFtYmRhIGZ1bmN0aW9uICh2aWEgdGhlIEFQSSBnYXRld2F5KVxuICAgICAqIG9yIHRoZSBTMyBhc3NldHMgZm9sZGVyICh3aXRoIGNhY2hpbmcpLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkbjogRGlzdHJpYnV0aW9uO1xuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE51eHRTZXJ2ZXJBcHBTdGFja1Byb3BzKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgICAgIHRoaXMucmVzb3VyY2VJZFByZWZpeCA9IGAke3Byb3BzLnByb2plY3R9LSR7cHJvcHMuc2VydmljZX0tJHtwcm9wcy5lbnZpcm9ubWVudH1gO1xuXG4gICAgICAgIC8vIE51eHQgYXBwIHJlc291cmNlc1xuICAgICAgICB0aGlzLmRlcGxveW1lbnRSZXZpc2lvbiA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgdGhpcy5zdGF0aWNBc3NldENvbmZpZ3MgPSBnZXROdXh0QXBwU3RhdGljQXNzZXRDb25maWdzKHByb3BzLm51eHRDb25maWcpO1xuICAgICAgICB0aGlzLmNkbkFjY2Vzc0lkZW50aXR5ID0gdGhpcy5jcmVhdGVDZG5BY2Nlc3NJZGVudGl0eSgpO1xuICAgICAgICB0aGlzLnN0YXRpY0Fzc2V0c0J1Y2tldCA9IHRoaXMuY3JlYXRlU3RhdGljQXNzZXRzQnVja2V0KCk7XG4gICAgICAgIHRoaXMuYXBwTGFtYmRhRnVuY3Rpb24gPSB0aGlzLmNyZWF0ZUFwcExhbWJkYUZ1bmN0aW9uKHByb3BzKTtcbiAgICAgICAgdGhpcy5hcGlHYXRld2F5ID0gdGhpcy5jcmVhdGVBcGlHYXRld2F5KHByb3BzKTtcbiAgICAgICAgdGhpcy5jZG4gPSB0aGlzLmNyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb24ocHJvcHMpO1xuICAgICAgICB0aGlzLmNvbmZpZ3VyZURlcGxveW1lbnRzKCk7XG4gICAgICAgIHRoaXMuY3JlYXRlRG5zUmVjb3Jkcyhwcm9wcyk7XG4gICAgICAgIHRoaXMuY3JlYXRlQXBwUGluZ1J1bGUocHJvcHMpO1xuXG4gICAgICAgIC8vIFN0YXRpYyBhc3NldHMgY2xlYW51cCByZXNvdXJjZXNcbiAgICAgICAgdGhpcy5jbGVhbnVwTGFtYmRhRnVuY3Rpb24gPSB0aGlzLmNyZWF0ZUNsZWFudXBMYW1iZGFGdW5jdGlvbihwcm9wcyk7XG4gICAgICAgIHRoaXMuY3JlYXRlQ2xlYW51cFRyaWdnZXJSdWxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgaWRlbnRpdHkgdG8gYWNjZXNzIHRoZSBTMyBkZXBsb3ltZW50IGFzc2V0IGZpbGVzIHZpYSB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlQ2RuQWNjZXNzSWRlbnRpdHkoKTogSU9yaWdpbkFjY2Vzc0lkZW50aXR5IHtcbiAgICAgICAgY29uc3Qgb3JpZ2luQWNjZXNzSWRlbnRpdHlOYW1lID0gYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1jZG4tczMtYWNjZXNzYDtcbiAgICAgICAgcmV0dXJuIG5ldyBPcmlnaW5BY2Nlc3NJZGVudGl0eSh0aGlzLCBvcmlnaW5BY2Nlc3NJZGVudGl0eU5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIGJ1Y2tldCB0byBzdG9yZSB0aGUgc3RhdGljIGRlcGxveW1lbnQgYXNzZXQgZmlsZXMgb2YgdGhlIE51eHQgYXBwLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZVN0YXRpY0Fzc2V0c0J1Y2tldCgpOiBJQnVja2V0IHtcbiAgICAgICAgY29uc3QgYnVja2V0TmFtZSA9IGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tYXNzZXRzYDtcbiAgICAgICAgY29uc3QgYnVja2V0ID0gbmV3IEJ1Y2tldCh0aGlzLCBidWNrZXROYW1lLCB7XG4gICAgICAgICAgICBhY2Nlc3NDb250cm9sOiBCdWNrZXRBY2Nlc3NDb250cm9sLkFVVEhFTlRJQ0FURURfUkVBRCxcbiAgICAgICAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBCbG9ja1B1YmxpY0FjY2Vzcy5CTE9DS19BTEwsXG4gICAgICAgICAgICBidWNrZXROYW1lLFxuICAgICAgICAgICAgLy8gVGhlIGJ1Y2tldCBhbmQgYWxsIG9mIGl0cyBvYmplY3RzIGNhbiBiZSBkZWxldGVkLCBiZWNhdXNlIGFsbCB0aGUgY29udGVudCBpcyBtYW5hZ2VkIGluIHRoaXMgcHJvamVjdFxuICAgICAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGJ1Y2tldC5ncmFudFJlYWRXcml0ZSh0aGlzLmNkbkFjY2Vzc0lkZW50aXR5KTtcblxuICAgICAgICByZXR1cm4gYnVja2V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBMYW1iZGEgbGF5ZXIgd2l0aCB0aGUgbm9kZV9tb2R1bGVzIHJlcXVpcmVkIHRvIHJlbmRlciB0aGUgTnV4dCBhcHAgb24gdGhlIHNlcnZlciBzaWRlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZVNzckxhbWJkYUxheWVyKCk6IExheWVyVmVyc2lvbiB7XG4gICAgICAgIGNvbnN0IGxheWVyTmFtZSA9IGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tc3NyLWxheWVyYDtcbiAgICAgICAgcmV0dXJuIG5ldyBMYXllclZlcnNpb24odGhpcywgbGF5ZXJOYW1lLCB7XG4gICAgICAgICAgICBsYXllclZlcnNpb25OYW1lOiBsYXllck5hbWUsXG4gICAgICAgICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldCgnLm51eHQvY2RrLWRlcGxveW1lbnQvbGF5ZXInKSxcbiAgICAgICAgICAgIGNvbXBhdGlibGVSdW50aW1lczogW1J1bnRpbWUuTk9ERUpTXzEyX1hdLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBQcm92aWRlcyB0aGUgbm9kZV9tb2R1bGVzIHJlcXVpcmVkIGZvciBTU1Igb2YgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LmAsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIExhbWJkYSBmdW5jdGlvbiB0byByZW5kZXIgdGhlIE51eHQgYXBwLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZUFwcExhbWJkYUZ1bmN0aW9uKHByb3BzOiBOdXh0U2VydmVyQXBwU3RhY2tQcm9wcyk6IEZ1bmN0aW9uIHtcbiAgICAgICAgY29uc3QgZnVuY05hbWUgPSBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWZ1bmN0aW9uYDtcblxuICAgICAgICByZXR1cm4gbmV3IEZ1bmN0aW9uKHRoaXMsIGZ1bmNOYW1lLCB7XG4gICAgICAgICAgICBmdW5jdGlvbk5hbWU6IGZ1bmNOYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBSZW5kZXJzIHRoZSAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0gTnV4dCBhcHAuYCxcbiAgICAgICAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzEyX1gsXG4gICAgICAgICAgICBhcmNoaXRlY3R1cmU6IEFyY2hpdGVjdHVyZS5BUk1fNjQsXG4gICAgICAgICAgICBsYXllcnM6IFt0aGlzLmNyZWF0ZVNzckxhbWJkYUxheWVyKCldLFxuICAgICAgICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQoJy5udXh0L2Nkay1kZXBsb3ltZW50L3NyYycsIHtcbiAgICAgICAgICAgICAgICBleGNsdWRlOiBbJyoqLnN2ZycsICcqKi5pY28nLCAnKioucG5nJywgJyoqLmpwZycsICcqKi5qcy5tYXAnXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygxMCksXG4gICAgICAgICAgICBtZW1vcnlTaXplOiBwcm9wcy5tZW1vcnlTaXplID8/IDE3OTIsXG4gICAgICAgICAgICBsb2dSZXRlbnRpb246IFJldGVudGlvbkRheXMuT05FX01PTlRILFxuICAgICAgICAgICAgYWxsb3dQdWJsaWNTdWJuZXQ6IGZhbHNlLFxuICAgICAgICAgICAgdHJhY2luZzogcHJvcHMuZW5hYmxlVHJhY2luZyA/IFRyYWNpbmcuQUNUSVZFIDogVHJhY2luZy5ESVNBQkxFRFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBjbGVhbnVwcyB0aGUgb3V0ZGF0ZWQgc3RhdGljIGFzc2V0cyBvZiB0aGUgTnV4dCBhcHAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcHNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlQ2xlYW51cExhbWJkYUZ1bmN0aW9uKHByb3BzOiBOdXh0U2VydmVyQXBwU3RhY2tQcm9wcyk6IEZ1bmN0aW9uIHtcbiAgICAgICAgY29uc3QgZnVuY3Rpb25OYW1lOiBzdHJpbmcgPSBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWZ1bmN0aW9uYDtcblxuICAgICAgICBjb25zdCByZXN1bHQ6IEZ1bmN0aW9uID0gbmV3IEZ1bmN0aW9uKHRoaXMsIGZ1bmN0aW9uTmFtZSwge1xuICAgICAgICAgICAgZnVuY3Rpb25OYW1lOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogYEF1dG8tZGVsZXRlcyB0aGUgb3V0ZGF0ZWQgc3RhdGljIGFzc2V0cyBpbiB0aGUgJHt0aGlzLnN0YXRpY0Fzc2V0c0J1Y2tldC5idWNrZXROYW1lfSBTMyBidWNrZXQuYCxcbiAgICAgICAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzE0X1gsXG4gICAgICAgICAgICBhcmNoaXRlY3R1cmU6IEFyY2hpdGVjdHVyZS5BUk1fNjQsXG4gICAgICAgICAgICBsYXllcnM6IFtuZXcgTGF5ZXJWZXJzaW9uKHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tbGF5ZXJgLCB7XG4gICAgICAgICAgICAgICAgbGF5ZXJWZXJzaW9uTmFtZTogYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1sYXllcmAsXG4gICAgICAgICAgICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLy4uL2Z1bmN0aW9ucy9hc3NldHNfY2xlYW51cC9idWlsZC9sYXllcicpKSxcbiAgICAgICAgICAgICAgICBjb21wYXRpYmxlUnVudGltZXM6IFtSdW50aW1lLk5PREVKU18xNF9YXSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYFByb3ZpZGVzIHRoZSBub2RlX21vZHVsZXMgcmVxdWlyZWQgZm9yIHRoZSAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0gbGFtYmRhIGZ1bmN0aW9uLmBcbiAgICAgICAgICAgIH0pXSxcbiAgICAgICAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgICAgICAgIGNvZGU6IENvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi8uLi9mdW5jdGlvbnMvYXNzZXRzX2NsZWFudXAvYnVpbGQvYXBwJykpLFxuICAgICAgICAgICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcygxKSxcbiAgICAgICAgICAgIG1lbW9yeVNpemU6IDEyOCxcbiAgICAgICAgICAgIGxvZ1JldGVudGlvbjogUmV0ZW50aW9uRGF5cy5UV09fV0VFS1MsXG4gICAgICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgICAgICAgIFNUQVRJQ19BU1NFVFNfQlVDS0VUOiB0aGlzLnN0YXRpY0Fzc2V0c0J1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICAgICAgICAgIEVOVklST05NRU5UOiBwcm9wcy5lbnZpcm9ubWVudCxcbiAgICAgICAgICAgICAgICBBV1NfTk9ERUpTX0NPTk5FQ1RJT05fUkVVU0VfRU5BQkxFRDogJzEnLFxuICAgICAgICAgICAgICAgIE5PREVfT1BUSU9OUzogJy0tZW5hYmxlLXNvdXJjZS1tYXBzJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGdyYW50IGZ1bmN0aW9uIGFjY2VzcyB0byBTMyBidWNrZXRcbiAgICAgICAgdGhpcy5zdGF0aWNBc3NldHNCdWNrZXQuZ3JhbnRSZWFkKHJlc3VsdCk7XG4gICAgICAgIHRoaXMuc3RhdGljQXNzZXRzQnVja2V0LmdyYW50RGVsZXRlKHJlc3VsdCk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHRoZSBBUEkgZ2F0ZXdheSB0byBtYWtlIHRoZSBOdXh0IGFwcCByZW5kZXIgTGFtYmRhIGZ1bmN0aW9uIHB1YmxpY2x5IGF2YWlsYWJsZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVBcGlHYXRld2F5KHByb3BzOiBOdXh0U2VydmVyQXBwU3RhY2tQcm9wcyk6IEh0dHBBcGkge1xuICAgICAgICBjb25zdCBhcGlOYW1lID0gYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1hcGlgO1xuICAgICAgICBjb25zdCBsYW1iZGFJbnRlZ3JhdGlvbiA9IG5ldyBIdHRwTGFtYmRhSW50ZWdyYXRpb24oYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1sYW1iZGEtaW50ZWdyYXRpb25gLCB0aGlzLmFwcExhbWJkYUZ1bmN0aW9uKTtcblxuICAgICAgICAvLyBXZSB3YW50IHRoZSBBUEkgZ2F0ZXdheSB0byBiZSBhY2Nlc3NpYmxlIGJ5IHRoZSBjdXN0b20gZG9tYWluIG5hbWUuXG4gICAgICAgIC8vIEV2ZW4gdGhvdWdoIHdlIGFjY2VzcyB0aGUgZ2F0ZXdheSB2aWEgQ2xvdWRGcm9udCAoZm9yIGF1dG8gaHR0cCB0byBodHRwcyByZWRpcmVjdHMpLCB0aGlzIGlzIHJlcXVpcmVkXG4gICAgICAgIC8vIHRvIGJlIGFibGUgdG8gcmVkaXJlY3QgdGhlIG9yaWdpbmFsICdIb3N0JyBoZWFkZXIgdG8gdGhlIE51eHQgYXBwbGljYXRpb24sIGlmIHJlcXVlc3RlZC5cbiAgICAgICAgY29uc3QgZG9tYWluTmFtZSA9IG5ldyBEb21haW5OYW1lKHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tYXBpLWRvbWFpbmAsIHtcbiAgICAgICAgICAgIGRvbWFpbk5hbWU6IHByb3BzLmRvbWFpbixcbiAgICAgICAgICAgIGNlcnRpZmljYXRlOiBDZXJ0aWZpY2F0ZS5mcm9tQ2VydGlmaWNhdGVBcm4odGhpcywgYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1yZWdpb25hbC1jZXJ0aWZpY2F0ZWAsIHByb3BzLnJlZ2lvbmFsVGxzQ2VydGlmaWNhdGVBcm4pLFxuICAgICAgICAgICAgZW5kcG9pbnRUeXBlOiBFbmRwb2ludFR5cGUuUkVHSU9OQUwsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeTogU2VjdXJpdHlQb2xpY3kuVExTXzFfMlxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBhcGlHYXRld2F5ID0gbmV3IEh0dHBBcGkodGhpcywgYXBpTmFtZSwge1xuICAgICAgICAgICAgYXBpTmFtZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgQ29ubmVjdHMgdGhlICR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiB3aXRoIHRoZSAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0gTGFtYmRhIGZ1bmN0aW9uIHRvIG1ha2UgaXQgcHVibGljbHkgYXZhaWxhYmxlLmAsXG4gICAgICAgICAgICAvLyBUaGUgYXBwIGRvZXMgbm90IGFsbG93IGFueSBjcm9zcy1vcmlnaW4gYWNjZXNzIGJ5IHB1cnBvc2U6IHRoZSBhcHAgc2hvdWxkIG5vdCBiZSBlbWJlZGRhYmxlIGFueXdoZXJlXG4gICAgICAgICAgICBjb3JzUHJlZmxpZ2h0OiB1bmRlZmluZWQsXG4gICAgICAgICAgICBkZWZhdWx0SW50ZWdyYXRpb246IGxhbWJkYUludGVncmF0aW9uLFxuICAgICAgICAgICAgZGVmYXVsdERvbWFpbk1hcHBpbmc6IHtcbiAgICAgICAgICAgICAgICBkb21haW5OYW1lOiBkb21haW5OYW1lXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFwaUdhdGV3YXkuYWRkUm91dGVzKHtcbiAgICAgICAgICAgIGludGVncmF0aW9uOiBsYW1iZGFJbnRlZ3JhdGlvbixcbiAgICAgICAgICAgIHBhdGg6ICcve3Byb3h5K30nLFxuICAgICAgICAgICAgbWV0aG9kczogW0h0dHBNZXRob2QuR0VULCBIdHRwTWV0aG9kLkhFQURdLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gYXBpR2F0ZXdheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiB0aGF0IHJvdXRlcyBpbmNvbWluZyByZXF1ZXN0cyB0byB0aGUgTnV4dCBMYW1iZGEgZnVuY3Rpb24gKHZpYSB0aGUgQVBJIGdhdGV3YXkpXG4gICAgICogb3IgdGhlIFMzIGFzc2V0cyBmb2xkZXIgKHdpdGggY2FjaGluZykuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcHNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlQ2xvdWRGcm9udERpc3RyaWJ1dGlvbihwcm9wczogTnV4dFNlcnZlckFwcFN0YWNrUHJvcHMpOiBEaXN0cmlidXRpb24ge1xuICAgICAgICBjb25zdCBjZG5OYW1lID0gYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1jZG5gO1xuXG4gICAgICAgIHJldHVybiBuZXcgRGlzdHJpYnV0aW9uKHRoaXMsIGNkbk5hbWUsIHtcbiAgICAgICAgICAgIGRvbWFpbk5hbWVzOiBbcHJvcHMuZG9tYWluXSxcbiAgICAgICAgICAgIGNvbW1lbnQ6IGNkbk5hbWUsXG4gICAgICAgICAgICBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uOiBTZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMTgsXG4gICAgICAgICAgICBjZXJ0aWZpY2F0ZTogQ2VydGlmaWNhdGUuZnJvbUNlcnRpZmljYXRlQXJuKHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tZ2xvYmFsLWNlcnRpZmljYXRlYCwgcHJvcHMuZ2xvYmFsVGxzQ2VydGlmaWNhdGVBcm4pLFxuICAgICAgICAgICAgZGVmYXVsdEJlaGF2aW9yOiB0aGlzLmNyZWF0ZU51eHRBcHBSb3V0ZUJlaGF2aW9yKCksXG4gICAgICAgICAgICBhZGRpdGlvbmFsQmVoYXZpb3JzOiB0aGlzLmNyZWF0ZVN0YXRpY0Fzc2V0c1JvdXRlQmVoYXZpb3IoKSxcbiAgICAgICAgICAgIHByaWNlQ2xhc3M6IFByaWNlQ2xhc3MuUFJJQ0VfQ0xBU1NfMTAwLCAvLyBVc2Ugb25seSBOb3J0aCBBbWVyaWNhIGFuZCBFdXJvcGVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGJlaGF2aW9yIGZvciB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gdG8gcm91dGUgaW5jb21pbmcgcmVxdWVzdHMgdG8gdGhlIE51eHQgcmVuZGVyIExhbWJkYSBmdW5jdGlvbiAodmlhIEFQSSBnYXRld2F5KS5cbiAgICAgKiBBZGRpdGlvbmFsbHksIHRoaXMgYXV0b21hdGljYWxseSByZWRpcmVjdHMgSFRUUCByZXF1ZXN0cyB0byBIVFRQUy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVOdXh0QXBwUm91dGVCZWhhdmlvcigpOiBCZWhhdmlvck9wdGlvbnMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgb3JpZ2luOiBuZXcgSHR0cE9yaWdpbihgJHt0aGlzLmFwaUdhdGV3YXkuaHR0cEFwaUlkfS5leGVjdXRlLWFwaS4ke3RoaXMucmVnaW9ufS5hbWF6b25hd3MuY29tYCwge1xuICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25BdHRlbXB0czogMixcbiAgICAgICAgICAgICAgICBjb25uZWN0aW9uVGltZW91dDogRHVyYXRpb24uc2Vjb25kcygyKSxcbiAgICAgICAgICAgICAgICByZWFkVGltZW91dDogRHVyYXRpb24uc2Vjb25kcygxMCksXG4gICAgICAgICAgICAgICAgcHJvdG9jb2xQb2xpY3k6IE9yaWdpblByb3RvY29sUG9saWN5LkhUVFBTX09OTFksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGFsbG93ZWRNZXRob2RzOiBBbGxvd2VkTWV0aG9kcy5BTExPV19HRVRfSEVBRCxcbiAgICAgICAgICAgIGNvbXByZXNzOiB0cnVlLFxuICAgICAgICAgICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IFZpZXdlclByb3RvY29sUG9saWN5LlJFRElSRUNUX1RPX0hUVFBTLFxuICAgICAgICAgICAgb3JpZ2luUmVxdWVzdFBvbGljeTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgY2FjaGVQb2xpY3k6IHRoaXMuY3JlYXRlU3NyQ2FjaGVQb2xpY3koKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2FjaGUgcG9saWN5IGZvciB0aGUgTnV4dCBhcHAgcm91dGUgYmVoYXZpb3Igb2YgdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uLlxuICAgICAqIEV2ZW4gdGhvdWdoIHdlIGRvbid0IHdhbnQgdG8gY2FjaGUgU1NSIHJlcXVlc3RzLCB3ZSBzdGlsbCBoYXZlIHRvIGNyZWF0ZSB0aGlzIGNhY2hlIHBvbGljeSBpbiBvcmRlciB0b1xuICAgICAqIGZvcndhcmQgcmVxdWlyZWQgY29va2llcywgcXVlcnkgcGFyYW1zIGFuZCBoZWFkZXJzLiBUaGlzIGRvZXNuJ3QgbWFrZSBhbnkgc2Vuc2UsIGJlY2F1c2UgaWYgbm90aGluZ1xuICAgICAqIGlzIGNhY2hlZCwgb25lIHdvdWxkIGV4cGVjdCwgdGhhdCBhbnl0aGluZyB3b3VsZC9jb3VsZCBiZSBmb3J3YXJkZWQsIGJ1dCBhbnl3YXkuLi5cbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZVNzckNhY2hlUG9saWN5KCk6IElDYWNoZVBvbGljeSB7XG5cbiAgICAgICAgLy8gVGhlIGhlYWRlcnMgdG8gbWFrZSBhY2Nlc3NpYmxlIGluIHRoZSBOdXh0IGFwcCBjb2RlLlxuICAgICAgICAvLyBUaGVyZSBpcyBubyAnQ2FjaGVIZWFkZXJCZWhhdmlvci5hbGwoKScgb3B0aW9uLCBzbyB3ZSBoYXZlIHRvIGV4cGxpY2l0bHkgZGVmaW5lIHRoZW0uXG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSBbXG4gICAgICAgICAgICAnVXNlci1BZ2VudCcsIC8vIFJlcXVpcmVkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gbW9iaWxlIGFuZCBkZXNrdG9wIHRlbXBsYXRlXG4gICAgICAgICAgICAnQXV0aG9yaXphdGlvbicsIC8vIEZvciBhdXRob3JpemF0aW9uXG4gICAgICAgICAgICAnSG9zdCcgLy8gVG8gYWNjZXNzIHRoZSBkb21haW4gbmFtZSBvbiBTU1IgcmVxdWVzdHNcbiAgICAgICAgXTtcblxuICAgICAgICByZXR1cm4gbmV3IENhY2hlUG9saWN5KHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tY2FjaGUtcG9saWN5YCwge1xuICAgICAgICAgICAgY2FjaGVQb2xpY3lOYW1lOiBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWNkbi1jYWNoZS1wb2xpY3lgLFxuICAgICAgICAgICAgY29tbWVudDogYFBhc3NlcyBhbGwgcmVxdWlyZWQgcmVxdWVzdCBkYXRhIHRvIHRoZSAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0gb3JpZ2luLmAsXG4gICAgICAgICAgICBkZWZhdWx0VHRsOiBEdXJhdGlvbi5zZWNvbmRzKDApLFxuICAgICAgICAgICAgbWluVHRsOiBEdXJhdGlvbi5zZWNvbmRzKDApLFxuICAgICAgICAgICAgbWF4VHRsOiBEdXJhdGlvbi5zZWNvbmRzKDEpLCAvLyBUaGUgbWF4IFRUTCBtdXN0IG5vdCBiZSAwIGZvciBhIGNhY2hlIHBvbGljeVxuICAgICAgICAgICAgcXVlcnlTdHJpbmdCZWhhdmlvcjogQ2FjaGVRdWVyeVN0cmluZ0JlaGF2aW9yLmFsbCgpLFxuICAgICAgICAgICAgaGVhZGVyQmVoYXZpb3I6IENhY2hlSGVhZGVyQmVoYXZpb3IuYWxsb3dMaXN0KC4uLmhlYWRlcnMpLFxuICAgICAgICAgICAgY29va2llQmVoYXZpb3I6IENhY2hlQ29va2llQmVoYXZpb3IuYWxsKCksXG4gICAgICAgICAgICBlbmFibGVBY2NlcHRFbmNvZGluZ0Jyb3RsaTogdHJ1ZSxcbiAgICAgICAgICAgIGVuYWJsZUFjY2VwdEVuY29kaW5nR3ppcDogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGJlaGF2aW9yIGZvciB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gdG8gcm91dGUgbWF0Y2hpbmcgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHRoZSBzdGF0aWMgYXNzZXRzXG4gICAgICogdG8gdGhlIFMzIGJ1Y2tldCB0aGF0IGhvbGRzIHRoZXNlIHN0YXRpYyBhc3NldHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlU3RhdGljQXNzZXRzUm91dGVCZWhhdmlvcigpOiBSZWNvcmQ8c3RyaW5nLCBCZWhhdmlvck9wdGlvbnM+IHtcbiAgICAgICAgY29uc3Qgc3RhdGljQXNzZXRzQ2FjaGVDb25maWc6IEJlaGF2aW9yT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG9yaWdpbjogbmV3IFMzT3JpZ2luKHRoaXMuc3RhdGljQXNzZXRzQnVja2V0LCB7XG4gICAgICAgICAgICAgICAgY29ubmVjdGlvbkF0dGVtcHRzOiAyLFxuICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25UaW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMpLFxuICAgICAgICAgICAgICAgIG9yaWdpbkFjY2Vzc0lkZW50aXR5OiB0aGlzLmNkbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgICAgICAgICAgIG9yaWdpblBhdGg6IHRoaXMuZGVwbG95bWVudFJldmlzaW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjb21wcmVzczogdHJ1ZSxcbiAgICAgICAgICAgIGFsbG93ZWRNZXRob2RzOiBBbGxvd2VkTWV0aG9kcy5BTExPV19HRVRfSEVBRF9PUFRJT05TLFxuICAgICAgICAgICAgY2FjaGVkTWV0aG9kczogQ2FjaGVkTWV0aG9kcy5DQUNIRV9HRVRfSEVBRF9PUFRJT05TLFxuICAgICAgICAgICAgY2FjaGVQb2xpY3k6IENhY2hlUG9saWN5LkNBQ0hJTkdfT1BUSU1JWkVELFxuICAgICAgICAgICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IFZpZXdlclByb3RvY29sUG9saWN5LlJFRElSRUNUX1RPX0hUVFBTLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJ1bGVzOiBSZWNvcmQ8c3RyaW5nLCBCZWhhdmlvck9wdGlvbnM+ID0ge307XG4gICAgICAgIHRoaXMuc3RhdGljQXNzZXRDb25maWdzLmZvckVhY2goYXNzZXQgPT4ge1xuICAgICAgICAgICAgcnVsZXNbYCR7YXNzZXQudGFyZ2V0fSR7YXNzZXQucGF0dGVybn1gXSA9IHN0YXRpY0Fzc2V0c0NhY2hlQ29uZmlnXG4gICAgICAgIH0pXG5cbiAgICAgICAgcmV0dXJuIHJ1bGVzXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBsb2FkcyB0aGUgc3RhdGljIGFzc2V0cyBvZiB0aGUgTnV4dCBhcHAgYXMgZGVmaW5lZCBpbiB7QHNlZSBnZXROdXh0QXBwU3RhdGljQXNzZXRDb25maWdzfSB0byB0aGUgc3RhdGljIGFzc2V0cyBTMyBidWNrZXQuXG4gICAgICogSW4gb3JkZXIgdG8gZW5hYmxlIGEgemVyby1kb3dudGltZSBkZXBsb3ltZW50LCB3ZSB1c2UgYSBuZXcgc3ViZGlyZWN0b3J5IChyZXZpc2lvbikgZm9yIGV2ZXJ5IGRlcGxveW1lbnQuXG4gICAgICogVGhlIHByZXZpb3VzIHZlcnNpb25zIGFyZSByZXRhaW5lZCB0byBhbGxvdyBjbGllbnRzIHRvIGNvbnRpbnVlIHRvIHdvcmsgd2l0aCBhbiBvbGRlciByZXZpc2lvbiBidXQgZ2V0cyBjbGVhbmVkIHVwXG4gICAgICogYWZ0ZXIgYSBzcGVjaWZpZWQgcGVyaW9kIG9mIHRpbWUgdmlhIHRoZSBMYW1iZGEgZnVuY3Rpb24gaW4gdGhlIHtAc2VlIE51eHRBcHBBc3NldHNDbGVhbnVwU3RhY2t9LlxuICAgICAqL1xuICAgIHByaXZhdGUgY29uZmlndXJlRGVwbG95bWVudHMoKTogQnVja2V0RGVwbG95bWVudFtdIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdENhY2hlQ29uZmlnID0gW1xuICAgICAgICAgICAgQ2FjaGVDb250cm9sLnNldFB1YmxpYygpLFxuICAgICAgICAgICAgQ2FjaGVDb250cm9sLm1heEFnZShEdXJhdGlvbi5kYXlzKDM2NSkpLFxuICAgICAgICAgICAgQ2FjaGVDb250cm9sLmZyb21TdHJpbmcoJ2ltbXV0YWJsZScpLFxuICAgICAgICBdO1xuXG4gICAgICAgIC8vIFJldHVybnMgYSBkZXBsb3ltZW50IGZvciBldmVyeSBjb25maWd1cmVkIHN0YXRpYyBhc3NldCB0eXBlIHRvIHJlc3BlY3QgdGhlIGRpZmZlcmVudCBjYWNoZSBzZXR0aW5nc1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0aWNBc3NldENvbmZpZ3MuZmlsdGVyKGFzc2V0ID0+IGZzLmV4aXN0c1N5bmMoYXNzZXQuc291cmNlKSkubWFwKChhc3NldCwgYXNzZXRJbmRleCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBCdWNrZXREZXBsb3ltZW50KHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tYXNzZXRzLWRlcGxveW1lbnQtJHthc3NldEluZGV4fWAsIHtcbiAgICAgICAgICAgICAgICBzb3VyY2VzOiBbU291cmNlLmFzc2V0KGFzc2V0LnNvdXJjZSldLFxuICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiB0aGlzLnN0YXRpY0Fzc2V0c0J1Y2tldCxcbiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbktleVByZWZpeDogdGhpcy5kZXBsb3ltZW50UmV2aXNpb24gKyBhc3NldC50YXJnZXQsXG4gICAgICAgICAgICAgICAgcHJ1bmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHN0b3JhZ2VDbGFzczogU3RvcmFnZUNsYXNzLlNUQU5EQVJELFxuICAgICAgICAgICAgICAgIGV4Y2x1ZGU6IFsnKiddLFxuICAgICAgICAgICAgICAgIGluY2x1ZGU6IFthc3NldC5wYXR0ZXJuXSxcbiAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IGFzc2V0LmNhY2hlQ29udHJvbCA/PyBkZWZhdWx0Q2FjaGVDb25maWcsXG4gICAgICAgICAgICAgICAgY29udGVudFR5cGU6IGFzc2V0LmNvbnRlbnRUeXBlLFxuICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGlvbjogYXNzZXQuaW52YWxpZGF0ZU9uQ2hhbmdlID8gdGhpcy5jZG4gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgZGlzdHJpYnV0aW9uUGF0aHM6IGFzc2V0LmludmFsaWRhdGVPbkNoYW5nZSA/IChhc3NldC5wYXR0ZXJuLmVuZHNXaXRoKCcuaHRtbCcpID8gWycvJywgJy8qLycsIGAvJHthc3NldC5wYXR0ZXJufWBdIDogW2AvJHthc3NldC5wYXR0ZXJufWBdKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBsb2dSZXRlbnRpb246IFJldGVudGlvbkRheXMuT05FX0RBWSxcbiAgICAgICAgICAgICAgICBtZW1vcnlMaW1pdDogMjU2IC8vIFNvbWUgTnV4dCBhcHBsaWNhdGlvbnMgaGF2ZSBhIGxvdCBvZiBhc3NldHMgdG8gZGVwbG95IHdoZXJlYnkgdGhlIGZ1bmN0aW9uIG1pZ2h0IHJ1biBvdXQgb2YgbWVtb3J5XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNvbHZlcyB0aGUgaG9zdGVkIHpvbmUgYXQgd2hpY2ggdGhlIEROUyByZWNvcmRzIHNoYWxsIGJlIGNyZWF0ZWQgdG8gYWNjZXNzIHRoZSBOdXh0IGFwcCBvbiB0aGUgaW50ZXJuZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcHNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZmluZEhvc3RlZFpvbmUocHJvcHM6IE51eHRTZXJ2ZXJBcHBTdGFja1Byb3BzKTogSUhvc3RlZFpvbmUge1xuICAgICAgICBjb25zdCBkb21haW5QYXJ0cyA9IHByb3BzLmRvbWFpbi5zcGxpdCgnLicpO1xuXG4gICAgICAgIHJldHVybiBIb3N0ZWRab25lLmZyb21Ib3N0ZWRab25lQXR0cmlidXRlcyh0aGlzLCBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWhvc3RlZC16b25lYCwge1xuICAgICAgICAgICAgaG9zdGVkWm9uZUlkOiBwcm9wcy5ob3N0ZWRab25lSWQsXG4gICAgICAgICAgICB6b25lTmFtZTogZG9tYWluUGFydHNbZG9tYWluUGFydHMubGVuZ3RoIC0gMV0sIC8vIFN1cHBvcnQgc3ViZG9tYWluc1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHRoZSBETlMgcmVjb3JkcyB0byBhY2Nlc3MgdGhlIE51eHQgYXBwIG9uIHRoZSBpbnRlcm5ldCB2aWEgdGhlIGN1c3RvbSBkb21haW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcHNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlRG5zUmVjb3Jkcyhwcm9wczogTnV4dFNlcnZlckFwcFN0YWNrUHJvcHMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdGVkWm9uZSA9IHRoaXMuZmluZEhvc3RlZFpvbmUocHJvcHMpO1xuICAgICAgICBjb25zdCBkbnNUYXJnZXQgPSBSZWNvcmRUYXJnZXQuZnJvbUFsaWFzKG5ldyBDbG91ZEZyb250VGFyZ2V0KHRoaXMuY2RuKSk7XG5cbiAgICAgICAgLy8gQ3JlYXRlIGEgcmVjb3JkIGZvciBJUHY0XG4gICAgICAgIG5ldyBBUmVjb3JkKHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0taXB2NC1yZWNvcmRgLCB7XG4gICAgICAgICAgICByZWNvcmROYW1lOiBwcm9wcy5kb21haW4sXG4gICAgICAgICAgICB6b25lOiBob3N0ZWRab25lLFxuICAgICAgICAgICAgdGFyZ2V0OiBkbnNUYXJnZXQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIENyZWF0ZSBhIHJlY29yZCBmb3IgSVB2NlxuICAgICAgICBuZXcgQWFhYVJlY29yZCh0aGlzLCBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWlwdjYtcmVjb3JkYCwge1xuICAgICAgICAgICAgcmVjb3JkTmFtZTogcHJvcHMuZG9tYWluLFxuICAgICAgICAgICAgem9uZTogaG9zdGVkWm9uZSxcbiAgICAgICAgICAgIHRhcmdldDogZG5zVGFyZ2V0LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2NoZWR1bGVkIHJ1bGUgdG8gcGluZyB0aGUgTnV4dCBhcHAgTGFtYmRhIGZ1bmN0aW9uIGV2ZXJ5IDUgbWludXRlcyBpbiBvcmRlciB0byBrZWVwIGl0IHdhcm1cbiAgICAgKiBhbmQgc3BlZWQgdXAgaW5pdGlhbCBTU1IgcmVxdWVzdHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlQXBwUGluZ1J1bGUocHJvcHM6IE51eHRTZXJ2ZXJBcHBTdGFja1Byb3BzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZha2VBcGlHYXRld2F5RXZlbnREYXRhID0ge1xuICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gICAgICAgICAgICBcInJvdXRlS2V5XCI6IFwiR0VUIC97cHJveHkrfVwiLFxuICAgICAgICAgICAgXCJyYXdQYXRoXCI6IFwiL1wiLFxuICAgICAgICAgICAgXCJyYXdRdWVyeVN0cmluZ1wiOiBcIlwiLFxuICAgICAgICAgICAgXCJoZWFkZXJzXCI6IHt9LFxuICAgICAgICAgICAgXCJyZXF1ZXN0Q29udGV4dFwiOiB7XG4gICAgICAgICAgICAgICAgXCJkb21haW5OYW1lXCI6IHByb3BzLmRvbWFpbixcbiAgICAgICAgICAgICAgICBcImh0dHBcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICAgICAgICAgICAgICBcInBhdGhcIjogXCIvXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicHJvdG9jb2xcIjogXCJIVFRQLzEuMVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIG5ldyBSdWxlKHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tcGluZ2VyLXJ1bGVgLCB7XG4gICAgICAgICAgICBydWxlTmFtZTogYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1waW5nZXJgLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBQaW5ncyB0aGUgTGFtYmRhIGZ1bmN0aW9uIG9mIHRoZSAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0gYXBwIGV2ZXJ5IDUgbWludXRlcyB0byBrZWVwIGl0IHdhcm0uYCxcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBzY2hlZHVsZTogU2NoZWR1bGUucmF0ZShEdXJhdGlvbi5taW51dGVzKDUpKSxcbiAgICAgICAgICAgIHRhcmdldHM6IFtuZXcgTGFtYmRhRnVuY3Rpb24odGhpcy5hcHBMYW1iZGFGdW5jdGlvbiwge1xuICAgICAgICAgICAgICAgIGV2ZW50OiBSdWxlVGFyZ2V0SW5wdXQuZnJvbU9iamVjdChmYWtlQXBpR2F0ZXdheUV2ZW50RGF0YSlcbiAgICAgICAgICAgIH0pXSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2NoZWR1bGVkIHJ1bGUgdGhhdCBydW5zIGV2ZXJ5IHR1ZXNkYXkgYXQgMDM6MzAgQU0gR01UIHRvIHRyaWdnZXJcbiAgICAgKiBvdXIgY2xlYW51cCBMYW1iZGEgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlQ2xlYW51cFRyaWdnZXJSdWxlKCk6IHZvaWQge1xuICAgICAgICBuZXcgUnVsZSh0aGlzLCBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LXNjaGVkdWxlci1ydWxlYCwge1xuICAgICAgICAgICAgcnVsZU5hbWU6IGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tc2NoZWR1bGVyYCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgVHJpZ2dlcnMgYSBjbGVhbnVwIG9mIHRoZSBvdXRkYXRlZCBzdGF0aWMgYXNzZXRzIGF0IHRoZSAke3RoaXMuc3RhdGljQXNzZXRzQnVja2V0LmJ1Y2tldE5hbWV9IFMzIGJ1Y2tldC5gLFxuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5jcm9uKHt3ZWVrRGF5OiAnMycsIGhvdXI6ICczJywgbWludXRlOiAnMzAnfSksXG4gICAgICAgICAgICB0YXJnZXRzOiBbbmV3IExhbWJkYUZ1bmN0aW9uKHRoaXMuY2xlYW51cExhbWJkYUZ1bmN0aW9uKV0sXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
389
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnV4dC1zZXJ2ZXItYXBwLXN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibnV4dC1zZXJ2ZXItYXBwLXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUEyRDtBQUUzRCwrRUFBK0Q7QUFDL0QsK0RBZ0JvQztBQUNwQyx1REFBb0c7QUFDcEcsK0NBQTJGO0FBQzNGLHlEQUFtRztBQUNuRyxxRUFBbUc7QUFDbkcsK0VBQXdFO0FBQ3hFLHlFQUFpRTtBQUNqRSxpRkFBK0Q7QUFDL0QsbURBQW1EO0FBQ25ELHNHQUFtRjtBQUNuRiw0RUFBa0c7QUFDbEcsc0VBQTBGO0FBQzFGLHlCQUF5QjtBQUN6Qix1REFBdUU7QUFDdkUsdUVBQThEO0FBRTlELDZCQUE2QjtBQTBCN0I7O0dBRUc7QUFDSCxNQUFhLGtCQUFtQixTQUFRLG1CQUFLO0lBaUV6QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQThCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFakYscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFBLHFEQUE0QixFQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FB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dUIsQ0FBQztpQkFDN0QsQ0FBQyxDQUFDO1NBQ04sQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUdEOzs7OztPQUtHO0lBQ0ssd0JBQXdCO1FBQzVCLElBQUksaUJBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLGlCQUFpQixFQUFFO1lBQ3RELFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsWUFBWTtZQUM5QyxXQUFXLEVBQUUsMkRBQTJELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLGFBQWE7WUFDdkgsT0FBTyxFQUFFLElBQUk7WUFDYixRQUFRLEVBQUUscUJBQVEsQ0FBQyxJQUFJLENBQUMsRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyxDQUFDO1lBQ2hFLE9BQU8sRUFBRSxDQUFDLElBQUksbUNBQWMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUM1RCxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0o7QUEvY0QsZ0RBK2NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeSwgU3RhY2t9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7Q29uc3RydWN0fSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7Q2VydGlmaWNhdGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCI7XG5pbXBvcnQge1xuICAgIEFsbG93ZWRNZXRob2RzLFxuICAgIEJlaGF2aW9yT3B0aW9ucyxcbiAgICBDYWNoZUNvb2tpZUJlaGF2aW9yLFxuICAgIENhY2hlZE1ldGhvZHMsXG4gICAgQ2FjaGVIZWFkZXJCZWhhdmlvcixcbiAgICBDYWNoZVBvbGljeSxcbiAgICBDYWNoZVF1ZXJ5U3RyaW5nQmVoYXZpb3IsXG4gICAgRGlzdHJpYnV0aW9uLFxuICAgIElDYWNoZVBvbGljeSxcbiAgICBJT3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgT3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgT3JpZ2luUHJvdG9jb2xQb2xpY3ksXG4gICAgUHJpY2VDbGFzcyxcbiAgICBTZWN1cml0eVBvbGljeVByb3RvY29sLFxuICAgIFZpZXdlclByb3RvY29sUG9saWN5XG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udFwiO1xuaW1wb3J0IHtBcmNoaXRlY3R1cmUsIENvZGUsIEZ1bmN0aW9uLCBMYXllclZlcnNpb24sIFJ1bnRpbWUsIFRyYWNpbmd9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQge0Jsb2NrUHVibGljQWNjZXNzLCBCdWNrZXQsIEJ1Y2tldEFjY2Vzc0NvbnRyb2wsIElCdWNrZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCB7QWFhYVJlY29yZCwgQVJlY29yZCwgSG9zdGVkWm9uZSwgSUhvc3RlZFpvbmUsIFJlY29yZFRhcmdldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQge0J1Y2tldERlcGxveW1lbnQsIENhY2hlQ29udHJvbCwgU291cmNlLCBTdG9yYWdlQ2xhc3N9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczMtZGVwbG95bWVudFwiO1xuaW1wb3J0IHtIdHRwT3JpZ2luLCBTM09yaWdpbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250LW9yaWdpbnNcIjtcbmltcG9ydCB7Q2xvdWRGcm9udFRhcmdldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzLXRhcmdldHNcIjtcbmltcG9ydCB7SHR0cE1ldGhvZH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zLXRhc2tzXCI7XG5pbXBvcnQge1JldGVudGlvbkRheXN9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuaW1wb3J0IHtIdHRwTGFtYmRhSW50ZWdyYXRpb259IGZyb20gJ0Bhd3MtY2RrL2F3cy1hcGlnYXRld2F5djItaW50ZWdyYXRpb25zLWFscGhhJztcbmltcG9ydCB7RG9tYWluTmFtZSwgRW5kcG9pbnRUeXBlLCBIdHRwQXBpLCBTZWN1cml0eVBvbGljeX0gZnJvbSBcIkBhd3MtY2RrL2F3cy1hcGlnYXRld2F5djItYWxwaGFcIjtcbmltcG9ydCB7Z2V0TnV4dEFwcFN0YXRpY0Fzc2V0Q29uZmlncywgU3RhdGljQXNzZXRDb25maWd9IGZyb20gXCIuLi9udXh0LWFwcC1zdGF0aWMtYXNzZXRzXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCB7UnVsZSwgUnVsZVRhcmdldElucHV0LCBTY2hlZHVsZX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHNcIjtcbmltcG9ydCB7TGFtYmRhRnVuY3Rpb259IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHNcIjtcbmltcG9ydCB7TnV4dEFwcFN0YWNrUHJvcHN9IGZyb20gXCIuLi9udXh0LWFwcC1zdGFjay1wcm9wc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG4vKipcbiAqIERlZmluZXMgdGhlIHByb3BzIHJlcXVpcmVkIGZvciB0aGUge0BzZWUgTnV4dFNlcnZlckFwcFN0YWNrfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOdXh0U2VydmVyQXBwU3RhY2tQcm9wcyBleHRlbmRzIE51eHRBcHBTdGFja1Byb3BzIHtcblxuICAgIC8qKlxuICAgICAqIFRoZSBBUk4gb2YgdGhlIGNlcnRpZmljYXRlIHRvIHVzZSBhdCB0aGUgQXBpR2F0ZXdheSBmb3IgdGhlIE51eHQgYXBwIHRvIG1ha2UgaXQgYWNjZXNzaWJsZSB2aWEgdGhlIGN1c3RvbSBkb21haW5cbiAgICAgKiBhbmQgdG8gcHJvdmlkZSB0aGUgY3VzdG9tIGRvbWFpbiB0byB0aGUgTnV4dCBhcHAgdmlhIHRoZSAnSG9zdCcgaGVhZGVyIGZvciBzZXJ2ZXIgc2lkZSByZW5kZXJpbmcgdXNlIGNhc2VzLlxuICAgICAqIFRoZSBjZXJ0aWZpY2F0ZSBtdXN0IGJlIGlzc3VlZCBpbiB0aGUgc2FtZSByZWdpb24gYXMgc3BlY2lmaWVkIHZpYSAnZW52LnJlZ2lvbicgYXMgQXBpR2F0ZXdheSB3b3JrcyByZWdpb25hbGx5LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJlZ2lvbmFsVGxzQ2VydGlmaWNhdGVBcm46IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBtZW1vcnkgc2l6ZSB0byBhcHBseSB0byB0aGUgTnV4dCBhcHAncyBMYW1iZGEuXG4gICAgICogRGVmYXVsdHMgdG8gMTc5Mk1CIChvcHRpbWl6ZWQgZm9yIGNvc3RzIGFuZCBwZXJmb3JtYW5jZSBmb3Igc3RhbmRhcmQgTnV4dCBhcHBzKS5cbiAgICAgKi9cbiAgICByZWFkb25seSBtZW1vcnlTaXplPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBlbmFibGUgQVdTIFgtUmF5IGZvciB0aGUgTnV4dCBMYW1iZGEgZnVuY3Rpb24uXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW5hYmxlVHJhY2luZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ0RLIHN0YWNrIHRvIGRlcGxveSBhIGR5bmFtaWMgTnV4dCBhcHAgKHRhcmdldD1zZXJ2ZXIpIG9uIEFXUyB3aXRoIExhbWJkYSwgQXBpR2F0ZXdheSwgUzMgYW5kIENsb3VkRnJvbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBOdXh0U2VydmVyQXBwU3RhY2sgZXh0ZW5kcyBTdGFjayB7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpZmllciBwcmVmaXggb2YgdGhlIHJlc291cmNlcyBjcmVhdGVkIGJ5IHRoZSBzdGFjay5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZUlkUHJlZml4OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpZmllciBmb3IgdGhlIGN1cnJlbnQgZGVwbG95bWVudCB0aGF0IGlzIHVzZWQgYXMgUzMgZm9sZGVyIG5hbWVcbiAgICAgKiB0byBzdG9yZSB0aGUgc3RhdGljIGFzc2V0cyBvZiB0aGUgTnV4dCBhcHAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVwbG95bWVudFJldmlzaW9uOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpdHkgdG8gdXNlIGZvciBhY2Nlc3NpbmcgdGhlIGRlcGxveW1lbnQgYXNzZXRzIG9uIFMzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkbkFjY2Vzc0lkZW50aXR5OiBJT3JpZ2luQWNjZXNzSWRlbnRpdHk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgUzMgYnVja2V0IHdoZXJlIHRoZSBkZXBsb3ltZW50IGFzc2V0cyBnZXRzIHN0b3JlZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljQXNzZXRzQnVja2V0OiBJQnVja2V0O1xuXG4gICAgLyoqXG4gICAgICogVGhlIExhbWJkYSBmdW5jdGlvbiB0byByZW5kZXIgdGhlIE51eHQgYXBwIG9uIHRoZSBzZXJ2ZXIgc2lkZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBMYW1iZGFGdW5jdGlvbjogRnVuY3Rpb247XG5cbiAgICAvKipcbiAgICAgKiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgY2xlYW51cHMgdGhlIG91dGRhdGVkIHN0YXRpYyBhc3NldHMgb2YgdGhlIE51eHQgYXBwLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNsZWFudXBMYW1iZGFGdW5jdGlvbjogRnVuY3Rpb247XG5cbiAgICAvKipcbiAgICAgKiBUaGUgQVBJIGdhdGV3YXkgdG8gbWFrZSB0aGUgTGFtYmRhIGZ1bmN0aW9uIHRvIHJlbmRlciB0aGUgTnV4dCBhcHAgcHVibGljbHkgYXZhaWxhYmxlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGFwaUdhdGV3YXk6IEh0dHBBcGk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY29uZmlncyBmb3IgdGhlIHN0YXRpYyBhc3NldHMgb2YgdGhlIE51eHQgYXBwIHRoYXQgc2hhbGwgYmUgcHVibGljbHkgYXZhaWxhYmxlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHN0YXRpY0Fzc2V0Q29uZmlnczogU3RhdGljQXNzZXRDb25maWdbXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiB0byByb3V0ZSBpbmNvbWluZyByZXF1ZXN0cyB0byB0aGUgTnV4dCBMYW1iZGEgZnVuY3Rpb24gKHZpYSB0aGUgQVBJIGdhdGV3YXkpXG4gICAgICogb3IgdGhlIFMzIGFzc2V0cyBmb2xkZXIgKHdpdGggY2FjaGluZykuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RuOiBEaXN0cmlidXRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTnV4dFNlcnZlckFwcFN0YWNrUHJvcHMpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5yZXNvdXJjZUlkUHJlZml4ID0gYCR7cHJvcHMucHJvamVjdH0tJHtwcm9wcy5zZXJ2aWNlfS0ke3Byb3BzLmVudmlyb25tZW50fWA7XG5cbiAgICAgICAgLy8gTnV4dCBhcHAgcmVzb3VyY2VzXG4gICAgICAgIHRoaXMuZGVwbG95bWVudFJldmlzaW9uID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgICAgICB0aGlzLnN0YXRpY0Fzc2V0Q29uZmlncyA9IGdldE51eHRBcHBTdGF0aWNBc3NldENvbmZpZ3MocHJvcHMubnV4dENvbmZpZyk7XG4gICAgICAgIHRoaXMuY2RuQWNjZXNzSWRlbnRpdHkgPSB0aGlzLmNyZWF0ZUNkbkFjY2Vzc0lkZW50aXR5KCk7XG4gICAgICAgIHRoaXMuc3RhdGljQXNzZXRzQnVja2V0ID0gdGhpcy5jcmVhdGVTdGF0aWNBc3NldHNCdWNrZXQoKTtcbiAgICAgICAgdGhpcy5hcHBMYW1iZGFGdW5jdGlvbiA9IHRoaXMuY3JlYXRlQXBwTGFtYmRhRnVuY3Rpb24ocHJvcHMpO1xuICAgICAgICB0aGlzLmFwaUdhdGV3YXkgPSB0aGlzLmNyZWF0ZUFwaUdhdGV3YXkocHJvcHMpO1xuICAgICAgICB0aGlzLmNkbiA9IHRoaXMuY3JlYXRlQ2xvdWRGcm9udERpc3RyaWJ1dGlvbihwcm9wcyk7XG4gICAgICAgIHRoaXMuY29uZmlndXJlRGVwbG95bWVudHMoKTtcbiAgICAgICAgdGhpcy5jcmVhdGVEbnNSZWNvcmRzKHByb3BzKTtcbiAgICAgICAgdGhpcy5jcmVhdGVBcHBQaW5nUnVsZShwcm9wcyk7XG5cbiAgICAgICAgLy8gU3RhdGljIGFzc2V0cyBjbGVhbnVwIHJlc291cmNlc1xuICAgICAgICB0aGlzLmNsZWFudXBMYW1iZGFGdW5jdGlvbiA9IHRoaXMuY3JlYXRlQ2xlYW51cExhbWJkYUZ1bmN0aW9uKHByb3BzKTtcbiAgICAgICAgdGhpcy5jcmVhdGVDbGVhbnVwVHJpZ2dlclJ1bGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHRoZSBpZGVudGl0eSB0byBhY2Nlc3MgdGhlIFMzIGRlcGxveW1lbnQgYXNzZXQgZmlsZXMgdmlhIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVDZG5BY2Nlc3NJZGVudGl0eSgpOiBJT3JpZ2luQWNjZXNzSWRlbnRpdHkge1xuICAgICAgICBjb25zdCBvcmlnaW5BY2Nlc3NJZGVudGl0eU5hbWUgPSBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWNkbi1zMy1hY2Nlc3NgO1xuICAgICAgICByZXR1cm4gbmV3IE9yaWdpbkFjY2Vzc0lkZW50aXR5KHRoaXMsIG9yaWdpbkFjY2Vzc0lkZW50aXR5TmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgYnVja2V0IHRvIHN0b3JlIHRoZSBzdGF0aWMgZGVwbG95bWVudCBhc3NldCBmaWxlcyBvZiB0aGUgTnV4dCBhcHAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlU3RhdGljQXNzZXRzQnVja2V0KCk6IElCdWNrZXQge1xuICAgICAgICBjb25zdCBidWNrZXROYW1lID0gYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1hc3NldHNgO1xuICAgICAgICBjb25zdCBidWNrZXQgPSBuZXcgQnVja2V0KHRoaXMsIGJ1Y2tldE5hbWUsIHtcbiAgICAgICAgICAgIGFjY2Vzc0NvbnRyb2w6IEJ1Y2tldEFjY2Vzc0NvbnRyb2wuQVVUSEVOVElDQVRFRF9SRUFELFxuICAgICAgICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IEJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgICAgICAgIGJ1Y2tldE5hbWUsXG4gICAgICAgICAgICAvLyBUaGUgYnVja2V0IGFuZCBhbGwgb2YgaXRzIG9iamVjdHMgY2FuIGJlIGRlbGV0ZWQsIGJlY2F1c2UgYWxsIHRoZSBjb250ZW50IGlzIG1hbmFnZWQgaW4gdGhpcyBwcm9qZWN0XG4gICAgICAgICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICAgICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYnVja2V0LmdyYW50UmVhZFdyaXRlKHRoaXMuY2RuQWNjZXNzSWRlbnRpdHkpO1xuXG4gICAgICAgIHJldHVybiBidWNrZXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIExhbWJkYSBsYXllciB3aXRoIHRoZSBub2RlX21vZHVsZXMgcmVxdWlyZWQgdG8gcmVuZGVyIHRoZSBOdXh0IGFwcCBvbiB0aGUgc2VydmVyIHNpZGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlU3NyTGFtYmRhTGF5ZXIoKTogTGF5ZXJWZXJzaW9uIHtcbiAgICAgICAgY29uc3QgbGF5ZXJOYW1lID0gYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1zc3ItbGF5ZXJgO1xuICAgICAgICByZXR1cm4gbmV3IExheWVyVmVyc2lvbih0aGlzLCBsYXllck5hbWUsIHtcbiAgICAgICAgICAgIGxheWVyVmVyc2lvbk5hbWU6IGxheWVyTmFtZSxcbiAgICAgICAgICAgIGNvZGU6IENvZGUuZnJvbUFzc2V0KCcubnV4dC9jZGstZGVwbG95bWVudC9sYXllcicpLFxuICAgICAgICAgICAgY29tcGF0aWJsZVJ1bnRpbWVzOiBbUnVudGltZS5OT0RFSlNfMTJfWF0sXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogYFByb3ZpZGVzIHRoZSBub2RlX21vZHVsZXMgcmVxdWlyZWQgZm9yIFNTUiBvZiAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0uYCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgTGFtYmRhIGZ1bmN0aW9uIHRvIHJlbmRlciB0aGUgTnV4dCBhcHAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlQXBwTGFtYmRhRnVuY3Rpb24ocHJvcHM6IE51eHRTZXJ2ZXJBcHBTdGFja1Byb3BzKTogRnVuY3Rpb24ge1xuICAgICAgICBjb25zdCBmdW5jTmFtZSA9IGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tYXBwLWZ1bmN0aW9uYDtcblxuICAgICAgICByZXR1cm4gbmV3IEZ1bmN0aW9uKHRoaXMsIGZ1bmNOYW1lLCB7XG4gICAgICAgICAgICBmdW5jdGlvbk5hbWU6IGZ1bmNOYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBSZW5kZXJzIHRoZSAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0gTnV4dCBhcHAuYCxcbiAgICAgICAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzEyX1gsXG4gICAgICAgICAgICBhcmNoaXRlY3R1cmU6IEFyY2hpdGVjdHVyZS5BUk1fNjQsXG4gICAgICAgICAgICBsYXllcnM6IFt0aGlzLmNyZWF0ZVNzckxhbWJkYUxheWVyKCldLFxuICAgICAgICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQoJy5udXh0L2Nkay1kZXBsb3ltZW50L3NyYycsIHtcbiAgICAgICAgICAgICAgICBleGNsdWRlOiBbJyoqLnN2ZycsICcqKi5pY28nLCAnKioucG5nJywgJyoqLmpwZycsICcqKi5qcy5tYXAnXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygxMCksXG4gICAgICAgICAgICBtZW1vcnlTaXplOiBwcm9wcy5tZW1vcnlTaXplID8/IDE3OTIsXG4gICAgICAgICAgICBsb2dSZXRlbnRpb246IFJldGVudGlvbkRheXMuT05FX01PTlRILFxuICAgICAgICAgICAgYWxsb3dQdWJsaWNTdWJuZXQ6IGZhbHNlLFxuICAgICAgICAgICAgdHJhY2luZzogcHJvcHMuZW5hYmxlVHJhY2luZyA/IFRyYWNpbmcuQUNUSVZFIDogVHJhY2luZy5ESVNBQkxFRFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBjbGVhbnVwcyB0aGUgb3V0ZGF0ZWQgc3RhdGljIGFzc2V0cyBvZiB0aGUgTnV4dCBhcHAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcHNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlQ2xlYW51cExhbWJkYUZ1bmN0aW9uKHByb3BzOiBOdXh0U2VydmVyQXBwU3RhY2tQcm9wcyk6IEZ1bmN0aW9uIHtcbiAgICAgICAgY29uc3QgZnVuY3Rpb25OYW1lOiBzdHJpbmcgPSBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWNsZWFudXAtZnVuY3Rpb25gO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdDogRnVuY3Rpb24gPSBuZXcgRnVuY3Rpb24odGhpcywgZnVuY3Rpb25OYW1lLCB7XG4gICAgICAgICAgICBmdW5jdGlvbk5hbWU6IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgQXV0by1kZWxldGVzIHRoZSBvdXRkYXRlZCBzdGF0aWMgYXNzZXRzIGluIHRoZSAke3RoaXMuc3RhdGljQXNzZXRzQnVja2V0LmJ1Y2tldE5hbWV9IFMzIGJ1Y2tldC5gLFxuICAgICAgICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMTRfWCxcbiAgICAgICAgICAgIGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgICAgICAgIGxheWVyczogW25ldyBMYXllclZlcnNpb24odGhpcywgYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1sYXllcmAsIHtcbiAgICAgICAgICAgICAgICBsYXllclZlcnNpb25OYW1lOiBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWxheWVyYCxcbiAgICAgICAgICAgICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vZnVuY3Rpb25zL2Fzc2V0c19jbGVhbnVwL2J1aWxkL2xheWVyJykpLFxuICAgICAgICAgICAgICAgIGNvbXBhdGlibGVSdW50aW1lczogW1J1bnRpbWUuTk9ERUpTXzE0X1hdLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgUHJvdmlkZXMgdGhlIG5vZGVfbW9kdWxlcyByZXF1aXJlZCBmb3IgdGhlICR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fSBsYW1iZGEgZnVuY3Rpb24uYFxuICAgICAgICAgICAgfSldLFxuICAgICAgICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLy4uL2Z1bmN0aW9ucy9hc3NldHNfY2xlYW51cC9idWlsZC9hcHAnKSksXG4gICAgICAgICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgICAgICAgbWVtb3J5U2l6ZTogMTI4LFxuICAgICAgICAgICAgbG9nUmV0ZW50aW9uOiBSZXRlbnRpb25EYXlzLlRXT19XRUVLUyxcbiAgICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICAgICAgU1RBVElDX0FTU0VUU19CVUNLRVQ6IHRoaXMuc3RhdGljQXNzZXRzQnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAgICAgICAgICAgRU5WSVJPTk1FTlQ6IHByb3BzLmVudmlyb25tZW50LFxuICAgICAgICAgICAgICAgIEFXU19OT0RFSlNfQ09OTkVDVElPTl9SRVVTRV9FTkFCTEVEOiAnMScsXG4gICAgICAgICAgICAgICAgTk9ERV9PUFRJT05TOiAnLS1lbmFibGUtc291cmNlLW1hcHMnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gZ3JhbnQgZnVuY3Rpb24gYWNjZXNzIHRvIFMzIGJ1Y2tldFxuICAgICAgICB0aGlzLnN0YXRpY0Fzc2V0c0J1Y2tldC5ncmFudFJlYWQocmVzdWx0KTtcbiAgICAgICAgdGhpcy5zdGF0aWNBc3NldHNCdWNrZXQuZ3JhbnREZWxldGUocmVzdWx0KTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIEFQSSBnYXRld2F5IHRvIG1ha2UgdGhlIE51eHQgYXBwIHJlbmRlciBMYW1iZGEgZnVuY3Rpb24gcHVibGljbHkgYXZhaWxhYmxlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZUFwaUdhdGV3YXkocHJvcHM6IE51eHRTZXJ2ZXJBcHBTdGFja1Byb3BzKTogSHR0cEFwaSB7XG4gICAgICAgIGNvbnN0IGFwaU5hbWUgPSBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWFwaWA7XG4gICAgICAgIGNvbnN0IGxhbWJkYUludGVncmF0aW9uID0gbmV3IEh0dHBMYW1iZGFJbnRlZ3JhdGlvbihgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWxhbWJkYS1pbnRlZ3JhdGlvbmAsIHRoaXMuYXBwTGFtYmRhRnVuY3Rpb24pO1xuXG4gICAgICAgIC8vIFdlIHdhbnQgdGhlIEFQSSBnYXRld2F5IHRvIGJlIGFjY2Vzc2libGUgYnkgdGhlIGN1c3RvbSBkb21haW4gbmFtZS5cbiAgICAgICAgLy8gRXZlbiB0aG91Z2ggd2UgYWNjZXNzIHRoZSBnYXRld2F5IHZpYSBDbG91ZEZyb250IChmb3IgYXV0byBodHRwIHRvIGh0dHBzIHJlZGlyZWN0cyksIHRoaXMgaXMgcmVxdWlyZWRcbiAgICAgICAgLy8gdG8gYmUgYWJsZSB0byByZWRpcmVjdCB0aGUgb3JpZ2luYWwgJ0hvc3QnIGhlYWRlciB0byB0aGUgTnV4dCBhcHBsaWNhdGlvbiwgaWYgcmVxdWVzdGVkLlxuICAgICAgICBjb25zdCBkb21haW5OYW1lID0gbmV3IERvbWFpbk5hbWUodGhpcywgYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1hcGktZG9tYWluYCwge1xuICAgICAgICAgICAgZG9tYWluTmFtZTogcHJvcHMuZG9tYWluLFxuICAgICAgICAgICAgY2VydGlmaWNhdGU6IENlcnRpZmljYXRlLmZyb21DZXJ0aWZpY2F0ZUFybih0aGlzLCBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LXJlZ2lvbmFsLWNlcnRpZmljYXRlYCwgcHJvcHMucmVnaW9uYWxUbHNDZXJ0aWZpY2F0ZUFybiksXG4gICAgICAgICAgICBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZS5SRUdJT05BTCxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5OiBTZWN1cml0eVBvbGljeS5UTFNfMV8yXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGFwaUdhdGV3YXkgPSBuZXcgSHR0cEFwaSh0aGlzLCBhcGlOYW1lLCB7XG4gICAgICAgICAgICBhcGlOYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBDb25uZWN0cyB0aGUgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9IENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIHdpdGggdGhlICR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fSBMYW1iZGEgZnVuY3Rpb24gdG8gbWFrZSBpdCBwdWJsaWNseSBhdmFpbGFibGUuYCxcbiAgICAgICAgICAgIC8vIFRoZSBhcHAgZG9lcyBub3QgYWxsb3cgYW55IGNyb3NzLW9yaWdpbiBhY2Nlc3MgYnkgcHVycG9zZTogdGhlIGFwcCBzaG91bGQgbm90IGJlIGVtYmVkZGFibGUgYW55d2hlcmVcbiAgICAgICAgICAgIGNvcnNQcmVmbGlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGRlZmF1bHRJbnRlZ3JhdGlvbjogbGFtYmRhSW50ZWdyYXRpb24sXG4gICAgICAgICAgICBkZWZhdWx0RG9tYWluTWFwcGluZzoge1xuICAgICAgICAgICAgICAgIGRvbWFpbk5hbWU6IGRvbWFpbk5hbWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXBpR2F0ZXdheS5hZGRSb3V0ZXMoe1xuICAgICAgICAgICAgaW50ZWdyYXRpb246IGxhbWJkYUludGVncmF0aW9uLFxuICAgICAgICAgICAgcGF0aDogJy97cHJveHkrfScsXG4gICAgICAgICAgICBtZXRob2RzOiBbSHR0cE1ldGhvZC5HRVQsIEh0dHBNZXRob2QuSEVBRF0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBhcGlHYXRld2F5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIHRoYXQgcm91dGVzIGluY29taW5nIHJlcXVlc3RzIHRvIHRoZSBOdXh0IExhbWJkYSBmdW5jdGlvbiAodmlhIHRoZSBBUEkgZ2F0ZXdheSlcbiAgICAgKiBvciB0aGUgUzMgYXNzZXRzIGZvbGRlciAod2l0aCBjYWNoaW5nKS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wc1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVDbG91ZEZyb250RGlzdHJpYnV0aW9uKHByb3BzOiBOdXh0U2VydmVyQXBwU3RhY2tQcm9wcyk6IERpc3RyaWJ1dGlvbiB7XG4gICAgICAgIGNvbnN0IGNkbk5hbWUgPSBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWNkbmA7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBEaXN0cmlidXRpb24odGhpcywgY2RuTmFtZSwge1xuICAgICAgICAgICAgZG9tYWluTmFtZXM6IFtwcm9wcy5kb21haW5dLFxuICAgICAgICAgICAgY29tbWVudDogY2RuTmFtZSxcbiAgICAgICAgICAgIG1pbmltdW1Qcm90b2NvbFZlcnNpb246IFNlY3VyaXR5UG9saWN5UHJvdG9jb2wuVExTX1YxXzJfMjAxOCxcbiAgICAgICAgICAgIGNlcnRpZmljYXRlOiBDZXJ0aWZpY2F0ZS5mcm9tQ2VydGlmaWNhdGVBcm4odGhpcywgYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1nbG9iYWwtY2VydGlmaWNhdGVgLCBwcm9wcy5nbG9iYWxUbHNDZXJ0aWZpY2F0ZUFybiksXG4gICAgICAgICAgICBkZWZhdWx0QmVoYXZpb3I6IHRoaXMuY3JlYXRlTnV4dEFwcFJvdXRlQmVoYXZpb3IoKSxcbiAgICAgICAgICAgIGFkZGl0aW9uYWxCZWhhdmlvcnM6IHRoaXMuY3JlYXRlU3RhdGljQXNzZXRzUm91dGVCZWhhdmlvcigpLFxuICAgICAgICAgICAgcHJpY2VDbGFzczogUHJpY2VDbGFzcy5QUklDRV9DTEFTU18xMDAsIC8vIFVzZSBvbmx5IE5vcnRoIEFtZXJpY2EgYW5kIEV1cm9wZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYmVoYXZpb3IgZm9yIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiB0byByb3V0ZSBpbmNvbWluZyByZXF1ZXN0cyB0byB0aGUgTnV4dCByZW5kZXIgTGFtYmRhIGZ1bmN0aW9uICh2aWEgQVBJIGdhdGV3YXkpLlxuICAgICAqIEFkZGl0aW9uYWxseSwgdGhpcyBhdXRvbWF0aWNhbGx5IHJlZGlyZWN0cyBIVFRQIHJlcXVlc3RzIHRvIEhUVFBTLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZU51eHRBcHBSb3V0ZUJlaGF2aW9yKCk6IEJlaGF2aW9yT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvcmlnaW46IG5ldyBIdHRwT3JpZ2luKGAke3RoaXMuYXBpR2F0ZXdheS5odHRwQXBpSWR9LmV4ZWN1dGUtYXBpLiR7dGhpcy5yZWdpb259LmFtYXpvbmF3cy5jb21gLCB7XG4gICAgICAgICAgICAgICAgY29ubmVjdGlvbkF0dGVtcHRzOiAyLFxuICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25UaW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDIpLFxuICAgICAgICAgICAgICAgIHJlYWRUaW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDEwKSxcbiAgICAgICAgICAgICAgICBwcm90b2NvbFBvbGljeTogT3JpZ2luUHJvdG9jb2xQb2xpY3kuSFRUUFNfT05MWSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgYWxsb3dlZE1ldGhvZHM6IEFsbG93ZWRNZXRob2RzLkFMTE9XX0dFVF9IRUFELFxuICAgICAgICAgICAgY29tcHJlc3M6IHRydWUsXG4gICAgICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICAgICAgICBvcmlnaW5SZXF1ZXN0UG9saWN5OiB1bmRlZmluZWQsXG4gICAgICAgICAgICBjYWNoZVBvbGljeTogdGhpcy5jcmVhdGVTc3JDYWNoZVBvbGljeSgpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjYWNoZSBwb2xpY3kgZm9yIHRoZSBOdXh0IGFwcCByb3V0ZSBiZWhhdmlvciBvZiB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24uXG4gICAgICogRXZlbiB0aG91Z2ggd2UgZG9uJ3Qgd2FudCB0byBjYWNoZSBTU1IgcmVxdWVzdHMsIHdlIHN0aWxsIGhhdmUgdG8gY3JlYXRlIHRoaXMgY2FjaGUgcG9saWN5IGluIG9yZGVyIHRvXG4gICAgICogZm9yd2FyZCByZXF1aXJlZCBjb29raWVzLCBxdWVyeSBwYXJhbXMgYW5kIGhlYWRlcnMuIFRoaXMgZG9lc24ndCBtYWtlIGFueSBzZW5zZSwgYmVjYXVzZSBpZiBub3RoaW5nXG4gICAgICogaXMgY2FjaGVkLCBvbmUgd291bGQgZXhwZWN0LCB0aGF0IGFueXRoaW5nIHdvdWxkL2NvdWxkIGJlIGZvcndhcmRlZCwgYnV0IGFueXdheS4uLlxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlU3NyQ2FjaGVQb2xpY3koKTogSUNhY2hlUG9saWN5IHtcblxuICAgICAgICAvLyBUaGUgaGVhZGVycyB0byBtYWtlIGFjY2Vzc2libGUgaW4gdGhlIE51eHQgYXBwIGNvZGUuXG4gICAgICAgIC8vIFRoZXJlIGlzIG5vICdDYWNoZUhlYWRlckJlaGF2aW9yLmFsbCgpJyBvcHRpb24sIHNvIHdlIGhhdmUgdG8gZXhwbGljaXRseSBkZWZpbmUgdGhlbS5cbiAgICAgICAgY29uc3QgaGVhZGVycyA9IFtcbiAgICAgICAgICAgICdVc2VyLUFnZW50JywgLy8gUmVxdWlyZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBtb2JpbGUgYW5kIGRlc2t0b3AgdGVtcGxhdGVcbiAgICAgICAgICAgICdBdXRob3JpemF0aW9uJywgLy8gRm9yIGF1dGhvcml6YXRpb25cbiAgICAgICAgICAgICdIb3N0JyAvLyBUbyBhY2Nlc3MgdGhlIGRvbWFpbiBuYW1lIG9uIFNTUiByZXF1ZXN0c1xuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiBuZXcgQ2FjaGVQb2xpY3kodGhpcywgYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1jYWNoZS1wb2xpY3lgLCB7XG4gICAgICAgICAgICBjYWNoZVBvbGljeU5hbWU6IGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tY2RuLWNhY2hlLXBvbGljeWAsXG4gICAgICAgICAgICBjb21tZW50OiBgUGFzc2VzIGFsbCByZXF1aXJlZCByZXF1ZXN0IGRhdGEgdG8gdGhlICR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fSBvcmlnaW4uYCxcbiAgICAgICAgICAgIGRlZmF1bHRUdGw6IER1cmF0aW9uLnNlY29uZHMoMCksXG4gICAgICAgICAgICBtaW5UdGw6IER1cmF0aW9uLnNlY29uZHMoMCksXG4gICAgICAgICAgICBtYXhUdGw6IER1cmF0aW9uLnNlY29uZHMoMSksIC8vIFRoZSBtYXggVFRMIG11c3Qgbm90IGJlIDAgZm9yIGEgY2FjaGUgcG9saWN5XG4gICAgICAgICAgICBxdWVyeVN0cmluZ0JlaGF2aW9yOiBDYWNoZVF1ZXJ5U3RyaW5nQmVoYXZpb3IuYWxsKCksXG4gICAgICAgICAgICBoZWFkZXJCZWhhdmlvcjogQ2FjaGVIZWFkZXJCZWhhdmlvci5hbGxvd0xpc3QoLi4uaGVhZGVycyksXG4gICAgICAgICAgICBjb29raWVCZWhhdmlvcjogQ2FjaGVDb29raWVCZWhhdmlvci5hbGwoKSxcbiAgICAgICAgICAgIGVuYWJsZUFjY2VwdEVuY29kaW5nQnJvdGxpOiB0cnVlLFxuICAgICAgICAgICAgZW5hYmxlQWNjZXB0RW5jb2RpbmdHemlwOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYmVoYXZpb3IgZm9yIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiB0byByb3V0ZSBtYXRjaGluZyBpbmNvbWluZyByZXF1ZXN0cyBmb3IgdGhlIHN0YXRpYyBhc3NldHNcbiAgICAgKiB0byB0aGUgUzMgYnVja2V0IHRoYXQgaG9sZHMgdGhlc2Ugc3RhdGljIGFzc2V0cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVTdGF0aWNBc3NldHNSb3V0ZUJlaGF2aW9yKCk6IFJlY29yZDxzdHJpbmcsIEJlaGF2aW9yT3B0aW9ucz4ge1xuICAgICAgICBjb25zdCBzdGF0aWNBc3NldHNDYWNoZUNvbmZpZzogQmVoYXZpb3JPcHRpb25zID0ge1xuICAgICAgICAgICAgb3JpZ2luOiBuZXcgUzNPcmlnaW4odGhpcy5zdGF0aWNBc3NldHNCdWNrZXQsIHtcbiAgICAgICAgICAgICAgICBjb25uZWN0aW9uQXR0ZW1wdHM6IDIsXG4gICAgICAgICAgICAgICAgY29ubmVjdGlvblRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMyksXG4gICAgICAgICAgICAgICAgb3JpZ2luQWNjZXNzSWRlbnRpdHk6IHRoaXMuY2RuQWNjZXNzSWRlbnRpdHksXG4gICAgICAgICAgICAgICAgb3JpZ2luUGF0aDogdGhpcy5kZXBsb3ltZW50UmV2aXNpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNvbXByZXNzOiB0cnVlLFxuICAgICAgICAgICAgYWxsb3dlZE1ldGhvZHM6IEFsbG93ZWRNZXRob2RzLkFMTE9XX0dFVF9IRUFEX09QVElPTlMsXG4gICAgICAgICAgICBjYWNoZWRNZXRob2RzOiBDYWNoZWRNZXRob2RzLkNBQ0hFX0dFVF9IRUFEX09QVElPTlMsXG4gICAgICAgICAgICBjYWNoZVBvbGljeTogQ2FjaGVQb2xpY3kuQ0FDSElOR19PUFRJTUlaRUQsXG4gICAgICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcnVsZXM6IFJlY29yZDxzdHJpbmcsIEJlaGF2aW9yT3B0aW9ucz4gPSB7fTtcbiAgICAgICAgdGhpcy5zdGF0aWNBc3NldENvbmZpZ3MuZm9yRWFjaChhc3NldCA9PiB7XG4gICAgICAgICAgICBydWxlc1tgJHthc3NldC50YXJnZXR9JHthc3NldC5wYXR0ZXJufWBdID0gc3RhdGljQXNzZXRzQ2FjaGVDb25maWdcbiAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4gcnVsZXNcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGxvYWRzIHRoZSBzdGF0aWMgYXNzZXRzIG9mIHRoZSBOdXh0IGFwcCBhcyBkZWZpbmVkIGluIHtAc2VlIGdldE51eHRBcHBTdGF0aWNBc3NldENvbmZpZ3N9IHRvIHRoZSBzdGF0aWMgYXNzZXRzIFMzIGJ1Y2tldC5cbiAgICAgKiBJbiBvcmRlciB0byBlbmFibGUgYSB6ZXJvLWRvd250aW1lIGRlcGxveW1lbnQsIHdlIHVzZSBhIG5ldyBzdWJkaXJlY3RvcnkgKHJldmlzaW9uKSBmb3IgZXZlcnkgZGVwbG95bWVudC5cbiAgICAgKiBUaGUgcHJldmlvdXMgdmVyc2lvbnMgYXJlIHJldGFpbmVkIHRvIGFsbG93IGNsaWVudHMgdG8gY29udGludWUgdG8gd29yayB3aXRoIGFuIG9sZGVyIHJldmlzaW9uIGJ1dCBnZXRzIGNsZWFuZWQgdXBcbiAgICAgKiBhZnRlciBhIHNwZWNpZmllZCBwZXJpb2Qgb2YgdGltZSB2aWEgdGhlIExhbWJkYSBmdW5jdGlvbiBpbiB0aGUge0BzZWUgTnV4dEFwcEFzc2V0c0NsZWFudXBTdGFja30uXG4gICAgICovXG4gICAgcHJpdmF0ZSBjb25maWd1cmVEZXBsb3ltZW50cygpOiBCdWNrZXREZXBsb3ltZW50W10ge1xuICAgICAgICBjb25zdCBkZWZhdWx0Q2FjaGVDb25maWcgPSBbXG4gICAgICAgICAgICBDYWNoZUNvbnRyb2wuc2V0UHVibGljKCksXG4gICAgICAgICAgICBDYWNoZUNvbnRyb2wubWF4QWdlKER1cmF0aW9uLmRheXMoMzY1KSksXG4gICAgICAgICAgICBDYWNoZUNvbnRyb2wuZnJvbVN0cmluZygnaW1tdXRhYmxlJyksXG4gICAgICAgIF07XG5cbiAgICAgICAgLy8gUmV0dXJucyBhIGRlcGxveW1lbnQgZm9yIGV2ZXJ5IGNvbmZpZ3VyZWQgc3RhdGljIGFzc2V0IHR5cGUgdG8gcmVzcGVjdCB0aGUgZGlmZmVyZW50IGNhY2hlIHNldHRpbmdzXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRpY0Fzc2V0Q29uZmlncy5maWx0ZXIoYXNzZXQgPT4gZnMuZXhpc3RzU3luYyhhc3NldC5zb3VyY2UpKS5tYXAoKGFzc2V0LCBhc3NldEluZGV4KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEJ1Y2tldERlcGxveW1lbnQodGhpcywgYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1hc3NldHMtZGVwbG95bWVudC0ke2Fzc2V0SW5kZXh9YCwge1xuICAgICAgICAgICAgICAgIHNvdXJjZXM6IFtTb3VyY2UuYXNzZXQoYXNzZXQuc291cmNlKV0sXG4gICAgICAgICAgICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IHRoaXMuc3RhdGljQXNzZXRzQnVja2V0LFxuICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uS2V5UHJlZml4OiB0aGlzLmRlcGxveW1lbnRSZXZpc2lvbiArIGFzc2V0LnRhcmdldCxcbiAgICAgICAgICAgICAgICBwcnVuZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgc3RvcmFnZUNsYXNzOiBTdG9yYWdlQ2xhc3MuU1RBTkRBUkQsXG4gICAgICAgICAgICAgICAgZXhjbHVkZTogWycqJ10sXG4gICAgICAgICAgICAgICAgaW5jbHVkZTogW2Fzc2V0LnBhdHRlcm5dLFxuICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbDogYXNzZXQuY2FjaGVDb250cm9sID8/IGRlZmF1bHRDYWNoZUNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogYXNzZXQuY29udGVudFR5cGUsXG4gICAgICAgICAgICAgICAgZGlzdHJpYnV0aW9uOiBhc3NldC5pbnZhbGlkYXRlT25DaGFuZ2UgPyB0aGlzLmNkbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBkaXN0cmlidXRpb25QYXRoczogYXNzZXQuaW52YWxpZGF0ZU9uQ2hhbmdlID8gKGFzc2V0LnBhdHRlcm4uZW5kc1dpdGgoJy5odG1sJykgPyBbJy8nLCAnLyovJywgYC8ke2Fzc2V0LnBhdHRlcm59YF0gOiBbYC8ke2Fzc2V0LnBhdHRlcm59YF0pIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGxvZ1JldGVudGlvbjogUmV0ZW50aW9uRGF5cy5PTkVfREFZLFxuICAgICAgICAgICAgICAgIG1lbW9yeUxpbWl0OiAyNTYgLy8gU29tZSBOdXh0IGFwcGxpY2F0aW9ucyBoYXZlIGEgbG90IG9mIGFzc2V0cyB0byBkZXBsb3kgd2hlcmVieSB0aGUgZnVuY3Rpb24gbWlnaHQgcnVuIG91dCBvZiBtZW1vcnlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc29sdmVzIHRoZSBob3N0ZWQgem9uZSBhdCB3aGljaCB0aGUgRE5TIHJlY29yZHMgc2hhbGwgYmUgY3JlYXRlZCB0byBhY2Nlc3MgdGhlIE51eHQgYXBwIG9uIHRoZSBpbnRlcm5ldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wc1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBmaW5kSG9zdGVkWm9uZShwcm9wczogTnV4dFNlcnZlckFwcFN0YWNrUHJvcHMpOiBJSG9zdGVkWm9uZSB7XG4gICAgICAgIGNvbnN0IGRvbWFpblBhcnRzID0gcHJvcHMuZG9tYWluLnNwbGl0KCcuJyk7XG5cbiAgICAgICAgcmV0dXJuIEhvc3RlZFpvbmUuZnJvbUhvc3RlZFpvbmVBdHRyaWJ1dGVzKHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0taG9zdGVkLXpvbmVgLCB7XG4gICAgICAgICAgICBob3N0ZWRab25lSWQ6IHByb3BzLmhvc3RlZFpvbmVJZCxcbiAgICAgICAgICAgIHpvbmVOYW1lOiBkb21haW5QYXJ0c1tkb21haW5QYXJ0cy5sZW5ndGggLSAxXSwgLy8gU3VwcG9ydCBzdWJkb21haW5zXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIEROUyByZWNvcmRzIHRvIGFjY2VzcyB0aGUgTnV4dCBhcHAgb24gdGhlIGludGVybmV0IHZpYSB0aGUgY3VzdG9tIGRvbWFpbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wc1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVEbnNSZWNvcmRzKHByb3BzOiBOdXh0U2VydmVyQXBwU3RhY2tQcm9wcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBob3N0ZWRab25lID0gdGhpcy5maW5kSG9zdGVkWm9uZShwcm9wcyk7XG4gICAgICAgIGNvbnN0IGRuc1RhcmdldCA9IFJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IENsb3VkRnJvbnRUYXJnZXQodGhpcy5jZG4pKTtcblxuICAgICAgICAvLyBDcmVhdGUgYSByZWNvcmQgZm9yIElQdjRcbiAgICAgICAgbmV3IEFSZWNvcmQodGhpcywgYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1pcHY0LXJlY29yZGAsIHtcbiAgICAgICAgICAgIHJlY29yZE5hbWU6IHByb3BzLmRvbWFpbixcbiAgICAgICAgICAgIHpvbmU6IGhvc3RlZFpvbmUsXG4gICAgICAgICAgICB0YXJnZXQ6IGRuc1RhcmdldCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQ3JlYXRlIGEgcmVjb3JkIGZvciBJUHY2XG4gICAgICAgIG5ldyBBYWFhUmVjb3JkKHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0taXB2Ni1yZWNvcmRgLCB7XG4gICAgICAgICAgICByZWNvcmROYW1lOiBwcm9wcy5kb21haW4sXG4gICAgICAgICAgICB6b25lOiBob3N0ZWRab25lLFxuICAgICAgICAgICAgdGFyZ2V0OiBkbnNUYXJnZXQsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzY2hlZHVsZWQgcnVsZSB0byBwaW5nIHRoZSBOdXh0IGFwcCBMYW1iZGEgZnVuY3Rpb24gZXZlcnkgNSBtaW51dGVzIGluIG9yZGVyIHRvIGtlZXAgaXQgd2FybVxuICAgICAqIGFuZCBzcGVlZCB1cCBpbml0aWFsIFNTUiByZXF1ZXN0cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVBcHBQaW5nUnVsZShwcm9wczogTnV4dFNlcnZlckFwcFN0YWNrUHJvcHMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmFrZUFwaUdhdGV3YXlFdmVudERhdGEgPSB7XG4gICAgICAgICAgICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgICAgICAgICAgIFwicm91dGVLZXlcIjogXCJHRVQgL3twcm94eSt9XCIsXG4gICAgICAgICAgICBcInJhd1BhdGhcIjogXCIvXCIsXG4gICAgICAgICAgICBcInJhd1F1ZXJ5U3RyaW5nXCI6IFwiXCIsXG4gICAgICAgICAgICBcImhlYWRlcnNcIjoge30sXG4gICAgICAgICAgICBcInJlcXVlc3RDb250ZXh0XCI6IHtcbiAgICAgICAgICAgICAgICBcImRvbWFpbk5hbWVcIjogcHJvcHMuZG9tYWluLFxuICAgICAgICAgICAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicGF0aFwiOiBcIi9cIixcbiAgICAgICAgICAgICAgICAgICAgXCJwcm90b2NvbFwiOiBcIkhUVFAvMS4xXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgbmV3IFJ1bGUodGhpcywgYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1waW5nZXItcnVsZWAsIHtcbiAgICAgICAgICAgIHJ1bGVOYW1lOiBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LXBpbmdlcmAsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogYFBpbmdzIHRoZSBMYW1iZGEgZnVuY3Rpb24gb2YgdGhlICR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fSBhcHAgZXZlcnkgNSBtaW51dGVzIHRvIGtlZXAgaXQgd2FybS5gLFxuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5yYXRlKER1cmF0aW9uLm1pbnV0ZXMoNSkpLFxuICAgICAgICAgICAgdGFyZ2V0czogW25ldyBMYW1iZGFGdW5jdGlvbih0aGlzLmFwcExhbWJkYUZ1bmN0aW9uLCB7XG4gICAgICAgICAgICAgICAgZXZlbnQ6IFJ1bGVUYXJnZXRJbnB1dC5mcm9tT2JqZWN0KGZha2VBcGlHYXRld2F5RXZlbnREYXRhKVxuICAgICAgICAgICAgfSldLFxuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzY2hlZHVsZWQgcnVsZSB0aGF0IHJ1bnMgZXZlcnkgdHVlc2RheSBhdCAwMzozMCBBTSBHTVQgdG8gdHJpZ2dlclxuICAgICAqIG91ciBjbGVhbnVwIExhbWJkYSBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVDbGVhbnVwVHJpZ2dlclJ1bGUoKTogdm9pZCB7XG4gICAgICAgIG5ldyBSdWxlKHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tc2NoZWR1bGVyLXJ1bGVgLCB7XG4gICAgICAgICAgICBydWxlTmFtZTogYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1zY2hlZHVsZXJgLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBUcmlnZ2VycyBhIGNsZWFudXAgb2YgdGhlIG91dGRhdGVkIHN0YXRpYyBhc3NldHMgYXQgdGhlICR7dGhpcy5zdGF0aWNBc3NldHNCdWNrZXQuYnVja2V0TmFtZX0gUzMgYnVja2V0LmAsXG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgc2NoZWR1bGU6IFNjaGVkdWxlLmNyb24oe3dlZWtEYXk6ICczJywgaG91cjogJzMnLCBtaW51dGU6ICczMCd9KSxcbiAgICAgICAgICAgIHRhcmdldHM6IFtuZXcgTGFtYmRhRnVuY3Rpb24odGhpcy5jbGVhbnVwTGFtYmRhRnVuY3Rpb24pXSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -201,7 +201,7 @@ export class NuxtServerAppStack extends Stack {
|
|
|
201
201
|
* @private
|
|
202
202
|
*/
|
|
203
203
|
private createAppLambdaFunction(props: NuxtServerAppStackProps): Function {
|
|
204
|
-
const funcName = `${this.resourceIdPrefix}-function`;
|
|
204
|
+
const funcName = `${this.resourceIdPrefix}-app-function`;
|
|
205
205
|
|
|
206
206
|
return new Function(this, funcName, {
|
|
207
207
|
functionName: funcName,
|
|
@@ -228,7 +228,7 @@ export class NuxtServerAppStack extends Stack {
|
|
|
228
228
|
* @private
|
|
229
229
|
*/
|
|
230
230
|
private createCleanupLambdaFunction(props: NuxtServerAppStackProps): Function {
|
|
231
|
-
const functionName: string = `${this.resourceIdPrefix}-function`;
|
|
231
|
+
const functionName: string = `${this.resourceIdPrefix}-cleanup-function`;
|
|
232
232
|
|
|
233
233
|
const result: Function = new Function(this, functionName, {
|
|
234
234
|
functionName: functionName,
|
|
@@ -118,7 +118,7 @@ class NuxtStaticAppStack extends aws_cdk_lib_1.Stack {
|
|
|
118
118
|
cacheControl: (_a = asset.cacheControl) !== null && _a !== void 0 ? _a : defaultCacheConfig,
|
|
119
119
|
contentType: asset.contentType,
|
|
120
120
|
distribution: asset.invalidateOnChange ? this.cdn : undefined,
|
|
121
|
-
distributionPaths: asset.invalidateOnChange ? (asset.pattern.endsWith('.html') ? ['
|
|
121
|
+
distributionPaths: asset.invalidateOnChange ? (asset.pattern.endsWith('.html') ? ['/*'] : [`/${asset.pattern}`]) : undefined,
|
|
122
122
|
logRetention: aws_logs_1.RetentionDays.ONE_DAY,
|
|
123
123
|
memoryLimit: 256 // Some Nuxt applications have a lot of assets to deploy whereby the function might run out of memory
|
|
124
124
|
});
|
|
@@ -161,4 +161,4 @@ class NuxtStaticAppStack extends aws_cdk_lib_1.Stack {
|
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
exports.NuxtStaticAppStack = NuxtStaticAppStack;
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnV4dC1zdGF0aWMtYXBwLXN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibnV4dC1zdGF0aWMtYXBwLXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUEyRDtBQUUzRCwrRUFBK0Q7QUFDL0QsK0RBV29DO0FBQ3BDLCtDQUFtRDtBQUNuRCx5REFBbUc7QUFDbkcscUVBQW1HO0FBQ25HLCtFQUE0RDtBQUM1RCx5RUFBaUU7QUFDakUsbURBQW1EO0FBQ25ELHNFQUEwRjtBQUMxRix5QkFBeUI7QUFRekI7O0dBRUc7QUFDSCxNQUFhLGtCQUFtQixTQUFRLG1CQUFLO0lBbUN6QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQThCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUEscURBQTRCLEVBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDMUQsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssdUJBQXVCO1FBQzNCLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLGdC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QUFFO1lBQ3JGLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxRQUFRLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUscUJBQXFCO1NBQ3ZFLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLGdCQUFnQixDQUFDLEtBQThCO1FBQ25ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsTUFBTSxTQUFTLEdBQUcsMEJBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxzQ0FBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV6RSwyQkFBMkI7UUFDM0IsSUFBSSxxQkFBTyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsY0FBYyxFQUFFO1lBQ3RELFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTTtZQUN4QixJQUFJLEVBQUUsVUFBVTtZQUNoQixNQUFNLEVBQUUsU0FBUztTQUNwQixDQUFDLENBQUM7UUFFSCwyQkFBMkI7UUFDM0IsSUFBSSx3QkFBVSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsY0FBYyxFQUFFO1lBQ3pELFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTTtZQUN4QixJQUFJLEVBQUUsVUFBVTtZQUNoQixNQUFNLEVBQUUsU0FBUztTQUNwQixDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0o7QUFoTUQsZ0RBZ01DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeSwgU3RhY2t9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7Q29uc3RydWN0fSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7Q2VydGlmaWNhdGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCI7XG5pbXBvcnQge1xuICAgIEFsbG93ZWRNZXRob2RzLFxuICAgIEJlaGF2aW9yT3B0aW9ucyxcbiAgICBDYWNoZWRNZXRob2RzLFxuICAgIENhY2hlUG9saWN5LFxuICAgIERpc3RyaWJ1dGlvbixcbiAgICBJT3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgT3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgUHJpY2VDbGFzcyxcbiAgICBTZWN1cml0eVBvbGljeVByb3RvY29sLFxuICAgIFZpZXdlclByb3RvY29sUG9saWN5XG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udFwiO1xuaW1wb3J0IHtCdWNrZXQsIElCdWNrZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCB7QWFhYVJlY29yZCwgQVJlY29yZCwgSG9zdGVkWm9uZSwgSUhvc3RlZFpvbmUsIFJlY29yZFRhcmdldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQge0J1Y2tldERlcGxveW1lbnQsIENhY2hlQ29udHJvbCwgU291cmNlLCBTdG9yYWdlQ2xhc3N9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczMtZGVwbG95bWVudFwiO1xuaW1wb3J0IHtTM09yaWdpbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250LW9yaWdpbnNcIjtcbmltcG9ydCB7Q2xvdWRGcm9udFRhcmdldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzLXRhcmdldHNcIjtcbmltcG9ydCB7UmV0ZW50aW9uRGF5c30gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCI7XG5pbXBvcnQge2dldE51eHRBcHBTdGF0aWNBc3NldENvbmZpZ3MsIFN0YXRpY0Fzc2V0Q29uZmlnfSBmcm9tIFwiLi4vbnV4dC1hcHAtc3RhdGljLWFzc2V0c1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQge051eHRBcHBTdGFja1Byb3BzfSBmcm9tIFwiLi4vbnV4dC1hcHAtc3RhY2stcHJvcHNcIjtcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBwcm9wcyByZXF1aXJlZCBmb3IgdGhlIHtAc2VlIE51eHRTdGF0aWNBcHBTdGFja30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnV4dFN0YXRpY0FwcFN0YWNrUHJvcHMgZXh0ZW5kcyBOdXh0QXBwU3RhY2tQcm9wcyB7fVxuXG4vKipcbiAqIENESyBzdGFjayB0byBkZXBsb3kgYSBzdGF0aWMgZ2VuZXJhdGVkIE51eHQgYXBwICh0YXJnZXQ9c3RhdGljKSBvbiBBV1Mgd2l0aCBTMyBhbmQgQ2xvdWRGcm9udC5cbiAqL1xuZXhwb3J0IGNsYXNzIE51eHRTdGF0aWNBcHBTdGFjayBleHRlbmRzIFN0YWNrIHtcblxuICAgIC8qKlxuICAgICAqIFRoZSBpZGVudGlmaWVyIHByZWZpeCBvZiB0aGUgcmVzb3VyY2VzIGNyZWF0ZWQgYnkgdGhlIHN0YWNrLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlSWRQcmVmaXg6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBpZGVudGl0eSB0byB1c2UgZm9yIGFjY2Vzc2luZyB0aGUgZGVwbG95bWVudCBhc3NldHMgb24gUzMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RuQWNjZXNzSWRlbnRpdHk6IElPcmlnaW5BY2Nlc3NJZGVudGl0eTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBTMyBidWNrZXQgd2hlcmUgdGhlIGRlcGxveW1lbnQgYXNzZXRzIGdldHMgc3RvcmVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWNBc3NldHNCdWNrZXQ6IElCdWNrZXQ7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY29uZmlncyBmb3IgdGhlIHN0YXRpYyBhc3NldHMgb2YgdGhlIE51eHQgYXBwIHRoYXQgc2hhbGwgYmUgcHVibGljbHkgYXZhaWxhYmxlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHN0YXRpY0Fzc2V0Q29uZmlnczogU3RhdGljQXNzZXRDb25maWdbXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiB0byByb3V0ZSBpbmNvbWluZyByZXF1ZXN0cyB0byB0aGUgUzMgYnVja2V0ICh3aXRoIGNhY2hpbmcpLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkbjogRGlzdHJpYnV0aW9uO1xuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE51eHRTdGF0aWNBcHBTdGFja1Byb3BzKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgICAgIHRoaXMucmVzb3VyY2VJZFByZWZpeCA9IGAke3Byb3BzLnByb2plY3R9LSR7cHJvcHMuc2VydmljZX0tJHtwcm9wcy5lbnZpcm9ubWVudH1gO1xuICAgICAgICB0aGlzLnN0YXRpY0Fzc2V0Q29uZmlncyA9IGdldE51eHRBcHBTdGF0aWNBc3NldENvbmZpZ3MocHJvcHMubnV4dENvbmZpZyk7XG4gICAgICAgIHRoaXMuY2RuQWNjZXNzSWRlbnRpdHkgPSB0aGlzLmNyZWF0ZUNkbkFjY2Vzc0lkZW50aXR5KCk7XG4gICAgICAgIHRoaXMuc3RhdGljQXNzZXRzQnVja2V0ID0gdGhpcy5jcmVhdGVTdGF0aWNBc3NldHNCdWNrZXQoKTtcbiAgICAgICAgdGhpcy5jZG4gPSB0aGlzLmNyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb24ocHJvcHMpO1xuICAgICAgICB0aGlzLmNvbmZpZ3VyZURlcGxveW1lbnRzKCk7XG4gICAgICAgIHRoaXMuY3JlYXRlRG5zUmVjb3Jkcyhwcm9wcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgaWRlbnRpdHkgdG8gYWNjZXNzIHRoZSBTMyBkZXBsb3ltZW50IGFzc2V0IGZpbGVzIHZpYSB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlQ2RuQWNjZXNzSWRlbnRpdHkoKTogSU9yaWdpbkFjY2Vzc0lkZW50aXR5IHtcbiAgICAgICAgY29uc3Qgb3JpZ2luQWNjZXNzSWRlbnRpdHlOYW1lID0gYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1jZG4tczMtYWNjZXNzYDtcbiAgICAgICAgcmV0dXJuIG5ldyBPcmlnaW5BY2Nlc3NJZGVudGl0eSh0aGlzLCBvcmlnaW5BY2Nlc3NJZGVudGl0eU5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIGJ1Y2tldCB0byBzdG9yZSB0aGUgc3RhdGljIGRlcGxveW1lbnQgYXNzZXQgZmlsZXMgb2YgdGhlIE51eHQgYXBwLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZVN0YXRpY0Fzc2V0c0J1Y2tldCgpOiBJQnVja2V0IHtcbiAgICAgICAgY29uc3QgYnVja2V0TmFtZSA9IGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tYXNzZXRzYDtcbiAgICAgICAgY29uc3QgYnVja2V0ID0gbmV3IEJ1Y2tldCh0aGlzLCBidWNrZXROYW1lLCB7XG4gICAgICAgICAgICBidWNrZXROYW1lLFxuICAgICAgICAgICAgLy8gVGhlIGJ1Y2tldCBhbmQgYWxsIG9mIGl0cyBvYmplY3RzIGNhbiBiZSBkZWxldGVkLCBiZWNhdXNlIGFsbCB0aGUgY29udGVudCBpcyBtYW5hZ2VkIGluIHRoaXMgcHJvamVjdFxuICAgICAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWUsXG4gICAgICAgICAgICAvLyBDb25maWd1cmUgUzMgYXMgYSB3ZWJzaXRlIGhvc3RcbiAgICAgICAgICAgIHB1YmxpY1JlYWRBY2Nlc3M6IHRydWUsXG4gICAgICAgICAgICB3ZWJzaXRlSW5kZXhEb2N1bWVudDogJ2luZGV4Lmh0bWwnLFxuICAgICAgICAgICAgd2Vic2l0ZUVycm9yRG9jdW1lbnQ6ICcyMDAuaHRtbCdcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYnVja2V0LmdyYW50UmVhZCh0aGlzLmNkbkFjY2Vzc0lkZW50aXR5KTtcblxuICAgICAgICByZXR1cm4gYnVja2V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIHRoYXQgcm91dGVzIGluY29taW5nIHJlcXVlc3RzIHRvIHRoZSBTMyBidWNrZXQgKHdpdGggY2FjaGluZykuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcHNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlQ2xvdWRGcm9udERpc3RyaWJ1dGlvbihwcm9wczogTnV4dFN0YXRpY0FwcFN0YWNrUHJvcHMpOiBEaXN0cmlidXRpb24ge1xuICAgICAgICBjb25zdCBjZG5OYW1lID0gYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1jZG5gO1xuXG4gICAgICAgIHJldHVybiBuZXcgRGlzdHJpYnV0aW9uKHRoaXMsIGNkbk5hbWUsIHtcbiAgICAgICAgICAgIGRvbWFpbk5hbWVzOiBbcHJvcHMuZG9tYWluXSxcbiAgICAgICAgICAgIGNvbW1lbnQ6IGNkbk5hbWUsXG4gICAgICAgICAgICBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uOiBTZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMTgsXG4gICAgICAgICAgICBjZXJ0aWZpY2F0ZTogQ2VydGlmaWNhdGUuZnJvbUNlcnRpZmljYXRlQXJuKHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tZ2xvYmFsLWNlcnRpZmljYXRlYCwgcHJvcHMuZ2xvYmFsVGxzQ2VydGlmaWNhdGVBcm4pLFxuICAgICAgICAgICAgZGVmYXVsdEJlaGF2aW9yOiB0aGlzLmNyZWF0ZU51eHRTdGF0aWNBcHBSb3V0ZUJlaGF2aW9yKCksXG4gICAgICAgICAgICBwcmljZUNsYXNzOiBQcmljZUNsYXNzLlBSSUNFX0NMQVNTXzEwMCwgLy8gVXNlIG9ubHkgTm9ydGggQW1lcmljYSBhbmQgRXVyb3BlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBiZWhhdmlvciBmb3IgdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIHRvIHJvdXRlIGluY29taW5nIHJlcXVlc3RzIHRvIHRoZSBTMyBidWNrZXQuXG4gICAgICogQWRkaXRpb25hbGx5LCB0aGlzIGF1dG9tYXRpY2FsbHkgcmVkaXJlY3RzIEhUVFAgcmVxdWVzdHMgdG8gSFRUUFMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlTnV4dFN0YXRpY0FwcFJvdXRlQmVoYXZpb3IoKTogQmVoYXZpb3JPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG9yaWdpbjogbmV3IFMzT3JpZ2luKHRoaXMuc3RhdGljQXNzZXRzQnVja2V0LCB7XG4gICAgICAgICAgICAgICAgY29ubmVjdGlvbkF0dGVtcHRzOiAyLFxuICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25UaW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMpLFxuICAgICAgICAgICAgICAgIG9yaWdpbkFjY2Vzc0lkZW50aXR5OiB0aGlzLmNkbkFjY2Vzc0lkZW50aXR5XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNvbXByZXNzOiB0cnVlLFxuICAgICAgICAgICAgYWxsb3dlZE1ldGhvZHM6IEFsbG93ZWRNZXRob2RzLkFMTE9XX0dFVF9IRUFEX09QVElPTlMsXG4gICAgICAgICAgICBjYWNoZWRNZXRob2RzOiBDYWNoZWRNZXRob2RzLkNBQ0hFX0dFVF9IRUFEX09QVElPTlMsXG4gICAgICAgICAgICBjYWNoZVBvbGljeTogQ2FjaGVQb2xpY3kuQ0FDSElOR19PUFRJTUlaRUQsXG4gICAgICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFNcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGxvYWRzIHRoZSBhc3NldHMgb2YgdGhlIE51eHQgYXBwIGFzIGRlZmluZWQgaW4ge0BzZWUgZ2V0TnV4dFN0YXRpY0FwcFN0YXRpY0Fzc2V0Q29uZmlnc30gdG8gdGhlIFMzIGJ1Y2tldC5cbiAgICAgKiBJbiBvcmRlciB0byBlbmFibGUgYSB6ZXJvLWRvd250aW1lIGRlcGxveW1lbnQsIHdlIHVzZSBhIG5ldyBzdWJkaXJlY3RvcnkgKHJldmlzaW9uKSBmb3IgZXZlcnkgZGVwbG95bWVudC5cbiAgICAgKiBUaGUgcHJldmlvdXMgdmVyc2lvbnMgYXJlIHJldGFpbmVkIHRvIGFsbG93IGNsaWVudHMgdG8gY29udGludWUgdG8gd29yayB3aXRoIGFuIG9sZGVyIHJldmlzaW9uIGJ1dCBnZXRzIGNsZWFuZWQgdXBcbiAgICAgKiBhZnRlciBhIHNwZWNpZmllZCBwZXJpb2Qgb2YgdGltZSB2aWEgdGhlIExhbWJkYSBmdW5jdGlvbiBpbiB0aGUge0BzZWUgTnV4dFN0YXRpY0FwcEFzc2V0c0NsZWFudXBTdGFja30uXG4gICAgICovXG4gICAgcHJpdmF0ZSBjb25maWd1cmVEZXBsb3ltZW50cygpOiBCdWNrZXREZXBsb3ltZW50W10ge1xuICAgICAgICBjb25zdCBkZWZhdWx0Q2FjaGVDb25maWcgPSBbXG4gICAgICAgICAgICBDYWNoZUNvbnRyb2wuc2V0UHVibGljKCksXG4gICAgICAgICAgICBDYWNoZUNvbnRyb2wubWF4QWdlKER1cmF0aW9uLmRheXMoMzY1KSksXG4gICAgICAgICAgICBDYWNoZUNvbnRyb2wuZnJvbVN0cmluZygnaW1tdXRhYmxlJyksXG4gICAgICAgIF07XG5cbiAgICAgICAgLy8gUmV0dXJucyBhIGRlcGxveW1lbnQgZm9yIGV2ZXJ5IGNvbmZpZ3VyZWQgc3RhdGljIGFzc2V0IHR5cGUgdG8gcmVzcGVjdCB0aGUgZGlmZmVyZW50IGNhY2hlIHNldHRpbmdzXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRpY0Fzc2V0Q29uZmlncy5maWx0ZXIoYXNzZXQgPT4gZnMuZXhpc3RzU3luYyhhc3NldC5zb3VyY2UpKS5tYXAoKGFzc2V0LCBhc3NldEluZGV4KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEJ1Y2tldERlcGxveW1lbnQodGhpcywgYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1hc3NldHMtZGVwbG95bWVudC0ke2Fzc2V0SW5kZXh9YCwge1xuICAgICAgICAgICAgICAgIHNvdXJjZXM6IFtTb3VyY2UuYXNzZXQoYXNzZXQuc291cmNlKV0sXG4gICAgICAgICAgICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IHRoaXMuc3RhdGljQXNzZXRzQnVja2V0LFxuICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uS2V5UHJlZml4OiBhc3NldC50YXJnZXQsXG4gICAgICAgICAgICAgICAgcHJ1bmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHN0b3JhZ2VDbGFzczogU3RvcmFnZUNsYXNzLlNUQU5EQVJELFxuICAgICAgICAgICAgICAgIGV4Y2x1ZGU6IFsnKiddLFxuICAgICAgICAgICAgICAgIGluY2x1ZGU6IFthc3NldC5wYXR0ZXJuXSxcbiAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IGFzc2V0LmNhY2hlQ29udHJvbCA/PyBkZWZhdWx0Q2FjaGVDb25maWcsXG4gICAgICAgICAgICAgICAgY29udGVudFR5cGU6IGFzc2V0LmNvbnRlbnRUeXBlLFxuICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGlvbjogYXNzZXQuaW52YWxpZGF0ZU9uQ2hhbmdlID8gdGhpcy5jZG4gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgZGlzdHJpYnV0aW9uUGF0aHM6IGFzc2V0LmludmFsaWRhdGVPbkNoYW5nZSA/IChhc3NldC5wYXR0ZXJuLmVuZHNXaXRoKCcuaHRtbCcpID8gWycvJywgJy8qLycsIGAvJHthc3NldC5wYXR0ZXJufWBdIDogW2AvJHthc3NldC5wYXR0ZXJufWBdKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBsb2dSZXRlbnRpb246IFJldGVudGlvbkRheXMuT05FX0RBWSxcbiAgICAgICAgICAgICAgICBtZW1vcnlMaW1pdDogMjU2IC8vIFNvbWUgTnV4dCBhcHBsaWNhdGlvbnMgaGF2ZSBhIGxvdCBvZiBhc3NldHMgdG8gZGVwbG95IHdoZXJlYnkgdGhlIGZ1bmN0aW9uIG1pZ2h0IHJ1biBvdXQgb2YgbWVtb3J5XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNvbHZlcyB0aGUgaG9zdGVkIHpvbmUgYXQgd2hpY2ggdGhlIEROUyByZWNvcmRzIHNoYWxsIGJlIGNyZWF0ZWQgdG8gYWNjZXNzIHRoZSBOdXh0IGFwcCBvbiB0aGUgaW50ZXJuZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcHNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZmluZEhvc3RlZFpvbmUocHJvcHM6IE51eHRTdGF0aWNBcHBTdGFja1Byb3BzKTogSUhvc3RlZFpvbmUge1xuICAgICAgICBjb25zdCBkb21haW5QYXJ0cyA9IHByb3BzLmRvbWFpbi5zcGxpdCgnLicpO1xuXG4gICAgICAgIHJldHVybiBIb3N0ZWRab25lLmZyb21Ib3N0ZWRab25lQXR0cmlidXRlcyh0aGlzLCBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWhvc3RlZC16b25lYCwge1xuICAgICAgICAgICAgaG9zdGVkWm9uZUlkOiBwcm9wcy5ob3N0ZWRab25lSWQsXG4gICAgICAgICAgICB6b25lTmFtZTogZG9tYWluUGFydHNbZG9tYWluUGFydHMubGVuZ3RoIC0gMV0sIC8vIFN1cHBvcnQgc3ViZG9tYWluc1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHRoZSBETlMgcmVjb3JkcyB0byBhY2Nlc3MgdGhlIE51eHQgYXBwIG9uIHRoZSBpbnRlcm5ldCB2aWEgdGhlIGN1c3RvbSBkb21haW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcHNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlRG5zUmVjb3Jkcyhwcm9wczogTnV4dFN0YXRpY0FwcFN0YWNrUHJvcHMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdGVkWm9uZSA9IHRoaXMuZmluZEhvc3RlZFpvbmUocHJvcHMpO1xuICAgICAgICBjb25zdCBkbnNUYXJnZXQgPSBSZWNvcmRUYXJnZXQuZnJvbUFsaWFzKG5ldyBDbG91ZEZyb250VGFyZ2V0KHRoaXMuY2RuKSk7XG5cbiAgICAgICAgLy8gQ3JlYXRlIGEgcmVjb3JkIGZvciBJUHY0XG4gICAgICAgIG5ldyBBUmVjb3JkKHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0taXB2NC1yZWNvcmRgLCB7XG4gICAgICAgICAgICByZWNvcmROYW1lOiBwcm9wcy5kb21haW4sXG4gICAgICAgICAgICB6b25lOiBob3N0ZWRab25lLFxuICAgICAgICAgICAgdGFyZ2V0OiBkbnNUYXJnZXQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIENyZWF0ZSBhIHJlY29yZCBmb3IgSVB2NlxuICAgICAgICBuZXcgQWFhYVJlY29yZCh0aGlzLCBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWlwdjYtcmVjb3JkYCwge1xuICAgICAgICAgICAgcmVjb3JkTmFtZTogcHJvcHMuZG9tYWluLFxuICAgICAgICAgICAgem9uZTogaG9zdGVkWm9uZSxcbiAgICAgICAgICAgIHRhcmdldDogZG5zVGFyZ2V0LFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnV4dC1zdGF0aWMtYXBwLXN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibnV4dC1zdGF0aWMtYXBwLXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUEyRDtBQUUzRCwrRUFBK0Q7QUFDL0QsK0RBV29DO0FBQ3BDLCtDQUFtRDtBQUNuRCx5REFBbUc7QUFDbkcscUVBQW1HO0FBQ25HLCtFQUE0RDtBQUM1RCx5RUFBaUU7QUFDakUsbURBQW1EO0FBQ25ELHNFQUEwRjtBQUMxRix5QkFBeUI7QUFRekI7O0dBRUc7QUFDSCxNQUFhLGtCQUFtQixTQUFRLG1CQUFLO0lBbUN6QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQThCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUEscURBQTRCLEVBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDMUQsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssdUJBQXVCO1FBQzNCLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLGdC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LFFBQVEsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxxQkFBcUI7U0FDdkUsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssZ0JBQWdCLENBQUMsS0FBOEI7UUFDbkQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxNQUFNLFNBQVMsR0FBRywwQkFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLHNDQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXpFLDJCQUEyQjtRQUMzQixJQUFJLHFCQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixjQUFjLEVBQUU7WUFDdEQsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3hCLElBQUksRUFBRSxVQUFVO1lBQ2hCLE1BQU0sRUFBRSxTQUFTO1NBQ3BCLENBQUMsQ0FBQztRQUVILDJCQUEyQjtRQUMzQixJQUFJLHdCQUFVLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixjQUFjLEVBQUU7WUFDekQsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3hCLElBQUksRUFBRSxVQUFVO1lBQ2hCLE1BQU0sRUFBRSxTQUFTO1NBQ3BCLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSjtBQWhNRCxnREFnTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0R1cmF0aW9uLCBSZW1vdmFsUG9saWN5LCBTdGFja30gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHtDZXJ0aWZpY2F0ZX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXJcIjtcbmltcG9ydCB7XG4gICAgQWxsb3dlZE1ldGhvZHMsXG4gICAgQmVoYXZpb3JPcHRpb25zLFxuICAgIENhY2hlZE1ldGhvZHMsXG4gICAgQ2FjaGVQb2xpY3ksXG4gICAgRGlzdHJpYnV0aW9uLFxuICAgIElPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICBPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICBQcmljZUNsYXNzLFxuICAgIFNlY3VyaXR5UG9saWN5UHJvdG9jb2wsXG4gICAgVmlld2VyUHJvdG9jb2xQb2xpY3lcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQge0J1Y2tldCwgSUJ1Y2tldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHtBYWFhUmVjb3JkLCBBUmVjb3JkLCBIb3N0ZWRab25lLCBJSG9zdGVkWm9uZSwgUmVjb3JkVGFyZ2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7QnVja2V0RGVwbG95bWVudCwgQ2FjaGVDb250cm9sLCBTb3VyY2UsIFN0b3JhZ2VDbGFzc30gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zMy1kZXBsb3ltZW50XCI7XG5pbXBvcnQge1MzT3JpZ2lufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2luc1wiO1xuaW1wb3J0IHtDbG91ZEZyb250VGFyZ2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTMtdGFyZ2V0c1wiO1xuaW1wb3J0IHtSZXRlbnRpb25EYXlzfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIjtcbmltcG9ydCB7Z2V0TnV4dEFwcFN0YXRpY0Fzc2V0Q29uZmlncywgU3RhdGljQXNzZXRDb25maWd9IGZyb20gXCIuLi9udXh0LWFwcC1zdGF0aWMtYXNzZXRzXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCB7TnV4dEFwcFN0YWNrUHJvcHN9IGZyb20gXCIuLi9udXh0LWFwcC1zdGFjay1wcm9wc1wiO1xuXG4vKipcbiAqIERlZmluZXMgdGhlIHByb3BzIHJlcXVpcmVkIGZvciB0aGUge0BzZWUgTnV4dFN0YXRpY0FwcFN0YWNrfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOdXh0U3RhdGljQXBwU3RhY2tQcm9wcyBleHRlbmRzIE51eHRBcHBTdGFja1Byb3BzIHt9XG5cbi8qKlxuICogQ0RLIHN0YWNrIHRvIGRlcGxveSBhIHN0YXRpYyBnZW5lcmF0ZWQgTnV4dCBhcHAgKHRhcmdldD1zdGF0aWMpIG9uIEFXUyB3aXRoIFMzIGFuZCBDbG91ZEZyb250LlxuICovXG5leHBvcnQgY2xhc3MgTnV4dFN0YXRpY0FwcFN0YWNrIGV4dGVuZHMgU3RhY2sge1xuXG4gICAgLyoqXG4gICAgICogVGhlIGlkZW50aWZpZXIgcHJlZml4IG9mIHRoZSByZXNvdXJjZXMgY3JlYXRlZCBieSB0aGUgc3RhY2suXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VJZFByZWZpeDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGlkZW50aXR5IHRvIHVzZSBmb3IgYWNjZXNzaW5nIHRoZSBkZXBsb3ltZW50IGFzc2V0cyBvbiBTMy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZG5BY2Nlc3NJZGVudGl0eTogSU9yaWdpbkFjY2Vzc0lkZW50aXR5O1xuXG4gICAgLyoqXG4gICAgICogVGhlIFMzIGJ1Y2tldCB3aGVyZSB0aGUgZGVwbG95bWVudCBhc3NldHMgZ2V0cyBzdG9yZWQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpY0Fzc2V0c0J1Y2tldDogSUJ1Y2tldDtcblxuICAgIC8qKlxuICAgICAqIFRoZSBjb25maWdzIGZvciB0aGUgc3RhdGljIGFzc2V0cyBvZiB0aGUgTnV4dCBhcHAgdGhhdCBzaGFsbCBiZSBwdWJsaWNseSBhdmFpbGFibGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgc3RhdGljQXNzZXRDb25maWdzOiBTdGF0aWNBc3NldENvbmZpZ1tdO1xuXG4gICAgLyoqXG4gICAgICogVGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIHRvIHJvdXRlIGluY29taW5nIHJlcXVlc3RzIHRvIHRoZSBTMyBidWNrZXQgKHdpdGggY2FjaGluZykuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RuOiBEaXN0cmlidXRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTnV4dFN0YXRpY0FwcFN0YWNrUHJvcHMpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5yZXNvdXJjZUlkUHJlZml4ID0gYCR7cHJvcHMucHJvamVjdH0tJHtwcm9wcy5zZXJ2aWNlfS0ke3Byb3BzLmVudmlyb25tZW50fWA7XG4gICAgICAgIHRoaXMuc3RhdGljQXNzZXRDb25maWdzID0gZ2V0TnV4dEFwcFN0YXRpY0Fzc2V0Q29uZmlncyhwcm9wcy5udXh0Q29uZmlnKTtcbiAgICAgICAgdGhpcy5jZG5BY2Nlc3NJZGVudGl0eSA9IHRoaXMuY3JlYXRlQ2RuQWNjZXNzSWRlbnRpdHkoKTtcbiAgICAgICAgdGhpcy5zdGF0aWNBc3NldHNCdWNrZXQgPSB0aGlzLmNyZWF0ZVN0YXRpY0Fzc2V0c0J1Y2tldCgpO1xuICAgICAgICB0aGlzLmNkbiA9IHRoaXMuY3JlYXRlQ2xvdWRGcm9udERpc3RyaWJ1dGlvbihwcm9wcyk7XG4gICAgICAgIHRoaXMuY29uZmlndXJlRGVwbG95bWVudHMoKTtcbiAgICAgICAgdGhpcy5jcmVhdGVEbnNSZWNvcmRzKHByb3BzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHRoZSBpZGVudGl0eSB0byBhY2Nlc3MgdGhlIFMzIGRlcGxveW1lbnQgYXNzZXQgZmlsZXMgdmlhIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVDZG5BY2Nlc3NJZGVudGl0eSgpOiBJT3JpZ2luQWNjZXNzSWRlbnRpdHkge1xuICAgICAgICBjb25zdCBvcmlnaW5BY2Nlc3NJZGVudGl0eU5hbWUgPSBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWNkbi1zMy1hY2Nlc3NgO1xuICAgICAgICByZXR1cm4gbmV3IE9yaWdpbkFjY2Vzc0lkZW50aXR5KHRoaXMsIG9yaWdpbkFjY2Vzc0lkZW50aXR5TmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgYnVja2V0IHRvIHN0b3JlIHRoZSBzdGF0aWMgZGVwbG95bWVudCBhc3NldCBmaWxlcyBvZiB0aGUgTnV4dCBhcHAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlU3RhdGljQXNzZXRzQnVja2V0KCk6IElCdWNrZXQge1xuICAgICAgICBjb25zdCBidWNrZXROYW1lID0gYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1hc3NldHNgO1xuICAgICAgICBjb25zdCBidWNrZXQgPSBuZXcgQnVja2V0KHRoaXMsIGJ1Y2tldE5hbWUsIHtcbiAgICAgICAgICAgIGJ1Y2tldE5hbWUsXG4gICAgICAgICAgICAvLyBUaGUgYnVja2V0IGFuZCBhbGwgb2YgaXRzIG9iamVjdHMgY2FuIGJlIGRlbGV0ZWQsIGJlY2F1c2UgYWxsIHRoZSBjb250ZW50IGlzIG1hbmFnZWQgaW4gdGhpcyBwcm9qZWN0XG4gICAgICAgICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICAgICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICAgICAgICAgIC8vIENvbmZpZ3VyZSBTMyBhcyBhIHdlYnNpdGUgaG9zdFxuICAgICAgICAgICAgcHVibGljUmVhZEFjY2VzczogdHJ1ZSxcbiAgICAgICAgICAgIHdlYnNpdGVJbmRleERvY3VtZW50OiAnaW5kZXguaHRtbCcsXG4gICAgICAgICAgICB3ZWJzaXRlRXJyb3JEb2N1bWVudDogJzIwMC5odG1sJ1xuICAgICAgICB9KTtcblxuICAgICAgICBidWNrZXQuZ3JhbnRSZWFkKHRoaXMuY2RuQWNjZXNzSWRlbnRpdHkpO1xuXG4gICAgICAgIHJldHVybiBidWNrZXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gdGhhdCByb3V0ZXMgaW5jb21pbmcgcmVxdWVzdHMgdG8gdGhlIFMzIGJ1Y2tldCAod2l0aCBjYWNoaW5nKS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wc1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVDbG91ZEZyb250RGlzdHJpYnV0aW9uKHByb3BzOiBOdXh0U3RhdGljQXBwU3RhY2tQcm9wcyk6IERpc3RyaWJ1dGlvbiB7XG4gICAgICAgIGNvbnN0IGNkbk5hbWUgPSBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWNkbmA7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBEaXN0cmlidXRpb24odGhpcywgY2RuTmFtZSwge1xuICAgICAgICAgICAgZG9tYWluTmFtZXM6IFtwcm9wcy5kb21haW5dLFxuICAgICAgICAgICAgY29tbWVudDogY2RuTmFtZSxcbiAgICAgICAgICAgIG1pbmltdW1Qcm90b2NvbFZlcnNpb246IFNlY3VyaXR5UG9saWN5UHJvdG9jb2wuVExTX1YxXzJfMjAxOCxcbiAgICAgICAgICAgIGNlcnRpZmljYXRlOiBDZXJ0aWZpY2F0ZS5mcm9tQ2VydGlmaWNhdGVBcm4odGhpcywgYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1nbG9iYWwtY2VydGlmaWNhdGVgLCBwcm9wcy5nbG9iYWxUbHNDZXJ0aWZpY2F0ZUFybiksXG4gICAgICAgICAgICBkZWZhdWx0QmVoYXZpb3I6IHRoaXMuY3JlYXRlTnV4dFN0YXRpY0FwcFJvdXRlQmVoYXZpb3IoKSxcbiAgICAgICAgICAgIHByaWNlQ2xhc3M6IFByaWNlQ2xhc3MuUFJJQ0VfQ0xBU1NfMTAwLCAvLyBVc2Ugb25seSBOb3J0aCBBbWVyaWNhIGFuZCBFdXJvcGVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGJlaGF2aW9yIGZvciB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gdG8gcm91dGUgaW5jb21pbmcgcmVxdWVzdHMgdG8gdGhlIFMzIGJ1Y2tldC5cbiAgICAgKiBBZGRpdGlvbmFsbHksIHRoaXMgYXV0b21hdGljYWxseSByZWRpcmVjdHMgSFRUUCByZXF1ZXN0cyB0byBIVFRQUy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVOdXh0U3RhdGljQXBwUm91dGVCZWhhdmlvcigpOiBCZWhhdmlvck9wdGlvbnMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgb3JpZ2luOiBuZXcgUzNPcmlnaW4odGhpcy5zdGF0aWNBc3NldHNCdWNrZXQsIHtcbiAgICAgICAgICAgICAgICBjb25uZWN0aW9uQXR0ZW1wdHM6IDIsXG4gICAgICAgICAgICAgICAgY29ubmVjdGlvblRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMyksXG4gICAgICAgICAgICAgICAgb3JpZ2luQWNjZXNzSWRlbnRpdHk6IHRoaXMuY2RuQWNjZXNzSWRlbnRpdHlcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY29tcHJlc3M6IHRydWUsXG4gICAgICAgICAgICBhbGxvd2VkTWV0aG9kczogQWxsb3dlZE1ldGhvZHMuQUxMT1dfR0VUX0hFQURfT1BUSU9OUyxcbiAgICAgICAgICAgIGNhY2hlZE1ldGhvZHM6IENhY2hlZE1ldGhvZHMuQ0FDSEVfR0VUX0hFQURfT1BUSU9OUyxcbiAgICAgICAgICAgIGNhY2hlUG9saWN5OiBDYWNoZVBvbGljeS5DQUNISU5HX09QVElNSVpFRCxcbiAgICAgICAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQU1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwbG9hZHMgdGhlIGFzc2V0cyBvZiB0aGUgTnV4dCBhcHAgYXMgZGVmaW5lZCBpbiB7QHNlZSBnZXROdXh0U3RhdGljQXBwU3RhdGljQXNzZXRDb25maWdzfSB0byB0aGUgUzMgYnVja2V0LlxuICAgICAqIEluIG9yZGVyIHRvIGVuYWJsZSBhIHplcm8tZG93bnRpbWUgZGVwbG95bWVudCwgd2UgdXNlIGEgbmV3IHN1YmRpcmVjdG9yeSAocmV2aXNpb24pIGZvciBldmVyeSBkZXBsb3ltZW50LlxuICAgICAqIFRoZSBwcmV2aW91cyB2ZXJzaW9ucyBhcmUgcmV0YWluZWQgdG8gYWxsb3cgY2xpZW50cyB0byBjb250aW51ZSB0byB3b3JrIHdpdGggYW4gb2xkZXIgcmV2aXNpb24gYnV0IGdldHMgY2xlYW5lZCB1cFxuICAgICAqIGFmdGVyIGEgc3BlY2lmaWVkIHBlcmlvZCBvZiB0aW1lIHZpYSB0aGUgTGFtYmRhIGZ1bmN0aW9uIGluIHRoZSB7QHNlZSBOdXh0U3RhdGljQXBwQXNzZXRzQ2xlYW51cFN0YWNrfS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGNvbmZpZ3VyZURlcGxveW1lbnRzKCk6IEJ1Y2tldERlcGxveW1lbnRbXSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRDYWNoZUNvbmZpZyA9IFtcbiAgICAgICAgICAgIENhY2hlQ29udHJvbC5zZXRQdWJsaWMoKSxcbiAgICAgICAgICAgIENhY2hlQ29udHJvbC5tYXhBZ2UoRHVyYXRpb24uZGF5cygzNjUpKSxcbiAgICAgICAgICAgIENhY2hlQ29udHJvbC5mcm9tU3RyaW5nKCdpbW11dGFibGUnKSxcbiAgICAgICAgXTtcblxuICAgICAgICAvLyBSZXR1cm5zIGEgZGVwbG95bWVudCBmb3IgZXZlcnkgY29uZmlndXJlZCBzdGF0aWMgYXNzZXQgdHlwZSB0byByZXNwZWN0IHRoZSBkaWZmZXJlbnQgY2FjaGUgc2V0dGluZ3NcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGljQXNzZXRDb25maWdzLmZpbHRlcihhc3NldCA9PiBmcy5leGlzdHNTeW5jKGFzc2V0LnNvdXJjZSkpLm1hcCgoYXNzZXQsIGFzc2V0SW5kZXgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQnVja2V0RGVwbG95bWVudCh0aGlzLCBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWFzc2V0cy1kZXBsb3ltZW50LSR7YXNzZXRJbmRleH1gLCB7XG4gICAgICAgICAgICAgICAgc291cmNlczogW1NvdXJjZS5hc3NldChhc3NldC5zb3VyY2UpXSxcbiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdGhpcy5zdGF0aWNBc3NldHNCdWNrZXQsXG4gICAgICAgICAgICAgICAgZGVzdGluYXRpb25LZXlQcmVmaXg6IGFzc2V0LnRhcmdldCxcbiAgICAgICAgICAgICAgICBwcnVuZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgc3RvcmFnZUNsYXNzOiBTdG9yYWdlQ2xhc3MuU1RBTkRBUkQsXG4gICAgICAgICAgICAgICAgZXhjbHVkZTogWycqJ10sXG4gICAgICAgICAgICAgICAgaW5jbHVkZTogW2Fzc2V0LnBhdHRlcm5dLFxuICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbDogYXNzZXQuY2FjaGVDb250cm9sID8/IGRlZmF1bHRDYWNoZUNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogYXNzZXQuY29udGVudFR5cGUsXG4gICAgICAgICAgICAgICAgZGlzdHJpYnV0aW9uOiBhc3NldC5pbnZhbGlkYXRlT25DaGFuZ2UgPyB0aGlzLmNkbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBkaXN0cmlidXRpb25QYXRoczogYXNzZXQuaW52YWxpZGF0ZU9uQ2hhbmdlID8gKGFzc2V0LnBhdHRlcm4uZW5kc1dpdGgoJy5odG1sJykgPyBbJy8qJ10gOiBbYC8ke2Fzc2V0LnBhdHRlcm59YF0pIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGxvZ1JldGVudGlvbjogUmV0ZW50aW9uRGF5cy5PTkVfREFZLFxuICAgICAgICAgICAgICAgIG1lbW9yeUxpbWl0OiAyNTYgLy8gU29tZSBOdXh0IGFwcGxpY2F0aW9ucyBoYXZlIGEgbG90IG9mIGFzc2V0cyB0byBkZXBsb3kgd2hlcmVieSB0aGUgZnVuY3Rpb24gbWlnaHQgcnVuIG91dCBvZiBtZW1vcnlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc29sdmVzIHRoZSBob3N0ZWQgem9uZSBhdCB3aGljaCB0aGUgRE5TIHJlY29yZHMgc2hhbGwgYmUgY3JlYXRlZCB0byBhY2Nlc3MgdGhlIE51eHQgYXBwIG9uIHRoZSBpbnRlcm5ldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wc1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBmaW5kSG9zdGVkWm9uZShwcm9wczogTnV4dFN0YXRpY0FwcFN0YWNrUHJvcHMpOiBJSG9zdGVkWm9uZSB7XG4gICAgICAgIGNvbnN0IGRvbWFpblBhcnRzID0gcHJvcHMuZG9tYWluLnNwbGl0KCcuJyk7XG5cbiAgICAgICAgcmV0dXJuIEhvc3RlZFpvbmUuZnJvbUhvc3RlZFpvbmVBdHRyaWJ1dGVzKHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0taG9zdGVkLXpvbmVgLCB7XG4gICAgICAgICAgICBob3N0ZWRab25lSWQ6IHByb3BzLmhvc3RlZFpvbmVJZCxcbiAgICAgICAgICAgIHpvbmVOYW1lOiBkb21haW5QYXJ0c1tkb21haW5QYXJ0cy5sZW5ndGggLSAxXSwgLy8gU3VwcG9ydCBzdWJkb21haW5zXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIEROUyByZWNvcmRzIHRvIGFjY2VzcyB0aGUgTnV4dCBhcHAgb24gdGhlIGludGVybmV0IHZpYSB0aGUgY3VzdG9tIGRvbWFpbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wc1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVEbnNSZWNvcmRzKHByb3BzOiBOdXh0U3RhdGljQXBwU3RhY2tQcm9wcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBob3N0ZWRab25lID0gdGhpcy5maW5kSG9zdGVkWm9uZShwcm9wcyk7XG4gICAgICAgIGNvbnN0IGRuc1RhcmdldCA9IFJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IENsb3VkRnJvbnRUYXJnZXQodGhpcy5jZG4pKTtcblxuICAgICAgICAvLyBDcmVhdGUgYSByZWNvcmQgZm9yIElQdjRcbiAgICAgICAgbmV3IEFSZWNvcmQodGhpcywgYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1pcHY0LXJlY29yZGAsIHtcbiAgICAgICAgICAgIHJlY29yZE5hbWU6IHByb3BzLmRvbWFpbixcbiAgICAgICAgICAgIHpvbmU6IGhvc3RlZFpvbmUsXG4gICAgICAgICAgICB0YXJnZXQ6IGRuc1RhcmdldCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQ3JlYXRlIGEgcmVjb3JkIGZvciBJUHY2XG4gICAgICAgIG5ldyBBYWFhUmVjb3JkKHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0taXB2Ni1yZWNvcmRgLCB7XG4gICAgICAgICAgICByZWNvcmROYW1lOiBwcm9wcy5kb21haW4sXG4gICAgICAgICAgICB6b25lOiBob3N0ZWRab25lLFxuICAgICAgICAgICAgdGFyZ2V0OiBkbnNUYXJnZXQsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -177,7 +177,7 @@ export class NuxtStaticAppStack extends Stack {
|
|
|
177
177
|
cacheControl: asset.cacheControl ?? defaultCacheConfig,
|
|
178
178
|
contentType: asset.contentType,
|
|
179
179
|
distribution: asset.invalidateOnChange ? this.cdn : undefined,
|
|
180
|
-
distributionPaths: asset.invalidateOnChange ? (asset.pattern.endsWith('.html') ? ['
|
|
180
|
+
distributionPaths: asset.invalidateOnChange ? (asset.pattern.endsWith('.html') ? ['/*'] : [`/${asset.pattern}`]) : undefined,
|
|
181
181
|
logRetention: RetentionDays.ONE_DAY,
|
|
182
182
|
memoryLimit: 256 // Some Nuxt applications have a lot of assets to deploy whereby the function might run out of memory
|
|
183
183
|
})
|