@bitgo-beta/sdk-core 8.2.1-beta.1791 → 8.2.1-beta.1792
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mpcUtils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/mpcUtils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAsB,QAAQ,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE/F,OAAO,EAEL,eAAe,EACf,oCAAoC,EACpC,4BAA4B,EAC7B,MAAM,iBAAiB,CAAC;AAIzB,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8BAAsB,QAAQ;IAC5B,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;gBAElB,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS;cAKjC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;cAiBjG,uBAAuB,CACrC,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACrC,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACvC,YAAY,EAAE,WAAW,EACzB,cAAc,EAAE,WAAW,EAC3B,OAAO,EAAE,OAAO,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC;IAsCpB;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,8BAA8B,CAAC,EAAE,MAAM,CAAC;QACxC,YAAY,CAAC,EAAE,yBAAyB,CAAC;KAC1C,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAE7B;;;;;;OAMG;IACH,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,oCAAoC,GAAG,eAAe;
|
|
1
|
+
{"version":3,"file":"mpcUtils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/mpcUtils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAsB,QAAQ,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE/F,OAAO,EAEL,eAAe,EACf,oCAAoC,EACpC,4BAA4B,EAC7B,MAAM,iBAAiB,CAAC;AAIzB,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8BAAsB,QAAQ;IAC5B,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;gBAElB,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS;cAKjC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;cAiBjG,uBAAuB,CACrC,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACrC,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACvC,YAAY,EAAE,WAAW,EACzB,cAAc,EAAE,WAAW,EAC3B,OAAO,EAAE,OAAO,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC;IAsCpB;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,8BAA8B,CAAC,EAAE,MAAM,CAAC;QACxC,YAAY,CAAC,EAAE,yBAAyB,CAAC;KAC1C,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAE7B;;;;;;OAMG;IACH,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,oCAAoC,GAAG,eAAe;IA4LlG,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,4BAA4B,GAAG,MAAM,GAAG,SAAS;CAY/F"}
|
|
@@ -191,6 +191,13 @@ class MpcUtils {
|
|
|
191
191
|
feeToken: params.feeToken,
|
|
192
192
|
nonce: params.nonce,
|
|
193
193
|
};
|
|
194
|
+
case 'enableToken':
|
|
195
|
+
return {
|
|
196
|
+
...baseIntent,
|
|
197
|
+
enableTokens: params.enableTokens,
|
|
198
|
+
feeOptions: params.feeOptions,
|
|
199
|
+
feeToken: params.feeToken,
|
|
200
|
+
};
|
|
194
201
|
default:
|
|
195
202
|
throw new Error(`Unsupported intent type ${params.intentType}`);
|
|
196
203
|
}
|
|
@@ -228,4 +235,4 @@ class MpcUtils {
|
|
|
228
235
|
}
|
|
229
236
|
}
|
|
230
237
|
exports.MpcUtils = MpcUtils;
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXBjVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvbXBjVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0dBRUc7QUFDSCxvREFBNEI7QUFDNUIscUNBQWtGO0FBSWxGLGlEQUFnRTtBQU9oRSxzREFBd0Y7QUFDeEYsaURBQXlEO0FBU3pELE1BQXNCLFFBQVE7SUFJNUIsWUFBWSxLQUFnQixFQUFFLFFBQW1CO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFUyxLQUFLLENBQUMsbUJBQW1CLENBQUMsWUFBb0IsRUFBRSxVQUFxQztRQUM3RixNQUFNLG1CQUFtQixHQUFHLE1BQU0sSUFBQSxxQkFBVyxFQUFDO1lBQzVDLGNBQWMsRUFBRSxZQUFZO1NBQzdCLENBQUMsQ0FBQztRQUNILE1BQU0saUJBQWlCLEdBQUcsTUFBTSxJQUFBLHdCQUFjLEVBQUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFdEYsTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixNQUFNLElBQUEsaUJBQU8sRUFBQztZQUNaLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsY0FBYyxFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDbkMsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQ0gsQ0FBQyxJQUFJLENBQUM7UUFFUCxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFUyxLQUFLLENBQUMsdUJBQXVCLENBQ3JDLFVBQXFDLEVBQ3JDLFlBQXVDLEVBQ3ZDLFlBQXlCLEVBQ3pCLGNBQTJCLEVBQzNCLE9BQWdCLEVBQ2hCLFVBQW1CO1FBRW5CLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxJQUFBLGdDQUFpQixFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMs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LENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0YsTUFBTSxlQUFlLEdBQUcsR0FBRyxhQUFhLEdBQUcsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ3BHLElBQUksZUFBSyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDaEQsU0FBUyxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO1FBQzFDLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUM7SUFDN0IsQ0FBQztDQUNGO0FBN1JELDRCQTZSQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IGRlY3J5cHQsIHJlYWRNZXNzYWdlLCByZWFkUHJpdmF0ZUtleSwgU2VyaWFsaXplZEtleVBhaXIgfSBmcm9tICdvcGVucGdwJztcbmltcG9ydCB7IElCYXNlQ29pbiwgS2V5Y2hhaW5zVHJpcGxldCB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBBZGRLZXljaGFpbk9wdGlvbnMsIEtleWNoYWluLCBLZXlUeXBlLCBXZWJhdXRobktleUVuY3J5cHRpb25JbmZvIH0gZnJvbSAnLi4va2V5Y2hhaW4nO1xuaW1wb3J0IHsgZW5jcnlwdFRleHQsIGdldEJpdGdvR3BnUHViS2V5IH0gZnJvbSAnLi9vcGVuZ3BnVXRpbHMnO1xuaW1wb3J0IHtcbiAgSW50ZW50UmVjaXBpZW50LFxuICBQb3B1bGF0ZWRJbnRlbnQsXG4gIFByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9ucyxcbiAgVG9rZW5UcmFuc2ZlclJlY2lwaWVudFBhcmFtcyxcbn0gZnJvbSAnLi90c3MvYmFzZVR5cGVzJztcbmltcG9ydCB7IGVudlJlcXVpcmVzQml0Z29QdWJHcGdLZXlDb25maWcsIGlzQml0Z29NcGNQdWJLZXkgfSBmcm9tICcuLi90c3MvYml0Z29QdWJLZXlzJztcbmltcG9ydCB7IGNvaW5zLCBOZXR3b3JrVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1wY0tleVNoYXJlIHtcbiAgcHVibGljU2hhcmU6IHN0cmluZztcbiAgcHJpdmF0ZVNoYXJlOiBzdHJpbmc7XG4gIHByaXZhdGVTaGFyZVByb29mPzogc3RyaW5nO1xuICB2c3NQcm9vZj86IHN0cmluZztcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1wY1V0aWxzIHtcbiAgcHJvdGVjdGVkIGJpdGdvOiBCaXRHb0Jhc2U7XG4gIHByb3RlY3RlZCBiYXNlQ29pbjogSUJhc2VDb2luO1xuXG4gIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIGJhc2VDb2luOiBJQmFzZUNvaW4pIHtcbiAgICB0aGlzLmJpdGdvID0gYml0Z287XG4gICAgdGhpcy5iYXNlQ29pbiA9IGJhc2VDb2luO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGRlY3J5cHRQcml2YXRlU2hhcmUocHJpdmF0ZVNoYXJlOiBzdHJpbmcsIHVzZXJHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHByaXZhdGVTaGFyZU1lc3NhZ2UgPSBhd2FpdCByZWFkTWVzc2FnZSh7XG4gICAgICBhcm1vcmVkTWVzc2FnZTogcHJpdmF0ZVNoYXJlLFxuICAgIH0pO1xuICAgIGNvbnN0IHVzZXJHcGdQcml2YXRlS2V5ID0gYXdhaXQgcmVhZFByaXZhdGVLZXkoeyBhcm1vcmVkS2V5OiB1c2VyR3BnS2V5LnByaXZhdGVLZXkgfSk7XG5cbiAgICBjb25zdCBkZWNyeXB0ZWRQcml2YXRlU2hhcmUgPSAoXG4gICAgICBhd2FpdCBkZWNyeXB0KHtcbiAgICAgICAgbWVzc2FnZTogcHJpdmF0ZVNoYXJlTWVzc2FnZSxcbiAgICAgICAgZGVjcnlwdGlvbktleXM6IFt1c2VyR3BnUHJpdmF0ZUtleV0sXG4gICAgICAgIGZvcm1hdDogJ3V0ZjgnLFxuICAgICAgfSlcbiAgICApLmRhdGE7XG5cbiAgICByZXR1cm4gZGVjcnlwdGVkUHJpdmF0ZVNoYXJlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZUJpdGdvS2V5Y2hhaW5JbldQKFxuICAgIHVzZXJHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgYmFja3VwR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIHVzZXJLZXlTaGFyZTogTXBjS2V5U2hhcmUsXG4gICAgYmFja3VwS2V5U2hhcmU6IE1wY0tleVNoYXJlLFxuICAgIGtleVR5cGU6IEtleVR5cGUsXG4gICAgZW50ZXJwcmlzZT86IHN0cmluZ1xuICApOiBQcm9taXNlPEtleWNoYWluPiB7XG4gICAgY29uc3QgYml0Z29LZXkgPSAoYXdhaXQgZ2V0Qml0Z29HcGdQdWJLZXkodGhpcy5iaXRnbykpLm1wY1YxO1xuICAgIGlmIChlbnZSZXF1aXJlc0JpdGdvUHViR3BnS2V5Q29uZmlnKHRoaXMuYml0Z28uZ2V0RW52KCkpKSB7XG4gICAgICAvLyBFbnN1cmUgdGhlIHB1YmxpYyBrZXkgaXMgb25lIG9mIHRoZSBleHBlY3RlZCBCaXRHbyBwdWJsaWMga2V5cyB3aGVuIGluIHRlc3Qgb3IgcHJvZC5cbiAgICAgIGFzc2VydChpc0JpdGdvTXBjUHViS2V5KGJpdGdvS2V5LmFybW9yKCksICdtcGN2MScpLCAnSW52YWxpZCBCaXRHbyBHUEcgcHVibGljIGtleScpO1xuICAgIH1cbiAgICBjb25zdCBlbmNVc2VyVG9CaXRHb01lc3NhZ2UgPSBhd2FpdCBlbmNyeXB0VGV4dCh1c2VyS2V5U2hhcmUucHJpdmF0ZVNoYXJlLCBiaXRnb0tleSk7XG4gICAgY29uc3QgZW5jQmFja3VwVG9CaXRHb01lc3NhZ2UgPSBhd2FpdCBlbmNyeXB0VGV4dChiYWNrdXBLZXlTaGFyZS5wcml2YXRlU2hhcmUsIGJpdGdvS2V5KTtcblxuICAgIGNvbnN0IGNyZWF0ZUJpdEdvTVBDUGFyYW1zOiBBZGRLZXljaGFpbk9wdGlvbnMgPSB7XG4gICAgICBrZXlUeXBlLFxuICAgICAgc291cmNlOiAnYml0Z28nLFxuICAgICAga2V5U2hhcmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tOiAndXNlcicsXG4gICAgICAgICAgdG86ICdiaXRnbycsXG4gICAgICAgICAgcHVibGljU2hhcmU6IHVzZXJLZXlTaGFyZS5wdWJsaWNTaGFyZSxcbiAgICAgICAgICBwcml2YXRlU2hhcmU6IGVuY1VzZXJUb0JpdEdvTWVzc2FnZSxcbiAgICAgICAgICBwcml2YXRlU2hhcmVQcm9vZjogdXNlcktleVNoYXJlLnByaXZhdGVTaGFyZVByb29mLFxuICAgICAgICAgIHZzc1Byb29mOiB1c2VyS2V5U2hhcmUudnNzUHJvb2YsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tOiAnYmFja3VwJyxcbiAgICAgICAgICB0bzogJ2JpdGdvJyxcbiAgICAgICAgICBwdWJsaWNTaGFyZTogYmFja3VwS2V5U2hhcmUucHVibGljU2hhcmUsXG4gICAgICAgICAgcHJpdmF0ZVNoYXJlOiBlbmNCYWNrdXBUb0JpdEdvTWVzc2FnZSxcbiAgICAgICAgICBwcml2YXRlU2hhcmVQcm9vZjogYmFja3VwS2V5U2hhcmUucHJpdmF0ZVNoYXJlUHJvb2YsXG4gICAgICAgICAgdnNzUHJvb2Y6IGJhY2t1cEtleVNoYXJlLnZzc1Byb29mLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHVzZXJHUEdQdWJsaWNLZXk6IHVzZXJHcGdLZXkucHVibGljS2V5LFxuICAgICAgYmFja3VwR1BHUHVibGljS2V5OiBiYWNrdXBHcGdLZXkucHVibGljS2V5LFxuICAgICAgZW50ZXJwcmlzZTogZW50ZXJwcmlzZSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYmFzZUNvaW4ua2V5Y2hhaW5zKCkuYWRkKGNyZWF0ZUJpdEdvTVBDUGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIFVzZXIsIEJhY2t1cCwgYW5kIEJpdEdvIE1QQyBLZXljaGFpbnMuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMucGFzc3BocmFzZSAtIHBhc3NwaHJhc2UgdXNlZCB0byBlbmNyeXB0IHNpZ25pbmcgbWF0ZXJpYWxzIGNyZWF0ZWQgZm9yIFVzZXIgYW5kIEJhY2t1cFxuICAgKiBAcGFyYW0gcGFyYW1zLmVudGVycHJpc2UgLSBvcHRpb25hbCBlbnRlcnByaXNlIGlkIHRoYXQgd2lsbCBiZSBhdHRhY2hlZCB0byB0aGUgQml0R28gS2V5Y2hhaW5cbiAgICogQHBhcmFtIHBhcmFtcy5vcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGUgLSBvcHRpb25hbCBlbmNyeXB0aW9uIGNvZGUgdXNlZCB0byByZXNldCB0aGUgdXNlcidzIHBhc3N3b3JkLCBpZiBhYnNlbnQsIHBhc3N3b3JkIHJlY292ZXJ5IHdpbGwgbm90IHdvcmtcbiAgICovXG4gIGFic3RyYWN0IGNyZWF0ZUtleWNoYWlucyhwYXJhbXM6IHtcbiAgICBwYXNzcGhyYXNlOiBzdHJpbmc7XG4gICAgZW50ZXJwcmlzZT86IHN0cmluZztcbiAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gICAgd2ViYXV0aG5JbmZvPzogV2ViYXV0aG5LZXlFbmNyeXB0aW9uSW5mbztcbiAgfSk6IFByb21pc2U8S2V5Y2hhaW5zVHJpcGxldD47XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd291bGQgYmUgcmVzcG9uc2libGUgZm9yIHBvcHVsYXRpbmcgaW50ZW50c1xuICAgKiBiYXNlZCBvbiB0aGUgdHlwZSBvZiBjb2luIC8gc2lnIHNjaGVtZSB0aGUgY29pbiB1c2VzXG4gICAqIEBwYXJhbSB7SUJhc2VDb2lufSBiYXNlQ29pblxuICAgKiBAcGFyYW0ge1ByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9uc30gcGFyYW1zXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn1cbiAgICovXG4gIHBvcHVsYXRlSW50ZW50KGJhc2VDb2luOiBJQmFzZUNvaW4sIHBhcmFtczogUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zKTogUG9wdWxhdGVkSW50ZW50IHtcbiAgICBjb25zdCBjaGFpbiA9IHRoaXMuYmFzZUNvaW4uZ2V0Q2hhaW4oKTtcblxuICAgIGlmIChwYXJhbXMuaW50ZW50VHlwZSA9PT0gJ2N1c3RvbVR4JyAmJiBiYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ3NvbCcpIHtcbiAgICAgIGNvbnN0IGhhc1NvbEluc3RydWN0aW9ucyA9IHBhcmFtcy5zb2xJbnN0cnVjdGlvbnMgJiYgcGFyYW1zLnNvbEluc3RydWN0aW9ucy5sZW5ndGggPiAwO1xuICAgICAgY29uc3QgaGFzVmVyc2lvbmVkRGF0YSA9XG4gICAgICAgIHBhcmFtcy5zb2xWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEgJiZcbiAgICAgICAgcGFyYW1zLnNvbFZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YS52ZXJzaW9uZWRJbnN0cnVjdGlvbnMgJiZcbiAgICAgICAgcGFyYW1zLnNvbFZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YS52ZXJzaW9uZWRJbnN0cnVjdGlvbnMubGVuZ3RoID4gMDtcblxuICAgICAgYXNzZXJ0KFxuICAgICAgICBoYXNTb2xJbnN0cnVjdGlvbnMgfHwgaGFzVmVyc2lvbmVkRGF0YSxcbiAgICAgICAgYCdzb2xJbnN0cnVjdGlvbnMnIG9yICdzb2xWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEnIGlzIHJlcXVpcmVkIGZvciBjdXN0b21UeCBpbnRlbnRgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMuaW50ZW50VHlwZSA9PT0gJ2N1c3RvbVR4JyAmJiBiYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ2FwdCcpIHtcbiAgICAgIGFzc2VydChcbiAgICAgICAgcGFyYW1zLmFwdG9zQ3VzdG9tVHJhbnNhY3Rpb25QYXJhbXMsXG4gICAgICAgIGAnYXB0b3NDdXN0b21UcmFuc2FjdGlvblBhcmFtcycgaXMgYSByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yIGN1c3RvbVR4IGludGVudGBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFsndHJhbnNmZXJBY2NlcHQnLCAndHJhbnNmZXJSZWplY3QnXS5pbmNsdWRlcyhwYXJhbXMuaW50ZW50VHlwZSkgJiYgYmFzZUNvaW4uZ2V0RmFtaWx5KCkgPT09ICdjYW50b24nKSB7XG4gICAgICBhc3NlcnQocGFyYW1zLnR4UmVxdWVzdElkLCBgJ3R4UmVxdWVzdElkJyBpcyByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yICR7cGFyYW1zLmludGVudFR5cGV9IGludGVudGApO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMuaW50ZW50VHlwZSA9PT0gJ3RyYW5zZmVyT2ZmZXJXaXRoZHJhd24nICYmIGJhc2VDb2luLmdldEZhbWlseSgpID09PSAnY2FudG9uJykge1xuICAgICAgYXNzZXJ0KHBhcmFtcy50cmFuc2Zlck9mZmVySWQsIGAndHJhbnNmZXJPZmZlcklkJyBpcyByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yICR7cGFyYW1zLmludGVudFR5cGV9IGludGVudGApO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMuaW50ZW50VHlwZSA9PT0gJ2NhbnRvbkNvbW1hbmQnKSB7XG4gICAgICBhc3NlcnQoYmFzZUNvaW4uZ2V0RmFtaWx5KCkgPT09ICdjYW50b24nLCBgJ2NhbnRvbkNvbW1hbmQnIGludGVudCBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgdGhlIGNhbnRvbiBjb2luIGZhbWlseWApO1xuXG4gICAgICBjb25zdCB7IGNhbnRvbkNvbW1hbmRQYXJhbXMgfSA9IHBhcmFtcztcbiAgICAgIGFzc2VydChjYW50b25Db21tYW5kUGFyYW1zLCBgJ2NhbnRvbkNvbW1hbmRQYXJhbXMnIGlzIHJlcXVpcmVkIGZvciAke3BhcmFtcy5pbnRlbnRUeXBlfSBpbnRlbnRgKTtcblxuICAgICAgY29uc3QgaXNQbGFpbk9iamVjdCA9ICh2OiB1bmtub3duKTogYm9vbGVhbiA9PlxuICAgICAgICB2ICE9PSBudWxsICYmIHYgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgdiA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodik7XG5cbiAgICAgIGNvbnN0IHsgY29tbWFuZCwgYWN0QXMgfSA9IGNhbnRvbkNvbW1hbmRQYXJhbXM7XG4gICAgICBhc3NlcnQoaXNQbGFpbk9iamVjdChjb21tYW5kKSwgYCdjYW50b25Db21tYW5kUGFyYW1zLmNvbW1hbmQnIG11c3QgYmUgYSBub24tbnVsbCBwbGFpbiBvYmplY3RgKTtcblxuICAgICAgY29uc3QgaGFzQ3JlYXRlID0gJ0NyZWF0ZUNvbW1hbmQnIGluIGNvbW1hbmQgJiYgaXNQbGFpbk9iamVjdChjb21tYW5kWydDcmVhdGVDb21tYW5kJ10pO1xuICAgICAgY29uc3QgaGFzRXhlcmNpc2UgPSAnRXhlcmNpc2VDb21tYW5kJyBpbiBjb21tYW5kICYmIGlzUGxhaW5PYmplY3QoY29tbWFuZFsnRXhlcmNpc2VDb21tYW5kJ10pO1xuICAgICAgYXNzZXJ0KFxuICAgICAgICBoYXNDcmVhdGUgIT09IGhhc0V4ZXJjaXNlLFxuICAgICAgICBgJ2NhbnRvbkNvbW1hbmRQYXJhbXMuY29tbWFuZCcgbXVzdCBjb250YWluIGV4YWN0bHkgb25lIG9mIENyZWF0ZUNvbW1hbmQgb3IgRXhlcmNpc2VDb21tYW5kIGFzIGEgbm9uLW51bGwgcGxhaW4gb2JqZWN0YFxuICAgICAgKTtcblxuICAgICAgYXNzZXJ0KFxuICAgICAgICBBcnJheS5pc0FycmF5KGFjdEFzKSAmJiBhY3RBcy5sZW5ndGggPiAwICYmIGFjdEFzLmV2ZXJ5KChwKSA9PiB0eXBlb2YgcCA9PT0gJ3N0cmluZycgJiYgcC50cmltKCkgIT09ICcnKSxcbiAgICAgICAgYCdjYW50b25Db21tYW5kUGFyYW1zLmFjdEFzJyBtdXN0IGJlIGEgbm9uLWVtcHR5IGFycmF5IG9mIG5vbi1lbXB0eSBzdHJpbmdzIGZvciAke3BhcmFtcy5pbnRlbnRUeXBlfSBpbnRlbnRgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICFbXG4gICAgICAgICdhY2NlbGVyYXRpb24nLFxuICAgICAgICAnZmlsbE5vbmNlJyxcbiAgICAgICAgJ3RyYW5zZmVyVG9rZW4nLFxuICAgICAgICAndG9rZW5BcHByb3ZhbCcsXG4gICAgICAgICdjdXN0b21UeCcsXG4gICAgICAgICd0cmFuc2ZlckFjY2VwdCcsXG4gICAgICAgICd0cmFuc2ZlclJlamVjdCcsXG4gICAgICAgICd0cmFuc2Zlck9mZmVyV2l0aGRyYXduJyxcbiAgICAgICAgJ2JyaWRnZUZ1bmRzJyxcbiAgICAgICAgJ2NhbnRvbkNvbW1hbmQnLFxuICAgICAgXS5pbmNsdWRlcyhwYXJhbXMuaW50ZW50VHlwZSlcbiAgICApIHtcbiAgICAgIGFzc2VydChwYXJhbXMucmVjaXBpZW50cywgYCdyZWNpcGllbnRzJyBpcyBhIHJlcXVpcmVkIHBhcmFtZXRlciBmb3IgJHtwYXJhbXMuaW50ZW50VHlwZX0gaW50ZW50YCk7XG4gICAgfVxuICAgIGNvbnN0IGludGVudFJlY2lwaWVudHMgPSBwYXJhbXMucmVjaXBpZW50cz8ubWFwKChyZWNpcGllbnQpID0+IHtcbiAgICAgIGNvbnN0IGZvcm1hdHRlZFJlY2lwaWVudDogSW50ZW50UmVjaXBpZW50ID0ge1xuICAgICAgICBhZGRyZXNzOiB7IGFkZHJlc3M6IHJlY2lwaWVudC5hZGRyZXNzIH0sXG4gICAgICAgIGFtb3VudDogeyB2YWx1ZTogYCR7cmVjaXBpZW50LmFtb3VudH1gLCBzeW1ib2w6IHJlY2lwaWVudC50b2tlbk5hbWUgPyByZWNpcGllbnQudG9rZW5OYW1lIDogY2hhaW4gfSxcbiAgICAgIH07XG5cbiAgICAgIGlmIChyZWNpcGllbnQuZGF0YSkge1xuICAgICAgICBmb3JtYXR0ZWRSZWNpcGllbnQuZGF0YSA9IHJlY2lwaWVudC5kYXRhO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IHRva2VuRGF0YSB9ID0gcmVjaXBpZW50O1xuICAgICAgaWYgKHRva2VuRGF0YSAmJiAodG9rZW5EYXRhLnRva2VuQ29udHJhY3RBZGRyZXNzIHx8IHRva2VuRGF0YS50b2tlbk5hbWUpKSB7XG4gICAgICAgIC8vIHRva2VuIHJlbGF0ZWQgcmVjaXBpZW50IGRhdGEgZ2V0cyB2YWxpZGF0ZWQgaW4gV1BcbiAgICAgICAgaWYgKCEodG9rZW5EYXRhLnRva2VuVHlwZSAmJiB0b2tlbkRhdGEudG9rZW5RdWFudGl0eSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAndG9rZW4gdHlwZSBhbmQgcXVhbnRpdHkgaXMgcmVxdWlyZWQgdG8gcmVxdWVzdCBhIHRyYW5zYWN0aW9uIHdpdGggaW50ZW50IHRvIHRyYW5zZmVyIGEgdG9rZW4nXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0b2tlbkRhdGEudG9rZW5OYW1lID0gdGhpcy5nZXRUb2tlbk5hbWUoYmFzZUNvaW4sIHRva2VuRGF0YSk7XG4gICAgICAgIGlmICh0b2tlbkRhdGEudG9rZW5OYW1lKSB7XG4gICAgICAgICAgZm9ybWF0dGVkUmVjaXBpZW50LmFtb3VudC5zeW1ib2wgPSB0b2tlbkRhdGEudG9rZW5OYW1lO1xuICAgICAgICB9XG4gICAgICAgIGZvcm1hdHRlZFJlY2lwaWVudC50b2tlbkRhdGEgPSB0b2tlbkRhdGE7XG4gICAgICB9XG4gICAgICByZXR1cm4gZm9ybWF0dGVkUmVjaXBpZW50O1xuICAgIH0pO1xuXG4gICAgY29uc3QgYmFzZUludGVudDogUG9wdWxhdGVkSW50ZW50ID0ge1xuICAgICAgaW50ZW50VHlwZTogcGFyYW1zLmludGVudFR5cGUsXG4gICAgICBzZXF1ZW5jZUlkOiBwYXJhbXMuc2VxdWVuY2VJZCxcbiAgICAgIGNvbW1lbnQ6IHBhcmFtcy5jb21tZW50LFxuICAgICAgbm9uY2U6IHBhcmFtcy5ub25jZSxcbiAgICAgIHJlY2lwaWVudHM6IGludGVudFJlY2lwaWVudHMsXG4gICAgICB0b2tlbk5hbWU6IHBhcmFtcy50b2tlbk5hbWUsXG4gICAgICBpc1Rlc3RUcmFuc2FjdGlvbjogcGFyYW1zLmlzVGVzdFRyYW5zYWN0aW9uLFxuICAgIH07XG5cbiAgICBpZiAoYmFzZUNvaW4uaXNFVk0oKSAmJiBiYXNlQ29pbi5zdXBwb3J0c1RzcygpKSB7XG4gICAgICBzd2l0Y2ggKHBhcmFtcy5pbnRlbnRUeXBlKSB7XG4gICAgICAgIGNhc2UgJ3BheW1lbnQnOlxuICAgICAgICBjYXNlICd0cmFuc2ZlclRva2VuJzpcbiAgICAgICAgY2FzZSAnZmlsbE5vbmNlJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZUludGVudCxcbiAgICAgICAgICAgIHNlbGZTZW5kOiBwYXJhbXMuc2VsZlNlbmQsXG4gICAgICAgICAgICBmZWVPcHRpb25zOiBwYXJhbXMuZmVlT3B0aW9ucyxcbiAgICAgICAgICAgIGZlZVRva2VuOiBwYXJhbXMuZmVlVG9rZW4sXG4gICAgICAgICAgICBob3BQYXJhbXM6IHBhcmFtcy5ob3BQYXJhbXMsXG4gICAgICAgICAgICBpc1RzczogcGFyYW1zLmlzVHNzLFxuICAgICAgICAgICAgbm9uY2U6IHBhcmFtcy5ub25jZSxcbiAgICAgICAgICAgIGN1c3RvZGlhblRyYW5zYWN0aW9uSWQ6IHBhcmFtcy5jdXN0b2RpYW5UcmFuc2FjdGlvbklkLFxuICAgICAgICAgICAgcmVjZWl2ZUFkZHJlc3M6IHBhcmFtcy5yZWNlaXZlQWRkcmVzcyxcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlICdhY2NlbGVyYXRpb24nOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5iYXNlSW50ZW50LFxuICAgICAgICAgICAgdHhpZDogcGFyYW1zLmxvd0ZlZVR4aWQsXG4gICAgICAgICAgICByZWNlaXZlQWRkcmVzczogcGFyYW1zLnJlY2VpdmVBZGRyZXNzLFxuICAgICAgICAgICAgZmVlT3B0aW9uczogcGFyYW1zLmZlZU9wdGlvbnMsXG4gICAgICAgICAgICBmZWVUb2tlbjogcGFyYW1zLmZlZVRva2VuLFxuICAgICAgICAgIH07XG4gICAgICAgIGNhc2UgJ3Rva2VuQXBwcm92YWwnOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5iYXNlSW50ZW50LFxuICAgICAgICAgICAgdG9rZW5OYW1lOiBwYXJhbXMudG9rZW5OYW1lLFxuICAgICAgICAgICAgZmVlT3B0aW9uczogcGFyYW1zLmZlZU9wdGlvbnMsXG4gICAgICAgICAgICBmZWVUb2tlbjogcGFyYW1zLmZlZVRva2VuLFxuICAgICAgICAgIH07XG4gICAgICAgIGNhc2UgJ2JyaWRnZUZ1bmRzJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZUludGVudCxcbiAgICAgICAgICAgIGFtb3VudDogcGFyYW1zLmFtb3VudCxcbiAgICAgICAgICAgIGZlZU9wdGlvbnM6IHBhcmFtcy5mZWVPcHRpb25zLFxuICAgICAgICAgICAgZmVlVG9rZW46IHBhcmFtcy5mZWVUb2tlbixcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlICdleHBvcnQnOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5iYXNlSW50ZW50LFxuICAgICAgICAgICAgZmVlT3B0aW9uczogcGFyYW1zLmZlZU9wdGlvbnMsXG4gICAgICAgICAgICBmZWVUb2tlbjogcGFyYW1zLmZlZVRva2VuLFxuICAgICAgICAgICAgbm9uY2U6IHBhcmFtcy5ub25jZSxcbiAgICAgICAgICB9O1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgaW50ZW50IHR5cGUgJHtwYXJhbXMuaW50ZW50VHlwZX1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmJhc2VDb2luLnNldENvaW5TcGVjaWZpY0ZpZWxkc0luSW50ZW50KGJhc2VJbnRlbnQsIHBhcmFtcyk7XG5cbiAgICBpZiAocGFyYW1zLmZlZU9wdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYmFzZUludGVudCxcbiAgICAgICAgbWVtbzogcGFyYW1zLm1lbW8/LnZhbHVlLFxuICAgICAgICB0b2tlbjogcGFyYW1zLnRva2VuTmFtZSxcbiAgICAgICAgZW5hYmxlVG9rZW5zOiBwYXJhbXMuZW5hYmxlVG9rZW5zLFxuICAgICAgICBmZWVPcHRpb25zOiBwYXJhbXMuZmVlT3B0aW9ucyxcbiAgICAgICAgZmVlVG9rZW46IHBhcmFtcy5mZWVUb2tlbixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmJhc2VJbnRlbnQsXG4gICAgICBtZW1vOiBwYXJhbXMubWVtbz8udmFsdWUsXG4gICAgICB0b2tlbjogcGFyYW1zLnRva2VuTmFtZSxcbiAgICAgIGVuYWJsZVRva2VuczogcGFyYW1zLmVuYWJsZVRva2VucyxcbiAgICAgIGZlZVRva2VuOiBwYXJhbXMuZmVlVG9rZW4sXG4gICAgfTtcbiAgfVxuXG4gIGdldFRva2VuTmFtZShiYXNlQ29pbjogSUJhc2VDb2luLCB0b2tlbkRhdGE6IFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0b2tlbkRhdGEudG9rZW5OYW1lKSB7XG4gICAgICByZXR1cm4gdG9rZW5EYXRhLnRva2VuTmFtZTtcbiAgICB9XG4gICAgY29uc3QgbmV0d29ya1ByZWZpeCA9IGJhc2VDb2luLmdldENvbmZpZygpLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuVEVTVE5FVCA/ICd0JyA6ICcnO1xuICAgIGNvbnN0IHRva2VuU3RhdGljc0tleSA9IGAke25ldHdvcmtQcmVmaXh9JHtiYXNlQ29pbi5nZXRGYW1pbHkoKX06JHt0b2tlbkRhdGEudG9rZW5Db250cmFjdEFkZHJlc3N9YDtcbiAgICBpZiAoY29pbnMuaGFzKHRva2VuU3RhdGljc0tleSkpIHtcbiAgICAgIGNvbnN0IHRva2VuU3RhdGljcyA9IGNvaW5zLmdldCh0b2tlblN0YXRpY3NLZXkpO1xuICAgICAgdG9rZW5EYXRhLnRva2VuTmFtZSA9IHRva2VuU3RhdGljcy5uYW1lO1xuICAgIH1cbiAgICByZXR1cm4gdG9rZW5EYXRhLnRva2VuTmFtZTtcbiAgfVxufVxuIl19
|
|
238
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXBjVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvbXBjVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0dBRUc7QUFDSCxvREFBNEI7QUFDNUIscUNBQWtGO0FBSWxGLGlEQUFnRTtBQU9oRSxzREFBd0Y7QUFDeEYsaURBQXlEO0FBU3pELE1BQXNCLFFBQVE7SUFJNUIsWUFBWSxLQUFnQixFQUFFLFFBQW1CO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFUyxLQUFLLENBQUMsbUJBQW1CLENBQUMsWUFBb0IsRUFBRSxVQUFxQztRQUM3RixNQUFNLG1CQUFtQixHQUFHLE1BQU0sSUFBQSxxQkFBVyxFQUFDO1lBQzVDLGNBQWMsRUFBRSxZQUFZO1NBQzdCLENBQUMsQ0FBQztRQUNILE1BQU0saUJBQWlCLEdBQUcsTUFBTSxJQUFBLHdCQUFjLEVBQUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFdEYsTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixNQUFNLElBQUEsaUJBQU8sRUFBQztZQUNaLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsY0FBYyxFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDbkMsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQ0gsQ0FBQyxJQUFJLENBQUM7UUFFUCxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFUyxLQUFLLENBQUMsdUJBQXVCLENBQ3JDLFVBQXFDLEVBQ3JDLFlBQXVDLEVBQ3ZDLFlBQXlCLEVBQ3pCLGNBQTJCLEVBQzNCLE9BQWdCLEVBQ2hCLFVBQW1CO1FBRW5CLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxJQUFBLGdDQUFpQixFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMs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QUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUsscUJBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzNGLE1BQU0sZUFBZSxHQUFHLEdBQUcsYUFBYSxHQUFHLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxTQUFTLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNwRyxJQUFJLGVBQUssQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUMvQixNQUFNLFlBQVksR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2hELFNBQVMsQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQztRQUMxQyxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQXBTRCw0QkFvU0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBkZWNyeXB0LCByZWFkTWVzc2FnZSwgcmVhZFByaXZhdGVLZXksIFNlcmlhbGl6ZWRLZXlQYWlyIH0gZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgeyBJQmFzZUNvaW4sIEtleWNoYWluc1RyaXBsZXQgfSBmcm9tICcuLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgQWRkS2V5Y2hhaW5PcHRpb25zLCBLZXljaGFpbiwgS2V5VHlwZSwgV2ViYXV0aG5LZXlFbmNyeXB0aW9uSW5mbyB9IGZyb20gJy4uL2tleWNoYWluJztcbmltcG9ydCB7IGVuY3J5cHRUZXh0LCBnZXRCaXRnb0dwZ1B1YktleSB9IGZyb20gJy4vb3BlbmdwZ1V0aWxzJztcbmltcG9ydCB7XG4gIEludGVudFJlY2lwaWVudCxcbiAgUG9wdWxhdGVkSW50ZW50LFxuICBQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnMsXG4gIFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXMsXG59IGZyb20gJy4vdHNzL2Jhc2VUeXBlcyc7XG5pbXBvcnQgeyBlbnZSZXF1aXJlc0JpdGdvUHViR3BnS2V5Q29uZmlnLCBpc0JpdGdvTXBjUHViS2V5IH0gZnJvbSAnLi4vdHNzL2JpdGdvUHViS2V5cyc7XG5pbXBvcnQgeyBjb2lucywgTmV0d29ya1R5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcblxuZXhwb3J0IGludGVyZmFjZSBNcGNLZXlTaGFyZSB7XG4gIHB1YmxpY1NoYXJlOiBzdHJpbmc7XG4gIHByaXZhdGVTaGFyZTogc3RyaW5nO1xuICBwcml2YXRlU2hhcmVQcm9vZj86IHN0cmluZztcbiAgdnNzUHJvb2Y/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNcGNVdGlscyB7XG4gIHByb3RlY3RlZCBiaXRnbzogQml0R29CYXNlO1xuICBwcm90ZWN0ZWQgYmFzZUNvaW46IElCYXNlQ29pbjtcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBiYXNlQ29pbjogSUJhc2VDb2luKSB7XG4gICAgdGhpcy5iaXRnbyA9IGJpdGdvO1xuICAgIHRoaXMuYmFzZUNvaW4gPSBiYXNlQ29pbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBkZWNyeXB0UHJpdmF0ZVNoYXJlKHByaXZhdGVTaGFyZTogc3RyaW5nLCB1c2VyR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBwcml2YXRlU2hhcmVNZXNzYWdlID0gYXdhaXQgcmVhZE1lc3NhZ2Uoe1xuICAgICAgYXJtb3JlZE1lc3NhZ2U6IHByaXZhdGVTaGFyZSxcbiAgICB9KTtcbiAgICBjb25zdCB1c2VyR3BnUHJpdmF0ZUtleSA9IGF3YWl0IHJlYWRQcml2YXRlS2V5KHsgYXJtb3JlZEtleTogdXNlckdwZ0tleS5wcml2YXRlS2V5IH0pO1xuXG4gICAgY29uc3QgZGVjcnlwdGVkUHJpdmF0ZVNoYXJlID0gKFxuICAgICAgYXdhaXQgZGVjcnlwdCh7XG4gICAgICAgIG1lc3NhZ2U6IHByaXZhdGVTaGFyZU1lc3NhZ2UsXG4gICAgICAgIGRlY3J5cHRpb25LZXlzOiBbdXNlckdwZ1ByaXZhdGVLZXldLFxuICAgICAgICBmb3JtYXQ6ICd1dGY4JyxcbiAgICAgIH0pXG4gICAgKS5kYXRhO1xuXG4gICAgcmV0dXJuIGRlY3J5cHRlZFByaXZhdGVTaGFyZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjcmVhdGVCaXRnb0tleWNoYWluSW5XUChcbiAgICB1c2VyR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIGJhY2t1cEdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICB1c2VyS2V5U2hhcmU6IE1wY0tleVNoYXJlLFxuICAgIGJhY2t1cEtleVNoYXJlOiBNcGNLZXlTaGFyZSxcbiAgICBrZXlUeXBlOiBLZXlUeXBlLFxuICAgIGVudGVycHJpc2U/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxLZXljaGFpbj4ge1xuICAgIGNvbnN0IGJpdGdvS2V5ID0gKGF3YWl0IGdldEJpdGdvR3BnUHViS2V5KHRoaXMuYml0Z28pKS5tcGNWMTtcbiAgICBpZiAoZW52UmVxdWlyZXNCaXRnb1B1YkdwZ0tleUNvbmZpZyh0aGlzLmJpdGdvLmdldEVudigpKSkge1xuICAgICAgLy8gRW5zdXJlIHRoZSBwdWJsaWMga2V5IGlzIG9uZSBvZiB0aGUgZXhwZWN0ZWQgQml0R28gcHVibGljIGtleXMgd2hlbiBpbiB0ZXN0IG9yIHByb2QuXG4gICAgICBhc3NlcnQoaXNCaXRnb01wY1B1YktleShiaXRnb0tleS5hcm1vcigpLCAnbXBjdjEnKSwgJ0ludmFsaWQgQml0R28gR1BHIHB1YmxpYyBrZXknKTtcbiAgICB9XG4gICAgY29uc3QgZW5jVXNlclRvQml0R29NZXNzYWdlID0gYXdhaXQgZW5jcnlwdFRleHQodXNlcktleVNoYXJlLnByaXZhdGVTaGFyZSwgYml0Z29LZXkpO1xuICAgIGNvbnN0IGVuY0JhY2t1cFRvQml0R29NZXNzYWdlID0gYXdhaXQgZW5jcnlwdFRleHQoYmFja3VwS2V5U2hhcmUucHJpdmF0ZVNoYXJlLCBiaXRnb0tleSk7XG5cbiAgICBjb25zdCBjcmVhdGVCaXRHb01QQ1BhcmFtczogQWRkS2V5Y2hhaW5PcHRpb25zID0ge1xuICAgICAga2V5VHlwZSxcbiAgICAgIHNvdXJjZTogJ2JpdGdvJyxcbiAgICAgIGtleVNoYXJlczogW1xuICAgICAgICB7XG4gICAgICAgICAgZnJvbTogJ3VzZXInLFxuICAgICAgICAgIHRvOiAnYml0Z28nLFxuICAgICAgICAgIHB1YmxpY1NoYXJlOiB1c2VyS2V5U2hhcmUucHVibGljU2hhcmUsXG4gICAgICAgICAgcHJpdmF0ZVNoYXJlOiBlbmNVc2VyVG9CaXRHb01lc3NhZ2UsXG4gICAgICAgICAgcHJpdmF0ZVNoYXJlUHJvb2Y6IHVzZXJLZXlTaGFyZS5wcml2YXRlU2hhcmVQcm9vZixcbiAgICAgICAgICB2c3NQcm9vZjogdXNlcktleVNoYXJlLnZzc1Byb29mLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbTogJ2JhY2t1cCcsXG4gICAgICAgICAgdG86ICdiaXRnbycsXG4gICAgICAgICAgcHVibGljU2hhcmU6IGJhY2t1cEtleVNoYXJlLnB1YmxpY1NoYXJlLFxuICAgICAgICAgIHByaXZhdGVTaGFyZTogZW5jQmFja3VwVG9CaXRHb01lc3NhZ2UsXG4gICAgICAgICAgcHJpdmF0ZVNoYXJlUHJvb2Y6IGJhY2t1cEtleVNoYXJlLnByaXZhdGVTaGFyZVByb29mLFxuICAgICAgICAgIHZzc1Byb29mOiBiYWNrdXBLZXlTaGFyZS52c3NQcm9vZixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB1c2VyR1BHUHVibGljS2V5OiB1c2VyR3BnS2V5LnB1YmxpY0tleSxcbiAgICAgIGJhY2t1cEdQR1B1YmxpY0tleTogYmFja3VwR3BnS2V5LnB1YmxpY0tleSxcbiAgICAgIGVudGVycHJpc2U6IGVudGVycHJpc2UsXG4gICAgfTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJhc2VDb2luLmtleWNoYWlucygpLmFkZChjcmVhdGVCaXRHb01QQ1BhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBVc2VyLCBCYWNrdXAsIGFuZCBCaXRHbyBNUEMgS2V5Y2hhaW5zLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zLnBhc3NwaHJhc2UgLSBwYXNzcGhyYXNlIHVzZWQgdG8gZW5jcnlwdCBzaWduaW5nIG1hdGVyaWFscyBjcmVhdGVkIGZvciBVc2VyIGFuZCBCYWNrdXBcbiAgICogQHBhcmFtIHBhcmFtcy5lbnRlcnByaXNlIC0gb3B0aW9uYWwgZW50ZXJwcmlzZSBpZCB0aGF0IHdpbGwgYmUgYXR0YWNoZWQgdG8gdGhlIEJpdEdvIEtleWNoYWluXG4gICAqIEBwYXJhbSBwYXJhbXMub3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlIC0gb3B0aW9uYWwgZW5jcnlwdGlvbiBjb2RlIHVzZWQgdG8gcmVzZXQgdGhlIHVzZXIncyBwYXNzd29yZCwgaWYgYWJzZW50LCBwYXNzd29yZCByZWNvdmVyeSB3aWxsIG5vdCB3b3JrXG4gICAqL1xuICBhYnN0cmFjdCBjcmVhdGVLZXljaGFpbnMocGFyYW1zOiB7XG4gICAgcGFzc3BocmFzZTogc3RyaW5nO1xuICAgIGVudGVycHJpc2U/OiBzdHJpbmc7XG4gICAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlPzogc3RyaW5nO1xuICAgIHdlYmF1dGhuSW5mbz86IFdlYmF1dGhuS2V5RW5jcnlwdGlvbkluZm87XG4gIH0pOiBQcm9taXNlPEtleWNoYWluc1RyaXBsZXQ+O1xuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdvdWxkIGJlIHJlc3BvbnNpYmxlIGZvciBwb3B1bGF0aW5nIGludGVudHNcbiAgICogYmFzZWQgb24gdGhlIHR5cGUgb2YgY29pbiAvIHNpZyBzY2hlbWUgdGhlIGNvaW4gdXNlc1xuICAgKiBAcGFyYW0ge0lCYXNlQ29pbn0gYmFzZUNvaW5cbiAgICogQHBhcmFtIHtQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnN9IHBhcmFtc1xuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59XG4gICAqL1xuICBwb3B1bGF0ZUludGVudChiYXNlQ29pbjogSUJhc2VDb2luLCBwYXJhbXM6IFByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9ucyk6IFBvcHVsYXRlZEludGVudCB7XG4gICAgY29uc3QgY2hhaW4gPSB0aGlzLmJhc2VDb2luLmdldENoYWluKCk7XG5cbiAgICBpZiAocGFyYW1zLmludGVudFR5cGUgPT09ICdjdXN0b21UeCcgJiYgYmFzZUNvaW4uZ2V0RmFtaWx5KCkgPT09ICdzb2wnKSB7XG4gICAgICBjb25zdCBoYXNTb2xJbnN0cnVjdGlvbnMgPSBwYXJhbXMuc29sSW5zdHJ1Y3Rpb25zICYmIHBhcmFtcy5zb2xJbnN0cnVjdGlvbnMubGVuZ3RoID4gMDtcbiAgICAgIGNvbnN0IGhhc1ZlcnNpb25lZERhdGEgPVxuICAgICAgICBwYXJhbXMuc29sVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhICYmXG4gICAgICAgIHBhcmFtcy5zb2xWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEudmVyc2lvbmVkSW5zdHJ1Y3Rpb25zICYmXG4gICAgICAgIHBhcmFtcy5zb2xWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEudmVyc2lvbmVkSW5zdHJ1Y3Rpb25zLmxlbmd0aCA+IDA7XG5cbiAgICAgIGFzc2VydChcbiAgICAgICAgaGFzU29sSW5zdHJ1Y3Rpb25zIHx8IGhhc1ZlcnNpb25lZERhdGEsXG4gICAgICAgIGAnc29sSW5zdHJ1Y3Rpb25zJyBvciAnc29sVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhJyBpcyByZXF1aXJlZCBmb3IgY3VzdG9tVHggaW50ZW50YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLmludGVudFR5cGUgPT09ICdjdXN0b21UeCcgJiYgYmFzZUNvaW4uZ2V0RmFtaWx5KCkgPT09ICdhcHQnKSB7XG4gICAgICBhc3NlcnQoXG4gICAgICAgIHBhcmFtcy5hcHRvc0N1c3RvbVRyYW5zYWN0aW9uUGFyYW1zLFxuICAgICAgICBgJ2FwdG9zQ3VzdG9tVHJhbnNhY3Rpb25QYXJhbXMnIGlzIGEgcmVxdWlyZWQgcGFyYW1ldGVyIGZvciBjdXN0b21UeCBpbnRlbnRgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChbJ3RyYW5zZmVyQWNjZXB0JywgJ3RyYW5zZmVyUmVqZWN0J10uaW5jbHVkZXMocGFyYW1zLmludGVudFR5cGUpICYmIGJhc2VDb2luLmdldEZhbWlseSgpID09PSAnY2FudG9uJykge1xuICAgICAgYXNzZXJ0KHBhcmFtcy50eFJlcXVlc3RJZCwgYCd0eFJlcXVlc3RJZCcgaXMgcmVxdWlyZWQgcGFyYW1ldGVyIGZvciAke3BhcmFtcy5pbnRlbnRUeXBlfSBpbnRlbnRgKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLmludGVudFR5cGUgPT09ICd0cmFuc2Zlck9mZmVyV2l0aGRyYXduJyAmJiBiYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ2NhbnRvbicpIHtcbiAgICAgIGFzc2VydChwYXJhbXMudHJhbnNmZXJPZmZlcklkLCBgJ3RyYW5zZmVyT2ZmZXJJZCcgaXMgcmVxdWlyZWQgcGFyYW1ldGVyIGZvciAke3BhcmFtcy5pbnRlbnRUeXBlfSBpbnRlbnRgKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLmludGVudFR5cGUgPT09ICdjYW50b25Db21tYW5kJykge1xuICAgICAgYXNzZXJ0KGJhc2VDb2luLmdldEZhbWlseSgpID09PSAnY2FudG9uJywgYCdjYW50b25Db21tYW5kJyBpbnRlbnQgaXMgb25seSBzdXBwb3J0ZWQgZm9yIHRoZSBjYW50b24gY29pbiBmYW1pbHlgKTtcblxuICAgICAgY29uc3QgeyBjYW50b25Db21tYW5kUGFyYW1zIH0gPSBwYXJhbXM7XG4gICAgICBhc3NlcnQoY2FudG9uQ29tbWFuZFBhcmFtcywgYCdjYW50b25Db21tYW5kUGFyYW1zJyBpcyByZXF1aXJlZCBmb3IgJHtwYXJhbXMuaW50ZW50VHlwZX0gaW50ZW50YCk7XG5cbiAgICAgIGNvbnN0IGlzUGxhaW5PYmplY3QgPSAodjogdW5rbm93bik6IGJvb2xlYW4gPT5cbiAgICAgICAgdiAhPT0gbnVsbCAmJiB2ICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIHYgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHYpO1xuXG4gICAgICBjb25zdCB7IGNvbW1hbmQsIGFjdEFzIH0gPSBjYW50b25Db21tYW5kUGFyYW1zO1xuICAgICAgYXNzZXJ0KGlzUGxhaW5PYmplY3QoY29tbWFuZCksIGAnY2FudG9uQ29tbWFuZFBhcmFtcy5jb21tYW5kJyBtdXN0IGJlIGEgbm9uLW51bGwgcGxhaW4gb2JqZWN0YCk7XG5cbiAgICAgIGNvbnN0IGhhc0NyZWF0ZSA9ICdDcmVhdGVDb21tYW5kJyBpbiBjb21tYW5kICYmIGlzUGxhaW5PYmplY3QoY29tbWFuZFsnQ3JlYXRlQ29tbWFuZCddKTtcbiAgICAgIGNvbnN0IGhhc0V4ZXJjaXNlID0gJ0V4ZXJjaXNlQ29tbWFuZCcgaW4gY29tbWFuZCAmJiBpc1BsYWluT2JqZWN0KGNvbW1hbmRbJ0V4ZXJjaXNlQ29tbWFuZCddKTtcbiAgICAgIGFzc2VydChcbiAgICAgICAgaGFzQ3JlYXRlICE9PSBoYXNFeGVyY2lzZSxcbiAgICAgICAgYCdjYW50b25Db21tYW5kUGFyYW1zLmNvbW1hbmQnIG11c3QgY29udGFpbiBleGFjdGx5IG9uZSBvZiBDcmVhdGVDb21tYW5kIG9yIEV4ZXJjaXNlQ29tbWFuZCBhcyBhIG5vbi1udWxsIHBsYWluIG9iamVjdGBcbiAgICAgICk7XG5cbiAgICAgIGFzc2VydChcbiAgICAgICAgQXJyYXkuaXNBcnJheShhY3RBcykgJiYgYWN0QXMubGVuZ3RoID4gMCAmJiBhY3RBcy5ldmVyeSgocCkgPT4gdHlwZW9mIHAgPT09ICdzdHJpbmcnICYmIHAudHJpbSgpICE9PSAnJyksXG4gICAgICAgIGAnY2FudG9uQ29tbWFuZFBhcmFtcy5hY3RBcycgbXVzdCBiZSBhIG5vbi1lbXB0eSBhcnJheSBvZiBub24tZW1wdHkgc3RyaW5ncyBmb3IgJHtwYXJhbXMuaW50ZW50VHlwZX0gaW50ZW50YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAhW1xuICAgICAgICAnYWNjZWxlcmF0aW9uJyxcbiAgICAgICAgJ2ZpbGxOb25jZScsXG4gICAgICAgICd0cmFuc2ZlclRva2VuJyxcbiAgICAgICAgJ3Rva2VuQXBwcm92YWwnLFxuICAgICAgICAnY3VzdG9tVHgnLFxuICAgICAgICAndHJhbnNmZXJBY2NlcHQnLFxuICAgICAgICAndHJhbnNmZXJSZWplY3QnLFxuICAgICAgICAndHJhbnNmZXJPZmZlcldpdGhkcmF3bicsXG4gICAgICAgICdicmlkZ2VGdW5kcycsXG4gICAgICAgICdjYW50b25Db21tYW5kJyxcbiAgICAgIF0uaW5jbHVkZXMocGFyYW1zLmludGVudFR5cGUpXG4gICAgKSB7XG4gICAgICBhc3NlcnQocGFyYW1zLnJlY2lwaWVudHMsIGAncmVjaXBpZW50cycgaXMgYSByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yICR7cGFyYW1zLmludGVudFR5cGV9IGludGVudGApO1xuICAgIH1cbiAgICBjb25zdCBpbnRlbnRSZWNpcGllbnRzID0gcGFyYW1zLnJlY2lwaWVudHM/Lm1hcCgocmVjaXBpZW50KSA9PiB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRSZWNpcGllbnQ6IEludGVudFJlY2lwaWVudCA9IHtcbiAgICAgICAgYWRkcmVzczogeyBhZGRyZXNzOiByZWNpcGllbnQuYWRkcmVzcyB9LFxuICAgICAgICBhbW91bnQ6IHsgdmFsdWU6IGAke3JlY2lwaWVudC5hbW91bnR9YCwgc3ltYm9sOiByZWNpcGllbnQudG9rZW5OYW1lID8gcmVjaXBpZW50LnRva2VuTmFtZSA6IGNoYWluIH0sXG4gICAgICB9O1xuXG4gICAgICBpZiAocmVjaXBpZW50LmRhdGEpIHtcbiAgICAgICAgZm9ybWF0dGVkUmVjaXBpZW50LmRhdGEgPSByZWNpcGllbnQuZGF0YTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyB0b2tlbkRhdGEgfSA9IHJlY2lwaWVudDtcbiAgICAgIGlmICh0b2tlbkRhdGEgJiYgKHRva2VuRGF0YS50b2tlbkNvbnRyYWN0QWRkcmVzcyB8fCB0b2tlbkRhdGEudG9rZW5OYW1lKSkge1xuICAgICAgICAvLyB0b2tlbiByZWxhdGVkIHJlY2lwaWVudCBkYXRhIGdldHMgdmFsaWRhdGVkIGluIFdQXG4gICAgICAgIGlmICghKHRva2VuRGF0YS50b2tlblR5cGUgJiYgdG9rZW5EYXRhLnRva2VuUXVhbnRpdHkpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgJ3Rva2VuIHR5cGUgYW5kIHF1YW50aXR5IGlzIHJlcXVpcmVkIHRvIHJlcXVlc3QgYSB0cmFuc2FjdGlvbiB3aXRoIGludGVudCB0byB0cmFuc2ZlciBhIHRva2VuJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdG9rZW5EYXRhLnRva2VuTmFtZSA9IHRoaXMuZ2V0VG9rZW5OYW1lKGJhc2VDb2luLCB0b2tlbkRhdGEpO1xuICAgICAgICBpZiAodG9rZW5EYXRhLnRva2VuTmFtZSkge1xuICAgICAgICAgIGZvcm1hdHRlZFJlY2lwaWVudC5hbW91bnQuc3ltYm9sID0gdG9rZW5EYXRhLnRva2VuTmFtZTtcbiAgICAgICAgfVxuICAgICAgICBmb3JtYXR0ZWRSZWNpcGllbnQudG9rZW5EYXRhID0gdG9rZW5EYXRhO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZvcm1hdHRlZFJlY2lwaWVudDtcbiAgICB9KTtcblxuICAgIGNvbnN0IGJhc2VJbnRlbnQ6IFBvcHVsYXRlZEludGVudCA9IHtcbiAgICAgIGludGVudFR5cGU6IHBhcmFtcy5pbnRlbnRUeXBlLFxuICAgICAgc2VxdWVuY2VJZDogcGFyYW1zLnNlcXVlbmNlSWQsXG4gICAgICBjb21tZW50OiBwYXJhbXMuY29tbWVudCxcbiAgICAgIG5vbmNlOiBwYXJhbXMubm9uY2UsXG4gICAgICByZWNpcGllbnRzOiBpbnRlbnRSZWNpcGllbnRzLFxuICAgICAgdG9rZW5OYW1lOiBwYXJhbXMudG9rZW5OYW1lLFxuICAgICAgaXNUZXN0VHJhbnNhY3Rpb246IHBhcmFtcy5pc1Rlc3RUcmFuc2FjdGlvbixcbiAgICB9O1xuXG4gICAgaWYgKGJhc2VDb2luLmlzRVZNKCkgJiYgYmFzZUNvaW4uc3VwcG9ydHNUc3MoKSkge1xuICAgICAgc3dpdGNoIChwYXJhbXMuaW50ZW50VHlwZSkge1xuICAgICAgICBjYXNlICdwYXltZW50JzpcbiAgICAgICAgY2FzZSAndHJhbnNmZXJUb2tlbic6XG4gICAgICAgIGNhc2UgJ2ZpbGxOb25jZSc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmJhc2VJbnRlbnQsXG4gICAgICAgICAgICBzZWxmU2VuZDogcGFyYW1zLnNlbGZTZW5kLFxuICAgICAgICAgICAgZmVlT3B0aW9uczogcGFyYW1zLmZlZU9wdGlvbnMsXG4gICAgICAgICAgICBmZWVUb2tlbjogcGFyYW1zLmZlZVRva2VuLFxuICAgICAgICAgICAgaG9wUGFyYW1zOiBwYXJhbXMuaG9wUGFyYW1zLFxuICAgICAgICAgICAgaXNUc3M6IHBhcmFtcy5pc1RzcyxcbiAgICAgICAgICAgIG5vbmNlOiBwYXJhbXMubm9uY2UsXG4gICAgICAgICAgICBjdXN0b2RpYW5UcmFuc2FjdGlvbklkOiBwYXJhbXMuY3VzdG9kaWFuVHJhbnNhY3Rpb25JZCxcbiAgICAgICAgICAgIHJlY2VpdmVBZGRyZXNzOiBwYXJhbXMucmVjZWl2ZUFkZHJlc3MsXG4gICAgICAgICAgfTtcbiAgICAgICAgY2FzZSAnYWNjZWxlcmF0aW9uJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZUludGVudCxcbiAgICAgICAgICAgIHR4aWQ6IHBhcmFtcy5sb3dGZWVUeGlkLFxuICAgICAgICAgICAgcmVjZWl2ZUFkZHJlc3M6IHBhcmFtcy5yZWNlaXZlQWRkcmVzcyxcbiAgICAgICAgICAgIGZlZU9wdGlvbnM6IHBhcmFtcy5mZWVPcHRpb25zLFxuICAgICAgICAgICAgZmVlVG9rZW46IHBhcmFtcy5mZWVUb2tlbixcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlICd0b2tlbkFwcHJvdmFsJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZUludGVudCxcbiAgICAgICAgICAgIHRva2VuTmFtZTogcGFyYW1zLnRva2VuTmFtZSxcbiAgICAgICAgICAgIGZlZU9wdGlvbnM6IHBhcmFtcy5mZWVPcHRpb25zLFxuICAgICAgICAgICAgZmVlVG9rZW46IHBhcmFtcy5mZWVUb2tlbixcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlICdicmlkZ2VGdW5kcyc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmJhc2VJbnRlbnQsXG4gICAgICAgICAgICBhbW91bnQ6IHBhcmFtcy5hbW91bnQsXG4gICAgICAgICAgICBmZWVPcHRpb25zOiBwYXJhbXMuZmVlT3B0aW9ucyxcbiAgICAgICAgICAgIGZlZVRva2VuOiBwYXJhbXMuZmVlVG9rZW4sXG4gICAgICAgICAgfTtcbiAgICAgICAgY2FzZSAnZXhwb3J0JzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZUludGVudCxcbiAgICAgICAgICAgIGZlZU9wdGlvbnM6IHBhcmFtcy5mZWVPcHRpb25zLFxuICAgICAgICAgICAgZmVlVG9rZW46IHBhcmFtcy5mZWVUb2tlbixcbiAgICAgICAgICAgIG5vbmNlOiBwYXJhbXMubm9uY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgY2FzZSAnZW5hYmxlVG9rZW4nOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5iYXNlSW50ZW50LFxuICAgICAgICAgICAgZW5hYmxlVG9rZW5zOiBwYXJhbXMuZW5hYmxlVG9rZW5zLFxuICAgICAgICAgICAgZmVlT3B0aW9uczogcGFyYW1zLmZlZU9wdGlvbnMsXG4gICAgICAgICAgICBmZWVUb2tlbjogcGFyYW1zLmZlZVRva2VuLFxuICAgICAgICAgIH07XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBpbnRlbnQgdHlwZSAke3BhcmFtcy5pbnRlbnRUeXBlfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuYmFzZUNvaW4uc2V0Q29pblNwZWNpZmljRmllbGRzSW5JbnRlbnQoYmFzZUludGVudCwgcGFyYW1zKTtcblxuICAgIGlmIChwYXJhbXMuZmVlT3B0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5iYXNlSW50ZW50LFxuICAgICAgICBtZW1vOiBwYXJhbXMubWVtbz8udmFsdWUsXG4gICAgICAgIHRva2VuOiBwYXJhbXMudG9rZW5OYW1lLFxuICAgICAgICBlbmFibGVUb2tlbnM6IHBhcmFtcy5lbmFibGVUb2tlbnMsXG4gICAgICAgIGZlZU9wdGlvbnM6IHBhcmFtcy5mZWVPcHRpb25zLFxuICAgICAgICBmZWVUb2tlbjogcGFyYW1zLmZlZVRva2VuLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uYmFzZUludGVudCxcbiAgICAgIG1lbW86IHBhcmFtcy5tZW1vPy52YWx1ZSxcbiAgICAgIHRva2VuOiBwYXJhbXMudG9rZW5OYW1lLFxuICAgICAgZW5hYmxlVG9rZW5zOiBwYXJhbXMuZW5hYmxlVG9rZW5zLFxuICAgICAgZmVlVG9rZW46IHBhcmFtcy5mZWVUb2tlbixcbiAgICB9O1xuICB9XG5cbiAgZ2V0VG9rZW5OYW1lKGJhc2VDb2luOiBJQmFzZUNvaW4sIHRva2VuRGF0YTogVG9rZW5UcmFuc2ZlclJlY2lwaWVudFBhcmFtcyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRva2VuRGF0YS50b2tlbk5hbWUpIHtcbiAgICAgIHJldHVybiB0b2tlbkRhdGEudG9rZW5OYW1lO1xuICAgIH1cbiAgICBjb25zdCBuZXR3b3JrUHJlZml4ID0gYmFzZUNvaW4uZ2V0Q29uZmlnKCkubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5URVNUTkVUID8gJ3QnIDogJyc7XG4gICAgY29uc3QgdG9rZW5TdGF0aWNzS2V5ID0gYCR7bmV0d29ya1ByZWZpeH0ke2Jhc2VDb2luLmdldEZhbWlseSgpfToke3Rva2VuRGF0YS50b2tlbkNvbnRyYWN0QWRkcmVzc31gO1xuICAgIGlmIChjb2lucy5oYXModG9rZW5TdGF0aWNzS2V5KSkge1xuICAgICAgY29uc3QgdG9rZW5TdGF0aWNzID0gY29pbnMuZ2V0KHRva2VuU3RhdGljc0tleSk7XG4gICAgICB0b2tlbkRhdGEudG9rZW5OYW1lID0gdG9rZW5TdGF0aWNzLm5hbWU7XG4gICAgfVxuICAgIHJldHVybiB0b2tlbkRhdGEudG9rZW5OYW1lO1xuICB9XG59XG4iXX0=
|