@bitgo-beta/sdk-coin-flrp 1.0.0-alpha.44 → 1.0.0-alpha.46

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":"ImportInCTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/ImportInCTxBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAuC,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAGL,UAAU,EAIV,iBAAiB,EAIlB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAmE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE9F,qBAAa,kBAAmB,SAAQ,2BAA2B;gBACrD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;OAIG;IACH,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK1B,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI;IA4E9E,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI7C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAItC;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAsDvC;;;;;;;OAOG;IACH,SAAS,CAAC,YAAY,IAAI;QACxB,MAAM,EAAE,iBAAiB,EAAE,CAAC;QAC5B,WAAW,EAAE,UAAU,EAAE,CAAC;QAC1B,MAAM,EAAE,MAAM,CAAC;KAChB;IAqDD;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;;;OAIG;IACH,OAAO,CAAC,YAAY;CAiBrB"}
1
+ {"version":3,"file":"ImportInCTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/ImportInCTxBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAuC,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAGL,UAAU,EAIV,iBAAiB,EAIlB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAmE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE9F,qBAAa,kBAAmB,SAAQ,2BAA2B;gBACrD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;OAIG;IACH,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK1B,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI;IA4E9E,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI7C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAItC;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAoDvC;;;;;;;OAOG;IACH,SAAS,CAAC,YAAY,IAAI;QACxB,MAAM,EAAE,iBAAiB,EAAE,CAAC;QAC5B,WAAW,EAAE,UAAU,EAAE,CAAC;QAC1B,MAAM,EAAE,MAAM,CAAC;KAChB;IAqDD;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;;;OAIG;IACH,OAAO,CAAC,YAAY;CAiBrB"}
@@ -102,9 +102,6 @@ class ImportInCTxBuilder extends atomicInCTransactionBuilder_1.AtomicInCTransact
102
102
  // if tx has credentials or was already recovered from raw, tx shouldn't change
103
103
  if (this.transaction.hasCredentials)
104
104
  return;
105
- // If fee is already calculated (from initBuilder), the transaction is already built
106
- if (this.transaction._fee.fee)
107
- return;
108
105
  if (this.transaction._to.length !== 1) {
109
106
  throw new Error('to is required');
110
107
  }
@@ -212,4 +209,4 @@ class ImportInCTxBuilder extends atomicInCTransactionBuilder_1.AtomicInCTransact
212
209
  }
213
210
  }
214
211
  exports.ImportInCTxBuilder = ImportInCTxBuilder;
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW1wb3J0SW5DVHhCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9JbXBvcnRJbkNUeEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsbURBQTRGO0FBQzVGLCtFQUE0RTtBQUM1RSxtREFXK0I7QUFDL0Isb0RBQTRCO0FBQzVCLG1DQUE4RjtBQUU5RixNQUFhLGtCQUFtQixTQUFRLHlEQUEyQjtJQUNqRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEVBQUUsQ0FBQyxRQUFnQjtRQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLGVBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN0RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQU0sRUFBRSxRQUFpQixFQUFFLGlCQUFnQztRQUNyRSxNQUFNLE1BQU0sR0FBRyxFQUF3QixDQUFDO1FBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSx1QkFBWSxDQUFDLHFFQUFxRSxDQUFDLENBQUM7UUFDaEcsQ0FBQztRQUVELGtEQUFrRDtRQUNsRCw0RUFBNEU7UUFDNUUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUM1QixJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENB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LElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3RELGVBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3pHO2FBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBdlFELGdEQXVRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgTm90U3VwcG9ydGVkLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBBdG9taWNJbkNUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2F0b21pY0luQ1RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQge1xuICBldm1TZXJpYWwsXG4gIFVuc2lnbmVkVHgsXG4gIENyZWRlbnRpYWwsXG4gIEJpZ0ludFByLFxuICBJbnQsXG4gIElkLFxuICBUcmFuc2ZlcmFibGVJbnB1dCxcbiAgQWRkcmVzcyxcbiAgdXRpbHMgYXMgRmxhcmVVdGlscyxcbiAgYXZtU2VyaWFsLFxufSBmcm9tICdAZmxhcmVuZXR3b3JrL2ZsYXJlanMnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgRGVjb2RlZFV0eG9PYmosIEZsYXJlVHJhbnNhY3Rpb25UeXBlLCBTRUNQMjU2SzFfVHJhbnNmZXJfT3V0cHV0LCBUeCB9IGZyb20gJy4vaWZhY2UnO1xuXG5leHBvcnQgY2xhc3MgSW1wb3J0SW5DVHhCdWlsZGVyIGV4dGVuZHMgQXRvbWljSW5DVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEMtY2hhaW4gYWRkcmVzcyB3aG8gaXMgdGFyZ2V0IG9mIHRoZSBpbXBvcnQuXG4gICAqIEFkZHJlc3MgZm9ybWF0IGlzIGV0aCBsaWtlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjQWRkcmVzc1xuICAgKi9cbiAgdG8oY0FkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uX3RvID0gW3V0aWxzLnBhcnNlQWRkcmVzcyhjQWRkcmVzcyldO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLkltcG9ydDtcbiAgfVxuXG4gIGluaXRCdWlsZGVyKHR4OiBUeCwgcmF3Qnl0ZXM/OiBCdWZmZXIsIHBhcnNlZENyZWRlbnRpYWxzPzogQ3JlZGVudGlhbFtdKTogdGhpcyB7XG4gICAgY29uc3QgYmFzZVR4ID0gdHggYXMgZXZtU2VyaWFsLkltcG9ydFR4O1xuICAgIGlmICghdGhpcy52ZXJpZnlUeFR5cGUoYmFzZVR4Ll90eXBlKSkge1xuICAgICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZCgnVHJhbnNhY3Rpb24gY2Fubm90IGJlIHBhcnNlZCBvciBoYXMgYW4gdW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gdHlwZScpO1xuICAgIH1cblxuICAgIC8vIFRoZSBvdXRwdXRzIGlzIGEgc2luZ2xlIEMtQ2hhaW4gYWRkcmVzcyByZXN1bHQuXG4gICAgLy8gSXQncyBleHBlY3RlZCB0byBoYXZlIG9ubHkgb25lIG91dHB1dCB0byB0aGUgZGVzdGluYXRpb24gQy1DaGFpbiBhZGRyZXNzLlxuICAgIGNvbnN0IG91dHB1dHMgPSBiYXNlVHguT3V0cztcbiAgICBpZiAob3V0cHV0cy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1RyYW5zYWN0aW9uIGNhbiBoYXZlIG9uZSBvdXRwdXQnKTtcbiAgICB9XG4gICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1swXTtcblxuICAgIGlmIChCdWZmZXIuZnJvbShvdXRwdXQuYXNzZXRJZC50b0J5dGVzKCkpLnRvU3RyaW5nKCdoZXgnKSAhPT0gdGhpcy50cmFuc2FjdGlvbi5fYXNzZXRJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBc3NldElEIGFyZSBub3QgZXF1YWxzJyk7XG4gICAgfVxuICAgIHRoaXMudHJhbnNhY3Rpb24uX3RvID0gW0J1ZmZlci5mcm9tKG91dHB1dC5hZGRyZXNzLnRvQnl0ZXMoKSldO1xuXG4gICAgY29uc3QgaW5wdXRzID0gYmFzZVR4LmltcG9ydGVkSW5wdXRzO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uX3V0eG9zID0gdGhpcy5yZWNvdmVyVXR4b3MoaW5wdXRzKTtcblxuICAgIC8vIENhbGN1bGF0ZSB0b3RhbCBpbnB1dCBhbmQgb3V0cHV0IGFtb3VudHNcbiAgICBjb25zdCB0b3RhbElucHV0QW1vdW50ID0gaW5wdXRzLnJlZHVjZSgodCwgaSkgPT4gdCArIGkuYW1vdW50KCksIEJpZ0ludCgwKSk7XG4gICAgY29uc3QgdG90YWxPdXRwdXRBbW91bnQgPSBvdXRwdXQuYW1vdW50LnZhbHVlKCk7XG5cbiAgICAvLyBDYWxjdWxhdGUgZmVlIGJhc2VkIG9uIGlucHV0L291dHB1dCBkaWZmZXJlbmNlXG4gICAgY29uc3QgZmVlID0gdG90YWxJbnB1dEFtb3VudCAtIHRvdGFsT3V0cHV0QW1vdW50O1xuICAgIGNvbnN0IGZlZVNpemUgPSB0aGlzLmNhbGN1bGF0ZUZlZVNpemUoYmFzZVR4KTtcbiAgICAvLyBVc2UgaW50ZWdlciBkaXZpc2lvbiB0byBlbnN1cmUgZmVlUmF0ZSBjYW4gYmUgY29udmVydGVkIGJhY2sgdG8gQmlnSW50XG4gICAgY29uc3QgZmVlUmF0ZSA9IE1hdGguZmxvb3IoTnVtYmVyKGZlZSkgLyBmZWVTaXplKTtcblxuICAgIHRoaXMudHJhbnNhY3Rpb24uX2ZlZSA9IHtcbiAgICAgIGZlZTogZmVlLnRvU3RyaW5nKCksXG4gICAgICBmZWVSYXRlOiBmZWVSYXRlLFxuICAgICAgc2l6ZTogZmVlU2l6ZSxcbiAgICB9O1xuXG4gICAgLy8gVXNlIGNyZWRlbnRpYWxzIHBhc3NlZCBmcm9tIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgKHByb3Blcmx5IGV4dHJhY3RlZCB1c2luZyBjb2RlYylcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHBhcnNlZENyZWRlbnRpYWxzIHx8IFtdO1xuICAgIGNvbnN0IGhhc0NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHMubGVuZ3RoID4gMDtcblxuICAgIC8vIElmIGl0J3MgYSBzaWduZWQgdHJhbnNhY3Rpb24sIHN0b3JlIHRoZSBvcmlnaW5hbCByYXcgYnl0ZXMgdG8gcHJlc2VydmUgZXhhY3QgZm9ybWF0XG4gICAgaWYgKGhhc0NyZWRlbnRpYWxzICYmIHJhd0J5dGVzKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLl9yYXdTaWduZWRCeXRlcyA9IHJhd0J5dGVzO1xuICAgIH1cblxuICAgIC8vIEV4dHJhY3QgdGhyZXNob2xkIGZyb20gZmlyc3QgaW5wdXQncyBzaWdJbmRpY2llcyAobnVtYmVyIG9mIHJlcXVpcmVkIHNpZ25hdHVyZXMpXG4gICAgY29uc3QgZmlyc3RJbnB1dCA9IGlucHV0c1swXTtcbiAgICBjb25zdCBpbnB1dFRocmVzaG9sZCA9IGZpcnN0SW5wdXQuc2lnSW5kaWNpZXMoKS5sZW5ndGggfHwgdGhpcy50cmFuc2FjdGlvbi5fdGhyZXNob2xkO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uX3RocmVzaG9sZCA9IGlucHV0VGhyZXNob2xkO1xuXG4gICAgLy8gQ3JlYXRlIHByb3BlciBVbnNpZ25lZFR4IHdyYXBwZXIgd2l0aCBjcmVkZW50aWFsc1xuICAgIGNvbnN0IHRvQWRkcmVzcyA9IG5ldyBBZGRyZXNzKG91dHB1dC5hZGRyZXNzLnRvQnl0ZXMoKSk7XG4gICAgY29uc3QgYWRkcmVzc01hcCA9IG5ldyBGbGFyZVV0aWxzLkFkZHJlc3NNYXAoW1t0b0FkZHJlc3MsIDBdXSk7XG4gICAgY29uc3QgYWRkcmVzc01hcHMgPSBuZXcgRmxhcmVVdGlscy5BZGRyZXNzTWFwcyhbYWRkcmVzc01hcF0pO1xuXG4gICAgLy8gV2hlbiBjcmVkZW50aWFscyB3ZXJlIGV4dHJhY3RlZCwgdXNlIHRoZW0gZGlyZWN0bHkgdG8gcHJlc2VydmUgZXhpc3Rpbmcgc2lnbmF0dXJlc1xuICAgIGxldCB0eENyZWRlbnRpYWxzOiBDcmVkZW50aWFsW107XG4gICAgaWYgKGNyZWRlbnRpYWxzLmxlbmd0aCA+IDApIHtcbiAgICAgIHR4Q3JlZGVudGlhbHMgPSBjcmVkZW50aWFscztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ3JlYXRlIGVtcHR5IGNyZWRlbnRpYWwgd2l0aCB0aHJlc2hvbGQgbnVtYmVyIG9mIHNpZ25hdHVyZSBzbG90c1xuICAgICAgY29uc3QgZW1wdHlTaWduYXR1cmVzOiBSZXR1cm5UeXBlPHR5cGVvZiB1dGlscy5jcmVhdGVOZXdTaWc+W10gPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRUaHJlc2hvbGQ7IGkrKykge1xuICAgICAgICBlbXB0eVNpZ25hdHVyZXMucHVzaCh1dGlscy5jcmVhdGVOZXdTaWcoJycpKTtcbiAgICAgIH1cbiAgICAgIHR4Q3JlZGVudGlhbHMgPSBbbmV3IENyZWRlbnRpYWwoZW1wdHlTaWduYXR1cmVzKV07XG4gICAgfVxuXG4gICAgY29uc3QgdW5zaWduZWRUeCA9IG5ldyBVbnNpZ25lZFR4KGJhc2VUeCwgW10sIGFkZHJlc3NNYXBzLCB0eENyZWRlbnRpYWxzKTtcblxuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb24odW5zaWduZWRUeCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzdGF0aWMgdmVyaWZ5VHhUeXBlKHR4blR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eG5UeXBlID09PSBGbGFyZVRyYW5zYWN0aW9uVHlwZS5Fdm1JbXBvcnRUeDtcbiAgfVxuXG4gIHZlcmlmeVR4VHlwZSh0eG5UeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gSW1wb3J0SW5DVHhCdWlsZGVyLnZlcmlmeVR4VHlwZSh0eG5UeXBlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCB0aGUgaW1wb3J0IGluIEMtY2hhaW4gdHJhbnNhY3Rpb25cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkRmxhcmVUcmFuc2FjdGlvbigpOiB2b2lkIHtcbiAgICAvLyBpZiB0eCBoYXMgY3JlZGVudGlhbHMgb3Igd2FzIGFscmVhZHkgcmVjb3ZlcmVkIGZyb20gcmF3LCB0eCBzaG91bGRuJ3QgY2hhbmdlXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uaGFzQ3JlZGVudGlhbHMpIHJldHVybjtcbiAgICAvLyBJZiBmZWUgaXMgYWxyZWFkeSBjYWxjdWxhdGVkIChmcm9tIGluaXRCdWlsZGVyKSwgdGhlIHRyYW5zYWN0aW9uIGlzIGFscmVhZHkgYnVpbHRcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5fZmVlLmZlZSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLl90by5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndG8gaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uLl9mZWUuZmVlUmF0ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdmZWUgcmF0ZSBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgaW5wdXRzLCBhbW91bnQsIGNyZWRlbnRpYWxzIH0gPSB0aGlzLmNyZWF0ZUlucHV0cygpO1xuXG4gICAgLy8gQ2FsY3VsYXRlIGZlZVxuICAgIGNvbnN0IGZlZVJhdGUgPSBCaWdJbnQodGhpcy50cmFuc2FjdGlvbi5fZmVlLmZlZVJhdGUpO1xuICAgIGNvbnN0IGZlZVNpemUgPSB0aGlzLmNhbGN1bGF0ZUZlZVNpemUoKTtcbiAgICBjb25zdCBmZWUgPSBmZWVSYXRlICogQmlnSW50KGZlZVNpemUpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uX2ZlZS5mZWUgPSBmZWUudG9TdHJpbmcoKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl9mZWUuc2l6ZSA9IGZlZVNpemU7XG5cbiAgICAvLyBDcmVhdGUgRVZNIG91dHB1dCB1c2luZyBwcm9wZXIgRmxhcmVKUyBjbGFzc1xuICAgIGNvbnN0IG91dHB1dCA9IG5ldyBldm1TZXJpYWwuT3V0cHV0KFxuICAgICAgbmV3IEFkZHJlc3ModGhpcy50cmFuc2FjdGlvbi5fdG9bMF0pLFxuICAgICAgbmV3IEJpZ0ludFByKGFtb3VudCAtIGZlZSksXG4gICAgICBuZXcgSWQobmV3IFVpbnQ4QXJyYXkoQnVmZmVyLmZyb20odGhpcy50cmFuc2FjdGlvbi5fYXNzZXRJZCwgJ2hleCcpKSlcbiAgICApO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBpbXBvcnQgdHJhbnNhY3Rpb25cbiAgICBjb25zdCBpbXBvcnRUeCA9IG5ldyBldm1TZXJpYWwuSW1wb3J0VHgoXG4gICAgICBuZXcgSW50KHRoaXMudHJhbnNhY3Rpb24uX25ldHdvcmtJRCksXG4gICAgICBuZXcgSWQobmV3IFVpbnQ4QXJyYXkoQnVmZmVyLmZyb20odGhpcy50cmFuc2FjdGlvbi5fYmxvY2tjaGFpbklELCAnaGV4JykpKSxcbiAgICAgIG5ldyBJZChuZXcgVWludDhBcnJheSh0aGlzLl9leHRlcm5hbENoYWluSWQpKSxcbiAgICAgIGlucHV0cyxcbiAgICAgIFtvdXRwdXRdXG4gICAgKTtcblxuICAgIC8vIENyZWF0ZSB1bnNpZ25lZCB0cmFuc2FjdGlvbiB3aXRoIGFsbCBwb3RlbnRpYWwgc2lnbmVycyBpbiBhZGRyZXNzIG1hcFxuICAgIGNvbnN0IGFkZHJlc3NNYXAgPSBuZXcgRmxhcmVVdGlscy5BZGRyZXNzTWFwKCk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5fZnJvbUFkZHJlc3Nlcy5mb3JFYWNoKChhZGRyLCBpKSA9PiB7XG4gICAgICBhZGRyZXNzTWFwLnNldChuZXcgQWRkcmVzcyhhZGRyKSwgaSk7XG4gICAgfSk7XG4gICAgY29uc3QgYWRkcmVzc01hcHMgPSBuZXcgRmxhcmVVdGlscy5BZGRyZXNzTWFwcyhbYWRkcmVzc01hcF0pO1xuXG4gICAgY29uc3QgdW5zaWduZWRUeCA9IG5ldyBVbnNpZ25lZFR4KFxuICAgICAgaW1wb3J0VHgsXG4gICAgICBbXSwgLy8gRW1wdHkgVVRYT3MgYXJyYXksIHdpbGwgYmUgZmlsbGVkIGR1cmluZyBwcm9jZXNzaW5nXG4gICAgICBhZGRyZXNzTWFwcyxcbiAgICAgIGNyZWRlbnRpYWxzXG4gICAgKTtcblxuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb24odW5zaWduZWRUeCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGlucHV0cyBmcm9tIFVUWE9zXG4gICAqIEByZXR1cm4ge1xuICAgKiAgICAgaW5wdXRzOiBUcmFuc2ZlcmFibGVJbnB1dFtdO1xuICAgKiAgICAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxbXTtcbiAgICogICAgIGFtb3VudDogYmlnaW50O1xuICAgKiB9XG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlSW5wdXRzKCk6IHtcbiAgICBpbnB1dHM6IFRyYW5zZmVyYWJsZUlucHV0W107XG4gICAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxbXTtcbiAgICBhbW91bnQ6IGJpZ2ludDtcbiAgfSB7XG4gICAgY29uc3Qgc2VuZGVyID0gdGhpcy50cmFuc2FjdGlvbi5fZnJvbUFkZHJlc3Nlcy5zbGljZSgpO1xuICAgIGlmICh0aGlzLnJlY292ZXJTaWduZXIpIHtcbiAgICAgIC8vIHN3aXRjaCBmaXJzdCBhbmQgbGFzdCBzaWduZXJcbiAgICAgIGNvbnN0IHRtcCA9IHNlbmRlci5wb3AoKTtcbiAgICAgIHNlbmRlci5wdXNoKHNlbmRlclswXSk7XG4gICAgICBpZiAodG1wKSB7XG4gICAgICAgIHNlbmRlclswXSA9IHRtcDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgdG90YWxBbW91bnQgPSBCaWdJbnQoMCk7XG4gICAgY29uc3QgaW5wdXRzOiBUcmFuc2ZlcmFibGVJbnB1dFtdID0gW107XG4gICAgY29uc3QgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxbXSA9IFtdO1xuXG4gICAgdGhpcy50cmFuc2FjdGlvbi5fdXR4b3MuZm9yRWFjaCgodXR4bykgPT4ge1xuICAgICAgY29uc3QgYW1vdW50ID0gQmlnSW50KHV0eG8uYW1vdW50KTtcbiAgICAgIHRvdGFsQW1vdW50ICs9IGFtb3VudDtcblxuICAgICAgLy8gQ3JlYXRlIHNpZ25hdHVyZSBpbmRpY2VzIGZvciB0aHJlc2hvbGRcbiAgICAgIGNvbnN0IHNpZ0luZGljZXM6IG51bWJlcltdID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJhbnNhY3Rpb24uX3RocmVzaG9sZDsgaSsrKSB7XG4gICAgICAgIHNpZ0luZGljZXMucHVzaChpKTtcbiAgICAgIH1cblxuICAgICAgLy8gVXNlIGZyb21OYXRpdmUgdG8gY3JlYXRlIFRyYW5zZmVyYWJsZUlucHV0IChzYW1lIHBhdHRlcm4gYXMgSW1wb3J0SW5QVHhCdWlsZGVyKVxuICAgICAgLy8gZnJvbU5hdGl2ZSBleHBlY3RzIGNiNTgtZW5jb2RlZCBzdHJpbmdzIGZvciB0eElkIGFuZCBhc3NldElkXG4gICAgICBjb25zdCB0eElkQ2I1OCA9IHV0eG8udHhpZDsgLy8gQWxyZWFkeSBjYjU4IGVuY29kZWRcbiAgICAgIGNvbnN0IGFzc2V0SWRDYjU4ID0gdXRpbHMuY2I1OEVuY29kZShCdWZmZXIuZnJvbSh0aGlzLnRyYW5zYWN0aW9uLl9hc3NldElkLCAnaGV4JykpO1xuXG4gICAgICBjb25zdCB0cmFuc2ZlcmFibGVJbnB1dCA9IFRyYW5zZmVyYWJsZUlucHV0LmZyb21OYXRpdmUoXG4gICAgICAgIHR4SWRDYjU4LFxuICAgICAgICBOdW1iZXIodXR4by5vdXRwdXRpZHgpLFxuICAgICAgICBhc3NldElkQ2I1OCxcbiAgICAgICAgYW1vdW50LFxuICAgICAgICBzaWdJbmRpY2VzXG4gICAgICApO1xuXG4gICAgICBpbnB1dHMucHVzaCh0cmFuc2ZlcmFibGVJbnB1dCk7XG5cbiAgICAgIC8vIENyZWF0ZSBlbXB0eSBjcmVkZW50aWFsIGZvciBlYWNoIGlucHV0IHdpdGggdGhyZXNob2xkIHNpZ25lcnNcbiAgICAgIGNvbnN0IGVtcHR5U2lnbmF0dXJlcyA9IHNpZ0luZGljZXMubWFwKCgpID0+IHV0aWxzLmNyZWF0ZU5ld1NpZygnJykpO1xuICAgICAgY29uc3QgY3JlZGVudGlhbCA9IG5ldyBDcmVkZW50aWFsKGVtcHR5U2lnbmF0dXJlcyk7XG4gICAgICBjcmVkZW50aWFscy5wdXNoKGNyZWRlbnRpYWwpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0cyxcbiAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgYW1vdW50OiB0b3RhbEFtb3VudCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZSB0aGUgZmVlIHNpemUgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKiBGb3IgQy1jaGFpbiBpbXBvcnRzLCB0aGUgZmVlUmF0ZSBpcyB0cmVhdGVkIGFzIGFuIGFic29sdXRlIGZlZSB2YWx1ZVxuICAgKi9cbiAgcHJpdmF0ZSBjYWxjdWxhdGVGZWVTaXplKHR4PzogZXZtU2VyaWFsLkltcG9ydFR4KTogbnVtYmVyIHtcbiAgICAvLyBJZiB0eCBpcyBwcm92aWRlZCwgY2FsY3VsYXRlIGJhc2VkIG9uIGFjdHVhbCB0cmFuc2FjdGlvbiBzaXplXG4gICAgaWYgKHR4KSB7XG4gICAgICBjb25zdCBjb2RlYyA9IGF2bVNlcmlhbC5nZXRBVk1NYW5hZ2VyKCkuZ2V0RGVmYXVsdENvZGVjKCk7XG4gICAgICByZXR1cm4gdHgudG9CeXRlcyhjb2RlYykubGVuZ3RoO1xuICAgIH1cblxuICAgIC8vIEZvciBDLWNoYWluIGltcG9ydHMsIHRyZWF0IGZlZVJhdGUgYXMgdGhlIGFic29sdXRlIGZlZSAobXVsdGlwbGllciBvZiAxKVxuICAgIHJldHVybiAxO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY292ZXIgVVRYT3MgZnJvbSBpbXBvcnRlZCBpbnB1dHNcbiAgICogQHBhcmFtIGltcG9ydGVkSW5wdXRzIEFycmF5IG9mIHRyYW5zZmVyYWJsZSBpbnB1dHNcbiAgICogQHJldHVybnMgQXJyYXkgb2YgZGVjb2RlZCBVVFhPIG9iamVjdHNcbiAgICovXG4gIHByaXZhdGUgcmVjb3ZlclV0eG9zKGltcG9ydGVkSW5wdXRzOiBUcmFuc2ZlcmFibGVJbnB1dFtdKTogRGVjb2RlZFV0eG9PYmpbXSB7XG4gICAgcmV0dXJuIGltcG9ydGVkSW5wdXRzLm1hcCgoaW5wdXQpID0+IHtcbiAgICAgIGNvbnN0IHR4aWQgPSBpbnB1dC51dHhvSUQudG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IG91dHB1dGlkeCA9IGlucHV0LnV0eG9JRC5vdXRwdXRJZHgudG9TdHJpbmcoKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb3V0cHV0SUQ6IFNFQ1AyNTZLMV9UcmFuc2Zlcl9PdXRwdXQsXG4gICAgICAgIGFtb3VudDogaW5wdXQuYW1vdW50KCkudG9TdHJpbmcoKSxcbiAgICAgICAgdHhpZDogdXRpbHMuY2I1OEVuY29kZShCdWZmZXIuZnJvbSh0eGlkLCAnaGV4JykpLFxuICAgICAgICBvdXRwdXRpZHg6IG91dHB1dGlkeCxcbiAgICAgICAgdGhyZXNob2xkOiB0aGlzLnRyYW5zYWN0aW9uLl90aHJlc2hvbGQsXG4gICAgICAgIGFkZHJlc3NlczogdGhpcy50cmFuc2FjdGlvbi5fZnJvbUFkZHJlc3Nlcy5tYXAoKGFkZHIpID0+XG4gICAgICAgICAgdXRpbHMuYWRkcmVzc1RvU3RyaW5nKHRoaXMudHJhbnNhY3Rpb24uX25ldHdvcmsuaHJwLCB0aGlzLnRyYW5zYWN0aW9uLl9uZXR3b3JrLmFsaWFzLCBCdWZmZXIuZnJvbShhZGRyKSlcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW1wb3J0SW5DVHhCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9JbXBvcnRJbkNUeEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsbURBQTRGO0FBQzVGLCtFQUE0RTtBQUM1RSxtREFXK0I7QUFDL0Isb0RBQTRCO0FBQzVCLG1DQUE4RjtBQUU5RixNQUFhLGtCQUFtQixTQUFRLHlEQUEyQjtJQUNqRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEVBQUUsQ0FBQyxRQUFnQjtRQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLGVBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN0RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQU0sRUFBRSxRQUFpQixFQUFFLGlCQUFnQztRQUNyRSxNQUFNLE1BQU0sR0FBRyxFQUF3QixDQUFDO1FBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSx1QkFBWSxDQUFDLHFFQUFxRSxDQUFDLENBQUM7UUFDaEcsQ0FBQztRQUVELGtEQUFrRDtRQUNsRCw0RUFBNEU7UUFDNUUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUM1QixJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENB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QUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3pHO2FBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBclFELGdEQXFRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgTm90U3VwcG9ydGVkLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBBdG9taWNJbkNUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2F0b21pY0luQ1RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQge1xuICBldm1TZXJpYWwsXG4gIFVuc2lnbmVkVHgsXG4gIENyZWRlbnRpYWwsXG4gIEJpZ0ludFByLFxuICBJbnQsXG4gIElkLFxuICBUcmFuc2ZlcmFibGVJbnB1dCxcbiAgQWRkcmVzcyxcbiAgdXRpbHMgYXMgRmxhcmVVdGlscyxcbiAgYXZtU2VyaWFsLFxufSBmcm9tICdAZmxhcmVuZXR3b3JrL2ZsYXJlanMnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgRGVjb2RlZFV0eG9PYmosIEZsYXJlVHJhbnNhY3Rpb25UeXBlLCBTRUNQMjU2SzFfVHJhbnNmZXJfT3V0cHV0LCBUeCB9IGZyb20gJy4vaWZhY2UnO1xuXG5leHBvcnQgY2xhc3MgSW1wb3J0SW5DVHhCdWlsZGVyIGV4dGVuZHMgQXRvbWljSW5DVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEMtY2hhaW4gYWRkcmVzcyB3aG8gaXMgdGFyZ2V0IG9mIHRoZSBpbXBvcnQuXG4gICAqIEFkZHJlc3MgZm9ybWF0IGlzIGV0aCBsaWtlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjQWRkcmVzc1xuICAgKi9cbiAgdG8oY0FkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uX3RvID0gW3V0aWxzLnBhcnNlQWRkcmVzcyhjQWRkcmVzcyldO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLkltcG9ydDtcbiAgfVxuXG4gIGluaXRCdWlsZGVyKHR4OiBUeCwgcmF3Qnl0ZXM/OiBCdWZmZXIsIHBhcnNlZENyZWRlbnRpYWxzPzogQ3JlZGVudGlhbFtdKTogdGhpcyB7XG4gICAgY29uc3QgYmFzZVR4ID0gdHggYXMgZXZtU2VyaWFsLkltcG9ydFR4O1xuICAgIGlmICghdGhpcy52ZXJpZnlUeFR5cGUoYmFzZVR4Ll90eXBlKSkge1xuICAgICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZCgnVHJhbnNhY3Rpb24gY2Fubm90IGJlIHBhcnNlZCBvciBoYXMgYW4gdW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gdHlwZScpO1xuICAgIH1cblxuICAgIC8vIFRoZSBvdXRwdXRzIGlzIGEgc2luZ2xlIEMtQ2hhaW4gYWRkcmVzcyByZXN1bHQuXG4gICAgLy8gSXQncyBleHBlY3RlZCB0byBoYXZlIG9ubHkgb25lIG91dHB1dCB0byB0aGUgZGVzdGluYXRpb24gQy1DaGFpbiBhZGRyZXNzLlxuICAgIGNvbnN0IG91dHB1dHMgPSBiYXNlVHguT3V0cztcbiAgICBpZiAob3V0cHV0cy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1RyYW5zYWN0aW9uIGNhbiBoYXZlIG9uZSBvdXRwdXQnKTtcbiAgICB9XG4gICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1swXTtcblxuICAgIGlmIChCdWZmZXIuZnJvbShvdXRwdXQuYXNzZXRJZC50b0J5dGVzKCkpLnRvU3RyaW5nKCdoZXgnKSAhPT0gdGhpcy50cmFuc2FjdGlvbi5fYXNzZXRJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBc3NldElEIGFyZSBub3QgZXF1YWxzJyk7XG4gICAgfVxuICAgIHRoaXMudHJhbnNhY3Rpb24uX3RvID0gW0J1ZmZlci5mcm9tKG91dHB1dC5hZGRyZXNzLnRvQnl0ZXMoKSldO1xuXG4gICAgY29uc3QgaW5wdXRzID0gYmFzZVR4LmltcG9ydGVkSW5wdXRzO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uX3V0eG9zID0gdGhpcy5yZWNvdmVyVXR4b3MoaW5wdXRzKTtcblxuICAgIC8vIENhbGN1bGF0ZSB0b3RhbCBpbnB1dCBhbmQgb3V0cHV0IGFtb3VudHNcbiAgICBjb25zdCB0b3RhbElucHV0QW1vdW50ID0gaW5wdXRzLnJlZHVjZSgodCwgaSkgPT4gdCArIGkuYW1vdW50KCksIEJpZ0ludCgwKSk7XG4gICAgY29uc3QgdG90YWxPdXRwdXRBbW91bnQgPSBvdXRwdXQuYW1vdW50LnZhbHVlKCk7XG5cbiAgICAvLyBDYWxjdWxhdGUgZmVlIGJhc2VkIG9uIGlucHV0L291dHB1dCBkaWZmZXJlbmNlXG4gICAgY29uc3QgZmVlID0gdG90YWxJbnB1dEFtb3VudCAtIHRvdGFsT3V0cHV0QW1vdW50O1xuICAgIGNvbnN0IGZlZVNpemUgPSB0aGlzLmNhbGN1bGF0ZUZlZVNpemUoYmFzZVR4KTtcbiAgICAvLyBVc2UgaW50ZWdlciBkaXZpc2lvbiB0byBlbnN1cmUgZmVlUmF0ZSBjYW4gYmUgY29udmVydGVkIGJhY2sgdG8gQmlnSW50XG4gICAgY29uc3QgZmVlUmF0ZSA9IE1hdGguZmxvb3IoTnVtYmVyKGZlZSkgLyBmZWVTaXplKTtcblxuICAgIHRoaXMudHJhbnNhY3Rpb24uX2ZlZSA9IHtcbiAgICAgIGZlZTogZmVlLnRvU3RyaW5nKCksXG4gICAgICBmZWVSYXRlOiBmZWVSYXRlLFxuICAgICAgc2l6ZTogZmVlU2l6ZSxcbiAgICB9O1xuXG4gICAgLy8gVXNlIGNyZWRlbnRpYWxzIHBhc3NlZCBmcm9tIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgKHByb3Blcmx5IGV4dHJhY3RlZCB1c2luZyBjb2RlYylcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHBhcnNlZENyZWRlbnRpYWxzIHx8IFtdO1xuICAgIGNvbnN0IGhhc0NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHMubGVuZ3RoID4gMDtcblxuICAgIC8vIElmIGl0J3MgYSBzaWduZWQgdHJhbnNhY3Rpb24sIHN0b3JlIHRoZSBvcmlnaW5hbCByYXcgYnl0ZXMgdG8gcHJlc2VydmUgZXhhY3QgZm9ybWF0XG4gICAgaWYgKGhhc0NyZWRlbnRpYWxzICYmIHJhd0J5dGVzKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLl9yYXdTaWduZWRCeXRlcyA9IHJhd0J5dGVzO1xuICAgIH1cblxuICAgIC8vIEV4dHJhY3QgdGhyZXNob2xkIGZyb20gZmlyc3QgaW5wdXQncyBzaWdJbmRpY2llcyAobnVtYmVyIG9mIHJlcXVpcmVkIHNpZ25hdHVyZXMpXG4gICAgY29uc3QgZmlyc3RJbnB1dCA9IGlucHV0c1swXTtcbiAgICBjb25zdCBpbnB1dFRocmVzaG9sZCA9IGZpcnN0SW5wdXQuc2lnSW5kaWNpZXMoKS5sZW5ndGggfHwgdGhpcy50cmFuc2FjdGlvbi5fdGhyZXNob2xkO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uX3RocmVzaG9sZCA9IGlucHV0VGhyZXNob2xkO1xuXG4gICAgLy8gQ3JlYXRlIHByb3BlciBVbnNpZ25lZFR4IHdyYXBwZXIgd2l0aCBjcmVkZW50aWFsc1xuICAgIGNvbnN0IHRvQWRkcmVzcyA9IG5ldyBBZGRyZXNzKG91dHB1dC5hZGRyZXNzLnRvQnl0ZXMoKSk7XG4gICAgY29uc3QgYWRkcmVzc01hcCA9IG5ldyBGbGFyZVV0aWxzLkFkZHJlc3NNYXAoW1t0b0FkZHJlc3MsIDBdXSk7XG4gICAgY29uc3QgYWRkcmVzc01hcHMgPSBuZXcgRmxhcmVVdGlscy5BZGRyZXNzTWFwcyhbYWRkcmVzc01hcF0pO1xuXG4gICAgLy8gV2hlbiBjcmVkZW50aWFscyB3ZXJlIGV4dHJhY3RlZCwgdXNlIHRoZW0gZGlyZWN0bHkgdG8gcHJlc2VydmUgZXhpc3Rpbmcgc2lnbmF0dXJlc1xuICAgIGxldCB0eENyZWRlbnRpYWxzOiBDcmVkZW50aWFsW107XG4gICAgaWYgKGNyZWRlbnRpYWxzLmxlbmd0aCA+IDApIHtcbiAgICAgIHR4Q3JlZGVudGlhbHMgPSBjcmVkZW50aWFscztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ3JlYXRlIGVtcHR5IGNyZWRlbnRpYWwgd2l0aCB0aHJlc2hvbGQgbnVtYmVyIG9mIHNpZ25hdHVyZSBzbG90c1xuICAgICAgY29uc3QgZW1wdHlTaWduYXR1cmVzOiBSZXR1cm5UeXBlPHR5cGVvZiB1dGlscy5jcmVhdGVOZXdTaWc+W10gPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRUaHJlc2hvbGQ7IGkrKykge1xuICAgICAgICBlbXB0eVNpZ25hdHVyZXMucHVzaCh1dGlscy5jcmVhdGVOZXdTaWcoJycpKTtcbiAgICAgIH1cbiAgICAgIHR4Q3JlZGVudGlhbHMgPSBbbmV3IENyZWRlbnRpYWwoZW1wdHlTaWduYXR1cmVzKV07XG4gICAgfVxuXG4gICAgY29uc3QgdW5zaWduZWRUeCA9IG5ldyBVbnNpZ25lZFR4KGJhc2VUeCwgW10sIGFkZHJlc3NNYXBzLCB0eENyZWRlbnRpYWxzKTtcblxuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb24odW5zaWduZWRUeCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzdGF0aWMgdmVyaWZ5VHhUeXBlKHR4blR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eG5UeXBlID09PSBGbGFyZVRyYW5zYWN0aW9uVHlwZS5Fdm1JbXBvcnRUeDtcbiAgfVxuXG4gIHZlcmlmeVR4VHlwZSh0eG5UeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gSW1wb3J0SW5DVHhCdWlsZGVyLnZlcmlmeVR4VHlwZSh0eG5UeXBlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCB0aGUgaW1wb3J0IGluIEMtY2hhaW4gdHJhbnNhY3Rpb25cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkRmxhcmVUcmFuc2FjdGlvbigpOiB2b2lkIHtcbiAgICAvLyBpZiB0eCBoYXMgY3JlZGVudGlhbHMgb3Igd2FzIGFscmVhZHkgcmVjb3ZlcmVkIGZyb20gcmF3LCB0eCBzaG91bGRuJ3QgY2hhbmdlXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uaGFzQ3JlZGVudGlhbHMpIHJldHVybjtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5fdG8ubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RvIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy50cmFuc2FjdGlvbi5fZmVlLmZlZVJhdGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZmVlIHJhdGUgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IGlucHV0cywgYW1vdW50LCBjcmVkZW50aWFscyB9ID0gdGhpcy5jcmVhdGVJbnB1dHMoKTtcblxuICAgIC8vIENhbGN1bGF0ZSBmZWVcbiAgICBjb25zdCBmZWVSYXRlID0gQmlnSW50KHRoaXMudHJhbnNhY3Rpb24uX2ZlZS5mZWVSYXRlKTtcbiAgICBjb25zdCBmZWVTaXplID0gdGhpcy5jYWxjdWxhdGVGZWVTaXplKCk7XG4gICAgY29uc3QgZmVlID0gZmVlUmF0ZSAqIEJpZ0ludChmZWVTaXplKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl9mZWUuZmVlID0gZmVlLnRvU3RyaW5nKCk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5fZmVlLnNpemUgPSBmZWVTaXplO1xuXG4gICAgLy8gQ3JlYXRlIEVWTSBvdXRwdXQgdXNpbmcgcHJvcGVyIEZsYXJlSlMgY2xhc3NcbiAgICBjb25zdCBvdXRwdXQgPSBuZXcgZXZtU2VyaWFsLk91dHB1dChcbiAgICAgIG5ldyBBZGRyZXNzKHRoaXMudHJhbnNhY3Rpb24uX3RvWzBdKSxcbiAgICAgIG5ldyBCaWdJbnRQcihhbW91bnQgLSBmZWUpLFxuICAgICAgbmV3IElkKG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKHRoaXMudHJhbnNhY3Rpb24uX2Fzc2V0SWQsICdoZXgnKSkpXG4gICAgKTtcblxuICAgIC8vIENyZWF0ZSB0aGUgaW1wb3J0IHRyYW5zYWN0aW9uXG4gICAgY29uc3QgaW1wb3J0VHggPSBuZXcgZXZtU2VyaWFsLkltcG9ydFR4KFxuICAgICAgbmV3IEludCh0aGlzLnRyYW5zYWN0aW9uLl9uZXR3b3JrSUQpLFxuICAgICAgbmV3IElkKG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKHRoaXMudHJhbnNhY3Rpb24uX2Jsb2NrY2hhaW5JRCwgJ2hleCcpKSksXG4gICAgICBuZXcgSWQobmV3IFVpbnQ4QXJyYXkodGhpcy5fZXh0ZXJuYWxDaGFpbklkKSksXG4gICAgICBpbnB1dHMsXG4gICAgICBbb3V0cHV0XVxuICAgICk7XG5cbiAgICAvLyBDcmVhdGUgdW5zaWduZWQgdHJhbnNhY3Rpb24gd2l0aCBhbGwgcG90ZW50aWFsIHNpZ25lcnMgaW4gYWRkcmVzcyBtYXBcbiAgICBjb25zdCBhZGRyZXNzTWFwID0gbmV3IEZsYXJlVXRpbHMuQWRkcmVzc01hcCgpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uX2Zyb21BZGRyZXNzZXMuZm9yRWFjaCgoYWRkciwgaSkgPT4ge1xuICAgICAgYWRkcmVzc01hcC5zZXQobmV3IEFkZHJlc3MoYWRkciksIGkpO1xuICAgIH0pO1xuICAgIGNvbnN0IGFkZHJlc3NNYXBzID0gbmV3IEZsYXJlVXRpbHMuQWRkcmVzc01hcHMoW2FkZHJlc3NNYXBdKTtcblxuICAgIGNvbnN0IHVuc2lnbmVkVHggPSBuZXcgVW5zaWduZWRUeChcbiAgICAgIGltcG9ydFR4LFxuICAgICAgW10sIC8vIEVtcHR5IFVUWE9zIGFycmF5LCB3aWxsIGJlIGZpbGxlZCBkdXJpbmcgcHJvY2Vzc2luZ1xuICAgICAgYWRkcmVzc01hcHMsXG4gICAgICBjcmVkZW50aWFsc1xuICAgICk7XG5cbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFRyYW5zYWN0aW9uKHVuc2lnbmVkVHgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBpbnB1dHMgZnJvbSBVVFhPc1xuICAgKiBAcmV0dXJuIHtcbiAgICogICAgIGlucHV0czogVHJhbnNmZXJhYmxlSW5wdXRbXTtcbiAgICogICAgIGNyZWRlbnRpYWxzOiBDcmVkZW50aWFsW107XG4gICAqICAgICBhbW91bnQ6IGJpZ2ludDtcbiAgICogfVxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUlucHV0cygpOiB7XG4gICAgaW5wdXRzOiBUcmFuc2ZlcmFibGVJbnB1dFtdO1xuICAgIGNyZWRlbnRpYWxzOiBDcmVkZW50aWFsW107XG4gICAgYW1vdW50OiBiaWdpbnQ7XG4gIH0ge1xuICAgIGNvbnN0IHNlbmRlciA9IHRoaXMudHJhbnNhY3Rpb24uX2Zyb21BZGRyZXNzZXMuc2xpY2UoKTtcbiAgICBpZiAodGhpcy5yZWNvdmVyU2lnbmVyKSB7XG4gICAgICAvLyBzd2l0Y2ggZmlyc3QgYW5kIGxhc3Qgc2lnbmVyXG4gICAgICBjb25zdCB0bXAgPSBzZW5kZXIucG9wKCk7XG4gICAgICBzZW5kZXIucHVzaChzZW5kZXJbMF0pO1xuICAgICAgaWYgKHRtcCkge1xuICAgICAgICBzZW5kZXJbMF0gPSB0bXA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IHRvdGFsQW1vdW50ID0gQmlnSW50KDApO1xuICAgIGNvbnN0IGlucHV0czogVHJhbnNmZXJhYmxlSW5wdXRbXSA9IFtdO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzOiBDcmVkZW50aWFsW10gPSBbXTtcblxuICAgIHRoaXMudHJhbnNhY3Rpb24uX3V0eG9zLmZvckVhY2goKHV0eG8pID0+IHtcbiAgICAgIGNvbnN0IGFtb3VudCA9IEJpZ0ludCh1dHhvLmFtb3VudCk7XG4gICAgICB0b3RhbEFtb3VudCArPSBhbW91bnQ7XG5cbiAgICAgIC8vIENyZWF0ZSBzaWduYXR1cmUgaW5kaWNlcyBmb3IgdGhyZXNob2xkXG4gICAgICBjb25zdCBzaWdJbmRpY2VzOiBudW1iZXJbXSA9IFtdO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyYW5zYWN0aW9uLl90aHJlc2hvbGQ7IGkrKykge1xuICAgICAgICBzaWdJbmRpY2VzLnB1c2goaSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFVzZSBmcm9tTmF0aXZlIHRvIGNyZWF0ZSBUcmFuc2ZlcmFibGVJbnB1dCAoc2FtZSBwYXR0ZXJuIGFzIEltcG9ydEluUFR4QnVpbGRlcilcbiAgICAgIC8vIGZyb21OYXRpdmUgZXhwZWN0cyBjYjU4LWVuY29kZWQgc3RyaW5ncyBmb3IgdHhJZCBhbmQgYXNzZXRJZFxuICAgICAgY29uc3QgdHhJZENiNTggPSB1dHhvLnR4aWQ7IC8vIEFscmVhZHkgY2I1OCBlbmNvZGVkXG4gICAgICBjb25zdCBhc3NldElkQ2I1OCA9IHV0aWxzLmNiNThFbmNvZGUoQnVmZmVyLmZyb20odGhpcy50cmFuc2FjdGlvbi5fYXNzZXRJZCwgJ2hleCcpKTtcblxuICAgICAgY29uc3QgdHJhbnNmZXJhYmxlSW5wdXQgPSBUcmFuc2ZlcmFibGVJbnB1dC5mcm9tTmF0aXZlKFxuICAgICAgICB0eElkQ2I1OCxcbiAgICAgICAgTnVtYmVyKHV0eG8ub3V0cHV0aWR4KSxcbiAgICAgICAgYXNzZXRJZENiNTgsXG4gICAgICAgIGFtb3VudCxcbiAgICAgICAgc2lnSW5kaWNlc1xuICAgICAgKTtcblxuICAgICAgaW5wdXRzLnB1c2godHJhbnNmZXJhYmxlSW5wdXQpO1xuXG4gICAgICAvLyBDcmVhdGUgZW1wdHkgY3JlZGVudGlhbCBmb3IgZWFjaCBpbnB1dCB3aXRoIHRocmVzaG9sZCBzaWduZXJzXG4gICAgICBjb25zdCBlbXB0eVNpZ25hdHVyZXMgPSBzaWdJbmRpY2VzLm1hcCgoKSA9PiB1dGlscy5jcmVhdGVOZXdTaWcoJycpKTtcbiAgICAgIGNvbnN0IGNyZWRlbnRpYWwgPSBuZXcgQ3JlZGVudGlhbChlbXB0eVNpZ25hdHVyZXMpO1xuICAgICAgY3JlZGVudGlhbHMucHVzaChjcmVkZW50aWFsKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBpbnB1dHMsXG4gICAgICBjcmVkZW50aWFscyxcbiAgICAgIGFtb3VudDogdG90YWxBbW91bnQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIGZlZSBzaXplIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICogRm9yIEMtY2hhaW4gaW1wb3J0cywgdGhlIGZlZVJhdGUgaXMgdHJlYXRlZCBhcyBhbiBhYnNvbHV0ZSBmZWUgdmFsdWVcbiAgICovXG4gIHByaXZhdGUgY2FsY3VsYXRlRmVlU2l6ZSh0eD86IGV2bVNlcmlhbC5JbXBvcnRUeCk6IG51bWJlciB7XG4gICAgLy8gSWYgdHggaXMgcHJvdmlkZWQsIGNhbGN1bGF0ZSBiYXNlZCBvbiBhY3R1YWwgdHJhbnNhY3Rpb24gc2l6ZVxuICAgIGlmICh0eCkge1xuICAgICAgY29uc3QgY29kZWMgPSBhdm1TZXJpYWwuZ2V0QVZNTWFuYWdlcigpLmdldERlZmF1bHRDb2RlYygpO1xuICAgICAgcmV0dXJuIHR4LnRvQnl0ZXMoY29kZWMpLmxlbmd0aDtcbiAgICB9XG5cbiAgICAvLyBGb3IgQy1jaGFpbiBpbXBvcnRzLCB0cmVhdCBmZWVSYXRlIGFzIHRoZSBhYnNvbHV0ZSBmZWUgKG11bHRpcGxpZXIgb2YgMSlcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNvdmVyIFVUWE9zIGZyb20gaW1wb3J0ZWQgaW5wdXRzXG4gICAqIEBwYXJhbSBpbXBvcnRlZElucHV0cyBBcnJheSBvZiB0cmFuc2ZlcmFibGUgaW5wdXRzXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIGRlY29kZWQgVVRYTyBvYmplY3RzXG4gICAqL1xuICBwcml2YXRlIHJlY292ZXJVdHhvcyhpbXBvcnRlZElucHV0czogVHJhbnNmZXJhYmxlSW5wdXRbXSk6IERlY29kZWRVdHhvT2JqW10ge1xuICAgIHJldHVybiBpbXBvcnRlZElucHV0cy5tYXAoKGlucHV0KSA9PiB7XG4gICAgICBjb25zdCB0eGlkID0gaW5wdXQudXR4b0lELnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBvdXRwdXRpZHggPSBpbnB1dC51dHhvSUQub3V0cHV0SWR4LnRvU3RyaW5nKCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG91dHB1dElEOiBTRUNQMjU2SzFfVHJhbnNmZXJfT3V0cHV0LFxuICAgICAgICBhbW91bnQ6IGlucHV0LmFtb3VudCgpLnRvU3RyaW5nKCksXG4gICAgICAgIHR4aWQ6IHV0aWxzLmNiNThFbmNvZGUoQnVmZmVyLmZyb20odHhpZCwgJ2hleCcpKSxcbiAgICAgICAgb3V0cHV0aWR4OiBvdXRwdXRpZHgsXG4gICAgICAgIHRocmVzaG9sZDogdGhpcy50cmFuc2FjdGlvbi5fdGhyZXNob2xkLFxuICAgICAgICBhZGRyZXNzZXM6IHRoaXMudHJhbnNhY3Rpb24uX2Zyb21BZGRyZXNzZXMubWFwKChhZGRyKSA9PlxuICAgICAgICAgIHV0aWxzLmFkZHJlc3NUb1N0cmluZyh0aGlzLnRyYW5zYWN0aW9uLl9uZXR3b3JrLmhycCwgdGhpcy50cmFuc2FjdGlvbi5fbmV0d29yay5hbGlhcywgQnVmZmVyLmZyb20oYWRkcikpXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"atomicTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/atomicTransactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAwB,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAW5F,8BAAsB,wBAAyB,SAAQ,kBAAkB;IACvE,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,aAAa,UAAS;gBAEpB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;;;;;;;;OASG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG;QAC3C,MAAM,EAAE,iBAAiB,EAAE,CAAC;QAC5B,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC7B,WAAW,EAAE,UAAU,EAAE,CAAC;KAC3B;IAoHD,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAY3D;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,IAAI,IAAI;IAEhD,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,eAAe,CAAC;IAE1D;;;;;OAKG;IACH,SAAS,KAAK,QAAQ,IAAI,MAAM,CAE/B;IAED;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAI1D;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAO/C;;;;OAIG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAKrC"}
1
+ {"version":3,"file":"atomicTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/atomicTransactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAwB,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAW5F,8BAAsB,wBAAyB,SAAQ,kBAAkB;IACvE,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,aAAa,UAAS;gBAEpB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C;;;;;;;;;OASG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG;QAC3C,MAAM,EAAE,iBAAiB,EAAE,CAAC;QAC5B,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC7B,WAAW,EAAE,UAAU,EAAE,CAAC;KAC3B;IAoHD,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAY3D;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,IAAI,IAAI;IAEhD,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,eAAe,CAAC;IAE1D;;;;;OAKG;IACH,SAAS,KAAK,QAAQ,IAAI,MAAM,CAE/B;IAED;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAI1D;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAO/C;;;;OAIG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAKrC"}
@@ -13,6 +13,7 @@ class AtomicTransactionBuilder extends transactionBuilder_1.TransactionBuilder {
13
13
  super(_coinConfig);
14
14
  this.recoverSigner = false;
15
15
  this.transaction = new transaction_1.Transaction(_coinConfig);
16
+ this.transaction._fee.fee = this.fixedFee;
16
17
  }
17
18
  /**
18
19
  * Create inputs and outputs from UTXOs
@@ -172,4 +173,4 @@ class AtomicTransactionBuilder extends transactionBuilder_1.TransactionBuilder {
172
173
  }
173
174
  }
174
175
  exports.AtomicTransactionBuilder = AtomicTransactionBuilder;
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvbWljVHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsNkRBQTBEO0FBQzFELCtDQUE0QztBQUM1QyxtREFBNEY7QUFFNUYsb0RBQTRCO0FBUzVCLE1BQXNCLHdCQUF5QixTQUFRLHVDQUFrQjtJQUl2RSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUhYLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBSTlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDTyxpQkFBaUIsQ0FBQyxNQUFjO1FBS3hDLE1BQU0sTUFBTSxHQUFJLElBQUksQ0FBQyxXQUEyQixDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4RSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QiwrQkFBK0I7WUFDL0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQ2xCLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sTUFBTSxHQUF3QixFQUFFLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQXdCLEVBQUUsQ0FBQztRQUN4QyxNQUFNLFdBQVcsR0FBaUIsRUFBRSxDQUFDO1FBRXBDLElBQUksQ0FBQyxXQUEyQixDQUFDLE1BQU0sQ0FB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QUMzQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsT0FBd0I7UUFDdEMsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsR0FBRyxDQUFDLFFBQXlCO1FBQzNCLE1BQU0sR0FBRyxHQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekUsSUFBSSxDQUFDLFdBQTJCLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDakQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUF6TUQsNERBeU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zZmVyYWJsZUlucHV0LCBJbnQsIElkLCBUeXBlU3ltYm9scywgQ3JlZGVudGlhbCB9IGZyb20gJ0BmbGFyZW5ldHdvcmsvZmxhcmVqcyc7XG5pbXBvcnQgeyBEZWNvZGVkVXR4b09iaiB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG4vLyBJbnRlcmZhY2UgZm9yIG9iamVjdHMgdGhhdCBjYW4gcHJvdmlkZSBhbiBhbW91bnRcbmludGVyZmFjZSBBbW91bnRlciB7XG4gIF90eXBlOiBUeXBlU3ltYm9scztcbiAgYW1vdW50OiAoKSA9PiBiaWdpbnQ7XG4gIHRvQnl0ZXM6ICgpID0+IFVpbnQ4QXJyYXk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX2V4dGVybmFsQ2hhaW5JZDogQnVmZmVyO1xuICBwcm90ZWN0ZWQgcmVjb3ZlclNpZ25lciA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgaW5wdXRzIGFuZCBvdXRwdXRzIGZyb20gVVRYT3NcbiAgICogQHBhcmFtIHtiaWdpbnR9IGFtb3VudCBBbW91bnQgdG8gdHJhbnNmZXJcbiAgICogQHJldHVybiB7XG4gICAqICAgICBpbnB1dHM6IFRyYW5zZmVyYWJsZUlucHV0W107XG4gICAqICAgICBvdXRwdXRzOiBUcmFuc2ZlcmFibGVJbnB1dFtdO1xuICAgKiAgICAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxbXTtcbiAgICogfVxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlSW5wdXRPdXRwdXQoYW1vdW50OiBiaWdpbnQpOiB7XG4gICAgaW5wdXRzOiBUcmFuc2ZlcmFibGVJbnB1dFtdO1xuICAgIG91dHB1dHM6IFRyYW5zZmVyYWJsZUlucHV0W107XG4gICAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxbXTtcbiAgfSB7XG4gICAgY29uc3Qgc2VuZGVyID0gKHRoaXMudHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb24pLl9mcm9tQWRkcmVzc2VzLnNsaWNlKCk7XG4gICAgaWYgKHRoaXMucmVjb3ZlclNpZ25lcikge1xuICAgICAgLy8gc3dpdGNoIGZpcnN0IGFuZCBsYXN0IHNpZ25lclxuICAgICAgY29uc3QgdG1wID0gc2VuZGVyLnBvcCgpO1xuICAgICAgc2VuZGVyLnB1c2goc2VuZGVyWzBdKTtcbiAgICAgIGlmICh0bXApIHtcbiAgICAgICAgc2VuZGVyWzBdID0gdG1wO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCB0b3RhbEFtb3VudCA9IEJpZ0ludCgwKTtcbiAgICBjb25zdCBpbnB1dHM6IFRyYW5zZmVyYWJsZUlucHV0W10gPSBbXTtcbiAgICBjb25zdCBvdXRwdXRzOiBUcmFuc2ZlcmFibGVJbnB1dFtdID0gW107XG4gICAgY29uc3QgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxbXSA9IFtdO1xuXG4gICAgKHRoaXMudHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb24pLl91dHhvcy5mb3JFYWNoKCh1dHhvOiBEZWNvZGVkVXR4b09iaikgPT4ge1xuICAgICAgY29uc3QgdXR4b0Ftb3VudCA9IEJpZ0ludCh1dHhvLmFtb3VudCk7XG4gICAgICB0b3RhbEFtb3VudCArPSB1dHhvQW1vdW50O1xuXG4gICAgICAvLyBDcmVhdGUgaW5wdXRcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICBfdHlwZTogVHlwZVN5bWJvbHMuSW5wdXQsXG4gICAgICAgIGFtb3VudDogKCkgPT4gdXR4b0Ftb3VudCxcbiAgICAgICAgc2lnSW5kaWNlczogc2VuZGVyLm1hcCgoXywgaSkgPT4gaSksXG4gICAgICAgIHRvQnl0ZXM6ICgpID0+IG5ldyBVaW50OEFycmF5KCksXG4gICAgICB9O1xuXG4gICAgICAvLyBDcmVhdGUgYXNzZXQgd2l0aCBBbW91bnRlciBpbnRlcmZhY2VcbiAgICAgIGNvbnN0IGFzc2V0SWQ6IEFtb3VudGVyID0ge1xuICAgICAgICBfdHlwZTogVHlwZVN5bWJvbHMuQmFzZVR4LFxuICAgICAgICBhbW91bnQ6ICgpID0+IHV0eG9BbW91bnQsXG4gICAgICAgIHRvQnl0ZXM6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKCh0aGlzLnRyYW5zYWN0aW9uIGFzIFRyYW5zYWN0aW9uKS5fYXNzZXRJZCwgJ2hleCcpKTtcbiAgICAgICAgICByZXR1cm4gYnl0ZXM7XG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICAvLyBDcmVhdGUgVHJhbnNmZXJhYmxlSW5wdXRcbiAgICAgIGNvbnN0IHRyYW5zZmVyYWJsZUlucHV0ID0gbmV3IFRyYW5zZmVyYWJsZUlucHV0KFxuICAgICAgICB7XG4gICAgICAgICAgX3R5cGU6IFR5cGVTeW1ib2xzLlVUWE9JRCxcbiAgICAgICAgICB0eElEOiBuZXcgSWQobmV3IFVpbnQ4QXJyYXkoQnVmZmVyLmZyb20odXR4by50eGlkLCAnaGV4JykpKSxcbiAgICAgICAgICBvdXRwdXRJZHg6IG5ldyBJbnQoTnVtYmVyKHV0eG8ub3V0cHV0aWR4KSksXG4gICAgICAgICAgSUQ6ICgpID0+IHV0eG8udHhpZCxcbiAgICAgICAgICB0b0J5dGVzOiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0eElkQnl0ZXMgPSBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbSh1dHhvLnR4aWQsICdoZXgnKSk7XG4gICAgICAgICAgICBjb25zdCBvdXRwdXRJZHhCeXRlcyA9IG5ldyBVaW50OEFycmF5KDQpO1xuICAgICAgICAgICAgbmV3IERhdGFWaWV3KG91dHB1dElkeEJ5dGVzLmJ1ZmZlcikuc2V0SW50MzIoMCwgTnVtYmVyKHV0eG8ub3V0cHV0aWR4KSwgdHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChbdHhJZEJ5dGVzLCBvdXRwdXRJZHhCeXRlc10pO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG5ldyBJZChuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbSh1dHhvLm91dHB1dGlkeC50b1N0cmluZygpKSkpLFxuICAgICAgICBhc3NldElkXG4gICAgICApO1xuXG4gICAgICAvLyBTZXQgaW5wdXQgcHJvcGVydGllc1xuICAgICAgT2JqZWN0LmFzc2lnbih0cmFuc2ZlcmFibGVJbnB1dCwgeyBpbnB1dCB9KTtcbiAgICAgIGlucHV0cy5wdXNoKHRyYW5zZmVyYWJsZUlucHV0KTtcblxuICAgICAgLy8gQ3JlYXRlIGVtcHR5IGNyZWRlbnRpYWwgZm9yIGVhY2ggaW5wdXRcbiAgICAgIGNvbnN0IGVtcHR5U2lnbmF0dXJlcyA9IHNlbmRlci5tYXAoKCkgPT4gdXRpbHMuY3JlYXRlTmV3U2lnKCcnKSk7XG4gICAgICBjcmVkZW50aWFscy5wdXNoKG5ldyBDcmVkZW50aWFsKGVtcHR5U2lnbmF0dXJlcykpO1xuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIG91dHB1dCBpZiB0aGVyZSBpcyBjaGFuZ2VcbiAgICBpZiAodG90YWxBbW91bnQgPiBhbW91bnQpIHtcbiAgICAgIGNvbnN0IGNoYW5nZUFtb3VudCA9IHRvdGFsQW1vdW50IC0gYW1vdW50O1xuICAgICAgY29uc3Qgb3V0cHV0ID0ge1xuICAgICAgICBfdHlwZTogVHlwZVN5bWJvbHMuQmFzZVR4LFxuICAgICAgICBhbW91bnQ6ICgpID0+IGNoYW5nZUFtb3VudCxcbiAgICAgICAgYWRkcmVzc2VzOiBzZW5kZXIsXG4gICAgICAgIGxvY2t0aW1lOiAodGhpcy50cmFuc2FjdGlvbiBhcyBUcmFuc2FjdGlvbikuX2xvY2t0aW1lLFxuICAgICAgICB0aHJlc2hvbGQ6ICh0aGlzLnRyYW5zYWN0aW9uIGFzIFRyYW5zYWN0aW9uKS5fdGhyZXNob2xkLFxuICAgICAgICB0b0J5dGVzOiAoKSA9PiBuZXcgVWludDhBcnJheSgpLFxuICAgICAgfTtcblxuICAgICAgLy8gQ3JlYXRlIGFzc2V0IHdpdGggQW1vdW50ZXIgaW50ZXJmYWNlXG4gICAgICBjb25zdCBhc3NldElkOiBBbW91bnRlciA9IHtcbiAgICAgICAgX3R5cGU6IFR5cGVTeW1ib2xzLkJhc2VUeCxcbiAgICAgICAgYW1vdW50OiAoKSA9PiBjaGFuZ2VBbW91bnQsXG4gICAgICAgIHRvQnl0ZXM6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKCh0aGlzLnRyYW5zYWN0aW9uIGFzIFRyYW5zYWN0aW9uKS5fYXNzZXRJZCwgJ2hleCcpKTtcbiAgICAgICAgICByZXR1cm4gYnl0ZXM7XG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICAvLyBDcmVhdGUgVHJhbnNmZXJhYmxlT3V0cHV0XG4gICAgICBjb25zdCB0cmFuc2ZlcmFibGVPdXRwdXQgPSBuZXcgVHJhbnNmZXJhYmxlSW5wdXQoXG4gICAgICAgIHtcbiAgICAgICAgICBfdHlwZTogVHlwZVN5bWJvbHMuVVRYT0lELFxuICAgICAgICAgIHR4SUQ6IG5ldyBJZChuZXcgVWludDhBcnJheSgzMikpLFxuICAgICAgICAgIG91dHB1dElkeDogbmV3IEludCgwKSxcbiAgICAgICAgICBJRDogKCkgPT4gJycsXG4gICAgICAgICAgdG9CeXRlczogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdHhJZEJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoMzIpO1xuICAgICAgICAgICAgY29uc3Qgb3V0cHV0SWR4Qnl0ZXMgPSBuZXcgVWludDhBcnJheSg0KTtcbiAgICAgICAgICAgIHJldHVybiBCdWZmZXIuY29uY2F0KFt0eElkQnl0ZXMsIG91dHB1dElkeEJ5dGVzXSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbmV3IElkKG5ldyBVaW50OEFycmF5KFswXSkpLFxuICAgICAgICBhc3NldElkXG4gICAgICApO1xuXG4gICAgICAvLyBTZXQgb3V0cHV0IHByb3BlcnRpZXNcbiAgICAgIE9iamVjdC5hc3NpZ24odHJhbnNmZXJhYmxlT3V0cHV0LCB7IG91dHB1dCB9KTtcbiAgICAgIG91dHB1dHMucHVzaCh0cmFuc2ZlcmFibGVPdXRwdXQpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBpbnB1dHMsXG4gICAgICBvdXRwdXRzLFxuICAgICAgY3JlZGVudGlhbHMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy5idWlsZEZsYXJlVHJhbnNhY3Rpb24oKTtcbiAgICB0aGlzLnNldFRyYW5zYWN0aW9uVHlwZSh0aGlzLnRyYW5zYWN0aW9uVHlwZSk7XG4gICAgaWYgKHRoaXMuaGFzU2lnbmVyKCkpIHtcbiAgICAgIC8vIFNpZ24gc2VxdWVudGlhbGx5IHRvIGVuc3VyZSBwcm9wZXIgb3JkZXJcbiAgICAgIGZvciAoY29uc3Qga2V5UGFpciBvZiB0aGlzLl9zaWduZXIpIHtcbiAgICAgICAgYXdhaXQgdGhpcy50cmFuc2FjdGlvbi5zaWduKGtleVBhaXIpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIEZsYXJlIHRyYW5zYWN0aW9uLiBUcmFuc2FjdGlvbiBmaWVsZCBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGJ1aWxkRmxhcmVUcmFuc2FjdGlvbigpOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZTtcblxuICAvKipcbiAgICogRmVlIGlzIGZpeCBmb3IgQVZNIGF0b21pYyB0eC5cbiAgICpcbiAgICogQHJldHVybnMgbmV0d29yay50eEZlZVxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGZpeGVkRmVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb24uX25ldHdvcmsudHhGZWU7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiB0eXBlXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0XG4gICAqL1xuICBzZXRUcmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvblR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBpbnRlcm5hbCBjaGFpbiBpcyB0aGUgb25lIHNldCBmb3IgdGhlIGNvaW4gaW4gY29pbkNvbmZpZy5uZXR3b3JrLiBUaGUgZXh0ZXJuYWwgY2hhaW4gaXMgdGhlIG90aGVyIGNoYWluIGludm9sdmVkLlxuICAgKiBUaGUgZXh0ZXJuYWwgY2hhaW4gaWQgaXMgdGhlIHNvdXJjZSBvbiBpbXBvcnQgYW5kIHRoZSBkZXN0aW5hdGlvbiBvbiBleHBvcnQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFpbklkIC0gaWQgb2YgdGhlIGV4dGVybmFsIGNoYWluXG4gICAqL1xuICBleHRlcm5hbENoYWluSWQoY2hhaW5JZDogc3RyaW5nIHwgQnVmZmVyKTogdGhpcyB7XG4gICAgY29uc3QgbmV3VGFyZ2V0Q2hhaW5JZCA9IHR5cGVvZiBjaGFpbklkID09PSAnc3RyaW5nJyA/IHV0aWxzLmNiNThEZWNvZGUoY2hhaW5JZCkgOiBCdWZmZXIuZnJvbShjaGFpbklkKTtcbiAgICB0aGlzLnZhbGlkYXRlQ2hhaW5JZChuZXdUYXJnZXRDaGFpbklkKTtcbiAgICB0aGlzLl9leHRlcm5hbENoYWluSWQgPSBuZXdUYXJnZXRDaGFpbklkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gZmVlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgYmlnaW50fSBmZWVWYWx1ZSAtIHRoZSBmZWUgdmFsdWVcbiAgICovXG4gIGZlZShmZWVWYWx1ZTogc3RyaW5nIHwgYmlnaW50KTogdGhpcyB7XG4gICAgY29uc3QgZmVlID0gdHlwZW9mIGZlZVZhbHVlID09PSAnc3RyaW5nJyA/IGZlZVZhbHVlIDogZmVlVmFsdWUudG9TdHJpbmcoKTtcbiAgICAodGhpcy50cmFuc2FjdGlvbiBhcyBUcmFuc2FjdGlvbikuX2ZlZS5mZWUgPSBmZWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdfQ==
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvbWljVHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsNkRBQTBEO0FBQzFELCtDQUE0QztBQUM1QyxtREFBNEY7QUFFNUYsb0RBQTRCO0FBUzVCLE1BQXNCLHdCQUF5QixTQUFRLHVDQUFrQjtJQUl2RSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUhYLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBSTlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDTyxpQkFBaUIsQ0FBQyxNQUFjO1FBS3hDLE1BQU0sTUFBTSxHQUFJLElBQUksQ0FBQyxXQUEyQixDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4RSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QiwrQkFBK0I7WUFDL0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQ2xCLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sTUFBTSxHQUF3QixFQUFFLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQXdCLEVBQUUsQ0FBQztR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LGtCQUFrQixDQUFDLGVBQWdDO1FBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsT0FBd0I7UUFDdEMsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsR0FBRyxDQUFDLFFBQXlCO1FBQzNCLE1BQU0sR0FBRyxHQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekUsSUFBSSxDQUFDLFdBQTJCLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDakQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUExTUQsNERBME1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zZmVyYWJsZUlucHV0LCBJbnQsIElkLCBUeXBlU3ltYm9scywgQ3JlZGVudGlhbCB9IGZyb20gJ0BmbGFyZW5ldHdvcmsvZmxhcmVqcyc7XG5pbXBvcnQgeyBEZWNvZGVkVXR4b09iaiB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG4vLyBJbnRlcmZhY2UgZm9yIG9iamVjdHMgdGhhdCBjYW4gcHJvdmlkZSBhbiBhbW91bnRcbmludGVyZmFjZSBBbW91bnRlciB7XG4gIF90eXBlOiBUeXBlU3ltYm9scztcbiAgYW1vdW50OiAoKSA9PiBiaWdpbnQ7XG4gIHRvQnl0ZXM6ICgpID0+IFVpbnQ4QXJyYXk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX2V4dGVybmFsQ2hhaW5JZDogQnVmZmVyO1xuICBwcm90ZWN0ZWQgcmVjb3ZlclNpZ25lciA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl9mZWUuZmVlID0gdGhpcy5maXhlZEZlZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgaW5wdXRzIGFuZCBvdXRwdXRzIGZyb20gVVRYT3NcbiAgICogQHBhcmFtIHtiaWdpbnR9IGFtb3VudCBBbW91bnQgdG8gdHJhbnNmZXJcbiAgICogQHJldHVybiB7XG4gICAqICAgICBpbnB1dHM6IFRyYW5zZmVyYWJsZUlucHV0W107XG4gICAqICAgICBvdXRwdXRzOiBUcmFuc2ZlcmFibGVJbnB1dFtdO1xuICAgKiAgICAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxbXTtcbiAgICogfVxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlSW5wdXRPdXRwdXQoYW1vdW50OiBiaWdpbnQpOiB7XG4gICAgaW5wdXRzOiBUcmFuc2ZlcmFibGVJbnB1dFtdO1xuICAgIG91dHB1dHM6IFRyYW5zZmVyYWJsZUlucHV0W107XG4gICAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxbXTtcbiAgfSB7XG4gICAgY29uc3Qgc2VuZGVyID0gKHRoaXMudHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb24pLl9mcm9tQWRkcmVzc2VzLnNsaWNlKCk7XG4gICAgaWYgKHRoaXMucmVjb3ZlclNpZ25lcikge1xuICAgICAgLy8gc3dpdGNoIGZpcnN0IGFuZCBsYXN0IHNpZ25lclxuICAgICAgY29uc3QgdG1wID0gc2VuZGVyLnBvcCgpO1xuICAgICAgc2VuZGVyLnB1c2goc2VuZGVyWzBdKTtcbiAgICAgIGlmICh0bXApIHtcbiAgICAgICAgc2VuZGVyWzBdID0gdG1wO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCB0b3RhbEFtb3VudCA9IEJpZ0ludCgwKTtcbiAgICBjb25zdCBpbnB1dHM6IFRyYW5zZmVyYWJsZUlucHV0W10gPSBbXTtcbiAgICBjb25zdCBvdXRwdXRzOiBUcmFuc2ZlcmFibGVJbnB1dFtdID0gW107XG4gICAgY29uc3QgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxbXSA9IFtdO1xuXG4gICAgKHRoaXMudHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb24pLl91dHhvcy5mb3JFYWNoKCh1dHhvOiBEZWNvZGVkVXR4b09iaikgPT4ge1xuICAgICAgY29uc3QgdXR4b0Ftb3VudCA9IEJpZ0ludCh1dHhvLmFtb3VudCk7XG4gICAgICB0b3RhbEFtb3VudCArPSB1dHhvQW1vdW50O1xuXG4gICAgICAvLyBDcmVhdGUgaW5wdXRcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICBfdHlwZTogVHlwZVN5bWJvbHMuSW5wdXQsXG4gICAgICAgIGFtb3VudDogKCkgPT4gdXR4b0Ftb3VudCxcbiAgICAgICAgc2lnSW5kaWNlczogc2VuZGVyLm1hcCgoXywgaSkgPT4gaSksXG4gICAgICAgIHRvQnl0ZXM6ICgpID0+IG5ldyBVaW50OEFycmF5KCksXG4gICAgICB9O1xuXG4gICAgICAvLyBDcmVhdGUgYXNzZXQgd2l0aCBBbW91bnRlciBpbnRlcmZhY2VcbiAgICAgIGNvbnN0IGFzc2V0SWQ6IEFtb3VudGVyID0ge1xuICAgICAgICBfdHlwZTogVHlwZVN5bWJvbHMuQmFzZVR4LFxuICAgICAgICBhbW91bnQ6ICgpID0+IHV0eG9BbW91bnQsXG4gICAgICAgIHRvQnl0ZXM6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKCh0aGlzLnRyYW5zYWN0aW9uIGFzIFRyYW5zYWN0aW9uKS5fYXNzZXRJZCwgJ2hleCcpKTtcbiAgICAgICAgICByZXR1cm4gYnl0ZXM7XG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICAvLyBDcmVhdGUgVHJhbnNmZXJhYmxlSW5wdXRcbiAgICAgIGNvbnN0IHRyYW5zZmVyYWJsZUlucHV0ID0gbmV3IFRyYW5zZmVyYWJsZUlucHV0KFxuICAgICAgICB7XG4gICAgICAgICAgX3R5cGU6IFR5cGVTeW1ib2xzLlVUWE9JRCxcbiAgICAgICAgICB0eElEOiBuZXcgSWQobmV3IFVpbnQ4QXJyYXkoQnVmZmVyLmZyb20odXR4by50eGlkLCAnaGV4JykpKSxcbiAgICAgICAgICBvdXRwdXRJZHg6IG5ldyBJbnQoTnVtYmVyKHV0eG8ub3V0cHV0aWR4KSksXG4gICAgICAgICAgSUQ6ICgpID0+IHV0eG8udHhpZCxcbiAgICAgICAgICB0b0J5dGVzOiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0eElkQnl0ZXMgPSBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbSh1dHhvLnR4aWQsICdoZXgnKSk7XG4gICAgICAgICAgICBjb25zdCBvdXRwdXRJZHhCeXRlcyA9IG5ldyBVaW50OEFycmF5KDQpO1xuICAgICAgICAgICAgbmV3IERhdGFWaWV3KG91dHB1dElkeEJ5dGVzLmJ1ZmZlcikuc2V0SW50MzIoMCwgTnVtYmVyKHV0eG8ub3V0cHV0aWR4KSwgdHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChbdHhJZEJ5dGVzLCBvdXRwdXRJZHhCeXRlc10pO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG5ldyBJZChuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbSh1dHhvLm91dHB1dGlkeC50b1N0cmluZygpKSkpLFxuICAgICAgICBhc3NldElkXG4gICAgICApO1xuXG4gICAgICAvLyBTZXQgaW5wdXQgcHJvcGVydGllc1xuICAgICAgT2JqZWN0LmFzc2lnbih0cmFuc2ZlcmFibGVJbnB1dCwgeyBpbnB1dCB9KTtcbiAgICAgIGlucHV0cy5wdXNoKHRyYW5zZmVyYWJsZUlucHV0KTtcblxuICAgICAgLy8gQ3JlYXRlIGVtcHR5IGNyZWRlbnRpYWwgZm9yIGVhY2ggaW5wdXRcbiAgICAgIGNvbnN0IGVtcHR5U2lnbmF0dXJlcyA9IHNlbmRlci5tYXAoKCkgPT4gdXRpbHMuY3JlYXRlTmV3U2lnKCcnKSk7XG4gICAgICBjcmVkZW50aWFscy5wdXNoKG5ldyBDcmVkZW50aWFsKGVtcHR5U2lnbmF0dXJlcykpO1xuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIG91dHB1dCBpZiB0aGVyZSBpcyBjaGFuZ2VcbiAgICBpZiAodG90YWxBbW91bnQgPiBhbW91bnQpIHtcbiAgICAgIGNvbnN0IGNoYW5nZUFtb3VudCA9IHRvdGFsQW1vdW50IC0gYW1vdW50O1xuICAgICAgY29uc3Qgb3V0cHV0ID0ge1xuICAgICAgICBfdHlwZTogVHlwZVN5bWJvbHMuQmFzZVR4LFxuICAgICAgICBhbW91bnQ6ICgpID0+IGNoYW5nZUFtb3VudCxcbiAgICAgICAgYWRkcmVzc2VzOiBzZW5kZXIsXG4gICAgICAgIGxvY2t0aW1lOiAodGhpcy50cmFuc2FjdGlvbiBhcyBUcmFuc2FjdGlvbikuX2xvY2t0aW1lLFxuICAgICAgICB0aHJlc2hvbGQ6ICh0aGlzLnRyYW5zYWN0aW9uIGFzIFRyYW5zYWN0aW9uKS5fdGhyZXNob2xkLFxuICAgICAgICB0b0J5dGVzOiAoKSA9PiBuZXcgVWludDhBcnJheSgpLFxuICAgICAgfTtcblxuICAgICAgLy8gQ3JlYXRlIGFzc2V0IHdpdGggQW1vdW50ZXIgaW50ZXJmYWNlXG4gICAgICBjb25zdCBhc3NldElkOiBBbW91bnRlciA9IHtcbiAgICAgICAgX3R5cGU6IFR5cGVTeW1ib2xzLkJhc2VUeCxcbiAgICAgICAgYW1vdW50OiAoKSA9PiBjaGFuZ2VBbW91bnQsXG4gICAgICAgIHRvQnl0ZXM6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKCh0aGlzLnRyYW5zYWN0aW9uIGFzIFRyYW5zYWN0aW9uKS5fYXNzZXRJZCwgJ2hleCcpKTtcbiAgICAgICAgICByZXR1cm4gYnl0ZXM7XG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICAvLyBDcmVhdGUgVHJhbnNmZXJhYmxlT3V0cHV0XG4gICAgICBjb25zdCB0cmFuc2ZlcmFibGVPdXRwdXQgPSBuZXcgVHJhbnNmZXJhYmxlSW5wdXQoXG4gICAgICAgIHtcbiAgICAgICAgICBfdHlwZTogVHlwZVN5bWJvbHMuVVRYT0lELFxuICAgICAgICAgIHR4SUQ6IG5ldyBJZChuZXcgVWludDhBcnJheSgzMikpLFxuICAgICAgICAgIG91dHB1dElkeDogbmV3IEludCgwKSxcbiAgICAgICAgICBJRDogKCkgPT4gJycsXG4gICAgICAgICAgdG9CeXRlczogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdHhJZEJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoMzIpO1xuICAgICAgICAgICAgY29uc3Qgb3V0cHV0SWR4Qnl0ZXMgPSBuZXcgVWludDhBcnJheSg0KTtcbiAgICAgICAgICAgIHJldHVybiBCdWZmZXIuY29uY2F0KFt0eElkQnl0ZXMsIG91dHB1dElkeEJ5dGVzXSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbmV3IElkKG5ldyBVaW50OEFycmF5KFswXSkpLFxuICAgICAgICBhc3NldElkXG4gICAgICApO1xuXG4gICAgICAvLyBTZXQgb3V0cHV0IHByb3BlcnRpZXNcbiAgICAgIE9iamVjdC5hc3NpZ24odHJhbnNmZXJhYmxlT3V0cHV0LCB7IG91dHB1dCB9KTtcbiAgICAgIG91dHB1dHMucHVzaCh0cmFuc2ZlcmFibGVPdXRwdXQpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBpbnB1dHMsXG4gICAgICBvdXRwdXRzLFxuICAgICAgY3JlZGVudGlhbHMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy5idWlsZEZsYXJlVHJhbnNhY3Rpb24oKTtcbiAgICB0aGlzLnNldFRyYW5zYWN0aW9uVHlwZSh0aGlzLnRyYW5zYWN0aW9uVHlwZSk7XG4gICAgaWYgKHRoaXMuaGFzU2lnbmVyKCkpIHtcbiAgICAgIC8vIFNpZ24gc2VxdWVudGlhbGx5IHRvIGVuc3VyZSBwcm9wZXIgb3JkZXJcbiAgICAgIGZvciAoY29uc3Qga2V5UGFpciBvZiB0aGlzLl9zaWduZXIpIHtcbiAgICAgICAgYXdhaXQgdGhpcy50cmFuc2FjdGlvbi5zaWduKGtleVBhaXIpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIEZsYXJlIHRyYW5zYWN0aW9uLiBUcmFuc2FjdGlvbiBmaWVsZCBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGJ1aWxkRmxhcmVUcmFuc2FjdGlvbigpOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZTtcblxuICAvKipcbiAgICogRmVlIGlzIGZpeCBmb3IgQVZNIGF0b21pYyB0eC5cbiAgICpcbiAgICogQHJldHVybnMgbmV0d29yay50eEZlZVxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGZpeGVkRmVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb24uX25ldHdvcmsudHhGZWU7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiB0eXBlXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0XG4gICAqL1xuICBzZXRUcmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvblR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBpbnRlcm5hbCBjaGFpbiBpcyB0aGUgb25lIHNldCBmb3IgdGhlIGNvaW4gaW4gY29pbkNvbmZpZy5uZXR3b3JrLiBUaGUgZXh0ZXJuYWwgY2hhaW4gaXMgdGhlIG90aGVyIGNoYWluIGludm9sdmVkLlxuICAgKiBUaGUgZXh0ZXJuYWwgY2hhaW4gaWQgaXMgdGhlIHNvdXJjZSBvbiBpbXBvcnQgYW5kIHRoZSBkZXN0aW5hdGlvbiBvbiBleHBvcnQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFpbklkIC0gaWQgb2YgdGhlIGV4dGVybmFsIGNoYWluXG4gICAqL1xuICBleHRlcm5hbENoYWluSWQoY2hhaW5JZDogc3RyaW5nIHwgQnVmZmVyKTogdGhpcyB7XG4gICAgY29uc3QgbmV3VGFyZ2V0Q2hhaW5JZCA9IHR5cGVvZiBjaGFpbklkID09PSAnc3RyaW5nJyA/IHV0aWxzLmNiNThEZWNvZGUoY2hhaW5JZCkgOiBCdWZmZXIuZnJvbShjaGFpbklkKTtcbiAgICB0aGlzLnZhbGlkYXRlQ2hhaW5JZChuZXdUYXJnZXRDaGFpbklkKTtcbiAgICB0aGlzLl9leHRlcm5hbENoYWluSWQgPSBuZXdUYXJnZXRDaGFpbklkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gZmVlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgYmlnaW50fSBmZWVWYWx1ZSAtIHRoZSBmZWUgdmFsdWVcbiAgICovXG4gIGZlZShmZWVWYWx1ZTogc3RyaW5nIHwgYmlnaW50KTogdGhpcyB7XG4gICAgY29uc3QgZmVlID0gdHlwZW9mIGZlZVZhbHVlID09PSAnc3RyaW5nJyA/IGZlZVZhbHVlIDogZmVlVmFsdWUudG9TdHJpbmcoKTtcbiAgICAodGhpcy50cmFuc2FjdGlvbiBhcyBUcmFuc2FjdGlvbikuX2ZlZS5mZWUgPSBmZWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdfQ==
@@ -12,6 +12,7 @@ export declare class PermissionlessValidatorTxBuilder extends TransactionBuilder
12
12
  protected _endTime: bigint;
13
13
  protected _stakeAmount: bigint;
14
14
  protected _delegationFeeRate: number;
15
+ protected recoverSigner: boolean;
15
16
  constructor(coinConfig: Readonly<CoinConfig>);
16
17
  protected get transactionType(): TransactionType;
17
18
  validateLocktime(locktime: bigint): void;
@@ -1 +1 @@
1
- {"version":3,"file":"permissionlessValidatorTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/permissionlessValidatorTxBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAmE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACxH,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,gCAAiC,SAAQ,kBAAkB;IACtE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC;gBAEzB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK5C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAGD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMxC,yBAAyB,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI;IAQ1D,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAMzC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAYpC,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAM/D,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQzC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAMjD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAMxC,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAMxC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMtC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMtC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKvC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKrC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;cAOzB,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAW3D;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAIvC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO;IAI/C,kBAAkB;IAClB,SAAS,KAAK,WAAW,IAAI,WAAW,CAEvC;IAED,SAAS,KAAK,WAAW,CAAC,WAAW,EAAE,WAAW,EAEjD;CACF"}
1
+ {"version":3,"file":"permissionlessValidatorTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/permissionlessValidatorTxBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAmE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACxH,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,gCAAiC,SAAQ,kBAAkB;IACtE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACrC,SAAS,CAAC,aAAa,UAAS;gBAEpB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK5C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAGD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMxC,yBAAyB,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI;IAQ1D,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAMzC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAYpC,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAM/D,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQzC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAMjD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAMxC,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAMxC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMtC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMtC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKvC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKrC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;cAOzB,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAW3D;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAIvC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO;IAI/C,kBAAkB;IAClB,SAAS,KAAK,WAAW,IAAI,WAAW,CAEvC;IAED,SAAS,KAAK,WAAW,CAAC,WAAW,EAAE,WAAW,EAEjD;CACF"}
@@ -11,6 +11,7 @@ const utils_1 = __importDefault(require("./utils"));
11
11
  class PermissionlessValidatorTxBuilder extends transactionBuilder_1.TransactionBuilder {
12
12
  constructor(coinConfig) {
13
13
  super(coinConfig);
14
+ this.recoverSigner = false;
14
15
  this.transaction._fee.fee = this.transaction._network.txFee;
15
16
  }
16
17
  get transactionType() {
@@ -129,4 +130,4 @@ class PermissionlessValidatorTxBuilder extends transactionBuilder_1.TransactionB
129
130
  }
130
131
  }
131
132
  exports.PermissionlessValidatorTxBuilder = PermissionlessValidatorTxBuilder;
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbmxlc3NWYWxpZGF0b3JUeEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Blcm1pc3Npb25sZXNzVmFsaWRhdG9yVHhCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUF5RTtBQUN6RSxtREFBd0g7QUFJeEgsNkRBQTBEO0FBQzFELG9EQUE0QjtBQUU1QixNQUFhLGdDQUFpQyxTQUFRLHVDQUFrQjtJQVN0RSxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLDBCQUEwQixDQUFDO0lBQ3BELENBQUM7SUFFRCxxQkFBcUI7SUFDckIsZ0JBQWdCLENBQUMsUUFBZ0I7UUFDL0IsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLG1EQUFtRCxDQUFDLENBQUM7UUFDdkYsQ0FBQztJQUNILENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxpQkFBeUI7UUFDakQsSUFBSSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQzNFLE1BQU0sSUFBSSxnQ0FBcUIsQ0FDN0Isc0NBQXNDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQ25GLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFxQjtRQUNoQyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzVELElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztnQkFBRSxNQUFNLElBQUksZ0NBQXFCLENBQUMsa0JBQWtCLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDL0YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQWM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLGdDQUFxQixDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLGVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUMvRCxNQUFNLElBQUksZ0NBQXFCLENBQUMsbURBQW1ELENBQUMsQ0FBQztRQUN2RixDQUFDO0lBQ0gsQ0FBQztJQUVELHFCQUFxQixDQUFDLFNBQWlCLEVBQUUsT0FBZTtRQUN0RCxJQUFJLE9BQU8sR0FBRyxTQUFTLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksZ0NBQXFCLENBQUMseUNBQXlDLENBQUMsQ0FBQztRQUM3RSxDQUFDO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLE1BQWM7UUFDaEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVELElBQUksTUFBTSxHQUFHLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyw0QkFBNEIsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQzFHLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGVBQWUsQ0FBQyxPQUEwQjtRQUN4QyxNQUFNLGVBQWUsR0FBRyxPQUFPLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLGVBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1RSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBYztRQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQVksQ0FBQyxZQUFvQjtRQUMvQixJQUFBLDhCQUFtQixFQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQVksQ0FBQyxZQUFvQjtRQUMvQixJQUFBLDhCQUFtQixFQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFzQjtRQUM3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQXNCO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFzQjtRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBc0I7UUFDaEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRVMsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ3JCLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNuQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7O09BR0c7SUFDTyxxQkFBcUI7UUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQWlCO1FBQ25DLE9BQU8sSUFBSSxLQUFLLHFCQUFXLENBQUMsNEJBQTRCLENBQUM7SUFDM0QsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFjLFdBQVc7UUFDdkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFjLFdBQVcsQ0FBQyxXQUF3QjtRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUFySkQsNEVBcUpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXRpbHMgYXMgRmxhcmVVdGlscywgVHlwZVN5bWJvbHMgfSBmcm9tICdAZmxhcmVuZXR3b3JrL2ZsYXJlanMnO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBpc1ZhbGlkQkxTUHVibGljS2V5LCBpc1ZhbGlkQkxTU2lnbmF0dXJlLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBEZWNvZGVkVXR4b09iaiB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25sZXNzVmFsaWRhdG9yVHhCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9ub2RlSUQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9ibHNQdWJsaWNLZXk6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9ibHNTaWduYXR1cmU6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9zdGFydFRpbWU6IGJpZ2ludDtcbiAgcHJvdGVjdGVkIF9lbmRUaW1lOiBiaWdpbnQ7XG4gIHByb3RlY3RlZCBfc3Rha2VBbW91bnQ6IGJpZ2ludDtcbiAgcHJvdGVjdGVkIF9kZWxlZ2F0aW9uRmVlUmF0ZTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZyk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5fZmVlLmZlZSA9IHRoaXMudHJhbnNhY3Rpb24uX25ldHdvcmsudHhGZWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuQWRkUGVybWlzc2lvbmxlc3NWYWxpZGF0b3I7XG4gIH1cblxuICAvLyBWYWxpZGF0aW9uIG1ldGhvZHNcbiAgdmFsaWRhdGVMb2NrdGltZShsb2NrdGltZTogYmlnaW50KTogdm9pZCB7XG4gICAgaWYgKGxvY2t0aW1lIDwgQmlnSW50KDApKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBsb2NrdGltZSBtdXN0IGJlIDAgb3IgaGlnaGVyJyk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVEZWxlZ2F0aW9uRmVlUmF0ZShkZWxlZ2F0aW9uRmVlUmF0ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGRlbGVnYXRpb25GZWVSYXRlIDwgTnVtYmVyKHRoaXMudHJhbnNhY3Rpb24uX25ldHdvcmsubWluRGVsZWdhdGlvbkZlZSkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgIGBEZWxlZ2F0aW9uIGZlZSBjYW5ub3QgYmUgbGVzcyB0aGFuICR7dGhpcy50cmFuc2FjdGlvbi5fbmV0d29yay5taW5EZWxlZ2F0aW9uRmVlfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVVdHhvKHZhbHVlOiBEZWNvZGVkVXR4b09iaik6IHZvaWQge1xuICAgIFsnb3V0cHV0SUQnLCAnYW1vdW50JywgJ3R4aWQnLCAnb3V0cHV0aWR4J10uZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIGlmICghdmFsdWUuaGFzT3duUHJvcGVydHkoZmllbGQpKSB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBVdHhvcyByZXF1aXJlZCAke2ZpZWxkfWApO1xuICAgIH0pO1xuICB9XG5cbiAgdmFsaWRhdGVOb2RlSUQobm9kZUlEOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIW5vZGVJRCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyBub2RlSUQnKTtcbiAgICB9XG4gICAgaWYgKG5vZGVJRC5zbGljZSgwLCA2KSAhPT0gJ05vZGVJRCcpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IGludmFsaWQgTm9kZUlEIHRhZycpO1xuICAgIH1cbiAgICBpZiAoIShGbGFyZVV0aWxzLmJhc2U1OC5kZWNvZGUobm9kZUlELnNsaWNlKDcpKS5sZW5ndGggPT09IDI0KSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogTm9kZUlEIGlzIG5vdCBpbiBjYjU4IGZvcm1hdCcpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlU3Rha2VEdXJhdGlvbihzdGFydFRpbWU6IGJpZ2ludCwgZW5kVGltZTogYmlnaW50KTogdm9pZCB7XG4gICAgaWYgKGVuZFRpbWUgPCBzdGFydFRpbWUpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0VuZCBkYXRlIGNhbm5vdCBiZSBsZXNzIHRoYW4gc3RhcnQgZGF0ZScpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlU3Rha2VBbW91bnQoYW1vdW50OiBiaWdpbnQpOiB2b2lkIHtcbiAgICBjb25zdCBtaW5TdGFrZSA9IEJpZ0ludCh0aGlzLnRyYW5zYWN0aW9uLl9uZXR3b3JrLm1pblN0YWtlKTtcbiAgICBpZiAoYW1vdW50IDwgbWluU3Rha2UpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ01pbmltdW0gc3Rha2luZyBhbW91bnQgaXMgJyArIE51bWJlcihtaW5TdGFrZSkgLyAxMDAwMDAwMDAwICsgJyBGTFIuJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gQnVpbGRlciBtZXRob2RzXG4gIHJld2FyZEFkZHJlc3NlcyhhZGRyZXNzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHRoaXMge1xuICAgIGNvbnN0IHJld2FyZEFkZHJlc3NlcyA9IGFkZHJlc3MgaW5zdGFuY2VvZiBBcnJheSA/IGFkZHJlc3MgOiBbYWRkcmVzc107XG4gICAgdGhpcy50cmFuc2FjdGlvbi5fcmV3YXJkQWRkcmVzc2VzID0gcmV3YXJkQWRkcmVzc2VzLm1hcCh1dGlscy5wYXJzZUFkZHJlc3MpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbm9kZUlEKG5vZGVJRDogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZU5vZGVJRChub2RlSUQpO1xuICAgIHRoaXMuX25vZGVJRCA9IG5vZGVJRDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGJsc1B1YmxpY0tleShibHNQdWJsaWNLZXk6IHN0cmluZyk6IHRoaXMge1xuICAgIGlzVmFsaWRCTFNQdWJsaWNLZXkoYmxzUHVibGljS2V5KTtcbiAgICB0aGlzLl9ibHNQdWJsaWNLZXkgPSBibHNQdWJsaWNLZXk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBibHNTaWduYXR1cmUoYmxzU2lnbmF0dXJlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpc1ZhbGlkQkxTU2lnbmF0dXJlKGJsc1NpZ25hdHVyZSk7XG4gICAgdGhpcy5fYmxzU2lnbmF0dXJlID0gYmxzU2lnbmF0dXJlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbG9ja3RpbWUodmFsdWU6IHN0cmluZyB8IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVMb2NrdGltZShCaWdJbnQodmFsdWUpKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5fbG9ja3RpbWUgPSBCaWdJbnQodmFsdWUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZGVsZWdhdGlvbkZlZVJhdGUodmFsdWU6IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVEZWxlZ2F0aW9uRmVlUmF0ZSh2YWx1ZSk7XG4gICAgdGhpcy5fZGVsZWdhdGlvbkZlZVJhdGUgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN0YXJ0VGltZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogdGhpcyB7XG4gICAgdGhpcy5fc3RhcnRUaW1lID0gQmlnSW50KHZhbHVlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGVuZFRpbWUodmFsdWU6IHN0cmluZyB8IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMuX2VuZFRpbWUgPSBCaWdJbnQodmFsdWUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc3Rha2VBbW91bnQodmFsdWU6IGJpZ2ludCB8IHN0cmluZyk6IHRoaXMge1xuICAgIGNvbnN0IHZhbHVlQmlnSW50ID0gdHlwZW9mIHZhbHVlID09PSAnYmlnaW50JyA/IHZhbHVlIDogQmlnSW50KHZhbHVlKTtcbiAgICB0aGlzLnZhbGlkYXRlU3Rha2VBbW91bnQodmFsdWVCaWdJbnQpO1xuICAgIHRoaXMuX3N0YWtlQW1vdW50ID0gdmFsdWVCaWdJbnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy5idWlsZEZsYXJlVHJhbnNhY3Rpb24oKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFRyYW5zYWN0aW9uVHlwZSh0aGlzLnRyYW5zYWN0aW9uVHlwZSk7XG4gICAgaWYgKHRoaXMuaGFzU2lnbmVyKCkpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5UGFpciBvZiB0aGlzLl9zaWduZXIpIHtcbiAgICAgICAgYXdhaXQgdGhpcy50cmFuc2FjdGlvbi5zaWduKGtleVBhaXIpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCB0aGUgcGVybWlzc2lvbmxlc3MgdmFsaWRhdG9yIHRyYW5zYWN0aW9uXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBidWlsZEZsYXJlVHJhbnNhY3Rpb24oKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgc3RhdGljIHZlcmlmeVR4VHlwZSh0eXBlOiBUeXBlU3ltYm9scyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlID09PSBUeXBlU3ltYm9scy5BZGRQZXJtaXNzaW9ubGVzc1ZhbGlkYXRvclR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXQgdHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcbiAgfVxufVxuIl19
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbmxlc3NWYWxpZGF0b3JUeEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Blcm1pc3Npb25sZXNzVmFsaWRhdG9yVHhCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUF5RTtBQUN6RSxtREFBd0g7QUFJeEgsNkRBQTBEO0FBQzFELG9EQUE0QjtBQUU1QixNQUFhLGdDQUFpQyxTQUFRLHVDQUFrQjtJQVV0RSxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUhWLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBSTlCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsMEJBQTBCLENBQUM7SUFDcEQsQ0FBQztJQUVELHFCQUFxQjtJQUNyQixnQkFBZ0IsQ0FBQyxRQUFnQjtRQUMvQixJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksZ0NBQXFCLENBQUMsbURBQW1ELENBQUMsQ0FBQztRQUN2RixDQUFDO0lBQ0gsQ0FBQztJQUVELHlCQUF5QixDQUFDLGlCQUF5QjtRQUNqRCxJQUFJLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDM0UsTUFBTSxJQUFJLGdDQUFxQixDQUM3QixzQ0FBc0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FDbkYsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQXFCO1FBQ2hDLENBQUMsVUFBVSxFQUFFLFFBQVEs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QUFxQjtRQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBaUI7UUFDbkMsT0FBTyxJQUFJLEtBQUsscUJBQVcsQ0FBQyw0QkFBNEIsQ0FBQztJQUMzRCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQWMsV0FBVztRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQWMsV0FBVyxDQUFDLFdBQXdCO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7Q0FDRjtBQXRKRCw0RUFzSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1dGlscyBhcyBGbGFyZVV0aWxzLCBUeXBlU3ltYm9scyB9IGZyb20gJ0BmbGFyZW5ldHdvcmsvZmxhcmVqcyc7XG5pbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIGlzVmFsaWRCTFNQdWJsaWNLZXksIGlzVmFsaWRCTFNTaWduYXR1cmUsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IERlY29kZWRVdHhvT2JqIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbmxlc3NWYWxpZGF0b3JUeEJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX25vZGVJRDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2Jsc1B1YmxpY0tleTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2Jsc1NpZ25hdHVyZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3N0YXJ0VGltZTogYmlnaW50O1xuICBwcm90ZWN0ZWQgX2VuZFRpbWU6IGJpZ2ludDtcbiAgcHJvdGVjdGVkIF9zdGFrZUFtb3VudDogYmlnaW50O1xuICBwcm90ZWN0ZWQgX2RlbGVnYXRpb25GZWVSYXRlOiBudW1iZXI7XG4gIHByb3RlY3RlZCByZWNvdmVyU2lnbmVyID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl9mZWUuZmVlID0gdGhpcy50cmFuc2FjdGlvbi5fbmV0d29yay50eEZlZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5BZGRQZXJtaXNzaW9ubGVzc1ZhbGlkYXRvcjtcbiAgfVxuXG4gIC8vIFZhbGlkYXRpb24gbWV0aG9kc1xuICB2YWxpZGF0ZUxvY2t0aW1lKGxvY2t0aW1lOiBiaWdpbnQpOiB2b2lkIHtcbiAgICBpZiAobG9ja3RpbWUgPCBCaWdJbnQoMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IGxvY2t0aW1lIG11c3QgYmUgMCBvciBoaWdoZXInKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZURlbGVnYXRpb25GZWVSYXRlKGRlbGVnYXRpb25GZWVSYXRlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoZGVsZWdhdGlvbkZlZVJhdGUgPCBOdW1iZXIodGhpcy50cmFuc2FjdGlvbi5fbmV0d29yay5taW5EZWxlZ2F0aW9uRmVlKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYERlbGVnYXRpb24gZmVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gJHt0aGlzLnRyYW5zYWN0aW9uLl9uZXR3b3JrLm1pbkRlbGVnYXRpb25GZWV9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZVV0eG8odmFsdWU6IERlY29kZWRVdHhvT2JqKTogdm9pZCB7XG4gICAgWydvdXRwdXRJRCcsICdhbW91bnQnLCAndHhpZCcsICdvdXRwdXRpZHgnXS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgaWYgKCF2YWx1ZS5oYXNPd25Qcm9wZXJ0eShmaWVsZCkpIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYFV0eG9zIHJlcXVpcmVkICR7ZmllbGR9YCk7XG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZU5vZGVJRChub2RlSUQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghbm9kZUlEKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIG5vZGVJRCcpO1xuICAgIH1cbiAgICBpZiAobm9kZUlELnNsaWNlKDAsIDYpICE9PSAnTm9kZUlEJykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogaW52YWxpZCBOb2RlSUQgdGFnJyk7XG4gICAgfVxuICAgIGlmICghKEZsYXJlVXRpbHMuYmFzZTU4LmRlY29kZShub2RlSUQuc2xpY2UoNykpLmxlbmd0aCA9PT0gMjQpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBOb2RlSUQgaXMgbm90IGluIGNiNTggZm9ybWF0Jyk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVTdGFrZUR1cmF0aW9uKHN0YXJ0VGltZTogYmlnaW50LCBlbmRUaW1lOiBiaWdpbnQpOiB2b2lkIHtcbiAgICBpZiAoZW5kVGltZSA8IHN0YXJ0VGltZSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignRW5kIGRhdGUgY2Fubm90IGJlIGxlc3MgdGhhbiBzdGFydCBkYXRlJyk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVTdGFrZUFtb3VudChhbW91bnQ6IGJpZ2ludCk6IHZvaWQge1xuICAgIGNvbnN0IG1pblN0YWtlID0gQmlnSW50KHRoaXMudHJhbnNhY3Rpb24uX25ldHdvcmsubWluU3Rha2UpO1xuICAgIGlmIChhbW91bnQgPCBtaW5TdGFrZSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWluaW11bSBzdGFraW5nIGFtb3VudCBpcyAnICsgTnVtYmVyKG1pblN0YWtlKSAvIDEwMDAwMDAwMDAgKyAnIEZMUi4nKTtcbiAgICB9XG4gIH1cblxuICAvLyBCdWlsZGVyIG1ldGhvZHNcbiAgcmV3YXJkQWRkcmVzc2VzKGFkZHJlc3M6IHN0cmluZyB8IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgY29uc3QgcmV3YXJkQWRkcmVzc2VzID0gYWRkcmVzcyBpbnN0YW5jZW9mIEFycmF5ID8gYWRkcmVzcyA6IFthZGRyZXNzXTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl9yZXdhcmRBZGRyZXNzZXMgPSByZXdhcmRBZGRyZXNzZXMubWFwKHV0aWxzLnBhcnNlQWRkcmVzcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBub2RlSUQobm9kZUlEOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlTm9kZUlEKG5vZGVJRCk7XG4gICAgdGhpcy5fbm9kZUlEID0gbm9kZUlEO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYmxzUHVibGljS2V5KGJsc1B1YmxpY0tleTogc3RyaW5nKTogdGhpcyB7XG4gICAgaXNWYWxpZEJMU1B1YmxpY0tleShibHNQdWJsaWNLZXkpO1xuICAgIHRoaXMuX2Jsc1B1YmxpY0tleSA9IGJsc1B1YmxpY0tleTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGJsc1NpZ25hdHVyZShibHNTaWduYXR1cmU6IHN0cmluZyk6IHRoaXMge1xuICAgIGlzVmFsaWRCTFNTaWduYXR1cmUoYmxzU2lnbmF0dXJlKTtcbiAgICB0aGlzLl9ibHNTaWduYXR1cmUgPSBibHNTaWduYXR1cmU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBsb2NrdGltZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUxvY2t0aW1lKEJpZ0ludCh2YWx1ZSkpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLl9sb2NrdGltZSA9IEJpZ0ludCh2YWx1ZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkZWxlZ2F0aW9uRmVlUmF0ZSh2YWx1ZTogbnVtYmVyKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZURlbGVnYXRpb25GZWVSYXRlKHZhbHVlKTtcbiAgICB0aGlzLl9kZWxlZ2F0aW9uRmVlUmF0ZSA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc3RhcnRUaW1lKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiB0aGlzIHtcbiAgICB0aGlzLl9zdGFydFRpbWUgPSBCaWdJbnQodmFsdWUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZW5kVGltZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogdGhpcyB7XG4gICAgdGhpcy5fZW5kVGltZSA9IEJpZ0ludCh2YWx1ZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzdGFrZUFtb3VudCh2YWx1ZTogYmlnaW50IHwgc3RyaW5nKTogdGhpcyB7XG4gICAgY29uc3QgdmFsdWVCaWdJbnQgPSB0eXBlb2YgdmFsdWUgPT09ICdiaWdpbnQnID8gdmFsdWUgOiBCaWdJbnQodmFsdWUpO1xuICAgIHRoaXMudmFsaWRhdGVTdGFrZUFtb3VudCh2YWx1ZUJpZ0ludCk7XG4gICAgdGhpcy5fc3Rha2VBbW91bnQgPSB2YWx1ZUJpZ0ludDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLmJ1aWxkRmxhcmVUcmFuc2FjdGlvbigpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb25UeXBlKHRoaXMudHJhbnNhY3Rpb25UeXBlKTtcbiAgICBpZiAodGhpcy5oYXNTaWduZXIoKSkge1xuICAgICAgZm9yIChjb25zdCBrZXlQYWlyIG9mIHRoaXMuX3NpZ25lcikge1xuICAgICAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uLnNpZ24oa2V5UGFpcik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHRoZSBwZXJtaXNzaW9ubGVzcyB2YWxpZGF0b3IgdHJhbnNhY3Rpb25cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkRmxhcmVUcmFuc2FjdGlvbigpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBzdGF0aWMgdmVyaWZ5VHhUeXBlKHR5cGU6IFR5cGVTeW1ib2xzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGUgPT09IFR5cGVTeW1ib2xzLkFkZFBlcm1pc3Npb25sZXNzVmFsaWRhdG9yVHg7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldCB0cmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xuICB9XG59XG4iXX0=
@@ -6,7 +6,15 @@ import { ImportInPTxBuilder } from './ImportInPTxBuilder';
6
6
  import { ExportInCTxBuilder } from './ExportInCTxBuilder';
7
7
  import { ImportInCTxBuilder } from './ImportInCTxBuilder';
8
8
  export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
9
+ protected recoverSigner: boolean;
9
10
  constructor(_coinConfig: Readonly<CoinConfig>);
11
+ /**
12
+ * Enables recovery mode for transaction building.
13
+ * When enabled, uses backup key (index 2) instead of user key (index 0) for signing.
14
+ * @param recoverSigner - Whether to use recovery signing (default: true)
15
+ * @returns this factory for chaining
16
+ */
17
+ recoverMode(recoverSigner?: boolean): this;
10
18
  /**
11
19
  * Extract credentials from remaining bytes after transaction using FlareJS codec.
12
20
  * This is the proper way to parse credentials - using the codec's UnpackPrefix method.
@@ -22,6 +30,12 @@ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFac
22
30
  * @returns Parsed transaction and credentials, or null if parsing fails
23
31
  */
24
32
  private parseWithVM;
33
+ /**
34
+ * Apply recovery mode setting to a builder if enabled on the factory.
35
+ * @param builder The transaction builder to configure
36
+ * @returns The configured builder
37
+ */
38
+ private applyRecoverMode;
25
39
  /**
26
40
  * Create the appropriate transaction builder based on transaction type.
27
41
  * @param tx The parsed transaction
@@ -1 +1 @@
1
- {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAgB,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAQ1D,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;IAwBnC;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAkBnB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAgCrB,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IAkBrC,kBAAkB;IAClB,kBAAkB,IAAI,kBAAkB;IAIxC;;OAEG;IACH,mBAAmB,IAAI,kBAAkB;IAIzC;;OAEG;IACH,mBAAmB,IAAI,kBAAkB;IAIzC;;OAEG;IACH,mBAAmB,IAAI,kBAAkB;IAIzC;;OAEG;IACH,mBAAmB,IAAI,kBAAkB;IAIzC,kBAAkB;IAClB,8BAA8B,IAAI,kBAAkB;CAGrD"}
1
+ {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAgB,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAQ1D,qBAAa,yBAA0B,SAAQ,6BAA6B;IAC1E,SAAS,CAAC,aAAa,UAAS;gBAEpB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;OAKG;IACH,WAAW,CAAC,aAAa,UAAO,GAAG,IAAI;IAKvC;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;IAwBnC;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAkBnB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAgCrB,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IAkBrC,kBAAkB;IAClB,kBAAkB,IAAI,kBAAkB;IAIxC;;OAEG;IACH,mBAAmB,IAAI,kBAAkB;IAIzC;;OAEG;IACH,mBAAmB,IAAI,kBAAkB;IAIzC;;OAEG;IACH,mBAAmB,IAAI,kBAAkB;IAIzC;;OAEG;IACH,mBAAmB,IAAI,kBAAkB;IAIzC,kBAAkB;IAClB,8BAA8B,IAAI,kBAAkB;CAGrD"}
@@ -14,6 +14,17 @@ const utils_1 = __importDefault(require("./utils"));
14
14
  class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
15
15
  constructor(_coinConfig) {
16
16
  super(_coinConfig);
17
+ this.recoverSigner = false;
18
+ }
19
+ /**
20
+ * Enables recovery mode for transaction building.
21
+ * When enabled, uses backup key (index 2) instead of user key (index 0) for signing.
22
+ * @param recoverSigner - Whether to use recovery signing (default: true)
23
+ * @returns this factory for chaining
24
+ */
25
+ recoverMode(recoverSigner = true) {
26
+ this.recoverSigner = recoverSigner;
27
+ return this;
17
28
  }
18
29
  /**
19
30
  * Extract credentials from remaining bytes after transaction using FlareJS codec.
@@ -61,6 +72,17 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
61
72
  return null;
62
73
  }
63
74
  }
75
+ /**
76
+ * Apply recovery mode setting to a builder if enabled on the factory.
77
+ * @param builder The transaction builder to configure
78
+ * @returns The configured builder
79
+ */
80
+ applyRecoverMode(builder) {
81
+ if (this.recoverSigner) {
82
+ builder.recoverMode(true);
83
+ }
84
+ return builder;
85
+ }
64
86
  /**
65
87
  * Create the appropriate transaction builder based on transaction type.
66
88
  * @param tx The parsed transaction
@@ -74,24 +96,24 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
74
96
  if (ExportInCTxBuilder_1.ExportInCTxBuilder.verifyTxType(tx._type)) {
75
97
  const builder = this.getExportInCBuilder();
76
98
  builder.initBuilder(tx, rawBuffer, credentials);
77
- return builder;
99
+ return this.applyRecoverMode(builder);
78
100
  }
79
101
  if (ImportInCTxBuilder_1.ImportInCTxBuilder.verifyTxType(tx._type)) {
80
102
  const builder = this.getImportInCBuilder();
81
103
  builder.initBuilder(tx, rawBuffer, credentials);
82
- return builder;
104
+ return this.applyRecoverMode(builder);
83
105
  }
84
106
  }
85
107
  else {
86
108
  if (ImportInPTxBuilder_1.ImportInPTxBuilder.verifyTxType(tx._type)) {
87
109
  const builder = this.getImportInPBuilder();
88
110
  builder.initBuilder(tx, rawBuffer, credentials);
89
- return builder;
111
+ return this.applyRecoverMode(builder);
90
112
  }
91
113
  if (ExportInPTxBuilder_1.ExportInPTxBuilder.verifyTxType(tx._type)) {
92
114
  const builder = this.getExportInPBuilder();
93
115
  builder.initBuilder(tx, rawBuffer, credentials);
94
- return builder;
116
+ return this.applyRecoverMode(builder);
95
117
  }
96
118
  }
97
119
  throw new sdk_core_1.NotSupported('Transaction type not supported');
@@ -145,4 +167,4 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
145
167
  }
146
168
  }
147
169
  exports.TransactionBuilderFactory = TransactionBuilderFactory;
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBOEY7QUFDOUYsbURBQW1GO0FBR25GLDZEQUEwRDtBQUMxRCw2REFBMEQ7QUFDMUQsNkRBQTBEO0FBQzFELDZEQUEwRDtBQUUxRCxvREFBNEI7QUFNNUIsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFDMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLDJCQUEyQixDQUFDLGVBQTJCLEVBQUUsS0FBWTtRQUMzRSxNQUFNLFdBQVcsR0FBaUIsRUFBRSxDQUFDO1FBQ3JDLElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMvQixPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDO1FBRUQsc0RBQXNEO1FBQ3RELGdFQUFnRTtRQUNoRSxJQUFJLGNBQWMsR0FBZSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksZUFBZSxHQUFHLElBQUksQ0FBQztRQUUzQixHQUFHLENBQUM7WUFDRixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFhLGNBQWMsQ0FBQyxDQUFDO2dCQUMxRSxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM3QixjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsZUFBZSxHQUFHLEtBQUssQ0FBQztZQUMxQixDQUFDO1FBQ0gsQ0FBQyxRQUFRLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLGVBQWUsRUFBRTtR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SkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1dGlscyBhcyBGbGFyZVV0aWxzLCBldm1TZXJpYWwsIHB2bVNlcmlhbCwgQ3JlZGVudGlhbCB9IGZyb20gJ0BmbGFyZW5ldHdvcmsvZmxhcmVqcyc7XG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSwgTm90U3VwcG9ydGVkIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgRXhwb3J0SW5QVHhCdWlsZGVyIH0gZnJvbSAnLi9FeHBvcnRJblBUeEJ1aWxkZXInO1xuaW1wb3J0IHsgSW1wb3J0SW5QVHhCdWlsZGVyIH0gZnJvbSAnLi9JbXBvcnRJblBUeEJ1aWxkZXInO1xuaW1wb3J0IHsgRXhwb3J0SW5DVHhCdWlsZGVyIH0gZnJvbSAnLi9FeHBvcnRJbkNUeEJ1aWxkZXInO1xuaW1wb3J0IHsgSW1wb3J0SW5DVHhCdWlsZGVyIH0gZnJvbSAnLi9JbXBvcnRJbkNUeEJ1aWxkZXInO1xuaW1wb3J0IHsgU2VyaWFsaXplZFR4IH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmludGVyZmFjZSBDb2RlYyB7XG4gIFVucGFja1ByZWZpeDxUPihieXRlczogVWludDhBcnJheSk6IFtULCBVaW50OEFycmF5XTtcbn1cblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRyYWN0IGNyZWRlbnRpYWxzIGZyb20gcmVtYWluaW5nIGJ5dGVzIGFmdGVyIHRyYW5zYWN0aW9uIHVzaW5nIEZsYXJlSlMgY29kZWMuXG4gICAqIFRoaXMgaXMgdGhlIHByb3BlciB3YXkgdG8gcGFyc2UgY3JlZGVudGlhbHMgLSB1c2luZyB0aGUgY29kZWMncyBVbnBhY2tQcmVmaXggbWV0aG9kLlxuICAgKiBAcGFyYW0gY3JlZGVudGlhbEJ5dGVzIFJlbWFpbmluZyBieXRlcyBhZnRlciB0aGUgdHJhbnNhY3Rpb24gKHN0YXJ0cyB3aXRoIG51bUNyZWRlbnRpYWxzKVxuICAgKiBAcGFyYW0gY29kZWMgVGhlIEZsYXJlSlMgY29kZWMgdG8gdXNlIGZvciB1bnBhY2tpbmdcbiAgICogQHJldHVybnMgQXJyYXkgb2YgcGFyc2VkIGNyZWRlbnRpYWxzXG4gICAqL1xuICBwcml2YXRlIGV4dHJhY3RDcmVkZW50aWFsc1dpdGhDb2RlYyhjcmVkZW50aWFsQnl0ZXM6IFVpbnQ4QXJyYXksIGNvZGVjOiBDb2RlYyk6IENyZWRlbnRpYWxbXSB7XG4gICAgY29uc3QgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxbXSA9IFtdO1xuICAgIGlmIChjcmVkZW50aWFsQnl0ZXMubGVuZ3RoIDwgNCkge1xuICAgICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xuICAgIH1cblxuICAgIC8vIFNraXAgdGhlIGZpcnN0IDQgYnl0ZXMgKG51bUNyZWRlbnRpYWxzIGFzIEludCB0eXBlKVxuICAgIC8vIFRoZSBjb2RlYyBkb2Vzbid0IGtub3cgYWJvdXQgdGhpcyBJbnQsIHNvIHdlIHNraXAgaXQgbWFudWFsbHlcbiAgICBsZXQgcmVtYWluaW5nQnl0ZXM6IFVpbnQ4QXJyYXkgPSBjcmVkZW50aWFsQnl0ZXMuc2xpY2UoNCk7XG4gICAgbGV0IG1vcmVDcmVkZW50aWFscyA9IHRydWU7XG5cbiAgICBkbyB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBbY3JlZGVudGlhbCwgcmVzdF0gPSBjb2RlYy5VbnBhY2tQcmVmaXg8Q3JlZGVudGlhbD4ocmVtYWluaW5nQnl0ZXMpO1xuICAgICAgICBjcmVkZW50aWFscy5wdXNoKGNyZWRlbnRpYWwpO1xuICAgICAgICByZW1haW5pbmdCeXRlcyA9IHJlc3Q7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgbW9yZUNyZWRlbnRpYWxzID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSB3aGlsZSAocmVtYWluaW5nQnl0ZXMubGVuZ3RoID4gMCAmJiBtb3JlQ3JlZGVudGlhbHMpO1xuXG4gICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIGEgcmF3IHRyYW5zYWN0aW9uIGJ1ZmZlciB1c2luZyB0aGUgc3BlY2lmaWVkIFZNIG1hbmFnZXIuXG4gICAqIEBwYXJhbSByYXdCdWZmZXIgVGhlIHJhdyB0cmFuc2FjdGlvbiBidWZmZXJcbiAgICogQHBhcmFtIHZtVHlwZSBUaGUgVk0gdHlwZSB0byB1c2UgZm9yIHBhcnNpbmcgKCdFVk0nIG9yICdQVk0nKVxuICAgKiBAcmV0dXJucyBQYXJzZWQgdHJhbnNhY3Rpb24gYW5kIGNyZWRlbnRpYWxzLCBvciBudWxsIGlmIHBhcnNpbmcgZmFpbHNcbiAgICovXG4gIHByaXZhdGUgcGFyc2VXaXRoVk0oXG4gICAgcmF3QnVmZmVyOiBCdWZmZXIsXG4gICAgdm1UeXBlOiAnRVZNJyB8ICdQVk0nXG4gICk6IHsgdHg6IFNlcmlhbGl6ZWRUeDsgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxbXSB9IHwgbnVsbCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1hbmFnZXIgPSBGbGFyZVV0aWxzLmdldE1hbmFnZXJGb3JWTSh2bVR5cGUpO1xuICAgICAgY29uc3QgW2NvZGVjLCB0eEJ5dGVzXSA9IG1hbmFnZXIuZ2V0Q29kZWNGcm9tQnVmZmVyKHJhd0J1ZmZlcik7XG4gICAgICBjb25zdCBbdHgsIGNyZWRlbnRpYWxCeXRlc10gPSAoY29kZWMgYXMgQ29kZWMpLlVucGFja1ByZWZpeDxTZXJpYWxpemVkVHg+KHR4Qnl0ZXMpO1xuXG4gICAgICBjb25zdCBjcmVkZW50aWFscyA9XG4gICAgICAgIGNyZWRlbnRpYWxCeXRlcy5sZW5ndGggPiA0ID8gdGhpcy5leHRyYWN0Q3JlZGVudGlhbHNXaXRoQ29kZWMoY3JlZGVudGlhbEJ5dGVzLCBjb2RlYyBhcyBDb2RlYykgOiBbXTtcblxuICAgICAgcmV0dXJuIHsgdHgsIGNyZWRlbnRpYWxzIH07XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBhcHByb3ByaWF0ZSB0cmFuc2FjdGlvbiBidWlsZGVyIGJhc2VkIG9uIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqIEBwYXJhbSB0eCBUaGUgcGFyc2VkIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSByYXdCdWZmZXIgVGhlIHJhdyB0cmFuc2FjdGlvbiBidWZmZXJcbiAgICogQHBhcmFtIGNyZWRlbnRpYWxzIFRoZSBleHRyYWN0ZWQgY3JlZGVudGlhbHNcbiAgICogQHBhcmFtIGlzRVZNIFdoZXRoZXIgdGhpcyBpcyBhbiBFVk0gdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMgVGhlIGFwcHJvcHJpYXRlIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlQnVpbGRlcihcbiAgICB0eDogU2VyaWFsaXplZFR4LFxuICAgIHJhd0J1ZmZlcjogQnVmZmVyLFxuICAgIGNyZWRlbnRpYWxzOiBDcmVkZW50aWFsW10sXG4gICAgaXNFVk06IGJvb2xlYW5cbiAgKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICBpZiAoaXNFVk0pIHtcbiAgICAgIGlmIChFeHBvcnRJbkNUeEJ1aWxkZXIudmVyaWZ5VHhUeXBlKHR4Ll90eXBlKSkge1xuICAgICAgICBjb25zdCBidWlsZGVyID0gdGhpcy5nZXRFeHBvcnRJbkNCdWlsZGVyKCk7XG4gICAgICAgIGJ1aWxkZXIuaW5pdEJ1aWxkZXIodHggYXMgZXZtU2VyaWFsLkV4cG9ydFR4LCByYXdCdWZmZXIsIGNyZWRlbnRpYWxzKTtcbiAgICAgICAgcmV0dXJuIGJ1aWxkZXI7XG4gICAgICB9XG4gICAgICBpZiAoSW1wb3J0SW5DVHhCdWlsZGVyLnZlcmlmeVR4VHlwZSh0eC5fdHlwZSkpIHtcbiAgICAgICAgY29uc3QgYnVpbGRlciA9IHRoaXMuZ2V0SW1wb3J0SW5DQnVpbGRlcigpO1xuICAgICAgICBidWlsZGVyLmluaXRCdWlsZGVyKHR4IGFzIGV2bVNlcmlhbC5JbXBvcnRUeCwgcmF3QnVmZmVyLCBjcmVkZW50aWFscyk7XG4gICAgICAgIHJldHVybiBidWlsZGVyO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoSW1wb3J0SW5QVHhCdWlsZGVyLnZlcmlmeVR4VHlwZSh0eC5fdHlwZSkpIHtcbiAgICAgICAgY29uc3QgYnVpbGRlciA9IHRoaXMuZ2V0SW1wb3J0SW5QQnVpbGRlcigpO1xuICAgICAgICBidWlsZGVyLmluaXRCdWlsZGVyKHR4IGFzIHB2bVNlcmlhbC5JbXBvcnRUeCwgcmF3QnVmZmVyLCBjcmVkZW50aWFscyk7XG4gICAgICAgIHJldHVybiBidWlsZGVyO1xuICAgICAgfVxuICAgICAgaWYgKEV4cG9ydEluUFR4QnVpbGRlci52ZXJpZnlUeFR5cGUodHguX3R5cGUpKSB7XG4gICAgICAgIGNvbnN0IGJ1aWxkZXIgPSB0aGlzLmdldEV4cG9ydEluUEJ1aWxkZXIoKTtcbiAgICAgICAgYnVpbGRlci5pbml0QnVpbGRlcih0eCBhcyBwdm1TZXJpYWwuRXhwb3J0VHgsIHJhd0J1ZmZlciwgY3JlZGVudGlhbHMpO1xuICAgICAgICByZXR1cm4gYnVpbGRlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZCgnVHJhbnNhY3Rpb24gdHlwZSBub3Qgc3VwcG9ydGVkJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZnJvbShyYXc6IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdXRpbHMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXcpO1xuICAgIGNvbnN0IHJhd0J1ZmZlciA9IEJ1ZmZlci5mcm9tKHV0aWxzLnJlbW92ZUhleFByZWZpeChyYXcpLCAnaGV4Jyk7XG5cbiAgICAvLyBUcnkgRVZNIGZpcnN0LCB0aGVuIGZhbGwgYmFjayB0byBQVk1cbiAgICBjb25zdCBldm1SZXN1bHQgPSB0aGlzLnBhcnNlV2l0aFZNKHJhd0J1ZmZlciwgJ0VWTScpO1xuICAgIGlmIChldm1SZXN1bHQpIHtcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUJ1aWxkZXIoZXZtUmVzdWx0LnR4LCByYXdCdWZmZXIsIGV2bVJlc3VsdC5jcmVkZW50aWFscywgdHJ1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgcHZtUmVzdWx0ID0gdGhpcy5wYXJzZVdpdGhWTShyYXdCdWZmZXIsICdQVk0nKTtcbiAgICBpZiAocHZtUmVzdWx0KSB7XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVCdWlsZGVyKHB2bVJlc3VsdC50eCwgcmF3QnVmZmVyLCBwdm1SZXN1bHQuY3JlZGVudGlhbHMsIGZhbHNlKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdUcmFuc2FjdGlvbiB0eXBlIG5vdCBzdXBwb3J0ZWQnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRUcmFuc2ZlckJ1aWxkZXIoKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdUcmFuc2ZlciBpcyBub3Qgc3VwcG9ydGVkIGluIFAgQ2hhaW4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBvcnQgQ3Jvc3MgY2hhaW4gdHJhbnNmZXJcbiAgICovXG4gIGdldEV4cG9ydEluUEJ1aWxkZXIoKTogRXhwb3J0SW5QVHhCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IEV4cG9ydEluUFR4QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgQ3Jvc3MgY2hhaW4gdHJhbnNmZXJcbiAgICovXG4gIGdldEltcG9ydEluUEJ1aWxkZXIoKTogSW1wb3J0SW5QVHhCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IEltcG9ydEluUFR4QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgaW4gQyBjaGFpbiBDcm9zcyBjaGFpbiB0cmFuc2ZlclxuICAgKi9cbiAgZ2V0SW1wb3J0SW5DQnVpbGRlcigpOiBJbXBvcnRJbkNUeEJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgSW1wb3J0SW5DVHhCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9ydCBpbiBDIGNoYWluIENyb3NzIGNoYWluIHRyYW5zZmVyXG4gICAqL1xuICBnZXRFeHBvcnRJbkNCdWlsZGVyKCk6IEV4cG9ydEluQ1R4QnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBFeHBvcnRJbkNUeEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZCgnV2FsbGV0IGluaXRpYWxpemF0aW9uIGlzIG5vdCBuZWVkZWQnKTtcbiAgfVxufVxuIl19
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBOEY7QUFDOUYsbURBQW1GO0FBR25GLDZEQUEwRDtBQUMxRCw2REFBMEQ7QUFDMUQsNkRBQTBEO0FBQzFELDZEQUEwRDtBQUUxRCxvREFBNEI7QUFNNUIsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFHMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIWCxrQkFBYSxHQUFHLEtBQUssQ0FBQztJQUloQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsYUFBYSxHQUFHLElBQUk7UUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssMkJBQTJCLENBQUMsZUFBMkIsRUFBRSxLQUFZO1FBQzNFLE1BQU0sV0FBVyxHQUFpQixFQUFFLENBQUM7UUFDckMsSUFBSSxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxzREFBc0Q7UUFDdEQsZ0VBQWdFO1FBQ2hFLElBQUksY0FBYyxHQUFlLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBRTNCLEdBQUcsQ0FBQztZQUNGLElBQUksQ0FBQztnQkFDSCxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQWEsY0FBYyxDQUFDLENBQUM7Z0JBQzFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzdCLGNB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a0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSx1Q0FBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSx1Q0FBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSx1Q0FBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiw4QkFBOEI7UUFDNUIsTUFBTSxJQUFJLHVCQUFZLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0Y7QUFyTEQsOERBcUxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXRpbHMgYXMgRmxhcmVVdGlscywgZXZtU2VyaWFsLCBwdm1TZXJpYWwsIENyZWRlbnRpYWwgfSBmcm9tICdAZmxhcmVuZXR3b3JrL2ZsYXJlanMnO1xuaW1wb3J0IHsgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnksIE5vdFN1cHBvcnRlZCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEV4cG9ydEluUFR4QnVpbGRlciB9IGZyb20gJy4vRXhwb3J0SW5QVHhCdWlsZGVyJztcbmltcG9ydCB7IEltcG9ydEluUFR4QnVpbGRlciB9IGZyb20gJy4vSW1wb3J0SW5QVHhCdWlsZGVyJztcbmltcG9ydCB7IEV4cG9ydEluQ1R4QnVpbGRlciB9IGZyb20gJy4vRXhwb3J0SW5DVHhCdWlsZGVyJztcbmltcG9ydCB7IEltcG9ydEluQ1R4QnVpbGRlciB9IGZyb20gJy4vSW1wb3J0SW5DVHhCdWlsZGVyJztcbmltcG9ydCB7IFNlcmlhbGl6ZWRUeCB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5pbnRlcmZhY2UgQ29kZWMge1xuICBVbnBhY2tQcmVmaXg8VD4oYnl0ZXM6IFVpbnQ4QXJyYXkpOiBbVCwgVWludDhBcnJheV07XG59XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBwcm90ZWN0ZWQgcmVjb3ZlclNpZ25lciA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGVzIHJlY292ZXJ5IG1vZGUgZm9yIHRyYW5zYWN0aW9uIGJ1aWxkaW5nLlxuICAgKiBXaGVuIGVuYWJsZWQsIHVzZXMgYmFja3VwIGtleSAoaW5kZXggMikgaW5zdGVhZCBvZiB1c2VyIGtleSAoaW5kZXggMCkgZm9yIHNpZ25pbmcuXG4gICAqIEBwYXJhbSByZWNvdmVyU2lnbmVyIC0gV2hldGhlciB0byB1c2UgcmVjb3Zlcnkgc2lnbmluZyAoZGVmYXVsdDogdHJ1ZSlcbiAgICogQHJldHVybnMgdGhpcyBmYWN0b3J5IGZvciBjaGFpbmluZ1xuICAgKi9cbiAgcmVjb3Zlck1vZGUocmVjb3ZlclNpZ25lciA9IHRydWUpOiB0aGlzIHtcbiAgICB0aGlzLnJlY292ZXJTaWduZXIgPSByZWNvdmVyU2lnbmVyO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgY3JlZGVudGlhbHMgZnJvbSByZW1haW5pbmcgYnl0ZXMgYWZ0ZXIgdHJhbnNhY3Rpb24gdXNpbmcgRmxhcmVKUyBjb2RlYy5cbiAgICogVGhpcyBpcyB0aGUgcHJvcGVyIHdheSB0byBwYXJzZSBjcmVkZW50aWFscyAtIHVzaW5nIHRoZSBjb2RlYydzIFVucGFja1ByZWZpeCBtZXRob2QuXG4gICAqIEBwYXJhbSBjcmVkZW50aWFsQnl0ZXMgUmVtYWluaW5nIGJ5dGVzIGFmdGVyIHRoZSB0cmFuc2FjdGlvbiAoc3RhcnRzIHdpdGggbnVtQ3JlZGVudGlhbHMpXG4gICAqIEBwYXJhbSBjb2RlYyBUaGUgRmxhcmVKUyBjb2RlYyB0byB1c2UgZm9yIHVucGFja2luZ1xuICAgKiBAcmV0dXJucyBBcnJheSBvZiBwYXJzZWQgY3JlZGVudGlhbHNcbiAgICovXG4gIHByaXZhdGUgZXh0cmFjdENyZWRlbnRpYWxzV2l0aENvZGVjKGNyZWRlbnRpYWxCeXRlczogVWludDhBcnJheSwgY29kZWM6IENvZGVjKTogQ3JlZGVudGlhbFtdIHtcbiAgICBjb25zdCBjcmVkZW50aWFsczogQ3JlZGVudGlhbFtdID0gW107XG4gICAgaWYgKGNyZWRlbnRpYWxCeXRlcy5sZW5ndGggPCA0KSB7XG4gICAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gICAgfVxuXG4gICAgLy8gU2tpcCB0aGUgZmlyc3QgNCBieXRlcyAobnVtQ3JlZGVudGlhbHMgYXMgSW50IHR5cGUpXG4gICAgLy8gVGhlIGNvZGVjIGRvZXNuJ3Qga25vdyBhYm91dCB0aGlzIEludCwgc28gd2Ugc2tpcCBpdCBtYW51YWxseVxuICAgIGxldCByZW1haW5pbmdCeXRlczogVWludDhBcnJheSA9IGNyZWRlbnRpYWxCeXRlcy5zbGljZSg0KTtcbiAgICBsZXQgbW9yZUNyZWRlbnRpYWxzID0gdHJ1ZTtcblxuICAgIGRvIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IFtjcmVkZW50aWFsLCByZXN0XSA9IGNvZGVjLlVucGFja1ByZWZpeDxDcmVkZW50aWFsPihyZW1haW5pbmdCeXRlcyk7XG4gICAgICAgIGNyZWRlbnRpYWxzLnB1c2goY3JlZGVudGlhbCk7XG4gICAgICAgIHJlbWFpbmluZ0J5dGVzID0gcmVzdDtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBtb3JlQ3JlZGVudGlhbHMgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IHdoaWxlIChyZW1haW5pbmdCeXRlcy5sZW5ndGggPiAwICYmIG1vcmVDcmVkZW50aWFscyk7XG5cbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYSByYXcgdHJhbnNhY3Rpb24gYnVmZmVyIHVzaW5nIHRoZSBzcGVjaWZpZWQgVk0gbWFuYWdlci5cbiAgICogQHBhcmFtIHJhd0J1ZmZlciBUaGUgcmF3IHRyYW5zYWN0aW9uIGJ1ZmZlclxuICAgKiBAcGFyYW0gdm1UeXBlIFRoZSBWTSB0eXBlIHRvIHVzZSBmb3IgcGFyc2luZyAoJ0VWTScgb3IgJ1BWTScpXG4gICAqIEByZXR1cm5zIFBhcnNlZCB0cmFuc2FjdGlvbiBhbmQgY3JlZGVudGlhbHMsIG9yIG51bGwgaWYgcGFyc2luZyBmYWlsc1xuICAgKi9cbiAgcHJpdmF0ZSBwYXJzZVdpdGhWTShcbiAgICByYXdCdWZmZXI6IEJ1ZmZlcixcbiAgICB2bVR5cGU6ICdFVk0nIHwgJ1BWTSdcbiAgKTogeyB0eDogU2VyaWFsaXplZFR4OyBjcmVkZW50aWFsczogQ3JlZGVudGlhbFtdIH0gfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbWFuYWdlciA9IEZsYXJlVXRpbHMuZ2V0TWFuYWdlckZvclZNKHZtVHlwZSk7XG4gICAgICBjb25zdCBbY29kZWMsIHR4Qnl0ZXNdID0gbWFuYWdlci5nZXRDb2RlY0Zyb21CdWZmZXIocmF3QnVmZmVyKTtcbiAgICAgIGNvbnN0IFt0eCwgY3JlZGVudGlhbEJ5dGVzXSA9IChjb2RlYyBhcyBDb2RlYykuVW5wYWNrUHJlZml4PFNlcmlhbGl6ZWRUeD4odHhCeXRlcyk7XG5cbiAgICAgIGNvbnN0IGNyZWRlbnRpYWxzID1cbiAgICAgICAgY3JlZGVudGlhbEJ5dGVzLmxlbmd0aCA+IDQgPyB0aGlzLmV4dHJhY3RDcmVkZW50aWFsc1dpdGhDb2RlYyhjcmVkZW50aWFsQnl0ZXMsIGNvZGVjIGFzIENvZGVjKSA6IFtdO1xuXG4gICAgICByZXR1cm4geyB0eCwgY3JlZGVudGlhbHMgfTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBseSByZWNvdmVyeSBtb2RlIHNldHRpbmcgdG8gYSBidWlsZGVyIGlmIGVuYWJsZWQgb24gdGhlIGZhY3RvcnkuXG4gICAqIEBwYXJhbSBidWlsZGVyIFRoZSB0cmFuc2FjdGlvbiBidWlsZGVyIHRvIGNvbmZpZ3VyZVxuICAgKiBAcmV0dXJucyBUaGUgY29uZmlndXJlZCBidWlsZGVyXG4gICAqL1xuICBwcml2YXRlIGFwcGx5UmVjb3Zlck1vZGU8VCBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlcj4oYnVpbGRlcjogVCk6IFQge1xuICAgIGlmICh0aGlzLnJlY292ZXJTaWduZXIpIHtcbiAgICAgIGJ1aWxkZXIucmVjb3Zlck1vZGUodHJ1ZSk7XG4gICAgfVxuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0aGUgYXBwcm9wcmlhdGUgdHJhbnNhY3Rpb24gYnVpbGRlciBiYXNlZCBvbiB0cmFuc2FjdGlvbiB0eXBlLlxuICAgKiBAcGFyYW0gdHggVGhlIHBhcnNlZCB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gcmF3QnVmZmVyIFRoZSByYXcgdHJhbnNhY3Rpb24gYnVmZmVyXG4gICAqIEBwYXJhbSBjcmVkZW50aWFscyBUaGUgZXh0cmFjdGVkIGNyZWRlbnRpYWxzXG4gICAqIEBwYXJhbSBpc0VWTSBXaGV0aGVyIHRoaXMgaXMgYW4gRVZNIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIFRoZSBhcHByb3ByaWF0ZSB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUJ1aWxkZXIoXG4gICAgdHg6IFNlcmlhbGl6ZWRUeCxcbiAgICByYXdCdWZmZXI6IEJ1ZmZlcixcbiAgICBjcmVkZW50aWFsczogQ3JlZGVudGlhbFtdLFxuICAgIGlzRVZNOiBib29sZWFuXG4gICk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgaWYgKGlzRVZNKSB7XG4gICAgICBpZiAoRXhwb3J0SW5DVHhCdWlsZGVyLnZlcmlmeVR4VHlwZSh0eC5fdHlwZSkpIHtcbiAgICAgICAgY29uc3QgYnVpbGRlciA9IHRoaXMuZ2V0RXhwb3J0SW5DQnVpbGRlcigpO1xuICAgICAgICBidWlsZGVyLmluaXRCdWlsZGVyKHR4IGFzIGV2bVNlcmlhbC5FeHBvcnRUeCwgcmF3QnVmZmVyLCBjcmVkZW50aWFscyk7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGx5UmVjb3Zlck1vZGUoYnVpbGRlcik7XG4gICAgICB9XG4gICAgICBpZiAoSW1wb3J0SW5DVHhCdWlsZGVyLnZlcmlmeVR4VHlwZSh0eC5fdHlwZSkpIHtcbiAgICAgICAgY29uc3QgYnVpbGRlciA9IHRoaXMuZ2V0SW1wb3J0SW5DQnVpbGRlcigpO1xuICAgICAgICBidWlsZGVyLmluaXRCdWlsZGVyKHR4IGFzIGV2bVNlcmlhbC5JbXBvcnRUeCwgcmF3QnVmZmVyLCBjcmVkZW50aWFscyk7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGx5UmVjb3Zlck1vZGUoYnVpbGRlcik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChJbXBvcnRJblBUeEJ1aWxkZXIudmVyaWZ5VHhUeXBlKHR4Ll90eXBlKSkge1xuICAgICAgICBjb25zdCBidWlsZGVyID0gdGhpcy5nZXRJbXBvcnRJblBCdWlsZGVyKCk7XG4gICAgICAgIGJ1aWxkZXIuaW5pdEJ1aWxkZXIodHggYXMgcHZtU2VyaWFsLkltcG9ydFR4LCByYXdCdWZmZXIsIGNyZWRlbnRpYWxzKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlSZWNvdmVyTW9kZShidWlsZGVyKTtcbiAgICAgIH1cbiAgICAgIGlmIChFeHBvcnRJblBUeEJ1aWxkZXIudmVyaWZ5VHhUeXBlKHR4Ll90eXBlKSkge1xuICAgICAgICBjb25zdCBidWlsZGVyID0gdGhpcy5nZXRFeHBvcnRJblBCdWlsZGVyKCk7XG4gICAgICAgIGJ1aWxkZXIuaW5pdEJ1aWxkZXIodHggYXMgcHZtU2VyaWFsLkV4cG9ydFR4LCByYXdCdWZmZXIsIGNyZWRlbnRpYWxzKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlSZWNvdmVyTW9kZShidWlsZGVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZCgnVHJhbnNhY3Rpb24gdHlwZSBub3Qgc3VwcG9ydGVkJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZnJvbShyYXc6IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdXRpbHMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXcpO1xuICAgIGNvbnN0IHJhd0J1ZmZlciA9IEJ1ZmZlci5mcm9tKHV0aWxzLnJlbW92ZUhleFByZWZpeChyYXcpLCAnaGV4Jyk7XG5cbiAgICAvLyBUcnkgRVZNIGZpcnN0LCB0aGVuIGZhbGwgYmFjayB0byBQVk1cbiAgICBjb25zdCBldm1SZXN1bHQgPSB0aGlzLnBhcnNlV2l0aFZNKHJhd0J1ZmZlciwgJ0VWTScpO1xuICAgIGlmIChldm1SZXN1bHQpIHtcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUJ1aWxkZXIoZXZtUmVzdWx0LnR4LCByYXdCdWZmZXIsIGV2bVJlc3VsdC5jcmVkZW50aWFscywgdHJ1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgcHZtUmVzdWx0ID0gdGhpcy5wYXJzZVdpdGhWTShyYXdCdWZmZXIsICdQVk0nKTtcbiAgICBpZiAocHZtUmVzdWx0KSB7XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVCdWlsZGVyKHB2bVJlc3VsdC50eCwgcmF3QnVmZmVyLCBwdm1SZXN1bHQuY3JlZGVudGlhbHMsIGZhbHNlKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdUcmFuc2FjdGlvbiB0eXBlIG5vdCBzdXBwb3J0ZWQnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRUcmFuc2ZlckJ1aWxkZXIoKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdUcmFuc2ZlciBpcyBub3Qgc3VwcG9ydGVkIGluIFAgQ2hhaW4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBvcnQgQ3Jvc3MgY2hhaW4gdHJhbnNmZXJcbiAgICovXG4gIGdldEV4cG9ydEluUEJ1aWxkZXIoKTogRXhwb3J0SW5QVHhCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IEV4cG9ydEluUFR4QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgQ3Jvc3MgY2hhaW4gdHJhbnNmZXJcbiAgICovXG4gIGdldEltcG9ydEluUEJ1aWxkZXIoKTogSW1wb3J0SW5QVHhCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IEltcG9ydEluUFR4QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgaW4gQyBjaGFpbiBDcm9zcyBjaGFpbiB0cmFuc2ZlclxuICAgKi9cbiAgZ2V0SW1wb3J0SW5DQnVpbGRlcigpOiBJbXBvcnRJbkNUeEJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgSW1wb3J0SW5DVHhCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9ydCBpbiBDIGNoYWluIENyb3NzIGNoYWluIHRyYW5zZmVyXG4gICAqL1xuICBnZXRFeHBvcnRJbkNCdWlsZGVyKCk6IEV4cG9ydEluQ1R4QnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBFeHBvcnRJbkNUeEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZCgnV2FsbGV0IGluaXRpYWxpemF0aW9uIGlzIG5vdCBuZWVkZWQnKTtcbiAgfVxufVxuIl19