cdk-assets 3.1.1 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/aws.js CHANGED
@@ -128,4 +128,4 @@ function safeUsername() {
128
128
  return 'noname';
129
129
  }
130
130
  }
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlCQUF5QjtBQUN6QixvREFLNkI7QUFDN0Isa0RBSzRCO0FBQzVCLDRFQUE4RjtBQUM5RixvREFLNkI7QUFDN0Isd0VBQWdHO0FBQ2hHLHNEQUE4QztBQUM5Qyw2REFHaUM7QUFDakMsdUVBQTBEO0FBc0UxRCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUM7QUEwQmhDOztHQUVHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFLM0IsWUFBNkIsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUMzQyxNQUFNLFlBQVksR0FBb0I7WUFDcEMsZUFBZSxFQUFFLFVBQVU7U0FDNUIsQ0FBQztRQUVGLGtEQUFrRDtRQUNsRCw2RUFBNkU7UUFDN0UsZ0ZBQWdGO1FBQ2hGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBQSw0Q0FBcUIsRUFBQztZQUMzQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsWUFBWTtTQUNiLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixZQUFZO1lBQ1osV0FBVyxFQUFFLElBQUksQ0FBQyxlQUFlO1NBQ2xDLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFzQjtRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLG9CQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDNUQsT0FBTztZQUNMLG1CQUFtQixFQUFFLENBQ25CLEtBQXNDLEVBQ0ssRUFBRSxDQUM3QyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksc0NBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsaUJBQWlCLEVBQUUsQ0FDakIsS0FBb0MsRUFDSyxFQUFFLENBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxvQ0FBd0IsQ0FBQyxLQUFL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QUMsMkJBQTJCO3FCQUN2QztvQkFDRCxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZO2lCQUN2QyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQWpJRCw0Q0FpSUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxZQUFZO0lBQ25CLElBQUksQ0FBQztRQUNILE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCB7XG4gIERlc2NyaWJlSW1hZ2VzQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kLFxuICBFQ1JDbGllbnQsXG4gIEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1lY3InO1xuaW1wb3J0IHtcbiAgR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQsXG4gIEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZCxcbiAgTGlzdE9iamVjdHNWMkNvbW1hbmQsXG4gIFMzQ2xpZW50LFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHsgR2V0U2VjcmV0VmFsdWVDb21tYW5kLCBTZWNyZXRzTWFuYWdlckNsaWVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXInO1xuaW1wb3J0IHtcbiAgQXNzdW1lUm9sZUNvbW1hbmRJbnB1dCxcbiAgR2V0Q2FsbGVySWRlbnRpdHlDb21tYW5kLFxuICBTVFNDbGllbnQsXG4gIFNUU0NsaWVudENvbmZpZyxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXN0cyc7XG5pbXBvcnQgeyBmcm9tTm9kZVByb3ZpZGVyQ2hhaW4sIGZyb21UZW1wb3JhcnlDcmVkZW50aWFscyB9IGZyb20gJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXJzJztcbmltcG9ydCB7IFVwbG9hZCB9IGZyb20gJ0Bhd3Mtc2RrL2xpYi1zdG9yYWdlJztcbmltcG9ydCB7XG4gIE5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMsXG4gIE5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLFxufSBmcm9tICdAc21pdGh5L2NvbmZpZy1yZXNvbHZlcic7XG5pbXBvcnQgeyBsb2FkQ29uZmlnIH0gZnJvbSAnQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlcic7XG5pbXBvcnQge1xuICBBd3NDcmVkZW50aWFsSWRlbnRpdHlQcm92aWRlcixcbiAgQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCxcbiAgRGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlcG9zaXRvcmllc0NvbW1hbmRJbnB1dCxcbiAgRGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kT3V0cHV0LFxuICBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kSW5wdXQsXG4gIEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmRPdXRwdXQsXG4gIEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kSW5wdXQsXG4gIEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRCdWNrZXRMb2NhdGlvbkNvbW1hbmRJbnB1dCxcbiAgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRTZWNyZXRWYWx1ZUNvbW1hbmRJbnB1dCxcbiAgR2V0U2VjcmV0VmFsdWVDb21tYW5kT3V0cHV0LFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZElucHV0LFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZE91dHB1dCxcbiAgUHV0T2JqZWN0Q29tbWFuZElucHV0LFxufSBmcm9tICcuL2F3cy10eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucyA9IFBhcnRpYWw8XG4gIE9taXQ8QXNzdW1lUm9sZUNvbW1hbmRJbnB1dCwgJ0V4dGVybmFsSWQnIHwgJ1JvbGVBcm4nPlxuPjtcblxuZXhwb3J0IGludGVyZmFjZSBJUzNDbGllbnQge1xuICBnZXRCdWNrZXRFbmNyeXB0aW9uKFxuICAgIGlucHV0OiBHZXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZElucHV0XG4gICk6IFByb21pc2U8R2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmRPdXRwdXQ+O1xuICBnZXRCdWNrZXRMb2NhdGlvbihpbnB1dDogR2V0QnVja2V0TG9jYXRpb25Db21tYW5kSW5wdXQpOiBQcm9taXNlPEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZE91dHB1dD47XG4gIGxpc3RPYmplY3RzVjIoaW5wdXQ6IExpc3RPYmplY3RzVjJDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RPYmplY3RzVjJDb21tYW5kT3V0cHV0PjtcbiAgdXBsb2FkKGlucHV0OiBQdXRPYmplY3RDb21tYW5kSW5wdXQpOiBQcm9taXNlPENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZE91dHB1dD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVDUkNsaWVudCB7XG4gIGRlc2NyaWJlSW1hZ2VzKGlucHV0OiBEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVSZXBvc2l0b3JpZXMoXG4gICAgaW5wdXQ6IERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZElucHV0XG4gICk6IFByb21pc2U8RGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kT3V0cHV0PjtcbiAgZ2V0QXV0aG9yaXphdGlvblRva2VuKFxuICAgIGlucHV0PzogR2V0QXV0aG9yaXphdGlvblRva2VuQ29tbWFuZElucHV0XG4gICk6IFByb21pc2U8R2V0QXV0aG9yaXphdGlvblRva2VuQ29tbWFuZE91dHB1dD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlY3JldHNNYW5hZ2VyQ2xpZW50IHtcbiAgZ2V0U2VjcmV0VmFsdWUoaW5wdXQ6IEdldFNlY3JldFZhbHVlQ29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRTZWNyZXRWYWx1ZUNvbW1hbmRPdXRwdXQ+O1xufVxuXG4vKipcbiAqIEFXUyBTREsgb3BlcmF0aW9ucyByZXF1aXJlZCBieSBBc3NldCBQdWJsaXNoaW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUF3cyB7XG4gIGRpc2NvdmVyUGFydGl0aW9uKCk6IFByb21pc2U8c3RyaW5nPjtcbiAgZGlzY292ZXJEZWZhdWx0UmVnaW9uKCk6IFByb21pc2U8c3RyaW5nPjtcbiAgZGlzY292ZXJDdXJyZW50QWNjb3VudCgpOiBQcm9taXNlPEFjY291bnQ+O1xuXG4gIGRpc2NvdmVyVGFyZ2V0QWNjb3VudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxBY2NvdW50PjtcbiAgczNDbGllbnQob3B0aW9uczogQ2xpZW50T3B0aW9ucyk6IFByb21pc2U8SVMzQ2xpZW50PjtcbiAgZWNyQ2xpZW50KG9wdGlvbnM6IENsaWVudE9wdGlvbnMpOiBQcm9taXNlPElFQ1JDbGllbnQ+O1xuICBzZWNyZXRzTWFuYWdlckNsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxJU2VjcmV0c01hbmFnZXJDbGllbnQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsaWVudE9wdGlvbnMge1xuICByZWdpb24/OiBzdHJpbmc7XG4gIGFzc3VtZVJvbGVBcm4/OiBzdHJpbmc7XG4gIGFzc3VtZVJvbGVFeHRlcm5hbElkPzogc3RyaW5nO1xuICBhc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM/OiBBc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM7XG4gIHF1aWV0PzogYm9vbGVhbjtcbn1cblxuY29uc3QgVVNFUl9BR0VOVCA9ICdjZGstYXNzZXRzJztcblxuaW50ZXJmYWNlIENvbmZpZ3VyYXRpb24ge1xuICBjbGllbnRDb25maWc6IFNUU0NsaWVudENvbmZpZztcbiAgcmVnaW9uPzogc3RyaW5nO1xuICBjcmVkZW50aWFsczogQXdzQ3JlZGVudGlhbElkZW50aXR5UHJvdmlkZXI7XG59XG5cbi8qKlxuICogQW4gQVdTIGFjY291bnRcbiAqXG4gKiBBbiBBV1MgYWNjb3VudCBhbHdheXMgZXhpc3RzIGluIG9ubHkgb25lIHBhcnRpdGlvbi4gVXN1YWxseSB3ZSBkb24ndCBjYXJlIGFib3V0XG4gKiB0aGUgcGFydGl0aW9uLCBidXQgd2hlbiB3ZSBuZWVkIHRvIGZvcm0gQVJOcyB3ZSBkby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY2NvdW50IHtcbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50IG51bWJlclxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJ0aXRpb24gKCdhd3MnIG9yICdhd3MtY24nIG9yIG90aGVyd2lzZSlcbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFXUyBjbGllbnQgdXNpbmcgdGhlIEFXUyBTREsgZm9yIEpTIHdpdGggbm8gc3BlY2lhbCBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBEZWZhdWx0QXdzQ2xpZW50IGltcGxlbWVudHMgSUF3cyB7XG4gIHByaXZhdGUgYWNjb3VudD86IEFjY291bnQ7XG4gIHByaXZhdGUgY29uZmlnOiBDb25maWd1cmF0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IG1haW5DcmVkZW50aWFsczogQXdzQ3JlZGVudGlhbElkZW50aXR5UHJvdmlkZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9maWxlPzogc3RyaW5nKSB7XG4gICAgY29uc3QgY2xpZW50Q29uZmlnOiBTVFNDbGllbnRDb25maWcgPSB7XG4gICAgICBjdXN0b21Vc2VyQWdlbnQ6IFVTRVJfQUdFTlQsXG4gICAgfTtcblxuICAgIC8vIHN0b3JpbmcgdGhlIG1haW4gY3JlZGVudGlhbHMgc2VwYXJhdGVseSBiZWNhdXNlXG4gICAgLy8gdGhlIGBjb25maWdgIG9iamVjdCBjaGFuZ2VzIGV2ZXJ5IHRpbWUgd2UgYXNzdW1lIHRoZSBmaWxlIHB1Ymxpc2hpbmcgcm9sZS5cbiAgICAvLyBUT0RPIHJlZmFjdG9yIHRvIG1ha2UgYGNvbmZpZ2AgYSByZWFkb25seSBwcm9wZXJ0eSBhbmQgYXZvaWQgc3RhdGUgbXV0YXRpb25zLlxuICAgIHRoaXMubWFpbkNyZWRlbnRpYWxzID0gZnJvbU5vZGVQcm92aWRlckNoYWluKHtcbiAgICAgIHByb2ZpbGU6IHRoaXMucHJvZmlsZSxcbiAgICAgIGNsaWVudENvbmZpZyxcbiAgICB9KTtcblxuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgY2xpZW50Q29uZmlnLFxuICAgICAgY3JlZGVudGlhbHM6IHRoaXMubWFpbkNyZWRlbnRpYWxzLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgczNDbGllbnQob3B0aW9uczogQ2xpZW50T3B0aW9ucyk6IFByb21pc2U8SVMzQ2xpZW50PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IFMzQ2xpZW50KGF3YWl0IHRoaXMuYXdzT3B0aW9ucyhvcHRpb25zKSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldEJ1Y2tldEVuY3J5cHRpb246IChcbiAgICAgICAgaW5wdXQ6IEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGdldEJ1Y2tldExvY2F0aW9uOiAoXG4gICAgICAgIGlucHV0OiBHZXRCdWNrZXRMb2NhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICAgICk6IFByb21pc2U8R2V0QnVja2V0TG9jYXRpb25Db21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kKGlucHV0KSksXG4gICAgICBsaXN0T2JqZWN0c1YyOiAoaW5wdXQ6IExpc3RPYmplY3RzVjJDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RPYmplY3RzVjJDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgTGlzdE9iamVjdHNWMkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHVwbG9hZDogKGlucHV0OiBQdXRPYmplY3RDb21tYW5kSW5wdXQpOiBQcm9taXNlPENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZE91dHB1dD4gPT4ge1xuICAgICAgICBjb25zdCB1cGxvYWQgPSBuZXcgVXBsb2FkKHtcbiAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgcGFyYW1zOiBpbnB1dCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB1cGxvYWQuZG9uZSgpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGVjckNsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxJRUNSQ2xpZW50PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IEVDUkNsaWVudChhd2FpdCB0aGlzLmF3c09wdGlvbnMob3B0aW9ucykpO1xuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmliZUltYWdlczogKGlucHV0OiBEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVJbWFnZXNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZVJlcG9zaXRvcmllczogKFxuICAgICAgICBpbnB1dDogRGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZ2V0QXV0aG9yaXphdGlvblRva2VuOiAoXG4gICAgICAgIGlucHV0OiBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kKGlucHV0ID8/IHt9KSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZWNyZXRzTWFuYWdlckNsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxJU2VjcmV0c01hbmFnZXJDbGllbnQ+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgU2VjcmV0c01hbmFnZXJDbGllbnQoYXdhaXQgdGhpcy5hd3NPcHRpb25zKG9wdGlvbnMpKTtcbiAgICByZXR1cm4ge1xuICAgICAgZ2V0U2VjcmV0VmFsdWU6IChpbnB1dDogR2V0U2VjcmV0VmFsdWVDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldFNlY3JldFZhbHVlQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEdldFNlY3JldFZhbHVlQ29tbWFuZChpbnB1dCkpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY292ZXJQYXJ0aXRpb24oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZGlzY292ZXJDdXJyZW50QWNjb3VudCgpKS5wYXJ0aXRpb247XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY292ZXJEZWZhdWx0UmVnaW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGxvYWRDb25maWcoTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIE5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMpKCkgfHwgJ3VzLWVhc3QtMSc7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY292ZXJDdXJyZW50QWNjb3VudCgpOiBQcm9taXNlPEFjY291bnQ+IHtcbiAgICBpZiAodGhpcy5hY2NvdW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYWNjb3VudCA9IGF3YWl0IHRoaXMuZ2V0QWNjb3VudCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY2NvdW50O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2NvdmVyVGFyZ2V0QWNjb3VudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxBY2NvdW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWNjb3VudChhd2FpdCB0aGlzLmF3c09wdGlvbnMob3B0aW9ucykpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBY2NvdW50KG9wdGlvbnM/OiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxBY2NvdW50PiB7XG4gICAgdGhpcy5jb25maWcuY2xpZW50Q29uZmlnID0gb3B0aW9ucyA/PyB0aGlzLmNvbmZpZy5jbGllbnRDb25maWc7XG4gICAgY29uc3Qgc3RzQ2xpZW50ID0gbmV3IFNUU0NsaWVudChhd2FpdCB0aGlzLmF3c09wdGlvbnMob3B0aW9ucykpO1xuXG4gICAgY29uc3QgY29tbWFuZCA9IG5ldyBHZXRDYWxsZXJJZGVudGl0eUNvbW1hbmQoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHN0c0NsaWVudC5zZW5kKGNvbW1hbmQpO1xuICAgIGlmICghcmVzcG9uc2UuQWNjb3VudCB8fCAhcmVzcG9uc2UuQXJuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCByZXNwb25zZSBmcm9tIFNUUzogJyR7SlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpfSdgKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGFjY291bnRJZDogcmVzcG9uc2UuQWNjb3VudCEsXG4gICAgICBwYXJ0aXRpb246IHJlc3BvbnNlLkFybiEuc3BsaXQoJzonKVsxXSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhd3NPcHRpb25zKG9wdGlvbnM/OiBDbGllbnRPcHRpb25zKSB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgY29uZmlnLnJlZ2lvbiA9IG9wdGlvbnM/LnJlZ2lvbjtcbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgY29uZmlnLnJlZ2lvbiA9IG9wdGlvbnMucmVnaW9uO1xuICAgICAgaWYgKG9wdGlvbnMuYXNzdW1lUm9sZUFybikge1xuICAgICAgICBjb25maWcuY3JlZGVudGlhbHMgPSBmcm9tVGVtcG9yYXJ5Q3JlZGVudGlhbHMoe1xuICAgICAgICAgIC8vIGRvbnQgZm9yZ2V0IHRoZSBjcmVkZW50aWFscyBjaGFpbi5cbiAgICAgICAgICBtYXN0ZXJDcmVkZW50aWFsczogdGhpcy5tYWluQ3JlZGVudGlhbHMsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBSb2xlQXJuOiBvcHRpb25zLmFzc3VtZVJvbGVBcm4sXG4gICAgICAgICAgICBFeHRlcm5hbElkOiBvcHRpb25zLmFzc3VtZVJvbGVFeHRlcm5hbElkLFxuICAgICAgICAgICAgUm9sZVNlc3Npb25OYW1lOiBgJHtVU0VSX0FHRU5UfS0ke3NhZmVVc2VybmFtZSgpfWAsXG4gICAgICAgICAgICBUcmFuc2l0aXZlVGFnS2V5czogb3B0aW9ucy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM/LlRhZ3NcbiAgICAgICAgICAgICAgPyBvcHRpb25zLmFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucy5UYWdzLm1hcCgodCkgPT4gdC5LZXkhKVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMuYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2xpZW50Q29uZmlnOiB0aGlzLmNvbmZpZy5jbGllbnRDb25maWcsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSB1c2VybmFtZSB3aXRoIGNoYXJhY3RlcnMgaW52YWxpZCBmb3IgYSBSb2xlU2Vzc2lvbk5hbWUgcmVtb3ZlZFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL1NUUy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Bc3N1bWVSb2xlLmh0bWwjQVBJX0Fzc3VtZVJvbGVfUmVxdWVzdFBhcmFtZXRlcnNcbiAqL1xuZnVuY3Rpb24gc2FmZVVzZXJuYW1lKCkge1xuICB0cnkge1xuICAgIHJldHVybiBvcy51c2VySW5mbygpLnVzZXJuYW1lLnJlcGxhY2UoL1teXFx3Kz0sLkAtXS9nLCAnQCcpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJ25vbmFtZSc7XG4gIH1cbn1cbiJdfQ==
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlCQUF5QjtBQUN6QixvREFLNkI7QUFDN0Isa0RBSzRCO0FBQzVCLDRFQUE4RjtBQUs5RixvREFHNkI7QUFDN0Isd0VBQWdHO0FBQ2hHLHNEQUE4QztBQUM5Qyw2REFHaUM7QUFDakMsdUVBQTBEO0FBc0UxRCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUM7QUEwQmhDOztHQUVHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFLM0IsWUFBNkIsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUMzQyxNQUFNLFlBQVksR0FBb0I7WUFDcEMsZUFBZSxFQUFFLFVBQVU7U0FDNUIsQ0FBQztRQUVGLGtEQUFrRDtRQUNsRCw2RUFBNkU7UUFDN0UsZ0ZBQWdGO1FBQ2hGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBQSw0Q0FBcUIsRUFBQztZQUMzQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsWUFBWTtTQUNiLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixZQUFZO1lBQ1osV0FBVyxFQUFFLElBQUksQ0FBQyxlQUFlO1NBQ2xDLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFzQjtRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLG9CQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDNUQsT0FBTztZQUNMLG1CQUFtQixFQUFFLENBQ25CLEtBQXNDLEVBQ0ssRUFBRSxDQUM3QyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksc0NBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsaUJBQWlCLEVBQUUsQ0FDakIsS0FBb0MsRUFDSyxFQUFFLENBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxvQ0FBd0IsQ0FBQyxLQUFL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QUMsMkJBQTJCO3FCQUN2QztvQkFDRCxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZO2lCQUN2QyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQWpJRCw0Q0FpSUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxZQUFZO0lBQ25CLElBQUksQ0FBQztRQUNILE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCB7XG4gIERlc2NyaWJlSW1hZ2VzQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kLFxuICBFQ1JDbGllbnQsXG4gIEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1lY3InO1xuaW1wb3J0IHtcbiAgR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQsXG4gIEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZCxcbiAgTGlzdE9iamVjdHNWMkNvbW1hbmQsXG4gIFMzQ2xpZW50LFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHsgR2V0U2VjcmV0VmFsdWVDb21tYW5kLCBTZWNyZXRzTWFuYWdlckNsaWVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXInO1xuaW1wb3J0IHR5cGUge1xuICBBc3N1bWVSb2xlQ29tbWFuZElucHV0LFxuICBTVFNDbGllbnRDb25maWcsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zdHMnO1xuaW1wb3J0IHtcbiAgR2V0Q2FsbGVySWRlbnRpdHlDb21tYW5kLFxuICBTVFNDbGllbnQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zdHMnO1xuaW1wb3J0IHsgZnJvbU5vZGVQcm92aWRlckNoYWluLCBmcm9tVGVtcG9yYXJ5Q3JlZGVudGlhbHMgfSBmcm9tICdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBVcGxvYWQgfSBmcm9tICdAYXdzLXNkay9saWItc3RvcmFnZSc7XG5pbXBvcnQge1xuICBOT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLFxuICBOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUyxcbn0gZnJvbSAnQHNtaXRoeS9jb25maWctcmVzb2x2ZXInO1xuaW1wb3J0IHsgbG9hZENvbmZpZyB9IGZyb20gJ0BzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXInO1xuaW1wb3J0IHR5cGUge1xuICBBd3NDcmVkZW50aWFsSWRlbnRpdHlQcm92aWRlcixcbiAgQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCxcbiAgRGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlcG9zaXRvcmllc0NvbW1hbmRJbnB1dCxcbiAgRGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kT3V0cHV0LFxuICBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kSW5wdXQsXG4gIEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmRPdXRwdXQsXG4gIEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kSW5wdXQsXG4gIEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRCdWNrZXRMb2NhdGlvbkNvbW1hbmRJbnB1dCxcbiAgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRTZWNyZXRWYWx1ZUNvbW1hbmRJbnB1dCxcbiAgR2V0U2VjcmV0VmFsdWVDb21tYW5kT3V0cHV0LFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZElucHV0LFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZE91dHB1dCxcbiAgUHV0T2JqZWN0Q29tbWFuZElucHV0LFxufSBmcm9tICcuL2F3cy10eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucyA9IFBhcnRpYWw8XG4gIE9taXQ8QXNzdW1lUm9sZUNvbW1hbmRJbnB1dCwgJ0V4dGVybmFsSWQnIHwgJ1JvbGVBcm4nPlxuPjtcblxuZXhwb3J0IGludGVyZmFjZSBJUzNDbGllbnQge1xuICBnZXRCdWNrZXRFbmNyeXB0aW9uKFxuICAgIGlucHV0OiBHZXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZElucHV0XG4gICk6IFByb21pc2U8R2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmRPdXRwdXQ+O1xuICBnZXRCdWNrZXRMb2NhdGlvbihpbnB1dDogR2V0QnVja2V0TG9jYXRpb25Db21tYW5kSW5wdXQpOiBQcm9taXNlPEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZE91dHB1dD47XG4gIGxpc3RPYmplY3RzVjIoaW5wdXQ6IExpc3RPYmplY3RzVjJDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RPYmplY3RzVjJDb21tYW5kT3V0cHV0PjtcbiAgdXBsb2FkKGlucHV0OiBQdXRPYmplY3RDb21tYW5kSW5wdXQpOiBQcm9taXNlPENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZE91dHB1dD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVDUkNsaWVudCB7XG4gIGRlc2NyaWJlSW1hZ2VzKGlucHV0OiBEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVSZXBvc2l0b3JpZXMoXG4gICAgaW5wdXQ6IERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZElucHV0XG4gICk6IFByb21pc2U8RGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kT3V0cHV0PjtcbiAgZ2V0QXV0aG9yaXphdGlvblRva2VuKFxuICAgIGlucHV0PzogR2V0QXV0aG9yaXphdGlvblRva2VuQ29tbWFuZElucHV0XG4gICk6IFByb21pc2U8R2V0QXV0aG9yaXphdGlvblRva2VuQ29tbWFuZE91dHB1dD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlY3JldHNNYW5hZ2VyQ2xpZW50IHtcbiAgZ2V0U2VjcmV0VmFsdWUoaW5wdXQ6IEdldFNlY3JldFZhbHVlQ29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRTZWNyZXRWYWx1ZUNvbW1hbmRPdXRwdXQ+O1xufVxuXG4vKipcbiAqIEFXUyBTREsgb3BlcmF0aW9ucyByZXF1aXJlZCBieSBBc3NldCBQdWJsaXNoaW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUF3cyB7XG4gIGRpc2NvdmVyUGFydGl0aW9uKCk6IFByb21pc2U8c3RyaW5nPjtcbiAgZGlzY292ZXJEZWZhdWx0UmVnaW9uKCk6IFByb21pc2U8c3RyaW5nPjtcbiAgZGlzY292ZXJDdXJyZW50QWNjb3VudCgpOiBQcm9taXNlPEFjY291bnQ+O1xuXG4gIGRpc2NvdmVyVGFyZ2V0QWNjb3VudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxBY2NvdW50PjtcbiAgczNDbGllbnQob3B0aW9uczogQ2xpZW50T3B0aW9ucyk6IFByb21pc2U8SVMzQ2xpZW50PjtcbiAgZWNyQ2xpZW50KG9wdGlvbnM6IENsaWVudE9wdGlvbnMpOiBQcm9taXNlPElFQ1JDbGllbnQ+O1xuICBzZWNyZXRzTWFuYWdlckNsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxJU2VjcmV0c01hbmFnZXJDbGllbnQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsaWVudE9wdGlvbnMge1xuICByZWdpb24/OiBzdHJpbmc7XG4gIGFzc3VtZVJvbGVBcm4/OiBzdHJpbmc7XG4gIGFzc3VtZVJvbGVFeHRlcm5hbElkPzogc3RyaW5nO1xuICBhc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM/OiBBc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM7XG4gIHF1aWV0PzogYm9vbGVhbjtcbn1cblxuY29uc3QgVVNFUl9BR0VOVCA9ICdjZGstYXNzZXRzJztcblxuaW50ZXJmYWNlIENvbmZpZ3VyYXRpb24ge1xuICBjbGllbnRDb25maWc6IFNUU0NsaWVudENvbmZpZztcbiAgcmVnaW9uPzogc3RyaW5nO1xuICBjcmVkZW50aWFsczogQXdzQ3JlZGVudGlhbElkZW50aXR5UHJvdmlkZXI7XG59XG5cbi8qKlxuICogQW4gQVdTIGFjY291bnRcbiAqXG4gKiBBbiBBV1MgYWNjb3VudCBhbHdheXMgZXhpc3RzIGluIG9ubHkgb25lIHBhcnRpdGlvbi4gVXN1YWxseSB3ZSBkb24ndCBjYXJlIGFib3V0XG4gKiB0aGUgcGFydGl0aW9uLCBidXQgd2hlbiB3ZSBuZWVkIHRvIGZvcm0gQVJOcyB3ZSBkby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY2NvdW50IHtcbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50IG51bWJlclxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJ0aXRpb24gKCdhd3MnIG9yICdhd3MtY24nIG9yIG90aGVyd2lzZSlcbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFXUyBjbGllbnQgdXNpbmcgdGhlIEFXUyBTREsgZm9yIEpTIHdpdGggbm8gc3BlY2lhbCBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBEZWZhdWx0QXdzQ2xpZW50IGltcGxlbWVudHMgSUF3cyB7XG4gIHByaXZhdGUgYWNjb3VudD86IEFjY291bnQ7XG4gIHByaXZhdGUgY29uZmlnOiBDb25maWd1cmF0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IG1haW5DcmVkZW50aWFsczogQXdzQ3JlZGVudGlhbElkZW50aXR5UHJvdmlkZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9maWxlPzogc3RyaW5nKSB7XG4gICAgY29uc3QgY2xpZW50Q29uZmlnOiBTVFNDbGllbnRDb25maWcgPSB7XG4gICAgICBjdXN0b21Vc2VyQWdlbnQ6IFVTRVJfQUdFTlQsXG4gICAgfTtcblxuICAgIC8vIHN0b3JpbmcgdGhlIG1haW4gY3JlZGVudGlhbHMgc2VwYXJhdGVseSBiZWNhdXNlXG4gICAgLy8gdGhlIGBjb25maWdgIG9iamVjdCBjaGFuZ2VzIGV2ZXJ5IHRpbWUgd2UgYXNzdW1lIHRoZSBmaWxlIHB1Ymxpc2hpbmcgcm9sZS5cbiAgICAvLyBUT0RPIHJlZmFjdG9yIHRvIG1ha2UgYGNvbmZpZ2AgYSByZWFkb25seSBwcm9wZXJ0eSBhbmQgYXZvaWQgc3RhdGUgbXV0YXRpb25zLlxuICAgIHRoaXMubWFpbkNyZWRlbnRpYWxzID0gZnJvbU5vZGVQcm92aWRlckNoYWluKHtcbiAgICAgIHByb2ZpbGU6IHRoaXMucHJvZmlsZSxcbiAgICAgIGNsaWVudENvbmZpZyxcbiAgICB9KTtcblxuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgY2xpZW50Q29uZmlnLFxuICAgICAgY3JlZGVudGlhbHM6IHRoaXMubWFpbkNyZWRlbnRpYWxzLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgczNDbGllbnQob3B0aW9uczogQ2xpZW50T3B0aW9ucyk6IFByb21pc2U8SVMzQ2xpZW50PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IFMzQ2xpZW50KGF3YWl0IHRoaXMuYXdzT3B0aW9ucyhvcHRpb25zKSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldEJ1Y2tldEVuY3J5cHRpb246IChcbiAgICAgICAgaW5wdXQ6IEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGdldEJ1Y2tldExvY2F0aW9uOiAoXG4gICAgICAgIGlucHV0OiBHZXRCdWNrZXRMb2NhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICAgICk6IFByb21pc2U8R2V0QnVja2V0TG9jYXRpb25Db21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kKGlucHV0KSksXG4gICAgICBsaXN0T2JqZWN0c1YyOiAoaW5wdXQ6IExpc3RPYmplY3RzVjJDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RPYmplY3RzVjJDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgTGlzdE9iamVjdHNWMkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHVwbG9hZDogKGlucHV0OiBQdXRPYmplY3RDb21tYW5kSW5wdXQpOiBQcm9taXNlPENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZE91dHB1dD4gPT4ge1xuICAgICAgICBjb25zdCB1cGxvYWQgPSBuZXcgVXBsb2FkKHtcbiAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgcGFyYW1zOiBpbnB1dCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB1cGxvYWQuZG9uZSgpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGVjckNsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxJRUNSQ2xpZW50PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IEVDUkNsaWVudChhd2FpdCB0aGlzLmF3c09wdGlvbnMob3B0aW9ucykpO1xuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmliZUltYWdlczogKGlucHV0OiBEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVJbWFnZXNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZVJlcG9zaXRvcmllczogKFxuICAgICAgICBpbnB1dDogRGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZ2V0QXV0aG9yaXphdGlvblRva2VuOiAoXG4gICAgICAgIGlucHV0OiBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kKGlucHV0ID8/IHt9KSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZWNyZXRzTWFuYWdlckNsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxJU2VjcmV0c01hbmFnZXJDbGllbnQ+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgU2VjcmV0c01hbmFnZXJDbGllbnQoYXdhaXQgdGhpcy5hd3NPcHRpb25zKG9wdGlvbnMpKTtcbiAgICByZXR1cm4ge1xuICAgICAgZ2V0U2VjcmV0VmFsdWU6IChpbnB1dDogR2V0U2VjcmV0VmFsdWVDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldFNlY3JldFZhbHVlQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEdldFNlY3JldFZhbHVlQ29tbWFuZChpbnB1dCkpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY292ZXJQYXJ0aXRpb24oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZGlzY292ZXJDdXJyZW50QWNjb3VudCgpKS5wYXJ0aXRpb247XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY292ZXJEZWZhdWx0UmVnaW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGxvYWRDb25maWcoTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIE5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMpKCkgfHwgJ3VzLWVhc3QtMSc7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY292ZXJDdXJyZW50QWNjb3VudCgpOiBQcm9taXNlPEFjY291bnQ+IHtcbiAgICBpZiAodGhpcy5hY2NvdW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYWNjb3VudCA9IGF3YWl0IHRoaXMuZ2V0QWNjb3VudCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY2NvdW50O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2NvdmVyVGFyZ2V0QWNjb3VudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxBY2NvdW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWNjb3VudChhd2FpdCB0aGlzLmF3c09wdGlvbnMob3B0aW9ucykpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBY2NvdW50KG9wdGlvbnM/OiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxBY2NvdW50PiB7XG4gICAgdGhpcy5jb25maWcuY2xpZW50Q29uZmlnID0gb3B0aW9ucyA/PyB0aGlzLmNvbmZpZy5jbGllbnRDb25maWc7XG4gICAgY29uc3Qgc3RzQ2xpZW50ID0gbmV3IFNUU0NsaWVudChhd2FpdCB0aGlzLmF3c09wdGlvbnMob3B0aW9ucykpO1xuXG4gICAgY29uc3QgY29tbWFuZCA9IG5ldyBHZXRDYWxsZXJJZGVudGl0eUNvbW1hbmQoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHN0c0NsaWVudC5zZW5kKGNvbW1hbmQpO1xuICAgIGlmICghcmVzcG9uc2UuQWNjb3VudCB8fCAhcmVzcG9uc2UuQXJuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCByZXNwb25zZSBmcm9tIFNUUzogJyR7SlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpfSdgKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGFjY291bnRJZDogcmVzcG9uc2UuQWNjb3VudCEsXG4gICAgICBwYXJ0aXRpb246IHJlc3BvbnNlLkFybiEuc3BsaXQoJzonKVsxXSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhd3NPcHRpb25zKG9wdGlvbnM/OiBDbGllbnRPcHRpb25zKSB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgY29uZmlnLnJlZ2lvbiA9IG9wdGlvbnM/LnJlZ2lvbjtcbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgY29uZmlnLnJlZ2lvbiA9IG9wdGlvbnMucmVnaW9uO1xuICAgICAgaWYgKG9wdGlvbnMuYXNzdW1lUm9sZUFybikge1xuICAgICAgICBjb25maWcuY3JlZGVudGlhbHMgPSBmcm9tVGVtcG9yYXJ5Q3JlZGVudGlhbHMoe1xuICAgICAgICAgIC8vIGRvbnQgZm9yZ2V0IHRoZSBjcmVkZW50aWFscyBjaGFpbi5cbiAgICAgICAgICBtYXN0ZXJDcmVkZW50aWFsczogdGhpcy5tYWluQ3JlZGVudGlhbHMsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBSb2xlQXJuOiBvcHRpb25zLmFzc3VtZVJvbGVBcm4sXG4gICAgICAgICAgICBFeHRlcm5hbElkOiBvcHRpb25zLmFzc3VtZVJvbGVFeHRlcm5hbElkLFxuICAgICAgICAgICAgUm9sZVNlc3Npb25OYW1lOiBgJHtVU0VSX0FHRU5UfS0ke3NhZmVVc2VybmFtZSgpfWAsXG4gICAgICAgICAgICBUcmFuc2l0aXZlVGFnS2V5czogb3B0aW9ucy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM/LlRhZ3NcbiAgICAgICAgICAgICAgPyBvcHRpb25zLmFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucy5UYWdzLm1hcCgodCkgPT4gdC5LZXkhKVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMuYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2xpZW50Q29uZmlnOiB0aGlzLmNvbmZpZy5jbGllbnRDb25maWcsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSB1c2VybmFtZSB3aXRoIGNoYXJhY3RlcnMgaW52YWxpZCBmb3IgYSBSb2xlU2Vzc2lvbk5hbWUgcmVtb3ZlZFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL1NUUy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Bc3N1bWVSb2xlLmh0bWwjQVBJX0Fzc3VtZVJvbGVfUmVxdWVzdFBhcmFtZXRlcnNcbiAqL1xuZnVuY3Rpb24gc2FmZVVzZXJuYW1lKCkge1xuICB0cnkge1xuICAgIHJldHVybiBvcy51c2VySW5mbygpLnVzZXJuYW1lLnJlcGxhY2UoL1teXFx3Kz0sLkAtXS9nLCAnQCcpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJ25vbmFtZSc7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
- import { DockerFactory } from './docker';
2
- import { IAws } from '../aws';
3
- import { EventEmitter } from '../progress';
1
+ import type { DockerFactory } from './docker';
2
+ import type { IAws } from '../aws';
3
+ import type { EventEmitter } from '../progress';
4
4
  /**
5
5
  * Options for publishing an asset.
6
6
  */
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFzc2V0LWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvY2tlckZhY3RvcnkgfSBmcm9tICcuL2RvY2tlcic7XG5pbXBvcnQgeyBJQXdzIH0gZnJvbSAnLi4vYXdzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uL3Byb2dyZXNzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBwdWJsaXNoaW5nIGFuIGFzc2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFB1Ymxpc2hPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGFsbG93IGNyb3NzIGFjY291bnQgcHVibGlzaGluZy4gVGhhdCBpcyxcbiAgICogcHVibGlzaCB0byBhIGJ1Y2tldCBiZWxvbmdpbmcgdG8gYSBkaWZmZXJlbnQgYWNjb3VudCB0aGFuIHRoZSB0YXJnZXQgYWNjb3VudC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dDcm9zc0FjY291bnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbHdheXMgdXBsb2FkLCBldmVuIGlmIHRoZSB0YXJnZXQgZmlsZSBhbHJlYWR5IGV4aXN0c1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZm9yY2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEhhbmRsZXIgZm9yIGFzc2V0IGJ1aWxkaW5nIGFuZCBwdWJsaXNoaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBc3NldEhhbmRsZXIge1xuICAvKipcbiAgICogQnVpbGQgdGhlIGFzc2V0LlxuICAgKi9cbiAgYnVpbGQoKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogUHVibGlzaCB0aGUgYXNzZXQuXG4gICAqL1xuICBwdWJsaXNoKG9wdGlvbnM/OiBQdWJsaXNoT3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBhc3NldCBhbHJlYWR5IGV4aXN0c1xuICAgKi9cbiAgaXNQdWJsaXNoZWQoKTogUHJvbWlzZTxib29sZWFuPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSGFuZGxlckhvc3Qge1xuICByZWFkb25seSBhd3M6IElBd3M7XG4gIHJlYWRvbmx5IGFib3J0ZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGRvY2tlckZhY3Rvcnk6IERvY2tlckZhY3Rvcnk7XG5cbiAgZW1pdE1lc3NhZ2U6IEV2ZW50RW1pdHRlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogV2hlcmUgdG8gc2VuZCBvdXRwdXQgb2YgYSBzdWJwcm9jZXNzZXNcbiAgICpcbiAgICogQGRlZmF1bHQgJ3N0ZGlvJ1xuICAgKi9cbiAgcmVhZG9ubHkgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uOiBTdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb247XG59XG5cbi8qKlxuICogVGhlIHBvdGVudGlhbCBkZXN0aW5hdGlvbnMgZm9yIHN1YnByb2Nlc3Mgb3V0cHV0LlxuICpcbiAqICdzdGRpbycgd2lsbCBzZW5kIG91dHB1dCBkaXJlY3RseSB0byBzdGRvdXQvc3RkZXJyLFxuICogJ3B1Ymxpc2gnIHdpbGwgcHVibGlzaCB0aGUgb3V0cHV0IHRvIHRoZSB7QGxpbmsgSVB1Ymxpc2hQcm9ncmVzc0xpc3RlbmVyfSxcbiAqICdpZ25vcmUnIHdpbGwgaWdub3JlIHRoZSBvdXRwdXQsIGFuZCBlbWl0IGl0IG5vd2hlcmUuXG4gKi9cbmV4cG9ydCB0eXBlIFN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbiA9ICdzdGRpbycgfCAnaWdub3JlJyB8ICdwdWJsaXNoJztcbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFzc2V0LWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRG9ja2VyRmFjdG9yeSB9IGZyb20gJy4vZG9ja2VyJztcbmltcG9ydCB0eXBlIHsgSUF3cyB9IGZyb20gJy4uL2F3cyc7XG5pbXBvcnQgdHlwZSB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uL3Byb2dyZXNzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBwdWJsaXNoaW5nIGFuIGFzc2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFB1Ymxpc2hPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGFsbG93IGNyb3NzIGFjY291bnQgcHVibGlzaGluZy4gVGhhdCBpcyxcbiAgICogcHVibGlzaCB0byBhIGJ1Y2tldCBiZWxvbmdpbmcgdG8gYSBkaWZmZXJlbnQgYWNjb3VudCB0aGFuIHRoZSB0YXJnZXQgYWNjb3VudC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dDcm9zc0FjY291bnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbHdheXMgdXBsb2FkLCBldmVuIGlmIHRoZSB0YXJnZXQgZmlsZSBhbHJlYWR5IGV4aXN0c1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZm9yY2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEhhbmRsZXIgZm9yIGFzc2V0IGJ1aWxkaW5nIGFuZCBwdWJsaXNoaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBc3NldEhhbmRsZXIge1xuICAvKipcbiAgICogQnVpbGQgdGhlIGFzc2V0LlxuICAgKi9cbiAgYnVpbGQoKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogUHVibGlzaCB0aGUgYXNzZXQuXG4gICAqL1xuICBwdWJsaXNoKG9wdGlvbnM/OiBQdWJsaXNoT3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBhc3NldCBhbHJlYWR5IGV4aXN0c1xuICAgKi9cbiAgaXNQdWJsaXNoZWQoKTogUHJvbWlzZTxib29sZWFuPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSGFuZGxlckhvc3Qge1xuICByZWFkb25seSBhd3M6IElBd3M7XG4gIHJlYWRvbmx5IGFib3J0ZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGRvY2tlckZhY3Rvcnk6IERvY2tlckZhY3Rvcnk7XG5cbiAgZW1pdE1lc3NhZ2U6IEV2ZW50RW1pdHRlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogV2hlcmUgdG8gc2VuZCBvdXRwdXQgb2YgYSBzdWJwcm9jZXNzZXNcbiAgICpcbiAgICogQGRlZmF1bHQgJ3N0ZGlvJ1xuICAgKi9cbiAgcmVhZG9ubHkgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uOiBTdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb247XG59XG5cbi8qKlxuICogVGhlIHBvdGVudGlhbCBkZXN0aW5hdGlvbnMgZm9yIHN1YnByb2Nlc3Mgb3V0cHV0LlxuICpcbiAqICdzdGRpbycgd2lsbCBzZW5kIG91dHB1dCBkaXJlY3RseSB0byBzdGRvdXQvc3RkZXJyLFxuICogJ3B1Ymxpc2gnIHdpbGwgcHVibGlzaCB0aGUgb3V0cHV0IHRvIHRoZSB7QGxpbmsgSVB1Ymxpc2hQcm9ncmVzc0xpc3RlbmVyfSxcbiAqICdpZ25vcmUnIHdpbGwgaWdub3JlIHRoZSBvdXRwdXQsIGFuZCBlbWl0IGl0IG5vd2hlcmUuXG4gKi9cbmV4cG9ydCB0eXBlIFN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbiA9ICdzdGRpbycgfCAnaWdub3JlJyB8ICdwdWJsaXNoJztcbiJdfQ==
@@ -1,5 +1,5 @@
1
- import { IAws, IECRClient } from '../aws';
2
- import { EventEmitter } from '../progress';
1
+ import type { IAws, IECRClient } from '../aws';
2
+ import type { EventEmitter } from '../progress';
3
3
  export interface DockerCredentials {
4
4
  readonly Username: string;
5
5
  readonly Secret: string;
@@ -87,4 +87,4 @@ async function obtainEcrCredentials(ecr, eventEmitter) {
87
87
  endpoint: authData[0].proxyEndpoint,
88
88
  };
89
89
  }
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyLWNyZWRlbnRpYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZG9ja2VyLWNyZWRlbnRpYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBeUJBLDREQVNDO0FBSUQsb0RBVUM7QUFLRCwwRUFFQztBQUdELGtFQWlEQztBQUVELG9EQW9CQztBQWpJRCx5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUU3QiwwQ0FBc0Q7QUFvQnRELDhFQUE4RTtBQUM5RSxTQUFnQix3QkFBd0I7SUFDdEMsT0FBTyxDQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQ1AsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsRUFDckQsTUFBTSxFQUNOLHVCQUF1QixDQUN4QixDQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsSUFBSSxlQUFvRCxDQUFDO0FBQ3pELCtFQUErRTtBQUMvRSxTQUFnQixvQkFBb0I7SUFDbEMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQztZQUNILGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUMxQixFQUFFLENBQUMsWUFBWSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FDeEMsQ0FBQztRQUMvQixDQUFDO1FBQUMsTUFBTSxDQUFDO1FBQ1QsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiwrQkFBK0I7SUFDN0MsZUFBZSxHQUFHLFNBQVMsQ0FBQztBQUM5QixDQUFDO0FBRUQsdUZBQXVGO0FBQ2hGLEtBQUssVUFBVSwyQkFBMkIsQ0FDL0MsR0FBUyxFQUNULE1BQStCLEVBQy9CLFFBQWdCO0lB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QkFBcUIsRUFBRSxDQUFDLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDO0lBQzdFLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFtQixFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RixNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsT0FBTztRQUNMLFFBQVE7UUFDUixRQUFRO1FBQ1IsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFjO0tBQ3JDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IElBd3MsIElFQ1JDbGllbnQgfSBmcm9tICcuLi9hd3MnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBFdmVudFR5cGUgfSBmcm9tICcuLi9wcm9ncmVzcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyQ3JlZGVudGlhbHMge1xuICByZWFkb25seSBVc2VybmFtZTogc3RyaW5nO1xuICByZWFkb25seSBTZWNyZXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJDcmVkZW50aWFsc0NvbmZpZyB7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbiAgcmVhZG9ubHkgZG9tYWluQ3JlZGVudGlhbHM6IFJlY29yZDxzdHJpbmcsIERvY2tlckRvbWFpbkNyZWRlbnRpYWxTb3VyY2U+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlckRvbWFpbkNyZWRlbnRpYWxTb3VyY2Uge1xuICByZWFkb25seSBzZWNyZXRzTWFuYWdlclNlY3JldElkPzogc3RyaW5nO1xuICByZWFkb25seSBzZWNyZXRzVXNlcm5hbWVGaWVsZD86IHN0cmluZztcbiAgcmVhZG9ubHkgc2VjcmV0c1Bhc3N3b3JkRmllbGQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVjclJlcG9zaXRvcnk/OiBib29sZWFuO1xuICByZWFkb25seSBhc3N1bWVSb2xlQXJuPzogc3RyaW5nO1xufVxuXG4vKiogUmV0dXJucyB0aGUgcHJlc3VtZWQgbG9jYXRpb24gb2YgdGhlIENESyBEb2NrZXIgY3JlZGVudGlhbHMgY29uZmlnIGZpbGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBjZGtDcmVkZW50aWFsc0NvbmZpZ0ZpbGUoKTogc3RyaW5nIHtcbiAgcmV0dXJuIChcbiAgICBwcm9jZXNzLmVudi5DREtfRE9DS0VSX0NSRURTX0ZJTEUgPz9cbiAgICBwYXRoLmpvaW4oXG4gICAgICAob3MudXNlckluZm8oKS5ob21lZGlyID8/IG9zLmhvbWVkaXIoKSkudHJpbSgpIHx8ICcvJyxcbiAgICAgICcuY2RrJyxcbiAgICAgICdjZGstZG9ja2VyLWNyZWRzLmpzb24nLFxuICAgIClcbiAgKTtcbn1cblxubGV0IF9jZGtDcmVkZW50aWFsczogRG9ja2VyQ3JlZGVudGlhbHNDb25maWcgfCB1bmRlZmluZWQ7XG4vKiogTG9hZHMgYW5kIHBhcnNlcyB0aGUgQ0RLIERvY2tlciBjcmVkZW50aWFscyBjb25maWd1cmF0aW9uLCBpZiBpdCBleGlzdHMuICovXG5leHBvcnQgZnVuY3Rpb24gY2RrQ3JlZGVudGlhbHNDb25maWcoKTogRG9ja2VyQ3JlZGVudGlhbHNDb25maWcgfCB1bmRlZmluZWQge1xuICBpZiAoIV9jZGtDcmVkZW50aWFscykge1xuICAgIHRyeSB7XG4gICAgICBfY2RrQ3JlZGVudGlhbHMgPSBKU09OLnBhcnNlKFxuICAgICAgICBmcy5yZWFkRmlsZVN5bmMoY2RrQ3JlZGVudGlhbHNDb25maWdGaWxlKCksIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSksXG4gICAgICApIGFzIERvY2tlckNyZWRlbnRpYWxzQ29uZmlnO1xuICAgIH0gY2F0Y2gge1xuICAgIH1cbiAgfVxuICByZXR1cm4gX2Nka0NyZWRlbnRpYWxzO1xufVxuXG4vKipcbiAqIEp1c3QgZm9yIHRlc3RpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9jbGVhckNka0NyZWRlbnRpYWxzQ29uZmlnQ2FjaGUoKSB7XG4gIF9jZGtDcmVkZW50aWFscyA9IHVuZGVmaW5lZDtcbn1cblxuLyoqIEZldGNoZXMgbG9naW4gY3JlZGVudGlhbHMgZnJvbSB0aGUgY29uZmlndXJlZCBzb3VyY2UgKGUuZy4sIFNlY3JldHNNYW5hZ2VyLCBFQ1IpICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hEb2NrZXJMb2dpbkNyZWRlbnRpYWxzKFxuICBhd3M6IElBd3MsXG4gIGNvbmZpZzogRG9ja2VyQ3JlZGVudGlhbHNDb25maWcsXG4gIGVuZHBvaW50OiBzdHJpbmcsXG4pIHtcbiAgLy8gUGFyYW5vaWQgaGFuZGxpbmcgdG8gZW5zdXJlIG5ldyBVUkwoKSBkb2Vzbid0IHRocm93IGlmIHRoZSBzY2hlbWEgaXMgbWlzc2luZ1xuICAvLyBGb3Igb2ZmaWNpYWwgZG9ja2VyIHJlZ2lzdHJ5LCBkb2NrZXIgd2lsbCBwYXNzIGh0dHBzOi8vaW5kZXguZG9ja2VyLmlvL3YxL1xuICBlbmRwb2ludCA9IGVuZHBvaW50LmluY2x1ZGVzKCc6Ly8nKSA/IGVuZHBvaW50IDogYGh0dHBzOi8vJHtlbmRwb2ludH1gO1xuICBjb25zdCBkb21haW4gPSBuZXcgVVJMKGVuZHBvaW50KS5ob3N0bmFtZTtcblxuICBpZiAoXG4gICAgIU9iamVjdC5rZXlzKGNvbmZpZy5kb21haW5DcmVkZW50aWFscykuaW5jbHVkZXMoZG9tYWluKSAmJlxuICAgICFPYmplY3Qua2V5cyhjb25maWcuZG9tYWluQ3JlZGVudGlhbHMpLmluY2x1ZGVzKGVuZHBvaW50KVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVua25vd24gZG9tYWluICR7ZG9tYWlufWApO1xuICB9XG5cbiAgbGV0IGRvbWFpbkNvbmZpZyA9IGNvbmZpZy5kb21haW5DcmVkZW50aWFsc1tkb21haW5dID8/IGNvbmZpZy5kb21haW5DcmVkZW50aWFsc1tlbmRwb2ludF07XG5cbiAgaWYgKGRvbWFpbkNvbmZpZy5zZWNyZXRzTWFuYWdlclNlY3JldElkKSB7XG4gICAgY29uc3Qgc20gPSBhd2FpdCBhd3Muc2VjcmV0c01hbmFnZXJDbGllbnQoeyBhc3N1bWVSb2xlQXJuOiBkb21haW5Db25maWcuYXNzdW1lUm9sZUFybiB9KTtcbiAgICBjb25zdCBzZWNyZXRWYWx1ZSA9IGF3YWl0IHNtLmdldFNlY3JldFZhbHVlKHtcbiAgICAgIFNlY3JldElkOiBkb21haW5Db25maWcuc2VjcmV0c01hbmFnZXJTZWNyZXRJZCxcbiAgICB9KTtcbiAgICBpZiAoIXNlY3JldFZhbHVlLlNlY3JldFN0cmluZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgdW5hYmxlIHRvIGZldGNoIFNlY3JldFN0cmluZyBmcm9tIHNlY3JldDogJHtkb21haW5Db25maWcuc2VjcmV0c01hbmFnZXJTZWNyZXRJZH1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWNyZXQgPSBKU09OLnBhcnNlKHNlY3JldFZhbHVlLlNlY3JldFN0cmluZyk7XG5cbiAgICBjb25zdCB1c2VybmFtZUZpZWxkID0gZG9tYWluQ29uZmlnLnNlY3JldHNVc2VybmFtZUZpZWxkID8/ICd1c2VybmFtZSc7XG4gICAgY29uc3Qgc2VjcmV0RmllbGQgPSBkb21haW5Db25maWcuc2VjcmV0c1Bhc3N3b3JkRmllbGQgPz8gJ3NlY3JldCc7XG4gICAgaWYgKCFzZWNyZXRbdXNlcm5hbWVGaWVsZF0gfHwgIXNlY3JldFtzZWNyZXRGaWVsZF0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYG1hbGZvcm1lZCBzZWNyZXQgc3RyaW5nIChcIiR7dXNlcm5hbWVGaWVsZH1cIiBvciBcIiR7c2VjcmV0RmllbGR9XCIgZmllbGQgbWlzc2luZylgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBVc2VybmFtZTogc2VjcmV0W3VzZXJuYW1lRmllbGRdLCBTZWNyZXQ6IHNlY3JldFtzZWNyZXRGaWVsZF0gfTtcbiAgfSBlbHNlIGlmIChkb21haW5Db25maWcuZWNyUmVwb3NpdG9yeSkge1xuICAgIGNvbnN0IGVjciA9IGF3YWl0IGF3cy5lY3JDbGllbnQoeyBhc3N1bWVSb2xlQXJuOiBkb21haW5Db25maWcuYXNzdW1lUm9sZUFybiB9KTtcbiAgICBjb25zdCBlY3JBdXRoRGF0YSA9IGF3YWl0IG9idGFpbkVjckNyZWRlbnRpYWxzKGVjcik7XG5cbiAgICByZXR1cm4geyBVc2VybmFtZTogZWNyQXV0aERhdGEudXNlcm5hbWUsIFNlY3JldDogZWNyQXV0aERhdGEucGFzc3dvcmQgfTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24gY3JlZGVudGlhbCB0eXBlOiBubyBzZWNyZXQgSUQgb3IgRUNSIHJlcG8nKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gb2J0YWluRWNyQ3JlZGVudGlhbHMoZWNyOiBJRUNSQ2xpZW50LCBldmVudEVtaXR0ZXI/OiBFdmVudEVtaXR0ZXIpIHtcbiAgaWYgKGV2ZW50RW1pdHRlcikge1xuICAgIGV2ZW50RW1pdHRlcihFdmVudFR5cGUuREVCVUcsICdGZXRjaGluZyBFQ1IgYXV0aG9yaXphdGlvbiB0b2tlbicpO1xuICB9XG5cbiAgY29uc3QgYXV0aERhdGEgPSAoYXdhaXQgZWNyLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKS5hdXRob3JpemF0aW9uRGF0YSB8fCBbXTtcbiAgaWYgKGF1dGhEYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm8gYXV0aG9yaXphdGlvbiBkYXRhIHJlY2VpdmVkIGZyb20gRUNSJyk7XG4gIH1cbiAgY29uc3QgdG9rZW4gPSBCdWZmZXIuZnJvbShhdXRoRGF0YVswXS5hdXRob3JpemF0aW9uVG9rZW4hLCAnYmFzZTY0JykudG9TdHJpbmcoJ2FzY2lpJyk7XG4gIGNvbnN0IFt1c2VybmFtZSwgcGFzc3dvcmRdID0gdG9rZW4uc3BsaXQoJzonKTtcbiAgaWYgKCF1c2VybmFtZSB8fCAhcGFzc3dvcmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VuZXhwZWN0ZWQgRUNSIGF1dGhEYXRhIGZvcm1hdCcpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB1c2VybmFtZSxcbiAgICBwYXNzd29yZCxcbiAgICBlbmRwb2ludDogYXV0aERhdGFbMF0ucHJveHlFbmRwb2ludCEsXG4gIH07XG59XG4iXX0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyLWNyZWRlbnRpYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZG9ja2VyLWNyZWRlbnRpYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBMEJBLDREQVNDO0FBSUQsb0RBVUM7QUFLRCwwRUFFQztBQUdELGtFQWlEQztBQUVELG9EQW9CQztBQWxJRCx5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUc3QiwwQ0FBd0M7QUFvQnhDLDhFQUE4RTtBQUM5RSxTQUFnQix3QkFBd0I7SUFDdEMsT0FBTyxDQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQ1AsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsRUFDckQsTUFBTSxFQUNOLHVCQUF1QixDQUN4QixDQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsSUFBSSxlQUFvRCxDQUFDO0FBQ3pELCtFQUErRTtBQUMvRSxTQUFnQixvQkFBb0I7SUFDbEMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQztZQUNILGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUMxQixFQUFFLENBQUMsWUFBWSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FDeEMsQ0FBQztRQUMvQixDQUFDO1FBQUMsTUFBTSxDQUFDO1FBQ1QsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiwrQkFBK0I7SUFDN0MsZUFBZSxHQUFHLFNBQVMsQ0FBQztBQUM5QixDQUFDO0FBRUQsdUZBQXVGO0FBQ2hGLEtBQUssVUFBVSwyQkFBMkIsQ0FDL0MsR0FBUyxFQUNULE1BQStCLEVBQy9CLFFBQWdCO0lB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QkFBcUIsRUFBRSxDQUFDLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDO0lBQzdFLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFtQixFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RixNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsT0FBTztRQUNMLFFBQVE7UUFDUixRQUFRO1FBQ1IsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFjO0tBQ3JDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgSUF3cywgSUVDUkNsaWVudCB9IGZyb20gJy4uL2F3cyc7XG5pbXBvcnQgdHlwZSB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uL3Byb2dyZXNzJztcbmltcG9ydCB7IEV2ZW50VHlwZSB9IGZyb20gJy4uL3Byb2dyZXNzJztcblxuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJDcmVkZW50aWFscyB7XG4gIHJlYWRvbmx5IFVzZXJuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IFNlY3JldDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlckNyZWRlbnRpYWxzQ29uZmlnIHtcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBkb21haW5DcmVkZW50aWFsczogUmVjb3JkPHN0cmluZywgRG9ja2VyRG9tYWluQ3JlZGVudGlhbFNvdXJjZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyRG9tYWluQ3JlZGVudGlhbFNvdXJjZSB7XG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0SWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlY3JldHNVc2VybmFtZUZpZWxkPzogc3RyaW5nO1xuICByZWFkb25seSBzZWNyZXRzUGFzc3dvcmRGaWVsZD86IHN0cmluZztcbiAgcmVhZG9ubHkgZWNyUmVwb3NpdG9yeT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVBcm4/OiBzdHJpbmc7XG59XG5cbi8qKiBSZXR1cm5zIHRoZSBwcmVzdW1lZCBsb2NhdGlvbiBvZiB0aGUgQ0RLIERvY2tlciBjcmVkZW50aWFscyBjb25maWcgZmlsZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNka0NyZWRlbnRpYWxzQ29uZmlnRmlsZSgpOiBzdHJpbmcge1xuICByZXR1cm4gKFxuICAgIHByb2Nlc3MuZW52LkNES19ET0NLRVJfQ1JFRFNfRklMRSA/P1xuICAgIHBhdGguam9pbihcbiAgICAgIChvcy51c2VySW5mbygpLmhvbWVkaXIgPz8gb3MuaG9tZWRpcigpKS50cmltKCkgfHwgJy8nLFxuICAgICAgJy5jZGsnLFxuICAgICAgJ2Nkay1kb2NrZXItY3JlZHMuanNvbicsXG4gICAgKVxuICApO1xufVxuXG5sZXQgX2Nka0NyZWRlbnRpYWxzOiBEb2NrZXJDcmVkZW50aWFsc0NvbmZpZyB8IHVuZGVmaW5lZDtcbi8qKiBMb2FkcyBhbmQgcGFyc2VzIHRoZSBDREsgRG9ja2VyIGNyZWRlbnRpYWxzIGNvbmZpZ3VyYXRpb24sIGlmIGl0IGV4aXN0cy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjZGtDcmVkZW50aWFsc0NvbmZpZygpOiBEb2NrZXJDcmVkZW50aWFsc0NvbmZpZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghX2Nka0NyZWRlbnRpYWxzKSB7XG4gICAgdHJ5IHtcbiAgICAgIF9jZGtDcmVkZW50aWFscyA9IEpTT04ucGFyc2UoXG4gICAgICAgIGZzLnJlYWRGaWxlU3luYyhjZGtDcmVkZW50aWFsc0NvbmZpZ0ZpbGUoKSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KSxcbiAgICAgICkgYXMgRG9ja2VyQ3JlZGVudGlhbHNDb25maWc7XG4gICAgfSBjYXRjaCB7XG4gICAgfVxuICB9XG4gIHJldHVybiBfY2RrQ3JlZGVudGlhbHM7XG59XG5cbi8qKlxuICogSnVzdCBmb3IgdGVzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gX2NsZWFyQ2RrQ3JlZGVudGlhbHNDb25maWdDYWNoZSgpIHtcbiAgX2Nka0NyZWRlbnRpYWxzID0gdW5kZWZpbmVkO1xufVxuXG4vKiogRmV0Y2hlcyBsb2dpbiBjcmVkZW50aWFscyBmcm9tIHRoZSBjb25maWd1cmVkIHNvdXJjZSAoZS5nLiwgU2VjcmV0c01hbmFnZXIsIEVDUikgKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaERvY2tlckxvZ2luQ3JlZGVudGlhbHMoXG4gIGF3czogSUF3cyxcbiAgY29uZmlnOiBEb2NrZXJDcmVkZW50aWFsc0NvbmZpZyxcbiAgZW5kcG9pbnQ6IHN0cmluZyxcbikge1xuICAvLyBQYXJhbm9pZCBoYW5kbGluZyB0byBlbnN1cmUgbmV3IFVSTCgpIGRvZXNuJ3QgdGhyb3cgaWYgdGhlIHNjaGVtYSBpcyBtaXNzaW5nXG4gIC8vIEZvciBvZmZpY2lhbCBkb2NrZXIgcmVnaXN0cnksIGRvY2tlciB3aWxsIHBhc3MgaHR0cHM6Ly9pbmRleC5kb2NrZXIuaW8vdjEvXG4gIGVuZHBvaW50ID0gZW5kcG9pbnQuaW5jbHVkZXMoJzovLycpID8gZW5kcG9pbnQgOiBgaHR0cHM6Ly8ke2VuZHBvaW50fWA7XG4gIGNvbnN0IGRvbWFpbiA9IG5ldyBVUkwoZW5kcG9pbnQpLmhvc3RuYW1lO1xuXG4gIGlmIChcbiAgICAhT2JqZWN0LmtleXMoY29uZmlnLmRvbWFpbkNyZWRlbnRpYWxzKS5pbmNsdWRlcyhkb21haW4pICYmXG4gICAgIU9iamVjdC5rZXlzKGNvbmZpZy5kb21haW5DcmVkZW50aWFscykuaW5jbHVkZXMoZW5kcG9pbnQpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5rbm93biBkb21haW4gJHtkb21haW59YCk7XG4gIH1cblxuICBsZXQgZG9tYWluQ29uZmlnID0gY29uZmlnLmRvbWFpbkNyZWRlbnRpYWxzW2RvbWFpbl0gPz8gY29uZmlnLmRvbWFpbkNyZWRlbnRpYWxzW2VuZHBvaW50XTtcblxuICBpZiAoZG9tYWluQ29uZmlnLnNlY3JldHNNYW5hZ2VyU2VjcmV0SWQpIHtcbiAgICBjb25zdCBzbSA9IGF3YWl0IGF3cy5zZWNyZXRzTWFuYWdlckNsaWVudCh7IGFzc3VtZVJvbGVBcm46IGRvbWFpbkNvbmZpZy5hc3N1bWVSb2xlQXJuIH0pO1xuICAgIGNvbnN0IHNlY3JldFZhbHVlID0gYXdhaXQgc20uZ2V0U2VjcmV0VmFsdWUoe1xuICAgICAgU2VjcmV0SWQ6IGRvbWFpbkNvbmZpZy5zZWNyZXRzTWFuYWdlclNlY3JldElkLFxuICAgIH0pO1xuICAgIGlmICghc2VjcmV0VmFsdWUuU2VjcmV0U3RyaW5nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGB1bmFibGUgdG8gZmV0Y2ggU2VjcmV0U3RyaW5nIGZyb20gc2VjcmV0OiAke2RvbWFpbkNvbmZpZy5zZWNyZXRzTWFuYWdlclNlY3JldElkfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNlY3JldCA9IEpTT04ucGFyc2Uoc2VjcmV0VmFsdWUuU2VjcmV0U3RyaW5nKTtcblxuICAgIGNvbnN0IHVzZXJuYW1lRmllbGQgPSBkb21haW5Db25maWcuc2VjcmV0c1VzZXJuYW1lRmllbGQgPz8gJ3VzZXJuYW1lJztcbiAgICBjb25zdCBzZWNyZXRGaWVsZCA9IGRvbWFpbkNvbmZpZy5zZWNyZXRzUGFzc3dvcmRGaWVsZCA/PyAnc2VjcmV0JztcbiAgICBpZiAoIXNlY3JldFt1c2VybmFtZUZpZWxkXSB8fCAhc2VjcmV0W3NlY3JldEZpZWxkXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgbWFsZm9ybWVkIHNlY3JldCBzdHJpbmcgKFwiJHt1c2VybmFtZUZpZWxkfVwiIG9yIFwiJHtzZWNyZXRGaWVsZH1cIiBmaWVsZCBtaXNzaW5nKWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7IFVzZXJuYW1lOiBzZWNyZXRbdXNlcm5hbWVGaWVsZF0sIFNlY3JldDogc2VjcmV0W3NlY3JldEZpZWxkXSB9O1xuICB9IGVsc2UgaWYgKGRvbWFpbkNvbmZpZy5lY3JSZXBvc2l0b3J5KSB7XG4gICAgY29uc3QgZWNyID0gYXdhaXQgYXdzLmVjckNsaWVudCh7IGFzc3VtZVJvbGVBcm46IGRvbWFpbkNvbmZpZy5hc3N1bWVSb2xlQXJuIH0pO1xuICAgIGNvbnN0IGVjckF1dGhEYXRhID0gYXdhaXQgb2J0YWluRWNyQ3JlZGVudGlhbHMoZWNyKTtcblxuICAgIHJldHVybiB7IFVzZXJuYW1lOiBlY3JBdXRoRGF0YS51c2VybmFtZSwgU2VjcmV0OiBlY3JBdXRoRGF0YS5wYXNzd29yZCB9O1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcigndW5rbm93biBjcmVkZW50aWFsIHR5cGU6IG5vIHNlY3JldCBJRCBvciBFQ1IgcmVwbycpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvYnRhaW5FY3JDcmVkZW50aWFscyhlY3I6IElFQ1JDbGllbnQsIGV2ZW50RW1pdHRlcj86IEV2ZW50RW1pdHRlcikge1xuICBpZiAoZXZlbnRFbWl0dGVyKSB7XG4gICAgZXZlbnRFbWl0dGVyKEV2ZW50VHlwZS5ERUJVRywgJ0ZldGNoaW5nIEVDUiBhdXRob3JpemF0aW9uIHRva2VuJyk7XG4gIH1cblxuICBjb25zdCBhdXRoRGF0YSA9IChhd2FpdCBlY3IuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpLmF1dGhvcml6YXRpb25EYXRhIHx8IFtdO1xuICBpZiAoYXV0aERhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyBhdXRob3JpemF0aW9uIGRhdGEgcmVjZWl2ZWQgZnJvbSBFQ1InKTtcbiAgfVxuICBjb25zdCB0b2tlbiA9IEJ1ZmZlci5mcm9tKGF1dGhEYXRhWzBdLmF1dGhvcml6YXRpb25Ub2tlbiEsICdiYXNlNjQnKS50b1N0cmluZygnYXNjaWknKTtcbiAgY29uc3QgW3VzZXJuYW1lLCBwYXNzd29yZF0gPSB0b2tlbi5zcGxpdCgnOicpO1xuICBpZiAoIXVzZXJuYW1lIHx8ICFwYXNzd29yZCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBFQ1IgYXV0aERhdGEgZm9ybWF0Jyk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHVzZXJuYW1lLFxuICAgIHBhc3N3b3JkLFxuICAgIGVuZHBvaW50OiBhdXRoRGF0YVswXS5wcm94eUVuZHBvaW50ISxcbiAgfTtcbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
- import { IECRClient } from '../aws';
2
- import { SubprocessOutputDestination } from './asset-handler';
3
- import { EventEmitter } from '../progress';
1
+ import type { IECRClient } from '../aws';
2
+ import type { SubprocessOutputDestination } from './asset-handler';
3
+ import type { EventEmitter } from '../progress';
4
4
  interface BuildOptions {
5
5
  readonly directory: string;
6
6
  /**
@@ -232,4 +232,4 @@ function getDockerCmd() {
232
232
  function flatten(x) {
233
233
  return Array.prototype.concat([], ...x);
234
234
  }
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZG9ja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZEQUFrRjtBQUNsRixtQ0FBa0U7QUFDbEUsaUNBQStDO0FBRy9DLDBDQUFnRjtBQW9DaEYsSUFBSyxxQkFHSjtBQUhELFdBQUsscUJBQXFCO0lBQ3hCLHFFQUFVLENBQUE7SUFDVix1RUFBWSxDQUFBO0FBQ2QsQ0FBQyxFQUhJLHFCQUFxQixLQUFyQixxQkFBcUIsUUFHekI7QUFPRCxNQUFhLE1BQU07SUFHakIsWUFDbUIsWUFBMEIsRUFDMUIsMkJBQXdEO1FBRHhELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUFKbkUsY0FBUyxHQUF1QixTQUFTLENBQUM7SUFNbEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFXO1FBQzdCLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDbkMsMkJBQTJCLEVBQUUsUUFBUTthQUN0QyxDQUFDLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sS0FBSyxHQUF1QixDQUFDLENBQUM7WUFFcEM7OztlQUdHO1lBQ0gsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUVEOzs7O2VBSUc7WUFDSCxRQUFRLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdkIsS0FBSyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7Z0JBQ2xDLEtBQUsscUJBQXFCLENBQUMsTUFBTTtvQkFDL0IseUZBQXlG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QUFDO1FBRXZELHVEQUF1RDtRQUN2RCxNQUFNLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM3RCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO2dCQUNwRCxPQUFPO1lBQ1QsQ0FBQztZQUVELE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBL0NELHNDQStDQztBQUVELFNBQVMsWUFBWTtJQUNuQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQztBQUM1QyxDQUFDO0FBRUQsU0FBUyxPQUFPLENBQUMsQ0FBYTtJQUM1QixPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgY2RrQ3JlZGVudGlhbHNDb25maWcsIG9idGFpbkVjckNyZWRlbnRpYWxzIH0gZnJvbSAnLi9kb2NrZXItY3JlZGVudGlhbHMnO1xuaW1wb3J0IHsgc2hlbGwsIFNoZWxsT3B0aW9ucywgUHJvY2Vzc0ZhaWxlZEVycm9yIH0gZnJvbSAnLi9zaGVsbCc7XG5pbXBvcnQgeyBjcmVhdGVDcml0aWNhbFNlY3Rpb24gfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgSUVDUkNsaWVudCB9IGZyb20gJy4uL2F3cyc7XG5pbXBvcnQgeyBTdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24gfSBmcm9tICcuL2Fzc2V0LWhhbmRsZXInO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBzaGVsbEV2ZW50UHVibGlzaGVyRnJvbUV2ZW50RW1pdHRlciB9IGZyb20gJy4uL3Byb2dyZXNzJztcblxuaW50ZXJmYWNlIEJ1aWxkT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGRpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYWcgdGhlIGltYWdlIHdpdGggYSBnaXZlbiByZXBvTmFtZTp0YWcgY29tYmluYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHRhZzogc3RyaW5nO1xuICByZWFkb25seSB0YXJnZXQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZpbGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJ1aWxkQXJncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHJlYWRvbmx5IGJ1aWxkU2VjcmV0cz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHJlYWRvbmx5IGJ1aWxkU3NoPzogc3RyaW5nO1xuICByZWFkb25seSBuZXR3b3JrTW9kZT86IHN0cmluZztcbiAgcmVhZG9ubHkgcGxhdGZvcm0/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG91dHB1dHM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgY2FjaGVGcm9tPzogRG9ja2VyQ2FjaGVPcHRpb25bXTtcbiAgcmVhZG9ubHkgY2FjaGVUbz86IERvY2tlckNhY2hlT3B0aW9uO1xuICByZWFkb25seSBjYWNoZURpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIFB1c2hPcHRpb25zIHtcbiAgcmVhZG9ubHkgdGFnOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyQ3JlZGVudGlhbHNDb25maWcge1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRvbWFpbkNyZWRlbnRpYWxzOiBSZWNvcmQ8c3RyaW5nLCBEb2NrZXJEb21haW5DcmVkZW50aWFscz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyRG9tYWluQ3JlZGVudGlhbHMge1xuICByZWFkb25seSBzZWNyZXRzTWFuYWdlclNlY3JldElkPzogc3RyaW5nO1xuICByZWFkb25seSBlY3JSZXBvc2l0b3J5Pzogc3RyaW5nO1xufVxuXG5lbnVtIEluc3BlY3RJbWFnZUVycm9yQ29kZSB7XG4gIERvY2tlciA9IDEsXG4gIFBvZG1hbiA9IDEyNSxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJDYWNoZU9wdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgcGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGNsYXNzIERvY2tlciB7XG4gIHByaXZhdGUgY29uZmlnRGlyOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudEVtaXR0ZXI6IEV2ZW50RW1pdHRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbjogU3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uLFxuICApIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGFuIGltYWdlIHdpdGggdGhlIGdpdmVuIHRhZyBleGlzdHNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBleGlzdHModGFnOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5leGVjdXRlKFsnaW5zcGVjdCcsIHRhZ10sIHtcbiAgICAgICAgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uOiAnaWdub3JlJyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBjb25zdCBlcnJvcjogUHJvY2Vzc0ZhaWxlZEVycm9yID0gZTtcblxuICAgICAgLyoqXG4gICAgICAgKiBUaGUgb25seSBlcnJvciB3ZSBleHBlY3QgdG8gYmUgdGhyb3duIHdpbGwgaGF2ZSB0aGlzIHByb3BlcnR5IGFuZCB2YWx1ZS5cbiAgICAgICAqIElmIGl0IGRvZXNuJ3QsIGl0J3MgdW5yZWNvZ25pemVkIHNvIHJlLXRocm93IGl0LlxuICAgICAgICovXG4gICAgICBpZiAoZXJyb3IuY29kZSAhPT0gJ1BST0NFU1NfRkFJTEVEJykge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBJZiB3ZSBrbm93IHRoZSBzaGVsbCBjb21tYW5kIGFib3ZlIHJldHVybmVkIGFuIGVycm9yLCBjaGVjayB0byBzZWVcbiAgICAgICAqIGlmIHRoZSBleGl0IGNvZGUgaXMgb25lIHdlIGtub3cgdG8gYWN0dWFsbHkgbWVhbiB0aGF0IHRoZSBpbWFnZSBkb2Vzbid0XG4gICAgICAgKiBleGlzdC5cbiAgICAgICAqL1xuICAgICAgc3dpdGNoIChlcnJvci5leGl0Q29kZSkge1xuICAgICAgICBjYXNlIEluc3BlY3RJbWFnZUVycm9yQ29kZS5Eb2NrZXI6XG4gICAgICAgIGNhc2UgSW5zcGVjdEltYWdlRXJyb3JDb2RlLlBvZG1hbjpcbiAgICAgICAgICAvLyBEb2NrZXIgYW5kIFBvZG1hbiB3aWxsIHJldHVybiB0aGlzIGV4aXQgY29kZSB3aGVuIGFuIGltYWdlIGRvZXNuJ3QgZXhpc3QsIHJldHVybiBmYWxzZVxuICAgICAgICAgIC8vIGNvbnRleHQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTYyMDlcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgLy8gVGhpcyBpcyBhbiBlcnJvciBidXQgaXQncyBub3QgYW4gZXhpdCBjb2RlIHdlIHJlY29nbml6ZSwgdGhyb3cuXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGJ1aWxkKG9wdGlvbnM6IEJ1aWxkT3B0aW9ucykge1xuICAgIGNvbnN0IGJ1aWxkQ29tbWFuZCA9IFtcbiAgICAgICdidWlsZCcsXG4gICAgICAuLi5mbGF0dGVuKFxuICAgICAgICBPYmplY3QuZW50cmllcyhvcHRpb25zLmJ1aWxkQXJncyB8fCB7fSkubWFwKChbaywgdl0pID0+IFsnLS1idWlsZC1hcmcnLCBgJHtrfT0ke3Z9YF0pLFxuICAgICAgKSxcbiAgICAgIC4uLmZsYXR0ZW4oXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKG9wdGlvbnMuYnVpbGRTZWNyZXRzIHx8IHt9KS5tYXAoKFtrLCB2XSkgPT4gWyctLXNlY3JldCcsIGBpZD0ke2t9LCR7dn1gXSksXG4gICAgICApLFxuICAgICAgLi4uKG9wdGlvbnMuYnVpbGRTc2ggPyBbJy0tc3NoJywgb3B0aW9ucy5idWlsZFNzaF0gOiBbXSksXG4gICAgICAnLS10YWcnLFxuICAgICAgb3B0aW9ucy50YWcsXG4gICAgICAuLi4ob3B0aW9ucy50YXJnZXQgPyBbJy0tdGFyZ2V0Jywgb3B0aW9ucy50YXJnZXRdIDogW10pLFxuICAgICAgLi4uKG9wdGlvbnMuZmlsZSA/IFsnLS1maWxlJywgb3B0aW9ucy5maWxlXSA6IFtdKSxcbiAgICAgIC4uLihvcHRpb25zLm5ldHdvcmtNb2RlID8gWyctLW5ldHdvcmsnLCBvcHRpb25zLm5ldHdvcmtNb2RlXSA6IFtdKSxcbiAgICAgIC4uLihvcHRpb25zLnBsYXRmb3JtID8gWyctLXBsYXRmb3JtJywgb3B0aW9ucy5wbGF0Zm9ybV0gOiBbXSksXG4gICAgICAuLi4ob3B0aW9ucy5vdXRwdXRzID8gb3B0aW9ucy5vdXRwdXRzLm1hcCgob3V0cHV0KSA9PiBbYC0tb3V0cHV0PSR7b3V0cHV0fWBdKSA6IFtdKSxcbiAgICAgIC4uLihvcHRpb25zLmNhY2hlRnJvbVxuICAgICAgICA/IFtcbiAgICAgICAgICAuLi5vcHRpb25zLmNhY2hlRnJvbVxuICAgICAgICAgICAgLm1hcCgoY2FjaGVGcm9tKSA9PiBbJy0tY2FjaGUtZnJvbScsIHRoaXMuY2FjaGVPcHRpb25Ub0ZsYWcoY2FjaGVGcm9tKV0pXG4gICAgICAgICAgICAuZmxhdCgpLFxuICAgICAgICBdXG4gICAgICAgIDogW10pLFxuICAgICAgLi4uKG9wdGlvbnMuY2FjaGVUbyA/IFsnLS1jYWNoZS10bycsIHRoaXMuY2FjaGVPcHRpb25Ub0ZsYWcob3B0aW9ucy5jYWNoZVRvKV0gOiBbXSksXG4gICAgICAuLi4ob3B0aW9ucy5jYWNoZURpc2FibGVkID8gWyctLW5vLWNhY2hlJ10gOiBbXSksXG4gICAgICAnLicsXG4gICAgXTtcbiAgICBhd2FpdCB0aGlzLmV4ZWN1dGUoYnVpbGRDb21tYW5kLCB7XG4gICAgICBjd2Q6IG9wdGlvbnMuZGlyZWN0b3J5LFxuICAgICAgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uOiB0aGlzLnN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbixcbiAgICAgIGVudjoge1xuICAgICAgICBCVUlMRFhfTk9fREVGQVVMVF9BVFRFU1RBVElPTlM6ICcxJywgLy8gRG9ja2VyIEJ1aWxkIGFkZHMgcHJvdmVuYW5jZSBhdHRlc3RhdGlvbnMgYnkgZGVmYXVsdCB0aGF0IGNvbmZ1c2UgY2RrLWFzc2V0c1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY3JlZGVudGlhbHMgZnJvbSBFQ1IgYW5kIHJ1biBkb2NrZXIgbG9naW5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2dpbihlY3I6IElFQ1JDbGllbnQpIHtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0IG9idGFpbkVjckNyZWRlbnRpYWxzKGVjciwgdGhpcy5ldmVudEVtaXR0ZXIpO1xuXG4gICAgLy8gVXNlIC0tcGFzc3dvcmQtc3RkaW4gb3RoZXJ3aXNlIGRvY2tlciB3aWxsIGNvbXBsYWluLiBMb3VkbHkuXG4gICAgYXdhaXQgdGhpcy5leGVjdXRlKFxuICAgICAgWydsb2dpbicsICctLXVzZXJuYW1lJywgY3JlZGVudGlhbHMudXNlcm5hbWUsICctLXBhc3N3b3JkLXN0ZGluJywgY3JlZGVudGlhbHMuZW5kcG9pbnQucmVwbGFjZSgvXmh0dHBzPzpcXC9cXC98XFwvJC9nLCAnJyldLFxuICAgICAge1xuICAgICAgICBpbnB1dDogY3JlZGVudGlhbHMucGFzc3dvcmQsXG5cbiAgICAgICAgLy8gTmVlZCB0byBpZ25vcmUgb3RoZXJ3aXNlIERvY2tlciB3aWxsIGNvbXBsYWluXG4gICAgICAgIC8vICdXQVJOSU5HISBZb3VyIHBhc3N3b3JkIHdpbGwgYmUgc3RvcmVkIHVuZW5jcnlwdGVkJ1xuICAgICAgICAvLyBkb2Vzbid0IHJlYWxseSBtYXR0ZXIgc2luY2UgaXQncyBhIHRva2VuLlxuICAgICAgICBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb246ICdpZ25vcmUnLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHRhZyhzb3VyY2VUYWc6IHN0cmluZywgdGFyZ2V0VGFnOiBzdHJpbmcpIHtcbiAgICBhd2FpdCB0aGlzLmV4ZWN1dGUoWyd0YWcnLCBzb3VyY2VUYWcsIHRhcmdldFRhZ10pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHB1c2gob3B0aW9uczogUHVzaE9wdGlvbnMpIHtcbiAgICBhd2FpdCB0aGlzLmV4ZWN1dGUoWydwdXNoJywgb3B0aW9ucy50YWddLCB7XG4gICAgICBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb246IHRoaXMuc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIGEgQ0RLIERvY2tlciBDcmVkZW50aWFscyBmaWxlIGV4aXN0cywgY3JlYXRlcyBhIG5ldyBEb2NrZXIgY29uZmlnIGRpcmVjdG9yeS5cbiAgICogU2V0cyB1cCBgZG9ja2VyLWNyZWRlbnRpYWwtY2RrLWFzc2V0c2AgdG8gYmUgdGhlIGNyZWRlbnRpYWwgaGVscGVyIGZvciBlYWNoIGRvbWFpbiBpbiB0aGUgQ0RLIGNvbmZpZy5cbiAgICogQWxsIGZ1dHVyZSBjb21tYW5kcyAoZS5nLiwgYGJ1aWxkYCwgYHB1c2hgKSB3aWxsIHVzZSB0aGlzIGNvbmZpZy5cbiAgICpcbiAgICogU2VlIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvbG9naW4vI2NyZWRlbnRpYWwtaGVscGVycyBmb3IgbW9yZSBkZXRhaWxzIG9uIGNyZWQgaGVscGVycy5cbiAgICpcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBDREsgY29uZmlnIHdhcyBmb3VuZCBhbmQgY29uZmlndXJlZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBwdWJsaWMgY29uZmlndXJlQ2RrQ3JlZGVudGlhbHMoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY29uZmlnID0gY2RrQ3JlZGVudGlhbHNDb25maWcoKTtcbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlnRGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCAnY2RrRG9ja2VyQ29uZmlnJykpO1xuXG4gICAgY29uc3QgZG9tYWlucyA9IE9iamVjdC5rZXlzKGNvbmZpZy5kb21haW5DcmVkZW50aWFscyk7XG4gICAgY29uc3QgY3JlZEhlbHBlcnMgPSBkb21haW5zLnJlZHVjZSgobWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBkb21haW4pID0+IHtcbiAgICAgIG1hcFtkb21haW5dID0gJ2Nkay1hc3NldHMnOyAvLyBVc2UgZG9ja2VyLWNyZWRlbnRpYWwtY2RrLWFzc2V0cyBmb3IgdGhpcyBkb21haW5cbiAgICAgIHJldHVybiBtYXA7XG4gICAgfSwge30pO1xuICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKHRoaXMuY29uZmlnRGlyLCAnY29uZmlnLmpzb24nKSwgSlNPTi5zdHJpbmdpZnkoeyBjcmVkSGVscGVycyB9KSwge1xuICAgICAgZW5jb2Rpbmc6ICd1dGYtOCcsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGFueSBjb25maWd1cmVkIERvY2tlciBjb25maWcgZGlyZWN0b3J5LlxuICAgKiBBbGwgZnV0dXJlIGNvbW1hbmRzIChlLmcuLCBgYnVpbGRgLCBgcHVzaGApIHdpbGwgdXNlIHRoZSBkZWZhdWx0IGNvbmZpZy5cbiAgICpcbiAgICogVGhpcyBpcyB1c2VmdWwgYWZ0ZXIgY2FsbGluZyBgY29uZmlndXJlQ2RrQ3JlZGVudGlhbHNgIHRvIHJlc2V0IHRvIGRlZmF1bHQgY3JlZGVudGlhbHMuXG4gICAqL1xuICBwdWJsaWMgcmVzZXRBdXRoUGx1Z2lucygpIHtcbiAgICB0aGlzLmNvbmZpZ0RpciA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXhlY3V0ZShhcmdzOiBzdHJpbmdbXSwgb3B0aW9uczogT21pdDxTaGVsbE9wdGlvbnMsICdzaGVsbEV2ZW50UHVibGlzaGVyJz4gPSB7fSkge1xuICAgIGNvbnN0IGNvbmZpZ0FyZ3MgPSB0aGlzLmNvbmZpZ0RpciA/IFsnLS1jb25maWcnLCB0aGlzLmNvbmZpZ0Rpcl0gOiBbXTtcblxuICAgIGNvbnN0IHBhdGhUb0Nka0Fzc2V0cyA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicsICcuLicsICdiaW4nKTtcblxuICAgIGNvbnN0IHNoZWxsRXZlbnRQdWJsaXNoZXIgPSBzaGVsbEV2ZW50UHVibGlzaGVyRnJvbUV2ZW50RW1pdHRlcih0aGlzLmV2ZW50RW1pdHRlcik7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHNoZWxsKFtnZXREb2NrZXJDbWQoKSwgLi4uY29uZmlnQXJncywgLi4uYXJnc10sIHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgc2hlbGxFdmVudFB1Ymxpc2hlcjogc2hlbGxFdmVudFB1Ymxpc2hlcixcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgLi4ucHJvY2Vzcy5lbnYsXG4gICAgICAgICAgLi4ub3B0aW9ucy5lbnYsXG4gICAgICAgICAgUEFUSDogYCR7cGF0aFRvQ2RrQXNzZXRzfSR7cGF0aC5kZWxpbWl0ZXJ9JHtvcHRpb25zLmVudj8uUEFUSCA/PyBwcm9jZXNzLmVudi5QQVRIfWAsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChlLmNvZGUgPT09ICdFTk9FTlQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBcIlVuYWJsZSB0byBleGVjdXRlICdkb2NrZXInIGluIG9yZGVyIHRvIGJ1aWxkIGEgY29udGFpbmVyIGFzc2V0LiBQbGVhc2UgaW5zdGFsbCAnZG9ja2VyJyBhbmQgdHJ5IGFnYWluLlwiLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNhY2hlT3B0aW9uVG9GbGFnKG9wdGlvbjogRG9ja2VyQ2FjaGVPcHRpb24pOiBzdHJpbmcge1xuICAgIGxldCBmbGFnID0gYHR5cGU9JHtvcHRpb24udHlwZX1gO1xuICAgIGlmIChvcHRpb24ucGFyYW1zKSB7XG4gICAgICBmbGFnICs9XG4gICAgICAgICcsJyArXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKG9wdGlvbi5wYXJhbXMpXG4gICAgICAgICAgLm1hcCgoW2ssIHZdKSA9PiBgJHtrfT0ke3Z9YClcbiAgICAgICAgICAuam9pbignLCcpO1xuICAgIH1cbiAgICByZXR1cm4gZmxhZztcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlckZhY3RvcnlPcHRpb25zIHtcbiAgcmVhZG9ubHkgcmVwb1VyaTogc3RyaW5nO1xuICByZWFkb25seSBlY3I6IElFQ1JDbGllbnQ7XG4gIHJlYWRvbmx5IGV2ZW50RW1pdHRlcjogRXZlbnRFbWl0dGVyO1xuICByZWFkb25seSBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb246IFN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbjtcbn1cblxuLyoqXG4gKiBIZWxwcyBnZXQgYXBwcm9wcmlhdGVseSBjb25maWd1cmVkIERvY2tlciBpbnN0YW5jZXMgZHVyaW5nIHRoZSBjb250YWluZXJcbiAqIGltYWdlIHB1Ymxpc2hpbmcgcHJvY2Vzcy5cbiAqL1xuZXhwb3J0IGNsYXNzIERvY2tlckZhY3Rvcnkge1xuICBwcml2YXRlIGVudGVyTG9nZ2VkSW5EZXN0aW5hdGlvbnNDcml0aWNhbFNlY3Rpb24gPSBjcmVhdGVDcml0aWNhbFNlY3Rpb24oKTtcbiAgcHJpdmF0ZSBsb2dnZWRJbkRlc3RpbmF0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgRG9ja2VyIGluc3RhbmNlIGZvciBidWlsZGluZyBpbWFnZXMuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZm9yQnVpbGQob3B0aW9uczogRG9ja2VyRmFjdG9yeU9wdGlvbnMpOiBQcm9taXNlPERvY2tlcj4ge1xuICAgIGNvbnN0IGRvY2tlciA9IG5ldyBEb2NrZXIob3B0aW9ucy5ldmVudEVtaXR0ZXIsIG9wdGlvbnMuc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uKTtcblxuICAgIC8vIERlZmF1bHQgYmVoYXZpb3IgaXMgdG8gbG9naW4gYmVmb3JlIGJ1aWxkIHNvIHRoYXQgdGhlIERvY2tlcmZpbGUgY2FuIHJlZmVyZW5jZSBpbWFnZXMgaW4gdGhlIEVDUiByZXBvXG4gICAgLy8gSG93ZXZlciwgaWYgd2UncmUgaW4gYSBwaXBlbGluZXMgZW52aXJvbm1lbnQgKGZvciBleGFtcGxlKSxcbiAgICAvLyB3ZSBtYXkgaGF2ZSBhbHRlcm5hdGl2ZSBjcmVkZW50aWFscyB0byB0aGUgZGVmYXVsdCBvbmVzIHRvIHVzZSBmb3IgdGhlIGJ1aWxkIGl0c2VsZi5cbiAgICAvLyBJZiB0aGUgc3BlY2lhbCBjb25maWcgZmlsZSBpcyBwcmVzZW50LCBkZWxheSB0aGUgbG9naW4gdG8gdGhlIGRlZmF1bHQgY3JlZGVudGlhbHMgdW50aWwgdGhlIHB1c2guXG4gICAgLy8gSWYgdGhlIGNvbmZpZyBmaWxlIGlzIHByZXNlbnQsIHdlIHdpbGwgY29uZmlndXJlIGFuZCB1c2UgdGhvc2UgY3JlZGVudGlhbHMgZm9yIHRoZSBidWlsZC5cbiAgICBsZXQgY2RrRG9ja2VyQ3JlZGVudGlhbHNDb25maWd1cmVkID0gZG9ja2VyLmNvbmZpZ3VyZUNka0NyZWRlbnRpYWxzKCk7XG4gICAgaWYgKCFjZGtEb2NrZXJDcmVkZW50aWFsc0NvbmZpZ3VyZWQpIHtcbiAgICAgIGF3YWl0IHRoaXMubG9naW5PbmNlUGVyRGVzdGluYXRpb24oZG9ja2VyLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZG9ja2VyO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSBEb2NrZXIgaW5zdGFuY2UgZm9yIHB1c2hpbmcgaW1hZ2VzIHRvIEVDUi5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBmb3JFY3JQdXNoKG9wdGlvbnM6IERvY2tlckZhY3RvcnlPcHRpb25zKSB7XG4gICAgY29uc3QgZG9ja2VyID0gbmV3IERvY2tlcihvcHRpb25zLmV2ZW50RW1pdHRlciwgb3B0aW9ucy5zdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24pO1xuICAgIGF3YWl0IHRoaXMubG9naW5PbmNlUGVyRGVzdGluYXRpb24oZG9ja2VyLCBvcHRpb25zKTtcbiAgICByZXR1cm4gZG9ja2VyO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2dpbk9uY2VQZXJEZXN0aW5hdGlvbihkb2NrZXI6IERvY2tlciwgb3B0aW9uczogRG9ja2VyRmFjdG9yeU9wdGlvbnMpIHtcbiAgICAvLyBDaGFuZ2VzOiAwMTIzNDU2Nzg5MTAuZGtyLmVjci51cy13ZXN0LTIuYW1hem9uYXdzLmNvbS90YWdnaW5nLXRlc3RcbiAgICAvLyBUbyB0aGlzOiAwMTIzNDU2Nzg5MTAuZGtyLmVjci51cy13ZXN0LTIuYW1hem9uYXdzLmNvbVxuICAgIGNvbnN0IHJlcG9zaXRvcnlEb21haW4gPSBvcHRpb25zLnJlcG9Vcmkuc3BsaXQoJy8nKVswXTtcblxuICAgIC8vIEVuc3VyZSBvbmUtYXQtYS10aW1lIGFjY2VzcyB0byBsb2dnZWRJbkRlc3RpbmF0aW9ucy5cbiAgICBhd2FpdCB0aGlzLmVudGVyTG9nZ2VkSW5EZXN0aW5hdGlvbnNDcml0aWNhbFNlY3Rpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubG9nZ2VkSW5EZXN0aW5hdGlvbnMuaGFzKHJlcG9zaXRvcnlEb21haW4pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgZG9ja2VyLmxvZ2luKG9wdGlvbnMuZWNyKTtcbiAgICAgIHRoaXMubG9nZ2VkSW5EZXN0aW5hdGlvbnMuYWRkKHJlcG9zaXRvcnlEb21haW4pO1xuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldERvY2tlckNtZCgpOiBzdHJpbmcge1xuICByZXR1cm4gcHJvY2Vzcy5lbnYuQ0RLX0RPQ0tFUiA/PyAnZG9ja2VyJztcbn1cblxuZnVuY3Rpb24gZmxhdHRlbih4OiBzdHJpbmdbXVtdKSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0KFtdLCAuLi54KTtcbn1cbiJdfQ==
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZG9ja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZEQUFrRjtBQUVsRixtQ0FBZ0M7QUFDaEMsaUNBQStDO0FBSS9DLDBDQUFrRTtBQW9DbEUsSUFBSyxxQkFHSjtBQUhELFdBQUsscUJBQXFCO0lBQ3hCLHFFQUFVLENBQUE7SUFDVix1RUFBWSxDQUFBO0FBQ2QsQ0FBQyxFQUhJLHFCQUFxQixLQUFyQixxQkFBcUIsUUFHekI7QUFPRCxNQUFhLE1BQU07SUFHakIsWUFDbUIsWUFBMEIsRUFDMUIsMkJBQXdEO1FBRHhELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUFKbkUsY0FBUyxHQUF1QixTQUFTLENBQUM7SUFNbEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFXO1FBQzdCLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDbkMsMkJBQTJCLEVBQUUsUUFBUTthQUN0QyxDQUFDLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sS0FBSyxHQUF1QixDQUFDLENBQUM7WUFFcEM7OztlQUdHO1lBQ0gsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUVEOzs7O2VBSUc7WUFDSCxRQUFRLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdkIsS0FBSyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7Z0JBQ2xDLEtBQUsscUJBQXFCLENBQUMsTUFBTTtvQkFDL0IseUZBQXlG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QUFDO1FBRXZELHVEQUF1RDtRQUN2RCxNQUFNLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM3RCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO2dCQUNwRCxPQUFPO1lBQ1QsQ0FBQztZQUVELE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBL0NELHNDQStDQztBQUVELFNBQVMsWUFBWTtJQUNuQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQztBQUM1QyxDQUFDO0FBRUQsU0FBUyxPQUFPLENBQUMsQ0FBYTtJQUM1QixPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgY2RrQ3JlZGVudGlhbHNDb25maWcsIG9idGFpbkVjckNyZWRlbnRpYWxzIH0gZnJvbSAnLi9kb2NrZXItY3JlZGVudGlhbHMnO1xuaW1wb3J0IHR5cGUgeyBTaGVsbE9wdGlvbnMsIFByb2Nlc3NGYWlsZWRFcnJvciB9IGZyb20gJy4vc2hlbGwnO1xuaW1wb3J0IHsgc2hlbGwgfSBmcm9tICcuL3NoZWxsJztcbmltcG9ydCB7IGNyZWF0ZUNyaXRpY2FsU2VjdGlvbiB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IElFQ1JDbGllbnQgfSBmcm9tICcuLi9hd3MnO1xuaW1wb3J0IHR5cGUgeyBTdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24gfSBmcm9tICcuL2Fzc2V0LWhhbmRsZXInO1xuaW1wb3J0IHR5cGUgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi9wcm9ncmVzcyc7XG5pbXBvcnQgeyBzaGVsbEV2ZW50UHVibGlzaGVyRnJvbUV2ZW50RW1pdHRlciB9IGZyb20gJy4uL3Byb2dyZXNzJztcblxuaW50ZXJmYWNlIEJ1aWxkT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGRpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYWcgdGhlIGltYWdlIHdpdGggYSBnaXZlbiByZXBvTmFtZTp0YWcgY29tYmluYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHRhZzogc3RyaW5nO1xuICByZWFkb25seSB0YXJnZXQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZpbGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJ1aWxkQXJncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHJlYWRvbmx5IGJ1aWxkU2VjcmV0cz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHJlYWRvbmx5IGJ1aWxkU3NoPzogc3RyaW5nO1xuICByZWFkb25seSBuZXR3b3JrTW9kZT86IHN0cmluZztcbiAgcmVhZG9ubHkgcGxhdGZvcm0/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG91dHB1dHM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgY2FjaGVGcm9tPzogRG9ja2VyQ2FjaGVPcHRpb25bXTtcbiAgcmVhZG9ubHkgY2FjaGVUbz86IERvY2tlckNhY2hlT3B0aW9uO1xuICByZWFkb25seSBjYWNoZURpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIFB1c2hPcHRpb25zIHtcbiAgcmVhZG9ubHkgdGFnOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyQ3JlZGVudGlhbHNDb25maWcge1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRvbWFpbkNyZWRlbnRpYWxzOiBSZWNvcmQ8c3RyaW5nLCBEb2NrZXJEb21haW5DcmVkZW50aWFscz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyRG9tYWluQ3JlZGVudGlhbHMge1xuICByZWFkb25seSBzZWNyZXRzTWFuYWdlclNlY3JldElkPzogc3RyaW5nO1xuICByZWFkb25seSBlY3JSZXBvc2l0b3J5Pzogc3RyaW5nO1xufVxuXG5lbnVtIEluc3BlY3RJbWFnZUVycm9yQ29kZSB7XG4gIERvY2tlciA9IDEsXG4gIFBvZG1hbiA9IDEyNSxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJDYWNoZU9wdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgcGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGNsYXNzIERvY2tlciB7XG4gIHByaXZhdGUgY29uZmlnRGlyOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudEVtaXR0ZXI6IEV2ZW50RW1pdHRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbjogU3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uLFxuICApIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGFuIGltYWdlIHdpdGggdGhlIGdpdmVuIHRhZyBleGlzdHNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBleGlzdHModGFnOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5leGVjdXRlKFsnaW5zcGVjdCcsIHRhZ10sIHtcbiAgICAgICAgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uOiAnaWdub3JlJyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBjb25zdCBlcnJvcjogUHJvY2Vzc0ZhaWxlZEVycm9yID0gZTtcblxuICAgICAgLyoqXG4gICAgICAgKiBUaGUgb25seSBlcnJvciB3ZSBleHBlY3QgdG8gYmUgdGhyb3duIHdpbGwgaGF2ZSB0aGlzIHByb3BlcnR5IGFuZCB2YWx1ZS5cbiAgICAgICAqIElmIGl0IGRvZXNuJ3QsIGl0J3MgdW5yZWNvZ25pemVkIHNvIHJlLXRocm93IGl0LlxuICAgICAgICovXG4gICAgICBpZiAoZXJyb3IuY29kZSAhPT0gJ1BST0NFU1NfRkFJTEVEJykge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBJZiB3ZSBrbm93IHRoZSBzaGVsbCBjb21tYW5kIGFib3ZlIHJldHVybmVkIGFuIGVycm9yLCBjaGVjayB0byBzZWVcbiAgICAgICAqIGlmIHRoZSBleGl0IGNvZGUgaXMgb25lIHdlIGtub3cgdG8gYWN0dWFsbHkgbWVhbiB0aGF0IHRoZSBpbWFnZSBkb2Vzbid0XG4gICAgICAgKiBleGlzdC5cbiAgICAgICAqL1xuICAgICAgc3dpdGNoIChlcnJvci5leGl0Q29kZSkge1xuICAgICAgICBjYXNlIEluc3BlY3RJbWFnZUVycm9yQ29kZS5Eb2NrZXI6XG4gICAgICAgIGNhc2UgSW5zcGVjdEltYWdlRXJyb3JDb2RlLlBvZG1hbjpcbiAgICAgICAgICAvLyBEb2NrZXIgYW5kIFBvZG1hbiB3aWxsIHJldHVybiB0aGlzIGV4aXQgY29kZSB3aGVuIGFuIGltYWdlIGRvZXNuJ3QgZXhpc3QsIHJldHVybiBmYWxzZVxuICAgICAgICAgIC8vIGNvbnRleHQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTYyMDlcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgLy8gVGhpcyBpcyBhbiBlcnJvciBidXQgaXQncyBub3QgYW4gZXhpdCBjb2RlIHdlIHJlY29nbml6ZSwgdGhyb3cuXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGJ1aWxkKG9wdGlvbnM6IEJ1aWxkT3B0aW9ucykge1xuICAgIGNvbnN0IGJ1aWxkQ29tbWFuZCA9IFtcbiAgICAgICdidWlsZCcsXG4gICAgICAuLi5mbGF0dGVuKFxuICAgICAgICBPYmplY3QuZW50cmllcyhvcHRpb25zLmJ1aWxkQXJncyB8fCB7fSkubWFwKChbaywgdl0pID0+IFsnLS1idWlsZC1hcmcnLCBgJHtrfT0ke3Z9YF0pLFxuICAgICAgKSxcbiAgICAgIC4uLmZsYXR0ZW4oXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKG9wdGlvbnMuYnVpbGRTZWNyZXRzIHx8IHt9KS5tYXAoKFtrLCB2XSkgPT4gWyctLXNlY3JldCcsIGBpZD0ke2t9LCR7dn1gXSksXG4gICAgICApLFxuICAgICAgLi4uKG9wdGlvbnMuYnVpbGRTc2ggPyBbJy0tc3NoJywgb3B0aW9ucy5idWlsZFNzaF0gOiBbXSksXG4gICAgICAnLS10YWcnLFxuICAgICAgb3B0aW9ucy50YWcsXG4gICAgICAuLi4ob3B0aW9ucy50YXJnZXQgPyBbJy0tdGFyZ2V0Jywgb3B0aW9ucy50YXJnZXRdIDogW10pLFxuICAgICAgLi4uKG9wdGlvbnMuZmlsZSA/IFsnLS1maWxlJywgb3B0aW9ucy5maWxlXSA6IFtdKSxcbiAgICAgIC4uLihvcHRpb25zLm5ldHdvcmtNb2RlID8gWyctLW5ldHdvcmsnLCBvcHRpb25zLm5ldHdvcmtNb2RlXSA6IFtdKSxcbiAgICAgIC4uLihvcHRpb25zLnBsYXRmb3JtID8gWyctLXBsYXRmb3JtJywgb3B0aW9ucy5wbGF0Zm9ybV0gOiBbXSksXG4gICAgICAuLi4ob3B0aW9ucy5vdXRwdXRzID8gb3B0aW9ucy5vdXRwdXRzLm1hcCgob3V0cHV0KSA9PiBbYC0tb3V0cHV0PSR7b3V0cHV0fWBdKSA6IFtdKSxcbiAgICAgIC4uLihvcHRpb25zLmNhY2hlRnJvbVxuICAgICAgICA/IFtcbiAgICAgICAgICAuLi5vcHRpb25zLmNhY2hlRnJvbVxuICAgICAgICAgICAgLm1hcCgoY2FjaGVGcm9tKSA9PiBbJy0tY2FjaGUtZnJvbScsIHRoaXMuY2FjaGVPcHRpb25Ub0ZsYWcoY2FjaGVGcm9tKV0pXG4gICAgICAgICAgICAuZmxhdCgpLFxuICAgICAgICBdXG4gICAgICAgIDogW10pLFxuICAgICAgLi4uKG9wdGlvbnMuY2FjaGVUbyA/IFsnLS1jYWNoZS10bycsIHRoaXMuY2FjaGVPcHRpb25Ub0ZsYWcob3B0aW9ucy5jYWNoZVRvKV0gOiBbXSksXG4gICAgICAuLi4ob3B0aW9ucy5jYWNoZURpc2FibGVkID8gWyctLW5vLWNhY2hlJ10gOiBbXSksXG4gICAgICAnLicsXG4gICAgXTtcbiAgICBhd2FpdCB0aGlzLmV4ZWN1dGUoYnVpbGRDb21tYW5kLCB7XG4gICAgICBjd2Q6IG9wdGlvbnMuZGlyZWN0b3J5LFxuICAgICAgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uOiB0aGlzLnN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbixcbiAgICAgIGVudjoge1xuICAgICAgICBCVUlMRFhfTk9fREVGQVVMVF9BVFRFU1RBVElPTlM6ICcxJywgLy8gRG9ja2VyIEJ1aWxkIGFkZHMgcHJvdmVuYW5jZSBhdHRlc3RhdGlvbnMgYnkgZGVmYXVsdCB0aGF0IGNvbmZ1c2UgY2RrLWFzc2V0c1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY3JlZGVudGlhbHMgZnJvbSBFQ1IgYW5kIHJ1biBkb2NrZXIgbG9naW5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2dpbihlY3I6IElFQ1JDbGllbnQpIHtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0IG9idGFpbkVjckNyZWRlbnRpYWxzKGVjciwgdGhpcy5ldmVudEVtaXR0ZXIpO1xuXG4gICAgLy8gVXNlIC0tcGFzc3dvcmQtc3RkaW4gb3RoZXJ3aXNlIGRvY2tlciB3aWxsIGNvbXBsYWluLiBMb3VkbHkuXG4gICAgYXdhaXQgdGhpcy5leGVjdXRlKFxuICAgICAgWydsb2dpbicsICctLXVzZXJuYW1lJywgY3JlZGVudGlhbHMudXNlcm5hbWUsICctLXBhc3N3b3JkLXN0ZGluJywgY3JlZGVudGlhbHMuZW5kcG9pbnQucmVwbGFjZSgvXmh0dHBzPzpcXC9cXC98XFwvJC9nLCAnJyldLFxuICAgICAge1xuICAgICAgICBpbnB1dDogY3JlZGVudGlhbHMucGFzc3dvcmQsXG5cbiAgICAgICAgLy8gTmVlZCB0byBpZ25vcmUgb3RoZXJ3aXNlIERvY2tlciB3aWxsIGNvbXBsYWluXG4gICAgICAgIC8vICdXQVJOSU5HISBZb3VyIHBhc3N3b3JkIHdpbGwgYmUgc3RvcmVkIHVuZW5jcnlwdGVkJ1xuICAgICAgICAvLyBkb2Vzbid0IHJlYWxseSBtYXR0ZXIgc2luY2UgaXQncyBhIHRva2VuLlxuICAgICAgICBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb246ICdpZ25vcmUnLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHRhZyhzb3VyY2VUYWc6IHN0cmluZywgdGFyZ2V0VGFnOiBzdHJpbmcpIHtcbiAgICBhd2FpdCB0aGlzLmV4ZWN1dGUoWyd0YWcnLCBzb3VyY2VUYWcsIHRhcmdldFRhZ10pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHB1c2gob3B0aW9uczogUHVzaE9wdGlvbnMpIHtcbiAgICBhd2FpdCB0aGlzLmV4ZWN1dGUoWydwdXNoJywgb3B0aW9ucy50YWddLCB7XG4gICAgICBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb246IHRoaXMuc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIGEgQ0RLIERvY2tlciBDcmVkZW50aWFscyBmaWxlIGV4aXN0cywgY3JlYXRlcyBhIG5ldyBEb2NrZXIgY29uZmlnIGRpcmVjdG9yeS5cbiAgICogU2V0cyB1cCBgZG9ja2VyLWNyZWRlbnRpYWwtY2RrLWFzc2V0c2AgdG8gYmUgdGhlIGNyZWRlbnRpYWwgaGVscGVyIGZvciBlYWNoIGRvbWFpbiBpbiB0aGUgQ0RLIGNvbmZpZy5cbiAgICogQWxsIGZ1dHVyZSBjb21tYW5kcyAoZS5nLiwgYGJ1aWxkYCwgYHB1c2hgKSB3aWxsIHVzZSB0aGlzIGNvbmZpZy5cbiAgICpcbiAgICogU2VlIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvbG9naW4vI2NyZWRlbnRpYWwtaGVscGVycyBmb3IgbW9yZSBkZXRhaWxzIG9uIGNyZWQgaGVscGVycy5cbiAgICpcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBDREsgY29uZmlnIHdhcyBmb3VuZCBhbmQgY29uZmlndXJlZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBwdWJsaWMgY29uZmlndXJlQ2RrQ3JlZGVudGlhbHMoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY29uZmlnID0gY2RrQ3JlZGVudGlhbHNDb25maWcoKTtcbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlnRGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCAnY2RrRG9ja2VyQ29uZmlnJykpO1xuXG4gICAgY29uc3QgZG9tYWlucyA9IE9iamVjdC5rZXlzKGNvbmZpZy5kb21haW5DcmVkZW50aWFscyk7XG4gICAgY29uc3QgY3JlZEhlbHBlcnMgPSBkb21haW5zLnJlZHVjZSgobWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBkb21haW4pID0+IHtcbiAgICAgIG1hcFtkb21haW5dID0gJ2Nkay1hc3NldHMnOyAvLyBVc2UgZG9ja2VyLWNyZWRlbnRpYWwtY2RrLWFzc2V0cyBmb3IgdGhpcyBkb21haW5cbiAgICAgIHJldHVybiBtYXA7XG4gICAgfSwge30pO1xuICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKHRoaXMuY29uZmlnRGlyLCAnY29uZmlnLmpzb24nKSwgSlNPTi5zdHJpbmdpZnkoeyBjcmVkSGVscGVycyB9KSwge1xuICAgICAgZW5jb2Rpbmc6ICd1dGYtOCcsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGFueSBjb25maWd1cmVkIERvY2tlciBjb25maWcgZGlyZWN0b3J5LlxuICAgKiBBbGwgZnV0dXJlIGNvbW1hbmRzIChlLmcuLCBgYnVpbGRgLCBgcHVzaGApIHdpbGwgdXNlIHRoZSBkZWZhdWx0IGNvbmZpZy5cbiAgICpcbiAgICogVGhpcyBpcyB1c2VmdWwgYWZ0ZXIgY2FsbGluZyBgY29uZmlndXJlQ2RrQ3JlZGVudGlhbHNgIHRvIHJlc2V0IHRvIGRlZmF1bHQgY3JlZGVudGlhbHMuXG4gICAqL1xuICBwdWJsaWMgcmVzZXRBdXRoUGx1Z2lucygpIHtcbiAgICB0aGlzLmNvbmZpZ0RpciA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXhlY3V0ZShhcmdzOiBzdHJpbmdbXSwgb3B0aW9uczogT21pdDxTaGVsbE9wdGlvbnMsICdzaGVsbEV2ZW50UHVibGlzaGVyJz4gPSB7fSkge1xuICAgIGNvbnN0IGNvbmZpZ0FyZ3MgPSB0aGlzLmNvbmZpZ0RpciA/IFsnLS1jb25maWcnLCB0aGlzLmNvbmZpZ0Rpcl0gOiBbXTtcblxuICAgIGNvbnN0IHBhdGhUb0Nka0Fzc2V0cyA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicsICcuLicsICdiaW4nKTtcblxuICAgIGNvbnN0IHNoZWxsRXZlbnRQdWJsaXNoZXIgPSBzaGVsbEV2ZW50UHVibGlzaGVyRnJvbUV2ZW50RW1pdHRlcih0aGlzLmV2ZW50RW1pdHRlcik7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHNoZWxsKFtnZXREb2NrZXJDbWQoKSwgLi4uY29uZmlnQXJncywgLi4uYXJnc10sIHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgc2hlbGxFdmVudFB1Ymxpc2hlcjogc2hlbGxFdmVudFB1Ymxpc2hlcixcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgLi4ucHJvY2Vzcy5lbnYsXG4gICAgICAgICAgLi4ub3B0aW9ucy5lbnYsXG4gICAgICAgICAgUEFUSDogYCR7cGF0aFRvQ2RrQXNzZXRzfSR7cGF0aC5kZWxpbWl0ZXJ9JHtvcHRpb25zLmVudj8uUEFUSCA/PyBwcm9jZXNzLmVudi5QQVRIfWAsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChlLmNvZGUgPT09ICdFTk9FTlQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBcIlVuYWJsZSB0byBleGVjdXRlICdkb2NrZXInIGluIG9yZGVyIHRvIGJ1aWxkIGEgY29udGFpbmVyIGFzc2V0LiBQbGVhc2UgaW5zdGFsbCAnZG9ja2VyJyBhbmQgdHJ5IGFnYWluLlwiLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNhY2hlT3B0aW9uVG9GbGFnKG9wdGlvbjogRG9ja2VyQ2FjaGVPcHRpb24pOiBzdHJpbmcge1xuICAgIGxldCBmbGFnID0gYHR5cGU9JHtvcHRpb24udHlwZX1gO1xuICAgIGlmIChvcHRpb24ucGFyYW1zKSB7XG4gICAgICBmbGFnICs9XG4gICAgICAgICcsJyArXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKG9wdGlvbi5wYXJhbXMpXG4gICAgICAgICAgLm1hcCgoW2ssIHZdKSA9PiBgJHtrfT0ke3Z9YClcbiAgICAgICAgICAuam9pbignLCcpO1xuICAgIH1cbiAgICByZXR1cm4gZmxhZztcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlckZhY3RvcnlPcHRpb25zIHtcbiAgcmVhZG9ubHkgcmVwb1VyaTogc3RyaW5nO1xuICByZWFkb25seSBlY3I6IElFQ1JDbGllbnQ7XG4gIHJlYWRvbmx5IGV2ZW50RW1pdHRlcjogRXZlbnRFbWl0dGVyO1xuICByZWFkb25seSBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb246IFN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbjtcbn1cblxuLyoqXG4gKiBIZWxwcyBnZXQgYXBwcm9wcmlhdGVseSBjb25maWd1cmVkIERvY2tlciBpbnN0YW5jZXMgZHVyaW5nIHRoZSBjb250YWluZXJcbiAqIGltYWdlIHB1Ymxpc2hpbmcgcHJvY2Vzcy5cbiAqL1xuZXhwb3J0IGNsYXNzIERvY2tlckZhY3Rvcnkge1xuICBwcml2YXRlIGVudGVyTG9nZ2VkSW5EZXN0aW5hdGlvbnNDcml0aWNhbFNlY3Rpb24gPSBjcmVhdGVDcml0aWNhbFNlY3Rpb24oKTtcbiAgcHJpdmF0ZSBsb2dnZWRJbkRlc3RpbmF0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgRG9ja2VyIGluc3RhbmNlIGZvciBidWlsZGluZyBpbWFnZXMuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZm9yQnVpbGQob3B0aW9uczogRG9ja2VyRmFjdG9yeU9wdGlvbnMpOiBQcm9taXNlPERvY2tlcj4ge1xuICAgIGNvbnN0IGRvY2tlciA9IG5ldyBEb2NrZXIob3B0aW9ucy5ldmVudEVtaXR0ZXIsIG9wdGlvbnMuc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uKTtcblxuICAgIC8vIERlZmF1bHQgYmVoYXZpb3IgaXMgdG8gbG9naW4gYmVmb3JlIGJ1aWxkIHNvIHRoYXQgdGhlIERvY2tlcmZpbGUgY2FuIHJlZmVyZW5jZSBpbWFnZXMgaW4gdGhlIEVDUiByZXBvXG4gICAgLy8gSG93ZXZlciwgaWYgd2UncmUgaW4gYSBwaXBlbGluZXMgZW52aXJvbm1lbnQgKGZvciBleGFtcGxlKSxcbiAgICAvLyB3ZSBtYXkgaGF2ZSBhbHRlcm5hdGl2ZSBjcmVkZW50aWFscyB0byB0aGUgZGVmYXVsdCBvbmVzIHRvIHVzZSBmb3IgdGhlIGJ1aWxkIGl0c2VsZi5cbiAgICAvLyBJZiB0aGUgc3BlY2lhbCBjb25maWcgZmlsZSBpcyBwcmVzZW50LCBkZWxheSB0aGUgbG9naW4gdG8gdGhlIGRlZmF1bHQgY3JlZGVudGlhbHMgdW50aWwgdGhlIHB1c2guXG4gICAgLy8gSWYgdGhlIGNvbmZpZyBmaWxlIGlzIHByZXNlbnQsIHdlIHdpbGwgY29uZmlndXJlIGFuZCB1c2UgdGhvc2UgY3JlZGVudGlhbHMgZm9yIHRoZSBidWlsZC5cbiAgICBsZXQgY2RrRG9ja2VyQ3JlZGVudGlhbHNDb25maWd1cmVkID0gZG9ja2VyLmNvbmZpZ3VyZUNka0NyZWRlbnRpYWxzKCk7XG4gICAgaWYgKCFjZGtEb2NrZXJDcmVkZW50aWFsc0NvbmZpZ3VyZWQpIHtcbiAgICAgIGF3YWl0IHRoaXMubG9naW5PbmNlUGVyRGVzdGluYXRpb24oZG9ja2VyLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZG9ja2VyO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSBEb2NrZXIgaW5zdGFuY2UgZm9yIHB1c2hpbmcgaW1hZ2VzIHRvIEVDUi5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBmb3JFY3JQdXNoKG9wdGlvbnM6IERvY2tlckZhY3RvcnlPcHRpb25zKSB7XG4gICAgY29uc3QgZG9ja2VyID0gbmV3IERvY2tlcihvcHRpb25zLmV2ZW50RW1pdHRlciwgb3B0aW9ucy5zdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24pO1xuICAgIGF3YWl0IHRoaXMubG9naW5PbmNlUGVyRGVzdGluYXRpb24oZG9ja2VyLCBvcHRpb25zKTtcbiAgICByZXR1cm4gZG9ja2VyO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2dpbk9uY2VQZXJEZXN0aW5hdGlvbihkb2NrZXI6IERvY2tlciwgb3B0aW9uczogRG9ja2VyRmFjdG9yeU9wdGlvbnMpIHtcbiAgICAvLyBDaGFuZ2VzOiAwMTIzNDU2Nzg5MTAuZGtyLmVjci51cy13ZXN0LTIuYW1hem9uYXdzLmNvbS90YWdnaW5nLXRlc3RcbiAgICAvLyBUbyB0aGlzOiAwMTIzNDU2Nzg5MTAuZGtyLmVjci51cy13ZXN0LTIuYW1hem9uYXdzLmNvbVxuICAgIGNvbnN0IHJlcG9zaXRvcnlEb21haW4gPSBvcHRpb25zLnJlcG9Vcmkuc3BsaXQoJy8nKVswXTtcblxuICAgIC8vIEVuc3VyZSBvbmUtYXQtYS10aW1lIGFjY2VzcyB0byBsb2dnZWRJbkRlc3RpbmF0aW9ucy5cbiAgICBhd2FpdCB0aGlzLmVudGVyTG9nZ2VkSW5EZXN0aW5hdGlvbnNDcml0aWNhbFNlY3Rpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubG9nZ2VkSW5EZXN0aW5hdGlvbnMuaGFzKHJlcG9zaXRvcnlEb21haW4pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgZG9ja2VyLmxvZ2luKG9wdGlvbnMuZWNyKTtcbiAgICAgIHRoaXMubG9nZ2VkSW5EZXN0aW5hdGlvbnMuYWRkKHJlcG9zaXRvcnlEb21haW4pO1xuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldERvY2tlckNtZCgpOiBzdHJpbmcge1xuICByZXR1cm4gcHJvY2Vzcy5lbnYuQ0RLX0RPQ0tFUiA/PyAnZG9ja2VyJztcbn1cblxuZnVuY3Rpb24gZmxhdHRlbih4OiBzdHJpbmdbXVtdKSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0KFtdLCAuLi54KTtcbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
- import { DockerImageManifestEntry } from '../../asset-manifest';
2
- import { IAssetHandler, IHandlerHost, IHandlerOptions } from '../asset-handler';
1
+ import type { DockerImageManifestEntry } from '../../asset-manifest';
2
+ import type { IAssetHandler, IHandlerHost, IHandlerOptions } from '../asset-handler';
3
3
  export declare class ContainerImageAssetHandler implements IAssetHandler {
4
4
  private readonly workDir;
5
5
  private readonly asset;
@@ -221,4 +221,4 @@ async function repositoryUri(ecr, repositoryName) {
221
221
  return undefined;
222
222
  }
223
223
  }
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLWltYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRhaW5lci1pbWFnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBRTdCLHFEQUE4RDtBQUc5RCw2Q0FBZ0Y7QUFHaEYsa0RBQXlEO0FBQ3pELG9DQUFpQztBQVNqQyxNQUFhLDBCQUEwQjtJQUdyQyxZQUNtQixPQUFlLEVBQ2YsS0FBK0IsRUFDL0IsSUFBa0IsRUFDbEIsT0FBd0I7UUFIeEIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQTBCO1FBQy9CLFNBQUksR0FBSixJQUFJLENBQWM7UUFDbEIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7SUFFM0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXZDLElBQUksUUFBUSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDdEMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1lBQy9ELE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztZQUN6QixZQUFZLEVBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN0RSxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUc7WUFDakIsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQywyQkFBMkI7U0FDdEUsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLEdBQUcsSUFBSSxxQkFBcUIsQ0FDdkMsaUJBQWlC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QUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsb0JBQW9CLENBQUM7WUFDOUMsZUFBZSxFQUFFLENBQUMsY0FBYyxDQUFDO1NBQ2xDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQztJQUN6RCxDQUFDO0lBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssNkJBQTZCLEVBQUUsQ0FBQztZQUM3QyxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBEb2NrZXJJbWFnZURlc3RpbmF0aW9uIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IGRlc3RpbmF0aW9uVG9DbGllbnRPcHRpb25zIH0gZnJvbSAnLi9jbGllbnQtb3B0aW9ucyc7XG5pbXBvcnQgeyBEb2NrZXJJbWFnZU1hbmlmZXN0RW50cnkgfSBmcm9tICcuLi8uLi9hc3NldC1tYW5pZmVzdCc7XG5pbXBvcnQgdHlwZSB7IElFQ1JDbGllbnQgfSBmcm9tICcuLi8uLi9hd3MnO1xuaW1wb3J0IHsgRXZlbnRUeXBlLCBzaGVsbEV2ZW50UHVibGlzaGVyRnJvbUV2ZW50RW1pdHRlciB9IGZyb20gJy4uLy4uL3Byb2dyZXNzJztcbmltcG9ydCB7IElBc3NldEhhbmRsZXIsIElIYW5kbGVySG9zdCwgSUhhbmRsZXJPcHRpb25zIH0gZnJvbSAnLi4vYXNzZXQtaGFuZGxlcic7XG5pbXBvcnQgeyBEb2NrZXIgfSBmcm9tICcuLi9kb2NrZXInO1xuaW1wb3J0IHsgcmVwbGFjZUF3c1BsYWNlaG9sZGVycyB9IGZyb20gJy4uL3BsYWNlaG9sZGVycyc7XG5pbXBvcnQgeyBzaGVsbCB9IGZyb20gJy4uL3NoZWxsJztcblxuaW50ZXJmYWNlIENvbnRhaW5lckltYWdlQXNzZXRIYW5kbGVySW5pdCB7XG4gIHJlYWRvbmx5IGVjcjogSUVDUkNsaWVudDtcbiAgcmVhZG9ubHkgcmVwb1VyaTogc3RyaW5nO1xuICByZWFkb25seSBpbWFnZVVyaTogc3RyaW5nO1xuICByZWFkb25seSBkZXN0aW5hdGlvbkFscmVhZHlFeGlzdHM6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBDb250YWluZXJJbWFnZUFzc2V0SGFuZGxlciBpbXBsZW1lbnRzIElBc3NldEhhbmRsZXIge1xuICBwcml2YXRlIGluaXQ/OiBDb250YWluZXJJbWFnZUFzc2V0SGFuZGxlckluaXQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrRGlyOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhc3NldDogRG9ja2VySW1hZ2VNYW5pZmVzdEVudHJ5LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdDogSUhhbmRsZXJIb3N0LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogSUhhbmRsZXJPcHRpb25zLFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBidWlsZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpbml0T25jZSA9IGF3YWl0IHRoaXMuaW5pdE9uY2UoKTtcblxuICAgIGlmIChpbml0T25jZS5kZXN0aW5hdGlvbkFscmVhZHlFeGlzdHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuaG9zdC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZG9ja2VyRm9yQnVpbGRpbmcgPSBhd2FpdCB0aGlzLmhvc3QuZG9ja2VyRmFjdG9yeS5mb3JCdWlsZCh7XG4gICAgICByZXBvVXJpOiBpbml0T25jZS5yZXBvVXJpLFxuICAgICAgZXZlbnRFbWl0dGVyOiAobTogc3RyaW5nKSA9PiB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLkRFQlVHLCBtKSxcbiAgICAgIGVjcjogaW5pdE9uY2UuZWNyLFxuICAgICAgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uOiB0aGlzLm9wdGlvbnMuc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBDb250YWluZXJJbWFnZUJ1aWxkZXIoXG4gICAgICBkb2NrZXJGb3JCdWlsZGluZyxcbiAgICAgIHRoaXMud29ya0RpcixcbiAgICAgIHRoaXMuYXNzZXQsXG4gICAgICB0aGlzLmhvc3QsXG4gICAgKTtcbiAgICBjb25zdCBsb2NhbFRhZ05hbWUgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICBpZiAobG9jYWxUYWdOYW1lID09PSB1bmRlZmluZWQgfHwgdGhpcy5ob3N0LmFib3J0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuaG9zdC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXdhaXQgZG9ja2VyRm9yQnVpbGRpbmcudGFnKGxvY2FsVGFnTmFtZSwgaW5pdE9uY2UuaW1hZ2VVcmkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGlzUHVibGlzaGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBpbml0T25jZSA9IGF3YWl0IHRoaXMuaW5pdE9uY2UoeyBxdWlldDogdHJ1ZSB9KTtcbiAgICAgIHJldHVybiBpbml0T25jZS5kZXN0aW5hdGlvbkFscmVhZHlFeGlzdHM7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLkRFQlVHLCBgJHtlLm1lc3NhZ2V9YCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwdWJsaXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGluaXRPbmNlID0gYXdhaXQgdGhpcy5pbml0T25jZSgpO1xuXG4gICAgaWYgKGluaXRPbmNlLmRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5ob3N0LmFib3J0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkb2NrZXJGb3JQdXNoaW5nID0gYXdhaXQgdGhpcy5ob3N0LmRvY2tlckZhY3RvcnkuZm9yRWNyUHVzaCh7XG4gICAgICByZXBvVXJpOiBpbml0T25jZS5yZXBvVXJpLFxuICAgICAgZXZlbnRFbWl0dGVyOiB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UsXG4gICAgICBlY3I6IGluaXRPbmNlLmVjcixcbiAgICAgIHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbjogdGhpcy5vcHRpb25zLnN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbixcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmhvc3QuYWJvcnRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuVVBMT0FELCBgUHVzaCAke2luaXRPbmNlLmltYWdlVXJpfWApO1xuICAgIGF3YWl0IGRvY2tlckZvclB1c2hpbmcucHVzaCh7XG4gICAgICB0YWc6IGluaXRPbmNlLmltYWdlVXJpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0T25jZShcbiAgICBvcHRpb25zOiB7IHF1aWV0PzogYm9vbGVhbiB9ID0ge30sXG4gICk6IFByb21pc2U8Q29udGFpbmVySW1hZ2VBc3NldEhhbmRsZXJJbml0PiB7XG4gICAgaWYgKHRoaXMuaW5pdCkge1xuICAgICAgcmV0dXJuIHRoaXMuaW5pdDtcbiAgICB9XG5cbiAgICBjb25zdCBkZXN0aW5hdGlvbiA9IGF3YWl0IHJlcGxhY2VBd3NQbGFjZWhvbGRlcnModGhpcy5hc3NldC5kZXN0aW5hdGlvbiwgdGhpcy5ob3N0LmF3cyk7XG4gICAgY29uc3QgZWNyID0gYXdhaXQgdGhpcy5ob3N0LmF3cy5lY3JDbGllbnQoe1xuICAgICAgLi4uZGVzdGluYXRpb25Ub0NsaWVudE9wdGlvbnMoZGVzdGluYXRpb24pLFxuICAgICAgcXVpZXQ6IG9wdGlvbnMucXVpZXQsXG4gICAgfSk7XG4gICAgY29uc3QgYWNjb3VudCA9IGFzeW5jICgpID0+IChhd2FpdCB0aGlzLmhvc3QuYXdzLmRpc2NvdmVyQ3VycmVudEFjY291bnQoKSk/LmFjY291bnRJZDtcblxuICAgIGNvbnN0IHJlcG9VcmkgPSBhd2FpdCByZXBvc2l0b3J5VXJpKGVjciwgZGVzdGluYXRpb24ucmVwb3NpdG9yeU5hbWUpO1xuICAgIGlmICghcmVwb1VyaSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTm8gRUNSIHJlcG9zaXRvcnkgbmFtZWQgJyR7ZGVzdGluYXRpb24ucmVwb3NpdG9yeU5hbWV9JyBpbiBhY2NvdW50ICR7YXdhaXQgYWNjb3VudCgpfS4gSXMgdGhpcyBhY2NvdW50IGJvb3RzdHJhcHBlZD9gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbWFnZVVyaSA9IGAke3JlcG9Vcml9OiR7ZGVzdGluYXRpb24uaW1hZ2VUYWd9YDtcblxuICAgIHRoaXMuaW5pdCA9IHtcbiAgICAgIGltYWdlVXJpLFxuICAgICAgZWNyLFxuICAgICAgcmVwb1VyaSxcbiAgICAgIGRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0czogYXdhaXQgdGhpcy5kZXN0aW5hdGlvbkFscmVhZHlFeGlzdHMoZWNyLCBkZXN0aW5hdGlvbiwgaW1hZ2VVcmkpLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5pbml0O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgdGhlIGltYWdlIGFscmVhZHkgZXhpc3RzIGluIHRoZSBFQ1IgcmVwb1xuICAgKlxuICAgKiBVc2UgdGhlIGZpZWxkcyBmcm9tIHRoZSBkZXN0aW5hdGlvbiB0byBkbyB0aGUgYWN0dWFsIGNoZWNrLiBUaGUgaW1hZ2VVcmlcbiAgICogc2hvdWxkIGNvcnJlc3BvbmQgdG8gdGhhdCwgYnV0IGlzIG9ubHkgdXNlZCB0byBwcmludCBEb2NrZXIgaW1hZ2UgbG9jYXRpb25cbiAgICogZm9yIHVzZXIgYmVuZWZpdCAodGhlIGZvcm1hdCBpcyBzbGlnaHRseSBkaWZmZXJlbnQpLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBkZXN0aW5hdGlvbkFscmVhZHlFeGlzdHMoXG4gICAgZWNyOiBJRUNSQ2xpZW50LFxuICAgIGRlc3RpbmF0aW9uOiBEb2NrZXJJbWFnZURlc3RpbmF0aW9uLFxuICAgIGltYWdlVXJpOiBzdHJpbmcsXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQ0hFQ0ssIGBDaGVjayAke2ltYWdlVXJpfWApO1xuICAgIGlmIChhd2FpdCBpbWFnZUV4aXN0cyhlY3IsIGRlc3RpbmF0aW9uLnJlcG9zaXRvcnlOYW1lLCBkZXN0aW5hdGlvbi5pbWFnZVRhZykpIHtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuRk9VTkQsIGBGb3VuZCAke2ltYWdlVXJpfWApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmNsYXNzIENvbnRhaW5lckltYWdlQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9ja2VyOiBEb2NrZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrRGlyOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhc3NldDogRG9ja2VySW1hZ2VNYW5pZmVzdEVudHJ5LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdDogSUhhbmRsZXJIb3N0LFxuICApIHtcbiAgfVxuXG4gIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuYXNzZXQuc291cmNlLmV4ZWN1dGFibGVcbiAgICAgID8gdGhpcy5idWlsZEV4dGVybmFsQXNzZXQodGhpcy5hc3NldC5zb3VyY2UuZXhlY3V0YWJsZSlcbiAgICAgIDogdGhpcy5idWlsZERpcmVjdG9yeUFzc2V0KCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSAobG9jYWwpIERvY2tlciBhc3NldCBmcm9tIGEgZGlyZWN0b3J5IHdpdGggYSBEb2NrZXJmaWxlXG4gICAqXG4gICAqIFRhZ3MgdW5kZXIgYSBkZXRlcm1pbmlzdGljLCB1bmlxdWUsIGxvY2FsIGlkZW50aWZpZXIgd2ljaCB3aWxsIHNraXBcbiAgICogdGhlIGJ1aWxkIGlmIGl0IGFscmVhZHkgZXhpc3RzLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBidWlsZERpcmVjdG9yeUFzc2V0KCk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgbG9jYWxUYWdOYW1lID0gYGNka2Fzc2V0LSR7dGhpcy5hc3NldC5pZC5hc3NldElkLnRvTG93ZXJDYXNlKCl9YDtcblxuICAgIGlmICghKGF3YWl0IHRoaXMuaXNJbWFnZUNhY2hlZChsb2NhbFRhZ05hbWUpKSkge1xuICAgICAgaWYgKHRoaXMuaG9zdC5hYm9ydGVkKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRoaXMuYnVpbGRJbWFnZShsb2NhbFRhZ05hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBsb2NhbFRhZ05hbWU7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSAobG9jYWwpIERvY2tlciBhc3NldCBieSBydW5uaW5nIGFuIGV4dGVybmFsIGNvbW1hbmRcbiAgICpcbiAgICogRXh0ZXJuYWwgY29tbWFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVkdXBsaWNhdGluZyB0aGUgYnVpbGQgaWYgcG9zc2libGUsXG4gICAqIGFuZCBpcyBleHBlY3RlZCB0byByZXR1cm4gdGhlIGdlbmVyYXRlZCBpbWFnZSBpZGVudGlmaWVyIG9uIHN0ZG91dC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgYnVpbGRFeHRlcm5hbEFzc2V0KFxuICAgIGV4ZWN1dGFibGU6IHN0cmluZ1tdLFxuICAgIGN3ZD86IHN0cmluZyxcbiAgKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBhc3NldFBhdGggPSBjd2QgPz8gdGhpcy53b3JrRGlyO1xuXG4gICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5CVUlMRCwgYEJ1aWxkaW5nIERvY2tlciBpbWFnZSB1c2luZyBjb21tYW5kICcke2V4ZWN1dGFibGV9J2ApO1xuICAgIGlmICh0aGlzLmhvc3QuYWJvcnRlZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBzaGVsbEV2ZW50UHVibGlzaGVyID0gc2hlbGxFdmVudFB1Ymxpc2hlckZyb21FdmVudEVtaXR0ZXIodGhpcy5ob3N0LmVtaXRNZXNzYWdlKTtcblxuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCBzaGVsbChleGVjdXRhYmxlLCB7XG4gICAgICAgIGN3ZDogYXNzZXRQYXRoLFxuICAgICAgICBzaGVsbEV2ZW50UHVibGlzaGVyLFxuICAgICAgICBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb246ICdpZ25vcmUnLFxuICAgICAgfSlcbiAgICApLnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYnVpbGRJbWFnZShsb2NhbFRhZ05hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuYXNzZXQuc291cmNlO1xuICAgIGlmICghc291cmNlLmRpcmVjdG9yeSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgJ2RpcmVjdG9yeScgaXMgZXhwZWN0ZWQgaW4gdGhlIERvY2tlckltYWdlIGFzc2V0IHNvdXJjZSwgZ290OiAke0pTT04uc3RyaW5naWZ5KHNvdXJjZSl9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgZnVsbFBhdGggPSBwYXRoLnJlc29sdmUodGhpcy53b3JrRGlyLCBzb3VyY2UuZGlyZWN0b3J5KTtcbiAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLkJVSUxELCBgQnVpbGRpbmcgRG9ja2VyIGltYWdlIGF0ICR7ZnVsbFBhdGh9YCk7XG5cbiAgICBhd2FpdCB0aGlzLmRvY2tlci5idWlsZCh7XG4gICAgICBkaXJlY3Rvcnk6IGZ1bGxQYXRoLFxuICAgICAgdGFnOiBsb2NhbFRhZ05hbWUsXG4gICAgICBidWlsZEFyZ3M6IHNvdXJjZS5kb2NrZXJCdWlsZEFyZ3MsXG4gICAgICBidWlsZFNlY3JldHM6IHNvdXJjZS5kb2NrZXJCdWlsZFNlY3JldHMsXG4gICAgICBidWlsZFNzaDogc291cmNlLmRvY2tlckJ1aWxkU3NoLFxuICAgICAgdGFyZ2V0OiBzb3VyY2UuZG9ja2VyQnVpbGRUYXJnZXQsXG4gICAgICBmaWxlOiBzb3VyY2UuZG9ja2VyRmlsZSxcbiAgICAgIG5ldHdvcmtNb2RlOiBzb3VyY2UubmV0d29ya01vZGUsXG4gICAgICBwbGF0Zm9ybTogc291cmNlLnBsYXRmb3JtLFxuICAgICAgb3V0cHV0czogc291cmNlLmRvY2tlck91dHB1dHMsXG4gICAgICBjYWNoZUZyb206IHNvdXJjZS5jYWNoZUZyb20sXG4gICAgICBjYWNoZVRvOiBzb3VyY2UuY2FjaGVUbyxcbiAgICAgIGNhY2hlRGlzYWJsZWQ6IHNvdXJjZS5jYWNoZURpc2FibGVkLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBpc0ltYWdlQ2FjaGVkKGxvY2FsVGFnTmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKGF3YWl0IHRoaXMuZG9ja2VyLmV4aXN0cyhsb2NhbFRhZ05hbWUpKSB7XG4gICAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLkNBQ0hFRCwgYENhY2hlZCAke2xvY2FsVGFnTmFtZX1gKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBpbWFnZUV4aXN0cyhlY3I6IElFQ1JDbGllbnQsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIGltYWdlVGFnOiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBlY3IuZGVzY3JpYmVJbWFnZXMoe1xuICAgICAgcmVwb3NpdG9yeU5hbWUsXG4gICAgICBpbWFnZUlkczogW3sgaW1hZ2VUYWcgfV0sXG4gICAgfSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGlmIChlLm5hbWUgIT09ICdJbWFnZU5vdEZvdW5kRXhjZXB0aW9uJykge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBVUkkgZm9yIHRoZSByZXBvc2l0b3J5IHdpdGggdGhlIGdpdmVuIG5hbWVcbiAqXG4gKiBSZXR1cm5zIHVuZGVmaW5lZCBpZiB0aGUgcmVwb3NpdG9yeSBkb2VzIG5vdCBleGlzdC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVwb3NpdG9yeVVyaShlY3I6IElFQ1JDbGllbnQsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZWNyLmRlc2NyaWJlUmVwb3NpdG9yaWVzKHtcbiAgICAgIHJlcG9zaXRvcnlOYW1lczogW3JlcG9zaXRvcnlOYW1lXSxcbiAgICB9KTtcbiAgICByZXR1cm4gKHJlc3BvbnNlLnJlcG9zaXRvcmllcyB8fCBbXSlbMF0/LnJlcG9zaXRvcnlVcmk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGlmIChlLm5hbWUgIT09ICdSZXBvc2l0b3J5Tm90Rm91bmRFeGNlcHRpb24nKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLWltYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRhaW5lci1pbWFnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBRTdCLHFEQUE4RDtBQUc5RCw2Q0FBZ0Y7QUFHaEYsa0RBQXlEO0FBQ3pELG9DQUFpQztBQVNqQyxNQUFhLDBCQUEwQjtJQUdyQyxZQUNtQixPQUFlLEVBQ2YsS0FBK0IsRUFDL0IsSUFBa0IsRUFDbEIsT0FBd0I7UUFIeEIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQTBCO1FBQy9CLFNBQUksR0FBSixJQUFJLENBQWM7UUFDbEIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7SUFFM0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXZDLElBQUksUUFBUSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDdEMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1lBQy9ELE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztZQUN6QixZQUFZLEVBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN0RSxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUc7WUFDakIsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQywyQkFBMkI7U0FDdEUsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLEdBQUcsSUFBSSxxQkFBcUIsQ0FDdkMsaUJBQWlC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QUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsb0JBQW9CLENBQUM7WUFDOUMsZUFBZSxFQUFFLENBQUMsY0FBYyxDQUFDO1NBQ2xDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQztJQUN6RCxDQUFDO0lBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssNkJBQTZCLEVBQUUsQ0FBQztZQUM3QyxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSB7IERvY2tlckltYWdlRGVzdGluYXRpb24gfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgZGVzdGluYXRpb25Ub0NsaWVudE9wdGlvbnMgfSBmcm9tICcuL2NsaWVudC1vcHRpb25zJztcbmltcG9ydCB0eXBlIHsgRG9ja2VySW1hZ2VNYW5pZmVzdEVudHJ5IH0gZnJvbSAnLi4vLi4vYXNzZXQtbWFuaWZlc3QnO1xuaW1wb3J0IHR5cGUgeyBJRUNSQ2xpZW50IH0gZnJvbSAnLi4vLi4vYXdzJztcbmltcG9ydCB7IEV2ZW50VHlwZSwgc2hlbGxFdmVudFB1Ymxpc2hlckZyb21FdmVudEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9wcm9ncmVzcyc7XG5pbXBvcnQgdHlwZSB7IElBc3NldEhhbmRsZXIsIElIYW5kbGVySG9zdCwgSUhhbmRsZXJPcHRpb25zIH0gZnJvbSAnLi4vYXNzZXQtaGFuZGxlcic7XG5pbXBvcnQgdHlwZSB7IERvY2tlciB9IGZyb20gJy4uL2RvY2tlcic7XG5pbXBvcnQgeyByZXBsYWNlQXdzUGxhY2Vob2xkZXJzIH0gZnJvbSAnLi4vcGxhY2Vob2xkZXJzJztcbmltcG9ydCB7IHNoZWxsIH0gZnJvbSAnLi4vc2hlbGwnO1xuXG5pbnRlcmZhY2UgQ29udGFpbmVySW1hZ2VBc3NldEhhbmRsZXJJbml0IHtcbiAgcmVhZG9ubHkgZWNyOiBJRUNSQ2xpZW50O1xuICByZWFkb25seSByZXBvVXJpOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGltYWdlVXJpOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0czogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIENvbnRhaW5lckltYWdlQXNzZXRIYW5kbGVyIGltcGxlbWVudHMgSUFzc2V0SGFuZGxlciB7XG4gIHByaXZhdGUgaW5pdD86IENvbnRhaW5lckltYWdlQXNzZXRIYW5kbGVySW5pdDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdvcmtEaXI6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFzc2V0OiBEb2NrZXJJbWFnZU1hbmlmZXN0RW50cnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0OiBJSGFuZGxlckhvc3QsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBJSGFuZGxlck9wdGlvbnMsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGluaXRPbmNlID0gYXdhaXQgdGhpcy5pbml0T25jZSgpO1xuXG4gICAgaWYgKGluaXRPbmNlLmRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5ob3N0LmFib3J0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkb2NrZXJGb3JCdWlsZGluZyA9IGF3YWl0IHRoaXMuaG9zdC5kb2NrZXJGYWN0b3J5LmZvckJ1aWxkKHtcbiAgICAgIHJlcG9Vcmk6IGluaXRPbmNlLnJlcG9VcmksXG4gICAgICBldmVudEVtaXR0ZXI6IChtOiBzdHJpbmcpID0+IHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuREVCVUcsIG0pLFxuICAgICAgZWNyOiBpbml0T25jZS5lY3IsXG4gICAgICBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb246IHRoaXMub3B0aW9ucy5zdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24sXG4gICAgfSk7XG5cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IENvbnRhaW5lckltYWdlQnVpbGRlcihcbiAgICAgIGRvY2tlckZvckJ1aWxkaW5nLFxuICAgICAgdGhpcy53b3JrRGlyLFxuICAgICAgdGhpcy5hc3NldCxcbiAgICAgIHRoaXMuaG9zdCxcbiAgICApO1xuICAgIGNvbnN0IGxvY2FsVGFnTmFtZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgIGlmIChsb2NhbFRhZ05hbWUgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmhvc3QuYWJvcnRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5ob3N0LmFib3J0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCBkb2NrZXJGb3JCdWlsZGluZy50YWcobG9jYWxUYWdOYW1lLCBpbml0T25jZS5pbWFnZVVyaSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaXNQdWJsaXNoZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGluaXRPbmNlID0gYXdhaXQgdGhpcy5pbml0T25jZSh7IHF1aWV0OiB0cnVlIH0pO1xuICAgICAgcmV0dXJuIGluaXRPbmNlLmRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0cztcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuREVCVUcsIGAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHB1Ymxpc2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaW5pdE9uY2UgPSBhd2FpdCB0aGlzLmluaXRPbmNlKCk7XG5cbiAgICBpZiAoaW5pdE9uY2UuZGVzdGluYXRpb25BbHJlYWR5RXhpc3RzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmhvc3QuYWJvcnRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRvY2tlckZvclB1c2hpbmcgPSBhd2FpdCB0aGlzLmhvc3QuZG9ja2VyRmFjdG9yeS5mb3JFY3JQdXNoKHtcbiAgICAgIHJlcG9Vcmk6IGluaXRPbmNlLnJlcG9VcmksXG4gICAgICBldmVudEVtaXR0ZXI6IHRoaXMuaG9zdC5lbWl0TWVzc2FnZSxcbiAgICAgIGVjcjogaW5pdE9uY2UuZWNyLFxuICAgICAgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uOiB0aGlzLm9wdGlvbnMuc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuaG9zdC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5VUExPQUQsIGBQdXNoICR7aW5pdE9uY2UuaW1hZ2VVcml9YCk7XG4gICAgYXdhaXQgZG9ja2VyRm9yUHVzaGluZy5wdXNoKHtcbiAgICAgIHRhZzogaW5pdE9uY2UuaW1hZ2VVcmksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluaXRPbmNlKFxuICAgIG9wdGlvbnM6IHsgcXVpZXQ/OiBib29sZWFuIH0gPSB7fSxcbiAgKTogUHJvbWlzZTxDb250YWluZXJJbWFnZUFzc2V0SGFuZGxlckluaXQ+IHtcbiAgICBpZiAodGhpcy5pbml0KSB7XG4gICAgICByZXR1cm4gdGhpcy5pbml0O1xuICAgIH1cblxuICAgIGNvbnN0IGRlc3RpbmF0aW9uID0gYXdhaXQgcmVwbGFjZUF3c1BsYWNlaG9sZGVycyh0aGlzLmFzc2V0LmRlc3RpbmF0aW9uLCB0aGlzLmhvc3QuYXdzKTtcbiAgICBjb25zdCBlY3IgPSBhd2FpdCB0aGlzLmhvc3QuYXdzLmVjckNsaWVudCh7XG4gICAgICAuLi5kZXN0aW5hdGlvblRvQ2xpZW50T3B0aW9ucyhkZXN0aW5hdGlvbiksXG4gICAgICBxdWlldDogb3B0aW9ucy5xdWlldCxcbiAgICB9KTtcbiAgICBjb25zdCBhY2NvdW50ID0gYXN5bmMgKCkgPT4gKGF3YWl0IHRoaXMuaG9zdC5hd3MuZGlzY292ZXJDdXJyZW50QWNjb3VudCgpKT8uYWNjb3VudElkO1xuXG4gICAgY29uc3QgcmVwb1VyaSA9IGF3YWl0IHJlcG9zaXRvcnlVcmkoZWNyLCBkZXN0aW5hdGlvbi5yZXBvc2l0b3J5TmFtZSk7XG4gICAgaWYgKCFyZXBvVXJpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBObyBFQ1IgcmVwb3NpdG9yeSBuYW1lZCAnJHtkZXN0aW5hdGlvbi5yZXBvc2l0b3J5TmFtZX0nIGluIGFjY291bnQgJHthd2FpdCBhY2NvdW50KCl9LiBJcyB0aGlzIGFjY291bnQgYm9vdHN0cmFwcGVkP2AsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGltYWdlVXJpID0gYCR7cmVwb1VyaX06JHtkZXN0aW5hdGlvbi5pbWFnZVRhZ31gO1xuXG4gICAgdGhpcy5pbml0ID0ge1xuICAgICAgaW1hZ2VVcmksXG4gICAgICBlY3IsXG4gICAgICByZXBvVXJpLFxuICAgICAgZGVzdGluYXRpb25BbHJlYWR5RXhpc3RzOiBhd2FpdCB0aGlzLmRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0cyhlY3IsIGRlc3RpbmF0aW9uLCBpbWFnZVVyaSksXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmluaXQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgd2hldGhlciB0aGUgaW1hZ2UgYWxyZWFkeSBleGlzdHMgaW4gdGhlIEVDUiByZXBvXG4gICAqXG4gICAqIFVzZSB0aGUgZmllbGRzIGZyb20gdGhlIGRlc3RpbmF0aW9uIHRvIGRvIHRoZSBhY3R1YWwgY2hlY2suIFRoZSBpbWFnZVVyaVxuICAgKiBzaG91bGQgY29ycmVzcG9uZCB0byB0aGF0LCBidXQgaXMgb25seSB1c2VkIHRvIHByaW50IERvY2tlciBpbWFnZSBsb2NhdGlvblxuICAgKiBmb3IgdXNlciBiZW5lZml0ICh0aGUgZm9ybWF0IGlzIHNsaWdodGx5IGRpZmZlcmVudCkuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0cyhcbiAgICBlY3I6IElFQ1JDbGllbnQsXG4gICAgZGVzdGluYXRpb246IERvY2tlckltYWdlRGVzdGluYXRpb24sXG4gICAgaW1hZ2VVcmk6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5DSEVDSywgYENoZWNrICR7aW1hZ2VVcml9YCk7XG4gICAgaWYgKGF3YWl0IGltYWdlRXhpc3RzKGVjciwgZGVzdGluYXRpb24ucmVwb3NpdG9yeU5hbWUsIGRlc3RpbmF0aW9uLmltYWdlVGFnKSkge1xuICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5GT1VORCwgYEZvdW5kICR7aW1hZ2VVcml9YCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuY2xhc3MgQ29udGFpbmVySW1hZ2VCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2NrZXI6IERvY2tlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdvcmtEaXI6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFzc2V0OiBEb2NrZXJJbWFnZU1hbmlmZXN0RW50cnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0OiBJSGFuZGxlckhvc3QsXG4gICkge1xuICB9XG5cbiAgYXN5bmMgYnVpbGQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hc3NldC5zb3VyY2UuZXhlY3V0YWJsZVxuICAgICAgPyB0aGlzLmJ1aWxkRXh0ZXJuYWxBc3NldCh0aGlzLmFzc2V0LnNvdXJjZS5leGVjdXRhYmxlKVxuICAgICAgOiB0aGlzLmJ1aWxkRGlyZWN0b3J5QXNzZXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIChsb2NhbCkgRG9ja2VyIGFzc2V0IGZyb20gYSBkaXJlY3Rvcnkgd2l0aCBhIERvY2tlcmZpbGVcbiAgICpcbiAgICogVGFncyB1bmRlciBhIGRldGVybWluaXN0aWMsIHVuaXF1ZSwgbG9jYWwgaWRlbnRpZmllciB3aWNoIHdpbGwgc2tpcFxuICAgKiB0aGUgYnVpbGQgaWYgaXQgYWxyZWFkeSBleGlzdHMuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGJ1aWxkRGlyZWN0b3J5QXNzZXQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBsb2NhbFRhZ05hbWUgPSBgY2RrYXNzZXQtJHt0aGlzLmFzc2V0LmlkLmFzc2V0SWQudG9Mb3dlckNhc2UoKX1gO1xuXG4gICAgaWYgKCEoYXdhaXQgdGhpcy5pc0ltYWdlQ2FjaGVkKGxvY2FsVGFnTmFtZSkpKSB7XG4gICAgICBpZiAodGhpcy5ob3N0LmFib3J0ZWQpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGhpcy5idWlsZEltYWdlKGxvY2FsVGFnTmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxvY2FsVGFnTmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIChsb2NhbCkgRG9ja2VyIGFzc2V0IGJ5IHJ1bm5pbmcgYW4gZXh0ZXJuYWwgY29tbWFuZFxuICAgKlxuICAgKiBFeHRlcm5hbCBjb21tYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWR1cGxpY2F0aW5nIHRoZSBidWlsZCBpZiBwb3NzaWJsZSxcbiAgICogYW5kIGlzIGV4cGVjdGVkIHRvIHJldHVybiB0aGUgZ2VuZXJhdGVkIGltYWdlIGlkZW50aWZpZXIgb24gc3Rkb3V0LlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBidWlsZEV4dGVybmFsQXNzZXQoXG4gICAgZXhlY3V0YWJsZTogc3RyaW5nW10sXG4gICAgY3dkPzogc3RyaW5nLFxuICApOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGFzc2V0UGF0aCA9IGN3ZCA/PyB0aGlzLndvcmtEaXI7XG5cbiAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLkJVSUxELCBgQnVpbGRpbmcgRG9ja2VyIGltYWdlIHVzaW5nIGNvbW1hbmQgJyR7ZXhlY3V0YWJsZX0nYCk7XG4gICAgaWYgKHRoaXMuaG9zdC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHNoZWxsRXZlbnRQdWJsaXNoZXIgPSBzaGVsbEV2ZW50UHVibGlzaGVyRnJvbUV2ZW50RW1pdHRlcih0aGlzLmhvc3QuZW1pdE1lc3NhZ2UpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIGF3YWl0IHNoZWxsKGV4ZWN1dGFibGUsIHtcbiAgICAgICAgY3dkOiBhc3NldFBhdGgsXG4gICAgICAgIHNoZWxsRXZlbnRQdWJsaXNoZXIsXG4gICAgICAgIHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbjogJ2lnbm9yZScsXG4gICAgICB9KVxuICAgICkudHJpbSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBidWlsZEltYWdlKGxvY2FsVGFnTmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5hc3NldC5zb3VyY2U7XG4gICAgaWYgKCFzb3VyY2UuZGlyZWN0b3J5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAnZGlyZWN0b3J5JyBpcyBleHBlY3RlZCBpbiB0aGUgRG9ja2VySW1hZ2UgYXNzZXQgc291cmNlLCBnb3Q6ICR7SlNPTi5zdHJpbmdpZnkoc291cmNlKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGgucmVzb2x2ZSh0aGlzLndvcmtEaXIsIHNvdXJjZS5kaXJlY3RvcnkpO1xuICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQlVJTEQsIGBCdWlsZGluZyBEb2NrZXIgaW1hZ2UgYXQgJHtmdWxsUGF0aH1gKTtcblxuICAgIGF3YWl0IHRoaXMuZG9ja2VyLmJ1aWxkKHtcbiAgICAgIGRpcmVjdG9yeTogZnVsbFBhdGgsXG4gICAgICB0YWc6IGxvY2FsVGFnTmFtZSxcbiAgICAgIGJ1aWxkQXJnczogc291cmNlLmRvY2tlckJ1aWxkQXJncyxcbiAgICAgIGJ1aWxkU2VjcmV0czogc291cmNlLmRvY2tlckJ1aWxkU2VjcmV0cyxcbiAgICAgIGJ1aWxkU3NoOiBzb3VyY2UuZG9ja2VyQnVpbGRTc2gsXG4gICAgICB0YXJnZXQ6IHNvdXJjZS5kb2NrZXJCdWlsZFRhcmdldCxcbiAgICAgIGZpbGU6IHNvdXJjZS5kb2NrZXJGaWxlLFxuICAgICAgbmV0d29ya01vZGU6IHNvdXJjZS5uZXR3b3JrTW9kZSxcbiAgICAgIHBsYXRmb3JtOiBzb3VyY2UucGxhdGZvcm0sXG4gICAgICBvdXRwdXRzOiBzb3VyY2UuZG9ja2VyT3V0cHV0cyxcbiAgICAgIGNhY2hlRnJvbTogc291cmNlLmNhY2hlRnJvbSxcbiAgICAgIGNhY2hlVG86IHNvdXJjZS5jYWNoZVRvLFxuICAgICAgY2FjaGVEaXNhYmxlZDogc291cmNlLmNhY2hlRGlzYWJsZWQsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGlzSW1hZ2VDYWNoZWQobG9jYWxUYWdOYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoYXdhaXQgdGhpcy5kb2NrZXIuZXhpc3RzKGxvY2FsVGFnTmFtZSkpIHtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQ0FDSEVELCBgQ2FjaGVkICR7bG9jYWxUYWdOYW1lfWApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGltYWdlRXhpc3RzKGVjcjogSUVDUkNsaWVudCwgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgaW1hZ2VUYWc6IHN0cmluZykge1xuICB0cnkge1xuICAgIGF3YWl0IGVjci5kZXNjcmliZUltYWdlcyh7XG4gICAgICByZXBvc2l0b3J5TmFtZSxcbiAgICAgIGltYWdlSWRzOiBbeyBpbWFnZVRhZyB9XSxcbiAgICB9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgaWYgKGUubmFtZSAhPT0gJ0ltYWdlTm90Rm91bmRFeGNlcHRpb24nKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIFVSSSBmb3IgdGhlIHJlcG9zaXRvcnkgd2l0aCB0aGUgZ2l2ZW4gbmFtZVxuICpcbiAqIFJldHVybnMgdW5kZWZpbmVkIGlmIHRoZSByZXBvc2l0b3J5IGRvZXMgbm90IGV4aXN0LlxuICovXG5hc3luYyBmdW5jdGlvbiByZXBvc2l0b3J5VXJpKGVjcjogSUVDUkNsaWVudCwgcmVwb3NpdG9yeU5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBlY3IuZGVzY3JpYmVSZXBvc2l0b3JpZXMoe1xuICAgICAgcmVwb3NpdG9yeU5hbWVzOiBbcmVwb3NpdG9yeU5hbWVdLFxuICAgIH0pO1xuICAgIHJldHVybiAocmVzcG9uc2UucmVwb3NpdG9yaWVzIHx8IFtdKVswXT8ucmVwb3NpdG9yeVVyaTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgaWYgKGUubmFtZSAhPT0gJ1JlcG9zaXRvcnlOb3RGb3VuZEV4Y2VwdGlvbicpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
- import { FileManifestEntry } from '../../asset-manifest';
2
- import { IAssetHandler, IHandlerHost, type PublishOptions } from '../asset-handler';
1
+ import type { FileManifestEntry } from '../../asset-manifest';
2
+ import type { IAssetHandler, IHandlerHost, PublishOptions } from '../asset-handler';
3
3
  export declare class FileAssetHandler implements IAssetHandler {
4
4
  private readonly workDir;
5
5
  private readonly asset;
@@ -286,4 +286,4 @@ async function cached(cache, key, factory) {
286
286
  cache.set(key, fresh);
287
287
  return fresh;
288
288
  }
289
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQkFBc0Q7QUFDdEQsNkJBQTZCO0FBQzdCLDBFQUFnRjtBQUNoRiw2QkFBNkI7QUFDN0IscURBQThEO0FBSTlELDZDQUFnRjtBQUNoRix3Q0FBMEM7QUFFMUMsMENBQXlDO0FBQ3pDLGtEQUF5RDtBQUN6RCxvQ0FBaUM7QUFFakM7Ozs7R0FJRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0FBRS9CLE1BQWEsZ0JBQWdCO0lBRzNCLFlBQ21CLE9BQWUsRUFDZixLQUF3QixFQUN4QixJQUFrQjtRQUZsQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBYztRQUVuQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSztJQUNsQixDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVc7UUFDdEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFBLHFDQUFzQixFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEYsTUFBTSxLQUFLLEdBQUcsUUFBUSxXQUFXLENBQUMsVUFBVSxJQUFJLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4RSxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFDdEMsR0FBRyxJQUFBLDJDQUEwQixFQUFDLFdBQVcsQ0FBQztnQkFDMUMsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFD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QU0sRUFBRSxPQUE2QjtJQUNqRixJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNuQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlYWRTdHJlYW0sIHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEZpbGVBc3NldFBhY2thZ2luZywgRmlsZVNvdXJjZSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgKiBhcyBtaW1lIGZyb20gJ21pbWUnO1xuaW1wb3J0IHsgZGVzdGluYXRpb25Ub0NsaWVudE9wdGlvbnMgfSBmcm9tICcuL2NsaWVudC1vcHRpb25zJztcbmltcG9ydCB7IEZpbGVNYW5pZmVzdEVudHJ5IH0gZnJvbSAnLi4vLi4vYXNzZXQtbWFuaWZlc3QnO1xuaW1wb3J0IHsgSVMzQ2xpZW50IH0gZnJvbSAnLi4vLi4vYXdzJztcbmltcG9ydCB7IFB1dE9iamVjdENvbW1hbmRJbnB1dCB9IGZyb20gJy4uLy4uL2F3cy10eXBlcyc7XG5pbXBvcnQgeyBFdmVudFR5cGUsIHNoZWxsRXZlbnRQdWJsaXNoZXJGcm9tRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vcHJvZ3Jlc3MnO1xuaW1wb3J0IHsgemlwRGlyZWN0b3J5IH0gZnJvbSAnLi4vYXJjaGl2ZSc7XG5pbXBvcnQgeyBJQXNzZXRIYW5kbGVyLCBJSGFuZGxlckhvc3QsIHR5cGUgUHVibGlzaE9wdGlvbnMgfSBmcm9tICcuLi9hc3NldC1oYW5kbGVyJztcbmltcG9ydCB7IHBhdGhFeGlzdHMgfSBmcm9tICcuLi9mcy1leHRyYSc7XG5pbXBvcnQgeyByZXBsYWNlQXdzUGxhY2Vob2xkZXJzIH0gZnJvbSAnLi4vcGxhY2Vob2xkZXJzJztcbmltcG9ydCB7IHNoZWxsIH0gZnJvbSAnLi4vc2hlbGwnO1xuXG4vKipcbiAqIFRoZSBzaXplIG9mIGFuIGVtcHR5IHppcCBmaWxlIGlzIDIyIGJ5dGVzXG4gKlxuICogUmVmOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9aSVBfKGZpbGVfZm9ybWF0KVxuICovXG5jb25zdCBFTVBUWV9aSVBfRklMRV9TSVpFID0gMjI7XG5cbmV4cG9ydCBjbGFzcyBGaWxlQXNzZXRIYW5kbGVyIGltcGxlbWVudHMgSUFzc2V0SGFuZGxlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZUNhY2hlUm9vdDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd29ya0Rpcjogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXNzZXQ6IEZpbGVNYW5pZmVzdEVudHJ5LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdDogSUhhbmRsZXJIb3N0LFxuICApIHtcbiAgICB0aGlzLmZpbGVDYWNoZVJvb3QgPSBwYXRoLmpvaW4od29ya0RpciwgJy5jYWNoZScpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8dm9pZD4ge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGlzUHVibGlzaGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGRlc3RpbmF0aW9uID0gYXdhaXQgcmVwbGFjZUF3c1BsYWNlaG9sZGVycyh0aGlzLmFzc2V0LmRlc3RpbmF0aW9uLCB0aGlzLmhvc3QuYXdzKTtcbiAgICBjb25zdCBzM1VybCA9IGBzMzovLyR7ZGVzdGluYXRpb24uYnVja2V0TmFtZX0vJHtkZXN0aW5hdGlvbi5vYmplY3RLZXl9YDtcbiAgICB0cnkge1xuICAgICAgY29uc3QgczMgPSBhd2FpdCB0aGlzLmhvc3QuYXdzLnMzQ2xpZW50KHtcbiAgICAgICAgLi4uZGVzdGluYXRpb25Ub0NsaWVudE9wdGlvbnMoZGVzdGluYXRpb24pLFxuICAgICAgICBxdWlldDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5DSEVDSywgYENoZWNrICR7czNVcmx9YCk7XG5cbiAgICAgIGlmIChhd2FpdCBvYmplY3RFeGlzdHMoczMsIGRlc3RpbmF0aW9uLmJ1Y2tldE5hbWUsIGRlc3RpbmF0aW9uLm9iamVjdEtleSkpIHtcbiAgICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5GT1VORCwgYEZvdW5kICR7czNVcmx9YCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5ERUJVRywgYCR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcHVibGlzaChvcHRpb25zOiBQdWJsaXNoT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZGVzdGluYXRpb24gPSBhd2FpdCByZXBsYWNlQXdzUGxhY2Vob2xkZXJzKHRoaXMuYXNzZXQuZGVzdGluYXRpb24sIHRoaXMuaG9zdC5hd3MpO1xuICAgIGNvbnN0IHMzVXJsID0gYHMzOi8vJHtkZXN0aW5hdGlvbi5idWNrZXROYW1lfS8ke2Rlc3RpbmF0aW9uLm9iamVjdEtleX1gO1xuXG4gICAgY29uc3QgY2xpZW50T3B0aW9ucyA9IGRlc3RpbmF0aW9uVG9DbGllbnRPcHRpb25zKGRlc3RpbmF0aW9uKTtcbiAgICBjb25zdCBzMyA9IGF3YWl0IHRoaXMuaG9zdC5hd3MuczNDbGllbnQoY2xpZW50T3B0aW9ucyk7XG4gICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5DSEVDSywgYENoZWNrICR7czNVcmx9YCk7XG5cbiAgICBjb25zdCBidWNrZXRJbmZvID0gQnVja2V0SW5mb3JtYXRpb24uZm9yKHRoaXMuaG9zdCk7XG5cbiAgICAvLyBBIHRodW5rIGZvciBkZXNjcmliaW5nIHRoZSBjdXJyZW50IGFjY291bnQuIFVzZWQgd2hlbiB3ZSBuZWVkIHRvIGZvcm1hdCBhbiBlcnJvclxuICAgIC8vIG1lc3NhZ2UsIG5vdCBpbiB0aGUgc3VjY2VzcyBjYXNlLlxuICAgIGNvbnN0IGFjY291bnQgPSBhc3luYyAoKSA9PlxuICAgICAgKGF3YWl0IHRoaXMuaG9zdC5hd3MuZGlzY292ZXJUYXJnZXRBY2NvdW50KGNsaWVudE9wdGlvbnMpKS5hY2NvdW50SWQ7XG5cbiAgICBjb25zdCBhbGxvd0Nyb3NzQWNjb3VudCA9IG9wdGlvbnMuYWxsb3dDcm9zc0FjY291bnQgPz8gdHJ1ZTtcbiAgICBzd2l0Y2ggKFxuICAgICAgYXdhaXQgYnVja2V0SW5mby5idWNrZXRPd25lcnNoaXAoXG4gICAgICAgIHMzLFxuICAgICAgICBkZXN0aW5hdGlvbi5idWNrZXROYW1lLFxuICAgICAgICBhbGxvd0Nyb3NzQWNjb3VudCA/IHVuZGVmaW5lZCA6IGF3YWl0IGFjY291bnQoKSxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIGNhc2UgQnVja2V0T3duZXJzaGlwLk1JTkU6XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBCdWNrZXRPd25lcnNoaXAuRE9FU19OT1RfRVhJU1Q6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgTm8gYnVja2V0IG5hbWVkICcke2Rlc3RpbmF0aW9uLmJ1Y2tldE5hbWV9Jy4gSXMgYWNjb3VudCAke2F3YWl0IGFjY291bnQoKX0gYm9vdHN0cmFwcGVkP2AsXG4gICAgICAgICk7XG4gICAgICBjYXNlIEJ1Y2tldE93bmVyc2hpcC5OT19BQ0NFU1M6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQnVja2V0IG5hbWVkICcke2Rlc3RpbmF0aW9uLmJ1Y2tldE5hbWV9JyBleGlzdHMsIGJ1dCB3ZSBkb250IGhhdmUgYWNjZXNzIHRvIGl0LmAsXG4gICAgICAgICk7XG4gICAgICBjYXNlIEJ1Y2tldE93bmVyc2hpcC5TT01FT05FX0VMU0VTX0FORF9IQVZFX0FDQ0VTUzpcbiAgICAgICAgaWYgKCFhbGxvd0Nyb3NzQWNjb3VudCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGDinZfinZcgVU5FWFBFQ1RFRCBCVUNLRVQgT1dORVIgREVURUNURUQg4p2X4p2XXG5cbiAgICAgICAgICAgICAgV2UndmUgZGV0ZWN0ZWQgdGhhdCB0aGUgUzMgYnVja2V0ICR7ZGVzdGluYXRpb24uYnVja2V0TmFtZX0gd2FzXG4gICAgICAgICAgICAgIG9yaWdpbmFsbHkgY3JlYXRlZCBpbiBhY2NvdW50ICR7YXdhaXQgYWNjb3VudCgpfSBhcyBwYXJ0IG9mIHRoZSBDbG91ZEZvcm1hdGlvbiBzdGFjayBDREtUb29sa2l0LFxuICAgICAgICAgICAgICBidXQgbm93IHJlc2lkZXMgaW4gYSBkaWZmZXJlbnQgQVdTIGFjY291bnQuIFRvIHByZXZlbnQgY3Jvc3MtYWNjb3VudCBhc3NldCBidWNrZXQgYWNjZXNzIG9mIHlvdXJcbiAgICAgICAgICAgICAgZGVwbG95bWVudHMsIENESyB3aWxsIHN0b3Agbm93LlxuXG4gICAgICAgICAgICAgIElmIHRoaXMgc2l0dWF0aW9uIGlzIGludGVudGlvbmFsIGFuZCB5b3Ugb3duIHRoZSBBV1MgYWNjb3VudCB0aGF0IHRoZSBidWNrZXQgaGFzIG1vdmVkIHRvLCByZW1vdmUgdGhlXG4gICAgICAgICAgICAgIHJlc291cmNlIG5hbWVkIFN0YWdpbmdCdWNrZXQgZnJvbSB0aGUgdGVtcGxhdGUgb2YgQ2xvdWRGb3JtYXRpb24gc3RhY2sgQ0RLVG9vbGtpdCBhbmQgdHJ5IGFnYWluLlxuXG4gICAgICAgICAgICAgIElmIHRoaXMgc2l0dWF0aW9uIGlzIG5vdCBpbnRlbnRpb25hbCwgd2Ugc3Ryb25nbHkgcmVjb21tZW5kIGF1ZGl0aW5nIHlvdXIgYWNjb3VudCB0byBtYWtlIHN1cmUgYWxsXG4gICAgICAgICAgICAgIHJlc291cmNlcyBhcmUgY29uZmlndXJlZCB0aGUgd2F5IHlvdSBleHBlY3QgdGhlbSBbMV0uIEZvciBxdWVzdGlvbnMgb3IgY29uY2VybnMsIHBsZWFzZSBjb250YWN0XG4gICAgICAgICAgICAgIEFXUyBTdXBwb3J0IFsyXS5cblxuICAgICAgICAgICAgICBbMV0gaHR0cHM6Ly9yZXBvc3QuYXdzL2tub3dsZWRnZS1jZW50ZXIvcG90ZW50aWFsLWFjY291bnQtY29tcHJvbWlzZVxuXG4gICAgICAgICAgICAgIFsyXSBodHRwczovL2F3cy5hbWF6b24uY29tL3N1cHBvcnRgLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKCFvcHRpb25zLmZvcmNlICYmIGF3YWl0IG9iamVjdEV4aXN0cyhzMywgZGVzdGluYXRpb24uYnVja2V0TmFtZSwgZGVzdGluYXRpb24ub2JqZWN0S2V5KSkge1xuICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5GT1VORCwgYEZvdW5kICR7czNVcmx9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWRlbnRpZnkgdGhlIHRoZSBidWNrZXQgZW5jcnlwdGlvbiB0eXBlIHRvIHNldCB0aGUgaGVhZGVyIG9uIHVwbG9hZFxuICAgIC8vIHJlcXVpcmVkIGZvciBTQ1AgcnVsZXMgZGVueWluZyB1cGxvYWRzIHdpdGhvdXQgZW5jcnlwdGlvbiBoZWFkZXJcbiAgICBsZXQgcGFyYW1zRW5jcnlwdGlvbjogeyBbaW5kZXg6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgY29uc3QgZW5jcnlwdGlvbjIgPSBhd2FpdCBidWNrZXRJbmZvLmJ1Y2tldEVuY3J5cHRpb24oczMsIGRlc3RpbmF0aW9uLmJ1Y2tldE5hbWUpO1xuICAgIHN3aXRjaCAoZW5jcnlwdGlvbjIudHlwZSkge1xuICAgICAgY2FzZSAnbm9fZW5jcnlwdGlvbic6XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYWVzMjU2JzpcbiAgICAgICAgcGFyYW1zRW5jcnlwdGlvbiA9IHsgU2VydmVyU2lkZUVuY3J5cHRpb246ICdBRVMyNTYnIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAna21zJzpcbiAgICAgICAgLy8gV2UgbXVzdCBpbmNsdWRlIHRoZSBrZXkgSUQgb3RoZXJ3aXNlIFMzIHdpbGwgZW5jcnlwdCB3aXRoIHRoZSBkZWZhdWx0IGtleVxuICAgICAgICBwYXJhbXNFbmNyeXB0aW9uID0ge1xuICAgICAgICAgIFNlcnZlclNpZGVFbmNyeXB0aW9uOiAnYXdzOmttcycsXG4gICAgICAgICAgU1NFS01TS2V5SWQ6IGVuY3J5cHRpb24yLmttc0tleUlkLFxuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RvZXNfbm90X2V4aXN0JzpcbiAgICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKFxuICAgICAgICAgIEV2ZW50VHlwZS5ERUJVRyxcbiAgICAgICAgICBgTm8gYnVja2V0IG5hbWVkICcke2Rlc3RpbmF0aW9uLmJ1Y2tldE5hbWV9Jy4gSXMgYWNjb3VudCAke2F3YWl0IGFjY291bnQoKX0gYm9vdHN0cmFwcGVkP2AsXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYWNjZXNzX2RlbmllZCc6XG4gICAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShcbiAgICAgICAgICBFdmVudFR5cGUuREVCVUcsXG4gICAgICAgICAgYENvdWxkIG5vdCByZWFkIGVuY3J5cHRpb24gc2V0dGluZ3Mgb2YgYnVja2V0ICcke2Rlc3RpbmF0aW9uLmJ1Y2tldE5hbWV9JzogdXBsb2FkaW5nIHdpdGggZGVmYXVsdCBzZXR0aW5ncyAoXCJjZGsgYm9vdHN0cmFwXCIgdG8gdmVyc2lvbiA5IGlmIHlvdXIgb3JnYW5pemF0aW9uJ3MgcG9saWNpZXMgcHJldmVudCBhIHN1Y2Nlc3NmdWwgdXBsb2FkIG9yIHRvIGdldCByaWQgb2YgdGhpcyBtZXNzYWdlKS5gLFxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5ob3N0LmFib3J0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcHVibGlzaEZpbGUgPSB0aGlzLmFzc2V0LnNvdXJjZS5leGVjdXRhYmxlXG4gICAgICA/IGF3YWl0IHRoaXMuZXh0ZXJuYWxQYWNrYWdlRmlsZSh0aGlzLmFzc2V0LnNvdXJjZS5leGVjdXRhYmxlKVxuICAgICAgOiBhd2FpdCB0aGlzLnBhY2thZ2VGaWxlKHRoaXMuYXNzZXQuc291cmNlKTtcblxuICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuVVBMT0FELCBgVXBsb2FkICR7czNVcmx9YCk7XG5cbiAgICBjb25zdCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIEJ1Y2tldDogZGVzdGluYXRpb24uYnVja2V0TmFtZSxcbiAgICAgICAgS2V5OiBkZXN0aW5hdGlvbi5vYmplY3RLZXksXG4gICAgICAgIEJvZHk6IGNyZWF0ZVJlYWRTdHJlYW0ocHVibGlzaEZpbGUucGFja2FnZWRQYXRoKSxcbiAgICAgICAgQ29udGVudFR5cGU6IHB1Ymxpc2hGaWxlLmNvbnRlbnRUeXBlLFxuICAgICAgICBDaGVja3N1bUFsZ29yaXRobTogJ1NIQTI1NicsXG4gICAgICB9IHNhdGlzZmllcyBQdXRPYmplY3RDb21tYW5kSW5wdXQsXG4gICAgICBwYXJhbXNFbmNyeXB0aW9uLFxuICAgICk7XG5cbiAgICBhd2FpdCBzMy51cGxvYWQocGFyYW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcGFja2FnZUZpbGUoc291cmNlOiBGaWxlU291cmNlKTogUHJvbWlzZTxQYWNrYWdlZEZpbGVBc3NldD4ge1xuICAgIGlmICghc291cmNlLnBhdGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCdwYXRoJyBpcyBleHBlY3RlZCBpbiB0aGUgRmlsZSBhc3NldCBzb3VyY2UsIGdvdDogJHtKU09OLnN0cmluZ2lmeShzb3VyY2UpfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5yZXNvbHZlKHRoaXMud29ya0Rpciwgc291cmNlLnBhdGgpO1xuXG4gICAgaWYgKHNvdXJjZS5wYWNrYWdpbmcgPT09IEZpbGVBc3NldFBhY2thZ2luZy5aSVBfRElSRUNUT1JZKSB7XG4gICAgICBjb25zdCBjb250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi96aXAnO1xuXG4gICAgICBhd2FpdCBmcy5ta2Rpcih0aGlzLmZpbGVDYWNoZVJvb3QsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgY29uc3QgcGFja2FnZWRQYXRoID0gcGF0aC5qb2luKHRoaXMuZmlsZUNhY2hlUm9vdCwgYCR7dGhpcy5hc3NldC5pZC5hc3NldElkfS56aXBgKTtcblxuICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMocGFja2FnZWRQYXRoKSkge1xuICAgICAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLkNBQ0hFRCwgYEZyb20gY2FjaGUgJHtwYWNrYWdlZFBhdGh9YCk7XG4gICAgICAgIHJldHVybiB7IHBhY2thZ2VkUGF0aCwgY29udGVudFR5cGUgfTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5CVUlMRCwgYFppcCAke2Z1bGxQYXRofSAtPiAke3BhY2thZ2VkUGF0aH1gKTtcbiAgICAgIGF3YWl0IHppcERpcmVjdG9yeShmdWxsUGF0aCwgcGFja2FnZWRQYXRoLCAobSkgPT4gdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5ERUJVRywgbSkpO1xuICAgICAgcmV0dXJuIHsgcGFja2FnZWRQYXRoLCBjb250ZW50VHlwZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjb250ZW50VHlwZSA9IG1pbWUuZ2V0VHlwZShmdWxsUGF0aCkgPz8gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7XG4gICAgICByZXR1cm4geyBwYWNrYWdlZFBhdGg6IGZ1bGxQYXRoLCBjb250ZW50VHlwZSB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXh0ZXJuYWxQYWNrYWdlRmlsZShleGVjdXRhYmxlOiBzdHJpbmdbXSk6IFByb21pc2U8UGFja2FnZWRGaWxlQXNzZXQ+IHtcbiAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLkJVSUxELCBgQnVpbGRpbmcgYXNzZXQgc291cmNlIHVzaW5nIGNvbW1hbmQ6ICcke2V4ZWN1dGFibGV9J2ApO1xuXG4gICAgY29uc3Qgc2hlbGxFdmVudFB1Ymxpc2hlciA9IHNoZWxsRXZlbnRQdWJsaXNoZXJGcm9tRXZlbnRFbWl0dGVyKHRoaXMuaG9zdC5lbWl0TWVzc2FnZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGFja2FnZWRQYXRoOiAoXG4gICAgICAgIGF3YWl0IHNoZWxsKGV4ZWN1dGFibGUsIHsgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uOiAnaWdub3JlJywgc2hlbGxFdmVudFB1Ymxpc2hlciB9KVxuICAgICAgKS50cmltKCksXG4gICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL3ppcCcsXG4gICAgfTtcbiAgfVxufVxuXG5lbnVtIEJ1Y2tldE93bmVyc2hpcCB7XG4gIERPRVNfTk9UX0VYSVNULFxuICBNSU5FLFxuICBOT19BQ0NFU1MsXG4gIFNPTUVPTkVfRUxTRVNfQU5EX0hBVkVfQUNDRVNTLFxufVxuXG50eXBlIEJ1Y2tldEVuY3J5cHRpb24gPVxuICB8IHsgcmVhZG9ubHkgdHlwZTogJ25vX2VuY3J5cHRpb24nIH1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdhZXMyNTYnIH1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdrbXMnOyByZWFkb25seSBrbXNLZXlJZD86IHN0cmluZyB9XG4gIHwgeyByZWFkb25seSB0eXBlOiAnYWNjZXNzX2RlbmllZCcgfVxuICB8IHsgcmVhZG9ubHkgdHlwZTogJ2RvZXNfbm90X2V4aXN0JyB9O1xuXG5hc3luYyBmdW5jdGlvbiBvYmplY3RFeGlzdHMoczM6IElTM0NsaWVudCwgYnVja2V0OiBzdHJpbmcsIGtleTogc3RyaW5nKSB7XG4gIC8qXG4gICAqIFRoZSBvYmplY3QgZXhpc3RlbmNlIGNoZWNrIGhlcmUgcmVmcmFpbnMgZnJvbSB1c2luZyB0aGUgYGhlYWRPYmplY3RgIG9wZXJhdGlvbiBiZWNhdXNlIHRoaXNcbiAgICogd291bGQgY3JlYXRlIGEgbmVnYXRpdmUgY2FjaGUgZW50cnksIG1ha2luZyBHRVQtYWZ0ZXItUFVUIGV2ZW50dWFsbHkgY29uc2lzdGVudC4gVGhpcyBoYXMgYmVlblxuICAgKiBvYnNlcnZlZCB0byByZXN1bHQgaW4gQ2xvdWRGb3JtYXRpb24gaXNzdWluZyBcIlZhbGlkYXRpb25FcnJvcjogUzMgZXJyb3I6IEFjY2VzcyBEZW5pZWRcIiwgZm9yXG4gICAqIGV4YW1wbGUgaW4gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy82NDMwLlxuICAgKlxuICAgKiBUbyBwcmV2ZW50IHRoaXMsIHdlIGFyZSBpbnN0ZWFkIHVzaW5nIHRoZSBsaXN0T2JqZWN0c1YyIGNhbGwsIHVzaW5nIHRoZSBsb29rZWQgdXAga2V5IGFzIHRoZVxuICAgKiBwcmVmaXgsIGFuZCBsaW1pdGluZyByZXN1bHRzIHRvIDEuIFNpbmNlIHRoZSBsaXN0IG9wZXJhdGlvbiByZXR1cm5zIGtleXMgb3JkZXJlZCBieSBiaW5hcnlcbiAgICogVVRGLTggcmVwcmVzZW50YXRpb24sIHRoZSBrZXkgd2UgYXJlIGxvb2tpbmcgZm9yIGlzIGd1YXJhbnRlZWQgdG8gYWx3YXlzIGJlIHRoZSBmaXJzdCBtYXRjaFxuICAgKiByZXR1cm5lZCBpZiBpdCBleGlzdHMuXG4gICAqXG4gICAqIElmIHRoZSBmaWxlIGlzIHRvbyBzbWFsbCwgd2UgZGlzY291bnQgaXQgYXMgYSBjYWNoZSBoaXQuIFRoZXJlIGlzIGFuIGlzc3VlXG4gICAqIHNvbWV3aGVyZSB0aGF0IHNvbWV0aW1lcyBwcm9kdWNlcyBlbXB0eSB6aXAgZmlsZXMsIGFuZCB3ZSB3b3VsZCBvdGhlcndpc2VcbiAgICogbmV2ZXIgcmV0cnkgYnVpbGRpbmcgdGhvc2UgYXNzZXRzIHdpdGhvdXQgdXNlcnMgaGF2aW5nIHRvIG1hbnVhbGx5IGNsZWFyXG4gICAqIHRoZWlyIGJ1Y2tldCwgd2hpY2ggaXMgYSBiYWQgZXhwZXJpZW5jZS5cbiAgICovXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgczMubGlzdE9iamVjdHNWMih7XG4gICAgQnVja2V0OiBidWNrZXQsXG4gICAgUHJlZml4OiBrZXksXG4gICAgTWF4S2V5czogMSxcbiAgfSk7XG4gIHJldHVybiAoXG4gICAgcmVzcG9uc2UuQ29udGVudHMgIT0gbnVsbCAmJlxuICAgIHJlc3BvbnNlLkNvbnRlbnRzLnNvbWUoXG4gICAgICAob2JqZWN0KSA9PiBvYmplY3QuS2V5ID09PSBrZXkgJiYgKG9iamVjdC5TaXplID09IG51bGwgfHwgb2JqZWN0LlNpemUgPiBFTVBUWV9aSVBfRklMRV9TSVpFKSxcbiAgICApXG4gICk7XG59XG5cbi8qKlxuICogQSBwYWNrYWdlZCBhc3NldCB3aGljaCBjYW4gYmUgdXBsb2FkZWQgKGVpdGhlciBhIHNpbmdsZSBmaWxlIG9yIGRpcmVjdG9yeSlcbiAqL1xuaW50ZXJmYWNlIFBhY2thZ2VkRmlsZUFzc2V0IHtcbiAgLyoqXG4gICAqIFBhdGggb2YgdGhlIGZpbGUgb3IgZGlyZWN0b3J5XG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlZFBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogQ29udGVudCB0eXBlIHRvIGJlIGFkZGVkIGluIHRoZSBTMyB1cGxvYWQgYWN0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gY29udGVudCB0eXBlXG4gICAqL1xuICByZWFkb25seSBjb250ZW50VHlwZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDYWNoZSBmb3IgYnVja2V0IGluZm9ybWF0aW9uLCBzbyB3ZSBkb24ndCBoYXZlIHRvIGtlZXAgZG9pbmcgdGhlIHNhbWUgY2FsbHMgYWdhaW4gYW5kIGFnYWluXG4gKlxuICogV2Ugc2NvcGUgdGhlIGxpZmV0aW1lIG9mIHRoZSBjYWNoZSB0byB0aGUgbGlmZXRpbWUgb2YgdGhlIGhvc3QsIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBkb1xuICogYW55dGhpbmcgc3BlY2lhbCBmb3IgdGVzdHMgYW5kIHlldCB0aGUgY2FjaGUgd2lsbCBsaXZlIGZvciB0aGUgZW50aXJlIGxpZmV0aW1lIG9mIHRoZSBhc3NldFxuICogdXBsb2FkIHNlc3Npb24gd2hlbiB1c2VkIGJ5IHRoZSBDTEkuXG4gKi9cbmNsYXNzIEJ1Y2tldEluZm9ybWF0aW9uIHtcbiAgcHVibGljIHN0YXRpYyBmb3IoaG9zdDogSUhhbmRsZXJIb3N0KSB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBCdWNrZXRJbmZvcm1hdGlvbi5jYWNoZXMuZ2V0KGhvc3QpO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgIH1cblxuICAgIGNvbnN0IGZyZXNoID0gbmV3IEJ1Y2tldEluZm9ybWF0aW9uKCk7XG4gICAgQnVja2V0SW5mb3JtYXRpb24uY2FjaGVzLnNldChob3N0LCBmcmVzaCk7XG4gICAgcmV0dXJuIGZyZXNoO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgY2FjaGVzID0gbmV3IFdlYWtNYXA8SUhhbmRsZXJIb3N0LCBCdWNrZXRJbmZvcm1hdGlvbj4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG93bmVyc2hpcHMgPSBuZXcgTWFwPHN0cmluZywgQnVja2V0T3duZXJzaGlwPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVuY3J5cHRpb25zID0gbmV3IE1hcDxzdHJpbmcsIEJ1Y2tldEVuY3J5cHRpb24+KCk7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBidWNrZXRPd25lcnNoaXAoXG4gICAgczM6IElTM0NsaWVudCxcbiAgICBidWNrZXQ6IHN0cmluZyxcbiAgICBleHBlY3RlZEFjY291bnQ/OiBzdHJpbmcsXG4gICk6IFByb21pc2U8QnVja2V0T3duZXJzaGlwPiB7XG4gICAgcmV0dXJuIGNhY2hlZCh0aGlzLm93bmVyc2hpcHMsIGJ1Y2tldCwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYW55QWNjb3VudCA9IGF3YWl0IHRoaXMuX2J1Y2tldE93bmVyc2hpcChzMywgYnVja2V0KTtcblxuICAgICAgc3dpdGNoIChhbnlBY2NvdW50KSB7XG4gICAgICAgIGNhc2UgQnVja2V0T3duZXJzaGlwLk1JTkU6XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXhwZWN0ZWRBY2NvdW50ICYmXG4gICAgICAgICAgICAoYXdhaXQgdGhpcy5fYnVja2V0T3duZXJzaGlwKHMzLCBidWNrZXQsIGV4cGVjdGVkQWNjb3VudCkpID09PSBCdWNrZXRPd25lcnNoaXAuTk9fQUNDRVNTXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBpZiB0aGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gTUlORSBhbmQgTk9fQUNDRVNTIGlzIHRoZSBleHBlY3RlZCBhY2NvdW50LFxuICAgICAgICAgICAgLy8gdGhlbiBpdHMgZGVmaW5pdGVseSBzb21lb25lIGVsc2UncyBidWNrZXQuXG4gICAgICAgICAgICByZXR1cm4gQnVja2V0T3duZXJzaGlwLlNPTUVPTkVfRUxTRVNfQU5EX0hBVkVfQUNDRVNTO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gQnVja2V0T3duZXJzaGlwLk1JTkU7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIGFueUFjY291bnQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYnVja2V0RW5jcnlwdGlvbihzMzogSVMzQ2xpZW50LCBidWNrZXQ6IHN0cmluZyk6IFByb21pc2U8QnVja2V0RW5jcnlwdGlvbj4ge1xuICAgIHJldHVybiBjYWNoZWQodGhpcy5lbmNyeXB0aW9ucywgYnVja2V0LCAoKSA9PiB0aGlzLl9idWNrZXRFbmNyeXB0aW9uKHMzLCBidWNrZXQpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2J1Y2tldE93bmVyc2hpcChcbiAgICBzMzogSVMzQ2xpZW50LFxuICAgIGJ1Y2tldDogc3RyaW5nLFxuICAgIGFjY291bnQ/OiBzdHJpbmcsXG4gICk6IFByb21pc2U8QnVja2V0T3duZXJzaGlwLk1JTkUgfCBCdWNrZXRPd25lcnNoaXAuRE9FU19OT1RfRVhJU1QgfCBCdWNrZXRPd25lcnNoaXAuTk9fQUNDRVNTPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHMzLmdldEJ1Y2tldExvY2F0aW9uKHsgQnVja2V0OiBidWNrZXQsIEV4cGVjdGVkQnVja2V0T3duZXI6IGFjY291bnQgfSk7XG4gICAgICByZXR1cm4gQnVja2V0T3duZXJzaGlwLk1JTkU7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5uYW1lID09PSAnTm9TdWNoQnVja2V0Jykge1xuICAgICAgICByZXR1cm4gQnVja2V0T3duZXJzaGlwLkRPRVNfTk9UX0VYSVNUO1xuICAgICAgfVxuICAgICAgaWYgKFsnQWNjZXNzRGVuaWVkJywgJ0FsbEFjY2Vzc0Rpc2FibGVkJ10uaW5jbHVkZXMoZS5uYW1lKSkge1xuICAgICAgICByZXR1cm4gQnVja2V0T3duZXJzaGlwLk5PX0FDQ0VTUztcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfYnVja2V0RW5jcnlwdGlvbihzMzogSVMzQ2xpZW50LCBidWNrZXQ6IHN0cmluZyk6IFByb21pc2U8QnVja2V0RW5jcnlwdGlvbj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBlbmNyeXB0aW9uID0gYXdhaXQgczMuZ2V0QnVja2V0RW5jcnlwdGlvbih7IEJ1Y2tldDogYnVja2V0IH0pO1xuICAgICAgY29uc3QgbCA9IGVuY3J5cHRpb24/LlNlcnZlclNpZGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvbj8uUnVsZXM/Lmxlbmd0aCA/PyAwO1xuICAgICAgaWYgKGwgPiAwKSB7XG4gICAgICAgIGNvbnN0IGFwcGx5ID1cbiAgICAgICAgICBlbmNyeXB0aW9uPy5TZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24/LlJ1bGVzPy5hdChcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgKT8uQXBwbHlTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdDtcbiAgICAgICAgbGV0IHNzZWFsZ28gPSBhcHBseT8uU1NFQWxnb3JpdGhtO1xuICAgICAgICBpZiAoc3NlYWxnbyA9PT0gJ0FFUzI1NicpIHJldHVybiB7IHR5cGU6ICdhZXMyNTYnIH07XG4gICAgICAgIGlmIChzc2VhbGdvID09PSAnYXdzOmttcycpIHJldHVybiB7IHR5cGU6ICdrbXMnLCBrbXNLZXlJZDogYXBwbHk/LktNU01hc3RlcktleUlEIH07XG4gICAgICB9XG4gICAgICByZXR1cm4geyB0eXBlOiAnbm9fZW5jcnlwdGlvbicgfTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChlLm5hbWUgPT09ICdOb1N1Y2hCdWNrZXQnKSB7XG4gICAgICAgIHJldHVybiB7IHR5cGU6ICdkb2VzX25vdF9leGlzdCcgfTtcbiAgICAgIH1cbiAgICAgIGlmIChlLm5hbWUgPT09ICdTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25Ob3RGb3VuZEVycm9yJykge1xuICAgICAgICByZXR1cm4geyB0eXBlOiAnbm9fZW5jcnlwdGlvbicgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKFsnQWNjZXNzRGVuaWVkJywgJ0FsbEFjY2Vzc0Rpc2FibGVkJ10uaW5jbHVkZXMoZS5uYW1lKSkge1xuICAgICAgICByZXR1cm4geyB0eXBlOiAnYWNjZXNzX2RlbmllZCcgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHR5cGU6ICdub19lbmNyeXB0aW9uJyB9O1xuICAgIH1cbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBjYWNoZWQ8QSwgQj4oY2FjaGU6IE1hcDxBLCBCPiwga2V5OiBBLCBmYWN0b3J5OiAoeDogQSkgPT4gUHJvbWlzZTxCPik6IFByb21pc2U8Qj4ge1xuICBpZiAoY2FjaGUuaGFzKGtleSkpIHtcbiAgICByZXR1cm4gY2FjaGUuZ2V0KGtleSkhO1xuICB9XG5cbiAgY29uc3QgZnJlc2ggPSBhd2FpdCBmYWN0b3J5KGtleSk7XG4gIGNhY2hlLnNldChrZXksIGZyZXNoKTtcbiAgcmV0dXJuIGZyZXNoO1xufVxuIl19
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQkFBc0Q7QUFDdEQsNkJBQTZCO0FBRTdCLDBFQUFvRTtBQUNwRSw2QkFBNkI7QUFDN0IscURBQThEO0FBSTlELDZDQUFnRjtBQUNoRix3Q0FBMEM7QUFFMUMsMENBQXlDO0FBQ3pDLGtEQUF5RDtBQUN6RCxvQ0FBaUM7QUFFakM7Ozs7R0FJRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0FBRS9CLE1BQWEsZ0JBQWdCO0lBRzNCLFlBQ21CLE9BQWUsRUFDZixLQUF3QixFQUN4QixJQUFrQjtRQUZsQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBYztRQUVuQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSztJQUNsQixDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVc7UUFDdEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFBLHFDQUFzQixFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEYsTUFBTSxLQUFLLEdBQUcsUUFBUSxXQUFXLENBQUMsVUFBVSxJQUFJLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4RSxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFDdEMsR0FBRyxJQUFBLDJDQUEwQixFQUFDLFdBQVcsQ0FBQztnQkFDMUMsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFD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QU0sRUFBRSxPQUE2QjtJQUNqRixJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNuQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlYWRTdHJlYW0sIHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgRmlsZVNvdXJjZSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgeyBGaWxlQXNzZXRQYWNrYWdpbmcgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0ICogYXMgbWltZSBmcm9tICdtaW1lJztcbmltcG9ydCB7IGRlc3RpbmF0aW9uVG9DbGllbnRPcHRpb25zIH0gZnJvbSAnLi9jbGllbnQtb3B0aW9ucyc7XG5pbXBvcnQgdHlwZSB7IEZpbGVNYW5pZmVzdEVudHJ5IH0gZnJvbSAnLi4vLi4vYXNzZXQtbWFuaWZlc3QnO1xuaW1wb3J0IHR5cGUgeyBJUzNDbGllbnQgfSBmcm9tICcuLi8uLi9hd3MnO1xuaW1wb3J0IHR5cGUgeyBQdXRPYmplY3RDb21tYW5kSW5wdXQgfSBmcm9tICcuLi8uLi9hd3MtdHlwZXMnO1xuaW1wb3J0IHsgRXZlbnRUeXBlLCBzaGVsbEV2ZW50UHVibGlzaGVyRnJvbUV2ZW50RW1pdHRlciB9IGZyb20gJy4uLy4uL3Byb2dyZXNzJztcbmltcG9ydCB7IHppcERpcmVjdG9yeSB9IGZyb20gJy4uL2FyY2hpdmUnO1xuaW1wb3J0IHR5cGUgeyBJQXNzZXRIYW5kbGVyLCBJSGFuZGxlckhvc3QsIFB1Ymxpc2hPcHRpb25zIH0gZnJvbSAnLi4vYXNzZXQtaGFuZGxlcic7XG5pbXBvcnQgeyBwYXRoRXhpc3RzIH0gZnJvbSAnLi4vZnMtZXh0cmEnO1xuaW1wb3J0IHsgcmVwbGFjZUF3c1BsYWNlaG9sZGVycyB9IGZyb20gJy4uL3BsYWNlaG9sZGVycyc7XG5pbXBvcnQgeyBzaGVsbCB9IGZyb20gJy4uL3NoZWxsJztcblxuLyoqXG4gKiBUaGUgc2l6ZSBvZiBhbiBlbXB0eSB6aXAgZmlsZSBpcyAyMiBieXRlc1xuICpcbiAqIFJlZjogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvWklQXyhmaWxlX2Zvcm1hdClcbiAqL1xuY29uc3QgRU1QVFlfWklQX0ZJTEVfU0laRSA9IDIyO1xuXG5leHBvcnQgY2xhc3MgRmlsZUFzc2V0SGFuZGxlciBpbXBsZW1lbnRzIElBc3NldEhhbmRsZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGZpbGVDYWNoZVJvb3Q6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdvcmtEaXI6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFzc2V0OiBGaWxlTWFuaWZlc3RFbnRyeSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhvc3Q6IElIYW5kbGVySG9zdCxcbiAgKSB7XG4gICAgdGhpcy5maWxlQ2FjaGVSb290ID0gcGF0aC5qb2luKHdvcmtEaXIsICcuY2FjaGUnKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBidWlsZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpc1B1Ymxpc2hlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBkZXN0aW5hdGlvbiA9IGF3YWl0IHJlcGxhY2VBd3NQbGFjZWhvbGRlcnModGhpcy5hc3NldC5kZXN0aW5hdGlvbiwgdGhpcy5ob3N0LmF3cyk7XG4gICAgY29uc3QgczNVcmwgPSBgczM6Ly8ke2Rlc3RpbmF0aW9uLmJ1Y2tldE5hbWV9LyR7ZGVzdGluYXRpb24ub2JqZWN0S2V5fWA7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHMzID0gYXdhaXQgdGhpcy5ob3N0LmF3cy5zM0NsaWVudCh7XG4gICAgICAgIC4uLmRlc3RpbmF0aW9uVG9DbGllbnRPcHRpb25zKGRlc3RpbmF0aW9uKSxcbiAgICAgICAgcXVpZXQ6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQ0hFQ0ssIGBDaGVjayAke3MzVXJsfWApO1xuXG4gICAgICBpZiAoYXdhaXQgb2JqZWN0RXhpc3RzKHMzLCBkZXN0aW5hdGlvbi5idWNrZXROYW1lLCBkZXN0aW5hdGlvbi5vYmplY3RLZXkpKSB7XG4gICAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuRk9VTkQsIGBGb3VuZCAke3MzVXJsfWApO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuREVCVUcsIGAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHB1Ymxpc2gob3B0aW9uczogUHVibGlzaE9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRlc3RpbmF0aW9uID0gYXdhaXQgcmVwbGFjZUF3c1BsYWNlaG9sZGVycyh0aGlzLmFzc2V0LmRlc3RpbmF0aW9uLCB0aGlzLmhvc3QuYXdzKTtcbiAgICBjb25zdCBzM1VybCA9IGBzMzovLyR7ZGVzdGluYXRpb24uYnVja2V0TmFtZX0vJHtkZXN0aW5hdGlvbi5vYmplY3RLZXl9YDtcblxuICAgIGNvbnN0IGNsaWVudE9wdGlvbnMgPSBkZXN0aW5hdGlvblRvQ2xpZW50T3B0aW9ucyhkZXN0aW5hdGlvbik7XG4gICAgY29uc3QgczMgPSBhd2FpdCB0aGlzLmhvc3QuYXdzLnMzQ2xpZW50KGNsaWVudE9wdGlvbnMpO1xuICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQ0hFQ0ssIGBDaGVjayAke3MzVXJsfWApO1xuXG4gICAgY29uc3QgYnVja2V0SW5mbyA9IEJ1Y2tldEluZm9ybWF0aW9uLmZvcih0aGlzLmhvc3QpO1xuXG4gICAgLy8gQSB0aHVuayBmb3IgZGVzY3JpYmluZyB0aGUgY3VycmVudCBhY2NvdW50LiBVc2VkIHdoZW4gd2UgbmVlZCB0byBmb3JtYXQgYW4gZXJyb3JcbiAgICAvLyBtZXNzYWdlLCBub3QgaW4gdGhlIHN1Y2Nlc3MgY2FzZS5cbiAgICBjb25zdCBhY2NvdW50ID0gYXN5bmMgKCkgPT5cbiAgICAgIChhd2FpdCB0aGlzLmhvc3QuYXdzLmRpc2NvdmVyVGFyZ2V0QWNjb3VudChjbGllbnRPcHRpb25zKSkuYWNjb3VudElkO1xuXG4gICAgY29uc3QgYWxsb3dDcm9zc0FjY291bnQgPSBvcHRpb25zLmFsbG93Q3Jvc3NBY2NvdW50ID8/IHRydWU7XG4gICAgc3dpdGNoIChcbiAgICAgIGF3YWl0IGJ1Y2tldEluZm8uYnVja2V0T3duZXJzaGlwKFxuICAgICAgICBzMyxcbiAgICAgICAgZGVzdGluYXRpb24uYnVja2V0TmFtZSxcbiAgICAgICAgYWxsb3dDcm9zc0FjY291bnQgPyB1bmRlZmluZWQgOiBhd2FpdCBhY2NvdW50KCksXG4gICAgICApXG4gICAgKSB7XG4gICAgICBjYXNlIEJ1Y2tldE93bmVyc2hpcC5NSU5FOlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQnVja2V0T3duZXJzaGlwLkRPRVNfTk9UX0VYSVNUOlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYE5vIGJ1Y2tldCBuYW1lZCAnJHtkZXN0aW5hdGlvbi5idWNrZXROYW1lfScuIElzIGFjY291bnQgJHthd2FpdCBhY2NvdW50KCl9IGJvb3RzdHJhcHBlZD9gLFxuICAgICAgICApO1xuICAgICAgY2FzZSBCdWNrZXRPd25lcnNoaXAuTk9fQUNDRVNTOlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEJ1Y2tldCBuYW1lZCAnJHtkZXN0aW5hdGlvbi5idWNrZXROYW1lfScgZXhpc3RzLCBidXQgd2UgZG9udCBoYXZlIGFjY2VzcyB0byBpdC5gLFxuICAgICAgICApO1xuICAgICAgY2FzZSBCdWNrZXRPd25lcnNoaXAuU09NRU9ORV9FTFNFU19BTkRfSEFWRV9BQ0NFU1M6XG4gICAgICAgIGlmICghYWxsb3dDcm9zc0FjY291bnQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBg4p2X4p2XIFVORVhQRUNURUQgQlVDS0VUIE9XTkVSIERFVEVDVEVEIOKdl+Kdl1xuXG4gICAgICAgICAgICAgIFdlJ3ZlIGRldGVjdGVkIHRoYXQgdGhlIFMzIGJ1Y2tldCAke2Rlc3RpbmF0aW9uLmJ1Y2tldE5hbWV9IHdhc1xuICAgICAgICAgICAgICBvcmlnaW5hbGx5IGNyZWF0ZWQgaW4gYWNjb3VudCAke2F3YWl0IGFjY291bnQoKX0gYXMgcGFydCBvZiB0aGUgQ2xvdWRGb3JtYXRpb24gc3RhY2sgQ0RLVG9vbGtpdCxcbiAgICAgICAgICAgICAgYnV0IG5vdyByZXNpZGVzIGluIGEgZGlmZmVyZW50IEFXUyBhY2NvdW50LiBUbyBwcmV2ZW50IGNyb3NzLWFjY291bnQgYXNzZXQgYnVja2V0IGFjY2VzcyBvZiB5b3VyXG4gICAgICAgICAgICAgIGRlcGxveW1lbnRzLCBDREsgd2lsbCBzdG9wIG5vdy5cblxuICAgICAgICAgICAgICBJZiB0aGlzIHNpdHVhdGlvbiBpcyBpbnRlbnRpb25hbCBhbmQgeW91IG93biB0aGUgQVdTIGFjY291bnQgdGhhdCB0aGUgYnVja2V0IGhhcyBtb3ZlZCB0bywgcmVtb3ZlIHRoZVxuICAgICAgICAgICAgICByZXNvdXJjZSBuYW1lZCBTdGFnaW5nQnVja2V0IGZyb20gdGhlIHRlbXBsYXRlIG9mIENsb3VkRm9ybWF0aW9uIHN0YWNrIENES1Rvb2xraXQgYW5kIHRyeSBhZ2Fpbi5cblxuICAgICAgICAgICAgICBJZiB0aGlzIHNpdHVhdGlvbiBpcyBub3QgaW50ZW50aW9uYWwsIHdlIHN0cm9uZ2x5IHJlY29tbWVuZCBhdWRpdGluZyB5b3VyIGFjY291bnQgdG8gbWFrZSBzdXJlIGFsbFxuICAgICAgICAgICAgICByZXNvdXJjZXMgYXJlIGNvbmZpZ3VyZWQgdGhlIHdheSB5b3UgZXhwZWN0IHRoZW0gWzFdLiBGb3IgcXVlc3Rpb25zIG9yIGNvbmNlcm5zLCBwbGVhc2UgY29udGFjdFxuICAgICAgICAgICAgICBBV1MgU3VwcG9ydCBbMl0uXG5cbiAgICAgICAgICAgICAgWzFdIGh0dHBzOi8vcmVwb3N0LmF3cy9rbm93bGVkZ2UtY2VudGVyL3BvdGVudGlhbC1hY2NvdW50LWNvbXByb21pc2VcblxuICAgICAgICAgICAgICBbMl0gaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9zdXBwb3J0YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmICghb3B0aW9ucy5mb3JjZSAmJiBhd2FpdCBvYmplY3RFeGlzdHMoczMsIGRlc3RpbmF0aW9uLmJ1Y2tldE5hbWUsIGRlc3RpbmF0aW9uLm9iamVjdEtleSkpIHtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuRk9VTkQsIGBGb3VuZCAke3MzVXJsfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIElkZW50aWZ5IHRoZSB0aGUgYnVja2V0IGVuY3J5cHRpb24gdHlwZSB0byBzZXQgdGhlIGhlYWRlciBvbiB1cGxvYWRcbiAgICAvLyByZXF1aXJlZCBmb3IgU0NQIHJ1bGVzIGRlbnlpbmcgdXBsb2FkcyB3aXRob3V0IGVuY3J5cHRpb24gaGVhZGVyXG4gICAgbGV0IHBhcmFtc0VuY3J5cHRpb246IHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIGNvbnN0IGVuY3J5cHRpb24yID0gYXdhaXQgYnVja2V0SW5mby5idWNrZXRFbmNyeXB0aW9uKHMzLCBkZXN0aW5hdGlvbi5idWNrZXROYW1lKTtcbiAgICBzd2l0Y2ggKGVuY3J5cHRpb24yLnR5cGUpIHtcbiAgICAgIGNhc2UgJ25vX2VuY3J5cHRpb24nOlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2FlczI1Nic6XG4gICAgICAgIHBhcmFtc0VuY3J5cHRpb24gPSB7IFNlcnZlclNpZGVFbmNyeXB0aW9uOiAnQUVTMjU2JyB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ttcyc6XG4gICAgICAgIC8vIFdlIG11c3QgaW5jbHVkZSB0aGUga2V5IElEIG90aGVyd2lzZSBTMyB3aWxsIGVuY3J5cHQgd2l0aCB0aGUgZGVmYXVsdCBrZXlcbiAgICAgICAgcGFyYW1zRW5jcnlwdGlvbiA9IHtcbiAgICAgICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbjogJ2F3czprbXMnLFxuICAgICAgICAgIFNTRUtNU0tleUlkOiBlbmNyeXB0aW9uMi5rbXNLZXlJZCxcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkb2VzX25vdF9leGlzdCc6XG4gICAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShcbiAgICAgICAgICBFdmVudFR5cGUuREVCVUcsXG4gICAgICAgICAgYE5vIGJ1Y2tldCBuYW1lZCAnJHtkZXN0aW5hdGlvbi5idWNrZXROYW1lfScuIElzIGFjY291bnQgJHthd2FpdCBhY2NvdW50KCl9IGJvb3RzdHJhcHBlZD9gLFxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2FjY2Vzc19kZW5pZWQnOlxuICAgICAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoXG4gICAgICAgICAgRXZlbnRUeXBlLkRFQlVHLFxuICAgICAgICAgIGBDb3VsZCBub3QgcmVhZCBlbmNyeXB0aW9uIHNldHRpbmdzIG9mIGJ1Y2tldCAnJHtkZXN0aW5hdGlvbi5idWNrZXROYW1lfSc6IHVwbG9hZGluZyB3aXRoIGRlZmF1bHQgc2V0dGluZ3MgKFwiY2RrIGJvb3RzdHJhcFwiIHRvIHZlcnNpb24gOSBpZiB5b3VyIG9yZ2FuaXphdGlvbidzIHBvbGljaWVzIHByZXZlbnQgYSBzdWNjZXNzZnVsIHVwbG9hZCBvciB0byBnZXQgcmlkIG9mIHRoaXMgbWVzc2FnZSkuYCxcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaG9zdC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHB1Ymxpc2hGaWxlID0gdGhpcy5hc3NldC5zb3VyY2UuZXhlY3V0YWJsZVxuICAgICAgPyBhd2FpdCB0aGlzLmV4dGVybmFsUGFja2FnZUZpbGUodGhpcy5hc3NldC5zb3VyY2UuZXhlY3V0YWJsZSlcbiAgICAgIDogYXdhaXQgdGhpcy5wYWNrYWdlRmlsZSh0aGlzLmFzc2V0LnNvdXJjZSk7XG5cbiAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLlVQTE9BRCwgYFVwbG9hZCAke3MzVXJsfWApO1xuXG4gICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICBCdWNrZXQ6IGRlc3RpbmF0aW9uLmJ1Y2tldE5hbWUsXG4gICAgICAgIEtleTogZGVzdGluYXRpb24ub2JqZWN0S2V5LFxuICAgICAgICBCb2R5OiBjcmVhdGVSZWFkU3RyZWFtKHB1Ymxpc2hGaWxlLnBhY2thZ2VkUGF0aCksXG4gICAgICAgIENvbnRlbnRUeXBlOiBwdWJsaXNoRmlsZS5jb250ZW50VHlwZSxcbiAgICAgICAgQ2hlY2tzdW1BbGdvcml0aG06ICdTSEEyNTYnLFxuICAgICAgfSBzYXRpc2ZpZXMgUHV0T2JqZWN0Q29tbWFuZElucHV0LFxuICAgICAgcGFyYW1zRW5jcnlwdGlvbixcbiAgICApO1xuXG4gICAgYXdhaXQgczMudXBsb2FkKHBhcmFtcyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHBhY2thZ2VGaWxlKHNvdXJjZTogRmlsZVNvdXJjZSk6IFByb21pc2U8UGFja2FnZWRGaWxlQXNzZXQ+IHtcbiAgICBpZiAoIXNvdXJjZS5wYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAncGF0aCcgaXMgZXhwZWN0ZWQgaW4gdGhlIEZpbGUgYXNzZXQgc291cmNlLCBnb3Q6ICR7SlNPTi5zdHJpbmdpZnkoc291cmNlKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGgucmVzb2x2ZSh0aGlzLndvcmtEaXIsIHNvdXJjZS5wYXRoKTtcblxuICAgIGlmIChzb3VyY2UucGFja2FnaW5nID09PSBGaWxlQXNzZXRQYWNrYWdpbmcuWklQX0RJUkVDVE9SWSkge1xuICAgICAgY29uc3QgY29udGVudFR5cGUgPSAnYXBwbGljYXRpb24vemlwJztcblxuICAgICAgYXdhaXQgZnMubWtkaXIodGhpcy5maWxlQ2FjaGVSb290LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGNvbnN0IHBhY2thZ2VkUGF0aCA9IHBhdGguam9pbih0aGlzLmZpbGVDYWNoZVJvb3QsIGAke3RoaXMuYXNzZXQuaWQuYXNzZXRJZH0uemlwYCk7XG5cbiAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKHBhY2thZ2VkUGF0aCkpIHtcbiAgICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5DQUNIRUQsIGBGcm9tIGNhY2hlICR7cGFja2FnZWRQYXRofWApO1xuICAgICAgICByZXR1cm4geyBwYWNrYWdlZFBhdGgsIGNvbnRlbnRUeXBlIH07XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQlVJTEQsIGBaaXAgJHtmdWxsUGF0aH0gLT4gJHtwYWNrYWdlZFBhdGh9YCk7XG4gICAgICBhd2FpdCB6aXBEaXJlY3RvcnkoZnVsbFBhdGgsIHBhY2thZ2VkUGF0aCwgKG0pID0+IHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuREVCVUcsIG0pKTtcbiAgICAgIHJldHVybiB7IHBhY2thZ2VkUGF0aCwgY29udGVudFR5cGUgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29udGVudFR5cGUgPSBtaW1lLmdldFR5cGUoZnVsbFBhdGgpID8/ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nO1xuICAgICAgcmV0dXJuIHsgcGFja2FnZWRQYXRoOiBmdWxsUGF0aCwgY29udGVudFR5cGUgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4dGVybmFsUGFja2FnZUZpbGUoZXhlY3V0YWJsZTogc3RyaW5nW10pOiBQcm9taXNlPFBhY2thZ2VkRmlsZUFzc2V0PiB7XG4gICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5CVUlMRCwgYEJ1aWxkaW5nIGFzc2V0IHNvdXJjZSB1c2luZyBjb21tYW5kOiAnJHtleGVjdXRhYmxlfSdgKTtcblxuICAgIGNvbnN0IHNoZWxsRXZlbnRQdWJsaXNoZXIgPSBzaGVsbEV2ZW50UHVibGlzaGVyRnJvbUV2ZW50RW1pdHRlcih0aGlzLmhvc3QuZW1pdE1lc3NhZ2UpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBhY2thZ2VkUGF0aDogKFxuICAgICAgICBhd2FpdCBzaGVsbChleGVjdXRhYmxlLCB7IHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbjogJ2lnbm9yZScsIHNoZWxsRXZlbnRQdWJsaXNoZXIgfSlcbiAgICAgICkudHJpbSgpLFxuICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi96aXAnLFxuICAgIH07XG4gIH1cbn1cblxuZW51bSBCdWNrZXRPd25lcnNoaXAge1xuICBET0VTX05PVF9FWElTVCxcbiAgTUlORSxcbiAgTk9fQUNDRVNTLFxuICBTT01FT05FX0VMU0VTX0FORF9IQVZFX0FDQ0VTUyxcbn1cblxudHlwZSBCdWNrZXRFbmNyeXB0aW9uID1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdub19lbmNyeXB0aW9uJyB9XG4gIHwgeyByZWFkb25seSB0eXBlOiAnYWVzMjU2JyB9XG4gIHwgeyByZWFkb25seSB0eXBlOiAna21zJzsgcmVhZG9ubHkga21zS2V5SWQ/OiBzdHJpbmcgfVxuICB8IHsgcmVhZG9ubHkgdHlwZTogJ2FjY2Vzc19kZW5pZWQnIH1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdkb2VzX25vdF9leGlzdCcgfTtcblxuYXN5bmMgZnVuY3Rpb24gb2JqZWN0RXhpc3RzKHMzOiBJUzNDbGllbnQsIGJ1Y2tldDogc3RyaW5nLCBrZXk6IHN0cmluZykge1xuICAvKlxuICAgKiBUaGUgb2JqZWN0IGV4aXN0ZW5jZSBjaGVjayBoZXJlIHJlZnJhaW5zIGZyb20gdXNpbmcgdGhlIGBoZWFkT2JqZWN0YCBvcGVyYXRpb24gYmVjYXVzZSB0aGlzXG4gICAqIHdvdWxkIGNyZWF0ZSBhIG5lZ2F0aXZlIGNhY2hlIGVudHJ5LCBtYWtpbmcgR0VULWFmdGVyLVBVVCBldmVudHVhbGx5IGNvbnNpc3RlbnQuIFRoaXMgaGFzIGJlZW5cbiAgICogb2JzZXJ2ZWQgdG8gcmVzdWx0IGluIENsb3VkRm9ybWF0aW9uIGlzc3VpbmcgXCJWYWxpZGF0aW9uRXJyb3I6IFMzIGVycm9yOiBBY2Nlc3MgRGVuaWVkXCIsIGZvclxuICAgKiBleGFtcGxlIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvNjQzMC5cbiAgICpcbiAgICogVG8gcHJldmVudCB0aGlzLCB3ZSBhcmUgaW5zdGVhZCB1c2luZyB0aGUgbGlzdE9iamVjdHNWMiBjYWxsLCB1c2luZyB0aGUgbG9va2VkIHVwIGtleSBhcyB0aGVcbiAgICogcHJlZml4LCBhbmQgbGltaXRpbmcgcmVzdWx0cyB0byAxLiBTaW5jZSB0aGUgbGlzdCBvcGVyYXRpb24gcmV0dXJucyBrZXlzIG9yZGVyZWQgYnkgYmluYXJ5XG4gICAqIFVURi04IHJlcHJlc2VudGF0aW9uLCB0aGUga2V5IHdlIGFyZSBsb29raW5nIGZvciBpcyBndWFyYW50ZWVkIHRvIGFsd2F5cyBiZSB0aGUgZmlyc3QgbWF0Y2hcbiAgICogcmV0dXJuZWQgaWYgaXQgZXhpc3RzLlxuICAgKlxuICAgKiBJZiB0aGUgZmlsZSBpcyB0b28gc21hbGwsIHdlIGRpc2NvdW50IGl0IGFzIGEgY2FjaGUgaGl0LiBUaGVyZSBpcyBhbiBpc3N1ZVxuICAgKiBzb21ld2hlcmUgdGhhdCBzb21ldGltZXMgcHJvZHVjZXMgZW1wdHkgemlwIGZpbGVzLCBhbmQgd2Ugd291bGQgb3RoZXJ3aXNlXG4gICAqIG5ldmVyIHJldHJ5IGJ1aWxkaW5nIHRob3NlIGFzc2V0cyB3aXRob3V0IHVzZXJzIGhhdmluZyB0byBtYW51YWxseSBjbGVhclxuICAgKiB0aGVpciBidWNrZXQsIHdoaWNoIGlzIGEgYmFkIGV4cGVyaWVuY2UuXG4gICAqL1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHMzLmxpc3RPYmplY3RzVjIoe1xuICAgIEJ1Y2tldDogYnVja2V0LFxuICAgIFByZWZpeDoga2V5LFxuICAgIE1heEtleXM6IDEsXG4gIH0pO1xuICByZXR1cm4gKFxuICAgIHJlc3BvbnNlLkNvbnRlbnRzICE9IG51bGwgJiZcbiAgICByZXNwb25zZS5Db250ZW50cy5zb21lKFxuICAgICAgKG9iamVjdCkgPT4gb2JqZWN0LktleSA9PT0ga2V5ICYmIChvYmplY3QuU2l6ZSA9PSBudWxsIHx8IG9iamVjdC5TaXplID4gRU1QVFlfWklQX0ZJTEVfU0laRSksXG4gICAgKVxuICApO1xufVxuXG4vKipcbiAqIEEgcGFja2FnZWQgYXNzZXQgd2hpY2ggY2FuIGJlIHVwbG9hZGVkIChlaXRoZXIgYSBzaW5nbGUgZmlsZSBvciBkaXJlY3RvcnkpXG4gKi9cbmludGVyZmFjZSBQYWNrYWdlZEZpbGVBc3NldCB7XG4gIC8qKlxuICAgKiBQYXRoIG9mIHRoZSBmaWxlIG9yIGRpcmVjdG9yeVxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZWRQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbnRlbnQgdHlwZSB0byBiZSBhZGRlZCBpbiB0aGUgUzMgdXBsb2FkIGFjdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGNvbnRlbnQgdHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudFR5cGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2FjaGUgZm9yIGJ1Y2tldCBpbmZvcm1hdGlvbiwgc28gd2UgZG9uJ3QgaGF2ZSB0byBrZWVwIGRvaW5nIHRoZSBzYW1lIGNhbGxzIGFnYWluIGFuZCBhZ2FpblxuICpcbiAqIFdlIHNjb3BlIHRoZSBsaWZldGltZSBvZiB0aGUgY2FjaGUgdG8gdGhlIGxpZmV0aW1lIG9mIHRoZSBob3N0LCBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gZG9cbiAqIGFueXRoaW5nIHNwZWNpYWwgZm9yIHRlc3RzIGFuZCB5ZXQgdGhlIGNhY2hlIHdpbGwgbGl2ZSBmb3IgdGhlIGVudGlyZSBsaWZldGltZSBvZiB0aGUgYXNzZXRcbiAqIHVwbG9hZCBzZXNzaW9uIHdoZW4gdXNlZCBieSB0aGUgQ0xJLlxuICovXG5jbGFzcyBCdWNrZXRJbmZvcm1hdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yKGhvc3Q6IElIYW5kbGVySG9zdCkge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gQnVja2V0SW5mb3JtYXRpb24uY2FjaGVzLmdldChob3N0KTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIHJldHVybiBleGlzdGluZztcbiAgICB9XG5cbiAgICBjb25zdCBmcmVzaCA9IG5ldyBCdWNrZXRJbmZvcm1hdGlvbigpO1xuICAgIEJ1Y2tldEluZm9ybWF0aW9uLmNhY2hlcy5zZXQoaG9zdCwgZnJlc2gpO1xuICAgIHJldHVybiBmcmVzaDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGNhY2hlcyA9IG5ldyBXZWFrTWFwPElIYW5kbGVySG9zdCwgQnVja2V0SW5mb3JtYXRpb24+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvd25lcnNoaXBzID0gbmV3IE1hcDxzdHJpbmcsIEJ1Y2tldE93bmVyc2hpcD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbmNyeXB0aW9ucyA9IG5ldyBNYXA8c3RyaW5nLCBCdWNrZXRFbmNyeXB0aW9uPigpO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYnVja2V0T3duZXJzaGlwKFxuICAgIHMzOiBJUzNDbGllbnQsXG4gICAgYnVja2V0OiBzdHJpbmcsXG4gICAgZXhwZWN0ZWRBY2NvdW50Pzogc3RyaW5nLFxuICApOiBQcm9taXNlPEJ1Y2tldE93bmVyc2hpcD4ge1xuICAgIHJldHVybiBjYWNoZWQodGhpcy5vd25lcnNoaXBzLCBidWNrZXQsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGFueUFjY291bnQgPSBhd2FpdCB0aGlzLl9idWNrZXRPd25lcnNoaXAoczMsIGJ1Y2tldCk7XG5cbiAgICAgIHN3aXRjaCAoYW55QWNjb3VudCkge1xuICAgICAgICBjYXNlIEJ1Y2tldE93bmVyc2hpcC5NSU5FOlxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGV4cGVjdGVkQWNjb3VudCAmJlxuICAgICAgICAgICAgKGF3YWl0IHRoaXMuX2J1Y2tldE93bmVyc2hpcChzMywgYnVja2V0LCBleHBlY3RlZEFjY291bnQpKSA9PT0gQnVja2V0T3duZXJzaGlwLk5PX0FDQ0VTU1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gaWYgdGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIE1JTkUgYW5kIE5PX0FDQ0VTUyBpcyB0aGUgZXhwZWN0ZWQgYWNjb3VudCxcbiAgICAgICAgICAgIC8vIHRoZW4gaXRzIGRlZmluaXRlbHkgc29tZW9uZSBlbHNlJ3MgYnVja2V0LlxuICAgICAgICAgICAgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5TT01FT05FX0VMU0VTX0FORF9IQVZFX0FDQ0VTUztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5NSU5FO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBhbnlBY2NvdW50O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGJ1Y2tldEVuY3J5cHRpb24oczM6IElTM0NsaWVudCwgYnVja2V0OiBzdHJpbmcpOiBQcm9taXNlPEJ1Y2tldEVuY3J5cHRpb24+IHtcbiAgICByZXR1cm4gY2FjaGVkKHRoaXMuZW5jcnlwdGlvbnMsIGJ1Y2tldCwgKCkgPT4gdGhpcy5fYnVja2V0RW5jcnlwdGlvbihzMywgYnVja2V0KSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9idWNrZXRPd25lcnNoaXAoXG4gICAgczM6IElTM0NsaWVudCxcbiAgICBidWNrZXQ6IHN0cmluZyxcbiAgICBhY2NvdW50Pzogc3RyaW5nLFxuICApOiBQcm9taXNlPEJ1Y2tldE93bmVyc2hpcC5NSU5FIHwgQnVja2V0T3duZXJzaGlwLkRPRVNfTk9UX0VYSVNUIHwgQnVja2V0T3duZXJzaGlwLk5PX0FDQ0VTUz4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBzMy5nZXRCdWNrZXRMb2NhdGlvbih7IEJ1Y2tldDogYnVja2V0LCBFeHBlY3RlZEJ1Y2tldE93bmVyOiBhY2NvdW50IH0pO1xuICAgICAgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5NSU5FO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGUubmFtZSA9PT0gJ05vU3VjaEJ1Y2tldCcpIHtcbiAgICAgICAgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5ET0VTX05PVF9FWElTVDtcbiAgICAgIH1cbiAgICAgIGlmIChbJ0FjY2Vzc0RlbmllZCcsICdBbGxBY2Nlc3NEaXNhYmxlZCddLmluY2x1ZGVzKGUubmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5OT19BQ0NFU1M7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2J1Y2tldEVuY3J5cHRpb24oczM6IElTM0NsaWVudCwgYnVja2V0OiBzdHJpbmcpOiBQcm9taXNlPEJ1Y2tldEVuY3J5cHRpb24+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZW5jcnlwdGlvbiA9IGF3YWl0IHMzLmdldEJ1Y2tldEVuY3J5cHRpb24oeyBCdWNrZXQ6IGJ1Y2tldCB9KTtcbiAgICAgIGNvbnN0IGwgPSBlbmNyeXB0aW9uPy5TZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24/LlJ1bGVzPy5sZW5ndGggPz8gMDtcbiAgICAgIGlmIChsID4gMCkge1xuICAgICAgICBjb25zdCBhcHBseSA9XG4gICAgICAgICAgZW5jcnlwdGlvbj8uU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uPy5SdWxlcz8uYXQoXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICk/LkFwcGx5U2VydmVyU2lkZUVuY3J5cHRpb25CeURlZmF1bHQ7XG4gICAgICAgIGxldCBzc2VhbGdvID0gYXBwbHk/LlNTRUFsZ29yaXRobTtcbiAgICAgICAgaWYgKHNzZWFsZ28gPT09ICdBRVMyNTYnKSByZXR1cm4geyB0eXBlOiAnYWVzMjU2JyB9O1xuICAgICAgICBpZiAoc3NlYWxnbyA9PT0gJ2F3czprbXMnKSByZXR1cm4geyB0eXBlOiAna21zJywga21zS2V5SWQ6IGFwcGx5Py5LTVNNYXN0ZXJLZXlJRCB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgdHlwZTogJ25vX2VuY3J5cHRpb24nIH07XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5uYW1lID09PSAnTm9TdWNoQnVja2V0Jykge1xuICAgICAgICByZXR1cm4geyB0eXBlOiAnZG9lc19ub3RfZXhpc3QnIH07XG4gICAgICB9XG4gICAgICBpZiAoZS5uYW1lID09PSAnU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uTm90Rm91bmRFcnJvcicpIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogJ25vX2VuY3J5cHRpb24nIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChbJ0FjY2Vzc0RlbmllZCcsICdBbGxBY2Nlc3NEaXNhYmxlZCddLmluY2x1ZGVzKGUubmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogJ2FjY2Vzc19kZW5pZWQnIH07XG4gICAgICB9XG4gICAgICByZXR1cm4geyB0eXBlOiAnbm9fZW5jcnlwdGlvbicgfTtcbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY2FjaGVkPEEsIEI+KGNhY2hlOiBNYXA8QSwgQj4sIGtleTogQSwgZmFjdG9yeTogKHg6IEEpID0+IFByb21pc2U8Qj4pOiBQcm9taXNlPEI+IHtcbiAgaWYgKGNhY2hlLmhhcyhrZXkpKSB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChrZXkpITtcbiAgfVxuXG4gIGNvbnN0IGZyZXNoID0gYXdhaXQgZmFjdG9yeShrZXkpO1xuICBjYWNoZS5zZXQoa2V5LCBmcmVzaCk7XG4gIHJldHVybiBmcmVzaDtcbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { IAws } from '../aws';
1
+ import type { IAws } from '../aws';
2
2
  /**
3
3
  * Replace the {ACCOUNT} and {REGION} placeholders in all strings found in a complex object.
4
4
  *