@bitgo-beta/sdk-coin-hbar 1.3.3-alpha.9 → 1.3.3-alpha.91

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":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,eAAe,EAA4C,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAM3H,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAa,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAG7B,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,OAAO,CAAwB;IACvC,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC;gBAErB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAIxB,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3C;;;;;OAKG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI;IAWnD,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAK3B;;;;OAIG;IACH,kBAAkB,CAAC,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IAgB7D,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAkChB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IA+BvB;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAS/B,IAAI,MAAM,IAAI,KAAK,CAAC,eAAe,CAElC;IAED,IAAI,QAAQ,IAAI,KAAK,CAAC,WAAW,CAEhC;IAED;;;;OAIG;IACH,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,GAAG,IAAI;IAMjC;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAI1D;;;OAGG;IACH,sBAAsB,IAAI,IAAI;IAY9B;;;;OAIG;IACH,oBAAoB,IAAI,IAAI;IAwC5B;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAMlC;;;;OAIG;IACH,YAAY,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;IAehC;;;;OAIG;IACH,SAAS,IAAI,MAAM;IAYnB;;;;;;OAMG;IACH,OAAO,CAAC,MAAM;IAOd;;;;;OAKG;IACH,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;CAG/B"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,eAAe,EAA4C,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAM3H,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAa,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAG7B,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,OAAO,CAAwB;IACvC,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC;gBAErB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAIxB,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3C;;;;;OAKG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI;IAWnD,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAK3B;;;;OAIG;IACH,kBAAkB,CAAC,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IAgB7D,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAkChB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IA+BvB;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAS/B,IAAI,MAAM,IAAI,KAAK,CAAC,eAAe,CAElC;IAED,IAAI,QAAQ,IAAI,KAAK,CAAC,WAAW,CAEhC;IAED;;;;OAIG;IACH,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,GAAG,IAAI;IAMjC;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAI1D;;;OAGG;IACH,sBAAsB,IAAI,IAAI;IAY9B;;;;OAIG;IACH,oBAAoB,IAAI,IAAI;IAwC5B;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAMlC;;;;OAIG;IACH,YAAY,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;IAehC;;;;OAIG;IACH,SAAS,IAAI,MAAM;IAYnB;;;;;;OAMG;IACH,OAAO,CAAC,MAAM;IAOd;;;;;OAKG;IACH,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;CAG/B"}
@@ -28,7 +28,7 @@ const sha384_1 = require("@stablelib/sha384");
28
28
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
29
29
  const nacl = __importStar(require("tweetnacl"));
30
30
  const Long = __importStar(require("long"));
31
- const proto = __importStar(require("@hashgraph/proto"));
31
+ const proto_1 = require("@hashgraph/proto");
32
32
  const utils_1 = require("./utils");
33
33
  const constants_1 = require("./constants");
34
34
  class Transaction extends sdk_core_1.BaseTransaction {
@@ -55,17 +55,17 @@ class Transaction extends sdk_core_1.BaseTransaction {
55
55
  * @param {KeyPair} key - The key of the key that created the signature
56
56
  */
57
57
  addSignature(signature, key) {
58
- const sigPair = new proto.SignaturePair();
58
+ const sigPair = new proto_1.proto.SignaturePair();
59
59
  sigPair.pubKeyPrefix = sdk_core_1.toUint8Array(key.getKeys(true).pub);
60
60
  sigPair.ed25519 = sdk_core_1.toUint8Array(signature);
61
- const sigMap = this._hederaTx.sigMap || new proto.SignatureMap();
61
+ const sigMap = this._hederaTx.sigMap || new proto_1.proto.SignatureMap();
62
62
  sigMap.sigPair.push(sigPair);
63
63
  this._hederaTx.sigMap = sigMap;
64
64
  this._signatures.push(signature);
65
65
  }
66
66
  /** @inheritdoc */
67
67
  toBroadcastFormat() {
68
- const encoder = proto.Transaction;
68
+ const encoder = proto_1.proto.Transaction;
69
69
  return sdk_core_1.toHex(this.encode(this._hederaTx, encoder));
70
70
  }
71
71
  /**
@@ -182,7 +182,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
182
182
  * @param {proto.Transaction} tx - Body Transaction
183
183
  */
184
184
  body(tx) {
185
- this._txBody = proto.TransactionBody.decode(tx.bodyBytes);
185
+ this._txBody = proto_1.proto.TransactionBody.decode(tx.bodyBytes);
186
186
  this._hederaTx = tx;
187
187
  this.loadInputsAndOutputs();
188
188
  }
@@ -257,7 +257,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
257
257
  * @param {Uint8Array} bytes - Encoded body transaction
258
258
  */
259
259
  bodyBytes(bytes) {
260
- this.body(proto.Transaction.decode(bytes));
260
+ this.body(proto_1.proto.Transaction.decode(bytes));
261
261
  }
262
262
  // endregion
263
263
  // region helpers
@@ -287,10 +287,10 @@ class Transaction extends sdk_core_1.BaseTransaction {
287
287
  if (!this._txBody.nodeAccountID) {
288
288
  throw new Error('Missing transaction node id');
289
289
  }
290
- const _signedTx = new proto.SignedTransaction();
290
+ const _signedTx = new proto_1.proto.SignedTransaction();
291
291
  _signedTx.sigMap = this._hederaTx.sigMap;
292
292
  _signedTx.bodyBytes = this._hederaTx.bodyBytes;
293
- const encoder = proto.SignedTransaction;
293
+ const encoder = proto_1.proto.SignedTransaction;
294
294
  return this.sha(this.encode(_signedTx, encoder));
295
295
  }
296
296
  /**
@@ -314,4 +314,4 @@ class Transaction extends sdk_core_1.BaseTransaction {
314
314
  }
315
315
  }
316
316
  exports.Transaction = Transaction;
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxtREFBMkg7QUFDM0gsOENBQXlDO0FBQ3pDLGdFQUFxQztBQUVyQyxnREFBa0M7QUFDbEMsMkNBQTZCO0FBQzdCLHdEQUEwQztBQUUxQyxtQ0FBMEc7QUFFMUcsMkNBQXFEO0FBRXJELE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBSzlDLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLEdBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFnQjtRQUN6QixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2IsTUFBTSxJQUFJLHVCQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUMvQztRQUNELE1BQU0sU0FBUyxHQUFHLHVCQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksQ0FBQyxTQUFpQixFQUFFLEdBQVk7UUFDMUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxLQUFLLENB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LENBQUMsTUFBTSxDQUFDO1FBQ3pDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7UUFFL0MsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxNQUFNLENBQ1osR0FBTSxFQUNOLE9BQW1DO1FBRW5DLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxHQUFHLENBQUMsS0FBaUI7UUFDbkIsT0FBTyxnQkFBSyxDQUFDLGFBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7Q0FDRjtBQTdURCxrQ0E2VEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBCYXNlS2V5LCBCYXNlVHJhbnNhY3Rpb24sIEVudHJ5LCBTaWduaW5nRXJyb3IsIHRvSGV4LCB0b1VpbnQ4QXJyYXksIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAc3RhYmxlbGliL3NoYTM4NCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBXcml0ZXIgfSBmcm9tICdwcm90b2J1ZmpzJztcbmltcG9ydCAqIGFzIG5hY2wgZnJvbSAndHdlZXRuYWNsJztcbmltcG9ydCAqIGFzIExvbmcgZnJvbSAnbG9uZyc7XG5pbXBvcnQgKiBhcyBwcm90byBmcm9tICdAaGFzaGdyYXBoL3Byb3RvJztcbmltcG9ydCB7IFR4RGF0YSwgUmVjaXBpZW50IH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBzdHJpbmdpZnlBY2NvdW50SWQsIHN0cmluZ2lmeVR4VGltZSwgc3RyaW5naWZ5VG9rZW5JZCwgZ2V0SGVkZXJhVG9rZW5OYW1lRnJvbUlkIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi8nO1xuaW1wb3J0IHsgSGVkZXJhVHJhbnNhY3Rpb25UeXBlcyB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSBfaGVkZXJhVHg6IHByb3RvLlRyYW5zYWN0aW9uO1xuICBwcml2YXRlIF90eEJvZHk6IHByb3RvLlRyYW5zYWN0aW9uQm9keTtcbiAgcHJvdGVjdGVkIF90eXBlOiBUcmFuc2FjdGlvblR5cGU7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBzaWduKGtleVBhaXI6IEtleVBhaXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBrZXlzID0ga2V5UGFpci5nZXRLZXlzKHRydWUpO1xuICAgIGlmICgha2V5cy5wcnYpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgICB9XG4gICAgY29uc3Qgc2VjcmV0S2V5ID0gdG9VaW50OEFycmF5KGtleXMucHJ2ICsga2V5cy5wdWIpO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IG5hY2wuc2lnbi5kZXRhY2hlZCh0aGlzLl9oZWRlcmFUeC5ib2R5Qnl0ZXMsIHNlY3JldEtleSk7XG4gICAgdGhpcy5hZGRTaWduYXR1cmUodG9IZXgoc2lnbmF0dXJlKSwga2V5UGFpcik7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgc2lnbmF0dXJlIHRvIHRoaXMgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNpZ25hdHVyZSAtIFRoZSBzaWduYXR1cmUgdG8gYWRkLCBpbiBzdHJpbmcgaGV4IGZvcm1hdFxuICAgKiBAcGFyYW0ge0tleVBhaXJ9IGtleSAtIFRoZSBrZXkgb2YgdGhlIGtleSB0aGF0IGNyZWF0ZWQgdGhlIHNpZ25hdHVyZVxuICAgKi9cbiAgYWRkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nLCBrZXk6IEtleVBhaXIpOiB2b2lkIHtcbiAgICBjb25zdCBzaWdQYWlyID0gbmV3IHByb3RvLlNpZ25hdHVyZVBhaXIoKTtcbiAgICBzaWdQYWlyLnB1YktleVByZWZpeCA9IHRvVWludDhBcnJheShrZXkuZ2V0S2V5cyh0cnVlKS5wdWIpO1xuICAgIHNpZ1BhaXIuZWQyNTUxOSA9IHRvVWludDhBcnJheShzaWduYXR1cmUpO1xuXG4gICAgY29uc3Qgc2lnTWFwID0gdGhpcy5faGVkZXJhVHguc2lnTWFwIHx8IG5ldyBwcm90by5TaWduYXR1cmVNYXAoKTtcbiAgICBzaWdNYXAuc2lnUGFpciEucHVzaChzaWdQYWlyKTtcbiAgICB0aGlzLl9oZWRlcmFUeC5zaWdNYXAgPSBzaWdNYXA7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBlbmNvZGVyID0gcHJvdG8uVHJhbnNhY3Rpb247XG4gICAgcmV0dXJuIHRvSGV4KHRoaXMuZW5jb2RlKHRoaXMuX2hlZGVyYVR4LCBlbmNvZGVyKSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGlzIHRyYW5zYWN0aW9uIHBheWxvYWRcbiAgICpcbiAgICogQHBhcmFtIHJhd1RyYW5zYWN0aW9uXG4gICAqL1xuICBmcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IFVpbnQ4QXJyYXkgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBidWZmZXIgPSB0eXBlb2YgcmF3VHJhbnNhY3Rpb24gPT09ICdzdHJpbmcnID8gdG9VaW50OEFycmF5KHJhd1RyYW5zYWN0aW9uKSA6IHJhd1RyYW5zYWN0aW9uO1xuICAgIHRoaXMuYm9keUJ5dGVzKGJ1ZmZlcik7XG4gICAgc3dpdGNoICh0aGlzLnR4Qm9keS5kYXRhKSB7XG4gICAgICBjYXNlIEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuVHJhbnNmZXI6XG4gICAgICAgIHRoaXMuc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuQ3JlYXRlQWNjb3VudDpcbiAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuVG9rZW5Bc3NvY2lhdGVUb0FjY291bnQ6XG4gICAgICAgIHRoaXMuc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5Bc3NvY2lhdGVkVG9rZW5BY2NvdW50SW5pdGlhbGl6YXRpb24pO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IFR4RGF0YSB7XG4gICAgY29uc3QgW2FjYywgdGltZV0gPSB0aGlzLmdldFR4SWRQYXJ0cygpO1xuICAgIGNvbnN0IHJlc3VsdDogVHhEYXRhID0ge1xuICAgICAgaWQ6IGFjYyArICdAJyArIHRpbWUsXG4gICAgICBoYXNoOiB0aGlzLmdldFR4SGFzaCgpLCAvLyBUT0RPOiBVcGRhdGUgb25jZSBoZWRlcmEtc2RrIHJlbGVhc2UgdGhpcyBmdW5jdGlvbmFsaXR5IEJHQS0yODRcbiAgICAgIGRhdGE6IHRvSGV4KHRoaXMuX2hlZGVyYVR4LmJvZHlCeXRlcyksXG4gICAgICBmZWU6IG5ldyBCaWdOdW1iZXIodGhpcy5fdHhCb2R5LnRyYW5zYWN0aW9uRmVlIS50b1N0cmluZygpKS50b051bWJlcigpLFxuICAgICAgZnJvbTogYWNjLFxuICAgICAgc3RhcnRUaW1lOiB0aW1lLFxuICAgICAgdmFsaWREdXJhdGlvbjogdGhpcy5fdHhCb2R5LnRyYW5zYWN0aW9uVmFsaWREdXJhdGlvbiEuc2Vjb25kcyEudG9TdHJpbmcoKSxcbiAgICAgIG5vZGU6IHN0cmluZ2lmeUFjY291bnRJZCh0aGlzLl90eEJvZHkubm9kZUFjY291bnRJRCEpLFxuICAgICAgbWVtbzogdGhpcy5fdHhCb2R5Lm1lbW8sXG4gICAgfTtcblxuICAgIHN3aXRjaCAodGhpcy5fdHhCb2R5LmRhdGEpIHtcbiAgICAgIGNhc2UgSGVkZXJhVHJhbnNhY3Rpb25UeXBlcy5UcmFuc2ZlcjpcbiAgICAgICAgcmVzdWx0Lmluc3RydWN0aW9uc0RhdGEgPSB7XG4gICAgICAgICAgdHlwZTogSGVkZXJhVHJhbnNhY3Rpb25UeXBlcy5UcmFuc2ZlcixcbiAgICAgICAgICBwYXJhbXM6IHRoaXMuZ2V0VHJhbnNmZXJEYXRhKCksXG4gICAgICAgIH07XG4gICAgICAgIHJlc3VsdC50byA9IHJlc3VsdC5pbnN0cnVjdGlvbnNEYXRhLnBhcmFtcy5yZWNpcGllbnRzWzBdLmFkZHJlc3M7XG4gICAgICAgIHJlc3VsdC5hbW91bnQgPSByZXN1bHQuaW5zdHJ1Y3Rpb25zRGF0YS5wYXJhbXMucmVjaXBpZW50c1swXS5hbW91bnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBIZWRlcmFUcmFuc2FjdGlvblR5cGVzLlRva2VuQXNzb2NpYXRlVG9BY2NvdW50OlxuICAgICAgICByZXN1bHQuaW5zdHJ1Y3Rpb25zRGF0YSA9IHtcbiAgICAgICAgICB0eXBlOiBIZWRlcmFUcmFuc2FjdGlvblR5cGVzLlRva2VuQXNzb2NpYXRlVG9BY2NvdW50LFxuICAgICAgICAgIHBhcmFtczogdGhpcy5nZXRBY2NvdW50QXNzb2NpYXRlRGF0YSgpLFxuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcmVjaXBpZW50IGFjY291bnQgYW5kIHRoZSBhbW91bnRcbiAgICogdHJhbnNmZXJyZWQgb24gdGhpcyB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcmV0dXJucyB7IHRva2VuTmFtZSwgUmVjaXBpZW50W119IGlzIG9iamVjdCBjb25zaXN0aW5nIG9mIHRva2VuTmFtZSBpZiBpdCdzIGEgdG9rZW4gdHJhbnNmZXIgYW5kIHJlY2lwaWVudHMgY29uc2lzdGluZ1xuICAgKiAgdGhlIHJlY2lwaWVudCBhZGRyZXNzLCB0aGUgdHJhbnNmZXIgYW1vdW50LCBhbmQgdGhlIHRva2VuIG5hbWUgZm9yIHRva2VuIHRyYW5zZmVyXG4gICAqL1xuICBwcml2YXRlIGdldFRyYW5zZmVyRGF0YSgpOiB7IHRva2VuTmFtZT86IHN0cmluZzsgcmVjaXBpZW50czogUmVjaXBpZW50W10gfSB7XG4gICAgY29uc3QgW2FjY10gPSB0aGlzLmdldFR4SWRQYXJ0cygpO1xuICAgIGNvbnN0IHRyYW5zZmVyRGF0YTogUmVjaXBpZW50W10gPSBbXTtcbiAgICBjb25zdCB0b2tlblRyYW5zZmVyczogcHJvdG8uSVRva2VuVHJhbnNmZXJMaXN0W10gPSB0aGlzLl90eEJvZHkuY3J5cHRvVHJhbnNmZXI/LnRva2VuVHJhbnNmZXJzIHx8IFtdO1xuICAgIGNvbnN0IHRyYW5zZmVyczogcHJvdG8uSUFjY291bnRBbW91bnRbXSA9XG4gICAgICB0b2tlblRyYW5zZmVyc1swXT8udHJhbnNmZXJzIHx8IHRoaXMuX3R4Qm9keS5jcnlwdG9UcmFuc2Zlcj8udHJhbnNmZXJzPy5hY2NvdW50QW1vdW50cyB8fCBbXTtcbiAgICBjb25zdCB0b2tlbk5hbWUgPSB0b2tlblRyYW5zZmVycy5sZW5ndGhcbiAgICAgID8gZ2V0SGVkZXJhVG9rZW5OYW1lRnJvbUlkKHN0cmluZ2lmeVRva2VuSWQodG9rZW5UcmFuc2ZlcnNbMF0udG9rZW4hKSk/Lm5hbWVcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgdHJhbnNmZXJzLmZvckVhY2goKHRyYW5zZmVyKSA9PiB7XG4gICAgICBjb25zdCBhbW91bnQgPSBMb25nLmZyb21WYWx1ZSh0cmFuc2Zlci5hbW91bnQhKTtcbiAgICAgIGlmIChhbW91bnQuaXNQb3NpdGl2ZSgpICYmIHN0cmluZ2lmeUFjY291bnRJZCh0cmFuc2Zlci5hY2NvdW50SUQhKSAhPT0gYWNjKSB7XG4gICAgICAgIHRyYW5zZmVyRGF0YS5wdXNoKHtcbiAgICAgICAgICBhZGRyZXNzOiBzdHJpbmdpZnlBY2NvdW50SWQodHJhbnNmZXIuYWNjb3VudElEISksXG4gICAgICAgICAgYW1vdW50OiBhbW91bnQudG9TdHJpbmcoKSxcbiAgICAgICAgICAuLi4odG9rZW5UcmFuc2ZlcnMubGVuZ3RoICYmIHtcbiAgICAgICAgICAgIHRva2VuTmFtZTogdG9rZW5OYW1lLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi4odG9rZW5UcmFuc2ZlcnMubGVuZ3RoICYmIHtcbiAgICAgICAgdG9rZW5OYW1lOiB0b2tlbk5hbWUsXG4gICAgICB9KSxcbiAgICAgIHJlY2lwaWVudHM6IHRyYW5zZmVyRGF0YSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcmVjaXBpZW50IGFjY291bnQgYW5kIHRoZSBhbW91bnRcbiAgICogdHJhbnNmZXJyZWQgb24gdGhpcyB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcmV0dXJucyB7IGFjY291bnRJZDogc3RyaW5nOyB0b2tlbk5hbWVzW119IGlzIGFuIG9iamVjdCBjb25zaXN0aW5nIG9mIGFjY291bnRJZCBmb3IgdGhlIHRva2VuIG93bmVyXG4gICAqICBhbmQgbGlzdCBvZiB0b2tlbk5hbWVzIHRoYXQgd2lsbCBiZSBlbmFibGVkXG4gICAqL1xuICBwcml2YXRlIGdldEFjY291bnRBc3NvY2lhdGVEYXRhKCk6IHsgYWNjb3VudElkOiBzdHJpbmc7IHRva2VuTmFtZXM6IHN0cmluZ1tdIH0ge1xuICAgIGNvbnN0IHRva2VuczogcHJvdG8uSVRva2VuSURbXSA9IHRoaXMuX3R4Qm9keS50b2tlbkFzc29jaWF0ZSEudG9rZW5zIHx8IFtdO1xuICAgIHJldHVybiB7XG4gICAgICBhY2NvdW50SWQ6IHN0cmluZ2lmeUFjY291bnRJZCh0aGlzLl90eEJvZHkudG9rZW5Bc3NvY2lhdGUhLmFjY291bnQhKSxcbiAgICAgIHRva2VuTmFtZXM6IHRva2Vucy5tYXAoKHRva2VuOiBwcm90by5JVG9rZW5JRCkgPT4gZ2V0SGVkZXJhVG9rZW5OYW1lRnJvbUlkKHN0cmluZ2lmeVRva2VuSWQodG9rZW4pKSEubmFtZSksXG4gICAgfTtcbiAgfVxuXG4gIC8vIHJlZ2lvbiBnZXR0ZXJzICYgc2V0dGVyc1xuICBnZXQgdHhCb2R5KCk6IHByb3RvLlRyYW5zYWN0aW9uQm9keSB7XG4gICAgcmV0dXJuIHRoaXMuX3R4Qm9keTtcbiAgfVxuXG4gIGdldCBoZWRlcmFUeCgpOiBwcm90by5UcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX2hlZGVyYVR4O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhpcyB0cmFuc2FjdGlvbiBib2R5IGNvbXBvbmVudHNcbiAgICpcbiAgICogQHBhcmFtIHtwcm90by5UcmFuc2FjdGlvbn0gdHggLSBCb2R5IFRyYW5zYWN0aW9uXG4gICAqL1xuICBib2R5KHR4OiBwcm90by5UcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3R4Qm9keSA9IHByb3RvLlRyYW5zYWN0aW9uQm9keS5kZWNvZGUodHguYm9keUJ5dGVzKTtcbiAgICB0aGlzLl9oZWRlcmFUeCA9IHR4O1xuICAgIHRoaXMubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGVcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblR5cGV9IHRyYW5zYWN0aW9uVHlwZSAtIFRoZSB0cmFuc2FjdGlvbiB0eXBlIHRvIGJlIHNldFxuICAgKi9cbiAgc2V0VHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGUgcHJldmlvdXMgc2lnbmF0dXJlcyBmcm9tIHRoZSBpbm5lciBoZWRlcmEgdHJhbnNhY3Rpb25cbiAgICogYW5kIHNhdmUgdGhlbSBpbnRvIHRoZSBiYXNlIHRyYW5zYWN0aW9uIHNpZ25hdHVyZSBsaXN0LlxuICAgKi9cbiAgbG9hZFByZXZpb3VzU2lnbmF0dXJlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faGVkZXJhVHguc2lnTWFwICYmIHRoaXMuX2hlZGVyYVR4LnNpZ01hcC5zaWdQYWlyKSB7XG4gICAgICBjb25zdCBzaWdQYWlycyA9IHRoaXMuX2hlZGVyYVR4LnNpZ01hcC5zaWdQYWlyO1xuICAgICAgc2lnUGFpcnMuZm9yRWFjaCgoc2lnUGFpcikgPT4ge1xuICAgICAgICBjb25zdCBzaWduYXR1cmUgPSBzaWdQYWlyLmVkMjU1MTk7XG4gICAgICAgIGlmIChzaWduYXR1cmUpIHtcbiAgICAgICAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2godG9IZXgoc2lnbmF0dXJlKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGRhdGEgb24gdGhpcyB0cmFuc2FjdGlvbiB1c2luZyB0aGUgdHJhbnNhY3Rpb24ganNvblxuICAgKiBpZiB0aGVyZSBhcmUgb3V0cHV0cy4gRm9yIHRyYW5zYWN0aW9ucyB3aXRob3V0IG91dHB1dHMgKGUuZy4gd2FsbGV0IGluaXRpYWxpemF0aW9ucyksXG4gICAqIHRoaXMgZnVuY3Rpb24gd2lsbCBub3QgZG8gYW55dGhpbmdcbiAgICovXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGNvbnN0IHR4SnNvbiA9IHRoaXMudG9Kc29uKCk7XG4gICAgY29uc3QgaW5zdHJ1Y3Rpb24gPSB0eEpzb24uaW5zdHJ1Y3Rpb25zRGF0YTtcbiAgICBjb25zdCBvdXRwdXRzOiBFbnRyeVtdID0gW107XG4gICAgY29uc3QgaW5wdXRzOiBFbnRyeVtdID0gW107XG5cbiAgICBzd2l0Y2ggKGluc3RydWN0aW9uPy50eXBlKSB7XG4gICAgICBjYXNlIEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuVHJhbnNmZXI6XG4gICAgICAgIGxldCB0b3RhbEFtb3VudCA9IG5ldyBCaWdOdW1iZXIoMCk7XG4gICAgICAgIGluc3RydWN0aW9uLnBhcmFtcy5yZWNpcGllbnRzLmZvckVhY2goKHJlY2lwaWVudCkgPT4ge1xuICAgICAgICAgIHRvdGFsQW1vdW50ID0gdG90YWxBbW91bnQucGx1cyhyZWNpcGllbnQuYW1vdW50KTtcbiAgICAgICAgICBvdXRwdXRzLnB1c2goe1xuICAgICAgICAgICAgYWRkcmVzczogcmVjaXBpZW50LmFkZHJlc3MsXG4gICAgICAgICAgICB2YWx1ZTogcmVjaXBpZW50LmFtb3VudCxcbiAgICAgICAgICAgIGNvaW46IHJlY2lwaWVudC50b2tlbk5hbWUgfHwgdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgaW5wdXRzLnB1c2goe1xuICAgICAgICAgIGFkZHJlc3M6IHR4SnNvbi5mcm9tLFxuICAgICAgICAgIHZhbHVlOiB0b3RhbEFtb3VudC50b1N0cmluZygpLFxuICAgICAgICAgIGNvaW46IGluc3RydWN0aW9uLnBhcmFtcy50b2tlbk5hbWUgfHwgdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgSGVkZXJhVHJhbnNhY3Rpb25UeXBlcy5Ub2tlbkFzc29jaWF0ZVRvQWNjb3VudDpcbiAgICAgICAgaW5zdHJ1Y3Rpb24ucGFyYW1zLnRva2VuTmFtZXMuZm9yRWFjaCgodG9rZW5OYW1lKSA9PiB7XG4gICAgICAgICAgY29uc3QgdG9rZW5FbnRyeTogRW50cnkgPSB7XG4gICAgICAgICAgICBhZGRyZXNzOiBpbnN0cnVjdGlvbi5wYXJhbXMuYWNjb3VudElkLFxuICAgICAgICAgICAgdmFsdWU6ICcwJyxcbiAgICAgICAgICAgIGNvaW46IHRva2VuTmFtZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlucHV0cy5wdXNoKHRva2VuRW50cnkpO1xuICAgICAgICAgIG91dHB1dHMucHVzaCh0b2tlbkVudHJ5KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLl9pbnB1dHMgPSBpbnB1dHM7XG4gICAgdGhpcy5fb3V0cHV0cyA9IG91dHB1dHM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGlzIHRyYW5zYWN0aW9uIGJvZHkgY29tcG9uZW50c1xuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGJ5dGVzIC0gRW5jb2RlZCBib2R5IHRyYW5zYWN0aW9uXG4gICAqL1xuICBib2R5Qnl0ZXMoYnl0ZXM6IFVpbnQ4QXJyYXkpOiB2b2lkIHtcbiAgICB0aGlzLmJvZHkocHJvdG8uVHJhbnNhY3Rpb24uZGVjb2RlKGJ5dGVzKSk7XG4gIH1cbiAgLy8gZW5kcmVnaW9uXG5cbiAgLy8gcmVnaW9uIGhlbHBlcnNcbiAgLyoqXG4gICAqIFJldHVybnMgdGhpcyBoZWRlcmEgdHJhbnNhY3Rpb24gaWQgY29tcG9uZW50cyBpbiBhIHJlYWRhYmxlIGZvcm1hdFxuICAgKlxuICAgKiBAcmV0dXJucyB7W3N0cmluZywgc3RyaW5nXX0gLSBUcmFuc2FjdGlvbiBpZCBwYXJ0cyBbPGFjY291bnQgaWQ+LCA8c3RhcnRUaW1lIGluIHNlY29uZHM+XVxuICAgKi9cbiAgZ2V0VHhJZFBhcnRzKCk6IFtzdHJpbmcsIHN0cmluZ10ge1xuICAgIGlmIChcbiAgICAgIHRoaXMuX3R4Qm9keSAmJlxuICAgICAgdGhpcy5fdHhCb2R5LnRyYW5zYWN0aW9uSUQgJiZcbiAgICAgIHRoaXMuX3R4Qm9keS50cmFuc2FjdGlvbklELmFjY291bnRJRCAmJlxuICAgICAgdGhpcy5fdHhCb2R5LnRyYW5zYWN0aW9uSUQudHJhbnNhY3Rpb25WYWxpZFN0YXJ0XG4gICAgKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBzdHJpbmdpZnlBY2NvdW50SWQodGhpcy5fdHhCb2R5LnRyYW5zYWN0aW9uSUQuYWNjb3VudElEKSxcbiAgICAgICAgc3RyaW5naWZ5VHhUaW1lKHRoaXMuX3R4Qm9keS50cmFuc2FjdGlvbklELnRyYW5zYWN0aW9uVmFsaWRTdGFydCksXG4gICAgICBdO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgdHJhbnNhY3Rpb24gaWQgaW5mb3JtYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoaXMgdHJhbnNhY3Rpb24gaGFzaFxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSB0cmFuc2FjdGlvbiBoYXNoXG4gICAqL1xuICBnZXRUeEhhc2goKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX3R4Qm9keS5ub2RlQWNjb3VudElEKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgdHJhbnNhY3Rpb24gbm9kZSBpZCcpO1xuICAgIH1cbiAgICBjb25zdCBfc2lnbmVkVHggPSBuZXcgcHJvdG8uU2lnbmVkVHJhbnNhY3Rpb24oKTtcbiAgICBfc2lnbmVkVHguc2lnTWFwID0gdGhpcy5faGVkZXJhVHguc2lnTWFwO1xuICAgIF9zaWduZWRUeC5ib2R5Qnl0ZXMgPSB0aGlzLl9oZWRlcmFUeC5ib2R5Qnl0ZXM7XG5cbiAgICBjb25zdCBlbmNvZGVyID0gcHJvdG8uU2lnbmVkVHJhbnNhY3Rpb247XG4gICAgcmV0dXJuIHRoaXMuc2hhKHRoaXMuZW5jb2RlKF9zaWduZWRUeCwgZW5jb2RlcikpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuY29kZSBhbiBvYmplY3QgdXNpbmcgdGhlIGdpdmVuIGVuY29kZXIgY2xhc3NcbiAgICpcbiAgICogQHBhcmFtIHtwcm90b30gb2JqIC0gVGhlIG9iamVjdCB0byBiZSBlbmNvZGVkLCBtdXN0IGJlIGluIHByb3RvIG5hbWVzcGFjZVxuICAgKiBAcGFyYW0gZW5jb2RlciAtIE9iamVjdCBlbmNvZGVyXG4gICAqIEByZXR1cm5zIHtVaW50OEFycmF5fSAtIEVuY29kZWQgb2JqZWN0IGJ5dGUgYXJyYXlcbiAgICovXG4gIHByaXZhdGUgZW5jb2RlPEN0b3JGbiBleHRlbmRzIHsgbmV3ICgpOiBUIH0sIFQgZXh0ZW5kcyB7IGNvbnN0cnVjdG9yOiBDdG9yRm4gfT4oXG4gICAgb2JqOiBULFxuICAgIGVuY29kZXI6IHsgZW5jb2RlKGFyZzogVCk6IFdyaXRlciB9XG4gICk6IFVpbnQ4QXJyYXkge1xuICAgIHJldHVybiBlbmNvZGVyLmVuY29kZShvYmopLmZpbmlzaCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzaGEtMzg0IGhhc2hcbiAgICpcbiAgICogQHBhcmFtIHtVaW50OEFycmF5fSBieXRlcyAtIEJ5dGVzIHRvIGJlIGhhc2hlZFxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSByZXN1bHRpbmcgaGFzaCBzdHJpbmdcbiAgICovXG4gIHNoYShieXRlczogVWludDhBcnJheSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRvSGV4KGhhc2goYnl0ZXMpKTtcbiAgfVxufVxuIl19
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxtREFBMkg7QUFDM0gsOENBQXlDO0FBQ3pDLGdFQUFxQztBQUVyQyxnREFBa0M7QUFDbEMsMkNBQTZCO0FBQzdCLDRDQUF5QztBQUV6QyxtQ0FBMEc7QUFFMUcsMkNBQXFEO0FBRXJELE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBSzlDLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLEdBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFnQjtRQUN6QixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2IsTUFBTSxJQUFJLHVCQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUMvQztRQUNELE1BQU0sU0FBUyxHQUFHLHVCQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksQ0FBQyxTQUFpQixFQUFFLEdBQVk7UUFDMUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxhQUFLLENB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LENBQUMsTUFBTSxDQUFDO1FBQ3pDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7UUFFL0MsTUFBTSxPQUFPLEdBQUcsYUFBSyxDQUFDLGlCQUFpQixDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxNQUFNLENBQ1osR0FBTSxFQUNOLE9BQW1DO1FBRW5DLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxHQUFHLENBQUMsS0FBaUI7UUFDbkIsT0FBTyxnQkFBSyxDQUFDLGFBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7Q0FDRjtBQTdURCxrQ0E2VEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBCYXNlS2V5LCBCYXNlVHJhbnNhY3Rpb24sIEVudHJ5LCBTaWduaW5nRXJyb3IsIHRvSGV4LCB0b1VpbnQ4QXJyYXksIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAc3RhYmxlbGliL3NoYTM4NCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBXcml0ZXIgfSBmcm9tICdwcm90b2J1ZmpzJztcbmltcG9ydCAqIGFzIG5hY2wgZnJvbSAndHdlZXRuYWNsJztcbmltcG9ydCAqIGFzIExvbmcgZnJvbSAnbG9uZyc7XG5pbXBvcnQgeyBwcm90byB9IGZyb20gJ0BoYXNoZ3JhcGgvcHJvdG8nO1xuaW1wb3J0IHsgVHhEYXRhLCBSZWNpcGllbnQgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IHN0cmluZ2lmeUFjY291bnRJZCwgc3RyaW5naWZ5VHhUaW1lLCBzdHJpbmdpZnlUb2tlbklkLCBnZXRIZWRlcmFUb2tlbk5hbWVGcm9tSWQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuLyc7XG5pbXBvcnQgeyBIZWRlcmFUcmFuc2FjdGlvblR5cGVzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcml2YXRlIF9oZWRlcmFUeDogcHJvdG8uVHJhbnNhY3Rpb247XG4gIHByaXZhdGUgX3R4Qm9keTogcHJvdG8uVHJhbnNhY3Rpb25Cb2R5O1xuICBwcm90ZWN0ZWQgX3R5cGU6IFRyYW5zYWN0aW9uVHlwZTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIHNpZ24oa2V5UGFpcjogS2V5UGFpcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGtleXMgPSBrZXlQYWlyLmdldEtleXModHJ1ZSk7XG4gICAgaWYgKCFrZXlzLnBydikge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignTWlzc2luZyBwcml2YXRlIGtleScpO1xuICAgIH1cbiAgICBjb25zdCBzZWNyZXRLZXkgPSB0b1VpbnQ4QXJyYXkoa2V5cy5wcnYgKyBrZXlzLnB1Yik7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gbmFjbC5zaWduLmRldGFjaGVkKHRoaXMuX2hlZGVyYVR4LmJvZHlCeXRlcywgc2VjcmV0S2V5KTtcbiAgICB0aGlzLmFkZFNpZ25hdHVyZSh0b0hleChzaWduYXR1cmUpLCBrZXlQYWlyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBzaWduYXR1cmUgdG8gdGhpcyB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmF0dXJlIC0gVGhlIHNpZ25hdHVyZSB0byBhZGQsIGluIHN0cmluZyBoZXggZm9ybWF0XG4gICAqIEBwYXJhbSB7S2V5UGFpcn0ga2V5IC0gVGhlIGtleSBvZiB0aGUga2V5IHRoYXQgY3JlYXRlZCB0aGUgc2lnbmF0dXJlXG4gICAqL1xuICBhZGRTaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcsIGtleTogS2V5UGFpcik6IHZvaWQge1xuICAgIGNvbnN0IHNpZ1BhaXIgPSBuZXcgcHJvdG8uU2lnbmF0dXJlUGFpcigpO1xuICAgIHNpZ1BhaXIucHViS2V5UHJlZml4ID0gdG9VaW50OEFycmF5KGtleS5nZXRLZXlzKHRydWUpLnB1Yik7XG4gICAgc2lnUGFpci5lZDI1NTE5ID0gdG9VaW50OEFycmF5KHNpZ25hdHVyZSk7XG5cbiAgICBjb25zdCBzaWdNYXAgPSB0aGlzLl9oZWRlcmFUeC5zaWdNYXAgfHwgbmV3IHByb3RvLlNpZ25hdHVyZU1hcCgpO1xuICAgIHNpZ01hcC5zaWdQYWlyIS5wdXNoKHNpZ1BhaXIpO1xuICAgIHRoaXMuX2hlZGVyYVR4LnNpZ01hcCA9IHNpZ01hcDtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmF0dXJlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGVuY29kZXIgPSBwcm90by5UcmFuc2FjdGlvbjtcbiAgICByZXR1cm4gdG9IZXgodGhpcy5lbmNvZGUodGhpcy5faGVkZXJhVHgsIGVuY29kZXIpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoaXMgdHJhbnNhY3Rpb24gcGF5bG9hZFxuICAgKlxuICAgKiBAcGFyYW0gcmF3VHJhbnNhY3Rpb25cbiAgICovXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogVWludDhBcnJheSB8IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGJ1ZmZlciA9IHR5cGVvZiByYXdUcmFuc2FjdGlvbiA9PT0gJ3N0cmluZycgPyB0b1VpbnQ4QXJyYXkocmF3VHJhbnNhY3Rpb24pIDogcmF3VHJhbnNhY3Rpb247XG4gICAgdGhpcy5ib2R5Qnl0ZXMoYnVmZmVyKTtcbiAgICBzd2l0Y2ggKHRoaXMudHhCb2R5LmRhdGEpIHtcbiAgICAgIGNhc2UgSGVkZXJhVHJhbnNhY3Rpb25UeXBlcy5UcmFuc2ZlcjpcbiAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgSGVkZXJhVHJhbnNhY3Rpb25UeXBlcy5DcmVhdGVBY2NvdW50OlxuICAgICAgICB0aGlzLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgSGVkZXJhVHJhbnNhY3Rpb25UeXBlcy5Ub2tlbkFzc29jaWF0ZVRvQWNjb3VudDpcbiAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLkFzc29jaWF0ZWRUb2tlbkFjY291bnRJbml0aWFsaXphdGlvbik7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBjb25zdCBbYWNjLCB0aW1lXSA9IHRoaXMuZ2V0VHhJZFBhcnRzKCk7XG4gICAgY29uc3QgcmVzdWx0OiBUeERhdGEgPSB7XG4gICAgICBpZDogYWNjICsgJ0AnICsgdGltZSxcbiAgICAgIGhhc2g6IHRoaXMuZ2V0VHhIYXNoKCksIC8vIFRPRE86IFVwZGF0ZSBvbmNlIGhlZGVyYS1zZGsgcmVsZWFzZSB0aGlzIGZ1bmN0aW9uYWxpdHkgQkdBLTI4NFxuICAgICAgZGF0YTogdG9IZXgodGhpcy5faGVkZXJhVHguYm9keUJ5dGVzKSxcbiAgICAgIGZlZTogbmV3IEJpZ051bWJlcih0aGlzLl90eEJvZHkudHJhbnNhY3Rpb25GZWUhLnRvU3RyaW5nKCkpLnRvTnVtYmVyKCksXG4gICAgICBmcm9tOiBhY2MsXG4gICAgICBzdGFydFRpbWU6IHRpbWUsXG4gICAgICB2YWxpZER1cmF0aW9uOiB0aGlzLl90eEJvZHkudHJhbnNhY3Rpb25WYWxpZER1cmF0aW9uIS5zZWNvbmRzIS50b1N0cmluZygpLFxuICAgICAgbm9kZTogc3RyaW5naWZ5QWNjb3VudElkKHRoaXMuX3R4Qm9keS5ub2RlQWNjb3VudElEISksXG4gICAgICBtZW1vOiB0aGlzLl90eEJvZHkubWVtbyxcbiAgICB9O1xuXG4gICAgc3dpdGNoICh0aGlzLl90eEJvZHkuZGF0YSkge1xuICAgICAgY2FzZSBIZWRlcmFUcmFuc2FjdGlvblR5cGVzLlRyYW5zZmVyOlxuICAgICAgICByZXN1bHQuaW5zdHJ1Y3Rpb25zRGF0YSA9IHtcbiAgICAgICAgICB0eXBlOiBIZWRlcmFUcmFuc2FjdGlvblR5cGVzLlRyYW5zZmVyLFxuICAgICAgICAgIHBhcmFtczogdGhpcy5nZXRUcmFuc2ZlckRhdGEoKSxcbiAgICAgICAgfTtcbiAgICAgICAgcmVzdWx0LnRvID0gcmVzdWx0Lmluc3RydWN0aW9uc0RhdGEucGFyYW1zLnJlY2lwaWVudHNbMF0uYWRkcmVzcztcbiAgICAgICAgcmVzdWx0LmFtb3VudCA9IHJlc3VsdC5pbnN0cnVjdGlvbnNEYXRhLnBhcmFtcy5yZWNpcGllbnRzWzBdLmFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuVG9rZW5Bc3NvY2lhdGVUb0FjY291bnQ6XG4gICAgICAgIHJlc3VsdC5pbnN0cnVjdGlvbnNEYXRhID0ge1xuICAgICAgICAgIHR5cGU6IEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuVG9rZW5Bc3NvY2lhdGVUb0FjY291bnQsXG4gICAgICAgICAgcGFyYW1zOiB0aGlzLmdldEFjY291bnRBc3NvY2lhdGVEYXRhKCksXG4gICAgICAgIH07XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSByZWNpcGllbnQgYWNjb3VudCBhbmQgdGhlIGFtb3VudFxuICAgKiB0cmFuc2ZlcnJlZCBvbiB0aGlzIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEByZXR1cm5zIHsgdG9rZW5OYW1lLCBSZWNpcGllbnRbXX0gaXMgb2JqZWN0IGNvbnNpc3Rpbmcgb2YgdG9rZW5OYW1lIGlmIGl0J3MgYSB0b2tlbiB0cmFuc2ZlciBhbmQgcmVjaXBpZW50cyBjb25zaXN0aW5nXG4gICAqICB0aGUgcmVjaXBpZW50IGFkZHJlc3MsIHRoZSB0cmFuc2ZlciBhbW91bnQsIGFuZCB0aGUgdG9rZW4gbmFtZSBmb3IgdG9rZW4gdHJhbnNmZXJcbiAgICovXG4gIHByaXZhdGUgZ2V0VHJhbnNmZXJEYXRhKCk6IHsgdG9rZW5OYW1lPzogc3RyaW5nOyByZWNpcGllbnRzOiBSZWNpcGllbnRbXSB9IHtcbiAgICBjb25zdCBbYWNjXSA9IHRoaXMuZ2V0VHhJZFBhcnRzKCk7XG4gICAgY29uc3QgdHJhbnNmZXJEYXRhOiBSZWNpcGllbnRbXSA9IFtdO1xuICAgIGNvbnN0IHRva2VuVHJhbnNmZXJzOiBwcm90by5JVG9rZW5UcmFuc2Zlckxpc3RbXSA9IHRoaXMuX3R4Qm9keS5jcnlwdG9UcmFuc2Zlcj8udG9rZW5UcmFuc2ZlcnMgfHwgW107XG4gICAgY29uc3QgdHJhbnNmZXJzOiBwcm90by5JQWNjb3VudEFtb3VudFtdID1cbiAgICAgIHRva2VuVHJhbnNmZXJzWzBdPy50cmFuc2ZlcnMgfHwgdGhpcy5fdHhCb2R5LmNyeXB0b1RyYW5zZmVyPy50cmFuc2ZlcnM/LmFjY291bnRBbW91bnRzIHx8IFtdO1xuICAgIGNvbnN0IHRva2VuTmFtZSA9IHRva2VuVHJhbnNmZXJzLmxlbmd0aFxuICAgICAgPyBnZXRIZWRlcmFUb2tlbk5hbWVGcm9tSWQoc3RyaW5naWZ5VG9rZW5JZCh0b2tlblRyYW5zZmVyc1swXS50b2tlbiEpKT8ubmFtZVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICB0cmFuc2ZlcnMuZm9yRWFjaCgodHJhbnNmZXIpID0+IHtcbiAgICAgIGNvbnN0IGFtb3VudCA9IExvbmcuZnJvbVZhbHVlKHRyYW5zZmVyLmFtb3VudCEpO1xuICAgICAgaWYgKGFtb3VudC5pc1Bvc2l0aXZlKCkgJiYgc3RyaW5naWZ5QWNjb3VudElkKHRyYW5zZmVyLmFjY291bnRJRCEpICE9PSBhY2MpIHtcbiAgICAgICAgdHJhbnNmZXJEYXRhLnB1c2goe1xuICAgICAgICAgIGFkZHJlc3M6IHN0cmluZ2lmeUFjY291bnRJZCh0cmFuc2Zlci5hY2NvdW50SUQhKSxcbiAgICAgICAgICBhbW91bnQ6IGFtb3VudC50b1N0cmluZygpLFxuICAgICAgICAgIC4uLih0b2tlblRyYW5zZmVycy5sZW5ndGggJiYge1xuICAgICAgICAgICAgdG9rZW5OYW1lOiB0b2tlbk5hbWUsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLih0b2tlblRyYW5zZmVycy5sZW5ndGggJiYge1xuICAgICAgICB0b2tlbk5hbWU6IHRva2VuTmFtZSxcbiAgICAgIH0pLFxuICAgICAgcmVjaXBpZW50czogdHJhbnNmZXJEYXRhLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSByZWNpcGllbnQgYWNjb3VudCBhbmQgdGhlIGFtb3VudFxuICAgKiB0cmFuc2ZlcnJlZCBvbiB0aGlzIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEByZXR1cm5zIHsgYWNjb3VudElkOiBzdHJpbmc7IHRva2VuTmFtZXNbXX0gaXMgYW4gb2JqZWN0IGNvbnNpc3Rpbmcgb2YgYWNjb3VudElkIGZvciB0aGUgdG9rZW4gb3duZXJcbiAgICogIGFuZCBsaXN0IG9mIHRva2VuTmFtZXMgdGhhdCB3aWxsIGJlIGVuYWJsZWRcbiAgICovXG4gIHByaXZhdGUgZ2V0QWNjb3VudEFzc29jaWF0ZURhdGEoKTogeyBhY2NvdW50SWQ6IHN0cmluZzsgdG9rZW5OYW1lczogc3RyaW5nW10gfSB7XG4gICAgY29uc3QgdG9rZW5zOiBwcm90by5JVG9rZW5JRFtdID0gdGhpcy5fdHhCb2R5LnRva2VuQXNzb2NpYXRlIS50b2tlbnMgfHwgW107XG4gICAgcmV0dXJuIHtcbiAgICAgIGFjY291bnRJZDogc3RyaW5naWZ5QWNjb3VudElkKHRoaXMuX3R4Qm9keS50b2tlbkFzc29jaWF0ZSEuYWNjb3VudCEpLFxuICAgICAgdG9rZW5OYW1lczogdG9rZW5zLm1hcCgodG9rZW46IHByb3RvLklUb2tlbklEKSA9PiBnZXRIZWRlcmFUb2tlbk5hbWVGcm9tSWQoc3RyaW5naWZ5VG9rZW5JZCh0b2tlbikpIS5uYW1lKSxcbiAgICB9O1xuICB9XG5cbiAgLy8gcmVnaW9uIGdldHRlcnMgJiBzZXR0ZXJzXG4gIGdldCB0eEJvZHkoKTogcHJvdG8uVHJhbnNhY3Rpb25Cb2R5IHtcbiAgICByZXR1cm4gdGhpcy5fdHhCb2R5O1xuICB9XG5cbiAgZ2V0IGhlZGVyYVR4KCk6IHByb3RvLlRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5faGVkZXJhVHg7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGlzIHRyYW5zYWN0aW9uIGJvZHkgY29tcG9uZW50c1xuICAgKlxuICAgKiBAcGFyYW0ge3Byb3RvLlRyYW5zYWN0aW9ufSB0eCAtIEJvZHkgVHJhbnNhY3Rpb25cbiAgICovXG4gIGJvZHkodHg6IHByb3RvLlRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fdHhCb2R5ID0gcHJvdG8uVHJhbnNhY3Rpb25Cb2R5LmRlY29kZSh0eC5ib2R5Qnl0ZXMpO1xuICAgIHRoaXMuX2hlZGVyYVR4ID0gdHg7XG4gICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdHlwZVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uVHlwZX0gdHJhbnNhY3Rpb25UeXBlIC0gVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0XG4gICAqL1xuICBzZXRUcmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvblR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlY29kZSBwcmV2aW91cyBzaWduYXR1cmVzIGZyb20gdGhlIGlubmVyIGhlZGVyYSB0cmFuc2FjdGlvblxuICAgKiBhbmQgc2F2ZSB0aGVtIGludG8gdGhlIGJhc2UgdHJhbnNhY3Rpb24gc2lnbmF0dXJlIGxpc3QuXG4gICAqL1xuICBsb2FkUHJldmlvdXNTaWduYXR1cmVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9oZWRlcmFUeC5zaWdNYXAgJiYgdGhpcy5faGVkZXJhVHguc2lnTWFwLnNpZ1BhaXIpIHtcbiAgICAgIGNvbnN0IHNpZ1BhaXJzID0gdGhpcy5faGVkZXJhVHguc2lnTWFwLnNpZ1BhaXI7XG4gICAgICBzaWdQYWlycy5mb3JFYWNoKChzaWdQYWlyKSA9PiB7XG4gICAgICAgIGNvbnN0IHNpZ25hdHVyZSA9IHNpZ1BhaXIuZWQyNTUxOTtcbiAgICAgICAgaWYgKHNpZ25hdHVyZSkge1xuICAgICAgICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaCh0b0hleChzaWduYXR1cmUpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIGlucHV0IGFuZCBvdXRwdXQgZGF0YSBvbiB0aGlzIHRyYW5zYWN0aW9uIHVzaW5nIHRoZSB0cmFuc2FjdGlvbiBqc29uXG4gICAqIGlmIHRoZXJlIGFyZSBvdXRwdXRzLiBGb3IgdHJhbnNhY3Rpb25zIHdpdGhvdXQgb3V0cHV0cyAoZS5nLiB3YWxsZXQgaW5pdGlhbGl6YXRpb25zKSxcbiAgICogdGhpcyBmdW5jdGlvbiB3aWxsIG5vdCBkbyBhbnl0aGluZ1xuICAgKi9cbiAgbG9hZElucHV0c0FuZE91dHB1dHMoKTogdm9pZCB7XG4gICAgY29uc3QgdHhKc29uID0gdGhpcy50b0pzb24oKTtcbiAgICBjb25zdCBpbnN0cnVjdGlvbiA9IHR4SnNvbi5pbnN0cnVjdGlvbnNEYXRhO1xuICAgIGNvbnN0IG91dHB1dHM6IEVudHJ5W10gPSBbXTtcbiAgICBjb25zdCBpbnB1dHM6IEVudHJ5W10gPSBbXTtcblxuICAgIHN3aXRjaCAoaW5zdHJ1Y3Rpb24/LnR5cGUpIHtcbiAgICAgIGNhc2UgSGVkZXJhVHJhbnNhY3Rpb25UeXBlcy5UcmFuc2ZlcjpcbiAgICAgICAgbGV0IHRvdGFsQW1vdW50ID0gbmV3IEJpZ051bWJlcigwKTtcbiAgICAgICAgaW5zdHJ1Y3Rpb24ucGFyYW1zLnJlY2lwaWVudHMuZm9yRWFjaCgocmVjaXBpZW50KSA9PiB7XG4gICAgICAgICAgdG90YWxBbW91bnQgPSB0b3RhbEFtb3VudC5wbHVzKHJlY2lwaWVudC5hbW91bnQpO1xuICAgICAgICAgIG91dHB1dHMucHVzaCh7XG4gICAgICAgICAgICBhZGRyZXNzOiByZWNpcGllbnQuYWRkcmVzcyxcbiAgICAgICAgICAgIHZhbHVlOiByZWNpcGllbnQuYW1vdW50LFxuICAgICAgICAgICAgY29pbjogcmVjaXBpZW50LnRva2VuTmFtZSB8fCB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpbnB1dHMucHVzaCh7XG4gICAgICAgICAgYWRkcmVzczogdHhKc29uLmZyb20sXG4gICAgICAgICAgdmFsdWU6IHRvdGFsQW1vdW50LnRvU3RyaW5nKCksXG4gICAgICAgICAgY29pbjogaW5zdHJ1Y3Rpb24ucGFyYW1zLnRva2VuTmFtZSB8fCB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBIZWRlcmFUcmFuc2FjdGlvblR5cGVzLlRva2VuQXNzb2NpYXRlVG9BY2NvdW50OlxuICAgICAgICBpbnN0cnVjdGlvbi5wYXJhbXMudG9rZW5OYW1lcy5mb3JFYWNoKCh0b2tlbk5hbWUpID0+IHtcbiAgICAgICAgICBjb25zdCB0b2tlbkVudHJ5OiBFbnRyeSA9IHtcbiAgICAgICAgICAgIGFkZHJlc3M6IGluc3RydWN0aW9uLnBhcmFtcy5hY2NvdW50SWQsXG4gICAgICAgICAgICB2YWx1ZTogJzAnLFxuICAgICAgICAgICAgY29pbjogdG9rZW5OYW1lLFxuICAgICAgICAgIH07XG4gICAgICAgICAgaW5wdXRzLnB1c2godG9rZW5FbnRyeSk7XG4gICAgICAgICAgb3V0cHV0cy5wdXNoKHRva2VuRW50cnkpO1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMuX2lucHV0cyA9IGlucHV0cztcbiAgICB0aGlzLl9vdXRwdXRzID0gb3V0cHV0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoaXMgdHJhbnNhY3Rpb24gYm9keSBjb21wb25lbnRzXG4gICAqXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0gYnl0ZXMgLSBFbmNvZGVkIGJvZHkgdHJhbnNhY3Rpb25cbiAgICovXG4gIGJvZHlCeXRlcyhieXRlczogVWludDhBcnJheSk6IHZvaWQge1xuICAgIHRoaXMuYm9keShwcm90by5UcmFuc2FjdGlvbi5kZWNvZGUoYnl0ZXMpKTtcbiAgfVxuICAvLyBlbmRyZWdpb25cblxuICAvLyByZWdpb24gaGVscGVyc1xuICAvKipcbiAgICogUmV0dXJucyB0aGlzIGhlZGVyYSB0cmFuc2FjdGlvbiBpZCBjb21wb25lbnRzIGluIGEgcmVhZGFibGUgZm9ybWF0XG4gICAqXG4gICAqIEByZXR1cm5zIHtbc3RyaW5nLCBzdHJpbmddfSAtIFRyYW5zYWN0aW9uIGlkIHBhcnRzIFs8YWNjb3VudCBpZD4sIDxzdGFydFRpbWUgaW4gc2Vjb25kcz5dXG4gICAqL1xuICBnZXRUeElkUGFydHMoKTogW3N0cmluZywgc3RyaW5nXSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5fdHhCb2R5ICYmXG4gICAgICB0aGlzLl90eEJvZHkudHJhbnNhY3Rpb25JRCAmJlxuICAgICAgdGhpcy5fdHhCb2R5LnRyYW5zYWN0aW9uSUQuYWNjb3VudElEICYmXG4gICAgICB0aGlzLl90eEJvZHkudHJhbnNhY3Rpb25JRC50cmFuc2FjdGlvblZhbGlkU3RhcnRcbiAgICApIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHN0cmluZ2lmeUFjY291bnRJZCh0aGlzLl90eEJvZHkudHJhbnNhY3Rpb25JRC5hY2NvdW50SUQpLFxuICAgICAgICBzdHJpbmdpZnlUeFRpbWUodGhpcy5fdHhCb2R5LnRyYW5zYWN0aW9uSUQudHJhbnNhY3Rpb25WYWxpZFN0YXJ0KSxcbiAgICAgIF07XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyB0cmFuc2FjdGlvbiBpZCBpbmZvcm1hdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhpcyB0cmFuc2FjdGlvbiBoYXNoXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIHRyYW5zYWN0aW9uIGhhc2hcbiAgICovXG4gIGdldFR4SGFzaCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fdHhCb2R5Lm5vZGVBY2NvdW50SUQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyB0cmFuc2FjdGlvbiBub2RlIGlkJyk7XG4gICAgfVxuICAgIGNvbnN0IF9zaWduZWRUeCA9IG5ldyBwcm90by5TaWduZWRUcmFuc2FjdGlvbigpO1xuICAgIF9zaWduZWRUeC5zaWdNYXAgPSB0aGlzLl9oZWRlcmFUeC5zaWdNYXA7XG4gICAgX3NpZ25lZFR4LmJvZHlCeXRlcyA9IHRoaXMuX2hlZGVyYVR4LmJvZHlCeXRlcztcblxuICAgIGNvbnN0IGVuY29kZXIgPSBwcm90by5TaWduZWRUcmFuc2FjdGlvbjtcbiAgICByZXR1cm4gdGhpcy5zaGEodGhpcy5lbmNvZGUoX3NpZ25lZFR4LCBlbmNvZGVyKSk7XG4gIH1cblxuICAvKipcbiAgICogRW5jb2RlIGFuIG9iamVjdCB1c2luZyB0aGUgZ2l2ZW4gZW5jb2RlciBjbGFzc1xuICAgKlxuICAgKiBAcGFyYW0ge3Byb3RvfSBvYmogLSBUaGUgb2JqZWN0IHRvIGJlIGVuY29kZWQsIG11c3QgYmUgaW4gcHJvdG8gbmFtZXNwYWNlXG4gICAqIEBwYXJhbSBlbmNvZGVyIC0gT2JqZWN0IGVuY29kZXJcbiAgICogQHJldHVybnMge1VpbnQ4QXJyYXl9IC0gRW5jb2RlZCBvYmplY3QgYnl0ZSBhcnJheVxuICAgKi9cbiAgcHJpdmF0ZSBlbmNvZGU8Q3RvckZuIGV4dGVuZHMgeyBuZXcgKCk6IFQgfSwgVCBleHRlbmRzIHsgY29uc3RydWN0b3I6IEN0b3JGbiB9PihcbiAgICBvYmo6IFQsXG4gICAgZW5jb2RlcjogeyBlbmNvZGUoYXJnOiBUKTogV3JpdGVyIH1cbiAgKTogVWludDhBcnJheSB7XG4gICAgcmV0dXJuIGVuY29kZXIuZW5jb2RlKG9iaikuZmluaXNoKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHNoYS0zODQgaGFzaFxuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGJ5dGVzIC0gQnl0ZXMgdG8gYmUgaGFzaGVkXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIHJlc3VsdGluZyBoYXNoIHN0cmluZ1xuICAgKi9cbiAgc2hhKGJ5dGVzOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdG9IZXgoaGFzaChieXRlcykpO1xuICB9XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
2
  import BigNumber from 'bignumber.js';
3
- import * as proto from '@hashgraph/proto';
3
+ import { proto } from '@hashgraph/proto';
4
4
  import { BaseAddress, BaseFee, BaseKey, BaseTransactionBuilder } from '@bitgo-beta/sdk-core';
5
5
  import { Transaction } from './transaction';
6
6
  import { KeyPair } from './keyPair';
@@ -1 +1 @@
1
- {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
25
25
  exports.TransactionBuilder = void 0;
26
26
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
27
27
  const Long = __importStar(require("long"));
28
- const proto = __importStar(require("@hashgraph/proto"));
28
+ const proto_1 = require("@hashgraph/proto");
29
29
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
30
30
  const transaction_1 = require("./transaction");
31
31
  const utils_1 = require("./utils");
@@ -34,8 +34,8 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
34
34
  constructor(_coinConfig) {
35
35
  super(_coinConfig);
36
36
  this._node = { nodeId: '0.0.4' };
37
- this._duration = new proto.Duration({ seconds: Long.fromNumber(120) });
38
- this._txBody = new proto.TransactionBody();
37
+ this._duration = new proto_1.proto.Duration({ seconds: Long.fromNumber(120) });
38
+ this._txBody = new proto_1.proto.TransactionBody();
39
39
  this._txBody.transactionValidDuration = this._duration;
40
40
  this._multiSignerKeyPairs = [];
41
41
  this._signatures = [];
@@ -48,8 +48,8 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
48
48
  this._txBody.transactionFee = Long.fromString(this._fee.fee);
49
49
  this._txBody.transactionID = this.buildTxId();
50
50
  this._txBody.memo = this._memo;
51
- const hTransaction = this.transaction.hederaTx || new proto.Transaction();
52
- hTransaction.bodyBytes = proto.TransactionBody.encode(this._txBody).finish();
51
+ const hTransaction = this.transaction.hederaTx || new proto_1.proto.Transaction();
52
+ hTransaction.bodyBytes = proto_1.proto.TransactionBody.encode(this._txBody).finish();
53
53
  this.transaction.body(hTransaction);
54
54
  for (const kp of this._multiSignerKeyPairs) {
55
55
  await this.transaction.sign(kp);
@@ -100,7 +100,7 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
100
100
  * @returns {proto.TransactionID} - Created TransactionID
101
101
  */
102
102
  buildTxId() {
103
- return new proto.TransactionID({
103
+ return new proto_1.proto.TransactionID({
104
104
  transactionValidStart: this.validStart,
105
105
  accountID: utils_1.buildHederaAccountID(this._source.address),
106
106
  });
@@ -141,7 +141,7 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
141
141
  */
142
142
  validDuration(validDuration) {
143
143
  this.validateValue(new bignumber_js_1.default(validDuration));
144
- this._duration = new proto.Duration({ seconds: Long.fromNumber(validDuration) });
144
+ this._duration = new proto_1.proto.Duration({ seconds: Long.fromNumber(validDuration) });
145
145
  return this;
146
146
  }
147
147
  /**
@@ -267,4 +267,4 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
267
267
  }
268
268
  }
269
269
  exports.TransactionBuilder = TransactionBuilder;
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLGdFQUFxQztBQUNyQywyQ0FBNkI7QUFDN0Isd0RBQTBDO0FBQzFDLG1EQVM4QjtBQUM5QiwrQ0FBNEM7QUFDNUMsbUNBTWlCO0FBQ2pCLHVDQUFvQztBQUdwQyxNQUFzQixrQkFBbUIsU0FBUSxpQ0FBc0I7SUFZckUsWUFBc0IsV0FBaUM7UUFDckQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBTlgsVUFBSyxHQUFlLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLGNBQVMsR0FBbUIsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBTTFGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHlCQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLDRCQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQy9CLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxJQUFJLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFFLFlBQVksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLEtBQUssTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDakM7UUFDRCxLQUFLLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyRCxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDbkQ7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLGNBQW1DO1FBQzlELE1BQU0sRUFBRSxHQUFHLElBQUkseUJBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsR0FBWTtRQUN2QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxpQkFBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRTdDLGlGQUFpRjtRQUNqRiw0RUFBNEU7UUFDNUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsRUFBZTtRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxzQkFBUyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLElBQUksTUFBTSxDQUFDLElBQUksRUFBRTtZQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxTQUFTO1FBQ2pCLE9BQU8sSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDO1lBQzdCLHFCQUFxQixFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ3RDLFNBQVMsRUFBRSw0QkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztTQUN0RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsWUFBWTtJQUVaLGdDQUFnQztJQUNoQzs7Ozs7T0FLRztJQUNILElBQUksQ0FBQyxJQUFZO1FBQ2YsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDbEMsTUFBTSxJQUFJLHFDQUEwQixDQUFDLHdDQUF3QyxDQUFDLENBQUM7U0FDaEY7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksQ0FBQyxJQUFnQjtRQUNuQixJQUFJLENBQUMsc0JBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDaEMsTUFBTSxJQUFJLHFDQUEwQixDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FDckU7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxhQUFxQjtRQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksc0JBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsR0FBRyxDQUFDLEdBQVk7UUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNoQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxPQUFvQjtRQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFNBQVMsQ0FBQyxTQUFpQixFQUFFLE9BQWdCO1FBQzNDLG1FQUFtRTtRQUNuRSxLQUFLLE1BQU0sWUFBWSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDM0MsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFO2dCQUNoRSxZQUFZLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztnQkFDbkMsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBRUQsa0NBQWtDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsSUFBWTtRQUNwQixJQUFJLENBQUMseUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUIsTUFBTSxJQUFJLHFDQUEwQixDQUFDLGtDQUFrQyxDQUFDLENBQUM7U0FDMUU7UUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxzQkFBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxZQUFZO0lBRVosNkJBQTZCO0lBQzdCLElBQVksVUFBVTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLHNCQUFjLEVBQUUsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBYyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQWMsV0FBVyxDQUFDLFdBQXdCO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxZQUFZO0lBRVosb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixlQUFlLENBQUMsT0FBb0IsRUFBRSxhQUFzQjtRQUMxRCxJQUFJLENBQUMsc0JBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDcEMsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN2RTtJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsV0FBVyxDQUFDLEdBQVk7UUFDdEIsSUFBSSxDQUFDLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRTtZQUNsQyxNQUFNLElBQUksZ0NBQXFCLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHNCQUFzQixDQUFDLGNBQW1CO1FBQ3hDLElBQUksQ0FBQyxtQ0FBMkIsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNoRCxNQUFNLElBQUksZ0NBQXFCLENBQUMseUJBQXlCLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsbUJBQW1CLENBQUMsV0FBeUI7UUFDM0MsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixhQUFhLENBQUMsS0FBZ0I7UUFDNUIsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQ25FO0lBQ0gsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzNCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1NBQ3JFO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUM5QixNQUFNLElBQUksZ0NBQXFCLENBQUMscUNBQXFDLENBQUMsQ0FBQztTQUN4RTtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssbUJBQW1CLENBQUMsR0FBWTtRQUN0QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDbkQsSUFBSSxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQzVDLE1BQU0sSUFBSSx1QkFBWSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNyRDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUVGO0FBN1FELGdEQTZRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCAqIGFzIExvbmcgZnJvbSAnbG9uZyc7XG5pbXBvcnQgKiBhcyBwcm90byBmcm9tICdAaGFzaGdyYXBoL3Byb3RvJztcbmltcG9ydCB7XG4gIEJhc2VBZGRyZXNzLFxuICBCYXNlRmVlLFxuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsXG4gIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIFNpZ25pbmdFcnJvcixcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7XG4gIGJ1aWxkSGVkZXJhQWNjb3VudElELFxuICBnZXRDdXJyZW50VGltZSxcbiAgaXNWYWxpZEFkZHJlc3MsXG4gIGlzVmFsaWRSYXdUcmFuc2FjdGlvbkZvcm1hdCxcbiAgaXNWYWxpZFRpbWVTdHJpbmcsXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5pbXBvcnQgeyBIZWRlcmFOb2RlLCBTaWduYXR1cmVEYXRhIH0gZnJvbSAnLi9pZmFjZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9mZWU6IEJhc2VGZWU7XG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbjtcbiAgcHJvdGVjdGVkIF9zb3VyY2U6IEJhc2VBZGRyZXNzO1xuICBwcm90ZWN0ZWQgX3N0YXJ0VGltZTogcHJvdG8uSVRpbWVzdGFtcDtcbiAgcHJvdGVjdGVkIF9tZW1vOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfdHhCb2R5OiBwcm90by5UcmFuc2FjdGlvbkJvZHk7XG4gIHByb3RlY3RlZCBfbm9kZTogSGVkZXJhTm9kZSA9IHsgbm9kZUlkOiAnMC4wLjQnIH07XG4gIHByb3RlY3RlZCBfZHVyYXRpb246IHByb3RvLkR1cmF0aW9uID0gbmV3IHByb3RvLkR1cmF0aW9uKHsgc2Vjb25kczogTG9uZy5mcm9tTnVtYmVyKDEyMCkgfSk7XG4gIHByb3RlY3RlZCBfbXVsdGlTaWduZXJLZXlQYWlyczogS2V5UGFpcltdO1xuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZXM6IFNpZ25hdHVyZURhdGFbXTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3R4Qm9keSA9IG5ldyBwcm90by5UcmFuc2FjdGlvbkJvZHkoKTtcbiAgICB0aGlzLl90eEJvZHkudHJhbnNhY3Rpb25WYWxpZER1cmF0aW9uID0gdGhpcy5fZHVyYXRpb247XG4gICAgdGhpcy5fbXVsdGlTaWduZXJLZXlQYWlycyA9IFtdO1xuICAgIHRoaXMuX3NpZ25hdHVyZXMgPSBbXTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8vIHJlZ2lvbiBCYXNlIEJ1aWxkZXJcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLl90eEJvZHkubm9kZUFjY291bnRJRCA9IGJ1aWxkSGVkZXJhQWNjb3VudElEKHRoaXMuX25vZGUubm9kZUlkKTtcbiAgICB0aGlzLl90eEJvZHkudHJhbnNhY3Rpb25GZWUgPSBMb25nLmZyb21TdHJpbmcodGhpcy5fZmVlLmZlZSk7XG4gICAgdGhpcy5fdHhCb2R5LnRyYW5zYWN0aW9uSUQgPSB0aGlzLmJ1aWxkVHhJZCgpO1xuICAgIHRoaXMuX3R4Qm9keS5tZW1vID0gdGhpcy5fbWVtbztcbiAgICBjb25zdCBoVHJhbnNhY3Rpb24gPSB0aGlzLnRyYW5zYWN0aW9uLmhlZGVyYVR4IHx8IG5ldyBwcm90by5UcmFuc2FjdGlvbigpO1xuICAgIGhUcmFuc2FjdGlvbi5ib2R5Qnl0ZXMgPSBwcm90by5UcmFuc2FjdGlvbkJvZHkuZW5jb2RlKHRoaXMuX3R4Qm9keSkuZmluaXNoKCk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5ib2R5KGhUcmFuc2FjdGlvbik7XG4gICAgZm9yIChjb25zdCBrcCBvZiB0aGlzLl9tdWx0aVNpZ25lcktleVBhaXJzKSB7XG4gICAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uLnNpZ24oa3ApO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHsgc2lnbmF0dXJlLCBrZXlQYWlyIH0gb2YgdGhpcy5fc2lnbmF0dXJlcykge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5hZGRTaWduYXR1cmUoc2lnbmF0dXJlLCBrZXlQYWlyKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogVWludDhBcnJheSB8IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICB0aGlzLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHR4LmZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdGhpcy5pbml0QnVpbGRlcih0eCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhpcy5jaGVja0R1cGxpY2F0ZWRLZXlzKGtleSk7XG4gICAgY29uc3Qgc2lnbmVyID0gbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG5cbiAgICAvLyBTaWduaW5nIHRoZSB0cmFuc2FjdGlvbiBpcyBhbiBvcGVyYXRpb24gdGhhdCByZWxpZXMgb24gYWxsIHRoZSBkYXRhIGJlaW5nIHNldCxcbiAgICAvLyBzbyB3ZSBzZXQgdGhlIHNvdXJjZSBoZXJlIGFuZCBsZWF2ZSB0aGUgYWN0dWFsIHNpZ25pbmcgZm9yIHRoZSBidWlsZCBzdGVwXG4gICAgdGhpcy5fbXVsdGlTaWduZXJLZXlQYWlycy5wdXNoKHNpZ25lcik7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlciBmaWVsZHMgdXNpbmcgdGhlIGRlY29kZWQgdHJhbnNhY3Rpb24gZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0eCAtIHRoZSB0cmFuc2FjdGlvbiBkYXRhXG4gICAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uID0gdHg7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5sb2FkUHJldmlvdXNTaWduYXR1cmVzKCk7XG4gICAgY29uc3QgdHhEYXRhID0gdHgudG9Kc29uKCk7XG4gICAgdGhpcy5mZWUoeyBmZWU6IHR4RGF0YS5mZWUudG9TdHJpbmcoKSB9KTtcbiAgICB0aGlzLnNvdXJjZSh7IGFkZHJlc3M6IHR4RGF0YS5mcm9tIH0pO1xuICAgIHRoaXMuc3RhcnRUaW1lKHR4RGF0YS5zdGFydFRpbWUpO1xuICAgIHRoaXMubm9kZSh7IG5vZGVJZDogdHhEYXRhLm5vZGUgfSk7XG4gICAgdGhpcy52YWxpZER1cmF0aW9uKG5ldyBCaWdOdW1iZXIodHhEYXRhLnZhbGlkRHVyYXRpb24pLnRvTnVtYmVyKCkpO1xuICAgIGlmICh0eERhdGEubWVtbykge1xuICAgICAgdGhpcy5tZW1vKHR4RGF0YS5tZW1vKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEhlZGVyYSBUcmFuc2FjdGlvbklEXG4gICAqXG4gICAqIEByZXR1cm5zIHtwcm90by5UcmFuc2FjdGlvbklEfSAtIENyZWF0ZWQgVHJhbnNhY3Rpb25JRFxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkVHhJZCgpOiBwcm90by5UcmFuc2FjdGlvbklEIHtcbiAgICByZXR1cm4gbmV3IHByb3RvLlRyYW5zYWN0aW9uSUQoe1xuICAgICAgdHJhbnNhY3Rpb25WYWxpZFN0YXJ0OiB0aGlzLnZhbGlkU3RhcnQsXG4gICAgICBhY2NvdW50SUQ6IGJ1aWxkSGVkZXJhQWNjb3VudElEKHRoaXMuX3NvdXJjZS5hZGRyZXNzKSxcbiAgICB9KTtcbiAgfVxuICAvLyBlbmRyZWdpb25cblxuICAvLyByZWdpb24gQ29tbW9uIGJ1aWxkZXIgbWV0aG9kc1xuICAvKipcbiAgICogIFNldCB0aGUgbWVtb1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVtbyAtIEEgaGVkZXJhIG1lbW8sIGNhbiBiZSBhIG1heGltdW0gb2YgMTAwIGJ5dGVzXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IC0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBtZW1vKG1lbW86IHN0cmluZyk6IHRoaXMge1xuICAgIGlmIChCdWZmZXIuZnJvbShtZW1vKS5sZW5ndGggPiAxMDApIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignTWVtbyBtdXN0IG5vdCBiZSBsb25nZXIgdGhhbiAxMDAgYnl0ZXMnKTtcbiAgICB9XG4gICAgdGhpcy5fbWVtbyA9IG1lbW87XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogIFNldCB0aGUgbm9kZSwgaXQgbWF5IHRha2UgdGhlIGZvcm1hdCBgJzxzaGFyZD4uPHJlYWxtPi48YWNjb3VudD4nYCBvciBgJzxhY2NvdW50PidgXG4gICAqXG4gICAqIEBwYXJhbSB7SGVkZXJhTm9kZX0gbm9kZSAtIEEgaGVkZXJhIG5vZGUgYWRkcmVzc1xuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSAtIFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgbm9kZShub2RlOiBIZWRlcmFOb2RlKTogdGhpcyB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhub2RlLm5vZGVJZCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBIZWRlcmEgbm9kZSBhZGRyZXNzJyk7XG4gICAgfVxuICAgIHRoaXMuX25vZGUgPSBub2RlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdmFsaWQgZHVyYXRpb25cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHZhbGlkRHVyYXRpb24gLSBUaGUgdHJhbnNhY3Rpb24gdmFsaWQgZHVyYXRpb24gaW4gc2Vjb25kc1xuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSAtIFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgdmFsaWREdXJhdGlvbih2YWxpZER1cmF0aW9uOiBudW1iZXIpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcih2YWxpZER1cmF0aW9uKSk7XG4gICAgdGhpcy5fZHVyYXRpb24gPSBuZXcgcHJvdG8uRHVyYXRpb24oeyBzZWNvbmRzOiBMb25nLmZyb21OdW1iZXIodmFsaWREdXJhdGlvbikgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiBmZWVzXG4gICAqXG4gICAqIEBwYXJhbSB7QmFzZUZlZX0gZmVlIC0gVGhlIG1heGltdW0gZ2FzIHRvIHBheVxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSAtIFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgZmVlKGZlZTogQmFzZUZlZSk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKGZlZS5mZWUpKTtcbiAgICB0aGlzLl9mZWUgPSBmZWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiBzb3VyY2VcbiAgICpcbiAgICogQHBhcmFtIHtCYXNlQWRkcmVzc30gYWRkcmVzcyAtIFRoZSBzb3VyY2UgYWNjb3VudFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSAtIFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgc291cmNlKGFkZHJlc3M6IEJhc2VBZGRyZXNzKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoYWRkcmVzcyk7XG4gICAgdGhpcy5fc291cmNlID0gYWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYW4gZXh0ZXJuYWwgdHJhbnNhY3Rpb24gc2lnbmF0dXJlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzaWduYXR1cmUgLSBIZXggZW5jb2RlZCBzaWduYXR1cmUgc3RyaW5nXG4gICAqIEBwYXJhbSB7S2V5UGFpcn0ga2V5UGFpciAtIFRoZSBwdWJsaWMga2V5IGtleXBhaXIgdGhhdCB3YXMgdXNlZCB0byBjcmVhdGUgdGhlIHNpZ25hdHVyZVxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSAtIFRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHNpZ25hdHVyZShzaWduYXR1cmU6IHN0cmluZywga2V5UGFpcjogS2V5UGFpcik6IHRoaXMge1xuICAgIC8vIGlmIHdlIGFscmVhZHkgaGF2ZSBhIHNpZ25hdHVyZSBmb3IgdGhpcyBrZXkgcGFpciwganVzdCB1cGRhdGUgaXRcbiAgICBmb3IgKGNvbnN0IG9sZFNpZ25hdHVyZSBvZiB0aGlzLl9zaWduYXR1cmVzKSB7XG4gICAgICBpZiAob2xkU2lnbmF0dXJlLmtleVBhaXIuZ2V0S2V5cygpLnB1YiA9PT0ga2V5UGFpci5nZXRLZXlzKCkucHViKSB7XG4gICAgICAgIG9sZFNpZ25hdHVyZS5zaWduYXR1cmUgPSBzaWduYXR1cmU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIG90aGVyd2lzZSBhZGQgdGhlIG5ldyBzaWduYXR1cmVcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goeyBzaWduYXR1cmUsIGtleVBhaXIgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBzdGFydCB0aW1lXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0aW1lIC0gU3RyaW5nIHZhbHVlIG9mIHRoZSB0aW1lIHRvIHNldCB3aXRoIGZvcm1hdCA8c2Vjb25kcz4uPG5hbm9zPlxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSAtIHRoaXNcbiAgICovXG4gIHN0YXJ0VGltZSh0aW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRUaW1lU3RyaW5nKHRpbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgdmFsdWUgZm9yIHRpbWUgcGFyYW1ldGVyJyk7XG4gICAgfVxuICAgIGNvbnN0IHRpbWVQYXJ0cyA9IHRpbWUuc3BsaXQoJy4nKS5tYXAoKHYpID0+IG5ldyBCaWdOdW1iZXIodikudG9OdW1iZXIoKSk7XG4gICAgdGhpcy5fc3RhcnRUaW1lID0geyBzZWNvbmRzOiBMb25nLmZyb21OdW1iZXIodGltZVBhcnRzWzBdKSwgbmFub3M6IHRpbWVQYXJ0c1sxXSB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBHZXR0ZXJzIGFuZCBTZXR0ZXJzXG4gIHByaXZhdGUgZ2V0IHZhbGlkU3RhcnQoKTogcHJvdG8uSVRpbWVzdGFtcCB7XG4gICAgaWYgKCF0aGlzLl9zdGFydFRpbWUpIHtcbiAgICAgIHRoaXMuc3RhcnRUaW1lKGdldEN1cnJlbnRUaW1lKCkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fc3RhcnRUaW1lO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2V0IHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XG4gIH1cbiAgLy8gZW5kcmVnaW9uXG5cbiAgLy8gcmVnaW9uIFZhbGlkYXRvcnNcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBCYXNlQWRkcmVzcywgYWRkcmVzc0Zvcm1hdD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBhZGRyZXNzICcgKyBhZGRyZXNzLmFkZHJlc3MpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUtleShrZXk6IEJhc2VLZXkpOiB2b2lkIHtcbiAgICBpZiAoIW5ldyBLZXlQYWlyKHsgcHJ2OiBrZXkua2V5IH0pKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGtleScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIWlzVmFsaWRSYXdUcmFuc2FjdGlvbkZvcm1hdChyYXdUcmFuc2FjdGlvbikpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24/OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdGVNYW5kYXRvcnlGaWVsZHMoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVZhbHVlKHZhbHVlOiBCaWdOdW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUuaXNMZXNzVGhhbigwKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVmFsdWUgY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvJyk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVNYW5kYXRvcnlGaWVsZHMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2ZlZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIGZlZScpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc291cmNlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3Npbmcgc291cmNlJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGF0IHRoZSBnaXZlbiBrZXkgaXMgbm90IGFscmVhZHkgaW4gdGhpcy5fbXVsdGlTaWduZXJLZXlQYWlyc1xuICAgKlxuICAgKiBAcGFyYW0ge0Jhc2VLZXl9IGtleSAtIFRoZSBrZXkgdG8gY2hlY2tcbiAgICovXG4gIHByaXZhdGUgY2hlY2tEdXBsaWNhdGVkS2V5cyhrZXk6IEJhc2VLZXkpOiB2b2lkIHtcbiAgICB0aGlzLl9tdWx0aVNpZ25lcktleVBhaXJzLmZvckVhY2goKF9zb3VyY2VLZXlQYWlyKSA9PiB7XG4gICAgICBpZiAoX3NvdXJjZUtleVBhaXIuZ2V0S2V5cygpLnBydiA9PT0ga2V5LmtleSkge1xuICAgICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdSZXBlYXRlZCBzaWduOiAnICsga2V5LmtleSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgLy8gZW5kcmVnaW9uXG59XG4iXX0=
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLGdFQUFxQztBQUNyQywyQ0FBNkI7QUFDN0IsNENBQXlDO0FBQ3pDLG1EQVM4QjtBQUM5QiwrQ0FBNEM7QUFDNUMsbUNBTWlCO0FBQ2pCLHVDQUFvQztBQUdwQyxNQUFzQixrQkFBbUIsU0FBUSxpQ0FBc0I7SUFZckUsWUFBc0IsV0FBaUM7UUFDckQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBTlgsVUFBSyxHQUFlLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLGNBQVMsR0FBbUIsSUFBSSxhQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBTTFGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxhQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHlCQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLDRCQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEdBQUcs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IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCAqIGFzIExvbmcgZnJvbSAnbG9uZyc7XG5pbXBvcnQgeyBwcm90byB9IGZyb20gJ0BoYXNoZ3JhcGgvcHJvdG8nO1xuaW1wb3J0IHtcbiAgQmFzZUFkZHJlc3MsXG4gIEJhc2VGZWUsXG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIEJ1aWxkVHJhbnNhY3Rpb25FcnJvcixcbiAgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IsXG4gIFBhcnNlVHJhbnNhY3Rpb25FcnJvcixcbiAgU2lnbmluZ0Vycm9yLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHtcbiAgYnVpbGRIZWRlcmFBY2NvdW50SUQsXG4gIGdldEN1cnJlbnRUaW1lLFxuICBpc1ZhbGlkQWRkcmVzcyxcbiAgaXNWYWxpZFJhd1RyYW5zYWN0aW9uRm9ybWF0LFxuICBpc1ZhbGlkVGltZVN0cmluZyxcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7IEhlZGVyYU5vZGUsIFNpZ25hdHVyZURhdGEgfSBmcm9tICcuL2lmYWNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX2ZlZTogQmFzZUZlZTtcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uO1xuICBwcm90ZWN0ZWQgX3NvdXJjZTogQmFzZUFkZHJlc3M7XG4gIHByb3RlY3RlZCBfc3RhcnRUaW1lOiBwcm90by5JVGltZXN0YW1wO1xuICBwcm90ZWN0ZWQgX21lbW86IHN0cmluZztcbiAgcHJvdGVjdGVkIF90eEJvZHk6IHByb3RvLlRyYW5zYWN0aW9uQm9keTtcbiAgcHJvdGVjdGVkIF9ub2RlOiBIZWRlcmFOb2RlID0geyBub2RlSWQ6ICcwLjAuNCcgfTtcbiAgcHJvdGVjdGVkIF9kdXJhdGlvbjogcHJvdG8uRHVyYXRpb24gPSBuZXcgcHJvdG8uRHVyYXRpb24oeyBzZWNvbmRzOiBMb25nLmZyb21OdW1iZXIoMTIwKSB9KTtcbiAgcHJvdGVjdGVkIF9tdWx0aVNpZ25lcktleVBhaXJzOiBLZXlQYWlyW107XG4gIHByb3RlY3RlZCBfc2lnbmF0dXJlczogU2lnbmF0dXJlRGF0YVtdO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHhCb2R5ID0gbmV3IHByb3RvLlRyYW5zYWN0aW9uQm9keSgpO1xuICAgIHRoaXMuX3R4Qm9keS50cmFuc2FjdGlvblZhbGlkRHVyYXRpb24gPSB0aGlzLl9kdXJhdGlvbjtcbiAgICB0aGlzLl9tdWx0aVNpZ25lcktleVBhaXJzID0gW107XG4gICAgdGhpcy5fc2lnbmF0dXJlcyA9IFtdO1xuICAgIHRoaXMudHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLy8gcmVnaW9uIEJhc2UgQnVpbGRlclxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMuX3R4Qm9keS5ub2RlQWNjb3VudElEID0gYnVpbGRIZWRlcmFBY2NvdW50SUQodGhpcy5fbm9kZS5ub2RlSWQpO1xuICAgIHRoaXMuX3R4Qm9keS50cmFuc2FjdGlvbkZlZSA9IExvbmcuZnJvbVN0cmluZyh0aGlzLl9mZWUuZmVlKTtcbiAgICB0aGlzLl90eEJvZHkudHJhbnNhY3Rpb25JRCA9IHRoaXMuYnVpbGRUeElkKCk7XG4gICAgdGhpcy5fdHhCb2R5Lm1lbW8gPSB0aGlzLl9tZW1vO1xuICAgIGNvbnN0IGhUcmFuc2FjdGlvbiA9IHRoaXMudHJhbnNhY3Rpb24uaGVkZXJhVHggfHwgbmV3IHByb3RvLlRyYW5zYWN0aW9uKCk7XG4gICAgaFRyYW5zYWN0aW9uLmJvZHlCeXRlcyA9IHByb3RvLlRyYW5zYWN0aW9uQm9keS5lbmNvZGUodGhpcy5fdHhCb2R5KS5maW5pc2goKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmJvZHkoaFRyYW5zYWN0aW9uKTtcbiAgICBmb3IgKGNvbnN0IGtwIG9mIHRoaXMuX211bHRpU2lnbmVyS2V5UGFpcnMpIHtcbiAgICAgIGF3YWl0IHRoaXMudHJhbnNhY3Rpb24uc2lnbihrcCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgeyBzaWduYXR1cmUsIGtleVBhaXIgfSBvZiB0aGlzLl9zaWduYXR1cmVzKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLmFkZFNpZ25hdHVyZShzaWduYXR1cmUsIGtleVBhaXIpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBVaW50OEFycmF5IHwgc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLmluaXRCdWlsZGVyKHR4KTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICB0aGlzLmNoZWNrRHVwbGljYXRlZEtleXMoa2V5KTtcbiAgICBjb25zdCBzaWduZXIgPSBuZXcgS2V5UGFpcih7IHBydjoga2V5LmtleSB9KTtcblxuICAgIC8vIFNpZ25pbmcgdGhlIHRyYW5zYWN0aW9uIGlzIGFuIG9wZXJhdGlvbiB0aGF0IHJlbGllcyBvbiBhbGwgdGhlIGRhdGEgYmVpbmcgc2V0LFxuICAgIC8vIHNvIHdlIHNldCB0aGUgc291cmNlIGhlcmUgYW5kIGxlYXZlIHRoZSBhY3R1YWwgc2lnbmluZyBmb3IgdGhlIGJ1aWxkIHN0ZXBcbiAgICB0aGlzLl9tdWx0aVNpZ25lcktleVBhaXJzLnB1c2goc2lnbmVyKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0cmFuc2FjdGlvbiBidWlsZGVyIGZpZWxkcyB1c2luZyB0aGUgZGVjb2RlZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IHR4IC0gdGhlIHRyYW5zYWN0aW9uIGRhdGFcbiAgICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMudHJhbnNhY3Rpb24gPSB0eDtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmxvYWRQcmV2aW91c1NpZ25hdHVyZXMoKTtcbiAgICBjb25zdCB0eERhdGEgPSB0eC50b0pzb24oKTtcbiAgICB0aGlzLmZlZSh7IGZlZTogdHhEYXRhLmZlZS50b1N0cmluZygpIH0pO1xuICAgIHRoaXMuc291cmNlKHsgYWRkcmVzczogdHhEYXRhLmZyb20gfSk7XG4gICAgdGhpcy5zdGFydFRpbWUodHhEYXRhLnN0YXJ0VGltZSk7XG4gICAgdGhpcy5ub2RlKHsgbm9kZUlkOiB0eERhdGEubm9kZSB9KTtcbiAgICB0aGlzLnZhbGlkRHVyYXRpb24obmV3IEJpZ051bWJlcih0eERhdGEudmFsaWREdXJhdGlvbikudG9OdW1iZXIoKSk7XG4gICAgaWYgKHR4RGF0YS5tZW1vKSB7XG4gICAgICB0aGlzLm1lbW8odHhEYXRhLm1lbW8pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgSGVkZXJhIFRyYW5zYWN0aW9uSURcbiAgICpcbiAgICogQHJldHVybnMge3Byb3RvLlRyYW5zYWN0aW9uSUR9IC0gQ3JlYXRlZCBUcmFuc2FjdGlvbklEXG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRUeElkKCk6IHByb3RvLlRyYW5zYWN0aW9uSUQge1xuICAgIHJldHVybiBuZXcgcHJvdG8uVHJhbnNhY3Rpb25JRCh7XG4gICAgICB0cmFuc2FjdGlvblZhbGlkU3RhcnQ6IHRoaXMudmFsaWRTdGFydCxcbiAgICAgIGFjY291bnRJRDogYnVpbGRIZWRlcmFBY2NvdW50SUQodGhpcy5fc291cmNlLmFkZHJlc3MpLFxuICAgIH0pO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBDb21tb24gYnVpbGRlciBtZXRob2RzXG4gIC8qKlxuICAgKiAgU2V0IHRoZSBtZW1vXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZW1vIC0gQSBoZWRlcmEgbWVtbywgY2FuIGJlIGEgbWF4aW11bSBvZiAxMDAgYnl0ZXNcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gLSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIG1lbW8obWVtbzogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKEJ1ZmZlci5mcm9tKG1lbW8pLmxlbmd0aCA+IDEwMCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdNZW1vIG11c3Qgbm90IGJlIGxvbmdlciB0aGFuIDEwMCBieXRlcycpO1xuICAgIH1cbiAgICB0aGlzLl9tZW1vID0gbWVtbztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiAgU2V0IHRoZSBub2RlLCBpdCBtYXkgdGFrZSB0aGUgZm9ybWF0IGAnPHNoYXJkPi48cmVhbG0+LjxhY2NvdW50PidgIG9yIGAnPGFjY291bnQ+J2BcbiAgICpcbiAgICogQHBhcmFtIHtIZWRlcmFOb2RlfSBub2RlIC0gQSBoZWRlcmEgbm9kZSBhZGRyZXNzXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IC0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBub2RlKG5vZGU6IEhlZGVyYU5vZGUpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKG5vZGUubm9kZUlkKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIEhlZGVyYSBub2RlIGFkZHJlc3MnKTtcbiAgICB9XG4gICAgdGhpcy5fbm9kZSA9IG5vZGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiB2YWxpZCBkdXJhdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gdmFsaWREdXJhdGlvbiAtIFRoZSB0cmFuc2FjdGlvbiB2YWxpZCBkdXJhdGlvbiBpbiBzZWNvbmRzXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IC0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICB2YWxpZER1cmF0aW9uKHZhbGlkRHVyYXRpb246IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKHZhbGlkRHVyYXRpb24pKTtcbiAgICB0aGlzLl9kdXJhdGlvbiA9IG5ldyBwcm90by5EdXJhdGlvbih7IHNlY29uZHM6IExvbmcuZnJvbU51bWJlcih2YWxpZER1cmF0aW9uKSB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIGZlZXNcbiAgICpcbiAgICogQHBhcmFtIHtCYXNlRmVlfSBmZWUgLSBUaGUgbWF4aW11bSBnYXMgdG8gcGF5XG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IC0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBmZWUoZmVlOiBCYXNlRmVlKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIoZmVlLmZlZSkpO1xuICAgIHRoaXMuX2ZlZSA9IGZlZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHNvdXJjZVxuICAgKlxuICAgKiBAcGFyYW0ge0Jhc2VBZGRyZXNzfSBhZGRyZXNzIC0gVGhlIHNvdXJjZSBhY2NvdW50XG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IC0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBzb3VyY2UoYWRkcmVzczogQmFzZUFkZHJlc3MpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzKTtcbiAgICB0aGlzLl9zb3VyY2UgPSBhZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhbiBleHRlcm5hbCB0cmFuc2FjdGlvbiBzaWduYXR1cmVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNpZ25hdHVyZSAtIEhleCBlbmNvZGVkIHNpZ25hdHVyZSBzdHJpbmdcbiAgICogQHBhcmFtIHtLZXlQYWlyfSBrZXlQYWlyIC0gVGhlIHB1YmxpYyBrZXkga2V5cGFpciB0aGF0IHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGUgc2lnbmF0dXJlXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IC0gVHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgc2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nLCBrZXlQYWlyOiBLZXlQYWlyKTogdGhpcyB7XG4gICAgLy8gaWYgd2UgYWxyZWFkeSBoYXZlIGEgc2lnbmF0dXJlIGZvciB0aGlzIGtleSBwYWlyLCBqdXN0IHVwZGF0ZSBpdFxuICAgIGZvciAoY29uc3Qgb2xkU2lnbmF0dXJlIG9mIHRoaXMuX3NpZ25hdHVyZXMpIHtcbiAgICAgIGlmIChvbGRTaWduYXR1cmUua2V5UGFpci5nZXRLZXlzKCkucHViID09PSBrZXlQYWlyLmdldEtleXMoKS5wdWIpIHtcbiAgICAgICAgb2xkU2lnbmF0dXJlLnNpZ25hdHVyZSA9IHNpZ25hdHVyZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gb3RoZXJ3aXNlIGFkZCB0aGUgbmV3IHNpZ25hdHVyZVxuICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaCh7IHNpZ25hdHVyZSwga2V5UGFpciB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHN0YXJ0IHRpbWVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRpbWUgLSBTdHJpbmcgdmFsdWUgb2YgdGhlIHRpbWUgdG8gc2V0IHdpdGggZm9ybWF0IDxzZWNvbmRzPi48bmFub3M+XG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IC0gdGhpc1xuICAgKi9cbiAgc3RhcnRUaW1lKHRpbWU6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghaXNWYWxpZFRpbWVTdHJpbmcodGltZSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCB2YWx1ZSBmb3IgdGltZSBwYXJhbWV0ZXInKTtcbiAgICB9XG4gICAgY29uc3QgdGltZVBhcnRzID0gdGltZS5zcGxpdCgnLicpLm1hcCgodikgPT4gbmV3IEJpZ051bWJlcih2KS50b051bWJlcigpKTtcbiAgICB0aGlzLl9zdGFydFRpbWUgPSB7IHNlY29uZHM6IExvbmcuZnJvbU51bWJlcih0aW1lUGFydHNbMF0pLCBuYW5vczogdGltZVBhcnRzWzFdIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLy8gZW5kcmVnaW9uXG5cbiAgLy8gcmVnaW9uIEdldHRlcnMgYW5kIFNldHRlcnNcbiAgcHJpdmF0ZSBnZXQgdmFsaWRTdGFydCgpOiBwcm90by5JVGltZXN0YW1wIHtcbiAgICBpZiAoIXRoaXMuX3N0YXJ0VGltZSkge1xuICAgICAgdGhpcy5zdGFydFRpbWUoZ2V0Q3VycmVudFRpbWUoKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9zdGFydFRpbWU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzZXQgdHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcbiAgfVxuICAvLyBlbmRyZWdpb25cblxuICAvLyByZWdpb24gVmFsaWRhdG9yc1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFkZHJlc3MgJyArIGFkZHJlc3MuYWRkcmVzcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIGlmICghbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQga2V5Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IGFueSk6IHZvaWQge1xuICAgIGlmICghaXNWYWxpZFJhd1RyYW5zYWN0aW9uRm9ybWF0KHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbj86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0ZU1hbmRhdG9yeUZpZWxkcygpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVmFsdWUodmFsdWU6IEJpZ051bWJlcik6IHZvaWQge1xuICAgIGlmICh2YWx1ZS5pc0xlc3NUaGFuKDApKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdWYWx1ZSBjYW5ub3QgYmUgbGVzcyB0aGFuIHplcm8nKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZU1hbmRhdG9yeUZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZmVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgZmVlJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zb3VyY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyBzb3VyY2UnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoYXQgdGhlIGdpdmVuIGtleSBpcyBub3QgYWxyZWFkeSBpbiB0aGlzLl9tdWx0aVNpZ25lcktleVBhaXJzXG4gICAqXG4gICAqIEBwYXJhbSB7QmFzZUtleX0ga2V5IC0gVGhlIGtleSB0byBjaGVja1xuICAgKi9cbiAgcHJpdmF0ZSBjaGVja0R1cGxpY2F0ZWRLZXlzKGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIHRoaXMuX211bHRpU2lnbmVyS2V5UGFpcnMuZm9yRWFjaCgoX3NvdXJjZUtleVBhaXIpID0+IHtcbiAgICAgIGlmIChfc291cmNlS2V5UGFpci5nZXRLZXlzKCkucHJ2ID09PSBrZXkua2V5KSB7XG4gICAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ1JlcGVhdGVkIHNpZ246ICcgKyBrZXkua2V5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICAvLyBlbmRyZWdpb25cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
- import * as proto from '@hashgraph/proto';
2
+ import { proto } from '@hashgraph/proto';
3
3
  import { BaseKey } from '@bitgo-beta/sdk-core';
4
4
  import { Recipient } from './iface';
5
5
  import { TransactionBuilder } from './transactionBuilder';
@@ -1 +1 @@
1
- {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACL,OAAO,EAKR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,6BAA6B,CAAC;IACpE,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC;gBAEvB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAO7C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAK3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAQvD;;;;;OAKG;IACH,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAahC,uBAAuB,IAAI,IAAI;CAOhC"}
1
+ {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EACL,OAAO,EAKR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,6BAA6B,CAAC;IACpE,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC;gBAEvB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAO7C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAK3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAQvD;;;;;OAKG;IACH,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAahC,uBAAuB,IAAI,IAAI;CAOhC"}
@@ -1,26 +1,7 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
2
  Object.defineProperty(exports, "__esModule", { value: true });
22
3
  exports.TransferBuilder = void 0;
23
- const proto = __importStar(require("@hashgraph/proto"));
4
+ const proto_1 = require("@hashgraph/proto");
24
5
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
25
6
  const transactionBuilder_1 = require("./transactionBuilder");
26
7
  const utils_1 = require("./utils");
@@ -28,7 +9,7 @@ const constants_1 = require("./constants");
28
9
  class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
29
10
  constructor(_coinConfig) {
30
11
  super(_coinConfig);
31
- this._txBodyData = new proto.CryptoTransferTransactionBody();
12
+ this._txBodyData = new proto_1.proto.CryptoTransferTransactionBody();
32
13
  this._txBody.cryptoTransfer = this._txBodyData;
33
14
  this._recipients = [];
34
15
  }
@@ -71,4 +52,4 @@ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
71
52
  }
72
53
  }
73
54
  exports.TransferBuilder = TransferBuilder;
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHdEQUEwQztBQUMxQyxtREFNOEI7QUFFOUIsNkRBQTBEO0FBRTFELG1DQUF3RDtBQUN4RCwyQ0FBb0Q7QUFFcEQsTUFBYSxlQUFnQixTQUFRLHVDQUFrQjtJQUlyRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksS0FBSyxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFDN0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLDBCQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUQsT0FBTyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sSUFBSSxpQ0FBcUIsRUFBRTtZQUM3RCxNQUFNLElBQUksdUJBQVksQ0FBQyxlQUFlLEdBQUcsaUNBQXFCLEdBQUcsNEJBQTRCLENBQUMsQ0FBQztTQUNoRztRQUNELE9BQU8sS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCx5QkFBeUI7SUFDekI7Ozs7O09BS0c7SUFDSCxJQUFJLENBQUMsU0FBb0I7UUFDdkIsSUFBSSxDQUFDLHNCQUFjLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsSUFBSSxDQUFDLHFCQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3BDLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsWUFBWTtJQUVaLG9CQUFvQjtJQUNwQix1QkFBdUI7UUFDckIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakMsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDNUU7UUFDRCxLQUFLLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0NBRUY7QUFwREQsMENBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0ICogYXMgcHJvdG8gZnJvbSAnQGhhc2hncmFwaC9wcm90byc7XG5pbXBvcnQge1xuICBCYXNlS2V5LFxuICBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsXG4gIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yLFxuICBTaWduaW5nRXJyb3IsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgUmVjaXBpZW50IH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgaXNWYWxpZEFkZHJlc3MsIGlzVmFsaWRBbW91bnQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IERFRkFVTFRfU0lHTkVSX05VTUJFUiB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zZmVyQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCByZWFkb25seSBfdHhCb2R5RGF0YTogcHJvdG8uQ3J5cHRvVHJhbnNmZXJUcmFuc2FjdGlvbkJvZHk7XG4gIHByb3RlY3RlZCBfcmVjaXBpZW50czogUmVjaXBpZW50W107XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3R4Qm9keURhdGEgPSBuZXcgcHJvdG8uQ3J5cHRvVHJhbnNmZXJUcmFuc2FjdGlvbkJvZHkoKTtcbiAgICB0aGlzLl90eEJvZHkuY3J5cHRvVHJhbnNmZXIgPSB0aGlzLl90eEJvZHlEYXRhO1xuICAgIHRoaXMuX3JlY2lwaWVudHMgPSBbXTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgaWYgKHRoaXMuX211bHRpU2lnbmVyS2V5UGFpcnMubGVuZ3RoID49IERFRkFVTFRfU0lHTkVSX05VTUJFUikge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignQSBtYXhpbXVtIG9mICcgKyBERUZBVUxUX1NJR05FUl9OVU1CRVIgKyAnIGNhbiBzaWduIHRoZSB0cmFuc2FjdGlvbi4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLnNpZ25JbXBsZW1lbnRhdGlvbihrZXkpO1xuICB9XG5cbiAgLy8gcmVnaW9uIFRyYW5zZmVyIGZpZWxkc1xuICAvKipcbiAgICogU2V0IHRoZSByZWNpcGllbnQgdG8gYmUgdHJhbnNmZXJyZWRcbiAgICpcbiAgICogQHBhcmFtIHtSZWNpcGllbnR9IHJlY2lwaWVudCAtIHJlY2lwaWVudCB0byB0cmFuc2ZlciBjb25zaXN0aW5nIGRlc3RpbmF0aW9uIGFkZHJlc3MgYW5kIGFtb3VudFxuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJCdWlsZGVyfSAtIFRoZSBidWlsZGVyIHdpdGggdGhlIG5ldyBwYXJhbWV0ZXIgc2V0XG4gICAqL1xuICBzZW5kKHJlY2lwaWVudDogUmVjaXBpZW50KTogdGhpcyB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhyZWNpcGllbnQuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBhZGRyZXNzJyk7XG4gICAgfVxuICAgIGlmICghaXNWYWxpZEFtb3VudChyZWNpcGllbnQuYW1vdW50KSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIGFtb3VudCcpO1xuICAgIH1cbiAgICB0aGlzLl9yZWNpcGllbnRzLnB1c2gocmVjaXBpZW50KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvLyBlbmRyZWdpb25cblxuICAvLyByZWdpb24gVmFsaWRhdG9yc1xuICB2YWxpZGF0ZU1hbmRhdG9yeUZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcmVjaXBpZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgcmVjaXBpZW50cycpO1xuICAgIH1cbiAgICBzdXBlci52YWxpZGF0ZU1hbmRhdG9yeUZpZWxkcygpO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxufVxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNENBQXlDO0FBQ3pDLG1EQU04QjtBQUU5Qiw2REFBMEQ7QUFFMUQsbUNBQXdEO0FBQ3hELDJDQUFvRDtBQUVwRCxNQUFhLGVBQWdCLFNBQVEsdUNBQWtCO0lBSXJELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxhQUFLLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztRQUM3RCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsMEJBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxPQUFPLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLEdBQVk7UUFDdkMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxJQUFJLGlDQUFxQixFQUFFO1lBQzdELE1BQU0sSUFBSSx1QkFBWSxDQUFDLGVBQWUsR0FBRyxpQ0FBcUIsR0FBRyw0QkFBNEIsQ0FBQyxDQUFDO1NBQ2hHO1FBQ0QsT0FBTyxLQUFLLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELHlCQUF5QjtJQUN6Qjs7Ozs7T0FLRztJQUNILElBQUksQ0FBQyxTQUFvQjtRQUN2QixJQUFJLENBQUMsc0JBQWMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDdEMsTUFBTSxJQUFJLHFDQUEwQixDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDekQ7UUFDRCxJQUFJLENBQUMscUJBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDcEMsTUFBTSxJQUFJLHFDQUEwQixDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDeEQ7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxZQUFZO0lBRVosb0JBQW9CO0lBQ3BCLHVCQUF1QjtRQUNyQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNqQyxNQUFNLElBQUksZ0NBQXFCLENBQUMseUNBQXlDLENBQUMsQ0FBQztTQUM1RTtRQUNELEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FFRjtBQXBERCwwQ0FvREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBwcm90byB9IGZyb20gJ0BoYXNoZ3JhcGgvcHJvdG8nO1xuaW1wb3J0IHtcbiAgQmFzZUtleSxcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcixcbiAgU2lnbmluZ0Vycm9yLFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFJlY2lwaWVudCB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IGlzVmFsaWRBZGRyZXNzLCBpc1ZhbGlkQW1vdW50IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBERUZBVUxUX1NJR05FUl9OVU1CRVIgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3R4Qm9keURhdGE6IHByb3RvLkNyeXB0b1RyYW5zZmVyVHJhbnNhY3Rpb25Cb2R5O1xuICBwcm90ZWN0ZWQgX3JlY2lwaWVudHM6IFJlY2lwaWVudFtdO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90eEJvZHlEYXRhID0gbmV3IHByb3RvLkNyeXB0b1RyYW5zZmVyVHJhbnNhY3Rpb25Cb2R5KCk7XG4gICAgdGhpcy5fdHhCb2R5LmNyeXB0b1RyYW5zZmVyID0gdGhpcy5fdHhCb2R5RGF0YTtcbiAgICB0aGlzLl9yZWNpcGllbnRzID0gW107XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oa2V5OiBCYXNlS2V5KTogVHJhbnNhY3Rpb24ge1xuICAgIGlmICh0aGlzLl9tdWx0aVNpZ25lcktleVBhaXJzLmxlbmd0aCA+PSBERUZBVUxUX1NJR05FUl9OVU1CRVIpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ0EgbWF4aW11bSBvZiAnICsgREVGQVVMVF9TSUdORVJfTlVNQkVSICsgJyBjYW4gc2lnbiB0aGUgdHJhbnNhY3Rpb24uJyk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5zaWduSW1wbGVtZW50YXRpb24oa2V5KTtcbiAgfVxuXG4gIC8vIHJlZ2lvbiBUcmFuc2ZlciBmaWVsZHNcbiAgLyoqXG4gICAqIFNldCB0aGUgcmVjaXBpZW50IHRvIGJlIHRyYW5zZmVycmVkXG4gICAqXG4gICAqIEBwYXJhbSB7UmVjaXBpZW50fSByZWNpcGllbnQgLSByZWNpcGllbnQgdG8gdHJhbnNmZXIgY29uc2lzdGluZyBkZXN0aW5hdGlvbiBhZGRyZXNzIGFuZCBhbW91bnRcbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gLSBUaGUgYnVpbGRlciB3aXRoIHRoZSBuZXcgcGFyYW1ldGVyIHNldFxuICAgKi9cbiAgc2VuZChyZWNpcGllbnQ6IFJlY2lwaWVudCk6IHRoaXMge1xuICAgIGlmICghaXNWYWxpZEFkZHJlc3MocmVjaXBpZW50LmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYWRkcmVzcycpO1xuICAgIH1cbiAgICBpZiAoIWlzVmFsaWRBbW91bnQocmVjaXBpZW50LmFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBhbW91bnQnKTtcbiAgICB9XG4gICAgdGhpcy5fcmVjaXBpZW50cy5wdXNoKHJlY2lwaWVudCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLy8gZW5kcmVnaW9uXG5cbiAgLy8gcmVnaW9uIFZhbGlkYXRvcnNcbiAgdmFsaWRhdGVNYW5kYXRvcnlGaWVsZHMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3JlY2lwaWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIHJlY2lwaWVudHMnKTtcbiAgICB9XG4gICAgc3VwZXIudmFsaWRhdGVNYW5kYXRvcnlGaWVsZHMoKTtcbiAgfVxuICAvLyBlbmRyZWdpb25cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { PrivateKey } from '@hashgraph/sdk';
2
- import * as proto from '@hashgraph/proto';
2
+ import { proto } from '@hashgraph/proto';
3
3
  import { AddressDetails } from './iface';
4
4
  import { toHex, toUint8Array } from '@bitgo-beta/sdk-core';
5
5
  import { BaseCoin } from '@bitgo-beta/statics';
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}