@bitgo-beta/sdk-coin-trx 1.0.2-beta.2249 → 1.0.2-beta.2250
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/dist/src/lib/utils.d.ts +3 -3
- package/dist/src/lib/utils.js +6 -6
- package/dist/src/trx.d.ts +9 -3
- package/dist/src/trx.d.ts.map +1 -1
- package/dist/src/trx.js +22 -8
- package/dist/src/trxToken.d.ts.map +1 -1
- package/dist/src/trxToken.js +8 -4
- package/dist/test/unit/trx.js +20 -7
- package/dist/test/unit/trxToken.js +34 -2
- package/dist/test/unit/verifyTransaction.js +54 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
package/dist/src/trxToken.js
CHANGED
|
@@ -106,10 +106,11 @@ class TrxToken extends trx_1.Trx {
|
|
|
106
106
|
if (recipients.length !== 1) {
|
|
107
107
|
throw new Error('invalid required property recipients');
|
|
108
108
|
}
|
|
109
|
-
// recipientHex has '41' hex prefix; convert to base58 for comparison
|
|
109
|
+
// recipientHex has '41' hex prefix; convert to base58 for comparison.
|
|
110
|
+
// Canonicalize the client-supplied address too so 0x... / 41... match base58 outputs (COINS-1575).
|
|
110
111
|
const actualDestination = lib_1.Utils.getBase58AddressFromHex(recipientHex);
|
|
111
112
|
const actualAmount = transferAmount.toString();
|
|
112
|
-
const expectedDestination = recipients[0].address;
|
|
113
|
+
const expectedDestination = lib_1.Utils.getBase58AddressFromHexAddress(recipients[0].address);
|
|
113
114
|
const expectedAmount = recipients[0].amount.toString();
|
|
114
115
|
if (actualAmount !== expectedAmount) {
|
|
115
116
|
throw new Error('transaction amount in txPrebuild does not match the value given by client');
|
|
@@ -126,7 +127,10 @@ class TrxToken extends trx_1.Trx {
|
|
|
126
127
|
if (!recipients) {
|
|
127
128
|
throw new Error('missing required property recipients');
|
|
128
129
|
}
|
|
129
|
-
|
|
130
|
+
// Outputs are base58; clients may pass base58, 0x..., or 41... — compare in canonical form.
|
|
131
|
+
const expectedAddress = lib_1.Utils.getBase58AddressFromHexAddress(recipients[0].address);
|
|
132
|
+
const actualAddress = lib_1.Utils.getBase58AddressFromHexAddress(tx.outputs[0].address);
|
|
133
|
+
if (expectedAddress === actualAddress && recipients[0].amount.toString() === tx.outputs[0].value.toString()) {
|
|
130
134
|
return true;
|
|
131
135
|
}
|
|
132
136
|
else {
|
|
@@ -135,4 +139,4 @@ class TrxToken extends trx_1.Trx {
|
|
|
135
139
|
}
|
|
136
140
|
}
|
|
137
141
|
exports.TrxToken = TrxToken;
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ4VG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJ4VG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0JBQTRCO0FBRTVCLGlEQUFvRTtBQUNwRSwyQ0FBMkM7QUFFM0Msb0RBQTRCO0FBQzVCLCtCQUErQztBQVUvQyxNQUFhLFFBQVMsU0FBUSxTQUFHO0lBRy9CLFlBQVksS0FBZ0IsRUFBRSxXQUEyQjtRQUN2RCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RixLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsc0JBQXNCLENBQUMsTUFBc0I7UUFDbEQsT0FBTyxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsTUFBTSxDQUFDLHVCQUF1QixDQUM1QixlQUFpQyxDQUFDLEdBQUcsZ0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLGdCQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFFN0YsTUFBTSxXQUFXLEdBQTJCLEVBQUUsQ0FBQztRQUMvQyxLQUFLLE1BQU0sS0FBSyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pDLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hFLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElB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QkFBbUIsQ0FBQyxXQUFXLEVBQUUsS0FBSyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO2dCQUMxRSxNQUFNLElBQUksS0FBSyxDQUFDLCtEQUErRCxDQUFDLENBQUM7WUFDbkYsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFFL0IsTUFBTSxTQUFTLEdBQUcsSUFBQSxvQkFBVSxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRCxNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVuQyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVSxJQUFLLFVBQVUsQ0FBQyxNQUFxQixDQUFDLFVBQVUsQ0FBQztRQUN2RixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFFRCxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3BHLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7UUFDakYsQ0FBQztJQUNILENBQUM7Q0FDRjtBQS9KRCw0QkErSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcnggfSBmcm9tICcuL3RyeCc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UsIENvaW5Db25zdHJ1Y3RvciwgTmFtZWRDb2luQ29uc3RydWN0b3IsIFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyeFRva2VuQ29uZmlnLCBjb2lucywgdG9rZW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBnZXRCdWlsZGVyIH0gZnJvbSAnLi9saWIvYnVpbGRlcic7XG5pbXBvcnQgeyBSZWNpcGllbnQgfSBmcm9tICcuLi8uLi9zZGstY29yZS9zcmMvYml0Z28vYmFzZUNvaW4vaUJhc2VDb2luJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IEVudW0sIFV0aWxzLCBJbnRlcmZhY2UgfSBmcm9tICcuL2xpYic7XG5cbmV4cG9ydCB7IFRyeFRva2VuQ29uZmlnIH07XG5cbmV4cG9ydCB0eXBlIFRyb25UeEluZm8gPSB7XG4gIHJlY2lwaWVudHM/OiBSZWNpcGllbnRbXTtcbiAgZnJvbT86IHN0cmluZztcbiAgdHhpZD86IHN0cmluZztcbn07XG5cbmV4cG9ydCBjbGFzcyBUcnhUb2tlbiBleHRlbmRzIFRyeCB7XG4gIHB1YmxpYyByZWFkb25seSB0b2tlbkNvbmZpZzogVHJ4VG9rZW5Db25maWc7XG5cbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgdG9rZW5Db25maWc6IFRyeFRva2VuQ29uZmlnKSB7XG4gICAgY29uc3Qgc3RhdGljc0NvaW4gPSB0b2tlbkNvbmZpZy5uZXR3b3JrID09PSAnTWFpbm5ldCcgPyBjb2lucy5nZXQoJ3RyeCcpIDogY29pbnMuZ2V0KCd0dHJ4Jyk7XG4gICAgc3VwZXIoYml0Z28sIHN0YXRpY3NDb2luKTtcbiAgICB0aGlzLnRva2VuQ29uZmlnID0gdG9rZW5Db25maWc7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlVG9rZW5Db25zdHJ1Y3Rvcihjb25maWc6IFRyeFRva2VuQ29uZmlnKTogQ29pbkNvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gKGJpdGdvOiBCaXRHb0Jhc2UpID0+IG5ldyBUcnhUb2tlbihiaXRnbywgY29uZmlnKTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVUb2tlbkNvbnN0cnVjdG9ycyhcbiAgICB0b2tlbkNvbmZpZ3M6IFRyeFRva2VuQ29uZmlnW10gPSBbLi4udG9rZW5zLmJpdGNvaW4udHJ4LnRva2VucywgLi4udG9rZW5zLnRlc3RuZXQudHJ4LnRva2Vuc11cbiAgKTogTmFtZWRDb2luQ29uc3RydWN0b3JbXSB7XG4gICAgY29uc3QgdG9rZW5zQ3RvcnM6IE5hbWVkQ29pbkNvbnN0cnVjdG9yW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRva2VuQ29uZmlncykge1xuICAgICAgY29uc3QgdG9rZW5Db25zdHJ1Y3RvciA9IFRyeFRva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3IodG9rZW4pO1xuICAgICAgdG9rZW5zQ3RvcnMucHVzaCh7IG5hbWU6IHRva2VuLnR5cGUsIGNvaW5Db25zdHJ1Y3RvcjogdG9rZW5Db25zdHJ1Y3RvciB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRva2Vuc0N0b3JzO1xuICB9XG5cbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcudHlwZTtcbiAgfVxuXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLm5hbWU7XG4gIH1cblxuICBnZXQgY29pbigpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5jb2luO1xuICB9XG5cbiAgZ2V0IG5ldHdvcmsoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcubmV0d29yaztcbiAgfVxuXG4gIGdldCB0b2tlbkNvbnRyYWN0QWRkcmVzcygpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy50b2tlbkNvbnRyYWN0QWRkcmVzcztcbiAgfVxuXG4gIGdldCBkZWNpbWFsUGxhY2VzKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLmRlY2ltYWxQbGFjZXM7XG4gIH1cblxuICBnZXRDaGFpbigpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuICB9XG5cbiAgZ2V0QmFzZUNoYWluKCkge1xuICAgIHJldHVybiB0aGlzLmNvaW47XG4gIH1cblxuICBnZXRGdWxsTmFtZSgpIHtcbiAgICByZXR1cm4gJ1Ryb24gVG9rZW4nO1xuICB9XG5cbiAgZ2V0QmFzZUZhY3RvcigpIHtcbiAgICByZXR1cm4gTWF0aC5wb3coMTAsIHRoaXMudG9rZW5Db25maWcuZGVjaW1hbFBsYWNlcyk7XG4gIH1cblxuICAvKipcbiAgICogRmxhZyBmb3Igc2VuZGluZyB2YWx1ZSBvZiAwXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIG9rYXkgdG8gc2VuZCAwIHZhbHVlLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHZhbHVlbGVzc1RyYW5zZmVyQWxsb3dlZCgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRmxhZyBmb3Igc2VuZGluZyBkYXRhIGFsb25nIHdpdGggdHJhbnNhY3Rpb25zXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIG9rYXkgdG8gc2VuZCB0eCBkYXRhIChFVEgpLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHRyYW5zYWN0aW9uRGF0YUFsbG93ZWQoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5VHJhbnNhY3Rpb24ocGFyYW1zOiBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IHR4UHJlYnVpbGQsIHR4UGFyYW1zLCB3YWxsZXRUeXBlIH0gPSBwYXJhbXM7XG4gICAgYXNzZXJ0KHR4UHJlYnVpbGQudHhIZXgsIG5ldyBFcnJvcignbWlzc2luZyByZXF1aXJlZCB0eCBwcmVidWlsZCBwcm9wZXJ0eSB0eEhleCcpKTtcblxuICAgIGlmICh3YWxsZXRUeXBlID09PSAndHNzJykge1xuICAgICAgLy8gRm9yIFRTUyB3YWxsZXRzLCBUUkMyMCB0b2tlbiB0cmFuc2ZlcnMgYXJlIFRyaWdnZXJTbWFydENvbnRyYWN0IHRyYW5zYWN0aW9ucy5cbiAgICAgIC8vIEFsd2F5cyB2ZXJpZnkgc3RydWN0dXJlIGFuZCBBQkkgZGVjb2RhYmlsaXR5LiBJbnRlbnQgdmFsaWRhdGlvbiAoYWRkcmVzcyArIGFtb3VudFxuICAgICAgLy8gY29tcGFyaXNvbikgaXMgcGVyZm9ybWVkIG9ubHkgd2hlbiByZWNpcGllbnRzIGFyZSBwcmVzZW50IOKAlCBhYnNlbnQgcmVjaXBpZW50c1xuICAgICAgLy8gaW5kaWNhdGVzIGEgc2VydmVyLWRldGVybWluZWQgdHJhbnNmZXIgKGUuZy4gY29uc29saWRhdGlvbikgd2hlcmUgdGhlIHNlcnZlclxuICAgICAgLy8gb3ducyB0aGUgaW50ZW50LlxuICAgICAgY29uc3QgcmF3RGF0YUhleCA9IHRoaXMuZXh0cmFjdFJhd0RhdGFIZXgodHhQcmVidWlsZC50eEhleCk7XG4gICAgICBjb25zdCBkZWNvZGVkVHggPSBVdGlscy5kZWNvZGVUcmFuc2FjdGlvbihyYXdEYXRhSGV4KTtcblxuICAgICAgaWYgKGRlY29kZWRUeC5jb250cmFjdFR5cGUgIT09IEVudW0uQ29udHJhY3RUeXBlLlRyaWdnZXJTbWFydENvbnRyYWN0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgRXhwZWN0ZWQgVHJpZ2dlclNtYXJ0Q29udHJhY3QgZm9yIFRSQzIwIHRva2VuIHRyYW5zZmVyLCBnb3QgY29udHJhY3QgdHlwZTogJHtkZWNvZGVkVHguY29udHJhY3RUeXBlfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShkZWNvZGVkVHguY29udHJhY3QpIHx8IGRlY29kZWRUeC5jb250cmFjdC5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFRyaWdnZXJTbWFydENvbnRyYWN0IHN0cnVjdHVyZScpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0cmlnZ2VyQ29udHJhY3QgPSBkZWNvZGVkVHguY29udHJhY3RbMF0gYXMgSW50ZXJmYWNlLlRyaWdnZXJTbWFydENvbnRyYWN0O1xuICAgICAgLy8gZGF0YSBpcyBiYXNlNjQtZW5jb2RlZCBmcm9tIHByb3RvYnVmIGRlY29kaW5nOyBjb252ZXJ0IHRvIGhleCBmb3IgZGVjb2RlRGF0YVBhcmFtc1xuICAgICAgY29uc3QgY29udHJhY3REYXRhID0gQnVmZmVyLmZyb20odHJpZ2dlckNvbnRyYWN0LnBhcmFtZXRlci52YWx1ZS5kYXRhLCAnYmFzZTY0JykudG9TdHJpbmcoJ2hleCcpO1xuXG4gICAgICBsZXQgcmVjaXBpZW50SGV4OiBzdHJpbmc7XG4gICAgICBsZXQgdHJhbnNmZXJBbW91bnQ6IHsgdG9TdHJpbmcoKTogc3RyaW5nIH07XG4gICAgICB0cnkge1xuICAgICAgICBbcmVjaXBpZW50SGV4LCB0cmFuc2ZlckFtb3VudF0gPSBVdGlscy5kZWNvZGVEYXRhUGFyYW1zKFsnYWRkcmVzcycsICd1aW50MjU2J10sIGNvbnRyYWN0RGF0YSkgYXMgW1xuICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICB7IHRvU3RyaW5nKCk6IHN0cmluZyB9XG4gICAgICAgIF07XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGRlY29kZSBUUkMyMCB0cmFuc2ZlciBBQkkgZGF0YTogJHtlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSl9YCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlY2lwaWVudHMgPSB0eFBhcmFtcy5yZWNpcGllbnRzIHx8ICh0eFByZWJ1aWxkLnR4SW5mbyBhcyBUcm9uVHhJbmZvIHwgdW5kZWZpbmVkKT8ucmVjaXBpZW50cztcbiAgICAgIGlmICghcmVjaXBpZW50cyB8fCByZWNpcGllbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAvLyBObyByZWNpcGllbnRzIOKAlCBzZXJ2ZXItZGV0ZXJtaW5lZCB0cmFuc2ZlciAoZS5nLiBjb25zb2xpZGF0aW9uKTsgc3RydWN0dXJhbCBjaGVjayBhYm92ZSBpcyBzdWZmaWNpZW50LlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChyZWNpcGllbnRzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgcmVxdWlyZWQgcHJvcGVydHkgcmVjaXBpZW50cycpO1xuICAgICAgfVxuXG4gICAgICAvLyByZWNpcGllbnRIZXggaGFzICc0MScgaGV4IHByZWZpeDsgY29udmVydCB0byBiYXNlNTggZm9yIGNvbXBhcmlzb25cbiAgICAgIGNvbnN0IGFjdHVhbERlc3RpbmF0aW9uID0gVXRpbHMuZ2V0QmFzZTU4QWRkcmVzc0Zyb21IZXgocmVjaXBpZW50SGV4KTtcbiAgICAgIGNvbnN0IGFjdHVhbEFtb3VudCA9IHRyYW5zZmVyQW1vdW50LnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBleHBlY3RlZERlc3RpbmF0aW9uID0gcmVjaXBpZW50c1swXS5hZGRyZXNzO1xuICAgICAgY29uc3QgZXhwZWN0ZWRBbW91bnQgPSByZWNpcGllbnRzWzBdLmFtb3VudC50b1N0cmluZygpO1xuXG4gICAgICBpZiAoYWN0dWFsQW1vdW50ICE9PSBleHBlY3RlZEFtb3VudCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RyYW5zYWN0aW9uIGFtb3VudCBpbiB0eFByZWJ1aWxkIGRvZXMgbm90IG1hdGNoIHRoZSB2YWx1ZSBnaXZlbiBieSBjbGllbnQnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGV4cGVjdGVkRGVzdGluYXRpb24udG9Mb3dlckNhc2UoKSAhPT0gYWN0dWFsRGVzdGluYXRpb24udG9Mb3dlckNhc2UoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Rlc3RpbmF0aW9uIGFkZHJlc3MgZG9lcyBub3QgbWF0Y2ggd2l0aCB0aGUgcmVjaXBpZW50IGFkZHJlc3MnKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgcmF3VHggPSB0eFByZWJ1aWxkLnR4SGV4O1xuXG4gICAgY29uc3QgdHhCdWlsZGVyID0gZ2V0QnVpbGRlcih0aGlzLmdldENoYWluKCkpLmZyb20ocmF3VHgpO1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICBjb25zdCByZWNpcGllbnRzID0gdHhQYXJhbXMucmVjaXBpZW50cyB8fCAodHhQcmVidWlsZC50eEluZm8gYXMgVHJvblR4SW5mbykucmVjaXBpZW50cztcbiAgICBpZiAoIXJlY2lwaWVudHMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eSByZWNpcGllbnRzJyk7XG4gICAgfVxuXG4gICAgaWYgKHJlY2lwaWVudHNbMF0uYWRkcmVzcyA9PT0gdHgub3V0cHV0c1swXS5hZGRyZXNzICYmIHJlY2lwaWVudHNbMF0uYW1vdW50ID09PSB0eC5vdXRwdXRzWzBdLnZhbHVlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUeCBvdXRwdXRzIGRvZXMgbm90IG1hdGNoIHdpdGggZXhwZWN0ZWQgdHhQYXJhbXMgcmVjaXBpZW50cycpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ4VG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJ4VG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0JBQTRCO0FBRTVCLGlEQUFvRTtBQUNwRSwyQ0FBMkM7QUFFM0Msb0RBQTRCO0FBQzVCLCtCQUErQztBQVUvQyxNQUFhLFFBQVMsU0FBUSxTQUFHO0lBRy9CLFlBQVksS0FBZ0IsRUFBRSxXQUEyQjtRQUN2RCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RixLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsc0JBQXNCLENBQUMsTUFBc0I7UUFDbEQsT0FBTyxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsTUFBTSxDQUFDLHVCQUF1QixDQUM1QixlQUFpQyxDQUFDLEdBQUcsZ0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLGdCQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFFN0YsTUFBTSxXQUFXLEdBQTJCLEVBQUUsQ0FBQztRQUMvQyxLQUFLLE1BQU0sS0FBSyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pDLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hFLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElB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Q04sTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFuS0QsNEJBbUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJ4IH0gZnJvbSAnLi90cngnO1xuaW1wb3J0IHsgQml0R29CYXNlLCBDb2luQ29uc3RydWN0b3IsIE5hbWVkQ29pbkNvbnN0cnVjdG9yLCBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcnhUb2tlbkNvbmZpZywgY29pbnMsIHRva2VucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgZ2V0QnVpbGRlciB9IGZyb20gJy4vbGliL2J1aWxkZXInO1xuaW1wb3J0IHsgUmVjaXBpZW50IH0gZnJvbSAnLi4vLi4vc2RrLWNvcmUvc3JjL2JpdGdvL2Jhc2VDb2luL2lCYXNlQ29pbic7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBFbnVtLCBVdGlscywgSW50ZXJmYWNlIH0gZnJvbSAnLi9saWInO1xuXG5leHBvcnQgeyBUcnhUb2tlbkNvbmZpZyB9O1xuXG5leHBvcnQgdHlwZSBUcm9uVHhJbmZvID0ge1xuICByZWNpcGllbnRzPzogUmVjaXBpZW50W107XG4gIGZyb20/OiBzdHJpbmc7XG4gIHR4aWQ/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY2xhc3MgVHJ4VG9rZW4gZXh0ZW5kcyBUcngge1xuICBwdWJsaWMgcmVhZG9ubHkgdG9rZW5Db25maWc6IFRyeFRva2VuQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHRva2VuQ29uZmlnOiBUcnhUb2tlbkNvbmZpZykge1xuICAgIGNvbnN0IHN0YXRpY3NDb2luID0gdG9rZW5Db25maWcubmV0d29yayA9PT0gJ01haW5uZXQnID8gY29pbnMuZ2V0KCd0cngnKSA6IGNvaW5zLmdldCgndHRyeCcpO1xuICAgIHN1cGVyKGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gICAgdGhpcy50b2tlbkNvbmZpZyA9IHRva2VuQ29uZmlnO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZVRva2VuQ29uc3RydWN0b3IoY29uZmlnOiBUcnhUb2tlbkNvbmZpZyk6IENvaW5Db25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIChiaXRnbzogQml0R29CYXNlKSA9PiBuZXcgVHJ4VG9rZW4oYml0Z28sIGNvbmZpZyk7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoXG4gICAgdG9rZW5Db25maWdzOiBUcnhUb2tlbkNvbmZpZ1tdID0gWy4uLnRva2Vucy5iaXRjb2luLnRyeC50b2tlbnMsIC4uLnRva2Vucy50ZXN0bmV0LnRyeC50b2tlbnNdXG4gICk6IE5hbWVkQ29pbkNvbnN0cnVjdG9yW10ge1xuICAgIGNvbnN0IHRva2Vuc0N0b3JzOiBOYW1lZENvaW5Db25zdHJ1Y3RvcltdID0gW107XG4gICAgZm9yIChjb25zdCB0b2tlbiBvZiB0b2tlbkNvbmZpZ3MpIHtcbiAgICAgIGNvbnN0IHRva2VuQ29uc3RydWN0b3IgPSBUcnhUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9yKHRva2VuKTtcbiAgICAgIHRva2Vuc0N0b3JzLnB1c2goeyBuYW1lOiB0b2tlbi50eXBlLCBjb2luQ29uc3RydWN0b3I6IHRva2VuQ29uc3RydWN0b3IgfSk7XG4gICAgfVxuICAgIHJldHVybiB0b2tlbnNDdG9ycztcbiAgfVxuXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLnR5cGU7XG4gIH1cblxuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5uYW1lO1xuICB9XG5cbiAgZ2V0IGNvaW4oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcuY29pbjtcbiAgfVxuXG4gIGdldCBuZXR3b3JrKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLm5ldHdvcms7XG4gIH1cblxuICBnZXQgdG9rZW5Db250cmFjdEFkZHJlc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcudG9rZW5Db250cmFjdEFkZHJlc3M7XG4gIH1cblxuICBnZXQgZGVjaW1hbFBsYWNlcygpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5kZWNpbWFsUGxhY2VzO1xuICB9XG5cbiAgZ2V0Q2hhaW4oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcudHlwZTtcbiAgfVxuXG4gIGdldEJhc2VDaGFpbigpIHtcbiAgICByZXR1cm4gdGhpcy5jb2luO1xuICB9XG5cbiAgZ2V0RnVsbE5hbWUoKSB7XG4gICAgcmV0dXJuICdUcm9uIFRva2VuJztcbiAgfVxuXG4gIGdldEJhc2VGYWN0b3IoKSB7XG4gICAgcmV0dXJuIE1hdGgucG93KDEwLCB0aGlzLnRva2VuQ29uZmlnLmRlY2ltYWxQbGFjZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZsYWcgZm9yIHNlbmRpbmcgdmFsdWUgb2YgMFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiBva2F5IHRvIHNlbmQgMCB2YWx1ZSwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICB2YWx1ZWxlc3NUcmFuc2ZlckFsbG93ZWQoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZsYWcgZm9yIHNlbmRpbmcgZGF0YSBhbG9uZyB3aXRoIHRyYW5zYWN0aW9uc1xuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiBva2F5IHRvIHNlbmQgdHggZGF0YSAoRVRIKSwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICB0cmFuc2FjdGlvbkRhdGFBbGxvd2VkKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGFzeW5jIHZlcmlmeVRyYW5zYWN0aW9uKHBhcmFtczogVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgeyB0eFByZWJ1aWxkLCB0eFBhcmFtcywgd2FsbGV0VHlwZSB9ID0gcGFyYW1zO1xuICAgIGFzc2VydCh0eFByZWJ1aWxkLnR4SGV4LCBuZXcgRXJyb3IoJ21pc3NpbmcgcmVxdWlyZWQgdHggcHJlYnVpbGQgcHJvcGVydHkgdHhIZXgnKSk7XG5cbiAgICBpZiAod2FsbGV0VHlwZSA9PT0gJ3RzcycpIHtcbiAgICAgIC8vIEZvciBUU1Mgd2FsbGV0cywgVFJDMjAgdG9rZW4gdHJhbnNmZXJzIGFyZSBUcmlnZ2VyU21hcnRDb250cmFjdCB0cmFuc2FjdGlvbnMuXG4gICAgICAvLyBBbHdheXMgdmVyaWZ5IHN0cnVjdHVyZSBhbmQgQUJJIGRlY29kYWJpbGl0eS4gSW50ZW50IHZhbGlkYXRpb24gKGFkZHJlc3MgKyBhbW91bnRcbiAgICAgIC8vIGNvbXBhcmlzb24pIGlzIHBlcmZvcm1lZCBvbmx5IHdoZW4gcmVjaXBpZW50cyBhcmUgcHJlc2VudCDigJQgYWJzZW50IHJlY2lwaWVudHNcbiAgICAgIC8vIGluZGljYXRlcyBhIHNlcnZlci1kZXRlcm1pbmVkIHRyYW5zZmVyIChlLmcuIGNvbnNvbGlkYXRpb24pIHdoZXJlIHRoZSBzZXJ2ZXJcbiAgICAgIC8vIG93bnMgdGhlIGludGVudC5cbiAgICAgIGNvbnN0IHJhd0RhdGFIZXggPSB0aGlzLmV4dHJhY3RSYXdEYXRhSGV4KHR4UHJlYnVpbGQudHhIZXgpO1xuICAgICAgY29uc3QgZGVjb2RlZFR4ID0gVXRpbHMuZGVjb2RlVHJhbnNhY3Rpb24ocmF3RGF0YUhleCk7XG5cbiAgICAgIGlmIChkZWNvZGVkVHguY29udHJhY3RUeXBlICE9PSBFbnVtLkNvbnRyYWN0VHlwZS5UcmlnZ2VyU21hcnRDb250cmFjdCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEV4cGVjdGVkIFRyaWdnZXJTbWFydENvbnRyYWN0IGZvciBUUkMyMCB0b2tlbiB0cmFuc2ZlciwgZ290IGNvbnRyYWN0IHR5cGU6ICR7ZGVjb2RlZFR4LmNvbnRyYWN0VHlwZX1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGVjb2RlZFR4LmNvbnRyYWN0KSB8fCBkZWNvZGVkVHguY29udHJhY3QubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBUcmlnZ2VyU21hcnRDb250cmFjdCBzdHJ1Y3R1cmUnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdHJpZ2dlckNvbnRyYWN0ID0gZGVjb2RlZFR4LmNvbnRyYWN0WzBdIGFzIEludGVyZmFjZS5UcmlnZ2VyU21hcnRDb250cmFjdDtcbiAgICAgIC8vIGRhdGEgaXMgYmFzZTY0LWVuY29kZWQgZnJvbSBwcm90b2J1ZiBkZWNvZGluZzsgY29udmVydCB0byBoZXggZm9yIGRlY29kZURhdGFQYXJhbXNcbiAgICAgIGNvbnN0IGNvbnRyYWN0RGF0YSA9IEJ1ZmZlci5mcm9tKHRyaWdnZXJDb250cmFjdC5wYXJhbWV0ZXIudmFsdWUuZGF0YSwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCdoZXgnKTtcblxuICAgICAgbGV0IHJlY2lwaWVudEhleDogc3RyaW5nO1xuICAgICAgbGV0IHRyYW5zZmVyQW1vdW50OiB7IHRvU3RyaW5nKCk6IHN0cmluZyB9O1xuICAgICAgdHJ5IHtcbiAgICAgICAgW3JlY2lwaWVudEhleCwgdHJhbnNmZXJBbW91bnRdID0gVXRpbHMuZGVjb2RlRGF0YVBhcmFtcyhbJ2FkZHJlc3MnLCAndWludDI1NiddLCBjb250cmFjdERhdGEpIGFzIFtcbiAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgeyB0b1N0cmluZygpOiBzdHJpbmcgfVxuICAgICAgICBdO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBkZWNvZGUgVFJDMjAgdHJhbnNmZXIgQUJJIGRhdGE6ICR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogU3RyaW5nKGUpfWApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZWNpcGllbnRzID0gdHhQYXJhbXMucmVjaXBpZW50cyB8fCAodHhQcmVidWlsZC50eEluZm8gYXMgVHJvblR4SW5mbyB8IHVuZGVmaW5lZCk/LnJlY2lwaWVudHM7XG4gICAgICBpZiAoIXJlY2lwaWVudHMgfHwgcmVjaXBpZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgLy8gTm8gcmVjaXBpZW50cyDigJQgc2VydmVyLWRldGVybWluZWQgdHJhbnNmZXIgKGUuZy4gY29uc29saWRhdGlvbik7IHN0cnVjdHVyYWwgY2hlY2sgYWJvdmUgaXMgc3VmZmljaWVudC5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAocmVjaXBpZW50cy5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHJlcXVpcmVkIHByb3BlcnR5IHJlY2lwaWVudHMnKTtcbiAgICAgIH1cblxuICAgICAgLy8gcmVjaXBpZW50SGV4IGhhcyAnNDEnIGhleCBwcmVmaXg7IGNvbnZlcnQgdG8gYmFzZTU4IGZvciBjb21wYXJpc29uLlxuICAgICAgLy8gQ2Fub25pY2FsaXplIHRoZSBjbGllbnQtc3VwcGxpZWQgYWRkcmVzcyB0b28gc28gMHguLi4gLyA0MS4uLiBtYXRjaCBiYXNlNTggb3V0cHV0cyAoQ09JTlMtMTU3NSkuXG4gICAgICBjb25zdCBhY3R1YWxEZXN0aW5hdGlvbiA9IFV0aWxzLmdldEJhc2U1OEFkZHJlc3NGcm9tSGV4KHJlY2lwaWVudEhleCk7XG4gICAgICBjb25zdCBhY3R1YWxBbW91bnQgPSB0cmFuc2ZlckFtb3VudC50b1N0cmluZygpO1xuICAgICAgY29uc3QgZXhwZWN0ZWREZXN0aW5hdGlvbiA9IFV0aWxzLmdldEJhc2U1OEFkZHJlc3NGcm9tSGV4QWRkcmVzcyhyZWNpcGllbnRzWzBdLmFkZHJlc3MpO1xuICAgICAgY29uc3QgZXhwZWN0ZWRBbW91bnQgPSByZWNpcGllbnRzWzBdLmFtb3VudC50b1N0cmluZygpO1xuXG4gICAgICBpZiAoYWN0dWFsQW1vdW50ICE9PSBleHBlY3RlZEFtb3VudCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RyYW5zYWN0aW9uIGFtb3VudCBpbiB0eFByZWJ1aWxkIGRvZXMgbm90IG1hdGNoIHRoZSB2YWx1ZSBnaXZlbiBieSBjbGllbnQnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGV4cGVjdGVkRGVzdGluYXRpb24udG9Mb3dlckNhc2UoKSAhPT0gYWN0dWFsRGVzdGluYXRpb24udG9Mb3dlckNhc2UoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Rlc3RpbmF0aW9uIGFkZHJlc3MgZG9lcyBub3QgbWF0Y2ggd2l0aCB0aGUgcmVjaXBpZW50IGFkZHJlc3MnKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgcmF3VHggPSB0eFByZWJ1aWxkLnR4SGV4O1xuXG4gICAgY29uc3QgdHhCdWlsZGVyID0gZ2V0QnVpbGRlcih0aGlzLmdldENoYWluKCkpLmZyb20ocmF3VHgpO1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICBjb25zdCByZWNpcGllbnRzID0gdHhQYXJhbXMucmVjaXBpZW50cyB8fCAodHhQcmVidWlsZC50eEluZm8gYXMgVHJvblR4SW5mbykucmVjaXBpZW50cztcbiAgICBpZiAoIXJlY2lwaWVudHMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eSByZWNpcGllbnRzJyk7XG4gICAgfVxuXG4gICAgLy8gT3V0cHV0cyBhcmUgYmFzZTU4OyBjbGllbnRzIG1heSBwYXNzIGJhc2U1OCwgMHguLi4sIG9yIDQxLi4uIOKAlCBjb21wYXJlIGluIGNhbm9uaWNhbCBmb3JtLlxuICAgIGNvbnN0IGV4cGVjdGVkQWRkcmVzcyA9IFV0aWxzLmdldEJhc2U1OEFkZHJlc3NGcm9tSGV4QWRkcmVzcyhyZWNpcGllbnRzWzBdLmFkZHJlc3MpO1xuICAgIGNvbnN0IGFjdHVhbEFkZHJlc3MgPSBVdGlscy5nZXRCYXNlNThBZGRyZXNzRnJvbUhleEFkZHJlc3ModHgub3V0cHV0c1swXS5hZGRyZXNzKTtcbiAgICBpZiAoZXhwZWN0ZWRBZGRyZXNzID09PSBhY3R1YWxBZGRyZXNzICYmIHJlY2lwaWVudHNbMF0uYW1vdW50LnRvU3RyaW5nKCkgPT09IHR4Lm91dHB1dHNbMF0udmFsdWUudG9TdHJpbmcoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVHggb3V0cHV0cyBkb2VzIG5vdCBtYXRjaCB3aXRoIGV4cGVjdGVkIHR4UGFyYW1zIHJlY2lwaWVudHMnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|