@bitgo/sdk-coin-hbar 2.10.3 → 2.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,6 +6,7 @@ export declare class AccountUpdateBuilder extends TransactionBuilder {
6
6
  private readonly _txBodyData;
7
7
  private _accountId;
8
8
  private _stakedNodeId?;
9
+ private _stakedAccountId?;
9
10
  private _declineStakingReward?;
10
11
  constructor(_coinConfig: Readonly<CoinConfig>);
11
12
  /** @inheritdoc */
@@ -30,6 +31,13 @@ export declare class AccountUpdateBuilder extends TransactionBuilder {
30
31
  * @returns {AccountUpdateBuilder} - This builder
31
32
  */
32
33
  stakedNodeId(nodeId: number): this;
34
+ /**
35
+ * Set the staked account ID for indirect staking. Use "0.0.0" to unstake.
36
+ *
37
+ * @param {string} accountId - The account ID to stake to in format <shard>.<realm>.<account>, or "0.0.0" to clear
38
+ * @returns {AccountUpdateBuilder} - This builder
39
+ */
40
+ stakedAccountId(accountId: string): this;
33
41
  /**
34
42
  * Set whether to decline staking rewards.
35
43
  *
@@ -1 +1 @@
1
- {"version":3,"file":"accountUpdateBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/accountUpdateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAE,OAAO,EAAwD,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,qBAAa,oBAAqB,SAAQ,kBAAkB;IAC1D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;IAChE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAO;IAC7B,OAAO,CAAC,qBAAqB,CAAC,CAAU;gBAE5B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAiBlC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAOvD,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAY3D,kBAAkB;IAClB,uBAAuB,IAAI,IAAI;IAO/B;;;;;OAKG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQhC;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQlC;;;;;OAKG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAI7C"}
1
+ {"version":3,"file":"accountUpdateBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/accountUpdateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAE,OAAO,EAAwD,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,qBAAa,oBAAqB,SAAQ,kBAAkB;IAC1D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;IAChE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAO;IAC7B,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,qBAAqB,CAAC,CAAU;gBAE5B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAoBlC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAOvD,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAe3D,kBAAkB;IAClB,uBAAuB,IAAI,IAAI;IAU/B;;;;;OAKG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQhC;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQlC;;;;;OAKG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQxC;;;;;OAKG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAI7C"}
@@ -27,6 +27,9 @@ class AccountUpdateBuilder extends transactionBuilder_1.TransactionBuilder {
27
27
  if (updateBody.stakedNodeId != null) {
28
28
  this._stakedNodeId = long_1.default.fromValue(updateBody.stakedNodeId);
29
29
  }
30
+ if (updateBody.stakedAccountId) {
31
+ this._stakedAccountId = (0, utils_1.stringifyAccountId)(updateBody.stakedAccountId);
32
+ }
30
33
  if (updateBody.declineReward != null) {
31
34
  const raw = updateBody.declineReward;
32
35
  this._declineStakingReward = typeof raw === 'boolean' ? raw : raw.value;
@@ -46,6 +49,9 @@ class AccountUpdateBuilder extends transactionBuilder_1.TransactionBuilder {
46
49
  if (this._stakedNodeId !== undefined) {
47
50
  this._txBodyData.stakedNodeId = this._stakedNodeId;
48
51
  }
52
+ if (this._stakedAccountId !== undefined) {
53
+ this._txBodyData.stakedAccountId = (0, utils_1.buildHederaAccountID)(this._stakedAccountId);
54
+ }
49
55
  if (this._declineStakingReward !== undefined) {
50
56
  this._txBodyData.declineReward = { value: this._declineStakingReward };
51
57
  }
@@ -54,8 +60,11 @@ class AccountUpdateBuilder extends transactionBuilder_1.TransactionBuilder {
54
60
  }
55
61
  /** @inheritdoc */
56
62
  validateMandatoryFields() {
57
- if (this._stakedNodeId === undefined) {
58
- throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing stakedNodeId');
63
+ if (this._stakedNodeId === undefined && this._stakedAccountId === undefined) {
64
+ throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing stakedNodeId or stakedAccountId');
65
+ }
66
+ if (this._stakedNodeId !== undefined && this._stakedAccountId !== undefined) {
67
+ throw new sdk_core_1.BuildTransactionError('Invalid transaction: cannot set both stakedNodeId and stakedAccountId');
59
68
  }
60
69
  super.validateMandatoryFields();
61
70
  }
@@ -85,6 +94,19 @@ class AccountUpdateBuilder extends transactionBuilder_1.TransactionBuilder {
85
94
  this._stakedNodeId = long_1.default.fromNumber(nodeId);
86
95
  return this;
87
96
  }
97
+ /**
98
+ * Set the staked account ID for indirect staking. Use "0.0.0" to unstake.
99
+ *
100
+ * @param {string} accountId - The account ID to stake to in format <shard>.<realm>.<account>, or "0.0.0" to clear
101
+ * @returns {AccountUpdateBuilder} - This builder
102
+ */
103
+ stakedAccountId(accountId) {
104
+ if (!(0, utils_1.isValidAddress)(accountId)) {
105
+ throw new sdk_core_1.BuildTransactionError('Invalid stakedAccountId: ' + accountId);
106
+ }
107
+ this._stakedAccountId = accountId;
108
+ return this;
109
+ }
88
110
  /**
89
111
  * Set whether to decline staking rewards.
90
112
  *
@@ -97,4 +119,4 @@ class AccountUpdateBuilder extends transactionBuilder_1.TransactionBuilder {
97
119
  }
98
120
  }
99
121
  exports.AccountUpdateBuilder = AccountUpdateBuilder;
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudFVwZGF0ZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2FjY291bnRVcGRhdGVCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLGdEQUF3QjtBQUN4Qiw0Q0FBeUM7QUFDekMsOENBQWdHO0FBRWhHLDZEQUEwRDtBQUMxRCxtQ0FBbUY7QUFDbkYsMkNBQW9EO0FBRXBELE1BQWEsb0JBQXFCLFNBQVEsdUNBQWtCO0lBTTFELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxhQUFLLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUMzRCxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDdEQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsRUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUM7UUFDakQsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLElBQUksVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBQSwwQkFBa0IsRUFBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNyRSxDQUFDO1lBQ0QsSUFBSSxVQUFVLENBQUMsWUFBWSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLGNBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQy9ELENBQUM7WUFDRCxJQUFJLFVBQVUsQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3JDLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxPQUFPLEdBQUcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUUsR0FBMEIsQ0FBQyxLQUFLLENBQUM7WUFDbEcsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsR0FBWTtRQUN2QyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLElBQUksaUNBQXFCLEVBQUUsQ0FBQztZQUM5RCxNQUFNLElBQUksdUJBQVksQ0FBQyxlQUFlLEdBQUcsaUNBQXFCLEdBQUcsNEJBQTRCLENBQUMsQ0FBQztRQUNqRyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGtCQUFrQjtJQUNSLEtBQUssQ0FBQyxtQkFBbUI7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsR0FBRyxJQUFBLDRCQUFvQixFQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRyxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMscUJBQXFCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDekUsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsMEJBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuRSxPQUFPLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQix1QkFBdUI7UUFDckIsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFDRCxLQUFLLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMsU0FBaUI7UUFDdkIsSUFBSSxDQUFDLElBQUEsc0JBQWMsRUFBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQywyQkFBMkIsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUMsTUFBYztRQUN6QixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDO1FBQ3JHLENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLGNBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxvQkFBb0IsQ0FBQyxPQUFnQjtRQUNuQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBakdELG9EQWlHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgTG9uZyBmcm9tICdsb25nJztcbmltcG9ydCB7IHByb3RvIH0gZnJvbSAnQGhhc2hncmFwaC9wcm90byc7XG5pbXBvcnQgeyBCYXNlS2V5LCBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIFNpZ25pbmdFcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBidWlsZEhlZGVyYUFjY291bnRJRCwgaXNWYWxpZEFkZHJlc3MsIHN0cmluZ2lmeUFjY291bnRJZCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgREVGQVVMVF9TSUdORVJfTlVNQkVSIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgQWNjb3VudFVwZGF0ZUJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IF90eEJvZHlEYXRhOiBwcm90by5DcnlwdG9VcGRhdGVUcmFuc2FjdGlvbkJvZHk7XG4gIHByaXZhdGUgX2FjY291bnRJZDogc3RyaW5nO1xuICBwcml2YXRlIF9zdGFrZWROb2RlSWQ/OiBMb25nO1xuICBwcml2YXRlIF9kZWNsaW5lU3Rha2luZ1Jld2FyZD86IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3R4Qm9keURhdGEgPSBuZXcgcHJvdG8uQ3J5cHRvVXBkYXRlVHJhbnNhY3Rpb25Cb2R5KCk7XG4gICAgdGhpcy5fdHhCb2R5LmNyeXB0b1VwZGF0ZUFjY291bnQgPSB0aGlzLl90eEJvZHlEYXRhO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICBjb25zdCB1cGRhdGVCb2R5ID0gdHgudHhCb2R5LmNyeXB0b1VwZGF0ZUFjY291bnQ7XG4gICAgaWYgKHVwZGF0ZUJvZHkpIHtcbiAgICAgIGlmICh1cGRhdGVCb2R5LmFjY291bnRJRFRvVXBkYXRlKSB7XG4gICAgICAgIHRoaXMuX2FjY291bnRJZCA9IHN0cmluZ2lmeUFjY291bnRJZCh1cGRhdGVCb2R5LmFjY291bnRJRFRvVXBkYXRlKTtcbiAgICAgIH1cbiAgICAgIGlmICh1cGRhdGVCb2R5LnN0YWtlZE5vZGVJZCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuX3N0YWtlZE5vZGVJZCA9IExvbmcuZnJvbVZhbHVlKHVwZGF0ZUJvZHkuc3Rha2VkTm9kZUlkKTtcbiAgICAgIH1cbiAgICAgIGlmICh1cGRhdGVCb2R5LmRlY2xpbmVSZXdhcmQgIT0gbnVsbCkge1xuICAgICAgICBjb25zdCByYXcgPSB1cGRhdGVCb2R5LmRlY2xpbmVSZXdhcmQ7XG4gICAgICAgIHRoaXMuX2RlY2xpbmVTdGFraW5nUmV3YXJkID0gdHlwZW9mIHJhdyA9PT0gJ2Jvb2xlYW4nID8gcmF3IDogKHJhdyBhcyB7IHZhbHVlOiBib29sZWFuIH0pLnZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICBpZiAodGhpcy5fbXVsdGlTaWduZXJLZXlQYWlycy5sZW5ndGggPj0gREVGQVVMVF9TSUdORVJfTlVNQkVSKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdBIG1heGltdW0gb2YgJyArIERFRkFVTFRfU0lHTkVSX05VTUJFUiArICcgY2FuIHNpZ24gdGhlIHRyYW5zYWN0aW9uLicpO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuc2lnbkltcGxlbWVudGF0aW9uKGtleSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMuX3R4Qm9keURhdGEuYWNjb3VudElEVG9VcGRhdGUgPSBidWlsZEhlZGVyYUFjY291bnRJRCh0aGlzLl9hY2NvdW50SWQgfHwgdGhpcy5fc291cmNlLmFkZHJlc3MpO1xuICAgIGlmICh0aGlzLl9zdGFrZWROb2RlSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fdHhCb2R5RGF0YS5zdGFrZWROb2RlSWQgPSB0aGlzLl9zdGFrZWROb2RlSWQ7XG4gICAgfVxuICAgIGlmICh0aGlzLl9kZWNsaW5lU3Rha2luZ1Jld2FyZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl90eEJvZHlEYXRhLmRlY2xpbmVSZXdhcmQgPSB7IHZhbHVlOiB0aGlzLl9kZWNsaW5lU3Rha2luZ1Jld2FyZCB9O1xuICAgIH1cbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuQWNjb3VudFVwZGF0ZSk7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZU1hbmRhdG9yeUZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3Rha2VkTm9kZUlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3Npbmcgc3Rha2VkTm9kZUlkJyk7XG4gICAgfVxuICAgIHN1cGVyLnZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBhY2NvdW50IHRvIHVwZGF0ZS4gRGVmYXVsdHMgdG8gdGhlIHNvdXJjZSBhY2NvdW50IGlmIG5vdCBzZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhY2NvdW50SWQgLSBUaGUgYWNjb3VudCBJRCBpbiBmb3JtYXQgPHNoYXJkPi48cmVhbG0+LjxhY2NvdW50PlxuICAgKiBAcmV0dXJucyB7QWNjb3VudFVwZGF0ZUJ1aWxkZXJ9IC0gVGhpcyBidWlsZGVyXG4gICAqL1xuICBhY2NvdW50KGFjY291bnRJZDogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhhY2NvdW50SWQpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFjY291bnQgYWRkcmVzczogJyArIGFjY291bnRJZCk7XG4gICAgfVxuICAgIHRoaXMuX2FjY291bnRJZCA9IGFjY291bnRJZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHN0YWtlZCBub2RlIElELiBVc2UgLTEgdG8gdW5zdGFrZS5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IG5vZGVJZCAtIFRoZSBjb25zZW5zdXMgbm9kZSBJRCB0byBzdGFrZSB0bywgb3IgLTEgdG8gY2xlYXIgc3Rha2luZ1xuICAgKiBAcmV0dXJucyB7QWNjb3VudFVwZGF0ZUJ1aWxkZXJ9IC0gVGhpcyBidWlsZGVyXG4gICAqL1xuICBzdGFrZWROb2RlSWQobm9kZUlkOiBudW1iZXIpOiB0aGlzIHtcbiAgICBpZiAobm9kZUlkIDwgLTEpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgc3Rha2VkTm9kZUlkOiBvbmx5IC0xIGlzIGEgdmFsaWQgc2VudGluZWwgZm9yIHVuc3Rha2luZycpO1xuICAgIH1cbiAgICB0aGlzLl9zdGFrZWROb2RlSWQgPSBMb25nLmZyb21OdW1iZXIobm9kZUlkKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgd2hldGhlciB0byBkZWNsaW5lIHN0YWtpbmcgcmV3YXJkcy5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBkZWNsaW5lIC0gVHJ1ZSB0byBkZWNsaW5lIHJld2FyZHMsIGZhbHNlIHRvIGFjY2VwdFxuICAgKiBAcmV0dXJucyB7QWNjb3VudFVwZGF0ZUJ1aWxkZXJ9IC0gVGhpcyBidWlsZGVyXG4gICAqL1xuICBkZWNsaW5lU3Rha2luZ1Jld2FyZChkZWNsaW5lOiBib29sZWFuKTogdGhpcyB7XG4gICAgdGhpcy5fZGVjbGluZVN0YWtpbmdSZXdhcmQgPSBkZWNsaW5lO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXX0=
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudFVwZGF0ZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2FjY291bnRVcGRhdGVCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLGdEQUF3QjtBQUN4Qiw0Q0FBeUM7QUFDekMsOENBQWdHO0FBRWhHLDZEQUEwRDtBQUMxRCxtQ0FBbUY7QUFDbkYsMkNBQW9EO0FBRXBELE1BQWEsb0JBQXFCLFNBQVEsdUNBQWtCO0lBTzFELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxhQUFLLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUMzRCxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDdEQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsRUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUM7UUFDakQsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLElBQUksVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBQSwwQkFBa0IsRUFBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNyRSxDQUFDO1lBQ0QsSUFBSSxVQUFVLENBQUMsWUFBWSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLGNBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQy9ELENBQUM7WUFDRCxJQUFJLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUEsMEJB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QyxpRUFBaUUsQ0FBQyxDQUFDO1FBQ3JHLENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLGNBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsU0FBaUI7UUFDL0IsSUFBSSxDQUFDLElBQUEsc0JBQWMsRUFBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQywyQkFBMkIsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG9CQUFvQixDQUFDLE9BQWdCO1FBQ25DLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxPQUFPLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUF6SEQsb0RBeUhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCBMb25nIGZyb20gJ2xvbmcnO1xuaW1wb3J0IHsgcHJvdG8gfSBmcm9tICdAaGFzaGdyYXBoL3Byb3RvJztcbmltcG9ydCB7IEJhc2VLZXksIEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgU2lnbmluZ0Vycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IGJ1aWxkSGVkZXJhQWNjb3VudElELCBpc1ZhbGlkQWRkcmVzcywgc3RyaW5naWZ5QWNjb3VudElkIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBERUZBVUxUX1NJR05FUl9OVU1CRVIgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBBY2NvdW50VXBkYXRlQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3R4Qm9keURhdGE6IHByb3RvLkNyeXB0b1VwZGF0ZVRyYW5zYWN0aW9uQm9keTtcbiAgcHJpdmF0ZSBfYWNjb3VudElkOiBzdHJpbmc7XG4gIHByaXZhdGUgX3N0YWtlZE5vZGVJZD86IExvbmc7XG4gIHByaXZhdGUgX3N0YWtlZEFjY291bnRJZD86IHN0cmluZztcbiAgcHJpdmF0ZSBfZGVjbGluZVN0YWtpbmdSZXdhcmQ/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90eEJvZHlEYXRhID0gbmV3IHByb3RvLkNyeXB0b1VwZGF0ZVRyYW5zYWN0aW9uQm9keSgpO1xuICAgIHRoaXMuX3R4Qm9keS5jcnlwdG9VcGRhdGVBY2NvdW50ID0gdGhpcy5fdHhCb2R5RGF0YTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgY29uc3QgdXBkYXRlQm9keSA9IHR4LnR4Qm9keS5jcnlwdG9VcGRhdGVBY2NvdW50O1xuICAgIGlmICh1cGRhdGVCb2R5KSB7XG4gICAgICBpZiAodXBkYXRlQm9keS5hY2NvdW50SURUb1VwZGF0ZSkge1xuICAgICAgICB0aGlzLl9hY2NvdW50SWQgPSBzdHJpbmdpZnlBY2NvdW50SWQodXBkYXRlQm9keS5hY2NvdW50SURUb1VwZGF0ZSk7XG4gICAgICB9XG4gICAgICBpZiAodXBkYXRlQm9keS5zdGFrZWROb2RlSWQgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLl9zdGFrZWROb2RlSWQgPSBMb25nLmZyb21WYWx1ZSh1cGRhdGVCb2R5LnN0YWtlZE5vZGVJZCk7XG4gICAgICB9XG4gICAgICBpZiAodXBkYXRlQm9keS5zdGFrZWRBY2NvdW50SWQpIHtcbiAgICAgICAgdGhpcy5fc3Rha2VkQWNjb3VudElkID0gc3RyaW5naWZ5QWNjb3VudElkKHVwZGF0ZUJvZHkuc3Rha2VkQWNjb3VudElkKTtcbiAgICAgIH1cbiAgICAgIGlmICh1cGRhdGVCb2R5LmRlY2xpbmVSZXdhcmQgIT0gbnVsbCkge1xuICAgICAgICBjb25zdCByYXcgPSB1cGRhdGVCb2R5LmRlY2xpbmVSZXdhcmQ7XG4gICAgICAgIHRoaXMuX2RlY2xpbmVTdGFraW5nUmV3YXJkID0gdHlwZW9mIHJhdyA9PT0gJ2Jvb2xlYW4nID8gcmF3IDogKHJhdyBhcyB7IHZhbHVlOiBib29sZWFuIH0pLnZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICBpZiAodGhpcy5fbXVsdGlTaWduZXJLZXlQYWlycy5sZW5ndGggPj0gREVGQVVMVF9TSUdORVJfTlVNQkVSKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdBIG1heGltdW0gb2YgJyArIERFRkFVTFRfU0lHTkVSX05VTUJFUiArICcgY2FuIHNpZ24gdGhlIHRyYW5zYWN0aW9uLicpO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuc2lnbkltcGxlbWVudGF0aW9uKGtleSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMuX3R4Qm9keURhdGEuYWNjb3VudElEVG9VcGRhdGUgPSBidWlsZEhlZGVyYUFjY291bnRJRCh0aGlzLl9hY2NvdW50SWQgfHwgdGhpcy5fc291cmNlLmFkZHJlc3MpO1xuICAgIGlmICh0aGlzLl9zdGFrZWROb2RlSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fdHhCb2R5RGF0YS5zdGFrZWROb2RlSWQgPSB0aGlzLl9zdGFrZWROb2RlSWQ7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zdGFrZWRBY2NvdW50SWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fdHhCb2R5RGF0YS5zdGFrZWRBY2NvdW50SWQgPSBidWlsZEhlZGVyYUFjY291bnRJRCh0aGlzLl9zdGFrZWRBY2NvdW50SWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fZGVjbGluZVN0YWtpbmdSZXdhcmQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fdHhCb2R5RGF0YS5kZWNsaW5lUmV3YXJkID0geyB2YWx1ZTogdGhpcy5fZGVjbGluZVN0YWtpbmdSZXdhcmQgfTtcbiAgICB9XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLkFjY291bnRVcGRhdGUpO1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVNYW5kYXRvcnlGaWVsZHMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YWtlZE5vZGVJZCA9PT0gdW5kZWZpbmVkICYmIHRoaXMuX3N0YWtlZEFjY291bnRJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIHN0YWtlZE5vZGVJZCBvciBzdGFrZWRBY2NvdW50SWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3N0YWtlZE5vZGVJZCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX3N0YWtlZEFjY291bnRJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBjYW5ub3Qgc2V0IGJvdGggc3Rha2VkTm9kZUlkIGFuZCBzdGFrZWRBY2NvdW50SWQnKTtcbiAgICB9XG4gICAgc3VwZXIudmFsaWRhdGVNYW5kYXRvcnlGaWVsZHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGFjY291bnQgdG8gdXBkYXRlLiBEZWZhdWx0cyB0byB0aGUgc291cmNlIGFjY291bnQgaWYgbm90IHNldC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFjY291bnRJZCAtIFRoZSBhY2NvdW50IElEIGluIGZvcm1hdCA8c2hhcmQ+LjxyZWFsbT4uPGFjY291bnQ+XG4gICAqIEByZXR1cm5zIHtBY2NvdW50VXBkYXRlQnVpbGRlcn0gLSBUaGlzIGJ1aWxkZXJcbiAgICovXG4gIGFjY291bnQoYWNjb3VudElkOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKGFjY291bnRJZCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgYWNjb3VudCBhZGRyZXNzOiAnICsgYWNjb3VudElkKTtcbiAgICB9XG4gICAgdGhpcy5fYWNjb3VudElkID0gYWNjb3VudElkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgc3Rha2VkIG5vZGUgSUQuIFVzZSAtMSB0byB1bnN0YWtlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbm9kZUlkIC0gVGhlIGNvbnNlbnN1cyBub2RlIElEIHRvIHN0YWtlIHRvLCBvciAtMSB0byBjbGVhciBzdGFraW5nXG4gICAqIEByZXR1cm5zIHtBY2NvdW50VXBkYXRlQnVpbGRlcn0gLSBUaGlzIGJ1aWxkZXJcbiAgICovXG4gIHN0YWtlZE5vZGVJZChub2RlSWQ6IG51bWJlcik6IHRoaXMge1xuICAgIGlmIChub2RlSWQgPCAtMSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBzdGFrZWROb2RlSWQ6IG9ubHkgLTEgaXMgYSB2YWxpZCBzZW50aW5lbCBmb3IgdW5zdGFraW5nJyk7XG4gICAgfVxuICAgIHRoaXMuX3N0YWtlZE5vZGVJZCA9IExvbmcuZnJvbU51bWJlcihub2RlSWQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgc3Rha2VkIGFjY291bnQgSUQgZm9yIGluZGlyZWN0IHN0YWtpbmcuIFVzZSBcIjAuMC4wXCIgdG8gdW5zdGFrZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFjY291bnRJZCAtIFRoZSBhY2NvdW50IElEIHRvIHN0YWtlIHRvIGluIGZvcm1hdCA8c2hhcmQ+LjxyZWFsbT4uPGFjY291bnQ+LCBvciBcIjAuMC4wXCIgdG8gY2xlYXJcbiAgICogQHJldHVybnMge0FjY291bnRVcGRhdGVCdWlsZGVyfSAtIFRoaXMgYnVpbGRlclxuICAgKi9cbiAgc3Rha2VkQWNjb3VudElkKGFjY291bnRJZDogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhhY2NvdW50SWQpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHN0YWtlZEFjY291bnRJZDogJyArIGFjY291bnRJZCk7XG4gICAgfVxuICAgIHRoaXMuX3N0YWtlZEFjY291bnRJZCA9IGFjY291bnRJZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgd2hldGhlciB0byBkZWNsaW5lIHN0YWtpbmcgcmV3YXJkcy5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBkZWNsaW5lIC0gVHJ1ZSB0byBkZWNsaW5lIHJld2FyZHMsIGZhbHNlIHRvIGFjY2VwdFxuICAgKiBAcmV0dXJucyB7QWNjb3VudFVwZGF0ZUJ1aWxkZXJ9IC0gVGhpcyBidWlsZGVyXG4gICAqL1xuICBkZWNsaW5lU3Rha2luZ1Jld2FyZChkZWNsaW5lOiBib29sZWFuKTogdGhpcyB7XG4gICAgdGhpcy5fZGVjbGluZVN0YWtpbmdSZXdhcmQgPSBkZWNsaW5lO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXX0=
@@ -52,6 +52,7 @@ export interface AccountUpdateInstruction {
52
52
  params: {
53
53
  accountId: string;
54
54
  stakedNodeId?: string;
55
+ stakedAccountId?: string;
55
56
  declineReward?: boolean;
56
57
  };
57
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;CACtC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,gBAAgB,GAAG,wBAAwB,CAAC;AAEvF,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,sBAAsB,CAAC,QAAQ,CAAC;IACtC,MAAM,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,SAAS,EAAE,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,sBAAsB,CAAC,uBAAuB,CAAC;IACrD,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,sBAAsB,CAAC,aAAa,CAAC;IAC3C,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH"}
1
+ {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;CACtC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,gBAAgB,GAAG,wBAAwB,CAAC;AAEvF,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,sBAAsB,CAAC,QAAQ,CAAC;IACtC,MAAM,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,SAAS,EAAE,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,sBAAsB,CAAC,uBAAuB,CAAC;IACrD,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,sBAAsB,CAAC,aAAa,CAAC;IAC3C,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBIZWRlcmFUcmFuc2FjdGlvblR5cGVzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFR4RGF0YSB7XG4gIGlkOiBzdHJpbmc7XG4gIGhhc2g/OiBzdHJpbmc7XG4gIGZyb206IHN0cmluZztcbiAgZGF0YTogc3RyaW5nO1xuICBmZWU6IG51bWJlcjtcbiAgc3RhcnRUaW1lOiBzdHJpbmc7XG4gIHZhbGlkRHVyYXRpb246IHN0cmluZztcbiAgbm9kZTogc3RyaW5nO1xuICBtZW1vPzogc3RyaW5nO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGluc3RydWN0aW9uc0RhdGEucGFyYW1zLnJlY2lwaWVudHMgaW5zdGVhZCAqL1xuICB0bz86IHN0cmluZztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBpbnN0cnVjdGlvbnNEYXRhLnBhcmFtcy5yZWNpcGllbnRzIGluc3RlYWQgKi9cbiAgYW1vdW50Pzogc3RyaW5nO1xuICBpbnN0cnVjdGlvbnNEYXRhPzogSW5zdHJ1Y3Rpb25QYXJhbXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjaXBpZW50IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBhbW91bnQ6IHN0cmluZztcbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlZGVyYU5vZGUge1xuICBub2RlSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmVEYXRhIHtcbiAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gIGtleVBhaXI6IEtleVBhaXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzc0RldGFpbHMge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIG1lbW9JZD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgSW5zdHJ1Y3Rpb25QYXJhbXMgPSBUcmFuc2ZlciB8IEFzc29jaWF0ZUFjY291bnQgfCBBY2NvdW50VXBkYXRlSW5zdHJ1Y3Rpb247XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmZXIge1xuICB0eXBlOiBIZWRlcmFUcmFuc2FjdGlvblR5cGVzLlRyYW5zZmVyO1xuICBwYXJhbXM6IHtcbiAgICB0b2tlbk5hbWU/OiBzdHJpbmc7XG4gICAgcmVjaXBpZW50czogUmVjaXBpZW50W107XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzb2NpYXRlQWNjb3VudCB7XG4gIHR5cGU6IEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuVG9rZW5Bc3NvY2lhdGVUb0FjY291bnQ7XG4gIHBhcmFtczoge1xuICAgIGFjY291bnRJZDogc3RyaW5nO1xuICAgIHRva2VuTmFtZXM6IHN0cmluZ1tdO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY291bnRVcGRhdGVJbnN0cnVjdGlvbiB7XG4gIHR5cGU6IEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuQWNjb3VudFVwZGF0ZTtcbiAgcGFyYW1zOiB7XG4gICAgYWNjb3VudElkOiBzdHJpbmc7XG4gICAgc3Rha2VkTm9kZUlkPzogc3RyaW5nO1xuICAgIGRlY2xpbmVSZXdhcmQ/OiBib29sZWFuO1xuICB9O1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBIZWRlcmFUcmFuc2FjdGlvblR5cGVzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFR4RGF0YSB7XG4gIGlkOiBzdHJpbmc7XG4gIGhhc2g/OiBzdHJpbmc7XG4gIGZyb206IHN0cmluZztcbiAgZGF0YTogc3RyaW5nO1xuICBmZWU6IG51bWJlcjtcbiAgc3RhcnRUaW1lOiBzdHJpbmc7XG4gIHZhbGlkRHVyYXRpb246IHN0cmluZztcbiAgbm9kZTogc3RyaW5nO1xuICBtZW1vPzogc3RyaW5nO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGluc3RydWN0aW9uc0RhdGEucGFyYW1zLnJlY2lwaWVudHMgaW5zdGVhZCAqL1xuICB0bz86IHN0cmluZztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBpbnN0cnVjdGlvbnNEYXRhLnBhcmFtcy5yZWNpcGllbnRzIGluc3RlYWQgKi9cbiAgYW1vdW50Pzogc3RyaW5nO1xuICBpbnN0cnVjdGlvbnNEYXRhPzogSW5zdHJ1Y3Rpb25QYXJhbXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjaXBpZW50IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBhbW91bnQ6IHN0cmluZztcbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlZGVyYU5vZGUge1xuICBub2RlSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmVEYXRhIHtcbiAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gIGtleVBhaXI6IEtleVBhaXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzc0RldGFpbHMge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIG1lbW9JZD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgSW5zdHJ1Y3Rpb25QYXJhbXMgPSBUcmFuc2ZlciB8IEFzc29jaWF0ZUFjY291bnQgfCBBY2NvdW50VXBkYXRlSW5zdHJ1Y3Rpb247XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmZXIge1xuICB0eXBlOiBIZWRlcmFUcmFuc2FjdGlvblR5cGVzLlRyYW5zZmVyO1xuICBwYXJhbXM6IHtcbiAgICB0b2tlbk5hbWU/OiBzdHJpbmc7XG4gICAgcmVjaXBpZW50czogUmVjaXBpZW50W107XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzb2NpYXRlQWNjb3VudCB7XG4gIHR5cGU6IEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuVG9rZW5Bc3NvY2lhdGVUb0FjY291bnQ7XG4gIHBhcmFtczoge1xuICAgIGFjY291bnRJZDogc3RyaW5nO1xuICAgIHRva2VuTmFtZXM6IHN0cmluZ1tdO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY291bnRVcGRhdGVJbnN0cnVjdGlvbiB7XG4gIHR5cGU6IEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuQWNjb3VudFVwZGF0ZTtcbiAgcGFyYW1zOiB7XG4gICAgYWNjb3VudElkOiBzdHJpbmc7XG4gICAgc3Rha2VkTm9kZUlkPzogc3RyaW5nO1xuICAgIHN0YWtlZEFjY291bnRJZD86IHN0cmluZztcbiAgICBkZWNsaW5lUmV3YXJkPzogYm9vbGVhbjtcbiAgfTtcbn1cbiJdfQ==
@@ -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,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,eAAe,EAA4C,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAMtH,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;IAmB7D,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAwChB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IA+BvB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;;;;;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;IAqD5B;;;;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,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,eAAe,EAA4C,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAMtH,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;IAmB7D,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAwChB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IA+BvB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;;;;;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;IAqD5B;;;;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"}
@@ -189,6 +189,9 @@ class Transaction extends sdk_core_1.BaseTransaction {
189
189
  ...(updateBody.stakedNodeId != null && {
190
190
  stakedNodeId: long_1.default.fromValue(updateBody.stakedNodeId).toString(),
191
191
  }),
192
+ ...(updateBody.stakedAccountId && {
193
+ stakedAccountId: (0, utils_1.stringifyAccountId)(updateBody.stakedAccountId),
194
+ }),
192
195
  ...(updateBody.declineReward != null && {
193
196
  declineReward: typeof updateBody.declineReward === 'boolean'
194
197
  ? updateBody.declineReward
@@ -367,4 +370,4 @@ class Transaction extends sdk_core_1.BaseTransaction {
367
370
  }
368
371
  }
369
372
  exports.Transaction = Transaction;
370
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDhDQUFzSDtBQUN0SCw4Q0FBeUM7QUFDekMsZ0VBQXFDO0FBRXJDLGdEQUFrQztBQUNsQyxnREFBd0I7QUFDeEIsNENBQXlDO0FBRXpDLG1DQUEwRztBQUUxRywyQ0FBcUQ7QUFFckQsTUFBYSxXQUFZLFNBQVEsMEJBQWU7SUFLOUMsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixPQUFPLENBQUMsR0FBWTtRQUNsQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQWdCO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSx1QkFBWSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLElBQUEsdUJBQVksRUFBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUEsZ0JBQUssRUFBQyxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUMsU0FBaUIsRUFBRSxHQUFZ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LENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLGFBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hELFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDekMsU0FBUyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUUvQyxNQUFNLE9BQU8sR0FBRyxhQUFLLENBQUMsaUJBQWlCLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLE1BQU0sQ0FDWixHQUFNLEVBQ04sT0FBbUM7UUFFbkMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEdBQUcsQ0FBQyxLQUFpQjtRQUNuQixPQUFPLElBQUEsZ0JBQUssRUFBQyxJQUFBLGFBQUksRUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7Q0FDRjtBQXhXRCxrQ0F3V0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgQmFzZUtleSwgQmFzZVRyYW5zYWN0aW9uLCBFbnRyeSwgU2lnbmluZ0Vycm9yLCB0b0hleCwgdG9VaW50OEFycmF5LCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgaGFzaCB9IGZyb20gJ0BzdGFibGVsaWIvc2hhMzg0JztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IFdyaXRlciB9IGZyb20gJ3Byb3RvYnVmanMnO1xuaW1wb3J0ICogYXMgbmFjbCBmcm9tICd0d2VldG5hY2wnO1xuaW1wb3J0IExvbmcgZnJvbSAnbG9uZyc7XG5pbXBvcnQgeyBwcm90byB9IGZyb20gJ0BoYXNoZ3JhcGgvcHJvdG8nO1xuaW1wb3J0IHsgVHhEYXRhLCBSZWNpcGllbnQgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IHN0cmluZ2lmeUFjY291bnRJZCwgc3RyaW5naWZ5VHhUaW1lLCBzdHJpbmdpZnlUb2tlbklkLCBnZXRIZWRlcmFUb2tlbk5hbWVGcm9tSWQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuLyc7XG5pbXBvcnQgeyBIZWRlcmFUcmFuc2FjdGlvblR5cGVzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcml2YXRlIF9oZWRlcmFUeDogcHJvdG8uVHJhbnNhY3Rpb247XG4gIHByaXZhdGUgX3R4Qm9keTogcHJvdG8uVHJhbnNhY3Rpb25Cb2R5O1xuICBwcm90ZWN0ZWQgX3R5cGU6IFRyYW5zYWN0aW9uVHlwZTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIHNpZ24oa2V5UGFpcjogS2V5UGFpcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGtleXMgPSBrZXlQYWlyLmdldEtleXModHJ1ZSk7XG4gICAgaWYgKCFrZXlzLnBydikge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignTWlzc2luZyBwcml2YXRlIGtleScpO1xuICAgIH1cbiAgICBjb25zdCBzZWNyZXRLZXkgPSB0b1VpbnQ4QXJyYXkoa2V5cy5wcnYgKyBrZXlzLnB1Yik7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gbmFjbC5zaWduLmRldGFjaGVkKHRoaXMuX2hlZGVyYVR4LmJvZHlCeXRlcywgc2VjcmV0S2V5KTtcbiAgICB0aGlzLmFkZFNpZ25hdHVyZSh0b0hleChzaWduYXR1cmUpLCBrZXlQYWlyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBzaWduYXR1cmUgdG8gdGhpcyB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmF0dXJlIC0gVGhlIHNpZ25hdHVyZSB0byBhZGQsIGluIHN0cmluZyBoZXggZm9ybWF0XG4gICAqIEBwYXJhbSB7S2V5UGFpcn0ga2V5IC0gVGhlIGtleSBvZiB0aGUga2V5IHRoYXQgY3JlYXRlZCB0aGUgc2lnbmF0dXJlXG4gICAqL1xuICBhZGRTaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcsIGtleTogS2V5UGFpcik6IHZvaWQge1xuICAgIGNvbnN0IHNpZ1BhaXIgPSBuZXcgcHJvdG8uU2lnbmF0dXJlUGFpcigpO1xuICAgIHNpZ1BhaXIucHViS2V5UHJlZml4ID0gdG9VaW50OEFycmF5KGtleS5nZXRLZXlzKHRydWUpLnB1Yik7XG4gICAgc2lnUGFpci5lZDI1NTE5ID0gdG9VaW50OEFycmF5KHNpZ25hdHVyZSk7XG5cbiAgICBjb25zdCBzaWdNYXAgPSB0aGlzLl9oZWRlcmFUeC5zaWdNYXAgfHwgbmV3IHByb3RvLlNpZ25hdHVyZU1hcCgpO1xuICAgIHNpZ01hcC5zaWdQYWlyIS5wdXNoKHNpZ1BhaXIpO1xuICAgIHRoaXMuX2hlZGVyYVR4LnNpZ01hcCA9IHNpZ01hcDtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmF0dXJlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGVuY29kZXIgPSBwcm90by5UcmFuc2FjdGlvbjtcbiAgICByZXR1cm4gdG9IZXgodGhpcy5lbmNvZGUodGhpcy5faGVkZXJhVHgsIGVuY29kZXIpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoaXMgdHJhbnNhY3Rpb24gcGF5bG9hZFxuICAgKlxuICAgKiBAcGFyYW0gcmF3VHJhbnNhY3Rpb25cbiAgICovXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogVWludDhBcnJheSB8IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGJ1ZmZlciA9IHR5cGVvZiByYXdUcmFuc2FjdGlvbiA9PT0gJ3N0cmluZycgPyB0b1VpbnQ4QXJyYXkocmF3VHJhbnNhY3Rpb24pIDogcmF3VHJhbnNhY3Rpb247XG4gICAgdGhpcy5ib2R5Qnl0ZXMoYnVmZmVyKTtcbiAgICBzd2l0Y2ggKHRoaXMudHhCb2R5LmRhdGEpIHtcbiAgICAgIGNhc2UgSGVkZXJhVHJhbnNhY3Rpb25UeXBlcy5UcmFuc2ZlcjpcbiAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgSGVkZXJhVHJhbnNhY3Rpb25UeXBlcy5DcmVhdGVBY2NvdW50OlxuICAgICAgICB0aGlzLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgSGVkZXJhVHJhbnNhY3Rpb25UeXBlcy5Ub2tlbkFzc29jaWF0ZVRvQWNjb3VudDpcbiAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLkFzc29jaWF0ZWRUb2tlbkFjY291bnRJbml0aWFsaXphdGlvbik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBIZWRlcmFUcmFuc2FjdGlvblR5cGVzLkFjY291bnRVcGRhdGU6XG4gICAgICAgIHRoaXMuc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50VXBkYXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGNvbnN0IFthY2MsIHRpbWVdID0gdGhpcy5nZXRUeElkUGFydHMoKTtcbiAgICBjb25zdCByZXN1bHQ6IFR4RGF0YSA9IHtcbiAgICAgIGlkOiBhY2MgKyAnQCcgKyB0aW1lLFxuICAgICAgaGFzaDogdGhpcy5nZXRUeEhhc2goKSwgLy8gVE9ETzogVXBkYXRlIG9uY2UgaGVkZXJhLXNkayByZWxlYXNlIHRoaXMgZnVuY3Rpb25hbGl0eSBCR0EtMjg0XG4gICAgICBkYXRhOiB0b0hleCh0aGlzLl9oZWRlcmFUeC5ib2R5Qnl0ZXMpLFxuICAgICAgZmVlOiBuZXcgQmlnTnVtYmVyKHRoaXMuX3R4Qm9keS50cmFuc2FjdGlvbkZlZSEudG9TdHJpbmcoKSkudG9OdW1iZXIoKSxcbiAgICAgIGZyb206IGFjYyxcbiAgICAgIHN0YXJ0VGltZTogdGltZSxcbiAgICAgIHZhbGlkRHVyYXRpb246IHRoaXMuX3R4Qm9keS50cmFuc2FjdGlvblZhbGlkRHVyYXRpb24hLnNlY29uZHMhLnRvU3RyaW5nKCksXG4gICAgICBub2RlOiBzdHJpbmdpZnlBY2NvdW50SWQodGhpcy5fdHhCb2R5Lm5vZGVBY2NvdW50SUQhKSxcbiAgICAgIG1lbW86IHRoaXMuX3R4Qm9keS5tZW1vLFxuICAgIH07XG5cbiAgICBzd2l0Y2ggKHRoaXMuX3R4Qm9keS5kYXRhKSB7XG4gICAgICBjYXNlIEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuVHJhbnNmZXI6XG4gICAgICAgIHJlc3VsdC5pbnN0cnVjdGlvbnNEYXRhID0ge1xuICAgICAgICAgIHR5cGU6IEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuVHJhbnNmZXIsXG4gICAgICAgICAgcGFyYW1zOiB0aGlzLmdldFRyYW5zZmVyRGF0YSgpLFxuICAgICAgICB9O1xuICAgICAgICByZXN1bHQudG8gPSByZXN1bHQuaW5zdHJ1Y3Rpb25zRGF0YS5wYXJhbXMucmVjaXBpZW50c1swXS5hZGRyZXNzO1xuICAgICAgICByZXN1bHQuYW1vdW50ID0gcmVzdWx0Lmluc3RydWN0aW9uc0RhdGEucGFyYW1zLnJlY2lwaWVudHNbMF0uYW1vdW50O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgSGVkZXJhVHJhbnNhY3Rpb25UeXBlcy5Ub2tlbkFzc29jaWF0ZVRvQWNjb3VudDpcbiAgICAgICAgcmVzdWx0Lmluc3RydWN0aW9uc0RhdGEgPSB7XG4gICAgICAgICAgdHlwZTogSGVkZXJhVHJhbnNhY3Rpb25UeXBlcy5Ub2tlbkFzc29jaWF0ZVRvQWNjb3VudCxcbiAgICAgICAgICBwYXJhbXM6IHRoaXMuZ2V0QWNjb3VudEFzc29jaWF0ZURhdGEoKSxcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuQWNjb3VudFVwZGF0ZTpcbiAgICAgICAgcmVzdWx0Lmluc3RydWN0aW9uc0RhdGEgPSB7XG4gICAgICAgICAgdHlwZTogSGVkZXJhVHJhbnNhY3Rpb25UeXBlcy5BY2NvdW50VXBkYXRlLFxuICAgICAgICAgIHBhcmFtczogdGhpcy5nZXRBY2NvdW50VXBkYXRlRGF0YSgpLFxuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcmVjaXBpZW50IGFjY291bnQgYW5kIHRoZSBhbW91bnRcbiAgICogdHJhbnNmZXJyZWQgb24gdGhpcyB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcmV0dXJucyB7IHRva2VuTmFtZSwgUmVjaXBpZW50W119IGlzIG9iamVjdCBjb25zaXN0aW5nIG9mIHRva2VuTmFtZSBpZiBpdCdzIGEgdG9rZW4gdHJhbnNmZXIgYW5kIHJlY2lwaWVudHMgY29uc2lzdGluZ1xuICAgKiAgdGhlIHJlY2lwaWVudCBhZGRyZXNzLCB0aGUgdHJhbnNmZXIgYW1vdW50LCBhbmQgdGhlIHRva2VuIG5hbWUgZm9yIHRva2VuIHRyYW5zZmVyXG4gICAqL1xuICBwcml2YXRlIGdldFRyYW5zZmVyRGF0YSgpOiB7IHRva2VuTmFtZT86IHN0cmluZzsgcmVjaXBpZW50czogUmVjaXBpZW50W10gfSB7XG4gICAgY29uc3QgW2FjY10gPSB0aGlzLmdldFR4SWRQYXJ0cygpO1xuICAgIGNvbnN0IHRyYW5zZmVyRGF0YTogUmVjaXBpZW50W10gPSBbXTtcbiAgICBjb25zdCB0b2tlblRyYW5zZmVyczogcHJvdG8uSVRva2VuVHJhbnNmZXJMaXN0W10gPSB0aGlzLl90eEJvZHkuY3J5cHRvVHJhbnNmZXI/LnRva2VuVHJhbnNmZXJzIHx8IFtdO1xuICAgIGNvbnN0IHRyYW5zZmVyczogcHJvdG8uSUFjY291bnRBbW91bnRbXSA9XG4gICAgICB0b2tlblRyYW5zZmVyc1swXT8udHJhbnNmZXJzIHx8IHRoaXMuX3R4Qm9keS5jcnlwdG9UcmFuc2Zlcj8udHJhbnNmZXJzPy5hY2NvdW50QW1vdW50cyB8fCBbXTtcbiAgICBjb25zdCB0b2tlbk5hbWUgPSB0b2tlblRyYW5zZmVycy5sZW5ndGhcbiAgICAgID8gZ2V0SGVkZXJhVG9rZW5OYW1lRnJvbUlkKHN0cmluZ2lmeVRva2VuSWQodG9rZW5UcmFuc2ZlcnNbMF0udG9rZW4hKSk/Lm5hbWVcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgdHJhbnNmZXJzLmZvckVhY2goKHRyYW5zZmVyKSA9PiB7XG4gICAgICBjb25zdCBhbW91bnQgPSBMb25nLmZyb21WYWx1ZSh0cmFuc2Zlci5hbW91bnQhKTtcbiAgICAgIGlmIChhbW91bnQuaXNQb3NpdGl2ZSgpICYmIHN0cmluZ2lmeUFjY291bnRJZCh0cmFuc2Zlci5hY2NvdW50SUQhKSAhPT0gYWNjKSB7XG4gICAgICAgIHRyYW5zZmVyRGF0YS5wdXNoKHtcbiAgICAgICAgICBhZGRyZXNzOiBzdHJpbmdpZnlBY2NvdW50SWQodHJhbnNmZXIuYWNjb3VudElEISksXG4gICAgICAgICAgYW1vdW50OiBhbW91bnQudG9TdHJpbmcoKSxcbiAgICAgICAgICAuLi4odG9rZW5UcmFuc2ZlcnMubGVuZ3RoICYmIHtcbiAgICAgICAgICAgIHRva2VuTmFtZTogdG9rZW5OYW1lLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi4odG9rZW5UcmFuc2ZlcnMubGVuZ3RoICYmIHtcbiAgICAgICAgdG9rZW5OYW1lOiB0b2tlbk5hbWUsXG4gICAgICB9KSxcbiAgICAgIHJlY2lwaWVudHM6IHRyYW5zZmVyRGF0YSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYWNjb3VudCB1cGRhdGUgc3Rha2luZyBkYXRhIGZyb20gdGhpcyB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcmV0dXJucyB7b2JqZWN0fSBUaGUgYWNjb3VudCB1cGRhdGUgcGFyYW1ldGVycyBpbmNsdWRpbmcgc3Rha2VkTm9kZUlkIGFuZCBkZWNsaW5lUmV3YXJkXG4gICAqL1xuICBwcml2YXRlIGdldEFjY291bnRVcGRhdGVEYXRhKCk6IHsgYWNjb3VudElkOiBzdHJpbmc7IHN0YWtlZE5vZGVJZD86IHN0cmluZzsgZGVjbGluZVJld2FyZD86IGJvb2xlYW4gfSB7XG4gICAgY29uc3QgdXBkYXRlQm9keSA9IHRoaXMuX3R4Qm9keS5jcnlwdG9VcGRhdGVBY2NvdW50ITtcbiAgICByZXR1cm4ge1xuICAgICAgYWNjb3VudElkOiBzdHJpbmdpZnlBY2NvdW50SWQodXBkYXRlQm9keS5hY2NvdW50SURUb1VwZGF0ZSEpLFxuICAgICAgLi4uKHVwZGF0ZUJvZHkuc3Rha2VkTm9kZUlkICE9IG51bGwgJiYge1xuICAgICAgICBzdGFrZWROb2RlSWQ6IExvbmcuZnJvbVZhbHVlKHVwZGF0ZUJvZHkuc3Rha2VkTm9kZUlkKS50b1N0cmluZygpLFxuICAgICAgfSksXG4gICAgICAuLi4odXBkYXRlQm9keS5kZWNsaW5lUmV3YXJkICE9IG51bGwgJiYge1xuICAgICAgICBkZWNsaW5lUmV3YXJkOlxuICAgICAgICAgIHR5cGVvZiB1cGRhdGVCb2R5LmRlY2xpbmVSZXdhcmQgPT09ICdib29sZWFuJ1xuICAgICAgICAgICAgPyB1cGRhdGVCb2R5LmRlY2xpbmVSZXdhcmRcbiAgICAgICAgICAgIDogKHVwZGF0ZUJvZHkuZGVjbGluZVJld2FyZCBhcyB7IHZhbHVlOiBib29sZWFuIH0pLnZhbHVlLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHJlY2lwaWVudCBhY2NvdW50IGFuZCB0aGUgYW1vdW50XG4gICAqIHRyYW5zZmVycmVkIG9uIHRoaXMgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHJldHVybnMgeyBhY2NvdW50SWQ6IHN0cmluZzsgdG9rZW5OYW1lc1tdfSBpcyBhbiBvYmplY3QgY29uc2lzdGluZyBvZiBhY2NvdW50SWQgZm9yIHRoZSB0b2tlbiBvd25lclxuICAgKiAgYW5kIGxpc3Qgb2YgdG9rZW5OYW1lcyB0aGF0IHdpbGwgYmUgZW5hYmxlZFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRBY2NvdW50QXNzb2NpYXRlRGF0YSgpOiB7IGFjY291bnRJZDogc3RyaW5nOyB0b2tlbk5hbWVzOiBzdHJpbmdbXSB9IHtcbiAgICBjb25zdCB0b2tlbnM6IHByb3RvLklUb2tlbklEW10gPSB0aGlzLl90eEJvZHkudG9rZW5Bc3NvY2lhdGUhLnRva2VucyB8fCBbXTtcbiAgICByZXR1cm4ge1xuICAgICAgYWNjb3VudElkOiBzdHJpbmdpZnlBY2NvdW50SWQodGhpcy5fdHhCb2R5LnRva2VuQXNzb2NpYXRlIS5hY2NvdW50ISksXG4gICAgICB0b2tlbk5hbWVzOiB0b2tlbnMubWFwKCh0b2tlbjogcHJvdG8uSVRva2VuSUQpID0+IGdldEhlZGVyYVRva2VuTmFtZUZyb21JZChzdHJpbmdpZnlUb2tlbklkKHRva2VuKSkhLm5hbWUpLFxuICAgIH07XG4gIH1cblxuICAvLyByZWdpb24gZ2V0dGVycyAmIHNldHRlcnNcbiAgZ2V0IHR4Qm9keSgpOiBwcm90by5UcmFuc2FjdGlvbkJvZHkge1xuICAgIHJldHVybiB0aGlzLl90eEJvZHk7XG4gIH1cblxuICBnZXQgaGVkZXJhVHgoKTogcHJvdG8uVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl9oZWRlcmFUeDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoaXMgdHJhbnNhY3Rpb24gYm9keSBjb21wb25lbnRzXG4gICAqXG4gICAqIEBwYXJhbSB7cHJvdG8uVHJhbnNhY3Rpb259IHR4IC0gQm9keSBUcmFuc2FjdGlvblxuICAgKi9cbiAgYm9keSh0eDogcHJvdG8uVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl90eEJvZHkgPSBwcm90by5UcmFuc2FjdGlvbkJvZHkuZGVjb2RlKHR4LmJvZHlCeXRlcyk7XG4gICAgdGhpcy5faGVkZXJhVHggPSB0eDtcbiAgICB0aGlzLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiB0eXBlXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgLSBUaGUgdHJhbnNhY3Rpb24gdHlwZSB0byBiZSBzZXRcbiAgICovXG4gIHNldFRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uVHlwZSk6IHZvaWQge1xuICAgIHRoaXMuX3R5cGUgPSB0cmFuc2FjdGlvblR5cGU7XG4gIH1cblxuICAvKipcbiAgICogRGVjb2RlIHByZXZpb3VzIHNpZ25hdHVyZXMgZnJvbSB0aGUgaW5uZXIgaGVkZXJhIHRyYW5zYWN0aW9uXG4gICAqIGFuZCBzYXZlIHRoZW0gaW50byB0aGUgYmFzZSB0cmFuc2FjdGlvbiBzaWduYXR1cmUgbGlzdC5cbiAgICovXG4gIGxvYWRQcmV2aW91c1NpZ25hdHVyZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2hlZGVyYVR4LnNpZ01hcCAmJiB0aGlzLl9oZWRlcmFUeC5zaWdNYXAuc2lnUGFpcikge1xuICAgICAgY29uc3Qgc2lnUGFpcnMgPSB0aGlzLl9oZWRlcmFUeC5zaWdNYXAuc2lnUGFpcjtcbiAgICAgIHNpZ1BhaXJzLmZvckVhY2goKHNpZ1BhaXIpID0+IHtcbiAgICAgICAgY29uc3Qgc2lnbmF0dXJlID0gc2lnUGFpci5lZDI1NTE5O1xuICAgICAgICBpZiAoc2lnbmF0dXJlKSB7XG4gICAgICAgICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHRvSGV4KHNpZ25hdHVyZSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgaW5wdXQgYW5kIG91dHB1dCBkYXRhIG9uIHRoaXMgdHJhbnNhY3Rpb24gdXNpbmcgdGhlIHRyYW5zYWN0aW9uIGpzb25cbiAgICogaWYgdGhlcmUgYXJlIG91dHB1dHMuIEZvciB0cmFuc2FjdGlvbnMgd2l0aG91dCBvdXRwdXRzIChlLmcuIHdhbGxldCBpbml0aWFsaXphdGlvbnMpLFxuICAgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IGRvIGFueXRoaW5nXG4gICAqL1xuICBsb2FkSW5wdXRzQW5kT3V0cHV0cygpOiB2b2lkIHtcbiAgICBjb25zdCB0eEpzb24gPSB0aGlzLnRvSnNvbigpO1xuICAgIGNvbnN0IGluc3RydWN0aW9uID0gdHhKc29uLmluc3RydWN0aW9uc0RhdGE7XG4gICAgY29uc3Qgb3V0cHV0czogRW50cnlbXSA9IFtdO1xuICAgIGNvbnN0IGlucHV0czogRW50cnlbXSA9IFtdO1xuXG4gICAgc3dpdGNoIChpbnN0cnVjdGlvbj8udHlwZSkge1xuICAgICAgY2FzZSBIZWRlcmFUcmFuc2FjdGlvblR5cGVzLlRyYW5zZmVyOlxuICAgICAgICBsZXQgdG90YWxBbW91bnQgPSBuZXcgQmlnTnVtYmVyKDApO1xuICAgICAgICBpbnN0cnVjdGlvbi5wYXJhbXMucmVjaXBpZW50cy5mb3JFYWNoKChyZWNpcGllbnQpID0+IHtcbiAgICAgICAgICB0b3RhbEFtb3VudCA9IHRvdGFsQW1vdW50LnBsdXMocmVjaXBpZW50LmFtb3VudCk7XG4gICAgICAgICAgb3V0cHV0cy5wdXNoKHtcbiAgICAgICAgICAgIGFkZHJlc3M6IHJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgICAgICAgdmFsdWU6IHJlY2lwaWVudC5hbW91bnQsXG4gICAgICAgICAgICBjb2luOiByZWNpcGllbnQudG9rZW5OYW1lIHx8IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlucHV0cy5wdXNoKHtcbiAgICAgICAgICBhZGRyZXNzOiB0eEpzb24uZnJvbSxcbiAgICAgICAgICB2YWx1ZTogdG90YWxBbW91bnQudG9TdHJpbmcoKSxcbiAgICAgICAgICBjb2luOiBpbnN0cnVjdGlvbi5wYXJhbXMudG9rZW5OYW1lIHx8IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuVG9rZW5Bc3NvY2lhdGVUb0FjY291bnQ6XG4gICAgICAgIGluc3RydWN0aW9uLnBhcmFtcy50b2tlbk5hbWVzLmZvckVhY2goKHRva2VuTmFtZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRva2VuRW50cnk6IEVudHJ5ID0ge1xuICAgICAgICAgICAgYWRkcmVzczogaW5zdHJ1Y3Rpb24ucGFyYW1zLmFjY291bnRJZCxcbiAgICAgICAgICAgIHZhbHVlOiAnMCcsXG4gICAgICAgICAgICBjb2luOiB0b2tlbk5hbWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpbnB1dHMucHVzaCh0b2tlbkVudHJ5KTtcbiAgICAgICAgICBvdXRwdXRzLnB1c2godG9rZW5FbnRyeSk7XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBIZWRlcmFUcmFuc2FjdGlvblR5cGVzLkFjY291bnRVcGRhdGU6XG4gICAgICAgIGlucHV0cy5wdXNoKHtcbiAgICAgICAgICBhZGRyZXNzOiB0eEpzb24uZnJvbSxcbiAgICAgICAgICB2YWx1ZTogJzAnLFxuICAgICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgICAgfSk7XG4gICAgICAgIG91dHB1dHMucHVzaCh7XG4gICAgICAgICAgYWRkcmVzczogaW5zdHJ1Y3Rpb24ucGFyYW1zLmFjY291bnRJZCxcbiAgICAgICAgICB2YWx1ZTogJzAnLFxuICAgICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLl9pbnB1dHMgPSBpbnB1dHM7XG4gICAgdGhpcy5fb3V0cHV0cyA9IG91dHB1dHM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGlzIHRyYW5zYWN0aW9uIGJvZHkgY29tcG9uZW50c1xuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGJ5dGVzIC0gRW5jb2RlZCBib2R5IHRyYW5zYWN0aW9uXG4gICAqL1xuICBib2R5Qnl0ZXMoYnl0ZXM6IFVpbnQ4QXJyYXkpOiB2b2lkIHtcbiAgICB0aGlzLmJvZHkocHJvdG8uVHJhbnNhY3Rpb24uZGVjb2RlKGJ5dGVzKSk7XG4gIH1cbiAgLy8gZW5kcmVnaW9uXG5cbiAgLy8gcmVnaW9uIGhlbHBlcnNcbiAgLyoqXG4gICAqIFJldHVybnMgdGhpcyBoZWRlcmEgdHJhbnNhY3Rpb24gaWQgY29tcG9uZW50cyBpbiBhIHJlYWRhYmxlIGZvcm1hdFxuICAgKlxuICAgKiBAcmV0dXJucyB7W3N0cmluZywgc3RyaW5nXX0gLSBUcmFuc2FjdGlvbiBpZCBwYXJ0cyBbPGFjY291bnQgaWQ+LCA8c3RhcnRUaW1lIGluIHNlY29uZHM+XVxuICAgKi9cbiAgZ2V0VHhJZFBhcnRzKCk6IFtzdHJpbmcsIHN0cmluZ10ge1xuICAgIGlmIChcbiAgICAgIHRoaXMuX3R4Qm9keSAmJlxuICAgICAgdGhpcy5fdHhCb2R5LnRyYW5zYWN0aW9uSUQgJiZcbiAgICAgIHRoaXMuX3R4Qm9keS50cmFuc2FjdGlvbklELmFjY291bnRJRCAmJlxuICAgICAgdGhpcy5fdHhCb2R5LnRyYW5zYWN0aW9uSUQudHJhbnNhY3Rpb25WYWxpZFN0YXJ0XG4gICAgKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBzdHJpbmdpZnlBY2NvdW50SWQodGhpcy5fdHhCb2R5LnRyYW5zYWN0aW9uSUQuYWNjb3VudElEKSxcbiAgICAgICAgc3RyaW5naWZ5VHhUaW1lKHRoaXMuX3R4Qm9keS50cmFuc2FjdGlvbklELnRyYW5zYWN0aW9uVmFsaWRTdGFydCksXG4gICAgICBdO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgdHJhbnNhY3Rpb24gaWQgaW5mb3JtYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoaXMgdHJhbnNhY3Rpb24gaGFzaFxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSB0cmFuc2FjdGlvbiBoYXNoXG4gICAqL1xuICBnZXRUeEhhc2goKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX3R4Qm9keS5ub2RlQWNjb3VudElEKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgdHJhbnNhY3Rpb24gbm9kZSBpZCcpO1xuICAgIH1cbiAgICBjb25zdCBfc2lnbmVkVHggPSBuZXcgcHJvdG8uU2lnbmVkVHJhbnNhY3Rpb24oKTtcbiAgICBfc2lnbmVkVHguc2lnTWFwID0gdGhpcy5faGVkZXJhVHguc2lnTWFwO1xuICAgIF9zaWduZWRUeC5ib2R5Qnl0ZXMgPSB0aGlzLl9oZWRlcmFUeC5ib2R5Qnl0ZXM7XG5cbiAgICBjb25zdCBlbmNvZGVyID0gcHJvdG8uU2lnbmVkVHJhbnNhY3Rpb247XG4gICAgcmV0dXJuIHRoaXMuc2hhKHRoaXMuZW5jb2RlKF9zaWduZWRUeCwgZW5jb2RlcikpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuY29kZSBhbiBvYmplY3QgdXNpbmcgdGhlIGdpdmVuIGVuY29kZXIgY2xhc3NcbiAgICpcbiAgICogQHBhcmFtIHtwcm90b30gb2JqIC0gVGhlIG9iamVjdCB0byBiZSBlbmNvZGVkLCBtdXN0IGJlIGluIHByb3RvIG5hbWVzcGFjZVxuICAgKiBAcGFyYW0gZW5jb2RlciAtIE9iamVjdCBlbmNvZGVyXG4gICAqIEByZXR1cm5zIHtVaW50OEFycmF5fSAtIEVuY29kZWQgb2JqZWN0IGJ5dGUgYXJyYXlcbiAgICovXG4gIHByaXZhdGUgZW5jb2RlPEN0b3JGbiBleHRlbmRzIHsgbmV3ICgpOiBUIH0sIFQgZXh0ZW5kcyB7IGNvbnN0cnVjdG9yOiBDdG9yRm4gfT4oXG4gICAgb2JqOiBULFxuICAgIGVuY29kZXI6IHsgZW5jb2RlKGFyZzogVCk6IFdyaXRlciB9XG4gICk6IFVpbnQ4QXJyYXkge1xuICAgIHJldHVybiBlbmNvZGVyLmVuY29kZShvYmopLmZpbmlzaCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzaGEtMzg0IGhhc2hcbiAgICpcbiAgICogQHBhcmFtIHtVaW50OEFycmF5fSBieXRlcyAtIEJ5dGVzIHRvIGJlIGhhc2hlZFxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSByZXN1bHRpbmcgaGFzaCBzdHJpbmdcbiAgICovXG4gIHNoYShieXRlczogVWludDhBcnJheSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRvSGV4KGhhc2goYnl0ZXMpKTtcbiAgfVxufVxuIl19
373
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDhDQUFzSDtBQUN0SCw4Q0FBeUM7QUFDekMsZ0VBQXFDO0FBRXJDLGdEQUFrQztBQUNsQyxnREFBd0I7QUFDeEIsNENBQXlDO0FBRXpDLG1DQUEwRztBQUUxRywyQ0FBcUQ7QUFFckQsTUFBYSxXQUFZLFNBQVEsMEJBQWU7SUFLOUMsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixPQUFPLENBQUMsR0FBWTtRQUNsQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQWdCO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSx1QkFBWSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLElBQUEsdUJBQVksRUFBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUEsZ0JBQUssRUFBQyxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUMsU0FBaUIsRUFBRSxHQUFZ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YUFBYSxDQUFDLFNBQVMsQ0FBQztnQkFDeEQsSUFBQSx1QkFBZSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDO2FBQ2xFLENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxhQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNoRCxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ3pDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7UUFFL0MsTUFBTSxPQUFPLEdBQUcsYUFBSyxDQUFDLGlCQUFpQixDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxNQUFNLENBQ1osR0FBTSxFQUNOLE9BQW1DO1FBRW5DLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxHQUFHLENBQUMsS0FBaUI7UUFDbkIsT0FBTyxJQUFBLGdCQUFLLEVBQUMsSUFBQSxhQUFJLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUFoWEQsa0NBZ1hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEJhc2VLZXksIEJhc2VUcmFuc2FjdGlvbiwgRW50cnksIFNpZ25pbmdFcnJvciwgdG9IZXgsIHRvVWludDhBcnJheSwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAc3RhYmxlbGliL3NoYTM4NCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBXcml0ZXIgfSBmcm9tICdwcm90b2J1ZmpzJztcbmltcG9ydCAqIGFzIG5hY2wgZnJvbSAndHdlZXRuYWNsJztcbmltcG9ydCBMb25nIGZyb20gJ2xvbmcnO1xuaW1wb3J0IHsgcHJvdG8gfSBmcm9tICdAaGFzaGdyYXBoL3Byb3RvJztcbmltcG9ydCB7IFR4RGF0YSwgUmVjaXBpZW50IH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBzdHJpbmdpZnlBY2NvdW50SWQsIHN0cmluZ2lmeVR4VGltZSwgc3RyaW5naWZ5VG9rZW5JZCwgZ2V0SGVkZXJhVG9rZW5OYW1lRnJvbUlkIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi8nO1xuaW1wb3J0IHsgSGVkZXJhVHJhbnNhY3Rpb25UeXBlcyB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSBfaGVkZXJhVHg6IHByb3RvLlRyYW5zYWN0aW9uO1xuICBwcml2YXRlIF90eEJvZHk6IHByb3RvLlRyYW5zYWN0aW9uQm9keTtcbiAgcHJvdGVjdGVkIF90eXBlOiBUcmFuc2FjdGlvblR5cGU7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBzaWduKGtleVBhaXI6IEtleVBhaXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBrZXlzID0ga2V5UGFpci5nZXRLZXlzKHRydWUpO1xuICAgIGlmICgha2V5cy5wcnYpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgICB9XG4gICAgY29uc3Qgc2VjcmV0S2V5ID0gdG9VaW50OEFycmF5KGtleXMucHJ2ICsga2V5cy5wdWIpO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IG5hY2wuc2lnbi5kZXRhY2hlZCh0aGlzLl9oZWRlcmFUeC5ib2R5Qnl0ZXMsIHNlY3JldEtleSk7XG4gICAgdGhpcy5hZGRTaWduYXR1cmUodG9IZXgoc2lnbmF0dXJlKSwga2V5UGFpcik7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgc2lnbmF0dXJlIHRvIHRoaXMgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNpZ25hdHVyZSAtIFRoZSBzaWduYXR1cmUgdG8gYWRkLCBpbiBzdHJpbmcgaGV4IGZvcm1hdFxuICAgKiBAcGFyYW0ge0tleVBhaXJ9IGtleSAtIFRoZSBrZXkgb2YgdGhlIGtleSB0aGF0IGNyZWF0ZWQgdGhlIHNpZ25hdHVyZVxuICAgKi9cbiAgYWRkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nLCBrZXk6IEtleVBhaXIpOiB2b2lkIHtcbiAgICBjb25zdCBzaWdQYWlyID0gbmV3IHByb3RvLlNpZ25hdHVyZVBhaXIoKTtcbiAgICBzaWdQYWlyLnB1YktleVByZWZpeCA9IHRvVWludDhBcnJheShrZXkuZ2V0S2V5cyh0cnVlKS5wdWIpO1xuICAgIHNpZ1BhaXIuZWQyNTUxOSA9IHRvVWludDhBcnJheShzaWduYXR1cmUpO1xuXG4gICAgY29uc3Qgc2lnTWFwID0gdGhpcy5faGVkZXJhVHguc2lnTWFwIHx8IG5ldyBwcm90by5TaWduYXR1cmVNYXAoKTtcbiAgICBzaWdNYXAuc2lnUGFpciEucHVzaChzaWdQYWlyKTtcbiAgICB0aGlzLl9oZWRlcmFUeC5zaWdNYXAgPSBzaWdNYXA7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBlbmNvZGVyID0gcHJvdG8uVHJhbnNhY3Rpb247XG4gICAgcmV0dXJuIHRvSGV4KHRoaXMuZW5jb2RlKHRoaXMuX2hlZGVyYVR4LCBlbmNvZGVyKSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGlzIHRyYW5zYWN0aW9uIHBheWxvYWRcbiAgICpcbiAgICogQHBhcmFtIHJhd1RyYW5zYWN0aW9uXG4gICAqL1xuICBmcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IFVpbnQ4QXJyYXkgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBidWZmZXIgPSB0eXBlb2YgcmF3VHJhbnNhY3Rpb24gPT09ICdzdHJpbmcnID8gdG9VaW50OEFycmF5KHJhd1RyYW5zYWN0aW9uKSA6IHJhd1RyYW5zYWN0aW9uO1xuICAgIHRoaXMuYm9keUJ5dGVzKGJ1ZmZlcik7XG4gICAgc3dpdGNoICh0aGlzLnR4Qm9keS5kYXRhKSB7XG4gICAgICBjYXNlIEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuVHJhbnNmZXI6XG4gICAgICAgIHRoaXMuc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuQ3JlYXRlQWNjb3VudDpcbiAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuVG9rZW5Bc3NvY2lhdGVUb0FjY291bnQ6XG4gICAgICAgIHRoaXMuc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5Bc3NvY2lhdGVkVG9rZW5BY2NvdW50SW5pdGlhbGl6YXRpb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgSGVkZXJhVHJhbnNhY3Rpb25UeXBlcy5BY2NvdW50VXBkYXRlOlxuICAgICAgICB0aGlzLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuQWNjb3VudFVwZGF0ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBjb25zdCBbYWNjLCB0aW1lXSA9IHRoaXMuZ2V0VHhJZFBhcnRzKCk7XG4gICAgY29uc3QgcmVzdWx0OiBUeERhdGEgPSB7XG4gICAgICBpZDogYWNjICsgJ0AnICsgdGltZSxcbiAgICAgIGhhc2g6IHRoaXMuZ2V0VHhIYXNoKCksIC8vIFRPRE86IFVwZGF0ZSBvbmNlIGhlZGVyYS1zZGsgcmVsZWFzZSB0aGlzIGZ1bmN0aW9uYWxpdHkgQkdBLTI4NFxuICAgICAgZGF0YTogdG9IZXgodGhpcy5faGVkZXJhVHguYm9keUJ5dGVzKSxcbiAgICAgIGZlZTogbmV3IEJpZ051bWJlcih0aGlzLl90eEJvZHkudHJhbnNhY3Rpb25GZWUhLnRvU3RyaW5nKCkpLnRvTnVtYmVyKCksXG4gICAgICBmcm9tOiBhY2MsXG4gICAgICBzdGFydFRpbWU6IHRpbWUsXG4gICAgICB2YWxpZER1cmF0aW9uOiB0aGlzLl90eEJvZHkudHJhbnNhY3Rpb25WYWxpZER1cmF0aW9uIS5zZWNvbmRzIS50b1N0cmluZygpLFxuICAgICAgbm9kZTogc3RyaW5naWZ5QWNjb3VudElkKHRoaXMuX3R4Qm9keS5ub2RlQWNjb3VudElEISksXG4gICAgICBtZW1vOiB0aGlzLl90eEJvZHkubWVtbyxcbiAgICB9O1xuXG4gICAgc3dpdGNoICh0aGlzLl90eEJvZHkuZGF0YSkge1xuICAgICAgY2FzZSBIZWRlcmFUcmFuc2FjdGlvblR5cGVzLlRyYW5zZmVyOlxuICAgICAgICByZXN1bHQuaW5zdHJ1Y3Rpb25zRGF0YSA9IHtcbiAgICAgICAgICB0eXBlOiBIZWRlcmFUcmFuc2FjdGlvblR5cGVzLlRyYW5zZmVyLFxuICAgICAgICAgIHBhcmFtczogdGhpcy5nZXRUcmFuc2ZlckRhdGEoKSxcbiAgICAgICAgfTtcbiAgICAgICAgcmVzdWx0LnRvID0gcmVzdWx0Lmluc3RydWN0aW9uc0RhdGEucGFyYW1zLnJlY2lwaWVudHNbMF0uYWRkcmVzcztcbiAgICAgICAgcmVzdWx0LmFtb3VudCA9IHJlc3VsdC5pbnN0cnVjdGlvbnNEYXRhLnBhcmFtcy5yZWNpcGllbnRzWzBdLmFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuVG9rZW5Bc3NvY2lhdGVUb0FjY291bnQ6XG4gICAgICAgIHJlc3VsdC5pbnN0cnVjdGlvbnNEYXRhID0ge1xuICAgICAgICAgIHR5cGU6IEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuVG9rZW5Bc3NvY2lhdGVUb0FjY291bnQsXG4gICAgICAgICAgcGFyYW1zOiB0aGlzLmdldEFjY291bnRBc3NvY2lhdGVEYXRhKCksXG4gICAgICAgIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBIZWRlcmFUcmFuc2FjdGlvblR5cGVzLkFjY291bnRVcGRhdGU6XG4gICAgICAgIHJlc3VsdC5pbnN0cnVjdGlvbnNEYXRhID0ge1xuICAgICAgICAgIHR5cGU6IEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuQWNjb3VudFVwZGF0ZSxcbiAgICAgICAgICBwYXJhbXM6IHRoaXMuZ2V0QWNjb3VudFVwZGF0ZURhdGEoKSxcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHJlY2lwaWVudCBhY2NvdW50IGFuZCB0aGUgYW1vdW50XG4gICAqIHRyYW5zZmVycmVkIG9uIHRoaXMgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHJldHVybnMgeyB0b2tlbk5hbWUsIFJlY2lwaWVudFtdfSBpcyBvYmplY3QgY29uc2lzdGluZyBvZiB0b2tlbk5hbWUgaWYgaXQncyBhIHRva2VuIHRyYW5zZmVyIGFuZCByZWNpcGllbnRzIGNvbnNpc3RpbmdcbiAgICogIHRoZSByZWNpcGllbnQgYWRkcmVzcywgdGhlIHRyYW5zZmVyIGFtb3VudCwgYW5kIHRoZSB0b2tlbiBuYW1lIGZvciB0b2tlbiB0cmFuc2ZlclxuICAgKi9cbiAgcHJpdmF0ZSBnZXRUcmFuc2ZlckRhdGEoKTogeyB0b2tlbk5hbWU/OiBzdHJpbmc7IHJlY2lwaWVudHM6IFJlY2lwaWVudFtdIH0ge1xuICAgIGNvbnN0IFthY2NdID0gdGhpcy5nZXRUeElkUGFydHMoKTtcbiAgICBjb25zdCB0cmFuc2ZlckRhdGE6IFJlY2lwaWVudFtdID0gW107XG4gICAgY29uc3QgdG9rZW5UcmFuc2ZlcnM6IHByb3RvLklUb2tlblRyYW5zZmVyTGlzdFtdID0gdGhpcy5fdHhCb2R5LmNyeXB0b1RyYW5zZmVyPy50b2tlblRyYW5zZmVycyB8fCBbXTtcbiAgICBjb25zdCB0cmFuc2ZlcnM6IHByb3RvLklBY2NvdW50QW1vdW50W10gPVxuICAgICAgdG9rZW5UcmFuc2ZlcnNbMF0/LnRyYW5zZmVycyB8fCB0aGlzLl90eEJvZHkuY3J5cHRvVHJhbnNmZXI/LnRyYW5zZmVycz8uYWNjb3VudEFtb3VudHMgfHwgW107XG4gICAgY29uc3QgdG9rZW5OYW1lID0gdG9rZW5UcmFuc2ZlcnMubGVuZ3RoXG4gICAgICA/IGdldEhlZGVyYVRva2VuTmFtZUZyb21JZChzdHJpbmdpZnlUb2tlbklkKHRva2VuVHJhbnNmZXJzWzBdLnRva2VuISkpPy5uYW1lXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHRyYW5zZmVycy5mb3JFYWNoKCh0cmFuc2ZlcikgPT4ge1xuICAgICAgY29uc3QgYW1vdW50ID0gTG9uZy5mcm9tVmFsdWUodHJhbnNmZXIuYW1vdW50ISk7XG4gICAgICBpZiAoYW1vdW50LmlzUG9zaXRpdmUoKSAmJiBzdHJpbmdpZnlBY2NvdW50SWQodHJhbnNmZXIuYWNjb3VudElEISkgIT09IGFjYykge1xuICAgICAgICB0cmFuc2ZlckRhdGEucHVzaCh7XG4gICAgICAgICAgYWRkcmVzczogc3RyaW5naWZ5QWNjb3VudElkKHRyYW5zZmVyLmFjY291bnRJRCEpLFxuICAgICAgICAgIGFtb3VudDogYW1vdW50LnRvU3RyaW5nKCksXG4gICAgICAgICAgLi4uKHRva2VuVHJhbnNmZXJzLmxlbmd0aCAmJiB7XG4gICAgICAgICAgICB0b2tlbk5hbWU6IHRva2VuTmFtZSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uKHRva2VuVHJhbnNmZXJzLmxlbmd0aCAmJiB7XG4gICAgICAgIHRva2VuTmFtZTogdG9rZW5OYW1lLFxuICAgICAgfSksXG4gICAgICByZWNpcGllbnRzOiB0cmFuc2ZlckRhdGEsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGFjY291bnQgdXBkYXRlIHN0YWtpbmcgZGF0YSBmcm9tIHRoaXMgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHJldHVybnMge29iamVjdH0gVGhlIGFjY291bnQgdXBkYXRlIHBhcmFtZXRlcnMgaW5jbHVkaW5nIHN0YWtlZE5vZGVJZCBhbmQgZGVjbGluZVJld2FyZFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRBY2NvdW50VXBkYXRlRGF0YSgpOiB7XG4gICAgYWNjb3VudElkOiBzdHJpbmc7XG4gICAgc3Rha2VkTm9kZUlkPzogc3RyaW5nO1xuICAgIHN0YWtlZEFjY291bnRJZD86IHN0cmluZztcbiAgICBkZWNsaW5lUmV3YXJkPzogYm9vbGVhbjtcbiAgfSB7XG4gICAgY29uc3QgdXBkYXRlQm9keSA9IHRoaXMuX3R4Qm9keS5jcnlwdG9VcGRhdGVBY2NvdW50ITtcbiAgICByZXR1cm4ge1xuICAgICAgYWNjb3VudElkOiBzdHJpbmdpZnlBY2NvdW50SWQodXBkYXRlQm9keS5hY2NvdW50SURUb1VwZGF0ZSEpLFxuICAgICAgLi4uKHVwZGF0ZUJvZHkuc3Rha2VkTm9kZUlkICE9IG51bGwgJiYge1xuICAgICAgICBzdGFrZWROb2RlSWQ6IExvbmcuZnJvbVZhbHVlKHVwZGF0ZUJvZHkuc3Rha2VkTm9kZUlkKS50b1N0cmluZygpLFxuICAgICAgfSksXG4gICAgICAuLi4odXBkYXRlQm9keS5zdGFrZWRBY2NvdW50SWQgJiYge1xuICAgICAgICBzdGFrZWRBY2NvdW50SWQ6IHN0cmluZ2lmeUFjY291bnRJZCh1cGRhdGVCb2R5LnN0YWtlZEFjY291bnRJZCksXG4gICAgICB9KSxcbiAgICAgIC4uLih1cGRhdGVCb2R5LmRlY2xpbmVSZXdhcmQgIT0gbnVsbCAmJiB7XG4gICAgICAgIGRlY2xpbmVSZXdhcmQ6XG4gICAgICAgICAgdHlwZW9mIHVwZGF0ZUJvZHkuZGVjbGluZVJld2FyZCA9PT0gJ2Jvb2xlYW4nXG4gICAgICAgICAgICA/IHVwZGF0ZUJvZHkuZGVjbGluZVJld2FyZFxuICAgICAgICAgICAgOiAodXBkYXRlQm9keS5kZWNsaW5lUmV3YXJkIGFzIHsgdmFsdWU6IGJvb2xlYW4gfSkudmFsdWUsXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcmVjaXBpZW50IGFjY291bnQgYW5kIHRoZSBhbW91bnRcbiAgICogdHJhbnNmZXJyZWQgb24gdGhpcyB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcmV0dXJucyB7IGFjY291bnRJZDogc3RyaW5nOyB0b2tlbk5hbWVzW119IGlzIGFuIG9iamVjdCBjb25zaXN0aW5nIG9mIGFjY291bnRJZCBmb3IgdGhlIHRva2VuIG93bmVyXG4gICAqICBhbmQgbGlzdCBvZiB0b2tlbk5hbWVzIHRoYXQgd2lsbCBiZSBlbmFibGVkXG4gICAqL1xuICBwcml2YXRlIGdldEFjY291bnRBc3NvY2lhdGVEYXRhKCk6IHsgYWNjb3VudElkOiBzdHJpbmc7IHRva2VuTmFtZXM6IHN0cmluZ1tdIH0ge1xuICAgIGNvbnN0IHRva2VuczogcHJvdG8uSVRva2VuSURbXSA9IHRoaXMuX3R4Qm9keS50b2tlbkFzc29jaWF0ZSEudG9rZW5zIHx8IFtdO1xuICAgIHJldHVybiB7XG4gICAgICBhY2NvdW50SWQ6IHN0cmluZ2lmeUFjY291bnRJZCh0aGlzLl90eEJvZHkudG9rZW5Bc3NvY2lhdGUhLmFjY291bnQhKSxcbiAgICAgIHRva2VuTmFtZXM6IHRva2Vucy5tYXAoKHRva2VuOiBwcm90by5JVG9rZW5JRCkgPT4gZ2V0SGVkZXJhVG9rZW5OYW1lRnJvbUlkKHN0cmluZ2lmeVRva2VuSWQodG9rZW4pKSEubmFtZSksXG4gICAgfTtcbiAgfVxuXG4gIC8vIHJlZ2lvbiBnZXR0ZXJzICYgc2V0dGVyc1xuICBnZXQgdHhCb2R5KCk6IHByb3RvLlRyYW5zYWN0aW9uQm9keSB7XG4gICAgcmV0dXJuIHRoaXMuX3R4Qm9keTtcbiAgfVxuXG4gIGdldCBoZWRlcmFUeCgpOiBwcm90by5UcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX2hlZGVyYVR4O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhpcyB0cmFuc2FjdGlvbiBib2R5IGNvbXBvbmVudHNcbiAgICpcbiAgICogQHBhcmFtIHtwcm90by5UcmFuc2FjdGlvbn0gdHggLSBCb2R5IFRyYW5zYWN0aW9uXG4gICAqL1xuICBib2R5KHR4OiBwcm90by5UcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3R4Qm9keSA9IHByb3RvLlRyYW5zYWN0aW9uQm9keS5kZWNvZGUodHguYm9keUJ5dGVzKTtcbiAgICB0aGlzLl9oZWRlcmFUeCA9IHR4O1xuICAgIHRoaXMubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGVcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblR5cGV9IHRyYW5zYWN0aW9uVHlwZSAtIFRoZSB0cmFuc2FjdGlvbiB0eXBlIHRvIGJlIHNldFxuICAgKi9cbiAgc2V0VHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGUgcHJldmlvdXMgc2lnbmF0dXJlcyBmcm9tIHRoZSBpbm5lciBoZWRlcmEgdHJhbnNhY3Rpb25cbiAgICogYW5kIHNhdmUgdGhlbSBpbnRvIHRoZSBiYXNlIHRyYW5zYWN0aW9uIHNpZ25hdHVyZSBsaXN0LlxuICAgKi9cbiAgbG9hZFByZXZpb3VzU2lnbmF0dXJlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faGVkZXJhVHguc2lnTWFwICYmIHRoaXMuX2hlZGVyYVR4LnNpZ01hcC5zaWdQYWlyKSB7XG4gICAgICBjb25zdCBzaWdQYWlycyA9IHRoaXMuX2hlZGVyYVR4LnNpZ01hcC5zaWdQYWlyO1xuICAgICAgc2lnUGFpcnMuZm9yRWFjaCgoc2lnUGFpcikgPT4ge1xuICAgICAgICBjb25zdCBzaWduYXR1cmUgPSBzaWdQYWlyLmVkMjU1MTk7XG4gICAgICAgIGlmIChzaWduYXR1cmUpIHtcbiAgICAgICAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2godG9IZXgoc2lnbmF0dXJlKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGRhdGEgb24gdGhpcyB0cmFuc2FjdGlvbiB1c2luZyB0aGUgdHJhbnNhY3Rpb24ganNvblxuICAgKiBpZiB0aGVyZSBhcmUgb3V0cHV0cy4gRm9yIHRyYW5zYWN0aW9ucyB3aXRob3V0IG91dHB1dHMgKGUuZy4gd2FsbGV0IGluaXRpYWxpemF0aW9ucyksXG4gICAqIHRoaXMgZnVuY3Rpb24gd2lsbCBub3QgZG8gYW55dGhpbmdcbiAgICovXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGNvbnN0IHR4SnNvbiA9IHRoaXMudG9Kc29uKCk7XG4gICAgY29uc3QgaW5zdHJ1Y3Rpb24gPSB0eEpzb24uaW5zdHJ1Y3Rpb25zRGF0YTtcbiAgICBjb25zdCBvdXRwdXRzOiBFbnRyeVtdID0gW107XG4gICAgY29uc3QgaW5wdXRzOiBFbnRyeVtdID0gW107XG5cbiAgICBzd2l0Y2ggKGluc3RydWN0aW9uPy50eXBlKSB7XG4gICAgICBjYXNlIEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuVHJhbnNmZXI6XG4gICAgICAgIGxldCB0b3RhbEFtb3VudCA9IG5ldyBCaWdOdW1iZXIoMCk7XG4gICAgICAgIGluc3RydWN0aW9uLnBhcmFtcy5yZWNpcGllbnRzLmZvckVhY2goKHJlY2lwaWVudCkgPT4ge1xuICAgICAgICAgIHRvdGFsQW1vdW50ID0gdG90YWxBbW91bnQucGx1cyhyZWNpcGllbnQuYW1vdW50KTtcbiAgICAgICAgICBvdXRwdXRzLnB1c2goe1xuICAgICAgICAgICAgYWRkcmVzczogcmVjaXBpZW50LmFkZHJlc3MsXG4gICAgICAgICAgICB2YWx1ZTogcmVjaXBpZW50LmFtb3VudCxcbiAgICAgICAgICAgIGNvaW46IHJlY2lwaWVudC50b2tlbk5hbWUgfHwgdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgaW5wdXRzLnB1c2goe1xuICAgICAgICAgIGFkZHJlc3M6IHR4SnNvbi5mcm9tLFxuICAgICAgICAgIHZhbHVlOiB0b3RhbEFtb3VudC50b1N0cmluZygpLFxuICAgICAgICAgIGNvaW46IGluc3RydWN0aW9uLnBhcmFtcy50b2tlbk5hbWUgfHwgdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgSGVkZXJhVHJhbnNhY3Rpb25UeXBlcy5Ub2tlbkFzc29jaWF0ZVRvQWNjb3VudDpcbiAgICAgICAgaW5zdHJ1Y3Rpb24ucGFyYW1zLnRva2VuTmFtZXMuZm9yRWFjaCgodG9rZW5OYW1lKSA9PiB7XG4gICAgICAgICAgY29uc3QgdG9rZW5FbnRyeTogRW50cnkgPSB7XG4gICAgICAgICAgICBhZGRyZXNzOiBpbnN0cnVjdGlvbi5wYXJhbXMuYWNjb3VudElkLFxuICAgICAgICAgICAgdmFsdWU6ICcwJyxcbiAgICAgICAgICAgIGNvaW46IHRva2VuTmFtZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlucHV0cy5wdXNoKHRva2VuRW50cnkpO1xuICAgICAgICAgIG91dHB1dHMucHVzaCh0b2tlbkVudHJ5KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEhlZGVyYVRyYW5zYWN0aW9uVHlwZXMuQWNjb3VudFVwZGF0ZTpcbiAgICAgICAgaW5wdXRzLnB1c2goe1xuICAgICAgICAgIGFkZHJlc3M6IHR4SnNvbi5mcm9tLFxuICAgICAgICAgIHZhbHVlOiAnMCcsXG4gICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICB9KTtcbiAgICAgICAgb3V0cHV0cy5wdXNoKHtcbiAgICAgICAgICBhZGRyZXNzOiBpbnN0cnVjdGlvbi5wYXJhbXMuYWNjb3VudElkLFxuICAgICAgICAgIHZhbHVlOiAnMCcsXG4gICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMuX2lucHV0cyA9IGlucHV0cztcbiAgICB0aGlzLl9vdXRwdXRzID0gb3V0cHV0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoaXMgdHJhbnNhY3Rpb24gYm9keSBjb21wb25lbnRzXG4gICAqXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0gYnl0ZXMgLSBFbmNvZGVkIGJvZHkgdHJhbnNhY3Rpb25cbiAgICovXG4gIGJvZHlCeXRlcyhieXRlczogVWludDhBcnJheSk6IHZvaWQge1xuICAgIHRoaXMuYm9keShwcm90by5UcmFuc2FjdGlvbi5kZWNvZGUoYnl0ZXMpKTtcbiAgfVxuICAvLyBlbmRyZWdpb25cblxuICAvLyByZWdpb24gaGVscGVyc1xuICAvKipcbiAgICogUmV0dXJucyB0aGlzIGhlZGVyYSB0cmFuc2FjdGlvbiBpZCBjb21wb25lbnRzIGluIGEgcmVhZGFibGUgZm9ybWF0XG4gICAqXG4gICAqIEByZXR1cm5zIHtbc3RyaW5nLCBzdHJpbmddfSAtIFRyYW5zYWN0aW9uIGlkIHBhcnRzIFs8YWNjb3VudCBpZD4sIDxzdGFydFRpbWUgaW4gc2Vjb25kcz5dXG4gICAqL1xuICBnZXRUeElkUGFydHMoKTogW3N0cmluZywgc3RyaW5nXSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5fdHhCb2R5ICYmXG4gICAgICB0aGlzLl90eEJvZHkudHJhbnNhY3Rpb25JRCAmJlxuICAgICAgdGhpcy5fdHhCb2R5LnRyYW5zYWN0aW9uSUQuYWNjb3VudElEICYmXG4gICAgICB0aGlzLl90eEJvZHkudHJhbnNhY3Rpb25JRC50cmFuc2FjdGlvblZhbGlkU3RhcnRcbiAgICApIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHN0cmluZ2lmeUFjY291bnRJZCh0aGlzLl90eEJvZHkudHJhbnNhY3Rpb25JRC5hY2NvdW50SUQpLFxuICAgICAgICBzdHJpbmdpZnlUeFRpbWUodGhpcy5fdHhCb2R5LnRyYW5zYWN0aW9uSUQudHJhbnNhY3Rpb25WYWxpZFN0YXJ0KSxcbiAgICAgIF07XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyB0cmFuc2FjdGlvbiBpZCBpbmZvcm1hdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhpcyB0cmFuc2FjdGlvbiBoYXNoXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIHRyYW5zYWN0aW9uIGhhc2hcbiAgICovXG4gIGdldFR4SGFzaCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fdHhCb2R5Lm5vZGVBY2NvdW50SUQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyB0cmFuc2FjdGlvbiBub2RlIGlkJyk7XG4gICAgfVxuICAgIGNvbnN0IF9zaWduZWRUeCA9IG5ldyBwcm90by5TaWduZWRUcmFuc2FjdGlvbigpO1xuICAgIF9zaWduZWRUeC5zaWdNYXAgPSB0aGlzLl9oZWRlcmFUeC5zaWdNYXA7XG4gICAgX3NpZ25lZFR4LmJvZHlCeXRlcyA9IHRoaXMuX2hlZGVyYVR4LmJvZHlCeXRlcztcblxuICAgIGNvbnN0IGVuY29kZXIgPSBwcm90by5TaWduZWRUcmFuc2FjdGlvbjtcbiAgICByZXR1cm4gdGhpcy5zaGEodGhpcy5lbmNvZGUoX3NpZ25lZFR4LCBlbmNvZGVyKSk7XG4gIH1cblxuICAvKipcbiAgICogRW5jb2RlIGFuIG9iamVjdCB1c2luZyB0aGUgZ2l2ZW4gZW5jb2RlciBjbGFzc1xuICAgKlxuICAgKiBAcGFyYW0ge3Byb3RvfSBvYmogLSBUaGUgb2JqZWN0IHRvIGJlIGVuY29kZWQsIG11c3QgYmUgaW4gcHJvdG8gbmFtZXNwYWNlXG4gICAqIEBwYXJhbSBlbmNvZGVyIC0gT2JqZWN0IGVuY29kZXJcbiAgICogQHJldHVybnMge1VpbnQ4QXJyYXl9IC0gRW5jb2RlZCBvYmplY3QgYnl0ZSBhcnJheVxuICAgKi9cbiAgcHJpdmF0ZSBlbmNvZGU8Q3RvckZuIGV4dGVuZHMgeyBuZXcgKCk6IFQgfSwgVCBleHRlbmRzIHsgY29uc3RydWN0b3I6IEN0b3JGbiB9PihcbiAgICBvYmo6IFQsXG4gICAgZW5jb2RlcjogeyBlbmNvZGUoYXJnOiBUKTogV3JpdGVyIH1cbiAgKTogVWludDhBcnJheSB7XG4gICAgcmV0dXJuIGVuY29kZXIuZW5jb2RlKG9iaikuZmluaXNoKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHNoYS0zODQgaGFzaFxuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGJ5dGVzIC0gQnl0ZXMgdG8gYmUgaGFzaGVkXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIHJlc3VsdGluZyBoYXNoIHN0cmluZ1xuICAgKi9cbiAgc2hhKGJ5dGVzOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdG9IZXgoaGFzaChieXRlcykpO1xuICB9XG59XG4iXX0=