projen-pipelines 0.0.71 → 0.0.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +545 -36
- package/API.md +478 -0
- package/README.md +58 -12
- package/lib/awscdk/base.d.ts +1 -1
- package/lib/awscdk/base.js +2 -2
- package/lib/awscdk/bash.js +1 -1
- package/lib/awscdk/github.js +29 -36
- package/lib/awscdk/gitlab.js +1 -1
- package/lib/engines/github.d.ts +15 -0
- package/lib/engines/github.js +45 -0
- package/lib/engines/index.d.ts +1 -0
- package/lib/engines/index.js +18 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/steps/artifact-steps.js +7 -1
- package/lib/steps/aws-assume-role.step.js +9 -1
- package/lib/steps/index.d.ts +3 -0
- package/lib/steps/index.js +4 -1
- package/lib/steps/registries.d.ts +15 -0
- package/lib/steps/registries.js +27 -0
- package/lib/steps/step.d.ts +3 -1
- package/lib/steps/step.js +3 -3
- package/package.json +1 -1
package/lib/awscdk/base.js
CHANGED
|
@@ -323,5 +323,5 @@ ${appCode}
|
|
|
323
323
|
}
|
|
324
324
|
exports.CDKPipeline = CDKPipeline;
|
|
325
325
|
_a = JSII_RTTI_SYMBOL_1;
|
|
326
|
-
CDKPipeline[_a] = { fqn: "projen-pipelines.CDKPipeline", version: "0.0.
|
|
327
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFxRDtBQUNyRCw4Q0FBa0Q7QUFDbEQsc0RBQTJEO0FBNkkzRDs7O0dBR0c7QUFDSCxNQUFzQixXQUFZLFNBQVEsa0JBQVM7SUFLakQsWUFBc0IsR0FBK0IsRUFBVSxXQUErQjtRQUM1RixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFEUyxRQUFHLEdBQUgsR0FBRyxDQUE0QjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUc1RiwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQ2pCLHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIsWUFBWSxDQUNiLENBQUM7UUFDRixvQkFBb0I7UUFDcEIsS0FBSztRQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLFdBQVcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsQ0FBQywrQ0FBK0M7UUFFbkcsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxXQUFXLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxXQUFXLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRS9GLDZEQUE2RDtRQUM3RCxJ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QUFTLENBQUMsTUFBTSxTQUFTLE9BQU8sRUFBRTtTQUMvRCxDQUFDLENBQUM7UUFDSCxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDMUMsSUFBSSxFQUFFLHlDQUF5QyxLQUFLLENBQUMsSUFBSSwyQkFBMkIsT0FBTyxFQUFFO2FBQzlGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRVMsa0JBQWtCLENBQUMsS0FBYTtRQUN4QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUMzSSxDQUFDOztBQTlWSCxrQ0ErVkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFRleHRGaWxlLCBhd3NjZGsgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgUFJPSkVOX01BUktFUiB9IGZyb20gJ3Byb2plbi9saWIvY29tbW9uJztcbmltcG9ydCB7IE5vZGVQYWNrYWdlTWFuYWdlciB9IGZyb20gJ3Byb2plbi9saWIvamF2YXNjcmlwdCc7XG5pbXBvcnQgeyBQaXBlbGluZUVuZ2luZSB9IGZyb20gJy4uL2VuZ2luZSc7XG5pbXBvcnQgeyBQaXBlbGluZVN0ZXAgfSBmcm9tICcuLi9zdGVwcyc7XG5cbi8qKlxuICogVGhlIEVudmlyb25tZW50IGludGVyZmFjZSBpcyBkZXNpZ25lZCB0byBob2xkIEFXUyByZWxhdGVkIGluZm9ybWF0aW9uXG4gKiBmb3IgYSBzcGVjaWZpYyBkZXBsb3ltZW50IGVudmlyb25tZW50IHdpdGhpbiB5b3VyIGluZnJhc3RydWN0dXJlLlxuICogRWFjaCBlbnZpcm9ubWVudCByZXF1aXJlcyBhIHNwZWNpZmljIGFjY291bnQgYW5kIHJlZ2lvbiBmb3IgaXRzIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudCB7XG4gIC8qKlxuICAgKiBUaGUgQVdTIEFjY291bnQgSUQgYXNzb2NpYXRlZCB3aXRoIHRoZSBlbnZpcm9ubWVudC4gSXQncyBpbXBvcnRhbnQgYmVjYXVzZVxuICAgKiBkaWZmZXJlbnQgc2VydmljZXMgb3IgZmVhdHVyZXMgY291bGQgaGF2ZSBkaXN0aW5jdCBwZXJtaXNzaW9ucyBhbmQgc2V0dGluZ3NcbiAgICogaW4gZGlmZmVyZW50IGFjY291bnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIFJlZ2lvbiBmb3IgdGhlIGVudmlyb25tZW50LiBUaGlzIGRldGVybWluZXMgd2hlcmUgeW91ciByZXNvdXJjZXNcbiAgICogYXJlIGNyZWF0ZWQgYW5kIHdoZXJlIHlvdXIgYXBwbGljYXRpb24gd2lsbCBydW4uIEl0IGNhbiBhZmZlY3QgbGF0ZW5jeSxcbiAgICogYXZhaWxhYmlsaXR5LCBhbmQgcHJpY2luZy5cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xufVxuXG4vLyAvKipcbi8vICAqIERlc2NyaWJlcyB0aGUgdHlwZSBvZiBwaXBlbGluZSB0aGF0IHdpbGwgYmUgY3JlYXRlZFxuLy8gICovXG4vLyBleHBvcnQgZW51bSBEZXBsb3ltZW50VHlwZSB7XG4vLyAgIC8qKiBEZXBsb3kgZXZlcnkgY29tbWl0IGFzIGZhciBhcyBwb3NzaWJsZTsgaG9wZWZ1bGx5IGludG8gcHJvZHVjdGlvbiAqL1xuLy8gICBDT05USU5VT1VTX0RFUExPWU1FTlQsXG4vLyAgIC8qKiBCdWlsZCBldmVyeSBjb21taXQgYW5kIHByZXBhcmUgYWxsIGFzc2V0cyBmb3IgYSBsYXRlciBkZXBsb3ltZW50ICovXG4vLyAgIENPTlRJTlVPVVNfREVMSVZFUlksXG4vLyB9XG5cbi8qKlxuICogT3B0aW9ucyBmb3Igc3RhZ2VzIHRoYXQgYXJlIHBhcnQgb2YgdGhlIHBpcGVsaW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95bWVudFN0YWdlIGV4dGVuZHMgTmFtZWRTdGFnZU9wdGlvbnMge1xuICByZWFkb25seSBtYW51YWxBcHByb3ZhbD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Igc3RhZ2VzIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIHRoZSBwaXBlbGluZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluZGVwZW5kZW50U3RhZ2UgZXh0ZW5kcyBOYW1lZFN0YWdlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGlzIHNwZWNpZmllcyB3aGV0aGVyIHRoZSBzdGFnZSBzaG91bGQgYmUgZGVwbG95ZWQgb24gcHVzaFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95T25QdXNoPzogYm9vbGVhbjtcblxuICByZWFkb25seSBwb3N0RGlmZlN0ZXBzPzogUGlwZWxpbmVTdGVwW107XG4gIHJlYWRvbmx5IHBvc3REZXBsb3lTdGVwcz86IFBpcGVsaW5lU3RlcFtdO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGEgQ0RLIHN0YWdlIHdpdGggYSBuYW1lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmFtZWRTdGFnZU9wdGlvbnMgZXh0ZW5kcyBTdGFnZU9wdGlvbnMge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdhdGNoYWJsZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYSBDREsgc3RhZ2UgbGlrZSB0aGUgdGFyZ2V0IGVudmlyb25tZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VPcHRpb25zIHtcbiAgcmVhZG9ubHkgZW52OiBFbnZpcm9ubWVudDtcbn1cblxuLyoqXG4gKiBUaGUgQ0RLUGlwZWxpbmVPcHRpb25zIGludGVyZmFjZSBpcyBkZXNpZ25lZCB0byBwcm92aWRlIGNvbmZpZ3VyYXRpb25cbiAqIG9wdGlvbnMgZm9yIGEgQ0RLIChDbG91ZCBEZXZlbG9wbWVudCBLaXQpIHBpcGVsaW5lLiBJdCBhbGxvd3MgdGhlIGRlZmluaXRpb25cbiAqIG9mIHNldHRpbmdzIHN1Y2ggYXMgdGhlIHN0YWNrIHByZWZpeCBhbmQgcGFja2FnZSBuYW1lc3BhY2UgdG8gYmUgdXNlZCBpbiB0aGVcbiAqIEFXUyBzdGFjaywgYWxvbmcgd2l0aCB0aGUgZW52aXJvbm1lbnRzIGNvbmZpZ3VyYXRpb24gdG8gYmUgdXNlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDREtQaXBlbGluZU9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiB0aGUgbmFtZSBvZiB0aGUgYnJhbmNoIHRvIGRlcGxveSBmcm9tXG4gICAqIEBkZWZhdWx0IG1haW5cbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoaXMgZmllbGQgaXMgdXNlZCB0byBkZWZpbmUgYSBwcmVmaXggZm9yIHRoZSBBV1MgU3RhY2sgcmVzb3VyY2VzIGNyZWF0ZWRcbiAgICogZHVyaW5nIHRoZSBwaXBlbGluZSdzIG9wZXJhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgcHJvamVjdCBuYW1lXG4gICAqL1xuICByZWFkb25seSBzdGFja1ByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgc2V0IHRvIHRydWUgYWxsIENESyBhY3Rpb25zIHdpbGwgYWxzbyBpbmNsdWRlIDxzdGFja05hbWU+LyogdG8gZGVwbG95L2RpZmYvZGVzdHJveSBzdWIgc3RhY2tzIG9mIHRoZSBtYWluIHN0YWNrLlxuICAgKiBZb3UgY2FuIHVzZSB0aGlzIHRvIGRlcGxveSBDRGsgYXBwbGljYXRpb25zIGNvbnRhaW5pbmcgbXVsdGlwbGUgc3RhY2tzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95U3ViU3RhY2tzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhpcyBmaWVsZCBkZXRlcm1pbmVzIHRoZSBOUE0gbmFtZXNwYWNlIHRvIGJlIHVzZWQgd2hlbiBwYWNrYWdpbmcgQ0RLIGNsb3VkXG4gICAqIGFzc2VtYmxpZXMuIEEgbmFtZXNwYWNlIGhlbHBzIGdyb3VwIHJlbGF0ZWQgcmVzb3VyY2VzIHRvZ2V0aGVyLCBwcm92aWRpbmdcbiAgICogYmV0dGVyIG9yZ2FuaXphdGlvbiBhbmQgZWFzZSBvZiBtYW5hZ2VtZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgcGtnTmFtZXNwYWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoaXMgZmllbGQgc3BlY2lmaWVzIGEgbGlzdCBvZiBzdGFnZXMgdGhhdCBzaG91bGQgYmUgZGVwbG95ZWQgdXNpbmcgYSBDSS9DRCBwaXBlbGluZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2VzOiBEZXBsb3ltZW50U3RhZ2VbXTtcblxuICAvKiogVGhpcyBzcGVjaWZpZXMgZGV0YWlscyBmb3IgaW5kZXBlbmRlbnQgc3RhZ2VzICovXG4gIHJlYWRvbmx5IGluZGVwZW5kZW50U3RhZ2VzPzogSW5kZXBlbmRlbnRTdGFnZVtdO1xuXG4gIC8qKiBUaGlzIHNwZWNpZmllcyBkZXRhaWxzIGZvciBhIHBlcnNvbmFsIHN0YWdlICovXG4gIHJlYWRvbmx5IHBlcnNvbmFsU3RhZ2U/OiBTdGFnZU9wdGlvbnM7XG5cbiAgLyoqIFRoaXMgc3BlY2lmaWVzIGRldGFpbHMgZm9yIGZlYXR1cmUgc3RhZ2VzICovXG4gIHJlYWRvbmx5IGZlYXR1cmVTdGFnZXM/OiBTdGFnZU9wdGlvbnM7XG5cbiAgLy8gLyoqXG4gIC8vICAqIFRoaXMgZmllbGQgc3BlY2lmaWVzIHRoZSB0eXBlIG9mIHBpcGVsaW5lIHRvIGNyZWF0ZS4gSWYgc2V0IHRvIENPTlRJTlVPVVNfREVQTE9ZTUVOVCxcbiAgLy8gICogZXZlcnkgY29tbWl0IGlzIGRlcGxveWVkIGFzIGZhciBhcyBwb3NzaWJsZSwgaG9wZWZ1bGx5IGludG8gcHJvZHVjdGlvbi4gSWYgc2V0IHRvXG4gIC8vICAqIENPTlRJTlVPVVNfREVMSVZFUlksIGV2ZXJ5IGNvbW1pdCBpcyBidWlsdCBhbmQgYWxsIGFzc2V0cyBhcmUgcHJlcGFyZWQgZm9yIGEgbGF0ZXIgZGVwbG95bWVudC5cbiAgLy8gICpcbiAgLy8gICogQGRlZmF1bHQgQ09OVElOVU9VU19ERUxJVkVSWVxuICAvLyAgKi9cbiAgLy8gcmVhZG9ubHkgZGVwbG95bWVudFR5cGU/OiBEZXBsb3ltZW50VHlwZTtcblxuICByZWFkb25seSBwcmVJbnN0YWxsQ29tbWFuZHM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgcHJlU3ludGhDb21tYW5kcz86IHN0cmluZ1tdO1xuICByZWFkb25seSBwb3N0U3ludGhDb21tYW5kcz86IHN0cmluZ1tdO1xuXG4gIHJlYWRvbmx5IHByZUluc3RhbGxTdGVwcz86IFBpcGVsaW5lU3RlcFtdO1xuICByZWFkb25seSBwcmVTeW50aFN0ZXBzPzogUGlwZWxpbmVTdGVwW107XG4gIHJlYWRvbmx5IHBvc3RTeW50aFN0ZXBzPzogUGlwZWxpbmVTdGVwW107XG59XG5cbi8qKlxuICogVGhlIENES1BpcGVsaW5lIGNsYXNzIGV4dGVuZHMgdGhlIENvbXBvbmVudCBjbGFzcyBhbmQgc2V0cyB1cCB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3VyYXRpb24gZm9yIGRlcGxveWluZyBBV1MgQ0RLIChDbG91ZCBEZXZlbG9wbWVudCBLaXQpIGFwcGxpY2F0aW9ucyBhY3Jvc3MgbXVsdGlwbGUgc3RhZ2VzLlxuICogSXQgYWxzbyBtYW5hZ2VzIHRhc2tzIHN1Y2ggYXMgcHVibGlzaGluZyBDREsgYXNzZXRzLCBidW1waW5nIHZlcnNpb24gYmFzZWQgb24gZ2l0IHRhZ3MsIGFuZCBjbGVhbmluZyB1cCBjb25mbGljdGluZyB0YXNrcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENES1BpcGVsaW5lIGV4dGVuZHMgQ29tcG9uZW50IHtcblxuICBwdWJsaWMgcmVhZG9ubHkgc3RhY2tQcmVmaXg6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGJyYW5jaE5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYXBwOiBhd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCwgcHJpdmF0ZSBiYXNlT3B0aW9uczogQ0RLUGlwZWxpbmVPcHRpb25zKSB7XG4gICAgc3VwZXIoYXBwKTtcblxuICAgIC8vIEFkZCBkZXZlbG9wbWVudCBkZXBlbmRlbmNpZXNcbiAgICB0aGlzLmFwcC5hZGREZXZEZXBzKFxuICAgICAgJ0B0eXBlcy9zdGFuZGFyZC12ZXJzaW9uJyxcbiAgICAgICdzdGFuZGFyZC12ZXJzaW9uJyxcbiAgICAgICdjZGstYXNzZXRzJyxcbiAgICApO1xuICAgIC8vIHRoaXMuYXBwLmFkZERlcHMoXG4gICAgLy8gKTtcbiAgICB0aGlzLnByb2plY3QuZ2l0aWdub3JlLmV4Y2x1ZGUoJy9jZGstb3V0cHV0cy0qLmpzb24nKTtcblxuICAgIHRoaXMuc3RhY2tQcmVmaXggPSBiYXNlT3B0aW9ucy5zdGFja1ByZWZpeCA/PyBhcHAubmFtZTtcbiAgICB0aGlzLmJyYW5jaE5hbWUgPSBiYXNlT3B0aW9ucy5icmFuY2hOYW1lID8/ICdtYWluJzsgLy8gVE9ETyB1c2UgZGVmYXVsdFJlbGVhc2VCcmFuY2ggb2YgTm9kZVByb2plY3RcblxuICAgIC8vIFJlbW92ZXMgdGhlIGNvbXBpbGVkIGNsb3VkIGFzc2VtYmx5IGJlZm9yZSBlYWNoIHN5bnRoXG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzLnRyeUZpbmQoJ3N5bnRoJyk/LnByZXBlbmRFeGVjKGBybSAtcmYgJHt0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0fWApO1xuICAgIHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKCdzeW50aDpzaWxlbnQnKT8ucHJlcGVuZEV4ZWMoYHJtIC1yZiAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9YCk7XG5cbiAgICAvLyBSZW1vdmUgdGFza3MgdGhhdCBtaWdodCBjb25mbGljdCB3aXRoIHRoZSBwaXBlbGluZSBwcm9jZXNzXG4gICAgdGhpcy5wcm9qZWN0LnJlbW92ZVRhc2soJ2RlcGxveScpO1xuICAgIHRoaXMucHJvamVjdC5yZW1vdmVUYXNrKCdkaWZmJyk7XG4gICAgdGhpcy5wcm9qZWN0LnJlbW92ZVRhc2soJ2Rlc3Ryb3knKTtcbiAgICB0aGlzLnByb2plY3QucmVtb3ZlVGFzaygnd2F0Y2gnKTtcblxuICAgIC8vIENyZWF0ZXMgZGlmZmVyZW50IGRlcGxveW1lbnQgc3RhZ2VzXG4gICAgaWYgKGJhc2VPcHRpb25zLnBlcnNvbmFsU3RhZ2UpIHtcbiAgICAgIHRoaXMuY3JlYXRlUGVyc29uYWxTdGFnZSgpO1xuICAgIH1cbiAgICBpZiAoYmFzZU9wdGlvbnMuZmVhdHVyZVN0YWdlcykge1xuICAgICAgdGhpcy5jcmVhdGVGZWF0dXJlU3RhZ2UoKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBzdGFnZSBvZiBiYXNlT3B0aW9ucy5zdGFnZXMpIHtcbiAgICAgIHRoaXMuY3JlYXRlUGlwZWxpbmVTdGFnZShzdGFnZSk7XG4gICAgfVxuICAgIGZvciAoY29uc3Qgc3RhZ2Ugb2YgKGJhc2VPcHRpb25zLmluZGVwZW5kZW50U3RhZ2VzID8/IFtdKSkge1xuICAgICAgdGhpcy5jcmVhdGVJbmRlcGVuZGVudFN0YWdlKHN0YWdlKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGVzIHRhc2tzIHRvIGhhbmRsZSB0aGUgcmVsZWFzZSBwcm9jZXNzXG4gICAgdGhpcy5jcmVhdGVSZWxlYXNlVGFza3MoKTtcblxuICAgIC8vIENyZWF0ZXMgYSBzcGVjaWFsaXplZCBDREsgQXBwIGNsYXNzXG4gICAgdGhpcy5jcmVhdGVBcHBsaWNhdGlvbkVudHJ5cG9pbnQoKTtcblxuICB9XG5cbiAgcHVibGljIGFic3RyYWN0IGVuZ2luZVR5cGUoKTogUGlwZWxpbmVFbmdpbmU7XG5cbiAgcHJvdGVjdGVkIHJlbmRlckluc3RhbGxDb21tYW5kcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLih0aGlzLmJhc2VPcHRpb25zLnByZUluc3RhbGxDb21tYW5kcyA/PyBbXSksXG4gICAgICBgbnB4IHByb2plbiAke3RoaXMuYXBwLnBhY2thZ2UuaW5zdGFsbENpVGFzay5uYW1lfWAsXG4gICAgXTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJJbnN0YWxsUGFja2FnZUNvbW1hbmRzKHBhY2thZ2VOYW1lOiBzdHJpbmcsIHJ1blByZUluc3RhbGxDb21tYW5kczogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGNvbW1hbmRzID0gcnVuUHJlSW5zdGFsbENvbW1hbmRzID8gdGhpcy5iYXNlT3B0aW9ucy5wcmVJbnN0YWxsQ29tbWFuZHMgPz8gW10gOiBbXTtcblxuICAgIHN3aXRjaCAodGhpcy5hcHAucGFja2FnZS5wYWNrYWdlTWFuYWdlcikge1xuICAgICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTjpcbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLllBUk4yOlxuICAgICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTl9CRVJSWTpcbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLllBUk5fQ0xBU1NJQzpcbiAgICAgICAgY29tbWFuZHMucHVzaChgeWFybiBhZGQgJHtwYWNrYWdlTmFtZX1gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5OUE06XG4gICAgICAgIGNvbW1hbmRzLnB1c2goYG5wbSBpbnN0YWxsICR7cGFja2FnZU5hbWV9YCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBpbnN0YWxsIHNjcmlwdHMgZm9yIHBhY2thZ2VNYW5hZ2VyOiAnICsgdGhpcy5hcHAucGFja2FnZS5wYWNrYWdlTWFuYWdlcik7XG4gICAgfVxuICAgIHJldHVybiBjb21tYW5kcztcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJTeW50aENvbW1hbmRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uKHRoaXMuYmFzZU9wdGlvbnMucHJlU3ludGhDb21tYW5kcyA/PyBbXSksXG4gICAgICAnbnB4IHByb2plbiBidWlsZCcsXG4gICAgICAuLi4odGhpcy5iYXNlT3B0aW9ucy5wb3N0U3ludGhDb21tYW5kcyA/PyBbXSksXG4gICAgXTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJBc3NldFVwbG9hZENvbW1hbmRzKHN0YWdlTmFtZT86IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAgYG5weCBwcm9qZW4gcHVibGlzaDphc3NldHMke3N0YWdlTmFtZSA/IGA6JHtzdGFnZU5hbWV9YCA6ICcnfWAsXG4gICAgXTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJBc3NlbWJseVVwbG9hZENvbW1hbmRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ25weCBwcm9qZW4gYnVtcCcsXG4gICAgICAnbnB4IHByb2plbiByZWxlYXNlOnB1c2gtYXNzZW1ibHknLFxuICAgIF07XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyRGVwbG95Q29tbWFuZHMoc3RhZ2VOYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGBucHggcHJvamVuIGRlcGxveToke3N0YWdlTmFtZX1gLFxuICAgIF07XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyRGlmZkNvbW1hbmRzKHN0YWdlTmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbXG4gICAgICBgbnB4IHByb2plbiBkaWZmOiR7c3RhZ2VOYW1lfWAsXG4gICAgXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVTYWZlU3RhZ2VOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gUmVtb3ZlIG5vbi1hbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhbmQgc3BsaXQgaW50byB3b3Jkc1xuICAgIGNvbnN0IHdvcmRzID0gbmFtZS5yZXBsYWNlKC9bXmEtekEtWjAtOV0rL2csICcgJykudHJpbSgpLnNwbGl0KC9cXHMrLyk7XG5cbiAgICAvLyBDYXBpdGFsaXplIHRoZSBmaXJzdCBsZXR0ZXIgb2YgZWFjaCB3b3JkIGFuZCBqb2luIHRoZW1cbiAgICByZXR1cm4gd29yZHMubWFwKCh3b3JkKSA9PiB7XG4gICAgICByZXR1cm4gd29yZC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHdvcmQuc2xpY2UoMSkudG9Mb3dlckNhc2UoKTtcbiAgICB9KS5qb2luKCcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBnZW5lcmF0ZXMgdGhlIGVudHJ5IHBvaW50IGZvciB0aGUgYXBwbGljYXRpb24sIGluY2x1ZGluZyBpbnRlcmZhY2VzIGFuZCBjbGFzc2VzXG4gICAqIG5lY2Vzc2FyeSB0byBzZXQgdXAgdGhlIHBpcGVsaW5lIGFuZCBkZWZpbmUgdGhlIEFXUyBDREsgc3RhY2tzIGZvciBkaWZmZXJlbnQgZW52aXJvbm1lbnRzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUFwcGxpY2F0aW9uRW50cnlwb2ludCgpIHtcbiAgICBsZXQgcHJvcHNDb2RlID0gJyc7XG4gICAgbGV0IGFwcENvZGUgPSAnJztcblxuICAgIGlmICh0aGlzLmJhc2VPcHRpb25zLnBlcnNvbmFsU3RhZ2UpIHtcbiAgICAgIHByb3BzQ29kZSArPSBgICAvKiogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHVzZWQgdG8gZ2VuZXJhdGUgYSBwZXJzb25hbCBzdGFjay4gKi9cbiAgcHJvdmlkZVBlcnNvbmFsU3RhY2s6IChhcHA6IEFwcCwgc3RhY2tJZDogc3RyaW5nLCBwcm9wczogUGlwZWxpbmVBcHBTdGFja1Byb3BzKSA9PiBTdGFjaztcbmA7XG4gICAgICBhcHBDb2RlICs9IGAgICAgLy8gSWYgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIFVTRVIgaXMgc2V0IGFuZCBhIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGZvciBjcmVhdGluZyBhIHBlcnNvbmFsIHN0YWNrLCBpdCBpcyBjYWxsZWQgd2l0aCBuZWNlc3NhcnkgYXJndW1lbnRzLlxuICAgIGlmIChwcm9wcy5wcm92aWRlUGVyc29uYWxTdGFjayAmJiBwcm9jZXNzLmVudi5VU0VSKSB7XG4gICAgICBjb25zdCBzdGFnZU5hbWUgPSAncGVyc29uYWwtJyArIHByb2Nlc3MuZW52LlVTRVIudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXFxcXFwvL2csICctJyk7XG4gICAgICBwcm9wcy5wcm92aWRlUGVyc29uYWxTdGFjayh0aGlzLCAnJHt0aGlzLnN0YWNrUHJlZml4fS1wZXJzb25hbCcsIHsgZW52OiB7IGFjY291bnQ6ICcke3RoaXMuYmFzZU9wdGlvbnMucGVyc29uYWxTdGFnZS5lbnYuYWNjb3VudH0nLCByZWdpb246ICcke3RoaXMuYmFzZU9wdGlvbnMucGVyc29uYWxTdGFnZS5lbnYucmVnaW9ufScgfSwgc3RhY2tOYW1lOiBcXGAke3RoaXMuc3RhY2tQcmVmaXh9LVxcJHtzdGFnZU5hbWV9XFxgLCBzdGFnZU5hbWUgfSk7XG4gICAgfVxuYDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5iYXNlT3B0aW9ucy5mZWF0dXJlU3RhZ2VzKSB7XG4gICAgICBwcm9wc0NvZGUgKz0gYCAgLyoqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB1c2VkIHRvIGdlbmVyYXRlIGEgZmVhdHVyZSBzdGFjay4gKi9cbiAgcHJvdmlkZUZlYXR1cmVTdGFjazogKGFwcDogQXBwLCBzdGFja0lkOiBzdHJpbmcsIHByb3BzOiBQaXBlbGluZUFwcFN0YWNrUHJvcHMpID0+IFN0YWNrO1xuYDtcbiAgICAgIGFwcENvZGUgKz0gYCAgICAvLyBJZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgQlJBTkNIIGlzIHNldCBhbmQgYSBmdW5jdGlvbiBpcyBwcm92aWRlZCBmb3IgY3JlYXRpbmcgYSBmZWF0dXJlIHN0YWNrLCBpdCBpcyBjYWxsZWQgd2l0aCBuZWNlc3NhcnkgYXJndW1lbnRzLlxuICAgIGlmIChwcm9wcy5wcm92aWRlRmVhdHVyZVN0YWNrICYmIHByb2Nlc3MuZW52LkJSQU5DSCkge1xuICAgICAgY29uc3Qgc3RhZ2VOYW1lID0gJ2ZlYXR1cmUtJyArIHByb2Nlc3MuZW52LkJSQU5DSC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xcXFxcXC8vZywgJy0nKTtcbiAgICAgIHByb3BzLnByb3ZpZGVGZWF0dXJlU3RhY2sodGhpcywgJyR7dGhpcy5zdGFja1ByZWZpeH0tZmVhdHVyZScsIHsgZW52OiB7IGFjY291bnQ6ICcke3RoaXMuYmFzZU9wdGlvbnMuZmVhdHVyZVN0YWdlcy5lbnYuYWNjb3VudH0nLCByZWdpb246ICcke3RoaXMuYmFzZU9wdGlvbnMuZmVhdHVyZVN0YWdlcy5lbnYucmVnaW9ufScgfSwgc3RhY2tOYW1lOiBcXGAke3RoaXMuc3RhY2tQcmVmaXh9LVxcJHtzdGFnZU5hbWV9XFxgLCBzdGFnZU5hbWUgfSk7XG4gICAgfVxuYDtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHN0YWdlIG9mIHRoaXMuYmFzZU9wdGlvbnMuc3RhZ2VzKSB7XG4gICAgICBjb25zdCBuYW1lVXBwZXJGaXJzdCA9IHRoaXMuY3JlYXRlU2FmZVN0YWdlTmFtZShzdGFnZS5uYW1lKTtcblxuICAgICAgcHJvcHNDb2RlICs9IGAgIC8qKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdXNlZCB0byBnZW5lcmF0ZSBhICR7c3RhZ2UubmFtZX0gc3RhY2suICovXG4gIHByb3ZpZGUke25hbWVVcHBlckZpcnN0fVN0YWNrOiAoYXBwOiBBcHAsIHN0YWNrSWQ6IHN0cmluZywgcHJvcHM6IFBpcGVsaW5lQXBwU3RhY2tQcm9wcykgPT4gU3RhY2s7XG5gO1xuICAgICAgYXBwQ29kZSArPSBgICAgIC8vIElmIGEgZnVuY3Rpb24gaXMgcHJvdmlkZWQgZm9yIGNyZWF0aW5nIGEgJHtzdGFnZS5uYW1lfSBzdGFjaywgaXQgaXMgY2FsbGVkIHdpdGggbmVjZXNzYXJ5IGFyZ3VtZW50cy5cbiAgICBpZiAocHJvcHMucHJvdmlkZSR7bmFtZVVwcGVyRmlyc3R9U3RhY2spIHtcbiAgICAgIHByb3BzLnByb3ZpZGUke25hbWVVcHBlckZpcnN0fVN0YWNrKHRoaXMsICcke3RoaXMuc3RhY2tQcmVmaXh9LSR7c3RhZ2UubmFtZX0nLCB7IGVudjogeyBhY2NvdW50OiAnJHtzdGFnZS5lbnYuYWNjb3VudH0nLCByZWdpb246ICcke3N0YWdlLmVudi5yZWdpb259JyB9LCBzdGFja05hbWU6ICcke3RoaXMuc3RhY2tQcmVmaXh9LSR7c3RhZ2UubmFtZX0nLCBzdGFnZU5hbWU6ICcke3N0YWdlLm5hbWV9JyB9KTtcbiAgICB9XG5gO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qgc3RhZ2Ugb2YgKHRoaXMuYmFzZU9wdGlvbnMuaW5kZXBlbmRlbnRTdGFnZXMgPz8gW10pKSB7XG4gICAgICBjb25zdCBuYW1lVXBwZXJGaXJzdCA9IHRoaXMuY3JlYXRlU2FmZVN0YWdlTmFtZShzdGFnZS5uYW1lKTtcblxuICAgICAgcHJvcHNDb2RlICs9IGAgIC8qKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdXNlZCB0byBnZW5lcmF0ZSBhICR7c3RhZ2UubmFtZX0gc3RhY2suICovXG4gIHByb3ZpZGUke25hbWVVcHBlckZpcnN0fVN0YWNrOiAoYXBwOiBBcHAsIHN0YWNrSWQ6IHN0cmluZywgcHJvcHM6IFBpcGVsaW5lQXBwU3RhY2tQcm9wcykgPT4gU3RhY2s7XG5gO1xuICAgICAgYXBwQ29kZSArPSBgICAgIC8vIElmIGEgZnVuY3Rpb24gaXMgcHJvdmlkZWQgZm9yIGNyZWF0aW5nIGEgJHtzdGFnZS5uYW1lfSBzdGFjaywgaXQgaXMgY2FsbGVkIHdpdGggbmVjZXNzYXJ5IGFyZ3VtZW50cy5cbiAgICBpZiAocHJvcHMucHJvdmlkZSR7bmFtZVVwcGVyRmlyc3R9U3RhY2spIHtcbiAgICAgIHByb3BzLnByb3ZpZGUke25hbWVVcHBlckZpcnN0fVN0YWNrKHRoaXMsICcke3RoaXMuc3RhY2tQcmVmaXh9LSR7c3RhZ2UubmFtZX0nLCB7IGVudjogeyBhY2NvdW50OiAnJHtzdGFnZS5lbnYuYWNjb3VudH0nLCByZWdpb246ICcke3N0YWdlLmVudi5yZWdpb259JyB9LCBzdGFja05hbWU6ICcke3RoaXMuc3RhY2tQcmVmaXh9LSR7c3RhZ2UubmFtZX0nLCBzdGFnZU5hbWU6ICcke3N0YWdlLm5hbWV9JyB9KTtcbiAgICB9XG5gO1xuICAgIH1cblxuICAgIGNvbnN0IGFwcEZpbGUgPSBuZXcgVGV4dEZpbGUodGhpcy5wcm9qZWN0LCBgJHt0aGlzLmFwcC5zcmNkaXJ9L2FwcC50c2ApO1xuICAgIGFwcEZpbGUuYWRkTGluZShgLy8gJHtQUk9KRU5fTUFSS0VSfVxuLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCB7IEFwcCwgQXBwUHJvcHMsIFN0YWNrLCBTdGFja1Byb3BzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuXG4vKipcbiAqIFBpcGVsaW5lQXBwUHJvcHMgaXMgYW4gZXh0ZW5zaW9uIG9mIEFwcFByb3BzLCB3aGljaCBpcyBwYXJ0IG9mIHRoZSBBV1MgQ0RLIGNvcmUuXG4gKiBJdCBpbmNsdWRlcyBvcHRpb25hbCBmdW5jdGlvbnMgdG8gcHJvdmlkZSBBV1MgU3RhY2tzIGZvciBkaWZmZXJlbnQgc3RhZ2VzLlxuICpcbiAqIFVzZSB0aGVzZSBmdW5jdGlvbnMgdG8gaW5zdGFudGlhdGUgeW91ciBhcHBsaWNhdGlvbiBzdGFja3Mgd2l0aCB0aGUgcGFyYW1ldGVycyBmb3JcbiAqIGVhY2ggc3RhZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUFwcFByb3BzIGV4dGVuZHMgQXBwUHJvcHMge1xuJHtwcm9wc0NvZGV9XG59XG5cbi8qKlxuICogUGlwZWxpbmVBcHBTdGFja1Byb3BzIGlzIGFuIGV4dGVuc2lvbiBvZiBTdGFja1Byb3BzLCB3aGljaCBpcyBwYXJ0IG9mIHRoZSBBV1MgQ0RLIGNvcmUuXG4gKiBJdCBpbmNsdWRlcyBhbiBhZGRpdGlvbmFsIHByb3BlcnR5IHRvIHNwZWNpZnkgdGhlIHN0YWdlIG5hbWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVBcHBTdGFja1Byb3BzIGV4dGVuZHMgU3RhY2tQcm9wcyB7XG4gIHN0YWdlTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBQaXBlbGluZUFwcCBjbGFzcyBleHRlbmRzIHRoZSBBcHAgY2xhc3MgZnJvbSBBV1MgQ0RLIGFuZCBvdmVycmlkZXMgdGhlIGNvbnN0cnVjdG9yIHRvIHN1cHBvcnRcbiAqIGRpZmZlcmVudCBzdGFnZXMgb2YgdGhlIGFwcGxpY2F0aW9uIChkZXZlbG9wbWVudCwgcHJvZHVjdGlvbiwgcGVyc29uYWwsIGZlYXR1cmUpIGJ5IGludm9raW5nIHRoZSBwcm92aWRlZFxuICogc3RhY2stcHJvdmlkaW5nIGZ1bmN0aW9ucyBmcm9tIHRoZSBwcm9wcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFBpcGVsaW5lQXBwIGV4dGVuZHMgQXBwIHtcbiAgY29uc3RydWN0b3IocHJvcHM6IFBpcGVsaW5lQXBwUHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiR7YXBwQ29kZX1cblxuICB9XG59XG5gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBzZXRzIHVwIHRhc2tzIHRvIHB1Ymxpc2ggQ0RLIGFzc2V0cyB0byBhbGwgYWNjb3VudHMgYW5kIGhhbmRsZSB2ZXJzaW9uaW5nLCBpbmNsdWRpbmcgYnVtcGluZyB0aGUgdmVyc2lvblxuICAgKiBiYXNlZCBvbiB0aGUgbGF0ZXN0IGdpdCB0YWcgYW5kIHB1c2hpbmcgdGhlIENESyBhc3NlbWJseSB0byB0aGUgcGFja2FnZSByZXBvc2l0b3J5LlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlbGVhc2VUYXNrcygpIHtcbiAgICBjb25zdCBzdGFnZXMgPSBbLi4udGhpcy5iYXNlT3B0aW9ucy5zdGFnZXMsIC4uLnRoaXMuYmFzZU9wdGlvbnMuaW5kZXBlbmRlbnRTdGFnZXMgPz8gW11dO1xuICAgIC8vIFRhc2sgdG8gcHVibGlzaCB0aGUgQ0RLIGFzc2V0cyB0byBhbGwgYWNjb3VudHNcbiAgICBmb3IgKGNvbnN0IHN0YWdlIG9mIHN0YWdlcykge1xuICAgICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soYHB1Ymxpc2g6YXNzZXRzOiR7c3RhZ2UubmFtZX1gLCB7XG4gICAgICAgIHN0ZXBzOiBbe1xuICAgICAgICAgIGV4ZWM6IGBucHggY2RrLWFzc2V0cyAtcCAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9LyR7dGhpcy5zdGFja1ByZWZpeH0tJHtzdGFnZS5uYW1lfS5hc3NldHMuanNvbiBwdWJsaXNoYCxcbiAgICAgICAgfV0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ3B1Ymxpc2g6YXNzZXRzJywge1xuICAgICAgc3RlcHM6IHN0YWdlcy5tYXAoc3RhZ2UgPT4gKHtcbiAgICAgICAgc3Bhd246IGBwdWJsaXNoOmFzc2V0czoke3N0YWdlLm5hbWV9YCxcbiAgICAgIH0pKSxcbiAgICB9KTtcblxuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCdidW1wJywge1xuICAgICAgZGVzY3JpcHRpb246ICdCdW1wcyB2ZXJzaW9uIGJhc2VkIG9uIGxhdGVzdCBnaXQgdGFnJyxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBleGVjOiAncGlwZWxpbmVzLXJlbGVhc2UgYnVtcCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBleGVjOiAnZ2l0IHB1c2ggLS10YWdzJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ3JlbGVhc2U6cHVzaC1hc3NlbWJseScsIHtcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBleGVjOiBgcGlwZWxpbmVzLXJlbGVhc2UgY3JlYXRlLW1hbmlmZXN0IFwiJHt0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0fVwiICBcIiR7dGhpcy5iYXNlT3B0aW9ucy5wa2dOYW1lc3BhY2V9XCJgLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY3dkOiB0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0LFxuICAgICAgICAgIGV4ZWM6ICducG0gdmVyc2lvbiAtLW5vLWdpdC10YWctdmVyc2lvbiBmcm9tLWdpdCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjd2Q6IHRoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXQsXG4gICAgICAgICAgZXhlYzogJ25wbSBwdWJsaXNoJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2Qgc2V0cyB1cCB0YXNrcyBmb3IgdGhlIHBlcnNvbmFsIGRlcGxveW1lbnQgc3RhZ2UsIGluY2x1ZGluZyBkZXBsb3ltZW50LCB3YXRjaGluZyBmb3IgY2hhbmdlcyxcbiAgICogY29tcGFyaW5nIGNoYW5nZXMgKGRpZmYpLCBhbmQgZGVzdHJveWluZyB0aGUgc3RhY2sgd2hlbiBubyBsb25nZXIgbmVlZGVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVBlcnNvbmFsU3RhZ2UoKSB7XG4gICAgY29uc3Qgc3RhY2tJZCA9IHRoaXMuZ2V0Q2xpU3RhY2tQYXR0ZXJuKCdwZXJzb25hbCcpO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCdkZXBsb3k6cGVyc29uYWwnLCB7XG4gICAgICBleGVjOiBgY2RrIGRlcGxveSAtLW91dHB1dHMtZmlsZSBjZGstb3V0cHV0cy1wZXJzb25hbC5qc29uICR7c3RhY2tJZH1gLFxuICAgIH0pO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCd3YXRjaDpwZXJzb25hbCcsIHtcbiAgICAgIGV4ZWM6IGBjZGsgZGVwbG95IC0tb3V0cHV0cy1maWxlIGNkay1vdXRwdXRzLXBlcnNvbmFsLmpzb24gLS13YXRjaCAtLWhvdHN3YXAgJHtzdGFja0lkfWAsXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ2RpZmY6cGVyc29uYWwnLCB7XG4gICAgICBleGVjOiBgY2RrIGRpZmYgJHtzdGFja0lkfWAsXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ2Rlc3Ryb3k6cGVyc29uYWwnLCB7XG4gICAgICBleGVjOiBgY2RrIGRlc3Ryb3kgJHtzdGFja0lkfWAsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2Qgc2V0cyB1cCB0YXNrcyBmb3IgdGhlIGZlYXR1cmUgZGVwbG95bWVudCBzdGFnZSwgaW5jbHVkaW5nIGRlcGxveW1lbnQsIGNvbXBhcmluZyBjaGFuZ2VzIChkaWZmKSxcbiAgICogYW5kIGRlc3Ryb3lpbmcgdGhlIHN0YWNrIHdoZW4gbm8gbG9uZ2VyIG5lZWRlZC5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVGZWF0dXJlU3RhZ2UoKSB7XG4gICAgY29uc3Qgc3RhY2tJZCA9IHRoaXMuZ2V0Q2xpU3RhY2tQYXR0ZXJuKCdmZWF0dXJlJyk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ2RlcGxveTpmZWF0dXJlJywge1xuICAgICAgZXhlYzogYGNkayAtLW91dHB1dHMtZmlsZSBjZGstb3V0cHV0cy1mZWF0dXJlLmpzb24gLS1wcm9ncmVzcyBldmVudHMgLS1yZXF1aXJlLWFwcHJvdmFsIG5ldmVyIGRlcGxveSAke3N0YWNrSWR9YCxcbiAgICB9KTtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygnZGlmZjpmZWF0dXJlJywge1xuICAgICAgZXhlYzogYGNkayBkaWZmICR7c3RhY2tJZH1gLFxuICAgIH0pO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCdkZXN0cm95OmZlYXR1cmUnLCB7XG4gICAgICBleGVjOiBgY2RrIGRlc3Ryb3kgJHtzdGFja0lkfWAsXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ3dhdGNoOmZlYXR1cmUnLCB7XG4gICAgICBleGVjOiBgY2RrIGRlcGxveSAtLW91dHB1dHMtZmlsZSBjZGstb3V0cHV0cy1mZWF0dXJlLmpzb24gLS13YXRjaCAtLWhvdHN3YXAgJHtzdGFja0lkfWAsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2Qgc2V0cyB1cCB0YXNrcyBmb3IgdGhlIGdlbmVyYWwgcGlwZWxpbmUgc3RhZ2VzIChkZXYsIHByb2QpLCBpbmNsdWRpbmcgZGVwbG95bWVudCBhbmQgY29tcGFyaW5nIGNoYW5nZXMgKGRpZmYpLlxuICAgKiBAcGFyYW0ge0RlcGxveVN0YWdlT3B0aW9uc30gc3RhZ2UgLSBUaGUgc3RhZ2UgdG8gY3JlYXRlXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlUGlwZWxpbmVTdGFnZShzdGFnZTogRGVwbG95bWVudFN0YWdlKSB7XG4gICAgY29uc3Qgc3RhY2tJZCA9IHRoaXMuZ2V0Q2xpU3RhY2tQYXR0ZXJuKHN0YWdlLm5hbWUpO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKGBkZXBsb3k6JHtzdGFnZS5uYW1lfWAsIHtcbiAgICAgIGV4ZWM6IGBjZGsgLS1hcHAgJHt0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0fSAtLW91dHB1dHMtZmlsZSBjZGstb3V0cHV0cy0ke3N0YWdlLm5hbWV9Lmpzb24gLS1wcm9ncmVzcyBldmVudHMgLS1yZXF1aXJlLWFwcHJvdmFsIG5ldmVyIGRlcGxveSAke3N0YWNrSWR9YCxcbiAgICB9KTtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzayhgZGlmZjoke3N0YWdlLm5hbWV9YCwge1xuICAgICAgZXhlYzogYGNkayAtLWFwcCAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9IGRpZmYgJHtzdGFja0lkfWAsXG4gICAgfSk7XG4gICAgaWYgKHN0YWdlLndhdGNoYWJsZSkge1xuICAgICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soYHdhdGNoOiR7c3RhZ2UubmFtZX1gLCB7XG4gICAgICAgIGV4ZWM6IGBjZGsgZGVwbG95IC0tb3V0cHV0cy1maWxlIGNkay1vdXRwdXRzLSR7c3RhZ2UubmFtZX0uanNvbiAtLXdhdGNoIC0taG90c3dhcCAke3N0YWNrSWR9YCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBzZXRzIHVwIHRhc2tzIGZvciB0aGUgaW5kZXBlbmRlbnQgc3RhZ2VzIGluY2x1ZGluZyBkZXBsb3ltZW50IGFuZCBjb21wYXJpbmcgY2hhbmdlcyAoZGlmZikuXG4gICAqIEBwYXJhbSB7TmFtZWRTdGFnZU9wdGlvbnN9IHN0YWdlIC0gVGhlIHN0YWdlIHRvIGNyZWF0ZVxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUluZGVwZW5kZW50U3RhZ2Uoc3RhZ2U6IEluZGVwZW5kZW50U3RhZ2UpIHtcbiAgICBjb25zdCBzdGFja0lkID0gdGhpcy5nZXRDbGlTdGFja1BhdHRlcm4oc3RhZ2UubmFtZSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soYGRlcGxveToke3N0YWdlLm5hbWV9YCwge1xuICAgICAgZXhlYzogYGNkayAtLWFwcCAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9IC0tb3V0cHV0cy1maWxlIGNkay1vdXRwdXRzLSR7c3RhZ2UubmFtZX0uanNvbiAtLXByb2dyZXNzIGV2ZW50cyAtLXJlcXVpcmUtYXBwcm92YWwgbmV2ZXIgZGVwbG95ICR7c3RhY2tJZH1gLFxuICAgIH0pO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKGBkaWZmOiR7c3RhZ2UubmFtZX1gLCB7XG4gICAgICBleGVjOiBgY2RrIC0tYXBwICR7dGhpcy5hcHAuY2RrQ29uZmlnLmNka291dH0gZGlmZiAke3N0YWNrSWR9YCxcbiAgICB9KTtcbiAgICBpZiAoc3RhZ2Uud2F0Y2hhYmxlKSB7XG4gICAgICB0aGlzLnByb2plY3QuYWRkVGFzayhgd2F0Y2g6JHtzdGFnZS5uYW1lfWAsIHtcbiAgICAgICAgZXhlYzogYGNkayBkZXBsb3kgLS1vdXRwdXRzLWZpbGUgY2RrLW91dHB1dHMtJHtzdGFnZS5uYW1lfS5qc29uIC0td2F0Y2ggLS1ob3Rzd2FwICR7c3RhY2tJZH1gLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldENsaVN0YWNrUGF0dGVybihzdGFnZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZU9wdGlvbnMuZGVwbG95U3ViU3RhY2tzID8gYCR7dGhpcy5zdGFja1ByZWZpeH0tJHtzdGFnZX0gJHt0aGlzLnN0YWNrUHJlZml4fS0ke3N0YWdlfS8qYCA6IGAke3RoaXMuc3RhY2tQcmVmaXh9LSR7c3RhZ2V9YDtcbiAgfVxufSJdfQ==
|
|
326
|
+
CDKPipeline[_a] = { fqn: "projen-pipelines.CDKPipeline", version: "0.0.73" };
|
|
327
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFxRDtBQUNyRCw4Q0FBa0Q7QUFDbEQsc0RBQTJEO0FBNkkzRDs7O0dBR0c7QUFDSCxNQUFzQixXQUFZLFNBQVEsa0JBQVM7SUFLakQsWUFBc0IsR0FBK0IsRUFBWSxXQUErQjtRQUM5RixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFEUyxRQUFHLEdBQUgsR0FBRyxDQUE0QjtRQUFZLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUc5RiwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQ2pCLHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIsWUFBWSxDQUNiLENBQUM7UUFDRixvQkFBb0I7UUFDcEIsS0FBSztRQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLFdBQVcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsQ0FBQywrQ0FBK0M7UUFFbkcsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxXQUFXLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxXQUFXLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRS9GLDZEQUE2RDtRQUM3RCxJ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QUFTLENBQUMsTUFBTSxTQUFTLE9BQU8sRUFBRTtTQUMvRCxDQUFDLENBQUM7UUFDSCxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDMUMsSUFBSSxFQUFFLHlDQUF5QyxLQUFLLENBQUMsSUFBSSwyQkFBMkIsT0FBTyxFQUFFO2FBQzlGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRVMsa0JBQWtCLENBQUMsS0FBYTtRQUN4QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUMzSSxDQUFDOztBQTlWSCxrQ0ErVkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFRleHRGaWxlLCBhd3NjZGsgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgUFJPSkVOX01BUktFUiB9IGZyb20gJ3Byb2plbi9saWIvY29tbW9uJztcbmltcG9ydCB7IE5vZGVQYWNrYWdlTWFuYWdlciB9IGZyb20gJ3Byb2plbi9saWIvamF2YXNjcmlwdCc7XG5pbXBvcnQgeyBQaXBlbGluZUVuZ2luZSB9IGZyb20gJy4uL2VuZ2luZSc7XG5pbXBvcnQgeyBQaXBlbGluZVN0ZXAgfSBmcm9tICcuLi9zdGVwcyc7XG5cbi8qKlxuICogVGhlIEVudmlyb25tZW50IGludGVyZmFjZSBpcyBkZXNpZ25lZCB0byBob2xkIEFXUyByZWxhdGVkIGluZm9ybWF0aW9uXG4gKiBmb3IgYSBzcGVjaWZpYyBkZXBsb3ltZW50IGVudmlyb25tZW50IHdpdGhpbiB5b3VyIGluZnJhc3RydWN0dXJlLlxuICogRWFjaCBlbnZpcm9ubWVudCByZXF1aXJlcyBhIHNwZWNpZmljIGFjY291bnQgYW5kIHJlZ2lvbiBmb3IgaXRzIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudCB7XG4gIC8qKlxuICAgKiBUaGUgQVdTIEFjY291bnQgSUQgYXNzb2NpYXRlZCB3aXRoIHRoZSBlbnZpcm9ubWVudC4gSXQncyBpbXBvcnRhbnQgYmVjYXVzZVxuICAgKiBkaWZmZXJlbnQgc2VydmljZXMgb3IgZmVhdHVyZXMgY291bGQgaGF2ZSBkaXN0aW5jdCBwZXJtaXNzaW9ucyBhbmQgc2V0dGluZ3NcbiAgICogaW4gZGlmZmVyZW50IGFjY291bnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIFJlZ2lvbiBmb3IgdGhlIGVudmlyb25tZW50LiBUaGlzIGRldGVybWluZXMgd2hlcmUgeW91ciByZXNvdXJjZXNcbiAgICogYXJlIGNyZWF0ZWQgYW5kIHdoZXJlIHlvdXIgYXBwbGljYXRpb24gd2lsbCBydW4uIEl0IGNhbiBhZmZlY3QgbGF0ZW5jeSxcbiAgICogYXZhaWxhYmlsaXR5LCBhbmQgcHJpY2luZy5cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xufVxuXG4vLyAvKipcbi8vICAqIERlc2NyaWJlcyB0aGUgdHlwZSBvZiBwaXBlbGluZSB0aGF0IHdpbGwgYmUgY3JlYXRlZFxuLy8gICovXG4vLyBleHBvcnQgZW51bSBEZXBsb3ltZW50VHlwZSB7XG4vLyAgIC8qKiBEZXBsb3kgZXZlcnkgY29tbWl0IGFzIGZhciBhcyBwb3NzaWJsZTsgaG9wZWZ1bGx5IGludG8gcHJvZHVjdGlvbiAqL1xuLy8gICBDT05USU5VT1VTX0RFUExPWU1FTlQsXG4vLyAgIC8qKiBCdWlsZCBldmVyeSBjb21taXQgYW5kIHByZXBhcmUgYWxsIGFzc2V0cyBmb3IgYSBsYXRlciBkZXBsb3ltZW50ICovXG4vLyAgIENPTlRJTlVPVVNfREVMSVZFUlksXG4vLyB9XG5cbi8qKlxuICogT3B0aW9ucyBmb3Igc3RhZ2VzIHRoYXQgYXJlIHBhcnQgb2YgdGhlIHBpcGVsaW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95bWVudFN0YWdlIGV4dGVuZHMgTmFtZWRTdGFnZU9wdGlvbnMge1xuICByZWFkb25seSBtYW51YWxBcHByb3ZhbD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Igc3RhZ2VzIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIHRoZSBwaXBlbGluZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluZGVwZW5kZW50U3RhZ2UgZXh0ZW5kcyBOYW1lZFN0YWdlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGlzIHNwZWNpZmllcyB3aGV0aGVyIHRoZSBzdGFnZSBzaG91bGQgYmUgZGVwbG95ZWQgb24gcHVzaFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95T25QdXNoPzogYm9vbGVhbjtcblxuICByZWFkb25seSBwb3N0RGlmZlN0ZXBzPzogUGlwZWxpbmVTdGVwW107XG4gIHJlYWRvbmx5IHBvc3REZXBsb3lTdGVwcz86IFBpcGVsaW5lU3RlcFtdO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGEgQ0RLIHN0YWdlIHdpdGggYSBuYW1lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmFtZWRTdGFnZU9wdGlvbnMgZXh0ZW5kcyBTdGFnZU9wdGlvbnMge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdhdGNoYWJsZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYSBDREsgc3RhZ2UgbGlrZSB0aGUgdGFyZ2V0IGVudmlyb25tZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VPcHRpb25zIHtcbiAgcmVhZG9ubHkgZW52OiBFbnZpcm9ubWVudDtcbn1cblxuLyoqXG4gKiBUaGUgQ0RLUGlwZWxpbmVPcHRpb25zIGludGVyZmFjZSBpcyBkZXNpZ25lZCB0byBwcm92aWRlIGNvbmZpZ3VyYXRpb25cbiAqIG9wdGlvbnMgZm9yIGEgQ0RLIChDbG91ZCBEZXZlbG9wbWVudCBLaXQpIHBpcGVsaW5lLiBJdCBhbGxvd3MgdGhlIGRlZmluaXRpb25cbiAqIG9mIHNldHRpbmdzIHN1Y2ggYXMgdGhlIHN0YWNrIHByZWZpeCBhbmQgcGFja2FnZSBuYW1lc3BhY2UgdG8gYmUgdXNlZCBpbiB0aGVcbiAqIEFXUyBzdGFjaywgYWxvbmcgd2l0aCB0aGUgZW52aXJvbm1lbnRzIGNvbmZpZ3VyYXRpb24gdG8gYmUgdXNlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDREtQaXBlbGluZU9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiB0aGUgbmFtZSBvZiB0aGUgYnJhbmNoIHRvIGRlcGxveSBmcm9tXG4gICAqIEBkZWZhdWx0IG1haW5cbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoaXMgZmllbGQgaXMgdXNlZCB0byBkZWZpbmUgYSBwcmVmaXggZm9yIHRoZSBBV1MgU3RhY2sgcmVzb3VyY2VzIGNyZWF0ZWRcbiAgICogZHVyaW5nIHRoZSBwaXBlbGluZSdzIG9wZXJhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgcHJvamVjdCBuYW1lXG4gICAqL1xuICByZWFkb25seSBzdGFja1ByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgc2V0IHRvIHRydWUgYWxsIENESyBhY3Rpb25zIHdpbGwgYWxzbyBpbmNsdWRlIDxzdGFja05hbWU+LyogdG8gZGVwbG95L2RpZmYvZGVzdHJveSBzdWIgc3RhY2tzIG9mIHRoZSBtYWluIHN0YWNrLlxuICAgKiBZb3UgY2FuIHVzZSB0aGlzIHRvIGRlcGxveSBDRGsgYXBwbGljYXRpb25zIGNvbnRhaW5pbmcgbXVsdGlwbGUgc3RhY2tzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95U3ViU3RhY2tzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhpcyBmaWVsZCBkZXRlcm1pbmVzIHRoZSBOUE0gbmFtZXNwYWNlIHRvIGJlIHVzZWQgd2hlbiBwYWNrYWdpbmcgQ0RLIGNsb3VkXG4gICAqIGFzc2VtYmxpZXMuIEEgbmFtZXNwYWNlIGhlbHBzIGdyb3VwIHJlbGF0ZWQgcmVzb3VyY2VzIHRvZ2V0aGVyLCBwcm92aWRpbmdcbiAgICogYmV0dGVyIG9yZ2FuaXphdGlvbiBhbmQgZWFzZSBvZiBtYW5hZ2VtZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgcGtnTmFtZXNwYWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoaXMgZmllbGQgc3BlY2lmaWVzIGEgbGlzdCBvZiBzdGFnZXMgdGhhdCBzaG91bGQgYmUgZGVwbG95ZWQgdXNpbmcgYSBDSS9DRCBwaXBlbGluZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2VzOiBEZXBsb3ltZW50U3RhZ2VbXTtcblxuICAvKiogVGhpcyBzcGVjaWZpZXMgZGV0YWlscyBmb3IgaW5kZXBlbmRlbnQgc3RhZ2VzICovXG4gIHJlYWRvbmx5IGluZGVwZW5kZW50U3RhZ2VzPzogSW5kZXBlbmRlbnRTdGFnZVtdO1xuXG4gIC8qKiBUaGlzIHNwZWNpZmllcyBkZXRhaWxzIGZvciBhIHBlcnNvbmFsIHN0YWdlICovXG4gIHJlYWRvbmx5IHBlcnNvbmFsU3RhZ2U/OiBTdGFnZU9wdGlvbnM7XG5cbiAgLyoqIFRoaXMgc3BlY2lmaWVzIGRldGFpbHMgZm9yIGZlYXR1cmUgc3RhZ2VzICovXG4gIHJlYWRvbmx5IGZlYXR1cmVTdGFnZXM/OiBTdGFnZU9wdGlvbnM7XG5cbiAgLy8gLyoqXG4gIC8vICAqIFRoaXMgZmllbGQgc3BlY2lmaWVzIHRoZSB0eXBlIG9mIHBpcGVsaW5lIHRvIGNyZWF0ZS4gSWYgc2V0IHRvIENPTlRJTlVPVVNfREVQTE9ZTUVOVCxcbiAgLy8gICogZXZlcnkgY29tbWl0IGlzIGRlcGxveWVkIGFzIGZhciBhcyBwb3NzaWJsZSwgaG9wZWZ1bGx5IGludG8gcHJvZHVjdGlvbi4gSWYgc2V0IHRvXG4gIC8vICAqIENPTlRJTlVPVVNfREVMSVZFUlksIGV2ZXJ5IGNvbW1pdCBpcyBidWlsdCBhbmQgYWxsIGFzc2V0cyBhcmUgcHJlcGFyZWQgZm9yIGEgbGF0ZXIgZGVwbG95bWVudC5cbiAgLy8gICpcbiAgLy8gICogQGRlZmF1bHQgQ09OVElOVU9VU19ERUxJVkVSWVxuICAvLyAgKi9cbiAgLy8gcmVhZG9ubHkgZGVwbG95bWVudFR5cGU/OiBEZXBsb3ltZW50VHlwZTtcblxuICByZWFkb25seSBwcmVJbnN0YWxsQ29tbWFuZHM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgcHJlU3ludGhDb21tYW5kcz86IHN0cmluZ1tdO1xuICByZWFkb25seSBwb3N0U3ludGhDb21tYW5kcz86IHN0cmluZ1tdO1xuXG4gIHJlYWRvbmx5IHByZUluc3RhbGxTdGVwcz86IFBpcGVsaW5lU3RlcFtdO1xuICByZWFkb25seSBwcmVTeW50aFN0ZXBzPzogUGlwZWxpbmVTdGVwW107XG4gIHJlYWRvbmx5IHBvc3RTeW50aFN0ZXBzPzogUGlwZWxpbmVTdGVwW107XG59XG5cbi8qKlxuICogVGhlIENES1BpcGVsaW5lIGNsYXNzIGV4dGVuZHMgdGhlIENvbXBvbmVudCBjbGFzcyBhbmQgc2V0cyB1cCB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3VyYXRpb24gZm9yIGRlcGxveWluZyBBV1MgQ0RLIChDbG91ZCBEZXZlbG9wbWVudCBLaXQpIGFwcGxpY2F0aW9ucyBhY3Jvc3MgbXVsdGlwbGUgc3RhZ2VzLlxuICogSXQgYWxzbyBtYW5hZ2VzIHRhc2tzIHN1Y2ggYXMgcHVibGlzaGluZyBDREsgYXNzZXRzLCBidW1waW5nIHZlcnNpb24gYmFzZWQgb24gZ2l0IHRhZ3MsIGFuZCBjbGVhbmluZyB1cCBjb25mbGljdGluZyB0YXNrcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENES1BpcGVsaW5lIGV4dGVuZHMgQ29tcG9uZW50IHtcblxuICBwdWJsaWMgcmVhZG9ubHkgc3RhY2tQcmVmaXg6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGJyYW5jaE5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYXBwOiBhd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCwgcHJvdGVjdGVkIGJhc2VPcHRpb25zOiBDREtQaXBlbGluZU9wdGlvbnMpIHtcbiAgICBzdXBlcihhcHApO1xuXG4gICAgLy8gQWRkIGRldmVsb3BtZW50IGRlcGVuZGVuY2llc1xuICAgIHRoaXMuYXBwLmFkZERldkRlcHMoXG4gICAgICAnQHR5cGVzL3N0YW5kYXJkLXZlcnNpb24nLFxuICAgICAgJ3N0YW5kYXJkLXZlcnNpb24nLFxuICAgICAgJ2Nkay1hc3NldHMnLFxuICAgICk7XG4gICAgLy8gdGhpcy5hcHAuYWRkRGVwcyhcbiAgICAvLyApO1xuICAgIHRoaXMucHJvamVjdC5naXRpZ25vcmUuZXhjbHVkZSgnL2Nkay1vdXRwdXRzLSouanNvbicpO1xuXG4gICAgdGhpcy5zdGFja1ByZWZpeCA9IGJhc2VPcHRpb25zLnN0YWNrUHJlZml4ID8/IGFwcC5uYW1lO1xuICAgIHRoaXMuYnJhbmNoTmFtZSA9IGJhc2VPcHRpb25zLmJyYW5jaE5hbWUgPz8gJ21haW4nOyAvLyBUT0RPIHVzZSBkZWZhdWx0UmVsZWFzZUJyYW5jaCBvZiBOb2RlUHJvamVjdFxuXG4gICAgLy8gUmVtb3ZlcyB0aGUgY29tcGlsZWQgY2xvdWQgYXNzZW1ibHkgYmVmb3JlIGVhY2ggc3ludGhcbiAgICB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZCgnc3ludGgnKT8ucHJlcGVuZEV4ZWMoYHJtIC1yZiAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9YCk7XG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzLnRyeUZpbmQoJ3N5bnRoOnNpbGVudCcpPy5wcmVwZW5kRXhlYyhgcm0gLXJmICR7dGhpcy5hcHAuY2RrQ29uZmlnLmNka291dH1gKTtcblxuICAgIC8vIFJlbW92ZSB0YXNrcyB0aGF0IG1pZ2h0IGNvbmZsaWN0IHdpdGggdGhlIHBpcGVsaW5lIHByb2Nlc3NcbiAgICB0aGlzLnByb2plY3QucmVtb3ZlVGFzaygnZGVwbG95Jyk7XG4gICAgdGhpcy5wcm9qZWN0LnJlbW92ZVRhc2soJ2RpZmYnKTtcbiAgICB0aGlzLnByb2plY3QucmVtb3ZlVGFzaygnZGVzdHJveScpO1xuICAgIHRoaXMucHJvamVjdC5yZW1vdmVUYXNrKCd3YXRjaCcpO1xuXG4gICAgLy8gQ3JlYXRlcyBkaWZmZXJlbnQgZGVwbG95bWVudCBzdGFnZXNcbiAgICBpZiAoYmFzZU9wdGlvbnMucGVyc29uYWxTdGFnZSkge1xuICAgICAgdGhpcy5jcmVhdGVQZXJzb25hbFN0YWdlKCk7XG4gICAgfVxuICAgIGlmIChiYXNlT3B0aW9ucy5mZWF0dXJlU3RhZ2VzKSB7XG4gICAgICB0aGlzLmNyZWF0ZUZlYXR1cmVTdGFnZSgpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHN0YWdlIG9mIGJhc2VPcHRpb25zLnN0YWdlcykge1xuICAgICAgdGhpcy5jcmVhdGVQaXBlbGluZVN0YWdlKHN0YWdlKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBzdGFnZSBvZiAoYmFzZU9wdGlvbnMuaW5kZXBlbmRlbnRTdGFnZXMgPz8gW10pKSB7XG4gICAgICB0aGlzLmNyZWF0ZUluZGVwZW5kZW50U3RhZ2Uoc3RhZ2UpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZXMgdGFza3MgdG8gaGFuZGxlIHRoZSByZWxlYXNlIHByb2Nlc3NcbiAgICB0aGlzLmNyZWF0ZVJlbGVhc2VUYXNrcygpO1xuXG4gICAgLy8gQ3JlYXRlcyBhIHNwZWNpYWxpemVkIENESyBBcHAgY2xhc3NcbiAgICB0aGlzLmNyZWF0ZUFwcGxpY2F0aW9uRW50cnlwb2ludCgpO1xuXG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgZW5naW5lVHlwZSgpOiBQaXBlbGluZUVuZ2luZTtcblxuICBwcm90ZWN0ZWQgcmVuZGVySW5zdGFsbENvbW1hbmRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uKHRoaXMuYmFzZU9wdGlvbnMucHJlSW5zdGFsbENvbW1hbmRzID8/IFtdKSxcbiAgICAgIGBucHggcHJvamVuICR7dGhpcy5hcHAucGFja2FnZS5pbnN0YWxsQ2lUYXNrLm5hbWV9YCxcbiAgICBdO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlckluc3RhbGxQYWNrYWdlQ29tbWFuZHMocGFja2FnZU5hbWU6IHN0cmluZywgcnVuUHJlSW5zdGFsbENvbW1hbmRzOiBib29sZWFuID0gZmFsc2UpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY29tbWFuZHMgPSBydW5QcmVJbnN0YWxsQ29tbWFuZHMgPyB0aGlzLmJhc2VPcHRpb25zLnByZUluc3RhbGxDb21tYW5kcyA/PyBbXSA6IFtdO1xuXG4gICAgc3dpdGNoICh0aGlzLmFwcC5wYWNrYWdlLnBhY2thZ2VNYW5hZ2VyKSB7XG4gICAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5ZQVJOOlxuICAgICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTjI6XG4gICAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5ZQVJOX0JFUlJZOlxuICAgICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTl9DTEFTU0lDOlxuICAgICAgICBjb21tYW5kcy5wdXNoKGB5YXJuIGFkZCAke3BhY2thZ2VOYW1lfWApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLk5QTTpcbiAgICAgICAgY29tbWFuZHMucHVzaChgbnBtIGluc3RhbGwgJHtwYWNrYWdlTmFtZX1gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGluc3RhbGwgc2NyaXB0cyBmb3IgcGFja2FnZU1hbmFnZXI6ICcgKyB0aGlzLmFwcC5wYWNrYWdlLnBhY2thZ2VNYW5hZ2VyKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbW1hbmRzO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlclN5bnRoQ29tbWFuZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbXG4gICAgICAuLi4odGhpcy5iYXNlT3B0aW9ucy5wcmVTeW50aENvbW1hbmRzID8/IFtdKSxcbiAgICAgICducHggcHJvamVuIGJ1aWxkJyxcbiAgICAgIC4uLih0aGlzLmJhc2VPcHRpb25zLnBvc3RTeW50aENvbW1hbmRzID8/IFtdKSxcbiAgICBdO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlckFzc2V0VXBsb2FkQ29tbWFuZHMoc3RhZ2VOYW1lPzogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbXG4gICAgICBgbnB4IHByb2plbiBwdWJsaXNoOmFzc2V0cyR7c3RhZ2VOYW1lID8gYDoke3N0YWdlTmFtZX1gIDogJyd9YCxcbiAgICBdO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlckFzc2VtYmx5VXBsb2FkQ29tbWFuZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbXG4gICAgICAnbnB4IHByb2plbiBidW1wJyxcbiAgICAgICducHggcHJvamVuIHJlbGVhc2U6cHVzaC1hc3NlbWJseScsXG4gICAgXTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJEZXBsb3lDb21tYW5kcyhzdGFnZU5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAgYG5weCBwcm9qZW4gZGVwbG95OiR7c3RhZ2VOYW1lfWAsXG4gICAgXTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJEaWZmQ29tbWFuZHMoc3RhZ2VOYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGBucHggcHJvamVuIGRpZmY6JHtzdGFnZU5hbWV9YCxcbiAgICBdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVNhZmVTdGFnZU5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBSZW1vdmUgbm9uLWFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFuZCBzcGxpdCBpbnRvIHdvcmRzXG4gICAgY29uc3Qgd29yZHMgPSBuYW1lLnJlcGxhY2UoL1teYS16QS1aMC05XSsvZywgJyAnKS50cmltKCkuc3BsaXQoL1xccysvKTtcblxuICAgIC8vIENhcGl0YWxpemUgdGhlIGZpcnN0IGxldHRlciBvZiBlYWNoIHdvcmQgYW5kIGpvaW4gdGhlbVxuICAgIHJldHVybiB3b3Jkcy5tYXAoKHdvcmQpID0+IHtcbiAgICAgIHJldHVybiB3b3JkLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKS50b0xvd2VyQ2FzZSgpO1xuICAgIH0pLmpvaW4oJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGdlbmVyYXRlcyB0aGUgZW50cnkgcG9pbnQgZm9yIHRoZSBhcHBsaWNhdGlvbiwgaW5jbHVkaW5nIGludGVyZmFjZXMgYW5kIGNsYXNzZXNcbiAgICogbmVjZXNzYXJ5IHRvIHNldCB1cCB0aGUgcGlwZWxpbmUgYW5kIGRlZmluZSB0aGUgQVdTIENESyBzdGFja3MgZm9yIGRpZmZlcmVudCBlbnZpcm9ubWVudHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlQXBwbGljYXRpb25FbnRyeXBvaW50KCkge1xuICAgIGxldCBwcm9wc0NvZGUgPSAnJztcbiAgICBsZXQgYXBwQ29kZSA9ICcnO1xuXG4gICAgaWYgKHRoaXMuYmFzZU9wdGlvbnMucGVyc29uYWxTdGFnZSkge1xuICAgICAgcHJvcHNDb2RlICs9IGAgIC8qKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdXNlZCB0byBnZW5lcmF0ZSBhIHBlcnNvbmFsIHN0YWNrLiAqL1xuICBwcm92aWRlUGVyc29uYWxTdGFjazogKGFwcDogQXBwLCBzdGFja0lkOiBzdHJpbmcsIHByb3BzOiBQaXBlbGluZUFwcFN0YWNrUHJvcHMpID0+IFN0YWNrO1xuYDtcbiAgICAgIGFwcENvZGUgKz0gYCAgICAvLyBJZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgVVNFUiBpcyBzZXQgYW5kIGEgZnVuY3Rpb24gaXMgcHJvdmlkZWQgZm9yIGNyZWF0aW5nIGEgcGVyc29uYWwgc3RhY2ssIGl0IGlzIGNhbGxlZCB3aXRoIG5lY2Vzc2FyeSBhcmd1bWVudHMuXG4gICAgaWYgKHByb3BzLnByb3ZpZGVQZXJzb25hbFN0YWNrICYmIHByb2Nlc3MuZW52LlVTRVIpIHtcbiAgICAgIGNvbnN0IHN0YWdlTmFtZSA9ICdwZXJzb25hbC0nICsgcHJvY2Vzcy5lbnYuVVNFUi50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xcXFxcXC8vZywgJy0nKTtcbiAgICAgIHByb3BzLnByb3ZpZGVQZXJzb25hbFN0YWNrKHRoaXMsICcke3RoaXMuc3RhY2tQcmVmaXh9LXBlcnNvbmFsJywgeyBlbnY6IHsgYWNjb3VudDogJyR7dGhpcy5iYXNlT3B0aW9ucy5wZXJzb25hbFN0YWdlLmVudi5hY2NvdW50fScsIHJlZ2lvbjogJyR7dGhpcy5iYXNlT3B0aW9ucy5wZXJzb25hbFN0YWdlLmVudi5yZWdpb259JyB9LCBzdGFja05hbWU6IFxcYCR7dGhpcy5zdGFja1ByZWZpeH0tXFwke3N0YWdlTmFtZX1cXGAsIHN0YWdlTmFtZSB9KTtcbiAgICB9XG5gO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmJhc2VPcHRpb25zLmZlYXR1cmVTdGFnZXMpIHtcbiAgICAgIHByb3BzQ29kZSArPSBgICAvKiogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHVzZWQgdG8gZ2VuZXJhdGUgYSBmZWF0dXJlIHN0YWNrLiAqL1xuICBwcm92aWRlRmVhdHVyZVN0YWNrOiAoYXBwOiBBcHAsIHN0YWNrSWQ6IHN0cmluZywgcHJvcHM6IFBpcGVsaW5lQXBwU3RhY2tQcm9wcykgPT4gU3RhY2s7XG5gO1xuICAgICAgYXBwQ29kZSArPSBgICAgIC8vIElmIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBCUkFOQ0ggaXMgc2V0IGFuZCBhIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGZvciBjcmVhdGluZyBhIGZlYXR1cmUgc3RhY2ssIGl0IGlzIGNhbGxlZCB3aXRoIG5lY2Vzc2FyeSBhcmd1bWVudHMuXG4gICAgaWYgKHByb3BzLnByb3ZpZGVGZWF0dXJlU3RhY2sgJiYgcHJvY2Vzcy5lbnYuQlJBTkNIKSB7XG4gICAgICBjb25zdCBzdGFnZU5hbWUgPSAnZmVhdHVyZS0nICsgcHJvY2Vzcy5lbnYuQlJBTkNILnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxcXFxcLy9nLCAnLScpO1xuICAgICAgcHJvcHMucHJvdmlkZUZlYXR1cmVTdGFjayh0aGlzLCAnJHt0aGlzLnN0YWNrUHJlZml4fS1mZWF0dXJlJywgeyBlbnY6IHsgYWNjb3VudDogJyR7dGhpcy5iYXNlT3B0aW9ucy5mZWF0dXJlU3RhZ2VzLmVudi5hY2NvdW50fScsIHJlZ2lvbjogJyR7dGhpcy5iYXNlT3B0aW9ucy5mZWF0dXJlU3RhZ2VzLmVudi5yZWdpb259JyB9LCBzdGFja05hbWU6IFxcYCR7dGhpcy5zdGFja1ByZWZpeH0tXFwke3N0YWdlTmFtZX1cXGAsIHN0YWdlTmFtZSB9KTtcbiAgICB9XG5gO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qgc3RhZ2Ugb2YgdGhpcy5iYXNlT3B0aW9ucy5zdGFnZXMpIHtcbiAgICAgIGNvbnN0IG5hbWVVcHBlckZpcnN0ID0gdGhpcy5jcmVhdGVTYWZlU3RhZ2VOYW1lKHN0YWdlLm5hbWUpO1xuXG4gICAgICBwcm9wc0NvZGUgKz0gYCAgLyoqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB1c2VkIHRvIGdlbmVyYXRlIGEgJHtzdGFnZS5uYW1lfSBzdGFjay4gKi9cbiAgcHJvdmlkZSR7bmFtZVVwcGVyRmlyc3R9U3RhY2s6IChhcHA6IEFwcCwgc3RhY2tJZDogc3RyaW5nLCBwcm9wczogUGlwZWxpbmVBcHBTdGFja1Byb3BzKSA9PiBTdGFjaztcbmA7XG4gICAgICBhcHBDb2RlICs9IGAgICAgLy8gSWYgYSBmdW5jdGlvbiBpcyBwcm92aWRlZCBmb3IgY3JlYXRpbmcgYSAke3N0YWdlLm5hbWV9IHN0YWNrLCBpdCBpcyBjYWxsZWQgd2l0aCBuZWNlc3NhcnkgYXJndW1lbnRzLlxuICAgIGlmIChwcm9wcy5wcm92aWRlJHtuYW1lVXBwZXJGaXJzdH1TdGFjaykge1xuICAgICAgcHJvcHMucHJvdmlkZSR7bmFtZVVwcGVyRmlyc3R9U3RhY2sodGhpcywgJyR7dGhpcy5zdGFja1ByZWZpeH0tJHtzdGFnZS5uYW1lfScsIHsgZW52OiB7IGFjY291bnQ6ICcke3N0YWdlLmVudi5hY2NvdW50fScsIHJlZ2lvbjogJyR7c3RhZ2UuZW52LnJlZ2lvbn0nIH0sIHN0YWNrTmFtZTogJyR7dGhpcy5zdGFja1ByZWZpeH0tJHtzdGFnZS5uYW1lfScsIHN0YWdlTmFtZTogJyR7c3RhZ2UubmFtZX0nIH0pO1xuICAgIH1cbmA7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBzdGFnZSBvZiAodGhpcy5iYXNlT3B0aW9ucy5pbmRlcGVuZGVudFN0YWdlcyA/PyBbXSkpIHtcbiAgICAgIGNvbnN0IG5hbWVVcHBlckZpcnN0ID0gdGhpcy5jcmVhdGVTYWZlU3RhZ2VOYW1lKHN0YWdlLm5hbWUpO1xuXG4gICAgICBwcm9wc0NvZGUgKz0gYCAgLyoqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB1c2VkIHRvIGdlbmVyYXRlIGEgJHtzdGFnZS5uYW1lfSBzdGFjay4gKi9cbiAgcHJvdmlkZSR7bmFtZVVwcGVyRmlyc3R9U3RhY2s6IChhcHA6IEFwcCwgc3RhY2tJZDogc3RyaW5nLCBwcm9wczogUGlwZWxpbmVBcHBTdGFja1Byb3BzKSA9PiBTdGFjaztcbmA7XG4gICAgICBhcHBDb2RlICs9IGAgICAgLy8gSWYgYSBmdW5jdGlvbiBpcyBwcm92aWRlZCBmb3IgY3JlYXRpbmcgYSAke3N0YWdlLm5hbWV9IHN0YWNrLCBpdCBpcyBjYWxsZWQgd2l0aCBuZWNlc3NhcnkgYXJndW1lbnRzLlxuICAgIGlmIChwcm9wcy5wcm92aWRlJHtuYW1lVXBwZXJGaXJzdH1TdGFjaykge1xuICAgICAgcHJvcHMucHJvdmlkZSR7bmFtZVVwcGVyRmlyc3R9U3RhY2sodGhpcywgJyR7dGhpcy5zdGFja1ByZWZpeH0tJHtzdGFnZS5uYW1lfScsIHsgZW52OiB7IGFjY291bnQ6ICcke3N0YWdlLmVudi5hY2NvdW50fScsIHJlZ2lvbjogJyR7c3RhZ2UuZW52LnJlZ2lvbn0nIH0sIHN0YWNrTmFtZTogJyR7dGhpcy5zdGFja1ByZWZpeH0tJHtzdGFnZS5uYW1lfScsIHN0YWdlTmFtZTogJyR7c3RhZ2UubmFtZX0nIH0pO1xuICAgIH1cbmA7XG4gICAgfVxuXG4gICAgY29uc3QgYXBwRmlsZSA9IG5ldyBUZXh0RmlsZSh0aGlzLnByb2plY3QsIGAke3RoaXMuYXBwLnNyY2Rpcn0vYXBwLnRzYCk7XG4gICAgYXBwRmlsZS5hZGRMaW5lKGAvLyAke1BST0pFTl9NQVJLRVJ9XG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IHsgQXBwLCBBcHBQcm9wcywgU3RhY2ssIFN0YWNrUHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbi8qKlxuICogUGlwZWxpbmVBcHBQcm9wcyBpcyBhbiBleHRlbnNpb24gb2YgQXBwUHJvcHMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIEFXUyBDREsgY29yZS5cbiAqIEl0IGluY2x1ZGVzIG9wdGlvbmFsIGZ1bmN0aW9ucyB0byBwcm92aWRlIEFXUyBTdGFja3MgZm9yIGRpZmZlcmVudCBzdGFnZXMuXG4gKlxuICogVXNlIHRoZXNlIGZ1bmN0aW9ucyB0byBpbnN0YW50aWF0ZSB5b3VyIGFwcGxpY2F0aW9uIHN0YWNrcyB3aXRoIHRoZSBwYXJhbWV0ZXJzIGZvclxuICogZWFjaCBzdGFnZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lQXBwUHJvcHMgZXh0ZW5kcyBBcHBQcm9wcyB7XG4ke3Byb3BzQ29kZX1cbn1cblxuLyoqXG4gKiBQaXBlbGluZUFwcFN0YWNrUHJvcHMgaXMgYW4gZXh0ZW5zaW9uIG9mIFN0YWNrUHJvcHMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIEFXUyBDREsgY29yZS5cbiAqIEl0IGluY2x1ZGVzIGFuIGFkZGl0aW9uYWwgcHJvcGVydHkgdG8gc3BlY2lmeSB0aGUgc3RhZ2UgbmFtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUFwcFN0YWNrUHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIFBpcGVsaW5lQXBwIGNsYXNzIGV4dGVuZHMgdGhlIEFwcCBjbGFzcyBmcm9tIEFXUyBDREsgYW5kIG92ZXJyaWRlcyB0aGUgY29uc3RydWN0b3IgdG8gc3VwcG9ydFxuICogZGlmZmVyZW50IHN0YWdlcyBvZiB0aGUgYXBwbGljYXRpb24gKGRldmVsb3BtZW50LCBwcm9kdWN0aW9uLCBwZXJzb25hbCwgZmVhdHVyZSkgYnkgaW52b2tpbmcgdGhlIHByb3ZpZGVkXG4gKiBzdGFjay1wcm92aWRpbmcgZnVuY3Rpb25zIGZyb20gdGhlIHByb3BzLlxuICovXG5leHBvcnQgY2xhc3MgUGlwZWxpbmVBcHAgZXh0ZW5kcyBBcHAge1xuICBjb25zdHJ1Y3Rvcihwcm9wczogUGlwZWxpbmVBcHBQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuJHthcHBDb2RlfVxuXG4gIH1cbn1cbmApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHNldHMgdXAgdGFza3MgdG8gcHVibGlzaCBDREsgYXNzZXRzIHRvIGFsbCBhY2NvdW50cyBhbmQgaGFuZGxlIHZlcnNpb25pbmcsIGluY2x1ZGluZyBidW1waW5nIHRoZSB2ZXJzaW9uXG4gICAqIGJhc2VkIG9uIHRoZSBsYXRlc3QgZ2l0IHRhZyBhbmQgcHVzaGluZyB0aGUgQ0RLIGFzc2VtYmx5IHRvIHRoZSBwYWNrYWdlIHJlcG9zaXRvcnkuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlUmVsZWFzZVRhc2tzKCkge1xuICAgIGNvbnN0IHN0YWdlcyA9IFsuLi50aGlzLmJhc2VPcHRpb25zLnN0YWdlcywgLi4udGhpcy5iYXNlT3B0aW9ucy5pbmRlcGVuZGVudFN0YWdlcyA/PyBbXV07XG4gICAgLy8gVGFzayB0byBwdWJsaXNoIHRoZSBDREsgYXNzZXRzIHRvIGFsbCBhY2NvdW50c1xuICAgIGZvciAoY29uc3Qgc3RhZ2Ugb2Ygc3RhZ2VzKSB7XG4gICAgICB0aGlzLnByb2plY3QuYWRkVGFzayhgcHVibGlzaDphc3NldHM6JHtzdGFnZS5uYW1lfWAsIHtcbiAgICAgICAgc3RlcHM6IFt7XG4gICAgICAgICAgZXhlYzogYG5weCBjZGstYXNzZXRzIC1wICR7dGhpcy5hcHAuY2RrQ29uZmlnLmNka291dH0vJHt0aGlzLnN0YWNrUHJlZml4fS0ke3N0YWdlLm5hbWV9LmFzc2V0cy5qc29uIHB1Ymxpc2hgLFxuICAgICAgICB9XSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygncHVibGlzaDphc3NldHMnLCB7XG4gICAgICBzdGVwczogc3RhZ2VzLm1hcChzdGFnZSA9PiAoe1xuICAgICAgICBzcGF3bjogYHB1Ymxpc2g6YXNzZXRzOiR7c3RhZ2UubmFtZX1gLFxuICAgICAgfSkpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ2J1bXAnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0J1bXBzIHZlcnNpb24gYmFzZWQgb24gbGF0ZXN0IGdpdCB0YWcnLFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV4ZWM6ICdwaXBlbGluZXMtcmVsZWFzZSBidW1wJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGV4ZWM6ICdnaXQgcHVzaCAtLXRhZ3MnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygncmVsZWFzZTpwdXNoLWFzc2VtYmx5Jywge1xuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV4ZWM6IGBwaXBlbGluZXMtcmVsZWFzZSBjcmVhdGUtbWFuaWZlc3QgXCIke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9XCIgIFwiJHt0aGlzLmJhc2VPcHRpb25zLnBrZ05hbWVzcGFjZX1cImAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjd2Q6IHRoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXQsXG4gICAgICAgICAgZXhlYzogJ25wbSB2ZXJzaW9uIC0tbm8tZ2l0LXRhZy12ZXJzaW9uIGZyb20tZ2l0JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGN3ZDogdGhpcy5hcHAuY2RrQ29uZmlnLmNka291dCxcbiAgICAgICAgICBleGVjOiAnbnBtIHB1Ymxpc2gnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBzZXRzIHVwIHRhc2tzIGZvciB0aGUgcGVyc29uYWwgZGVwbG95bWVudCBzdGFnZSwgaW5jbHVkaW5nIGRlcGxveW1lbnQsIHdhdGNoaW5nIGZvciBjaGFuZ2VzLFxuICAgKiBjb21wYXJpbmcgY2hhbmdlcyAoZGlmZiksIGFuZCBkZXN0cm95aW5nIHRoZSBzdGFjayB3aGVuIG5vIGxvbmdlciBuZWVkZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlUGVyc29uYWxTdGFnZSgpIHtcbiAgICBjb25zdCBzdGFja0lkID0gdGhpcy5nZXRDbGlTdGFja1BhdHRlcm4oJ3BlcnNvbmFsJyk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ2RlcGxveTpwZXJzb25hbCcsIHtcbiAgICAgIGV4ZWM6IGBjZGsgZGVwbG95IC0tb3V0cHV0cy1maWxlIGNkay1vdXRwdXRzLXBlcnNvbmFsLmpzb24gJHtzdGFja0lkfWAsXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ3dhdGNoOnBlcnNvbmFsJywge1xuICAgICAgZXhlYzogYGNkayBkZXBsb3kgLS1vdXRwdXRzLWZpbGUgY2RrLW91dHB1dHMtcGVyc29uYWwuanNvbiAtLXdhdGNoIC0taG90c3dhcCAke3N0YWNrSWR9YCxcbiAgICB9KTtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygnZGlmZjpwZXJzb25hbCcsIHtcbiAgICAgIGV4ZWM6IGBjZGsgZGlmZiAke3N0YWNrSWR9YCxcbiAgICB9KTtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygnZGVzdHJveTpwZXJzb25hbCcsIHtcbiAgICAgIGV4ZWM6IGBjZGsgZGVzdHJveSAke3N0YWNrSWR9YCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBzZXRzIHVwIHRhc2tzIGZvciB0aGUgZmVhdHVyZSBkZXBsb3ltZW50IHN0YWdlLCBpbmNsdWRpbmcgZGVwbG95bWVudCwgY29tcGFyaW5nIGNoYW5nZXMgKGRpZmYpLFxuICAgKiBhbmQgZGVzdHJveWluZyB0aGUgc3RhY2sgd2hlbiBubyBsb25nZXIgbmVlZGVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUZlYXR1cmVTdGFnZSgpIHtcbiAgICBjb25zdCBzdGFja0lkID0gdGhpcy5nZXRDbGlTdGFja1BhdHRlcm4oJ2ZlYXR1cmUnKTtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygnZGVwbG95OmZlYXR1cmUnLCB7XG4gICAgICBleGVjOiBgY2RrIC0tb3V0cHV0cy1maWxlIGNkay1vdXRwdXRzLWZlYXR1cmUuanNvbiAtLXByb2dyZXNzIGV2ZW50cyAtLXJlcXVpcmUtYXBwcm92YWwgbmV2ZXIgZGVwbG95ICR7c3RhY2tJZH1gLFxuICAgIH0pO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCdkaWZmOmZlYXR1cmUnLCB7XG4gICAgICBleGVjOiBgY2RrIGRpZmYgJHtzdGFja0lkfWAsXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ2Rlc3Ryb3k6ZmVhdHVyZScsIHtcbiAgICAgIGV4ZWM6IGBjZGsgZGVzdHJveSAke3N0YWNrSWR9YCxcbiAgICB9KTtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygnd2F0Y2g6ZmVhdHVyZScsIHtcbiAgICAgIGV4ZWM6IGBjZGsgZGVwbG95IC0tb3V0cHV0cy1maWxlIGNkay1vdXRwdXRzLWZlYXR1cmUuanNvbiAtLXdhdGNoIC0taG90c3dhcCAke3N0YWNrSWR9YCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBzZXRzIHVwIHRhc2tzIGZvciB0aGUgZ2VuZXJhbCBwaXBlbGluZSBzdGFnZXMgKGRldiwgcHJvZCksIGluY2x1ZGluZyBkZXBsb3ltZW50IGFuZCBjb21wYXJpbmcgY2hhbmdlcyAoZGlmZikuXG4gICAqIEBwYXJhbSB7RGVwbG95U3RhZ2VPcHRpb25zfSBzdGFnZSAtIFRoZSBzdGFnZSB0byBjcmVhdGVcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVQaXBlbGluZVN0YWdlKHN0YWdlOiBEZXBsb3ltZW50U3RhZ2UpIHtcbiAgICBjb25zdCBzdGFja0lkID0gdGhpcy5nZXRDbGlTdGFja1BhdHRlcm4oc3RhZ2UubmFtZSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soYGRlcGxveToke3N0YWdlLm5hbWV9YCwge1xuICAgICAgZXhlYzogYGNkayAtLWFwcCAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9IC0tb3V0cHV0cy1maWxlIGNkay1vdXRwdXRzLSR7c3RhZ2UubmFtZX0uanNvbiAtLXByb2dyZXNzIGV2ZW50cyAtLXJlcXVpcmUtYXBwcm92YWwgbmV2ZXIgZGVwbG95ICR7c3RhY2tJZH1gLFxuICAgIH0pO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKGBkaWZmOiR7c3RhZ2UubmFtZX1gLCB7XG4gICAgICBleGVjOiBgY2RrIC0tYXBwICR7dGhpcy5hcHAuY2RrQ29uZmlnLmNka291dH0gZGlmZiAke3N0YWNrSWR9YCxcbiAgICB9KTtcbiAgICBpZiAoc3RhZ2Uud2F0Y2hhYmxlKSB7XG4gICAgICB0aGlzLnByb2plY3QuYWRkVGFzayhgd2F0Y2g6JHtzdGFnZS5uYW1lfWAsIHtcbiAgICAgICAgZXhlYzogYGNkayBkZXBsb3kgLS1vdXRwdXRzLWZpbGUgY2RrLW91dHB1dHMtJHtzdGFnZS5uYW1lfS5qc29uIC0td2F0Y2ggLS1ob3Rzd2FwICR7c3RhY2tJZH1gLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHNldHMgdXAgdGFza3MgZm9yIHRoZSBpbmRlcGVuZGVudCBzdGFnZXMgaW5jbHVkaW5nIGRlcGxveW1lbnQgYW5kIGNvbXBhcmluZyBjaGFuZ2VzIChkaWZmKS5cbiAgICogQHBhcmFtIHtOYW1lZFN0YWdlT3B0aW9uc30gc3RhZ2UgLSBUaGUgc3RhZ2UgdG8gY3JlYXRlXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlSW5kZXBlbmRlbnRTdGFnZShzdGFnZTogSW5kZXBlbmRlbnRTdGFnZSkge1xuICAgIGNvbnN0IHN0YWNrSWQgPSB0aGlzLmdldENsaVN0YWNrUGF0dGVybihzdGFnZS5uYW1lKTtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzayhgZGVwbG95OiR7c3RhZ2UubmFtZX1gLCB7XG4gICAgICBleGVjOiBgY2RrIC0tYXBwICR7dGhpcy5hcHAuY2RrQ29uZmlnLmNka291dH0gLS1vdXRwdXRzLWZpbGUgY2RrLW91dHB1dHMtJHtzdGFnZS5uYW1lfS5qc29uIC0tcHJvZ3Jlc3MgZXZlbnRzIC0tcmVxdWlyZS1hcHByb3ZhbCBuZXZlciBkZXBsb3kgJHtzdGFja0lkfWAsXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soYGRpZmY6JHtzdGFnZS5uYW1lfWAsIHtcbiAgICAgIGV4ZWM6IGBjZGsgLS1hcHAgJHt0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0fSBkaWZmICR7c3RhY2tJZH1gLFxuICAgIH0pO1xuICAgIGlmIChzdGFnZS53YXRjaGFibGUpIHtcbiAgICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKGB3YXRjaDoke3N0YWdlLm5hbWV9YCwge1xuICAgICAgICBleGVjOiBgY2RrIGRlcGxveSAtLW91dHB1dHMtZmlsZSBjZGstb3V0cHV0cy0ke3N0YWdlLm5hbWV9Lmpzb24gLS13YXRjaCAtLWhvdHN3YXAgJHtzdGFja0lkfWAsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q2xpU3RhY2tQYXR0ZXJuKHN0YWdlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5iYXNlT3B0aW9ucy5kZXBsb3lTdWJTdGFja3MgPyBgJHt0aGlzLnN0YWNrUHJlZml4fS0ke3N0YWdlfSAke3RoaXMuc3RhY2tQcmVmaXh9LSR7c3RhZ2V9LypgIDogYCR7dGhpcy5zdGFja1ByZWZpeH0tJHtzdGFnZX1gO1xuICB9XG59Il19
|
package/lib/awscdk/bash.js
CHANGED
|
@@ -73,5 +73,5 @@ class BashCDKPipeline extends base_1.CDKPipeline {
|
|
|
73
73
|
}
|
|
74
74
|
exports.BashCDKPipeline = BashCDKPipeline;
|
|
75
75
|
_a = JSII_RTTI_SYMBOL_1;
|
|
76
|
-
BashCDKPipeline[_a] = { fqn: "projen-pipelines.BashCDKPipeline", version: "0.0.
|
|
76
|
+
BashCDKPipeline[_a] = { fqn: "projen-pipelines.BashCDKPipeline", version: "0.0.73" };
|
|
77
77
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYmFzaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUEwQztBQUMxQyxpQ0FBeUQ7QUFDekQsc0NBQTJDO0FBTTNDLE1BQWEsZUFBZ0IsU0FBUSxrQkFBVztJQUU5QyxZQUFZLEdBQStCLEVBQUUsT0FBK0I7UUFDMUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVwQixNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFRLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUM3QyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNqQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRW5CLE1BQU0sQ0FBQyxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUMvQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FB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Q3BGLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDN0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXJCLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyx1QkFBYyxDQUFDLElBQUksQ0FBQztJQUM3QixDQUFDOztBQXhFSCwwQ0EwRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXh0RmlsZSwgYXdzY2RrIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IENES1BpcGVsaW5lLCBDREtQaXBlbGluZU9wdGlvbnMgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgUGlwZWxpbmVFbmdpbmUgfSBmcm9tICcuLi9lbmdpbmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2hDREtQaXBlbGluZU9wdGlvbnMgZXh0ZW5kcyBDREtQaXBlbGluZU9wdGlvbnMge1xuICAvL1xufVxuXG5leHBvcnQgY2xhc3MgQmFzaENES1BpcGVsaW5lIGV4dGVuZHMgQ0RLUGlwZWxpbmUge1xuXG4gIGNvbnN0cnVjdG9yKGFwcDogYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHAsIG9wdGlvbnM6IEJhc2hDREtQaXBlbGluZU9wdGlvbnMpIHtcbiAgICBzdXBlcihhcHAsIG9wdGlvbnMpO1xuXG4gICAgY29uc3QgcmVhZG1lID0gbmV3IFRleHRGaWxlKHRoaXMsICdwaXBlbGluZS5tZCcsIHsgbGluZXM6IFtdIH0pO1xuXG4gICAgcmVhZG1lLmFkZExpbmUoJyMgSG93IHRvIHJ1biB5b3VyIHBpcGVsaW5lJyk7XG4gICAgcmVhZG1lLmFkZExpbmUoJycpO1xuICAgIHJlYWRtZS5hZGRMaW5lKCcjIyBCdWlsZCBwaGFzZScpO1xuICAgIHJlYWRtZS5hZGRMaW5lKCcnKTtcblxuICAgIHJlYWRtZS5hZGRMaW5lKCdTeW50aGVzaXplIHlvdXIgQ0RLIHByb2plY3Q6Jyk7XG4gICAgcmVhZG1lLmFkZExpbmUoJ2BgYGJhc2gnKTtcbiAgICByZWFkbWUuYWRkTGluZShgJHsob3B0aW9ucy5wcmVJbnN0YWxsU3RlcHMgPz8gW10pLmZsYXRNYXAocyA9PiBzLnRvQmFzaCgpLmNvbW1hbmRzKS5qb2luKCdcXG4nKX1gKTtcbiAgICByZWFkbWUuYWRkTGluZShgJHt0aGlzLnJlbmRlckluc3RhbGxDb21tYW5kcygpLmpvaW4oJ1xcbicpfWApO1xuICAgIHJlYWRtZS5hZGRMaW5lKGAkeyhvcHRpb25zLnByZVN5bnRoU3RlcHMgPz8gW10pLmZsYXRNYXAocyA9PiBzLnRvQmFzaCgpLmNvbW1hbmRzKS5qb2luKCdcXG4nKX1gKTtcbiAgICByZWFkbWUuYWRkTGluZShgJHt0aGlzLnJlbmRlclN5bnRoQ29tbWFuZHMoKS5qb2luKCdcXG4nKX1gKTtcbiAgICByZWFkbWUuYWRkTGluZShgJHsob3B0aW9ucy5wb3N0U3ludGhTdGVwcyA/PyBbXSkuZmxhdE1hcChzID0+IHMudG9CYXNoKCkuY29tbWFuZHMpLmpvaW4oJ1xcbicpfWApO1xuICAgIHJlYWRtZS5hZGRMaW5lKCdgYGAnKTtcbiAgICByZWFkbWUuYWRkTGluZSgnJyk7XG5cbiAgICByZWFkbWUuYWRkTGluZSgnUHVibGlzaCBhbGwgeW91ciBDREsgYXNzZXRzIGxpa2UgTGFtYmRhIGZ1bmN0aW9uIGNvZGUgYW5kIGNvbnRhaW5lciBpbWFnZXM6Jyk7XG4gICAgcmVhZG1lLmFkZExpbmUoJ2BgYGJhc2gnKTtcbiAgICByZWFkbWUuYWRkTGluZShgJHsob3B0aW9ucy5wcmVJbnN0YWxsU3RlcHMgPz8gW10pLmZsYXRNYXAocyA9PiBzLnRvQmFzaCgpLmNvbW1hbmRzKS5qb2luKCdcXG4nKX1gKTtcbiAgICByZWFkbWUuYWRkTGluZShgJHt0aGlzLnJlbmRlckluc3RhbGxDb21tYW5kcygpLmpvaW4oJ1xcbicpfWApO1xuICAgIHJlYWRtZS5hZGRMaW5lKGAke3RoaXMucmVuZGVyQXNzZXRVcGxvYWRDb21tYW5kcygpLmpvaW4oJ1xcbicpfWApO1xuICAgIHJlYWRtZS5hZGRMaW5lKCdgYGAnKTtcbiAgICByZWFkbWUuYWRkTGluZSgnJyk7XG4gICAgcmVhZG1lLmFkZExpbmUoJ0lmIHlvdSB3YW50IHRvIHN0b3JlIHlvdXIgY2xvdWQgYXNzZW1ibHkgYW5kIGFzc2V0cyBmb3IgZnV0dXJlIHVzZSBvciBjb21wbGlhbmNlIHJlYXNvbnMsIHVzZTonKTtcbiAgICByZWFkbWUuYWRkTGluZSgnYGBgYmFzaCcpO1xuICAgIHJlYWRtZS5hZGRMaW5lKGAkeyhvcHRpb25zLnByZUluc3RhbGxTdGVwcyA/PyBbXSkuZmxhdE1hcChzID0+IHMudG9CYXNoKCkuY29tbWFuZHMpLmpvaW4oJ1xcbicpfWApO1xuICAgIHJlYWRtZS5hZGRMaW5lKGAke3RoaXMucmVuZGVySW5zdGFsbENvbW1hbmRzKCkuam9pbignXFxuJyl9YCk7XG4gICAgcmVhZG1lLmFkZExpbmUoYCR7dGhpcy5yZW5kZXJBc3NldFVwbG9hZENvbW1hbmRzKCkuam9pbignXFxuJyl9YCk7XG4gICAgcmVhZG1lLmFkZExpbmUoYCR7dGhpcy5yZW5kZXJBc3NlbWJseVVwbG9hZENvbW1hbmRzKCkuam9pbignXFxuJyl9YCk7XG4gICAgcmVhZG1lLmFkZExpbmUoJ2BgYCcpO1xuICAgIHJlYWRtZS5hZGRMaW5lKCcnKTtcbiAgICByZWFkbWUuYWRkTGluZSgnIyMgRGVwbG95bWVudCBwaGFzZScpO1xuICAgIHJlYWRtZS5hZGRMaW5lKCcnKTtcbiAgICByZWFkbWUuYWRkTGluZSgnRm9yIGV2ZXJ5IHN0YWdlIHNvbWUgc2NyaXB0cyBhcmUgZ2VuZXJhdGVkIGZvciBkaWZmIGFuZCBkZXBsb3knKTtcbiAgICByZWFkbWUuYWRkTGluZSgnJyk7XG5cbiAgICBmb3IgKGNvbnN0IHN0YWdlIG9mIG9wdGlvbnMuc3RhZ2VzKSB7XG4gICAgICByZWFkbWUuYWRkTGluZShgU3RhZ2U6ICR7c3RhZ2UubmFtZX1gKTtcbiAgICAgIHJlYWRtZS5hZGRMaW5lKCdgYGBiYXNoJyk7XG4gICAgICByZWFkbWUuYWRkTGluZShgJHt0aGlzLnJlbmRlckRpZmZDb21tYW5kcyhzdGFnZS5uYW1lKS5qb2luKCdcXG4nKX1gKTtcbiAgICAgIHJlYWRtZS5hZGRMaW5lKCcnKTtcbiAgICAgIHJlYWRtZS5hZGRMaW5lKGAke3RoaXMucmVuZGVyRGVwbG95Q29tbWFuZHMoc3RhZ2UubmFtZSkuam9pbignXFxuJyl9YCk7XG4gICAgICByZWFkbWUuYWRkTGluZSgnYGBgJyk7XG4gICAgICByZWFkbWUuYWRkTGluZSgnJyk7XG4gICAgfVxuXG4gICAgcmVhZG1lLmFkZExpbmUoJ1RoZSBzdGFnZSBgcGVyc29uYWxgIGlzIG1lYW50IHRvIGJlIGRlcGxveWVkIG1hbnVhbGx5IGJ5IHRoZSBkZXZlbG9wZXIgYW5kIGFsc28gaGFzIGEgd2F0Y2ggc2NyaXB0IGZvciBsaXZlIHVwZGF0ZXMuJyk7XG4gICAgcmVhZG1lLmFkZExpbmUoJ2BgYGJhc2gnKTtcbiAgICByZWFkbWUuYWRkTGluZSgnbnB4IHByb2plbiBkaWZmOnBlcnNvbmFsJyk7XG4gICAgcmVhZG1lLmFkZExpbmUoJ25weCBwcm9qZW4gZGVwbG95OnBlcnNvbmFsJyk7XG4gICAgcmVhZG1lLmFkZExpbmUoJ25weCBwcm9qZW4gZGVzdHJveTpwZXJzb25hbCcpO1xuICAgIHJlYWRtZS5hZGRMaW5lKCducHggcHJvamVuIHdhdGNoOnBlcnNvbmFsJyk7XG4gICAgcmVhZG1lLmFkZExpbmUoJ2BgYCcpO1xuICAgIHJlYWRtZS5hZGRMaW5lKCcnKTtcbiAgICByZWFkbWUuYWRkTGluZSgnVGhlIHN0YWdlIGBmZWF0dXJlYCBpcyBtZWFudCB0byBiZSBkZXBsb3llZCBmb3IgZmVhdHVyZSBicmFuY2hlcy4nKTtcbiAgICByZWFkbWUuYWRkTGluZSgnYGBgYmFzaCcpO1xuICAgIHJlYWRtZS5hZGRMaW5lKCducHggcHJvamVuIGRpZmY6ZmVhdHVyZScpO1xuICAgIHJlYWRtZS5hZGRMaW5lKCducHggcHJvamVuIGRlcGxveTpmZWF0dXJlJyk7XG4gICAgcmVhZG1lLmFkZExpbmUoJ25weCBwcm9qZW4gZGVzdHJveTpmZWF0dXJlJyk7XG4gICAgcmVhZG1lLmFkZExpbmUoJ2BgYCcpO1xuICAgIHJlYWRtZS5hZGRMaW5lKCcnKTtcblxuICB9XG5cbiAgcHVibGljIGVuZ2luZVR5cGUoKTogUGlwZWxpbmVFbmdpbmUge1xuICAgIHJldHVybiBQaXBlbGluZUVuZ2luZS5CQVNIO1xuICB9XG5cbn1cbiJdfQ==
|
package/lib/awscdk/github.js
CHANGED
|
@@ -6,9 +6,11 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
6
6
|
const workflows_model_1 = require("projen/lib/github/workflows-model");
|
|
7
7
|
const base_1 = require("./base");
|
|
8
8
|
const engine_1 = require("../engine");
|
|
9
|
+
const engines_1 = require("../engines");
|
|
9
10
|
const steps_1 = require("../steps");
|
|
10
11
|
const artifact_steps_1 = require("../steps/artifact-steps");
|
|
11
12
|
const aws_assume_role_step_1 = require("../steps/aws-assume-role.step");
|
|
13
|
+
const registries_1 = require("../steps/registries");
|
|
12
14
|
const DEFAULT_RUNNER_TAGS = ['ubuntu-latest'];
|
|
13
15
|
/**
|
|
14
16
|
* Implements a CDK Pipeline configured specifically for GitHub workflows.
|
|
@@ -23,9 +25,9 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
23
25
|
super(app, {
|
|
24
26
|
...options,
|
|
25
27
|
...options.useGithubPackagesForAssembly && {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
...
|
|
28
|
+
preInstallSteps: [
|
|
29
|
+
new registries_1.GithubPackagesLoginStep(app, { write: false }),
|
|
30
|
+
...options.preInstallSteps ?? [],
|
|
29
31
|
],
|
|
30
32
|
},
|
|
31
33
|
});
|
|
@@ -45,7 +47,7 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
45
47
|
;
|
|
46
48
|
this.useGithubPackages = this.needsVersionedArtifacts && (options.useGithubPackagesForAssembly ?? false);
|
|
47
49
|
if (this.useGithubPackages) {
|
|
48
|
-
app.npmrc.addRegistry('https://npm.pkg.github.com', this.
|
|
50
|
+
app.npmrc.addRegistry('https://npm.pkg.github.com', this.baseOptions.pkgNamespace);
|
|
49
51
|
app.npmrc.addConfig('//npm.pkg.github.com/:_authToken', '${GITHUB_TOKEN}');
|
|
50
52
|
app.npmrc.addConfig('//npm.pkg.github.com/:always-auth', 'true');
|
|
51
53
|
}
|
|
@@ -74,11 +76,11 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
74
76
|
sessionName: 'GitHubAction',
|
|
75
77
|
}));
|
|
76
78
|
}
|
|
77
|
-
steps.push(...this.
|
|
79
|
+
steps.push(...this.baseOptions.preInstallSteps ?? []);
|
|
78
80
|
steps.push(new steps_1.SimpleCommandStep(this.project, this.renderInstallCommands()));
|
|
79
|
-
steps.push(...this.
|
|
81
|
+
steps.push(...this.baseOptions.preSynthSteps ?? []);
|
|
80
82
|
steps.push(new steps_1.SimpleCommandStep(this.project, this.renderSynthCommands()));
|
|
81
|
-
steps.push(...this.
|
|
83
|
+
steps.push(...this.baseOptions.postSynthSteps ?? []);
|
|
82
84
|
steps.push(new artifact_steps_1.UploadArtifactStep(this.project, {
|
|
83
85
|
name: 'cloud-assembly',
|
|
84
86
|
path: `${this.app.cdkConfig.cdkout}/`,
|
|
@@ -92,13 +94,10 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
92
94
|
...githubSteps.reduce((acc, step) => ({ ...acc, ...step.env }), {}),
|
|
93
95
|
},
|
|
94
96
|
needs: [...githubSteps.flatMap(s => s.needs)],
|
|
95
|
-
permissions: {
|
|
97
|
+
permissions: (0, engines_1.mergeJobPermissions)({
|
|
96
98
|
idToken: workflows_model_1.JobPermission.WRITE,
|
|
97
99
|
contents: workflows_model_1.JobPermission.READ,
|
|
98
|
-
|
|
99
|
-
packages: workflows_model_1.JobPermission.READ,
|
|
100
|
-
},
|
|
101
|
-
},
|
|
100
|
+
}, ...githubSteps.flatMap(s => s.permissions).filter(p => p != undefined)),
|
|
102
101
|
steps: [
|
|
103
102
|
{
|
|
104
103
|
name: 'Checkout',
|
|
@@ -123,7 +122,7 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
123
122
|
name: 'cloud-assembly',
|
|
124
123
|
path: `${this.app.cdkConfig.cdkout}/`,
|
|
125
124
|
}),
|
|
126
|
-
...this.
|
|
125
|
+
...this.baseOptions.preInstallSteps ?? [],
|
|
127
126
|
new steps_1.SimpleCommandStep(this.project, this.renderInstallCommands()),
|
|
128
127
|
];
|
|
129
128
|
if (this.options.iamRoleArns.assetPublishingPerStage) {
|
|
@@ -150,13 +149,13 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
150
149
|
CI: 'true',
|
|
151
150
|
...ghSteps.reduce((acc, step) => ({ ...acc, ...step.env }), {}),
|
|
152
151
|
},
|
|
153
|
-
permissions: {
|
|
152
|
+
permissions: (0, engines_1.mergeJobPermissions)({
|
|
154
153
|
idToken: workflows_model_1.JobPermission.WRITE,
|
|
155
154
|
contents: this.needsVersionedArtifacts ? workflows_model_1.JobPermission.WRITE : workflows_model_1.JobPermission.READ,
|
|
156
155
|
...this.useGithubPackages && {
|
|
157
156
|
packages: workflows_model_1.JobPermission.WRITE,
|
|
158
157
|
},
|
|
159
|
-
},
|
|
158
|
+
}, ...ghSteps.flatMap(s => s.permissions).filter(p => p != undefined)),
|
|
160
159
|
steps: [
|
|
161
160
|
{
|
|
162
161
|
name: 'Checkout',
|
|
@@ -180,10 +179,10 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
180
179
|
roleArn: this.options.iamRoleArns?.deployment?.[stage.name] ?? this.options.iamRoleArns?.default,
|
|
181
180
|
region: stage.env.region,
|
|
182
181
|
}),
|
|
183
|
-
...this.
|
|
182
|
+
...this.baseOptions.preInstallSteps ?? [],
|
|
184
183
|
new steps_1.SimpleCommandStep(this.project, this.renderInstallCommands()),
|
|
185
|
-
new steps_1.SimpleCommandStep(this.project, this.renderInstallPackageCommands(`${this.
|
|
186
|
-
new steps_1.SimpleCommandStep(this.project, [`mv ./node_modules/${this.
|
|
184
|
+
new steps_1.SimpleCommandStep(this.project, this.renderInstallPackageCommands(`${this.baseOptions.pkgNamespace}/${this.app.name}@\${{github.event.inputs.version}}`)),
|
|
185
|
+
new steps_1.SimpleCommandStep(this.project, [`mv ./node_modules/${this.baseOptions.pkgNamespace}/${this.app.name} ${this.app.cdkConfig.cdkout}`]),
|
|
187
186
|
new steps_1.SimpleCommandStep(this.project, this.renderDeployCommands(stage.name)),
|
|
188
187
|
new artifact_steps_1.UploadArtifactStep(this.project, {
|
|
189
188
|
name: `cdk-outputs-${stage.name}`,
|
|
@@ -213,13 +212,10 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
213
212
|
CI: 'true',
|
|
214
213
|
...steps.reduce((acc, step) => ({ ...acc, ...step.env }), {}),
|
|
215
214
|
},
|
|
216
|
-
permissions: {
|
|
215
|
+
permissions: (0, engines_1.mergeJobPermissions)({
|
|
217
216
|
idToken: workflows_model_1.JobPermission.WRITE,
|
|
218
217
|
contents: workflows_model_1.JobPermission.READ,
|
|
219
|
-
|
|
220
|
-
packages: workflows_model_1.JobPermission.READ,
|
|
221
|
-
},
|
|
222
|
-
},
|
|
218
|
+
}, ...steps.flatMap(s => s.permissions).filter(p => p != undefined)),
|
|
223
219
|
steps: [
|
|
224
220
|
{
|
|
225
221
|
name: 'Checkout',
|
|
@@ -239,7 +235,7 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
239
235
|
name: 'cloud-assembly',
|
|
240
236
|
path: `${this.app.cdkConfig.cdkout}/`,
|
|
241
237
|
}),
|
|
242
|
-
...this.
|
|
238
|
+
...this.baseOptions.preInstallSteps ?? [],
|
|
243
239
|
new steps_1.SimpleCommandStep(this.project, this.renderInstallCommands()),
|
|
244
240
|
new steps_1.SimpleCommandStep(this.project, this.renderDeployCommands(stage.name)),
|
|
245
241
|
new artifact_steps_1.UploadArtifactStep(this.project, {
|
|
@@ -259,13 +255,10 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
259
255
|
CI: 'true',
|
|
260
256
|
...steps.reduce((acc, step) => ({ ...acc, ...step.env }), {}),
|
|
261
257
|
},
|
|
262
|
-
permissions: {
|
|
258
|
+
permissions: (0, engines_1.mergeJobPermissions)({
|
|
263
259
|
idToken: workflows_model_1.JobPermission.WRITE,
|
|
264
260
|
contents: workflows_model_1.JobPermission.READ,
|
|
265
|
-
|
|
266
|
-
packages: workflows_model_1.JobPermission.READ,
|
|
267
|
-
},
|
|
268
|
-
},
|
|
261
|
+
}, ...steps.flatMap(s => s.permissions).filter(p => p != undefined)),
|
|
269
262
|
steps: [
|
|
270
263
|
{
|
|
271
264
|
name: 'Checkout',
|
|
@@ -287,11 +280,11 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
287
280
|
roleArn: this.options.iamRoleArns?.deployment?.[stage.name] ?? this.options.iamRoleArns?.default,
|
|
288
281
|
region: stage.env.region,
|
|
289
282
|
}),
|
|
290
|
-
...this.
|
|
283
|
+
...this.baseOptions.preInstallSteps ?? [],
|
|
291
284
|
new steps_1.SimpleCommandStep(this.project, this.renderInstallCommands()),
|
|
292
|
-
...this.
|
|
285
|
+
...this.baseOptions.preSynthSteps ?? [],
|
|
293
286
|
new steps_1.SimpleCommandStep(this.project, this.renderSynthCommands()),
|
|
294
|
-
...this.
|
|
287
|
+
...this.baseOptions.postSynthSteps ?? [],
|
|
295
288
|
new steps_1.SimpleCommandStep(this.project, this.renderDiffCommands(stage.name)),
|
|
296
289
|
...stage.postDiffSteps ?? [],
|
|
297
290
|
new steps_1.SimpleCommandStep(this.project, this.renderDeployCommands(stage.name)),
|
|
@@ -322,10 +315,10 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
322
315
|
CI: 'true',
|
|
323
316
|
...steps.reduce((acc, step) => ({ ...acc, ...step.env }), {}),
|
|
324
317
|
},
|
|
325
|
-
permissions: {
|
|
318
|
+
permissions: (0, engines_1.mergeJobPermissions)({
|
|
326
319
|
idToken: workflows_model_1.JobPermission.WRITE,
|
|
327
320
|
contents: workflows_model_1.JobPermission.READ,
|
|
328
|
-
},
|
|
321
|
+
}, ...steps.flatMap(s => s.permissions).filter(p => p != undefined)),
|
|
329
322
|
steps: [
|
|
330
323
|
{
|
|
331
324
|
name: 'Checkout',
|
|
@@ -338,5 +331,5 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
338
331
|
}
|
|
339
332
|
exports.GithubCDKPipeline = GithubCDKPipeline;
|
|
340
333
|
_a = JSII_RTTI_SYMBOL_1;
|
|
341
|
-
GithubCDKPipeline[_a] = { fqn: "projen-pipelines.GithubCDKPipeline", version: "0.0.
|
|
342
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3c2Nkay9naXRodWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSx1RUFBa0U7QUFDbEUsaUNBQTRGO0FBQzVGLHNDQUEyQztBQUMzQyxvQ0FBMkQ7QUFDM0QsNERBQW1GO0FBQ25GLHdFQUFrRTtBQUVsRSxNQUFNLG1CQUFtQixHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7QUFnRDlDOztHQUVHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSxrQkFBVztJQVloRDs7OztPQUlHO0lBQ0gsWUFBWSxHQUErQixFQUFVLE9BQWlDO1FBQ3BGLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDVCxHQUFHLE9BQU87WUFDVixHQUFHLE9BQU8sQ0FBQyw0QkFBNEIsSUFBSTtnQkFDekMsa0JBQWtCLEVBQUU7b0JBQ2xCLGdFQUFnRTtvQkFDaEUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxFQUFFLENBQUM7aUJBQ3RDO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFUZ0QsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFWdEYsa0RBQWtEO1FBQzFDLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztRQW9CdEMsZ0RBQWdEO1FBQ2hELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUN6QixJQUFJLEVBQUU7Z0JBQ0osUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQzthQUM1QjtZQUNELGdCQUFnQixFQUFFLEVBQUU7U0FDckIsQ0FBQyxDQUFDO1FBRUgsa0RBQWtEO1FBQ2xELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMs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LENBQUM7YUFDL0I7U0FDRixDQUFDLENBQUM7SUFFTCxDQUFDOztBQXRXSCw4Q0F1V0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhd3NjZGsgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgR2l0aHViV29ya2Zsb3cgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yic7XG5pbXBvcnQgeyBKb2JQZXJtaXNzaW9uIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcbmltcG9ydCB7IENES1BpcGVsaW5lLCBDREtQaXBlbGluZU9wdGlvbnMsIERlcGxveW1lbnRTdGFnZSwgSW5kZXBlbmRlbnRTdGFnZSB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBQaXBlbGluZUVuZ2luZSB9IGZyb20gJy4uL2VuZ2luZSc7XG5pbXBvcnQgeyBQaXBlbGluZVN0ZXAsIFNpbXBsZUNvbW1hbmRTdGVwIH0gZnJvbSAnLi4vc3RlcHMnO1xuaW1wb3J0IHsgRG93bmxvYWRBcnRpZmFjdFN0ZXAsIFVwbG9hZEFydGlmYWN0U3RlcCB9IGZyb20gJy4uL3N0ZXBzL2FydGlmYWN0LXN0ZXBzJztcbmltcG9ydCB7IEF3c0Fzc3VtZVJvbGVTdGVwIH0gZnJvbSAnLi4vc3RlcHMvYXdzLWFzc3VtZS1yb2xlLnN0ZXAnO1xuXG5jb25zdCBERUZBVUxUX1JVTk5FUl9UQUdTID0gWyd1YnVudHUtbGF0ZXN0J107XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBpbnRlcmZhY2UgZm9yIEdpdEh1Yi1zcGVjaWZpYyBJQU0gcm9sZXMgdXNlZCBpbiB0aGUgQ0RLIHBpcGVsaW5lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdGh1YklhbVJvbGVDb25maWcge1xuXG4gIC8qKiBEZWZhdWx0IElBTSByb2xlIEFSTiB1c2VkIGlmIG5vIHNwZWNpZmljIHJvbGUgaXMgcHJvdmlkZWQuICovXG4gIHJlYWRvbmx5IGRlZmF1bHQ/OiBzdHJpbmc7XG4gIC8qKiBJQU0gcm9sZSBBUk4gZm9yIHRoZSBzeW50aGVzaXMgc3RlcC4gKi9cbiAgcmVhZG9ubHkgc3ludGg/OiBzdHJpbmc7XG4gIC8qKiBJQU0gcm9sZSBBUk4gZm9yIHRoZSBhc3NldCBwdWJsaXNoaW5nIHN0ZXAuICovXG4gIHJlYWRvbmx5IGFzc2V0UHVibGlzaGluZz86IHN0cmluZztcbiAgLyoqIElBTSByb2xlIEFSTiBmb3IgdGhlIGFzc2V0IHB1Ymxpc2hpbmcgc3RlcCBmb3IgYSBzcGVjaWZpYyBzdGFnZS4gKi9cbiAgcmVhZG9ubHkgYXNzZXRQdWJsaXNoaW5nUGVyU3RhZ2U/OiB7IFtzdGFnZTogc3RyaW5nXTogc3RyaW5nIH07XG4gIC8qKiBJQU0gcm9sZSBBUk5zIGZvciBkaWZmZXJlbnQgZGVwbG95bWVudCBzdGFnZXMuICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnQ/OiB7IFtzdGFnZTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogRXh0ZW5zaW9uIG9mIHRoZSBiYXNlIENES1BpcGVsaW5lIG9wdGlvbnMgaW5jbHVkaW5nIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIGZvciBHaXRIdWIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0aHViQ0RLUGlwZWxpbmVPcHRpb25zIGV4dGVuZHMgQ0RLUGlwZWxpbmVPcHRpb25zIHtcblxuICAvKiogSUFNIGNvbmZpZyBmb3IgR2l0SHViIEFjdGlvbnMgKi9cbiAgcmVhZG9ubHkgaWFtUm9sZUFybnM6IEdpdGh1YklhbVJvbGVDb25maWc7XG5cbiAgLyoqXG4gICAqIHJ1bm5lciB0YWdzIHRvIHVzZSB0byBzZWxlY3QgcnVubmVyc1xuICAgKlxuICAgKiBAZGVmYXVsdCBbJ3VidW50dS1sYXRlc3QnXVxuICAgKi9cbiAgcmVhZG9ubHkgcnVubmVyVGFncz86IHN0cmluZ1tdO1xuXG4gIC8qKiB1c2UgR2l0SHViIFBhY2thZ2VzIHRvIHN0b3JlIHZlc2lvbmVkIGFydGlmYWN0cyBvZiBjbG91ZCBhc3NlbWJseTsgYWxzbyBuZWVkZWQgZm9yIG1hbnVhbCBhcHByb3ZhbHMgKi9cbiAgcmVhZG9ubHkgdXNlR2l0aHViUGFja2FnZXNGb3JBc3NlbWJseT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHdoZXRoZXIgdG8gdXNlIEdpdEh1YiBlbnZpcm9ubWVudHMgZm9yIGRlcGxveW1lbnQgc3RhZ2VzXG4gICAqXG4gICAqIElORk86IFdoZW4gdXNpbmcgZW52aXJvbm1lbnRzIGNvbnNpZGVyIHByb3RlY3Rpb24gcnVsZXMgaW5zdGVhZCBvZiB1c2luZyB0aGUgbWFudWFsIG9wdGlvbiBvZiBwcm9qZW4tcGlwZWxpbmVzIGZvciBzdGFnZXNcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHVzZUdpdGh1YkVudmlyb25tZW50cz86IGJvb2xlYW47XG59XG5cblxuLyoqXG4gKiBJbXBsZW1lbnRzIGEgQ0RLIFBpcGVsaW5lIGNvbmZpZ3VyZWQgc3BlY2lmaWNhbGx5IGZvciBHaXRIdWIgd29ya2Zsb3dzLlxuICovXG5leHBvcnQgY2xhc3MgR2l0aHViQ0RLUGlwZWxpbmUgZXh0ZW5kcyBDREtQaXBlbGluZSB7XG5cbiAgLyoqIEluZGljYXRlcyBpZiB2ZXJzaW9uZWQgYXJ0aWZhY3RzIGFyZSBuZWVkZWQgYmFzZWQgb24gbWFudWFsIGFwcHJvdmFsIHJlcXVpcmVtZW50cy4gKi9cbiAgcHVibGljIHJlYWRvbmx5IG5lZWRzVmVyc2lvbmVkQXJ0aWZhY3RzOiBib29sZWFuO1xuXG4gIC8qKiBUaGUgR2l0SHViIHdvcmtmbG93IGFzc29jaWF0ZWQgd2l0aCB0aGUgcGlwZWxpbmUuICovXG4gIHByaXZhdGUgZGVwbG95bWVudFdvcmtmbG93OiBHaXRodWJXb3JrZmxvdztcbiAgLyoqIExpc3Qgb2YgZGVwbG95bWVudCBzdGFnZXMgZm9yIHRoZSBwaXBlbGluZS4gKi9cbiAgcHJpdmF0ZSBkZXBsb3ltZW50U3RhZ2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByb3RlY3RlZCB1c2VHaXRodWJQYWNrYWdlczogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIG5ldyBHaXRodWJDREtQaXBlbGluZSBpbnN0YW5jZS5cbiAgICogQHBhcmFtIGFwcCAtIFRoZSBDREsgYXBwIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBpcGVsaW5lLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHBpcGVsaW5lLlxuICAgKi9cbiAgY29uc3RydWN0b3IoYXBwOiBhd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCwgcHJpdmF0ZSBvcHRpb25zOiBHaXRodWJDREtQaXBlbGluZU9wdGlvbnMpIHtcbiAgICBzdXBlcihhcHAsIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAuLi5vcHRpb25zLnVzZUdpdGh1YlBhY2thZ2VzRm9yQXNzZW1ibHkgJiYge1xuICAgICAgICBwcmVJbnN0YWxsQ29tbWFuZHM6IFtcbiAgICAgICAgICAnZWNobyBcIkdJVEhVQl9UT0tFTj0ke3sgc2VjcmV0cy5HSVRIVUJfVE9LRU4gfX1cIiA+PiAkR0lUSFVCX0VOVicsXG4gICAgICAgICAgLi4uKG9wdGlvbnMucHJlSW5zdGFsbENvbW1hbmRzID8/IFtdKSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBJbml0aWFsaXplIHRoZSBkZXBsb3ltZW50IHdvcmtmbG93IG9uIEdpdEh1Yi5cbiAgICB0aGlzLmRlcGxveW1lbnRXb3JrZmxvdyA9IHRoaXMuYXBwLmdpdGh1YiEuYWRkV29ya2Zsb3coJ2RlcGxveScpO1xuICAgIHRoaXMuZGVwbG95bWVudFdvcmtmbG93Lm9uKHtcbiAgICAgIHB1c2g6IHtcbiAgICAgICAgYnJhbmNoZXM6IFt0aGlzLmJyYW5jaE5hbWVdLFxuICAgICAgfSxcbiAgICAgIHdvcmtmbG93RGlzcGF0Y2g6IHt9LFxuICAgIH0pO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHZlcnNpb25lZCBhcnRpZmFjdHMgYXJlIG5lY2Vzc2FyeS5cbiAgICB0aGlzLm5lZWRzVmVyc2lvbmVkQXJ0aWZhY3RzID0gb3B0aW9ucy5zdGFnZXMuZmluZChzID0+IHMubWFudWFsQXBwcm92YWwgPT09IHRydWUpICE9PSB1bmRlZmluZWQ7O1xuICAgIHRoaXMudXNlR2l0aHViUGFja2FnZXMgPSB0aGlzLm5lZWRzVmVyc2lvbmVkQXJ0aWZhY3RzICYmIChvcHRpb25zLnVzZUdpdGh1YlBhY2thZ2VzRm9yQXNzZW1ibHkgPz8gZmFsc2UpO1xuXG4gICAgaWYgKHRoaXMudXNlR2l0aHViUGFja2FnZXMpIHtcbiAgICAgIGFwcC5ucG1yYy5hZGRSZWdpc3RyeSgnaHR0cHM6Ly9ucG0ucGtnLmdpdGh1Yi5jb20nLCB0aGlzLm9wdGlvbnMucGtnTmFtZXNwYWNlKTtcbiAgICAgIGFwcC5ucG1yYy5hZGRDb25maWcoJy8vbnBtLnBrZy5naXRodWIuY29tLzpfYXV0aFRva2VuJywgJyR7R0lUSFVCX1RPS0VOfScpO1xuICAgICAgYXBwLm5wbXJjLmFkZENvbmZpZygnLy9ucG0ucGtnLmdpdGh1Yi5jb20vOmFsd2F5cy1hdXRoJywgJ3RydWUnKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgam9icyBmb3Igc3ludGhlc2l6aW5nLCBhc3NldCB1cGxvYWRpbmcsIGFuZCBkZXBsb3ltZW50LlxuICAgIHRoaXMuY3JlYXRlU3ludGgoKTtcblxuICAgIHRoaXMuY3JlYXRlQXNzZXRVcGxvYWQoKTtcblxuICAgIGZvciAoY29uc3Qgc3RhZ2Ugb2Ygb3B0aW9ucy5zdGFnZXMpIHtcbiAgICAgIHRoaXMuY3JlYXRlRGVwbG95bWVudChzdGFnZSk7XG4gICAgfVxuICAgIGZvciAoY29uc3Qgc3RhZ2Ugb2YgKG9wdGlvbnMuaW5kZXBlbmRlbnRTdGFnZXMgPz8gW10pKSB7XG4gICAgICB0aGlzLmNyZWF0ZUluZGVwZW5kZW50RGVwbG95bWVudChzdGFnZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIHRoZSB0eXBlIG9mIGVuZ2luZSB0aGlzIGltcGxlbWVudGF0aW9uIG9mIENES1BpcGVsaW5lIGlzIGZvciAqL1xuICBwdWJsaWMgZW5naW5lVHlwZSgpOiBQaXBlbGluZUVuZ2luZSB7XG4gICAgcmV0dXJuIFBpcGVsaW5lRW5naW5lLkdJVEhVQjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc3ludGhlc2lzIGpvYiBmb3IgdGhlIHBpcGVsaW5lIHVzaW5nIEdpdEh1YiBBY3Rpb25zLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVTeW50aCgpOiB2b2lkIHtcbiAgICBjb25zdCBzdGVwczogUGlwZWxpbmVTdGVwW10gPSBbXTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LnN5bnRoKSB7XG4gICAgICBzdGVwcy5wdXNoKG5ldyBBd3NBc3N1bWVSb2xlU3RlcCh0aGlzLnByb2plY3QsIHtcbiAgICAgICAgcm9sZUFybjogdGhpcy5vcHRpb25zLmlhbVJvbGVBcm5zLnN5bnRoLFxuICAgICAgICBzZXNzaW9uTmFtZTogJ0dpdEh1YkFjdGlvbicsXG4gICAgICB9KSk7XG4gICAgfVxuICAgIHN0ZXBzLnB1c2goLi4udGhpcy5vcHRpb25zLnByZUluc3RhbGxTdGVwcyA/PyBbXSk7XG4gICAgc3RlcHMucHVzaChuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckluc3RhbGxDb21tYW5kcygpKSk7XG5cbiAgICBzdGVwcy5wdXNoKC4uLnRoaXMub3B0aW9ucy5wcmVTeW50aFN0ZXBzID8/IFtdKTtcbiAgICBzdGVwcy5wdXNoKG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIHRoaXMucmVuZGVyU3ludGhDb21tYW5kcygpKSk7XG4gICAgc3RlcHMucHVzaCguLi50aGlzLm9wdGlvbnMucG9zdFN5bnRoU3RlcHMgPz8gW10pO1xuXG4gICAgc3RlcHMucHVzaChuZXcgVXBsb2FkQXJ0aWZhY3RTdGVwKHRoaXMucHJvamVjdCwge1xuICAgICAgbmFtZTogJ2Nsb3VkLWFzc2VtYmx5JyxcbiAgICAgIHBhdGg6IGAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9L2AsXG4gICAgfSkpO1xuXG4gICAgY29uc3QgZ2l0aHViU3RlcHMgPSBzdGVwcy5tYXAocyA9PiBzLnRvR2l0aHViKCkpO1xuXG4gICAgdGhpcy5kZXBsb3ltZW50V29ya2Zsb3cuYWRkSm9iKCdzeW50aCcsIHtcbiAgICAgIG5hbWU6ICdTeW50aCBDREsgYXBwbGljYXRpb24nLFxuICAgICAgcnVuc09uOiB0aGlzLm9wdGlvbnMucnVubmVyVGFncyA/PyBERUZBVUxUX1JVTk5FUl9UQUdTLFxuICAgICAgZW52OiB7XG4gICAgICAgIENJOiAndHJ1ZScsXG4gICAgICAgIC4uLmdpdGh1YlN0ZXBzLnJlZHVjZSgoYWNjLCBzdGVwKSA9PiAoeyAuLi5hY2MsIC4uLnN0ZXAuZW52IH0pLCB7fSksXG4gICAgICB9LFxuICAgICAgbmVlZHM6IFsuLi5naXRodWJTdGVwcy5mbGF0TWFwKHMgPT4gcy5uZWVkcyldLFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgaWRUb2tlbjogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uUkVBRCxcbiAgICAgICAgLi4udGhpcy51c2VHaXRodWJQYWNrYWdlcyAmJiB7XG4gICAgICAgICAgcGFja2FnZXM6IEpvYlBlcm1pc3Npb24uUkVBRCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2NCcsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLmdpdGh1YlN0ZXBzLmZsYXRNYXAocyA9PiBzLnN0ZXBzKSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGpvYiB0byB1cGxvYWQgYXNzZXRzIHRvIEFXUyBhcyBwYXJ0IG9mIHRoZSBwaXBlbGluZS5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVBc3NldFVwbG9hZCgpOiB2b2lkIHtcbiAgICBjb25zdCBnbG9iYWxQdWJsaXNoUm9sZSA9IHRoaXMub3B0aW9ucy5pYW1Sb2xlQXJucy5hc3NldFB1Ymxpc2hpbmcgPz8gdGhpcy5vcHRpb25zLmlhbVJvbGVBcm5zLmRlZmF1bHQhO1xuXG4gICAgY29uc3Qgc3RlcHMgPSBbXG4gICAgICBuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCBbJ2dpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lIFwiZ2l0aHViLWFjdGlvbnNcIiAmJiBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgXCJnaXRodWItYWN0aW9uc0BnaXRodWIuY29tXCInXSksXG4gICAgICBuZXcgQXdzQXNzdW1lUm9sZVN0ZXAodGhpcy5wcm9qZWN0LCB7XG4gICAgICAgIHJvbGVBcm46IGdsb2JhbFB1Ymxpc2hSb2xlLFxuICAgICAgICByZWdpb246ICd1cy1lYXN0LTEnLFxuICAgICAgfSksXG4gICAgICBuZXcgRG93bmxvYWRBcnRpZmFjdFN0ZXAodGhpcy5wcm9qZWN0LCB7XG4gICAgICAgIG5hbWU6ICdjbG91ZC1hc3NlbWJseScsXG4gICAgICAgIHBhdGg6IGAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9L2AsXG4gICAgICB9KSxcbiAgICAgIC4uLnRoaXMub3B0aW9ucy5wcmVJbnN0YWxsU3RlcHMgPz8gW10sXG4gICAgICBuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckluc3RhbGxDb21tYW5kcygpKSxcbiAgICBdO1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5pYW1Sb2xlQXJucy5hc3NldFB1Ymxpc2hpbmdQZXJTdGFnZSkge1xuICAgICAgY29uc3Qgc3RhZ2VzID0gWy4uLnRoaXMub3B0aW9ucy5zdGFnZXMsIC4uLnRoaXMub3B0aW9ucy5pbmRlcGVuZGVudFN0YWdlcyA/PyBbXV07XG4gICAgICBmb3IgKGNvbnN0IHN0YWdlIG9mIHN0YWdlcykge1xuICAgICAgICBzdGVwcy5wdXNoKG5ldyBBd3NBc3N1bWVSb2xlU3RlcCh0aGlzLnByb2plY3QsIHtcbiAgICAgICAgICByb2xlQXJuOiB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnMuYXNzZXRQdWJsaXNoaW5nUGVyU3RhZ2Vbc3RhZ2UubmFtZV0gPz8gZ2xvYmFsUHVibGlzaFJvbGUsXG4gICAgICAgIH0pKTtcbiAgICAgICAgc3RlcHMucHVzaChuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckFzc2V0VXBsb2FkQ29tbWFuZHMoc3RhZ2UubmFtZSkpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3RlcHMucHVzaChuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckFzc2V0VXBsb2FkQ29tbWFuZHMoKSkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm5lZWRzVmVyc2lvbmVkQXJ0aWZhY3RzKSB7XG4gICAgICBzdGVwcy5wdXNoKG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIHRoaXMucmVuZGVyQXNzZW1ibHlVcGxvYWRDb21tYW5kcygpKSk7XG4gICAgfVxuXG4gICAgY29uc3QgZ2hTdGVwcyA9IHN0ZXBzLm1hcChzID0+IHMudG9HaXRodWIoKSk7XG5cbiAgICB0aGlzLmRlcGxveW1lbnRXb3JrZmxvdy5hZGRKb2IoJ2Fzc2V0VXBsb2FkJywge1xuICAgICAgbmFtZTogJ1B1Ymxpc2ggYXNzZXRzIHRvIEFXUycsXG4gICAgICBuZWVkczogWydzeW50aCcsIC4uLmdoU3RlcHMuZmxhdE1hcChzID0+IHMubmVlZHMpXSxcbiAgICAgIHJ1bnNPbjogdGhpcy5vcHRpb25zLnJ1bm5lclRhZ3MgPz8gREVGQVVMVF9SVU5ORVJfVEFHUyxcbiAgICAgIGVudjoge1xuICAgICAgICBDSTogJ3RydWUnLFxuICAgICAgICAuLi5naFN0ZXBzLnJlZHVjZSgoYWNjLCBzdGVwKSA9PiAoeyAuLi5hY2MsIC4uLnN0ZXAuZW52IH0pLCB7fSksXG4gICAgICB9LFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgaWRUb2tlbjogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgY29udGVudHM6IHRoaXMubmVlZHNWZXJzaW9uZWRBcnRpZmFjdHMgPyBKb2JQZXJtaXNzaW9uLldSSVRFIDogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICAuLi50aGlzLnVzZUdpdGh1YlBhY2thZ2VzICYmIHtcbiAgICAgICAgICBwYWNrYWdlczogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2NCcsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgJ2ZldGNoLWRlcHRoJzogMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICAuLi5naFN0ZXBzLmZsYXRNYXAocyA9PiBzLnN0ZXBzKSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGpvYiB0byBkZXBsb3kgdGhlIENESyBhcHBsaWNhdGlvbiB0byBBV1MuXG4gICAqIEBwYXJhbSBzdGFnZSAtIFRoZSBkZXBsb3ltZW50IHN0YWdlIHRvIGNyZWF0ZS5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVEZXBsb3ltZW50KHN0YWdlOiBEZXBsb3ltZW50U3RhZ2UpOiB2b2lkIHtcblxuICAgIGlmIChzdGFnZS5tYW51YWxBcHByb3ZhbCA9PT0gdHJ1ZSkge1xuICAgICAgY29uc3Qgc3RlcHMgPSBbXG4gICAgICAgIG5ldyBBd3NBc3N1bWVSb2xlU3RlcCh0aGlzLnByb2plY3QsIHtcbiAgICAgICAgICByb2xlQXJuOiB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlcGxveW1lbnQ/LltzdGFnZS5uYW1lXSA/PyB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlZmF1bHQhLFxuICAgICAgICAgIHJlZ2lvbjogc3RhZ2UuZW52LnJlZ2lvbixcbiAgICAgICAgfSksXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucy5wcmVJbnN0YWxsU3RlcHMgPz8gW10sXG4gICAgICAgIG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIHRoaXMucmVuZGVySW5zdGFsbENvbW1hbmRzKCkpLFxuICAgICAgICBuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckluc3RhbGxQYWNrYWdlQ29tbWFuZHMoYCR7dGhpcy5vcHRpb25zLnBrZ05hbWVzcGFjZX0vJHt0aGlzLmFwcC5uYW1lfUBcXCR7e2dpdGh1Yi5ldmVudC5pbnB1dHMudmVyc2lvbn19YCkpLFxuICAgICAgICBuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCBbYG12IC4vbm9kZV9tb2R1bGVzLyR7dGhpcy5vcHRpb25zLnBrZ05hbWVzcGFjZX0vJHt0aGlzLmFwcC5uYW1lfSAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9YF0pLFxuICAgICAgICBuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckRlcGxveUNvbW1hbmRzKHN0YWdlLm5hbWUpKSxcbiAgICAgICAgbmV3IFVwbG9hZEFydGlmYWN0U3RlcCh0aGlzLnByb2plY3QsIHtcbiAgICAgICAgICBuYW1lOiBgY2RrLW91dHB1dHMtJHtzdGFnZS5uYW1lfWAsXG4gICAgICAgICAgcGF0aDogYGNkay1vdXRwdXRzLSR7c3RhZ2UubmFtZX0uanNvbmAsXG4gICAgICAgIH0pLFxuICAgICAgXS5tYXAocyA9PiBzLnRvR2l0aHViKCkpO1xuXG4gICAgICAvLyBDcmVhdGUgbmV3IHdvcmtmbG93IGZvciBkZXBsb3ltZW50XG4gICAgICBjb25zdCBzdGFnZVdvcmtmbG93ID0gdGhpcy5hcHAuZ2l0aHViIS5hZGRXb3JrZmxvdyhgcmVsZWFzZS0ke3N0YWdlLm5hbWV9YCk7XG4gICAgICBzdGFnZVdvcmtmbG93Lm9uKHtcbiAgICAgICAgd29ya2Zsb3dEaXNwYXRjaDoge1xuICAgICAgICAgIGlucHV0czoge1xuICAgICAgICAgICAgdmVyc2lvbjoge1xuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1BhY2thZ2UgdmVyc2lvbicsXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBzdGFnZVdvcmtmbG93LmFkZEpvYignZGVwbG95Jywge1xuICAgICAgICBuYW1lOiBgUmVsZWFzZSBzdGFnZSAke3N0YWdlLm5hbWV9IHRvIEFXU2AsXG4gICAgICAgIG5lZWRzOiBzdGVwcy5mbGF0TWFwKHMgPT4gcy5uZWVkcyksXG4gICAgICAgIHJ1bnNPbjogdGhpcy5vcHRpb25zLnJ1bm5lclRhZ3MgPz8gREVGQVVMVF9SVU5ORVJfVEFHUyxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLnVzZUdpdGh1YkVudmlyb25tZW50cyAmJiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IHN0YWdlLm5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIENJOiAndHJ1ZScsXG4gICAgICAgICAgLi4uc3RlcHMucmVkdWNlKChhY2MsIHN0ZXApID0+ICh7IC4uLmFjYywgLi4uc3RlcC5lbnYgfSksIHt9KSxcbiAgICAgICAgfSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICBpZFRva2VuOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgICAgLi4udGhpcy51c2VHaXRodWJQYWNrYWdlcyAmJiB7XG4gICAgICAgICAgICBwYWNrYWdlczogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHN0ZXBzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICAgIHVzZXM6ICdhY3Rpb25zL2NoZWNrb3V0QHY0JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIC4uLnN0ZXBzLmZsYXRNYXAocyA9PiBzLnN0ZXBzKSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgfSBlbHNlIHtcblxuICAgICAgY29uc3Qgc3RlcHMgPSBbXG4gICAgICAgIG5ldyBBd3NBc3N1bWVSb2xlU3RlcCh0aGlzLnByb2plY3QsIHtcbiAgICAgICAgICByb2xlQXJuOiB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlcGxveW1lbnQ/LltzdGFnZS5uYW1lXSA/PyB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlZmF1bHQhLFxuICAgICAgICAgIHJlZ2lvbjogc3RhZ2UuZW52LnJlZ2lvbixcbiAgICAgICAgfSksXG4gICAgICAgIG5ldyBEb3dubG9hZEFydGlmYWN0U3RlcCh0aGlzLnByb2plY3QsIHtcbiAgICAgICAgICBuYW1lOiAnY2xvdWQtYXNzZW1ibHknLFxuICAgICAgICAgIHBhdGg6IGAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9L2AsXG4gICAgICAgIH0pLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMucHJlSW5zdGFsbFN0ZXBzID8/IFtdLFxuICAgICAgICBuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckluc3RhbGxDb21tYW5kcygpKSxcbiAgICAgICAgbmV3IFNpbXBsZUNvbW1hbmRTdGVwKHRoaXMucHJvamVjdCwgdGhpcy5yZW5kZXJEZXBsb3lDb21tYW5kcyhzdGFnZS5uYW1lKSksXG4gICAgICAgIG5ldyBVcGxvYWRBcnRpZmFjdFN0ZXAodGhpcy5wcm9qZWN0LCB7XG4gICAgICAgICAgbmFtZTogYGNkay1vdXRwdXRzLSR7c3RhZ2UubmFtZX1gLFxuICAgICAgICAgIHBhdGg6IGBjZGstb3V0cHV0cy0ke3N0YWdlLm5hbWV9Lmpzb25gLFxuICAgICAgICB9KSxcbiAgICAgIF0ubWFwKHMgPT4gcy50b0dpdGh1YigpKTtcblxuICAgICAgLy8gQWRkIGRlcGxveW1lbnQgdG8gQ0kvQ0Qgd29ya2Zsb3dcbiAgICAgIHRoaXMuZGVwbG95bWVudFdvcmtmbG93LmFkZEpvYihgZGVwbG95LSR7c3RhZ2UubmFtZX1gLCB7XG4gICAgICAgIG5hbWU6IGBEZXBsb3kgc3RhZ2UgJHtzdGFnZS5uYW1lfSB0byBBV1NgLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMudXNlR2l0aHViRW52aXJvbm1lbnRzICYmIHtcbiAgICAgICAgICBlbnZpcm9ubWVudDogc3RhZ2UubmFtZSxcbiAgICAgICAgfSxcbiAgICAgICAgbmVlZHM6IFsnYXNzZXRVcGxvYWQnLCAuLi5zdGVwcy5mbGF0TWFwKHMgPT4gcy5uZWVkcyksIC4uLih0aGlzLmRlcGxveW1lbnRTdGFnZXMubGVuZ3RoID4gMCA/IFtgZGVwbG95LSR7dGhpcy5kZXBsb3ltZW50U3RhZ2VzLmF0KC0xKSF9YF0gOiBbXSldLFxuICAgICAgICBydW5zT246IHRoaXMub3B0aW9ucy5ydW5uZXJUYWdzID8/IERFRkFVTFRfUlVOTkVSX1RBR1MsXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIENJOiAndHJ1ZScsXG4gICAgICAgICAgLi4uc3RlcHMucmVkdWNlKChhY2MsIHN0ZXApID0+ICh7IC4uLmFjYywgLi4uc3RlcC5lbnYgfSksIHt9KSxcbiAgICAgICAgfSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICBpZFRva2VuOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgICAgLi4udGhpcy51c2VHaXRodWJQYWNrYWdlcyAmJiB7XG4gICAgICAgICAgICBwYWNrYWdlczogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHN0ZXBzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICAgIHVzZXM6ICdhY3Rpb25zL2NoZWNrb3V0QHY0JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIC4uLnN0ZXBzLmZsYXRNYXAocyA9PiBzLnN0ZXBzKSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kZXBsb3ltZW50U3RhZ2VzLnB1c2goc3RhZ2UubmFtZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBqb2IgdG8gZGVwbG95IHRoZSBDREsgYXBwbGljYXRpb24gdG8gQVdTLlxuICAgKiBAcGFyYW0gc3RhZ2UgLSBUaGUgaW5kZXBlbmRlbnQgc3RhZ2UgdG8gY3JlYXRlLlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUluZGVwZW5kZW50RGVwbG95bWVudChzdGFnZTogSW5kZXBlbmRlbnRTdGFnZSk6IHZvaWQge1xuICAgIGNvbnN0IHN0ZXBzID0gW1xuICAgICAgbmV3IEF3c0Fzc3VtZVJvbGVTdGVwKHRoaXMucHJvamVjdCwge1xuICAgICAgICByb2xlQXJuOiB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlcGxveW1lbnQ/LltzdGFnZS5uYW1lXSA/PyB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlZmF1bHQhLFxuICAgICAgICByZWdpb246IHN0YWdlLmVudi5yZWdpb24sXG4gICAgICB9KSxcbiAgICAgIC4uLnRoaXMub3B0aW9ucy5wcmVJbnN0YWxsU3RlcHMgPz8gW10sXG4gICAgICBuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckluc3RhbGxDb21tYW5kcygpKSxcblxuICAgICAgLi4udGhpcy5vcHRpb25zLnByZVN5bnRoU3RlcHMgPz8gW10sXG4gICAgICBuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlclN5bnRoQ29tbWFuZHMoKSksXG4gICAgICAuLi50aGlzLm9wdGlvbnMucG9zdFN5bnRoU3RlcHMgPz8gW10sXG5cbiAgICAgIG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIHRoaXMucmVuZGVyRGlmZkNvbW1hbmRzKHN0YWdlLm5hbWUpKSxcbiAgICAgIC4uLnN0YWdlLnBvc3REaWZmU3RlcHMgPz8gW10sXG5cbiAgICAgIG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIHRoaXMucmVuZGVyRGVwbG95Q29tbWFuZHMoc3RhZ2UubmFtZSkpLFxuICAgICAgLi4uc3RhZ2UucG9zdERlcGxveVN0ZXBzID8/IFtdLFxuXG4gICAgICBuZXcgVXBsb2FkQXJ0aWZhY3RTdGVwKHRoaXMucHJvamVjdCwge1xuICAgICAgICBuYW1lOiBgY2RrLW91dHB1dHMtJHtzdGFnZS5uYW1lfWAsXG4gICAgICAgIHBhdGg6IGBjZGstb3V0cHV0cy0ke3N0YWdlLm5hbWV9Lmpzb25gLFxuICAgICAgfSksXG4gICAgXS5tYXAocyA9PiBzLnRvR2l0aHViKCkpO1xuXG4gICAgLy8gQ3JlYXRlIG5ldyB3b3JrZmxvdyBmb3IgZGVwbG95bWVudFxuICAgIGNvbnN0IHN0YWdlV29ya2Zsb3cgPSB0aGlzLmFwcC5naXRodWIhLmFkZFdvcmtmbG93KGBkZXBsb3ktJHtzdGFnZS5uYW1lfWApO1xuICAgIHN0YWdlV29ya2Zsb3cub24oe1xuICAgICAgd29ya2Zsb3dEaXNwYXRjaDoge30sXG4gICAgICAuLi5zdGFnZS5kZXBsb3lPblB1c2ggJiYge1xuICAgICAgICBwdXNoOiB7XG4gICAgICAgICAgYnJhbmNoZXM6IFt0aGlzLmJyYW5jaE5hbWVdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBzdGFnZVdvcmtmbG93LmFkZEpvYignZGVwbG95Jywge1xuICAgICAgbmFtZTogYFJlbGVhc2Ugc3RhZ2UgJHtzdGFnZS5uYW1lfSB0byBBV1NgLFxuICAgICAgbmVlZHM6IHN0ZXBzLmZsYXRNYXAocyA9PiBzLm5lZWRzKSxcbiAgICAgIHJ1bnNPbjogdGhpcy5vcHRpb25zLnJ1bm5lclRhZ3MgPz8gREVGQVVMVF9SVU5ORVJfVEFHUyxcbiAgICAgIC4uLnRoaXMub3B0aW9ucy51c2VHaXRodWJFbnZpcm9ubWVudHMgJiYge1xuICAgICAgICBlbnZpcm9ubWVudDogc3RhZ2UubmFtZSxcbiAgICAgIH0sXG4gICAgICBlbnY6IHtcbiAgICAgICAgQ0k6ICd0cnVlJyxcbiAgICAgICAgLi4uc3RlcHMucmVkdWNlKChhY2MsIHN0ZXApID0+ICh7IC4uLmFjYywgLi4uc3RlcC5lbnYgfSksIHt9KSxcbiAgICAgIH0sXG4gICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICBpZFRva2VuOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgfSxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQ2hlY2tvdXQnLFxuICAgICAgICAgIHVzZXM6ICdhY3Rpb25zL2NoZWNrb3V0QHY0JyxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uc3RlcHMuZmxhdE1hcChzID0+IHMuc3RlcHMpLFxuICAgICAgXSxcbiAgICB9KTtcblxuICB9XG59XG4iXX0=
|
|
334
|
+
GithubCDKPipeline[_a] = { fqn: "projen-pipelines.GithubCDKPipeline", version: "0.0.73" };
|
|
335
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3c2Nkay9naXRodWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSx1RUFBa0Y7QUFDbEYsaUNBQTRGO0FBQzVGLHNDQUEyQztBQUMzQyx3Q0FBaUQ7QUFDakQsb0NBQTJEO0FBQzNELDREQUFtRjtBQUNuRix3RUFBa0U7QUFDbEUsb0RBQThEO0FBRTlELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQWdEOUM7O0dBRUc7QUFDSCxNQUFhLGlCQUFrQixTQUFRLGtCQUFXO0lBWWhEOzs7O09BSUc7SUFDSCxZQUFZLEdBQStCLEVBQVUsT0FBaUM7UUFDcEYsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNULEdBQUcsT0FBTztZQUNWLEdBQUcsT0FBTyxDQUFDLDRCQUE0QixJQUFJO2dCQUN6QyxlQUFlLEVBQUU7b0JBQ2YsSUFBSSxvQ0FBdUIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7b0JBQ2xELEdBQUcsT0FBTyxDQUFDLGVBQWUsSUFBSSxFQUFFO2lCQUNqQzthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBVGdELFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBVnRGLGtEQUFrRDtRQUMxQyxxQkFBZ0IsR0FBYSxFQUFFLENBQUM7UUFvQnRDLGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7YUFDNUI7WUFDRCxnQkFBZ0IsRUFBRSxFQUFFO1NBQ3JCLENBQUMsQ0FBQztRQUVILGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsdUJBQXVC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STtnQkFDdkMsV0FBVyxFQUFFLEtBQUssQ0FBQyxJQUFJO2FBQ3hCO1lBQ0QsR0FBRyxFQUFFO2dCQUNILEVBQUUsRUFBRSxNQUFNO2dCQUNWLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQzthQUM5RDtZQUNELFdBQVcsRUFBRSxJQUFBLDZCQUFtQixFQUFDO2dCQUMvQixPQUFPLEVBQUUsK0JBQWEsQ0FBQyxLQUFLO2dCQUM1QixRQUFRLEVBQUUsK0JBQWEsQ0FBQyxJQUFJO2FBQzdCLEVBQUUsR0FBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxTQUFTLENBQXNCLENBQUM7WUFDMUYsS0FBSyxFQUFFO2dCQUNMO29CQUNFLElBQUksRUFBRSxVQUFVO29CQUNoQixJQUFJLEVBQUUscUJBQXFCO2lCQUM1QjtnQkFDRCxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2FBQy9CO1NBQ0YsQ0FBQyxDQUFDO0lBRUwsQ0FBQzs7QUE3VkgsOENBOFZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXdzY2RrIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEdpdGh1YldvcmtmbG93IH0gZnJvbSAncHJvamVuL2xpYi9naXRodWInO1xuaW1wb3J0IHsgSm9iUGVybWlzc2lvbiwgSm9iUGVybWlzc2lvbnMgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWwnO1xuaW1wb3J0IHsgQ0RLUGlwZWxpbmUsIENES1BpcGVsaW5lT3B0aW9ucywgRGVwbG95bWVudFN0YWdlLCBJbmRlcGVuZGVudFN0YWdlIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IFBpcGVsaW5lRW5naW5lIH0gZnJvbSAnLi4vZW5naW5lJztcbmltcG9ydCB7IG1lcmdlSm9iUGVybWlzc2lvbnMgfSBmcm9tICcuLi9lbmdpbmVzJztcbmltcG9ydCB7IFBpcGVsaW5lU3RlcCwgU2ltcGxlQ29tbWFuZFN0ZXAgfSBmcm9tICcuLi9zdGVwcyc7XG5pbXBvcnQgeyBEb3dubG9hZEFydGlmYWN0U3RlcCwgVXBsb2FkQXJ0aWZhY3RTdGVwIH0gZnJvbSAnLi4vc3RlcHMvYXJ0aWZhY3Qtc3RlcHMnO1xuaW1wb3J0IHsgQXdzQXNzdW1lUm9sZVN0ZXAgfSBmcm9tICcuLi9zdGVwcy9hd3MtYXNzdW1lLXJvbGUuc3RlcCc7XG5pbXBvcnQgeyBHaXRodWJQYWNrYWdlc0xvZ2luU3RlcCB9IGZyb20gJy4uL3N0ZXBzL3JlZ2lzdHJpZXMnO1xuXG5jb25zdCBERUZBVUxUX1JVTk5FUl9UQUdTID0gWyd1YnVudHUtbGF0ZXN0J107XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBpbnRlcmZhY2UgZm9yIEdpdEh1Yi1zcGVjaWZpYyBJQU0gcm9sZXMgdXNlZCBpbiB0aGUgQ0RLIHBpcGVsaW5lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdGh1YklhbVJvbGVDb25maWcge1xuXG4gIC8qKiBEZWZhdWx0IElBTSByb2xlIEFSTiB1c2VkIGlmIG5vIHNwZWNpZmljIHJvbGUgaXMgcHJvdmlkZWQuICovXG4gIHJlYWRvbmx5IGRlZmF1bHQ/OiBzdHJpbmc7XG4gIC8qKiBJQU0gcm9sZSBBUk4gZm9yIHRoZSBzeW50aGVzaXMgc3RlcC4gKi9cbiAgcmVhZG9ubHkgc3ludGg/OiBzdHJpbmc7XG4gIC8qKiBJQU0gcm9sZSBBUk4gZm9yIHRoZSBhc3NldCBwdWJsaXNoaW5nIHN0ZXAuICovXG4gIHJlYWRvbmx5IGFzc2V0UHVibGlzaGluZz86IHN0cmluZztcbiAgLyoqIElBTSByb2xlIEFSTiBmb3IgdGhlIGFzc2V0IHB1Ymxpc2hpbmcgc3RlcCBmb3IgYSBzcGVjaWZpYyBzdGFnZS4gKi9cbiAgcmVhZG9ubHkgYXNzZXRQdWJsaXNoaW5nUGVyU3RhZ2U/OiB7IFtzdGFnZTogc3RyaW5nXTogc3RyaW5nIH07XG4gIC8qKiBJQU0gcm9sZSBBUk5zIGZvciBkaWZmZXJlbnQgZGVwbG95bWVudCBzdGFnZXMuICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnQ/OiB7IFtzdGFnZTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogRXh0ZW5zaW9uIG9mIHRoZSBiYXNlIENES1BpcGVsaW5lIG9wdGlvbnMgaW5jbHVkaW5nIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIGZvciBHaXRIdWIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0aHViQ0RLUGlwZWxpbmVPcHRpb25zIGV4dGVuZHMgQ0RLUGlwZWxpbmVPcHRpb25zIHtcblxuICAvKiogSUFNIGNvbmZpZyBmb3IgR2l0SHViIEFjdGlvbnMgKi9cbiAgcmVhZG9ubHkgaWFtUm9sZUFybnM6IEdpdGh1YklhbVJvbGVDb25maWc7XG5cbiAgLyoqXG4gICAqIHJ1bm5lciB0YWdzIHRvIHVzZSB0byBzZWxlY3QgcnVubmVyc1xuICAgKlxuICAgKiBAZGVmYXVsdCBbJ3VidW50dS1sYXRlc3QnXVxuICAgKi9cbiAgcmVhZG9ubHkgcnVubmVyVGFncz86IHN0cmluZ1tdO1xuXG4gIC8qKiB1c2UgR2l0SHViIFBhY2thZ2VzIHRvIHN0b3JlIHZlc2lvbmVkIGFydGlmYWN0cyBvZiBjbG91ZCBhc3NlbWJseTsgYWxzbyBuZWVkZWQgZm9yIG1hbnVhbCBhcHByb3ZhbHMgKi9cbiAgcmVhZG9ubHkgdXNlR2l0aHViUGFja2FnZXNGb3JBc3NlbWJseT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHdoZXRoZXIgdG8gdXNlIEdpdEh1YiBlbnZpcm9ubWVudHMgZm9yIGRlcGxveW1lbnQgc3RhZ2VzXG4gICAqXG4gICAqIElORk86IFdoZW4gdXNpbmcgZW52aXJvbm1lbnRzIGNvbnNpZGVyIHByb3RlY3Rpb24gcnVsZXMgaW5zdGVhZCBvZiB1c2luZyB0aGUgbWFudWFsIG9wdGlvbiBvZiBwcm9qZW4tcGlwZWxpbmVzIGZvciBzdGFnZXNcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHVzZUdpdGh1YkVudmlyb25tZW50cz86IGJvb2xlYW47XG59XG5cblxuLyoqXG4gKiBJbXBsZW1lbnRzIGEgQ0RLIFBpcGVsaW5lIGNvbmZpZ3VyZWQgc3BlY2lmaWNhbGx5IGZvciBHaXRIdWIgd29ya2Zsb3dzLlxuICovXG5leHBvcnQgY2xhc3MgR2l0aHViQ0RLUGlwZWxpbmUgZXh0ZW5kcyBDREtQaXBlbGluZSB7XG5cbiAgLyoqIEluZGljYXRlcyBpZiB2ZXJzaW9uZWQgYXJ0aWZhY3RzIGFyZSBuZWVkZWQgYmFzZWQgb24gbWFudWFsIGFwcHJvdmFsIHJlcXVpcmVtZW50cy4gKi9cbiAgcHVibGljIHJlYWRvbmx5IG5lZWRzVmVyc2lvbmVkQXJ0aWZhY3RzOiBib29sZWFuO1xuXG4gIC8qKiBUaGUgR2l0SHViIHdvcmtmbG93IGFzc29jaWF0ZWQgd2l0aCB0aGUgcGlwZWxpbmUuICovXG4gIHByaXZhdGUgZGVwbG95bWVudFdvcmtmbG93OiBHaXRodWJXb3JrZmxvdztcbiAgLyoqIExpc3Qgb2YgZGVwbG95bWVudCBzdGFnZXMgZm9yIHRoZSBwaXBlbGluZS4gKi9cbiAgcHJpdmF0ZSBkZXBsb3ltZW50U3RhZ2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByb3RlY3RlZCB1c2VHaXRodWJQYWNrYWdlczogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIG5ldyBHaXRodWJDREtQaXBlbGluZSBpbnN0YW5jZS5cbiAgICogQHBhcmFtIGFwcCAtIFRoZSBDREsgYXBwIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBpcGVsaW5lLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHBpcGVsaW5lLlxuICAgKi9cbiAgY29uc3RydWN0b3IoYXBwOiBhd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCwgcHJpdmF0ZSBvcHRpb25zOiBHaXRodWJDREtQaXBlbGluZU9wdGlvbnMpIHtcbiAgICBzdXBlcihhcHAsIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAuLi5vcHRpb25zLnVzZUdpdGh1YlBhY2thZ2VzRm9yQXNzZW1ibHkgJiYge1xuICAgICAgICBwcmVJbnN0YWxsU3RlcHM6IFtcbiAgICAgICAgICBuZXcgR2l0aHViUGFja2FnZXNMb2dpblN0ZXAoYXBwLCB7IHdyaXRlOiBmYWxzZSB9KSxcbiAgICAgICAgICAuLi5vcHRpb25zLnByZUluc3RhbGxTdGVwcyA/PyBbXSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBJbml0aWFsaXplIHRoZSBkZXBsb3ltZW50IHdvcmtmbG93IG9uIEdpdEh1Yi5cbiAgICB0aGlzLmRlcGxveW1lbnRXb3JrZmxvdyA9IHRoaXMuYXBwLmdpdGh1YiEuYWRkV29ya2Zsb3coJ2RlcGxveScpO1xuICAgIHRoaXMuZGVwbG95bWVudFdvcmtmbG93Lm9uKHtcbiAgICAgIHB1c2g6IHtcbiAgICAgICAgYnJhbmNoZXM6IFt0aGlzLmJyYW5jaE5hbWVdLFxuICAgICAgfSxcbiAgICAgIHdvcmtmbG93RGlzcGF0Y2g6IHt9LFxuICAgIH0pO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHZlcnNpb25lZCBhcnRpZmFjdHMgYXJlIG5lY2Vzc2FyeS5cbiAgICB0aGlzLm5lZWRzVmVyc2lvbmVkQXJ0aWZhY3RzID0gb3B0aW9ucy5zdGFnZXMuZmluZChzID0+IHMubWFudWFsQXBwcm92YWwgPT09IHRydWUpICE9PSB1bmRlZmluZWQ7O1xuICAgIHRoaXMudXNlR2l0aHViUGFja2FnZXMgPSB0aGlzLm5lZWRzVmVyc2lvbmVkQXJ0aWZhY3RzICYmIChvcHRpb25zLnVzZUdpdGh1YlBhY2thZ2VzRm9yQXNzZW1ibHkgPz8gZmFsc2UpO1xuXG4gICAgaWYgKHRoaXMudXNlR2l0aHViUGFja2FnZXMpIHtcbiAgICAgIGFwcC5ucG1yYy5hZGRSZWdpc3RyeSgnaHR0cHM6Ly9ucG0ucGtnLmdpdGh1Yi5jb20nLCB0aGlzLmJhc2VPcHRpb25zLnBrZ05hbWVzcGFjZSk7XG4gICAgICBhcHAubnBtcmMuYWRkQ29uZmlnKCcvL25wbS5wa2cuZ2l0aHViLmNvbS86X2F1dGhUb2tlbicsICcke0dJVEhVQl9UT0tFTn0nKTtcbiAgICAgIGFwcC5ucG1yYy5hZGRDb25maWcoJy8vbnBtLnBrZy5naXRodWIuY29tLzphbHdheXMtYXV0aCcsICd0cnVlJyk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGpvYnMgZm9yIHN5bnRoZXNpemluZywgYXNzZXQgdXBsb2FkaW5nLCBhbmQgZGVwbG95bWVudC5cbiAgICB0aGlzLmNyZWF0ZVN5bnRoKCk7XG5cbiAgICB0aGlzLmNyZWF0ZUFzc2V0VXBsb2FkKCk7XG5cbiAgICBmb3IgKGNvbnN0IHN0YWdlIG9mIG9wdGlvbnMuc3RhZ2VzKSB7XG4gICAgICB0aGlzLmNyZWF0ZURlcGxveW1lbnQoc3RhZ2UpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHN0YWdlIG9mIChvcHRpb25zLmluZGVwZW5kZW50U3RhZ2VzID8/IFtdKSkge1xuICAgICAgdGhpcy5jcmVhdGVJbmRlcGVuZGVudERlcGxveW1lbnQoc3RhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiB0aGUgdHlwZSBvZiBlbmdpbmUgdGhpcyBpbXBsZW1lbnRhdGlvbiBvZiBDREtQaXBlbGluZSBpcyBmb3IgKi9cbiAgcHVibGljIGVuZ2luZVR5cGUoKTogUGlwZWxpbmVFbmdpbmUge1xuICAgIHJldHVybiBQaXBlbGluZUVuZ2luZS5HSVRIVUI7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHN5bnRoZXNpcyBqb2IgZm9yIHRoZSBwaXBlbGluZSB1c2luZyBHaXRIdWIgQWN0aW9ucy5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlU3ludGgoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RlcHM6IFBpcGVsaW5lU3RlcFtdID0gW107XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmlhbVJvbGVBcm5zPy5zeW50aCkge1xuICAgICAgc3RlcHMucHVzaChuZXcgQXdzQXNzdW1lUm9sZVN0ZXAodGhpcy5wcm9qZWN0LCB7XG4gICAgICAgIHJvbGVBcm46IHRoaXMub3B0aW9ucy5pYW1Sb2xlQXJucy5zeW50aCxcbiAgICAgICAgc2Vzc2lvbk5hbWU6ICdHaXRIdWJBY3Rpb24nLFxuICAgICAgfSkpO1xuICAgIH1cbiAgICBzdGVwcy5wdXNoKC4uLnRoaXMuYmFzZU9wdGlvbnMucHJlSW5zdGFsbFN0ZXBzID8/IFtdKTtcbiAgICBzdGVwcy5wdXNoKG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIHRoaXMucmVuZGVySW5zdGFsbENvbW1hbmRzKCkpKTtcblxuICAgIHN0ZXBzLnB1c2goLi4udGhpcy5iYXNlT3B0aW9ucy5wcmVTeW50aFN0ZXBzID8/IFtdKTtcbiAgICBzdGVwcy5wdXNoKG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIHRoaXMucmVuZGVyU3ludGhDb21tYW5kcygpKSk7XG4gICAgc3RlcHMucHVzaCguLi50aGlzLmJhc2VPcHRpb25zLnBvc3RTeW50aFN0ZXBzID8/IFtdKTtcblxuICAgIHN0ZXBzLnB1c2gobmV3IFVwbG9hZEFydGlmYWN0U3RlcCh0aGlzLnByb2plY3QsIHtcbiAgICAgIG5hbWU6ICdjbG91ZC1hc3NlbWJseScsXG4gICAgICBwYXRoOiBgJHt0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0fS9gLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IGdpdGh1YlN0ZXBzID0gc3RlcHMubWFwKHMgPT4gcy50b0dpdGh1YigpKTtcblxuICAgIHRoaXMuZGVwbG95bWVudFdvcmtmbG93LmFkZEpvYignc3ludGgnLCB7XG4gICAgICBuYW1lOiAnU3ludGggQ0RLIGFwcGxpY2F0aW9uJyxcbiAgICAgIHJ1bnNPbjogdGhpcy5vcHRpb25zLnJ1bm5lclRhZ3MgPz8gREVGQVVMVF9SVU5ORVJfVEFHUyxcbiAgICAgIGVudjoge1xuICAgICAgICBDSTogJ3RydWUnLFxuICAgICAgICAuLi5naXRodWJTdGVwcy5yZWR1Y2UoKGFjYywgc3RlcCkgPT4gKHsgLi4uYWNjLCAuLi5zdGVwLmVudiB9KSwge30pLFxuICAgICAgfSxcbiAgICAgIG5lZWRzOiBbLi4uZ2l0aHViU3RlcHMuZmxhdE1hcChzID0+IHMubmVlZHMpXSxcbiAgICAgIHBlcm1pc3Npb25zOiBtZXJnZUpvYlBlcm1pc3Npb25zKHtcbiAgICAgICAgaWRUb2tlbjogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uUkVBRCxcbiAgICAgIH0sIC4uLihnaXRodWJTdGVwcy5mbGF0TWFwKHMgPT4gcy5wZXJtaXNzaW9ucykuZmlsdGVyKHAgPT4gcCAhPSB1bmRlZmluZWQpIGFzIEpvYlBlcm1pc3Npb25zW10pKSxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQ2hlY2tvdXQnLFxuICAgICAgICAgIHVzZXM6ICdhY3Rpb25zL2NoZWNrb3V0QHY0JyxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uZ2l0aHViU3RlcHMuZmxhdE1hcChzID0+IHMuc3RlcHMpLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgam9iIHRvIHVwbG9hZCBhc3NldHMgdG8gQVdTIGFzIHBhcnQgb2YgdGhlIHBpcGVsaW5lLlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUFzc2V0VXBsb2FkKCk6IHZvaWQge1xuICAgIGNvbnN0IGdsb2JhbFB1Ymxpc2hSb2xlID0gdGhpcy5vcHRpb25zLmlhbVJvbGVBcm5zLmFzc2V0UHVibGlzaGluZyA/PyB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnMuZGVmYXVsdCE7XG5cbiAgICBjb25zdCBzdGVwcyA9IFtcbiAgICAgIG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIFsnZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgXCJnaXRodWItYWN0aW9uc1wiICYmIGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCBcImdpdGh1Yi1hY3Rpb25zQGdpdGh1Yi5jb21cIiddKSxcbiAgICAgIG5ldyBBd3NBc3N1bWVSb2xlU3RlcCh0aGlzLnByb2plY3QsIHtcbiAgICAgICAgcm9sZUFybjogZ2xvYmFsUHVibGlzaFJvbGUsXG4gICAgICAgIHJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gICAgICB9KSxcbiAgICAgIG5ldyBEb3dubG9hZEFydGlmYWN0U3RlcCh0aGlzLnByb2plY3QsIHtcbiAgICAgICAgbmFtZTogJ2Nsb3VkLWFzc2VtYmx5JyxcbiAgICAgICAgcGF0aDogYCR7dGhpcy5hcHAuY2RrQ29uZmlnLmNka291dH0vYCxcbiAgICAgIH0pLFxuICAgICAgLi4udGhpcy5iYXNlT3B0aW9ucy5wcmVJbnN0YWxsU3RlcHMgPz8gW10sXG4gICAgICBuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckluc3RhbGxDb21tYW5kcygpKSxcbiAgICBdO1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5pYW1Sb2xlQXJucy5hc3NldFB1Ymxpc2hpbmdQZXJTdGFnZSkge1xuICAgICAgY29uc3Qgc3RhZ2VzID0gWy4uLnRoaXMub3B0aW9ucy5zdGFnZXMsIC4uLnRoaXMub3B0aW9ucy5pbmRlcGVuZGVudFN0YWdlcyA/PyBbXV07XG4gICAgICBmb3IgKGNvbnN0IHN0YWdlIG9mIHN0YWdlcykge1xuICAgICAgICBzdGVwcy5wdXNoKG5ldyBBd3NBc3N1bWVSb2xlU3RlcCh0aGlzLnByb2plY3QsIHtcbiAgICAgICAgICByb2xlQXJuOiB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnMuYXNzZXRQdWJsaXNoaW5nUGVyU3RhZ2Vbc3RhZ2UubmFtZV0gPz8gZ2xvYmFsUHVibGlzaFJvbGUsXG4gICAgICAgIH0pKTtcbiAgICAgICAgc3RlcHMucHVzaChuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckFzc2V0VXBsb2FkQ29tbWFuZHMoc3RhZ2UubmFtZSkpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3RlcHMucHVzaChuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckFzc2V0VXBsb2FkQ29tbWFuZHMoKSkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm5lZWRzVmVyc2lvbmVkQXJ0aWZhY3RzKSB7XG4gICAgICBzdGVwcy5wdXNoKG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIHRoaXMucmVuZGVyQXNzZW1ibHlVcGxvYWRDb21tYW5kcygpKSk7XG4gICAgfVxuXG4gICAgY29uc3QgZ2hTdGVwcyA9IHN0ZXBzLm1hcChzID0+IHMudG9HaXRodWIoKSk7XG5cbiAgICB0aGlzLmRlcGxveW1lbnRXb3JrZmxvdy5hZGRKb2IoJ2Fzc2V0VXBsb2FkJywge1xuICAgICAgbmFtZTogJ1B1Ymxpc2ggYXNzZXRzIHRvIEFXUycsXG4gICAgICBuZWVkczogWydzeW50aCcsIC4uLmdoU3RlcHMuZmxhdE1hcChzID0+IHMubmVlZHMpXSxcbiAgICAgIHJ1bnNPbjogdGhpcy5vcHRpb25zLnJ1bm5lclRhZ3MgPz8gREVGQVVMVF9SVU5ORVJfVEFHUyxcbiAgICAgIGVudjoge1xuICAgICAgICBDSTogJ3RydWUnLFxuICAgICAgICAuLi5naFN0ZXBzLnJlZHVjZSgoYWNjLCBzdGVwKSA9PiAoeyAuLi5hY2MsIC4uLnN0ZXAuZW52IH0pLCB7fSksXG4gICAgICB9LFxuICAgICAgcGVybWlzc2lvbnM6IG1lcmdlSm9iUGVybWlzc2lvbnMoe1xuICAgICAgICBpZFRva2VuOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICBjb250ZW50czogdGhpcy5uZWVkc1ZlcnNpb25lZEFydGlmYWN0cyA/IEpvYlBlcm1pc3Npb24uV1JJVEUgOiBKb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgIC4uLnRoaXMudXNlR2l0aHViUGFja2FnZXMgJiYge1xuICAgICAgICAgIHBhY2thZ2VzOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICB9LFxuICAgICAgfSwgLi4uKGdoU3RlcHMuZmxhdE1hcChzID0+IHMucGVybWlzc2lvbnMpLmZpbHRlcihwID0+IHAgIT0gdW5kZWZpbmVkKSBhcyBKb2JQZXJtaXNzaW9uc1tdKSksXG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2NCcsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgJ2ZldGNoLWRlcHRoJzogMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICAuLi5naFN0ZXBzLmZsYXRNYXAocyA9PiBzLnN0ZXBzKSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGpvYiB0byBkZXBsb3kgdGhlIENESyBhcHBsaWNhdGlvbiB0byBBV1MuXG4gICAqIEBwYXJhbSBzdGFnZSAtIFRoZSBkZXBsb3ltZW50IHN0YWdlIHRvIGNyZWF0ZS5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVEZXBsb3ltZW50KHN0YWdlOiBEZXBsb3ltZW50U3RhZ2UpOiB2b2lkIHtcblxuICAgIGlmIChzdGFnZS5tYW51YWxBcHByb3ZhbCA9PT0gdHJ1ZSkge1xuICAgICAgY29uc3Qgc3RlcHMgPSBbXG4gICAgICAgIG5ldyBBd3NBc3N1bWVSb2xlU3RlcCh0aGlzLnByb2plY3QsIHtcbiAgICAgICAgICByb2xlQXJuOiB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlcGxveW1lbnQ/LltzdGFnZS5uYW1lXSA/PyB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlZmF1bHQhLFxuICAgICAgICAgIHJlZ2lvbjogc3RhZ2UuZW52LnJlZ2lvbixcbiAgICAgICAgfSksXG4gICAgICAgIC4uLnRoaXMuYmFzZU9wdGlvbnMucHJlSW5zdGFsbFN0ZXBzID8/IFtdLFxuICAgICAgICBuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckluc3RhbGxDb21tYW5kcygpKSxcbiAgICAgICAgbmV3IFNpbXBsZUNvbW1hbmRTdGVwKHRoaXMucHJvamVjdCwgdGhpcy5yZW5kZXJJbnN0YWxsUGFja2FnZUNvbW1hbmRzKGAke3RoaXMuYmFzZU9wdGlvbnMucGtnTmFtZXNwYWNlfS8ke3RoaXMuYXBwLm5hbWV9QFxcJHt7Z2l0aHViLmV2ZW50LmlucHV0cy52ZXJzaW9ufX1gKSksXG4gICAgICAgIG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIFtgbXYgLi9ub2RlX21vZHVsZXMvJHt0aGlzLmJhc2VPcHRpb25zLnBrZ05hbWVzcGFjZX0vJHt0aGlzLmFwcC5uYW1lfSAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9YF0pLFxuICAgICAgICBuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckRlcGxveUNvbW1hbmRzKHN0YWdlLm5hbWUpKSxcbiAgICAgICAgbmV3IFVwbG9hZEFydGlmYWN0U3RlcCh0aGlzLnByb2plY3QsIHtcbiAgICAgICAgICBuYW1lOiBgY2RrLW91dHB1dHMtJHtzdGFnZS5uYW1lfWAsXG4gICAgICAgICAgcGF0aDogYGNkay1vdXRwdXRzLSR7c3RhZ2UubmFtZX0uanNvbmAsXG4gICAgICAgIH0pLFxuICAgICAgXS5tYXAocyA9PiBzLnRvR2l0aHViKCkpO1xuXG4gICAgICAvLyBDcmVhdGUgbmV3IHdvcmtmbG93IGZvciBkZXBsb3ltZW50XG4gICAgICBjb25zdCBzdGFnZVdvcmtmbG93ID0gdGhpcy5hcHAuZ2l0aHViIS5hZGRXb3JrZmxvdyhgcmVsZWFzZS0ke3N0YWdlLm5hbWV9YCk7XG4gICAgICBzdGFnZVdvcmtmbG93Lm9uKHtcbiAgICAgICAgd29ya2Zsb3dEaXNwYXRjaDoge1xuICAgICAgICAgIGlucHV0czoge1xuICAgICAgICAgICAgdmVyc2lvbjoge1xuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1BhY2thZ2UgdmVyc2lvbicsXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBzdGFnZVdvcmtmbG93LmFkZEpvYignZGVwbG95Jywge1xuICAgICAgICBuYW1lOiBgUmVsZWFzZSBzdGFnZSAke3N0YWdlLm5hbWV9IHRvIEFXU2AsXG4gICAgICAgIG5lZWRzOiBzdGVwcy5mbGF0TWFwKHMgPT4gcy5uZWVkcyksXG4gICAgICAgIHJ1bnNPbjogdGhpcy5vcHRpb25zLnJ1bm5lclRhZ3MgPz8gREVGQVVMVF9SVU5ORVJfVEFHUyxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLnVzZUdpdGh1YkVudmlyb25tZW50cyAmJiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IHN0YWdlLm5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIENJOiAndHJ1ZScsXG4gICAgICAgICAgLi4uc3RlcHMucmVkdWNlKChhY2MsIHN0ZXApID0+ICh7IC4uLmFjYywgLi4uc3RlcC5lbnYgfSksIHt9KSxcbiAgICAgICAgfSxcbiAgICAgICAgcGVybWlzc2lvbnM6IG1lcmdlSm9iUGVybWlzc2lvbnMoe1xuICAgICAgICAgIGlkVG9rZW46IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uUkVBRCxcbiAgICAgICAgfSwgLi4uKHN0ZXBzLmZsYXRNYXAocyA9PiBzLnBlcm1pc3Npb25zKS5maWx0ZXIocCA9PiBwICE9IHVuZGVmaW5lZCkgYXMgSm9iUGVybWlzc2lvbnNbXSkpLFxuICAgICAgICBzdGVwczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdDaGVja291dCcsXG4gICAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2NCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICAuLi5zdGVwcy5mbGF0TWFwKHMgPT4gcy5zdGVwcyksXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgIH0gZWxzZSB7XG5cbiAgICAgIGNvbnN0IHN0ZXBzID0gW1xuICAgICAgICBuZXcgQXdzQXNzdW1lUm9sZVN0ZXAodGhpcy5wcm9qZWN0LCB7XG4gICAgICAgICAgcm9sZUFybjogdGhpcy5vcHRpb25zLmlhbVJvbGVBcm5zPy5kZXBsb3ltZW50Py5bc3RhZ2UubmFtZV0gPz8gdGhpcy5vcHRpb25zLmlhbVJvbGVBcm5zPy5kZWZhdWx0ISxcbiAgICAgICAgICByZWdpb246IHN0YWdlLmVudi5yZWdpb24sXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgRG93bmxvYWRBcnRpZmFjdFN0ZXAodGhpcy5wcm9qZWN0LCB7XG4gICAgICAgICAgbmFtZTogJ2Nsb3VkLWFzc2VtYmx5JyxcbiAgICAgICAgICBwYXRoOiBgJHt0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0fS9gLFxuICAgICAgICB9KSxcbiAgICAgICAgLi4udGhpcy5iYXNlT3B0aW9ucy5wcmVJbnN0YWxsU3RlcHMgPz8gW10sXG4gICAgICAgIG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIHRoaXMucmVuZGVySW5zdGFsbENvbW1hbmRzKCkpLFxuICAgICAgICBuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckRlcGxveUNvbW1hbmRzKHN0YWdlLm5hbWUpKSxcbiAgICAgICAgbmV3IFVwbG9hZEFydGlmYWN0U3RlcCh0aGlzLnByb2plY3QsIHtcbiAgICAgICAgICBuYW1lOiBgY2RrLW91dHB1dHMtJHtzdGFnZS5uYW1lfWAsXG4gICAgICAgICAgcGF0aDogYGNkay1vdXRwdXRzLSR7c3RhZ2UubmFtZX0uanNvbmAsXG4gICAgICAgIH0pLFxuICAgICAgXS5tYXAocyA9PiBzLnRvR2l0aHViKCkpO1xuXG4gICAgICAvLyBBZGQgZGVwbG95bWVudCB0byBDSS9DRCB3b3JrZmxvd1xuICAgICAgdGhpcy5kZXBsb3ltZW50V29ya2Zsb3cuYWRkSm9iKGBkZXBsb3ktJHtzdGFnZS5uYW1lfWAsIHtcbiAgICAgICAgbmFtZTogYERlcGxveSBzdGFnZSAke3N0YWdlLm5hbWV9IHRvIEFXU2AsXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucy51c2VHaXRodWJFbnZpcm9ubWVudHMgJiYge1xuICAgICAgICAgIGVudmlyb25tZW50OiBzdGFnZS5uYW1lLFxuICAgICAgICB9LFxuICAgICAgICBuZWVkczogWydhc3NldFVwbG9hZCcsIC4uLnN0ZXBzLmZsYXRNYXAocyA9PiBzLm5lZWRzKSwgLi4uKHRoaXMuZGVwbG95bWVudFN0YWdlcy5sZW5ndGggPiAwID8gW2BkZXBsb3ktJHt0aGlzLmRlcGxveW1lbnRTdGFnZXMuYXQoLTEpIX1gXSA6IFtdKV0sXG4gICAgICAgIHJ1bnNPbjogdGhpcy5vcHRpb25zLnJ1bm5lclRhZ3MgPz8gREVGQVVMVF9SVU5ORVJfVEFHUyxcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgQ0k6ICd0cnVlJyxcbiAgICAgICAgICAuLi5zdGVwcy5yZWR1Y2UoKGFjYywgc3RlcCkgPT4gKHsgLi4uYWNjLCAuLi5zdGVwLmVudiB9KSwge30pLFxuICAgICAgICB9LFxuICAgICAgICBwZXJtaXNzaW9uczogbWVyZ2VKb2JQZXJtaXNzaW9ucyh7XG4gICAgICAgICAgaWRUb2tlbjogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICB9LCAuLi4oc3RlcHMuZmxhdE1hcChzID0+IHMucGVybWlzc2lvbnMpLmZpbHRlcihwID0+IHAgIT0gdW5kZWZpbmVkKSBhcyBKb2JQZXJtaXNzaW9uc1tdKSksXG4gICAgICAgIHN0ZXBzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICAgIHVzZXM6ICdhY3Rpb25zL2NoZWNrb3V0QHY0JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIC4uLnN0ZXBzLmZsYXRNYXAocyA9PiBzLnN0ZXBzKSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kZXBsb3ltZW50U3RhZ2VzLnB1c2goc3RhZ2UubmFtZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBqb2IgdG8gZGVwbG95IHRoZSBDREsgYXBwbGljYXRpb24gdG8gQVdTLlxuICAgKiBAcGFyYW0gc3RhZ2UgLSBUaGUgaW5kZXBlbmRlbnQgc3RhZ2UgdG8gY3JlYXRlLlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUluZGVwZW5kZW50RGVwbG95bWVudChzdGFnZTogSW5kZXBlbmRlbnRTdGFnZSk6IHZvaWQge1xuICAgIGNvbnN0IHN0ZXBzID0gW1xuICAgICAgbmV3IEF3c0Fzc3VtZVJvbGVTdGVwKHRoaXMucHJvamVjdCwge1xuICAgICAgICByb2xlQXJuOiB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlcGxveW1lbnQ/LltzdGFnZS5uYW1lXSA/PyB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlZmF1bHQhLFxuICAgICAgICByZWdpb246IHN0YWdlLmVudi5yZWdpb24sXG4gICAgICB9KSxcbiAgICAgIC4uLnRoaXMuYmFzZU9wdGlvbnMucHJlSW5zdGFsbFN0ZXBzID8/IFtdLFxuICAgICAgbmV3IFNpbXBsZUNvbW1hbmRTdGVwKHRoaXMucHJvamVjdCwgdGhpcy5yZW5kZXJJbnN0YWxsQ29tbWFuZHMoKSksXG5cbiAgICAgIC4uLnRoaXMuYmFzZU9wdGlvbnMucHJlU3ludGhTdGVwcyA/PyBbXSxcbiAgICAgIG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIHRoaXMucmVuZGVyU3ludGhDb21tYW5kcygpKSxcbiAgICAgIC4uLnRoaXMuYmFzZU9wdGlvbnMucG9zdFN5bnRoU3RlcHMgPz8gW10sXG5cbiAgICAgIG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIHRoaXMucmVuZGVyRGlmZkNvbW1hbmRzKHN0YWdlLm5hbWUpKSxcbiAgICAgIC4uLnN0YWdlLnBvc3REaWZmU3RlcHMgPz8gW10sXG5cbiAgICAgIG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIHRoaXMucmVuZGVyRGVwbG95Q29tbWFuZHMoc3RhZ2UubmFtZSkpLFxuICAgICAgLi4uc3RhZ2UucG9zdERlcGxveVN0ZXBzID8/IFtdLFxuXG4gICAgICBuZXcgVXBsb2FkQXJ0aWZhY3RTdGVwKHRoaXMucHJvamVjdCwge1xuICAgICAgICBuYW1lOiBgY2RrLW91dHB1dHMtJHtzdGFnZS5uYW1lfWAsXG4gICAgICAgIHBhdGg6IGBjZGstb3V0cHV0cy0ke3N0YWdlLm5hbWV9Lmpzb25gLFxuICAgICAgfSksXG4gICAgXS5tYXAocyA9PiBzLnRvR2l0aHViKCkpO1xuXG4gICAgLy8gQ3JlYXRlIG5ldyB3b3JrZmxvdyBmb3IgZGVwbG95bWVudFxuICAgIGNvbnN0IHN0YWdlV29ya2Zsb3cgPSB0aGlzLmFwcC5naXRodWIhLmFkZFdvcmtmbG93KGBkZXBsb3ktJHtzdGFnZS5uYW1lfWApO1xuICAgIHN0YWdlV29ya2Zsb3cub24oe1xuICAgICAgd29ya2Zsb3dEaXNwYXRjaDoge30sXG4gICAgICAuLi5zdGFnZS5kZXBsb3lPblB1c2ggJiYge1xuICAgICAgICBwdXNoOiB7XG4gICAgICAgICAgYnJhbmNoZXM6IFt0aGlzLmJyYW5jaE5hbWVdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBzdGFnZVdvcmtmbG93LmFkZEpvYignZGVwbG95Jywge1xuICAgICAgbmFtZTogYFJlbGVhc2Ugc3RhZ2UgJHtzdGFnZS5uYW1lfSB0byBBV1NgLFxuICAgICAgbmVlZHM6IHN0ZXBzLmZsYXRNYXAocyA9PiBzLm5lZWRzKSxcbiAgICAgIHJ1bnNPbjogdGhpcy5vcHRpb25zLnJ1bm5lclRhZ3MgPz8gREVGQVVMVF9SVU5ORVJfVEFHUyxcbiAgICAgIC4uLnRoaXMub3B0aW9ucy51c2VHaXRodWJFbnZpcm9ubWVudHMgJiYge1xuICAgICAgICBlbnZpcm9ubWVudDogc3RhZ2UubmFtZSxcbiAgICAgIH0sXG4gICAgICBlbnY6IHtcbiAgICAgICAgQ0k6ICd0cnVlJyxcbiAgICAgICAgLi4uc3RlcHMucmVkdWNlKChhY2MsIHN0ZXApID0+ICh7IC4uLmFjYywgLi4uc3RlcC5lbnYgfSksIHt9KSxcbiAgICAgIH0sXG4gICAgICBwZXJtaXNzaW9uczogbWVyZ2VKb2JQZXJtaXNzaW9ucyh7XG4gICAgICAgIGlkVG9rZW46IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICB9LCAuLi4oc3RlcHMuZmxhdE1hcChzID0+IHMucGVybWlzc2lvbnMpLmZpbHRlcihwID0+IHAgIT0gdW5kZWZpbmVkKSBhcyBKb2JQZXJtaXNzaW9uc1tdKSksXG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2NCcsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnN0ZXBzLmZsYXRNYXAocyA9PiBzLnN0ZXBzKSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgfVxufVxuIl19
|