@bitgo/sdk-core 38.9.1 → 38.10.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.
Files changed (50) hide show
  1. package/dist/src/bitgo/defi/defiVault.d.ts +21 -1
  2. package/dist/src/bitgo/defi/defiVault.d.ts.map +1 -1
  3. package/dist/src/bitgo/defi/defiVault.js +36 -12
  4. package/dist/src/bitgo/defi/iDefiVault.d.ts +2 -1
  5. package/dist/src/bitgo/defi/iDefiVault.d.ts.map +1 -1
  6. package/dist/src/bitgo/defi/iDefiVault.js +1 -1
  7. package/dist/src/bitgo/environments.js +3 -3
  8. package/dist/src/bitgo/keychain/iKeychains.d.ts +2 -0
  9. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  10. package/dist/src/bitgo/keychain/iKeychains.js +1 -1
  11. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  12. package/dist/src/bitgo/keychain/keychains.js +3 -1
  13. package/dist/src/bitgo/safe/iSafe.d.ts +4 -2
  14. package/dist/src/bitgo/safe/iSafe.d.ts.map +1 -1
  15. package/dist/src/bitgo/safe/iSafe.js +1 -1
  16. package/dist/src/bitgo/safe/iSafes.d.ts +13 -8
  17. package/dist/src/bitgo/safe/iSafes.d.ts.map +1 -1
  18. package/dist/src/bitgo/safe/iSafes.js +1 -1
  19. package/dist/src/bitgo/safe/safe.d.ts +3 -8
  20. package/dist/src/bitgo/safe/safe.d.ts.map +1 -1
  21. package/dist/src/bitgo/safe/safe.js +136 -4
  22. package/dist/src/bitgo/safe/safeDerivation.d.ts +7 -3
  23. package/dist/src/bitgo/safe/safeDerivation.d.ts.map +1 -1
  24. package/dist/src/bitgo/safe/safeDerivation.js +57 -17
  25. package/dist/src/bitgo/safe/safes.d.ts +7 -6
  26. package/dist/src/bitgo/safe/safes.d.ts.map +1 -1
  27. package/dist/src/bitgo/safe/safes.js +27 -19
  28. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +9 -3
  29. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -1
  30. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +19 -3
  31. package/dist/src/bitgo/utils/tss/recipientUtils.d.ts +1 -1
  32. package/dist/src/bitgo/utils/tss/recipientUtils.d.ts.map +1 -1
  33. package/dist/src/bitgo/utils/tss/recipientUtils.js +4 -2
  34. package/dist/src/bitgo/wallet/iWallet.d.ts +3 -2
  35. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  36. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  37. package/dist/src/bitgo/wallet/safeKeychain.d.ts +2 -2
  38. package/dist/src/bitgo/wallet/safeKeychain.d.ts.map +1 -1
  39. package/dist/src/bitgo/wallet/safeKeychain.js +10 -10
  40. package/dist/src/bitgo/wallet/wallet.d.ts +4 -0
  41. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  42. package/dist/src/bitgo/wallet/wallet.js +6 -2
  43. package/dist/test/unit/bitgo/defi/defiVault.js +56 -1
  44. package/dist/test/unit/bitgo/safe/safe.js +133 -5
  45. package/dist/test/unit/bitgo/safe/safes.js +45 -4
  46. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.js +121 -1
  47. package/dist/test/unit/bitgo/utils/tss/recipientUtils.js +14 -1
  48. package/dist/test/unit/bitgo/wallet/safeGetUserPrv.js +18 -40
  49. package/dist/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +3 -3
@@ -1,4 +1,4 @@
1
- import { GetVaultResponse } from '@bitgo/public-types';
1
+ import { GetVaultResponse, VaultProtocol } from '@bitgo/public-types';
2
2
  import { DefiOperation, DefiOperationListResult, DepositResult, DepositToVaultOptions, GetOperationOptions, GetVaultConfigOptions, IDefiVault, ListOperationsOptions, ResumeDepositOptions, WithdrawFromVaultOptions, WithdrawResult } from './iDefiVault';
3
3
  import { IWallet } from '../wallet';
4
4
  /**
@@ -23,11 +23,31 @@ export declare class DefiVault implements IDefiVault {
23
23
  private readonly wallet;
24
24
  private readonly bitgo;
25
25
  constructor(wallet: IWallet);
26
+ /**
27
+ * Minimal dispatch codec. The deposit path reads only `protocol` to choose
28
+ * between the concrete and morpho flows, so it must not hard-fail on the
29
+ * validity of unrelated response fields (e.g. `composition[]`) it never
30
+ * consumes. A code path must not fail on the validity of data it does not
31
+ * consume.
32
+ */
33
+ private static readonly VaultDispatch;
34
+ /**
35
+ * Fetch the raw vault config from defi-service. Shared by callers that
36
+ * decode the full response and callers that decode only what they use.
37
+ */
38
+ private fetchVaultRaw;
26
39
  /**
27
40
  * Fetch vault config from defi-service. Used internally to determine
28
41
  * which deposit path to take (Concrete vs Morpho).
29
42
  */
30
43
  getVaultConfig(params: GetVaultConfigOptions): Promise<GetVaultResponse>;
44
+ /**
45
+ * Fetch only the vault protocol from defi-service. Decodes the minimal
46
+ * `VaultDispatch` shape rather than the full `GetVaultResponse`, so callers
47
+ * that need only the protocol are not hostage to the validity of unrelated
48
+ * response fields (e.g. `composition[]`) they never consume.
49
+ */
50
+ getVaultProtocol(params: GetVaultConfigOptions): Promise<VaultProtocol>;
31
51
  /**
32
52
  * Deposit an amount of underlying asset into a vault.
33
53
  *
@@ -1 +1 @@
1
- {"version":3,"file":"defiVault.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/defi/defiVault.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAiB,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAGL,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,UAAU,EACV,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,cAAc,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,SAAgB,WAAW,EAAE,MAAM,CAAC;gBAExB,WAAW,EAAE,MAAM;CAKhC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,SAAU,YAAW,UAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;gBAEtB,MAAM,EAAE,OAAO;IAK3B;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAW9E;;;;;;;;;;OAUG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC;IAmB3E;;;;OAIG;YACW,sBAAsB;IAcpC;;;OAGG;YACW,oBAAoB;IAkDlC;;;;;;OAMG;IACG,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;IAoCzE;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAQvE;;;;;;;;OAQG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAgBrF;;;;;;;;;;OAUG;IACG,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC;IA6BlF;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAWpC,OAAO,CAAC,aAAa;CAGtB"}
1
+ {"version":3,"file":"defiVault.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/defi/defiVault.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAqB,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAGL,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,UAAU,EACV,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,cAAc,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,SAAgB,WAAW,EAAE,MAAM,CAAC;gBAExB,WAAW,EAAE,MAAM;CAKhC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,SAAU,YAAW,UAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;gBAEtB,MAAM,EAAE,OAAO;IAK3B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAA2C;IAEhF;;;OAGG;YACW,aAAa;IAU3B;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI9E;;;;;OAKG;IACG,gBAAgB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC;IAS7E;;;;;;;;;;OAUG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC;IAmB3E;;;;OAIG;YACW,sBAAsB;IAcpC;;;OAGG;YACW,oBAAoB;IAkDlC;;;;;;OAMG;IACG,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;IAoCzE;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAQvE;;;;;;;;OAQG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAgBrF;;;;;;;;;;OAUG;IACG,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC;IA6BlF;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAWpC,OAAO,CAAC,aAAa;CAGtB"}
@@ -68,18 +68,34 @@ class DefiVault {
68
68
  this.bitgo = wallet.bitgo;
69
69
  }
70
70
  /**
71
- * Fetch vault config from defi-service. Used internally to determine
72
- * which deposit path to take (Concrete vs Morpho).
71
+ * Fetch the raw vault config from defi-service. Shared by callers that
72
+ * decode the full response and callers that decode only what they use.
73
73
  */
74
- async getVaultConfig(params) {
75
- if (!params.vaultId) {
74
+ async fetchVaultRaw(vaultId) {
75
+ if (!vaultId) {
76
76
  throw new Error('vaultId is required');
77
77
  }
78
- const raw = await this.bitgo
79
- .get(this.bitgo.microservicesUrl(`/api/defi-service/v1/vaults/${params.vaultId}`))
78
+ return await this.bitgo
79
+ .get(this.bitgo.microservicesUrl(`/api/defi-service/v1/vaults/${vaultId}`))
80
80
  .set('enterprise-id', this.wallet.toJSON().enterprise)
81
81
  .result();
82
- return (0, utils_1.decodeWithCodec)(public_types_1.GetVaultResponse, raw, 'getVaultConfig');
82
+ }
83
+ /**
84
+ * Fetch vault config from defi-service. Used internally to determine
85
+ * which deposit path to take (Concrete vs Morpho).
86
+ */
87
+ async getVaultConfig(params) {
88
+ return (0, utils_1.decodeWithCodec)(public_types_1.GetVaultResponse, await this.fetchVaultRaw(params.vaultId), 'getVaultConfig');
89
+ }
90
+ /**
91
+ * Fetch only the vault protocol from defi-service. Decodes the minimal
92
+ * `VaultDispatch` shape rather than the full `GetVaultResponse`, so callers
93
+ * that need only the protocol are not hostage to the validity of unrelated
94
+ * response fields (e.g. `composition[]`) they never consume.
95
+ */
96
+ async getVaultProtocol(params) {
97
+ const { protocol } = (0, utils_1.decodeWithCodec)(DefiVault.VaultDispatch, await this.fetchVaultRaw(params.vaultId), 'vaultDispatch');
98
+ return protocol;
83
99
  }
84
100
  /**
85
101
  * Deposit an amount of underlying asset into a vault.
@@ -99,15 +115,15 @@ class DefiVault {
99
115
  if (!params.amount) {
100
116
  throw new Error('amount is required');
101
117
  }
102
- const config = await this.getVaultConfig({ vaultId: params.vaultId });
103
- if (config.protocol === public_types_1.VaultProtocol.CONCRETE_BTCCX) {
118
+ const protocol = await this.getVaultProtocol({ vaultId: params.vaultId });
119
+ if (protocol === public_types_1.VaultProtocol.CONCRETE_BTCCX) {
104
120
  return this.depositToConcreteVault(params);
105
121
  }
106
- else if (config.protocol === public_types_1.VaultProtocol.MORPHO) {
122
+ else if (protocol === public_types_1.VaultProtocol.MORPHO) {
107
123
  return this.depositToMorphoVault(params);
108
124
  }
109
125
  else {
110
- throw new Error(`Unsupported vault protocol: ${config.protocol}`);
126
+ throw new Error(`Unsupported vault protocol: ${protocol}`);
111
127
  }
112
128
  }
113
129
  /**
@@ -352,4 +368,12 @@ class DefiVault {
352
368
  }
353
369
  }
354
370
  exports.DefiVault = DefiVault;
355
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaVZhdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2RlZmkvZGVmaVZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gseUNBQTJCO0FBQzNCLHNEQUFzRTtBQWtCdEUsb0NBQTJDO0FBRTNDOztHQUVHO0FBQ0gsTUFBYSwwQkFBMkIsU0FBUSxLQUFLO0lBR25ELFlBQVksV0FBbUI7UUFDN0IsS0FBSyxDQUFDLCtDQUErQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxJQUFJLEdBQUcsNEJBQTRCLENBQUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztDQUNGO0FBUkQsZ0VBUUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBYSxTQUFTO0lBSXBCLFlBQVksTUFBZTtRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBNkI7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUs7YUFDekIsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsK0JBQStCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2FBQ2pGLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUM7YUFDckQsTUFB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LENBQUM7UUFDNUcsT0FBTztZQUNMLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUM3QyxLQUFLLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLElBQUksbUJBQW1CO1NBQzVELENBQUM7SUFDSixDQUFDO0lBRU8sYUFBYTtRQUNuQixPQUFPLGdDQUFnQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUM7SUFDdkUsQ0FBQztDQUNGO0FBalVELDhCQWlVQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuaW1wb3J0IHsgR2V0VmF1bHRSZXNwb25zZSwgVmF1bHRQcm90b2NvbCB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHtcbiAgQ29uY3JldGVEZXBvc2l0UmVzdWx0LFxuICBNb3JwaG9EZXBvc2l0UmVzdWx0LFxuICBEZWZpT3BlcmF0aW9uLFxuICBEZWZpT3BlcmF0aW9uTGlzdFJlc3VsdCxcbiAgRGVwb3NpdFJlc3VsdCxcbiAgRGVwb3NpdFRvVmF1bHRPcHRpb25zLFxuICBHZXRPcGVyYXRpb25PcHRpb25zLFxuICBHZXRWYXVsdENvbmZpZ09wdGlvbnMsXG4gIElEZWZpVmF1bHQsXG4gIExpc3RPcGVyYXRpb25zT3B0aW9ucyxcbiAgUmVzdW1lRGVwb3NpdE9wdGlvbnMsXG4gIFdpdGhkcmF3RnJvbVZhdWx0T3B0aW9ucyxcbiAgV2l0aGRyYXdSZXN1bHQsXG59IGZyb20gJy4vaURlZmlWYXVsdCc7XG5pbXBvcnQgeyBJV2FsbGV0IH0gZnJvbSAnLi4vd2FsbGV0JztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBkZWNvZGVXaXRoQ29kZWMgfSBmcm9tICcuLi91dGlscyc7XG5cbi8qKlxuICogRXJyb3IgdGhyb3duIHdoZW4gYSBjb25jdXJyZW50IGFjdGl2ZSBkZXBvc2l0IGFscmVhZHkgZXhpc3RzIGZvciB0aGUgKHdhbGxldCwgdmF1bHQpIHBhaXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBBY3RpdmVPcGVyYXRpb25FeGlzdHNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIHJlYWRvbmx5IG9wZXJhdGlvbklkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Iob3BlcmF0aW9uSWQ6IHN0cmluZykge1xuICAgIHN1cGVyKGBBbiBhY3RpdmUgZGVwb3NpdCBvcGVyYXRpb24gYWxyZWFkeSBleGlzdHM6ICR7b3BlcmF0aW9uSWR9YCk7XG4gICAgdGhpcy5uYW1lID0gJ0FjdGl2ZU9wZXJhdGlvbkV4aXN0c0Vycm9yJztcbiAgICB0aGlzLm9wZXJhdGlvbklkID0gb3BlcmF0aW9uSWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBPcmNoZXN0cmF0ZXMgRVJDLTQ2MjYgdmF1bHQgZGVwb3NpdCBhbmQgd2l0aGRyYXcgZmxvd3MgZm9yIGEgd2FsbGV0LlxuICpcbiAqIEV4cG9zZWQgYXMgYHdhbGxldC5kZWZpYCBvbiB0aGUgV2FsbGV0IGNsYXNzLiBTZWUgVEREIMKnNi4zLjEgZm9yIHRoZSBmdWxsXG4gKiBkZXNpZ246IHRoZSBTREsgc2VxdWVuY2VzIHR3byBzZW5kTWFueSBjYWxscyAoYXBwcm92ZSArIGRlcG9zaXQpIGFuZFxuICogcmV0dXJucyBhbiBvcGVyYXRpb25JZCB0aGF0IHRoZSBVSSB1c2VzIGZvciBzdGF0dXMgdHJhY2tpbmcgYW5kIHJlY292ZXJ5LlxuICpcbiAqIFVzZXMgd2FsbGV0LnNlbmRNYW55KCkgdW5kZXIgdGhlIGhvb2Qgc28gdGhhdCBib3RoIGN1c3RvZHkgd2FsbGV0c1xuICogKHR4UmVxdWVzdCBjcmVhdGlvbiBvbmx5KSBhbmQgaG90IHdhbGxldHMgKGNyZWF0ZSArIHNpZ24gKyBicm9hZGNhc3QpXG4gKiBhcmUgaGFuZGxlZCBieSB0aGUgZXhpc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBEZWZpVmF1bHQgaW1wbGVtZW50cyBJRGVmaVZhdWx0IHtcbiAgcHJpdmF0ZSByZWFkb25seSB3YWxsZXQ6IElXYWxsZXQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgYml0Z286IEJpdEdvQmFzZTtcblxuICBjb25zdHJ1Y3Rvcih3YWxsZXQ6IElXYWxsZXQpIHtcbiAgICB0aGlzLndhbGxldCA9IHdhbGxldDtcbiAgICB0aGlzLmJpdGdvID0gd2FsbGV0LmJpdGdvO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoIHZhdWx0IGNvbmZpZyBmcm9tIGRlZmktc2VydmljZS4gVXNlZCBpbnRlcm5hbGx5IHRvIGRldGVybWluZVxuICAgKiB3aGljaCBkZXBvc2l0IHBhdGggdG8gdGFrZSAoQ29uY3JldGUgdnMgTW9ycGhvKS5cbiAgICovXG4gIGFzeW5jIGdldFZhdWx0Q29uZmlnKHBhcmFtczogR2V0VmF1bHRDb25maWdPcHRpb25zKTogUHJvbWlzZTxHZXRWYXVsdFJlc3BvbnNlPiB7XG4gICAgaWYgKCFwYXJhbXMudmF1bHRJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YXVsdElkIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IHJhdyA9IGF3YWl0IHRoaXMuYml0Z29cbiAgICAgIC5nZXQodGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKGAvYXBpL2RlZmktc2VydmljZS92MS92YXVsdHMvJHtwYXJhbXMudmF1bHRJZH1gKSlcbiAgICAgIC5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLndhbGxldC50b0pTT04oKS5lbnRlcnByaXNlKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIHJldHVybiBkZWNvZGVXaXRoQ29kZWMoR2V0VmF1bHRSZXNwb25zZSwgcmF3LCAnZ2V0VmF1bHRDb25maWcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXBvc2l0IGFuIGFtb3VudCBvZiB1bmRlcmx5aW5nIGFzc2V0IGludG8gYSB2YXVsdC5cbiAgICpcbiAgICogRGlzcGF0Y2hlcyB0byB0aGUgY29uY3JldGUgb3IgbW9ycGhvIHBhdGggYmFzZWQgb24gdmF1bHQgcHJvdmlkZXIuXG4gICAqIFRoZSBjb25jcmV0ZSBwYXRoIHJldHVybnMgYSBwZW5kaW5nQXBwcm92YWwgKGN1c3RvZGlhbCB3YWxsZXQpLlxuICAgKiBUaGUgbW9ycGhvIHBhdGggaXNzdWVzIHR3byBzZW5kTWFueSBjYWxscyAoYXBwcm92ZSArIGRlcG9zaXQpLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zLnZhdWx0SWQgLSBEZUZpLXNlcnZpY2UgdmF1bHQgaWRlbnRpZmllclxuICAgKiBAcGFyYW0gcGFyYW1zLmFtb3VudCAtIGFtb3VudCBpbiBiYXNlIHVuaXRzIG9mIHRoZSB1bmRlcmx5aW5nIGFzc2V0XG4gICAqIEBwYXJhbSBwYXJhbXMud2FsbGV0UGFzc3BocmFzZSAtIHJlcXVpcmVkIGZvciBob3Qgd2FsbGV0cywgb21pdCBmb3IgY3VzdG9keVxuICAgKi9cbiAgYXN5bmMgZGVwb3NpdFRvVmF1bHQocGFyYW1zOiBEZXBvc2l0VG9WYXVsdE9wdGlvbnMpOiBQcm9taXNlPERlcG9zaXRSZXN1bHQ+IHtcbiAgICBpZiAoIXBhcmFtcy52YXVsdElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZhdWx0SWQgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgaWYgKCFwYXJhbXMuYW1vdW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Ftb3VudCBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZ2V0VmF1bHRDb25maWcoeyB2YXVsdElkOiBwYXJhbXMudmF1bHRJZCB9KTtcblxuICAgIGlmIChjb25maWcucHJvdG9jb2wgPT09IFZhdWx0UHJvdG9jb2wuQ09OQ1JFVEVfQlRDQ1gpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlcG9zaXRUb0NvbmNyZXRlVmF1bHQocGFyYW1zKTtcbiAgICB9IGVsc2UgaWYgKGNvbmZpZy5wcm90b2NvbCA9PT0gVmF1bHRQcm90b2NvbC5NT1JQSE8pIHtcbiAgICAgIHJldHVybiB0aGlzLmRlcG9zaXRUb01vcnBob1ZhdWx0KHBhcmFtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgdmF1bHQgcHJvdG9jb2w6ICR7Y29uZmlnLnByb3RvY29sfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb25jcmV0ZSBCVEMgdmF1bHQgZGVwb3NpdCBwYXRoLiBUaGUgY2xpZW50IEJUQyB3YWxsZXQgaXMgY3VzdG9kaWFsLCBzb1xuICAgKiBzZW5kTWFueSByZXR1cm5zIGEgcGVuZGluZ0FwcHJvdmFsIHJhdGhlciB0aGFuIGEgc2lnbmVkIHRyYW5zZmVyLlxuICAgKiBObyByZWNpcGllbnRzIGFyZSBzZW50IOKAlCBXUCByZXNvbHZlcyB0aGUgZXNjcm93IGRlc3RpbmF0aW9uIHNlcnZlci1zaWRlLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBkZXBvc2l0VG9Db25jcmV0ZVZhdWx0KHBhcmFtczogRGVwb3NpdFRvVmF1bHRPcHRpb25zKTogUHJvbWlzZTxDb25jcmV0ZURlcG9zaXRSZXN1bHQ+IHtcbiAgICBjb25zdCBzZW5kTWFueVJlc3VsdCA9IGF3YWl0IHRoaXMud2FsbGV0LnNlbmRNYW55KHtcbiAgICAgIHR5cGU6ICdkZWZpLWRlcG9zaXQnLFxuICAgICAgZGVmaVBhcmFtczoge1xuICAgICAgICB2YXVsdElkOiBwYXJhbXMudmF1bHRJZCxcbiAgICAgICAgYW1vdW50OiBwYXJhbXMuYW1vdW50LFxuICAgICAgICBhY3Rpb25UeXBlOiAnZGVmaS1kZXBvc2l0JyxcbiAgICAgIH0sXG4gICAgICAuLi4ocGFyYW1zLndhbGxldFBhc3NwaHJhc2UgPyB7IHdhbGxldFBhc3NwaHJhc2U6IHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIH0gOiB7fSksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5leHRyYWN0Q29uY3JldGVEZXBvc2l0UmVzdWx0KHNlbmRNYW55UmVzdWx0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3JwaG8gdmF1bHQgZGVwb3NpdCBwYXRoLiBJc3N1ZXMgdHdvIHNlbmRNYW55IGNhbGxzIChhcHByb3ZlICsgZGVwb3NpdClcbiAgICogYW5kIHJldHVybnMgdGhlIG9wZXJhdGlvbklkIHRoYXQgbGlua3MgdGhlbS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZGVwb3NpdFRvTW9ycGhvVmF1bHQocGFyYW1zOiBEZXBvc2l0VG9WYXVsdE9wdGlvbnMpOiBQcm9taXNlPE1vcnBob0RlcG9zaXRSZXN1bHQ+IHtcbiAgICAvLyBUT0RPKENHRC0xNzA5KTogUmUtZW5hYmxlIGFjdGl2ZSBvcGVyYXRpb24gcHJlLWZsaWdodCBjaGVjayBvbmNlIHRoZVxuICAgIC8vIGRlZmktc2VydmljZSBvcGVyYXRpb25zIGVuZHBvaW50IGlzIGRlcGxveWVkIGFuZCByZXR1cm5pbmcgYWN0aXZlIHN0YXRlLlxuICAgIC8vIGNvbnN0IGFjdGl2ZU9wczogRGVmaU9wZXJhdGlvbkxpc3RSZXN1bHQgPSBhd2FpdCB0aGlzLmJpdGdvXG4gICAgLy8gICAuZ2V0KHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCh0aGlzLm9wZXJhdGlvbnNVcmwoKSkpXG4gICAgLy8gICAucXVlcnkoeyB2YXVsdElkOiBwYXJhbXMudmF1bHRJZCwgc3RhdGU6ICdhY3RpdmUnIH0pXG4gICAgLy8gICAucmVzdWx0KCk7XG4gICAgLy9cbiAgICAvLyBpZiAoYWN0aXZlT3BzLml0ZW1zICYmIGFjdGl2ZU9wcy5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgLy8gICB0aHJvdyBuZXcgQWN0aXZlT3BlcmF0aW9uRXhpc3RzRXJyb3IoYWN0aXZlT3BzLml0ZW1zWzBdLm9wZXJhdGlvbklkKTtcbiAgICAvLyB9XG5cbiAgICAvLyBTdGVwIDE6IEFwcHJvdmUgdHhSZXF1ZXN0IHZpYSBzZW5kTWFueVxuICAgIGNvbnN0IGFwcHJvdmVSZXN1bHQgPSBhd2FpdCB0aGlzLndhbGxldC5zZW5kTWFueSh7XG4gICAgICB0eXBlOiAnZGVmaUFwcHJvdmUnLFxuICAgICAgZGVmaVBhcmFtczoge1xuICAgICAgICB2YXVsdElkOiBwYXJhbXMudmF1bHRJZCxcbiAgICAgICAgYW1vdW50OiBwYXJhbXMuYW1vdW50LFxuICAgICAgfSxcbiAgICAgIC4uLihwYXJhbXMud2FsbGV0UGFzc3BocmFzZSA/IHsgd2FsbGV0UGFzc3BocmFzZTogcGFyYW1zLndhbGxldFBhc3NwaHJhc2UgfSA6IHt9KSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFwcHJvdmVUeFJlcXVlc3RJZCA9IHRoaXMuZXh0cmFjdFR4UmVxdWVzdElkKGFwcHJvdmVSZXN1bHQpO1xuICAgIGNvbnN0IG9wZXJhdGlvbklkID0gdGhpcy5leHRyYWN0T3BlcmF0aW9uSWQoYXBwcm92ZVJlc3VsdCk7XG5cbiAgICBpZiAoIW9wZXJhdGlvbklkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ29wZXJhdGlvbklkIG5vdCBmb3VuZCBpbiBhcHByb3ZlIHR4UmVxdWVzdCByZXNwb25zZScpO1xuICAgIH1cblxuICAgIC8vIFN0ZXAgMjogRGVwb3NpdCB0eFJlcXVlc3QgdmlhIHNlbmRNYW55XG4gICAgY29uc3QgZGVwb3NpdFJlc3VsdCA9IGF3YWl0IHRoaXMud2FsbGV0LnNlbmRNYW55KHtcbiAgICAgIHR5cGU6ICdkZWZpRGVwb3NpdCcsXG4gICAgICBkZWZpUGFyYW1zOiB7XG4gICAgICAgIHZhdWx0SWQ6IHBhcmFtcy52YXVsdElkLFxuICAgICAgICBhbW91bnQ6IHBhcmFtcy5hbW91bnQsXG4gICAgICAgIG9wZXJhdGlvbklkLFxuICAgICAgfSxcbiAgICAgIC4uLihwYXJhbXMud2FsbGV0UGFzc3BocmFzZSA/IHsgd2FsbGV0UGFzc3BocmFzZTogcGFyYW1zLndhbGxldFBhc3NwaHJhc2UgfSA6IHt9KSxcbiAgICB9KTtcbiAgICBjb25zdCBkZXBvc2l0VHhSZXF1ZXN0SWQgPSB0aGlzLmV4dHJhY3RUeFJlcXVlc3RJZChkZXBvc2l0UmVzdWx0KTtcblxuICAgIHJldHVybiB7XG4gICAgICBvcGVyYXRpb25JZCxcbiAgICAgIHR4UmVxdWVzdElkczoge1xuICAgICAgICBhcHByb3ZlOiBhcHByb3ZlVHhSZXF1ZXN0SWQsXG4gICAgICAgIGRlcG9zaXQ6IGRlcG9zaXRUeFJlcXVlc3RJZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN1bWUgYSBwYXJ0aWFsbHktY29tcGxldGVkIGRlcG9zaXQuIENhbGwgdGhpcyB3aGVuIHRoZSBTREsgcHJvY2VzcyBkaWVkXG4gICAqIGJldHdlZW4gdGhlIGFwcHJvdmUgYW5kIGRlcG9zaXQgdHhSZXF1ZXN0IGNyZWF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zLm9wZXJhdGlvbklkIC0gdGhlIG9wZXJhdGlvbklkIGZyb20gdGhlIG9yaWdpbmFsIGRlcG9zaXRUb1ZhdWx0IGNhbGxcbiAgICogQHBhcmFtIHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIC0gcmVxdWlyZWQgZm9yIGhvdCB3YWxsZXRzLCBvbWl0IGZvciBjdXN0b2R5XG4gICAqL1xuICBhc3luYyByZXN1bWVEZXBvc2l0KHBhcmFtczogUmVzdW1lRGVwb3NpdE9wdGlvbnMpOiBQcm9taXNlPERlcG9zaXRSZXN1bHQ+IHtcbiAgICBpZiAoIXBhcmFtcy5vcGVyYXRpb25JZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvcGVyYXRpb25JZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIC8vIEZldGNoIHRoZSBvcGVyYXRpb24gdG8gZ2V0IHRoZSB2YXVsdCBhbmQgYW1vdW50IGRldGFpbHNcbiAgICBjb25zdCBvcGVyYXRpb24gPSBhd2FpdCB0aGlzLmdldE9wZXJhdGlvbih7IG9wZXJhdGlvbklkOiBwYXJhbXMub3BlcmF0aW9uSWQgfSk7XG5cbiAgICBpZiAob3BlcmF0aW9uLmFzc29jaWF0ZWRUeFJlcXVlc3RJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEZXBvc2l0IHR4UmVxdWVzdCBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyBvcGVyYXRpb247IG5vdGhpbmcgdG8gcmVzdW1lJyk7XG4gICAgfVxuXG4gICAgaWYgKCFvcGVyYXRpb24udHhSZXF1ZXN0SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXBwcm92ZSB0eFJlcXVlc3Qgbm90IGZvdW5kIGZvciB0aGlzIG9wZXJhdGlvbjsgY2Fubm90IHJlc3VtZScpO1xuICAgIH1cblxuICAgIC8vIElzc3VlIHRoZSBkZXBvc2l0IHR4UmVxdWVzdCB1c2luZyB0aGUgZXhpc3Rpbmcgb3BlcmF0aW9uJ3MgZGV0YWlsc1xuICAgIGNvbnN0IGRlcG9zaXRSZXN1bHQgPSBhd2FpdCB0aGlzLndhbGxldC5zZW5kTWFueSh7XG4gICAgICB0eXBlOiAnZGVmaURlcG9zaXQnLFxuICAgICAgZGVmaVBhcmFtczoge1xuICAgICAgICB2YXVsdElkOiBvcGVyYXRpb24udmF1bHRJZCxcbiAgICAgICAgYW1vdW50OiBvcGVyYXRpb24uYXNzZXRBbW91bnQsXG4gICAgICAgIG9wZXJhdGlvbklkOiBwYXJhbXMub3BlcmF0aW9uSWQsXG4gICAgICB9LFxuICAgICAgLi4uKHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlID8geyB3YWxsZXRQYXNzcGhyYXNlOiBwYXJhbXMud2FsbGV0UGFzc3BocmFzZSB9IDoge30pLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG9wZXJhdGlvbklkOiBwYXJhbXMub3BlcmF0aW9uSWQsXG4gICAgICB0eFJlcXVlc3RJZHM6IHtcbiAgICAgICAgYXBwcm92ZTogb3BlcmF0aW9uLnR4UmVxdWVzdElkLFxuICAgICAgICBkZXBvc2l0OiB0aGlzLmV4dHJhY3RUeFJlcXVlc3RJZChkZXBvc2l0UmVzdWx0KSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYSBEZUZpIG9wZXJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcy5vcGVyYXRpb25JZCAtIHRoZSBvcGVyYXRpb24gdG8gcmV0cmlldmVcbiAgICovXG4gIGFzeW5jIGdldE9wZXJhdGlvbihwYXJhbXM6IEdldE9wZXJhdGlvbk9wdGlvbnMpOiBQcm9taXNlPERlZmlPcGVyYXRpb24+IHtcbiAgICBpZiAoIXBhcmFtcy5vcGVyYXRpb25JZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvcGVyYXRpb25JZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJpdGdvLmdldCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwodGhpcy5vcGVyYXRpb25zVXJsKCkgKyAnLycgKyBwYXJhbXMub3BlcmF0aW9uSWQpKS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IG9wZXJhdGlvbnMgZm9yIGEgdmF1bHQgZmlsdGVyZWQgYnkgd2FsbGV0SWQuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMudmF1bHRJZCAtIHZhdWx0IHRvIGxpc3Qgb3BlcmF0aW9ucyBmb3JcbiAgICogQHBhcmFtIHBhcmFtcy5zdGF0ZSAtIG9wdGlvbmFsIHN0YXRlIGZpbHRlclxuICAgKiBAcGFyYW0gcGFyYW1zLnR5cGUgLSBvcHRpb25hbCB0eXBlIGZpbHRlciAoREVQT1NJVCB8IFdJVEhEUkFXKVxuICAgKiBAcGFyYW0gcGFyYW1zLmxpbWl0IC0gcGFnZSBzaXplXG4gICAqIEBwYXJhbSBwYXJhbXMuY3Vyc29yIC0gcGFnaW5hdGlvbiBjdXJzb3JcbiAgICovXG4gIGFzeW5jIGxpc3RPcGVyYXRpb25zKHBhcmFtczogTGlzdE9wZXJhdGlvbnNPcHRpb25zKTogUHJvbWlzZTxEZWZpT3BlcmF0aW9uTGlzdFJlc3VsdD4ge1xuICAgIGlmICghcGFyYW1zLnZhdWx0SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndmF1bHRJZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+ID0ge1xuICAgICAgdmF1bHRJZDogcGFyYW1zLnZhdWx0SWQsXG4gICAgfTtcbiAgICBpZiAocGFyYW1zLnN0YXRlKSBxdWVyeS5zdGF0ZSA9IHBhcmFtcy5zdGF0ZTtcbiAgICBpZiAocGFyYW1zLnR5cGUpIHF1ZXJ5LnR5cGUgPSBwYXJhbXMudHlwZTtcbiAgICBpZiAocGFyYW1zLmxpbWl0KSBxdWVyeS5saW1pdCA9IHBhcmFtcy5saW1pdDtcbiAgICBpZiAocGFyYW1zLmN1cnNvcikgcXVlcnkuY3Vyc29yID0gcGFyYW1zLmN1cnNvcjtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJpdGdvLmdldCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwodGhpcy5vcGVyYXRpb25zVXJsKCkpKS5xdWVyeShxdWVyeSkucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogV2l0aGRyYXcgdmF1bHQgc2hhcmVzIGZyb20gYSBEZUZpIHZhdWx0LlxuICAgKlxuICAgKiBJc3N1ZXMgYSBzaW5nbGUgc2VuZE1hbnkgY2FsbCAoZGVmaVdpdGhkcmF3KSBhbmQgcmV0dXJucyB0aGUgb3BlcmF0aW9uSWRcbiAgICogYW5kIHR4UmVxdWVzdElkLiBUaGUgc3RhdGUgbWFjaGluZSBmb3Igd2l0aGRyYXdhbCBpcyBzaW1wbGVyIHRoYW4gZGVwb3NpdDpcbiAgICogQ1JFQVRFRCDihpIgV0lUSERSQVdfVFhfUkVRVUVTVEVEIOKGkiBXSVRIRFJBV19TSUdORUQg4oaSIFdJVEhEUkFXX0NPTkZJUk1FRCDihpIgQ09NUExFVEVEXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMudmF1bHRJZCAtIERlRmktc2VydmljZSB2YXVsdCBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSBwYXJhbXMuYW1vdW50IC0gYW1vdW50IGluIGJhc2UgdW5pdHMgb2YgdGhlIHZhdWx0IHNoYXJlIHRva2VuXG4gICAqIEBwYXJhbSBwYXJhbXMud2FsbGV0UGFzc3BocmFzZSAtIHJlcXVpcmVkIGZvciBob3Qgd2FsbGV0cywgb21pdCBmb3IgY3VzdG9keVxuICAgKi9cbiAgYXN5bmMgd2l0aGRyYXdGcm9tVmF1bHQocGFyYW1zOiBXaXRoZHJhd0Zyb21WYXVsdE9wdGlvbnMpOiBQcm9taXNlPFdpdGhkcmF3UmVzdWx0PiB7XG4gICAgaWYgKCFwYXJhbXMudmF1bHRJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YXVsdElkIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmICghcGFyYW1zLmFtb3VudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhbW91bnQgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCB3aXRoZHJhd1Jlc3VsdCA9IGF3YWl0IHRoaXMud2FsbGV0LnNlbmRNYW55KHtcbiAgICAgIHR5cGU6ICdkZWZpV2l0aGRyYXcnLFxuICAgICAgZGVmaVBhcmFtczoge1xuICAgICAgICB2YXVsdElkOiBwYXJhbXMudmF1bHRJZCxcbiAgICAgICAgYW1vdW50OiBwYXJhbXMuYW1vdW50LFxuICAgICAgfSxcbiAgICAgIC4uLihwYXJhbXMud2FsbGV0UGFzc3BocmFzZSA/IHsgd2FsbGV0UGFzc3BocmFzZTogcGFyYW1zLndhbGxldFBhc3NwaHJhc2UgfSA6IHt9KSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHR4UmVxdWVzdElkID0gdGhpcy5leHRyYWN0VHhSZXF1ZXN0SWQod2l0aGRyYXdSZXN1bHQpO1xuICAgIGNvbnN0IG9wZXJhdGlvbklkID0gdGhpcy5leHRyYWN0T3BlcmF0aW9uSWQod2l0aGRyYXdSZXN1bHQpO1xuXG4gICAgaWYgKCFvcGVyYXRpb25JZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvcGVyYXRpb25JZCBub3QgZm91bmQgaW4gd2l0aGRyYXcgdHhSZXF1ZXN0IHJlc3BvbnNlJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgb3BlcmF0aW9uSWQsIHR4UmVxdWVzdElkIH07XG4gIH1cblxuICAvLyDilIDilIAgSW50ZXJuYWwgaGVscGVycyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKipcbiAgICogRXh0cmFjdCB0eFJlcXVlc3RJZCBmcm9tIGEgc2VuZE1hbnkgcmVzdWx0LlxuICAgKiBzZW5kTWFueSByZXR1cm5zIGRpZmZlcmVudCBzaGFwZXMgZGVwZW5kaW5nIG9uIHdhbGxldCB0eXBlOlxuICAgKiAtIFRTUyBmdWxsOiB7IHR4UmVxdWVzdDogeyB0eFJlcXVlc3RJZCB9IH0gb3IgeyBwZW5kaW5nQXBwcm92YWwsIHR4UmVxdWVzdCB9XG4gICAqIC0gVFNTIGxpdGU6IHJlc3VsdCBmcm9tIHRzc1V0aWxzLnNlbmRUeFJlcXVlc3RcbiAgICovXG4gIHByaXZhdGUgZXh0cmFjdFR4UmVxdWVzdElkKHNlbmRNYW55UmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHN0cmluZyB7XG4gICAgY29uc3QgdHhSZXF1ZXN0ID0gc2VuZE1hbnlSZXN1bHQudHhSZXF1ZXN0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIGlmICh0eFJlcXVlc3Q/LnR4UmVxdWVzdElkKSB7XG4gICAgICByZXR1cm4gdHhSZXF1ZXN0LnR4UmVxdWVzdElkIGFzIHN0cmluZztcbiAgICB9XG4gICAgaWYgKHNlbmRNYW55UmVzdWx0LnR4UmVxdWVzdElkKSB7XG4gICAgICByZXR1cm4gc2VuZE1hbnlSZXN1bHQudHhSZXF1ZXN0SWQgYXMgc3RyaW5nO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3R4UmVxdWVzdElkIG5vdCBmb3VuZCBpbiBzZW5kTWFueSByZXNwb25zZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3Qgb3BlcmF0aW9uSWQgZnJvbSBhIHNlbmRNYW55IHJlc3VsdC5cbiAgICpcbiAgICogVGhlIFdQIHdyaXRlcyB0aGUgZGVmaS1zZXJ2aWNlLW1pbnRlZCBvcGVyYXRpb25JZCBpbnRvIHRoZSBidWlsdFxuICAgKiB0cmFuc2FjdGlvbidzIGBjb2luU3BlY2lmaWNgIChhbG9uZ3NpZGUgYGFzc2lnbmVkTm9uY2VgKSwgbm90IGludG8gdGhlXG4gICAqIGludGVudC4gUmVhZCBpdCBmcm9tIHRoZXJlOiB0aGUgYGZ1bGxgIGFwaVZlcnNpb24gc3VyZmFjZXMgaXQgYXRcbiAgICogYHRyYW5zYWN0aW9uc1swXS51bnNpZ25lZFR4LmNvaW5TcGVjaWZpYy5vcGVyYXRpb25JZGAsIHRoZSBgbGl0ZWAgdmVyc2lvblxuICAgKiBhdCBgdW5zaWduZWRUeHNbMF0uY29pblNwZWNpZmljLm9wZXJhdGlvbklkYC4gRmFsbCBiYWNrIHRvXG4gICAqIGBpbnRlbnQub3BlcmF0aW9uSWRgIGZvciBmb3J3YXJkLWNvbXBhdCBpbiBjYXNlIHRoZSBXUCBsYXRlciBhbHNvXG4gICAqIHBvcHVsYXRlcyB0aGUgaW50ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBleHRyYWN0T3BlcmF0aW9uSWQoc2VuZE1hbnlSZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB0eFJlcXVlc3QgPSBzZW5kTWFueVJlc3VsdC50eFJlcXVlc3QgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICAgaWYgKCF0eFJlcXVlc3QpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gZnVsbCBhcGlWZXJzaW9uOiB0cmFuc2FjdGlvbnNbMF0udW5zaWduZWRUeC5jb2luU3BlY2lmaWMub3BlcmF0aW9uSWRcbiAgICBjb25zdCB0cmFuc2FjdGlvbnMgPSB0eFJlcXVlc3QudHJhbnNhY3Rpb25zIGFzIEFycmF5PFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmdWxsVW5zaWduZWRUeCA9IHRyYW5zYWN0aW9ucz8uWzBdPy51bnNpZ25lZFR4IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZ1bGxDb2luU3BlY2lmaWMgPSBmdWxsVW5zaWduZWRUeD8uY29pblNwZWNpZmljIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIGlmIChmdWxsQ29pblNwZWNpZmljPy5vcGVyYXRpb25JZCkge1xuICAgICAgcmV0dXJuIGZ1bGxDb2luU3BlY2lmaWMub3BlcmF0aW9uSWQgYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIC8vIGxpdGUgYXBpVmVyc2lvbjogdW5zaWduZWRUeHNbMF0uY29pblNwZWNpZmljLm9wZXJhdGlvbklkXG4gICAgY29uc3QgdW5zaWduZWRUeHMgPSB0eFJlcXVlc3QudW5zaWduZWRUeHMgYXMgQXJyYXk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGxpdGVDb2luU3BlY2lmaWMgPSB1bnNpZ25lZFR4cz8uWzBdPy5jb2luU3BlY2lmaWMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICAgaWYgKGxpdGVDb2luU3BlY2lmaWM/Lm9wZXJhdGlvbklkKSB7XG4gICAgICByZXR1cm4gbGl0ZUNvaW5TcGVjaWZpYy5vcGVyYXRpb25JZCBhcyBzdHJpbmc7XG4gICAgfVxuXG4gICAgLy8gZm9yd2FyZC1jb21wYXQ6IGludGVudC5vcGVyYXRpb25JZCAoaW4gY2FzZSB0aGUgV1AgbGF0ZXIgcG9wdWxhdGVzIHRoZSBpbnRlbnQpXG4gICAgY29uc3QgaW50ZW50ID0gdHhSZXF1ZXN0LmludGVudCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gaW50ZW50Py5vcGVyYXRpb25JZCBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMge0BsaW5rIENvbmNyZXRlRGVwb3NpdFJlc3VsdH0gZnJvbSBhIGN1c3RvZGlhbCBzZW5kTWFueSByZXNwb25zZS5cbiAgICogQ29uY3JldGUgQlRDIGRlcG9zaXRzIHJldHVybiBhIGBwZW5kaW5nQXBwcm92YWxgIGluc3RlYWQgb2YgYSB0eFJlcXVlc3Qg4oCUXG4gICAqIHRocm93cyBpZiBgcGVuZGluZ0FwcHJvdmFsLmlkYCBpcyBhYnNlbnQsIGluZGljYXRpbmcgYW4gdW5leHBlY3RlZCBzaGFwZS5cbiAgICovXG4gIHByaXZhdGUgZXh0cmFjdENvbmNyZXRlRGVwb3NpdFJlc3VsdChzZW5kTWFueVJlc3VsdDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBDb25jcmV0ZURlcG9zaXRSZXN1bHQge1xuICAgIGNvbnN0IFNlbmRNYW55Q29uY3JldGVSZXNwb25zZSA9IHQudHlwZSh7XG4gICAgICBwZW5kaW5nQXBwcm92YWw6IHQuaW50ZXJzZWN0aW9uKFt0LnR5cGUoeyBpZDogdC5zdHJpbmcgfSksIHQucGFydGlhbCh7IHN0YXRlOiB0LnN0cmluZyB9KV0pLFxuICAgIH0pO1xuICAgIGNvbnN0IGRlY29kZWQgPSBkZWNvZGVXaXRoQ29kZWMoU2VuZE1hbnlDb25jcmV0ZVJlc3BvbnNlLCBzZW5kTWFueVJlc3VsdCwgJ2RlZmktZGVwb3NpdCBzZW5kTWFueSByZXNwb25zZScpO1xuICAgIHJldHVybiB7XG4gICAgICBwZW5kaW5nQXBwcm92YWxJZDogZGVjb2RlZC5wZW5kaW5nQXBwcm92YWwuaWQsXG4gICAgICBzdGF0ZTogZGVjb2RlZC5wZW5kaW5nQXBwcm92YWwuc3RhdGUgPz8gJ2F3YWl0aW5nU2lnbmF0dXJlJyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVyYXRpb25zVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAvYXBpL2RlZmktc2VydmljZS92MS93YWxsZXRzLyR7dGhpcy53YWxsZXQuaWQoKX0vb3BlcmF0aW9uc2A7XG4gIH1cbn1cbiJdfQ==
371
+ /**
372
+ * Minimal dispatch codec. The deposit path reads only `protocol` to choose
373
+ * between the concrete and morpho flows, so it must not hard-fail on the
374
+ * validity of unrelated response fields (e.g. `composition[]`) it never
375
+ * consumes. A code path must not fail on the validity of data it does not
376
+ * consume.
377
+ */
378
+ DefiVault.VaultDispatch = t.type({ protocol: public_types_1.VaultProtocolType });
379
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaVZhdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2RlZmkvZGVmaVZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gseUNBQTJCO0FBQzNCLHNEQUF5RjtBQWtCekYsb0NBQTJDO0FBRTNDOztHQUVHO0FBQ0gsTUFBYSwwQkFBMkIsU0FBUSxLQUFLO0lBR25ELFlBQVksV0FBbUI7UUFDN0IsS0FBSyxDQUFDLCtDQUErQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxJQUFJLEdBQUcsNEJBQTRCLENBQUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztDQUNGO0FBUkQsZ0VBUUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBYSxTQUFTO0lBSXBCLFlBQVksTUFBZTtRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQVdEOzs7T0FHRztJQUNLLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBZTtRQUN6QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELE9BQU8sTUFBTSxJQUFJLENBQUMsS0FBSzthQUNwQixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQywrQkFBK0IsT0FBTyxFQUFFLENBQUMsQ0FBQzthQUMxRSxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDO2FBQ3JELE1BQU0sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBNkI7UUFDaEQsT0FBTyxJQUFBLHVCQUFlLEVBQUMsK0JBQWdCLEVBQUUsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUE2QjtRQUNsRCxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBQSx1QkFBZSxFQUNsQyxTQUFTLENBQUMsYUFBYSxFQUN2QixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUN4QyxlQUFlLENBQ2hCLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBNkI7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUUxRSxJQUFJLFFBQVEsS0FBSyw0QkFBYSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzlDLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLENBQUM7YUFBTSxJQUFJLFFBQVEsS0FBSyw0QkFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM3RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxLQUFLLENBQUMsc0JBQXNCLENBQUMsTUFBNkI7UUFDaEUsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUNoRCxJQUFJLEVBQUUsY0FBYztZQUNwQixVQUFVLEVBQUU7Z0JBQ1YsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO2dCQUN2QixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07Z0JBQ3JCLFVBQVUsRUFBRSxjQUFjO2FBQzNCO1lBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ2xGLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBNkI7UUFDOUQsdUVBQXVFO1FBQ3ZFLDJFQUEyRTtRQUMzRSw4REFBOEQ7UUFDOUQsNERBQTREO1FBQzVELHlEQUF5RDtRQUN6RCxlQUFlO1FBQ2YsRUFBRTtRQUNGLHVEQUF1RDtRQUN2RCwwRUFBMEU7UUFDMUUsSUFBSTtRQUVKLHlDQUF5QztRQUN6QyxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQy9DLElBQUksRUFBRSxhQUFhO1lBQ25CLFVBQVUsRUFBRTtnQkFDVixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87Z0JBQ3ZCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTthQUN0QjtZQUNELEdBQUcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNsRixDQUFDLENBQUM7UUFFSCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNsRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQseUNBQXlDO1FBQ3pDLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDL0MsSUFBSSxFQUFFLGFBQWE7WUFDbkIsVUFBVSxFQUFFO2dCQUNWLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztnQkFDdkIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO2dCQUNyQixXQUFXO2FBQ1o7WUFDRCxHQUFHLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDbEYsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFbEUsT0FBTztZQUNMLFdBQVc7WUFDWCxZQUFZLEVBQUU7Z0JBQ1osT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsT0FBTyxFQUFFLGtCQUFrQjthQUM1QjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUE0QjtRQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsMERBQTBEO1FBQzFELE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUUvRSxJQUFJLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsd0VBQXdFLENBQUMsQ0FBQztRQUM1RixDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLCtEQUErRCxDQUFDLENBQUM7UUFDbkYsQ0FBQztRQUVELHFFQUFxRTtRQUNyRSxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQy9DLElBQUksRUFBRSxhQUFhO1lBQ25CLFVBQVUsRUFBRTtnQkFDVixPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU87Z0JBQzFCLE1BQU0sRUFBRSxTQUFTLENBQUMsV0FBVztnQkFDN0IsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO2FBQ2hDO1lBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ2xGLENBQUMsQ0FBQztRQUVILE9BQU87WUFDTCxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDL0IsWUFBWSxFQUFFO2dCQUNaLE9BQU8sRUFBRSxTQUFTLENBQUMsV0FBVztnQkFDOUIsT0FBTyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUM7YUFDaEQ7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQTJCO1FBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3JILENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBNkI7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDekMsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFvQztZQUM3QyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87U0FDeEIsQ0FBQztRQUNGLElBQUksTUFBTSxDQUFDLEtBQUs7WUFBRSxLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDN0MsSUFBSSxNQUFNLENBQUMsSUFBSTtZQUFFLEtBQUssQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUMxQyxJQUFJLE1BQU0sQ0FBQyxLQUFLO1lBQUUsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzdDLElBQUksTUFBTSxDQUFDLE1BQU07WUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFFaEQsT0FBTyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkcsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBZ0M7UUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ2hELElBQUksRUFBRSxjQUFjO1lBQ3BCLFVBQVUsRUFBRTtnQkFDVixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87Z0JBQ3ZCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTthQUN0QjtZQUNELEdBQUcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNsRixDQUFDLENBQUM7UUFFSCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTVELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUVELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELHVFQUF1RTtJQUV2RTs7Ozs7T0FLRztJQUNLLGtCQUFrQixDQUFDLGNBQXVDO1FBQ2hFLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxTQUFnRCxDQUFDO1FBQ2xGLElBQUksU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQzNCLE9BQU8sU0FBUyxDQUFDLFdBQXFCLENBQUM7UUFDekMsQ0FBQztRQUNELElBQUksY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9CLE9BQU8sY0FBYyxDQUFDLFdBQXFCLENBQUM7UUFDOUMsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNLLGtCQUFrQixDQUFDLGNBQXVDO1FBQ2hFLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxTQUFnRCxDQUFDO1FBQ2xGLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCx1RUFBdUU7UUFDdkUsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLFlBQTBELENBQUM7UUFDMUYsTUFBTSxjQUFjLEdBQUcsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBaUQsQ0FBQztRQUM1RixNQUFNLGdCQUFnQixHQUFHLGNBQWMsRUFBRSxZQUFtRCxDQUFDO1FBQzdGLElBQUksZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDbEMsT0FBTyxnQkFBZ0IsQ0FBQyxXQUFxQixDQUFDO1FBQ2hELENBQUM7UUFFRCwyREFBMkQ7UUFDM0QsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLFdBQXlELENBQUM7UUFDeEYsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFtRCxDQUFDO1FBQy9GLElBQUksZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDbEMsT0FBTyxnQkFBZ0IsQ0FBQyxXQUFxQixDQUFDO1FBQ2hELENBQUM7UUFFRCxpRkFBaUY7UUFDakYsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQTZDLENBQUM7UUFDdkUsT0FBTyxNQUFNLEVBQUUsV0FBaUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLDRCQUE0QixDQUFDLGNBQXVDO1FBQzFFLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN0QyxlQUFlLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzVGLENBQUMsQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLElBQUEsdUJBQWUsRUFBQyx3QkFBd0IsRUFBRSxjQUFjLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQztRQUM1RyxPQUFPO1lBQ0wsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQzdDLEtBQUssRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLEtBQUssSUFBSSxtQkFBbUI7U0FDNUQsQ0FBQztJQUNKLENBQUM7SUFFTyxhQUFhO1FBQ25CLE9BQU8sZ0NBQWdDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQztJQUN2RSxDQUFDOztBQS9WSCw4QkFnV0M7QUF2VkM7Ozs7OztHQU1HO0FBQ3FCLHVCQUFhLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxnQ0FBaUIsRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcbmltcG9ydCB7IEdldFZhdWx0UmVzcG9uc2UsIFZhdWx0UHJvdG9jb2wsIFZhdWx0UHJvdG9jb2xUeXBlIH0gZnJvbSAnQGJpdGdvL3B1YmxpYy10eXBlcyc7XG5pbXBvcnQge1xuICBDb25jcmV0ZURlcG9zaXRSZXN1bHQsXG4gIE1vcnBob0RlcG9zaXRSZXN1bHQsXG4gIERlZmlPcGVyYXRpb24sXG4gIERlZmlPcGVyYXRpb25MaXN0UmVzdWx0LFxuICBEZXBvc2l0UmVzdWx0LFxuICBEZXBvc2l0VG9WYXVsdE9wdGlvbnMsXG4gIEdldE9wZXJhdGlvbk9wdGlvbnMsXG4gIEdldFZhdWx0Q29uZmlnT3B0aW9ucyxcbiAgSURlZmlWYXVsdCxcbiAgTGlzdE9wZXJhdGlvbnNPcHRpb25zLFxuICBSZXN1bWVEZXBvc2l0T3B0aW9ucyxcbiAgV2l0aGRyYXdGcm9tVmF1bHRPcHRpb25zLFxuICBXaXRoZHJhd1Jlc3VsdCxcbn0gZnJvbSAnLi9pRGVmaVZhdWx0JztcbmltcG9ydCB7IElXYWxsZXQgfSBmcm9tICcuLi93YWxsZXQnO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vYml0Z29CYXNlJztcbmltcG9ydCB7IGRlY29kZVdpdGhDb2RlYyB9IGZyb20gJy4uL3V0aWxzJztcblxuLyoqXG4gKiBFcnJvciB0aHJvd24gd2hlbiBhIGNvbmN1cnJlbnQgYWN0aXZlIGRlcG9zaXQgYWxyZWFkeSBleGlzdHMgZm9yIHRoZSAod2FsbGV0LCB2YXVsdCkgcGFpci5cbiAqL1xuZXhwb3J0IGNsYXNzIEFjdGl2ZU9wZXJhdGlvbkV4aXN0c0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0aW9uSWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihvcGVyYXRpb25JZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoYEFuIGFjdGl2ZSBkZXBvc2l0IG9wZXJhdGlvbiBhbHJlYWR5IGV4aXN0czogJHtvcGVyYXRpb25JZH1gKTtcbiAgICB0aGlzLm5hbWUgPSAnQWN0aXZlT3BlcmF0aW9uRXhpc3RzRXJyb3InO1xuICAgIHRoaXMub3BlcmF0aW9uSWQgPSBvcGVyYXRpb25JZDtcbiAgfVxufVxuXG4vKipcbiAqIE9yY2hlc3RyYXRlcyBFUkMtNDYyNiB2YXVsdCBkZXBvc2l0IGFuZCB3aXRoZHJhdyBmbG93cyBmb3IgYSB3YWxsZXQuXG4gKlxuICogRXhwb3NlZCBhcyBgd2FsbGV0LmRlZmlgIG9uIHRoZSBXYWxsZXQgY2xhc3MuIFNlZSBUREQgwqc2LjMuMSBmb3IgdGhlIGZ1bGxcbiAqIGRlc2lnbjogdGhlIFNESyBzZXF1ZW5jZXMgdHdvIHNlbmRNYW55IGNhbGxzIChhcHByb3ZlICsgZGVwb3NpdCkgYW5kXG4gKiByZXR1cm5zIGFuIG9wZXJhdGlvbklkIHRoYXQgdGhlIFVJIHVzZXMgZm9yIHN0YXR1cyB0cmFja2luZyBhbmQgcmVjb3ZlcnkuXG4gKlxuICogVXNlcyB3YWxsZXQuc2VuZE1hbnkoKSB1bmRlciB0aGUgaG9vZCBzbyB0aGF0IGJvdGggY3VzdG9keSB3YWxsZXRzXG4gKiAodHhSZXF1ZXN0IGNyZWF0aW9uIG9ubHkpIGFuZCBob3Qgd2FsbGV0cyAoY3JlYXRlICsgc2lnbiArIGJyb2FkY2FzdClcbiAqIGFyZSBoYW5kbGVkIGJ5IHRoZSBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS5cbiAqL1xuZXhwb3J0IGNsYXNzIERlZmlWYXVsdCBpbXBsZW1lbnRzIElEZWZpVmF1bHQge1xuICBwcml2YXRlIHJlYWRvbmx5IHdhbGxldDogSVdhbGxldDtcbiAgcHJpdmF0ZSByZWFkb25seSBiaXRnbzogQml0R29CYXNlO1xuXG4gIGNvbnN0cnVjdG9yKHdhbGxldDogSVdhbGxldCkge1xuICAgIHRoaXMud2FsbGV0ID0gd2FsbGV0O1xuICAgIHRoaXMuYml0Z28gPSB3YWxsZXQuYml0Z287XG4gIH1cblxuICAvKipcbiAgICogTWluaW1hbCBkaXNwYXRjaCBjb2RlYy4gVGhlIGRlcG9zaXQgcGF0aCByZWFkcyBvbmx5IGBwcm90b2NvbGAgdG8gY2hvb3NlXG4gICAqIGJldHdlZW4gdGhlIGNvbmNyZXRlIGFuZCBtb3JwaG8gZmxvd3MsIHNvIGl0IG11c3Qgbm90IGhhcmQtZmFpbCBvbiB0aGVcbiAgICogdmFsaWRpdHkgb2YgdW5yZWxhdGVkIHJlc3BvbnNlIGZpZWxkcyAoZS5nLiBgY29tcG9zaXRpb25bXWApIGl0IG5ldmVyXG4gICAqIGNvbnN1bWVzLiBBIGNvZGUgcGF0aCBtdXN0IG5vdCBmYWlsIG9uIHRoZSB2YWxpZGl0eSBvZiBkYXRhIGl0IGRvZXMgbm90XG4gICAqIGNvbnN1bWUuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBWYXVsdERpc3BhdGNoID0gdC50eXBlKHsgcHJvdG9jb2w6IFZhdWx0UHJvdG9jb2xUeXBlIH0pO1xuXG4gIC8qKlxuICAgKiBGZXRjaCB0aGUgcmF3IHZhdWx0IGNvbmZpZyBmcm9tIGRlZmktc2VydmljZS4gU2hhcmVkIGJ5IGNhbGxlcnMgdGhhdFxuICAgKiBkZWNvZGUgdGhlIGZ1bGwgcmVzcG9uc2UgYW5kIGNhbGxlcnMgdGhhdCBkZWNvZGUgb25seSB3aGF0IHRoZXkgdXNlLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBmZXRjaFZhdWx0UmF3KHZhdWx0SWQ6IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIGlmICghdmF1bHRJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YXVsdElkIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAuZ2V0KHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybChgL2FwaS9kZWZpLXNlcnZpY2UvdjEvdmF1bHRzLyR7dmF1bHRJZH1gKSlcbiAgICAgIC5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLndhbGxldC50b0pTT04oKS5lbnRlcnByaXNlKVxuICAgICAgLnJlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoIHZhdWx0IGNvbmZpZyBmcm9tIGRlZmktc2VydmljZS4gVXNlZCBpbnRlcm5hbGx5IHRvIGRldGVybWluZVxuICAgKiB3aGljaCBkZXBvc2l0IHBhdGggdG8gdGFrZSAoQ29uY3JldGUgdnMgTW9ycGhvKS5cbiAgICovXG4gIGFzeW5jIGdldFZhdWx0Q29uZmlnKHBhcmFtczogR2V0VmF1bHRDb25maWdPcHRpb25zKTogUHJvbWlzZTxHZXRWYXVsdFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIGRlY29kZVdpdGhDb2RlYyhHZXRWYXVsdFJlc3BvbnNlLCBhd2FpdCB0aGlzLmZldGNoVmF1bHRSYXcocGFyYW1zLnZhdWx0SWQpLCAnZ2V0VmF1bHRDb25maWcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBvbmx5IHRoZSB2YXVsdCBwcm90b2NvbCBmcm9tIGRlZmktc2VydmljZS4gRGVjb2RlcyB0aGUgbWluaW1hbFxuICAgKiBgVmF1bHREaXNwYXRjaGAgc2hhcGUgcmF0aGVyIHRoYW4gdGhlIGZ1bGwgYEdldFZhdWx0UmVzcG9uc2VgLCBzbyBjYWxsZXJzXG4gICAqIHRoYXQgbmVlZCBvbmx5IHRoZSBwcm90b2NvbCBhcmUgbm90IGhvc3RhZ2UgdG8gdGhlIHZhbGlkaXR5IG9mIHVucmVsYXRlZFxuICAgKiByZXNwb25zZSBmaWVsZHMgKGUuZy4gYGNvbXBvc2l0aW9uW11gKSB0aGV5IG5ldmVyIGNvbnN1bWUuXG4gICAqL1xuICBhc3luYyBnZXRWYXVsdFByb3RvY29sKHBhcmFtczogR2V0VmF1bHRDb25maWdPcHRpb25zKTogUHJvbWlzZTxWYXVsdFByb3RvY29sPiB7XG4gICAgY29uc3QgeyBwcm90b2NvbCB9ID0gZGVjb2RlV2l0aENvZGVjKFxuICAgICAgRGVmaVZhdWx0LlZhdWx0RGlzcGF0Y2gsXG4gICAgICBhd2FpdCB0aGlzLmZldGNoVmF1bHRSYXcocGFyYW1zLnZhdWx0SWQpLFxuICAgICAgJ3ZhdWx0RGlzcGF0Y2gnXG4gICAgKTtcbiAgICByZXR1cm4gcHJvdG9jb2w7XG4gIH1cblxuICAvKipcbiAgICogRGVwb3NpdCBhbiBhbW91bnQgb2YgdW5kZXJseWluZyBhc3NldCBpbnRvIGEgdmF1bHQuXG4gICAqXG4gICAqIERpc3BhdGNoZXMgdG8gdGhlIGNvbmNyZXRlIG9yIG1vcnBobyBwYXRoIGJhc2VkIG9uIHZhdWx0IHByb3ZpZGVyLlxuICAgKiBUaGUgY29uY3JldGUgcGF0aCByZXR1cm5zIGEgcGVuZGluZ0FwcHJvdmFsIChjdXN0b2RpYWwgd2FsbGV0KS5cbiAgICogVGhlIG1vcnBobyBwYXRoIGlzc3VlcyB0d28gc2VuZE1hbnkgY2FsbHMgKGFwcHJvdmUgKyBkZXBvc2l0KS5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcy52YXVsdElkIC0gRGVGaS1zZXJ2aWNlIHZhdWx0IGlkZW50aWZpZXJcbiAgICogQHBhcmFtIHBhcmFtcy5hbW91bnQgLSBhbW91bnQgaW4gYmFzZSB1bml0cyBvZiB0aGUgdW5kZXJseWluZyBhc3NldFxuICAgKiBAcGFyYW0gcGFyYW1zLndhbGxldFBhc3NwaHJhc2UgLSByZXF1aXJlZCBmb3IgaG90IHdhbGxldHMsIG9taXQgZm9yIGN1c3RvZHlcbiAgICovXG4gIGFzeW5jIGRlcG9zaXRUb1ZhdWx0KHBhcmFtczogRGVwb3NpdFRvVmF1bHRPcHRpb25zKTogUHJvbWlzZTxEZXBvc2l0UmVzdWx0PiB7XG4gICAgaWYgKCFwYXJhbXMudmF1bHRJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YXVsdElkIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmICghcGFyYW1zLmFtb3VudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhbW91bnQgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm90b2NvbCA9IGF3YWl0IHRoaXMuZ2V0VmF1bHRQcm90b2NvbCh7IHZhdWx0SWQ6IHBhcmFtcy52YXVsdElkIH0pO1xuXG4gICAgaWYgKHByb3RvY29sID09PSBWYXVsdFByb3RvY29sLkNPTkNSRVRFX0JUQ0NYKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZXBvc2l0VG9Db25jcmV0ZVZhdWx0KHBhcmFtcyk7XG4gICAgfSBlbHNlIGlmIChwcm90b2NvbCA9PT0gVmF1bHRQcm90b2NvbC5NT1JQSE8pIHtcbiAgICAgIHJldHVybiB0aGlzLmRlcG9zaXRUb01vcnBob1ZhdWx0KHBhcmFtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgdmF1bHQgcHJvdG9jb2w6ICR7cHJvdG9jb2x9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbmNyZXRlIEJUQyB2YXVsdCBkZXBvc2l0IHBhdGguIFRoZSBjbGllbnQgQlRDIHdhbGxldCBpcyBjdXN0b2RpYWwsIHNvXG4gICAqIHNlbmRNYW55IHJldHVybnMgYSBwZW5kaW5nQXBwcm92YWwgcmF0aGVyIHRoYW4gYSBzaWduZWQgdHJhbnNmZXIuXG4gICAqIE5vIHJlY2lwaWVudHMgYXJlIHNlbnQg4oCUIFdQIHJlc29sdmVzIHRoZSBlc2Nyb3cgZGVzdGluYXRpb24gc2VydmVyLXNpZGUuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGRlcG9zaXRUb0NvbmNyZXRlVmF1bHQocGFyYW1zOiBEZXBvc2l0VG9WYXVsdE9wdGlvbnMpOiBQcm9taXNlPENvbmNyZXRlRGVwb3NpdFJlc3VsdD4ge1xuICAgIGNvbnN0IHNlbmRNYW55UmVzdWx0ID0gYXdhaXQgdGhpcy53YWxsZXQuc2VuZE1hbnkoe1xuICAgICAgdHlwZTogJ2RlZmktZGVwb3NpdCcsXG4gICAgICBkZWZpUGFyYW1zOiB7XG4gICAgICAgIHZhdWx0SWQ6IHBhcmFtcy52YXVsdElkLFxuICAgICAgICBhbW91bnQ6IHBhcmFtcy5hbW91bnQsXG4gICAgICAgIGFjdGlvblR5cGU6ICdkZWZpLWRlcG9zaXQnLFxuICAgICAgfSxcbiAgICAgIC4uLihwYXJhbXMud2FsbGV0UGFzc3BocmFzZSA/IHsgd2FsbGV0UGFzc3BocmFzZTogcGFyYW1zLndhbGxldFBhc3NwaHJhc2UgfSA6IHt9KSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmV4dHJhY3RDb25jcmV0ZURlcG9zaXRSZXN1bHQoc2VuZE1hbnlSZXN1bHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vcnBobyB2YXVsdCBkZXBvc2l0IHBhdGguIElzc3VlcyB0d28gc2VuZE1hbnkgY2FsbHMgKGFwcHJvdmUgKyBkZXBvc2l0KVxuICAgKiBhbmQgcmV0dXJucyB0aGUgb3BlcmF0aW9uSWQgdGhhdCBsaW5rcyB0aGVtLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBkZXBvc2l0VG9Nb3JwaG9WYXVsdChwYXJhbXM6IERlcG9zaXRUb1ZhdWx0T3B0aW9ucyk6IFByb21pc2U8TW9ycGhvRGVwb3NpdFJlc3VsdD4ge1xuICAgIC8vIFRPRE8oQ0dELTE3MDkpOiBSZS1lbmFibGUgYWN0aXZlIG9wZXJhdGlvbiBwcmUtZmxpZ2h0IGNoZWNrIG9uY2UgdGhlXG4gICAgLy8gZGVmaS1zZXJ2aWNlIG9wZXJhdGlvbnMgZW5kcG9pbnQgaXMgZGVwbG95ZWQgYW5kIHJldHVybmluZyBhY3RpdmUgc3RhdGUuXG4gICAgLy8gY29uc3QgYWN0aXZlT3BzOiBEZWZpT3BlcmF0aW9uTGlzdFJlc3VsdCA9IGF3YWl0IHRoaXMuYml0Z29cbiAgICAvLyAgIC5nZXQodGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKHRoaXMub3BlcmF0aW9uc1VybCgpKSlcbiAgICAvLyAgIC5xdWVyeSh7IHZhdWx0SWQ6IHBhcmFtcy52YXVsdElkLCBzdGF0ZTogJ2FjdGl2ZScgfSlcbiAgICAvLyAgIC5yZXN1bHQoKTtcbiAgICAvL1xuICAgIC8vIGlmIChhY3RpdmVPcHMuaXRlbXMgJiYgYWN0aXZlT3BzLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAvLyAgIHRocm93IG5ldyBBY3RpdmVPcGVyYXRpb25FeGlzdHNFcnJvcihhY3RpdmVPcHMuaXRlbXNbMF0ub3BlcmF0aW9uSWQpO1xuICAgIC8vIH1cblxuICAgIC8vIFN0ZXAgMTogQXBwcm92ZSB0eFJlcXVlc3QgdmlhIHNlbmRNYW55XG4gICAgY29uc3QgYXBwcm92ZVJlc3VsdCA9IGF3YWl0IHRoaXMud2FsbGV0LnNlbmRNYW55KHtcbiAgICAgIHR5cGU6ICdkZWZpQXBwcm92ZScsXG4gICAgICBkZWZpUGFyYW1zOiB7XG4gICAgICAgIHZhdWx0SWQ6IHBhcmFtcy52YXVsdElkLFxuICAgICAgICBhbW91bnQ6IHBhcmFtcy5hbW91bnQsXG4gICAgICB9LFxuICAgICAgLi4uKHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlID8geyB3YWxsZXRQYXNzcGhyYXNlOiBwYXJhbXMud2FsbGV0UGFzc3BocmFzZSB9IDoge30pLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYXBwcm92ZVR4UmVxdWVzdElkID0gdGhpcy5leHRyYWN0VHhSZXF1ZXN0SWQoYXBwcm92ZVJlc3VsdCk7XG4gICAgY29uc3Qgb3BlcmF0aW9uSWQgPSB0aGlzLmV4dHJhY3RPcGVyYXRpb25JZChhcHByb3ZlUmVzdWx0KTtcblxuICAgIGlmICghb3BlcmF0aW9uSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignb3BlcmF0aW9uSWQgbm90IGZvdW5kIGluIGFwcHJvdmUgdHhSZXF1ZXN0IHJlc3BvbnNlJyk7XG4gICAgfVxuXG4gICAgLy8gU3RlcCAyOiBEZXBvc2l0IHR4UmVxdWVzdCB2aWEgc2VuZE1hbnlcbiAgICBjb25zdCBkZXBvc2l0UmVzdWx0ID0gYXdhaXQgdGhpcy53YWxsZXQuc2VuZE1hbnkoe1xuICAgICAgdHlwZTogJ2RlZmlEZXBvc2l0JyxcbiAgICAgIGRlZmlQYXJhbXM6IHtcbiAgICAgICAgdmF1bHRJZDogcGFyYW1zLnZhdWx0SWQsXG4gICAgICAgIGFtb3VudDogcGFyYW1zLmFtb3VudCxcbiAgICAgICAgb3BlcmF0aW9uSWQsXG4gICAgICB9LFxuICAgICAgLi4uKHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlID8geyB3YWxsZXRQYXNzcGhyYXNlOiBwYXJhbXMud2FsbGV0UGFzc3BocmFzZSB9IDoge30pLFxuICAgIH0pO1xuICAgIGNvbnN0IGRlcG9zaXRUeFJlcXVlc3RJZCA9IHRoaXMuZXh0cmFjdFR4UmVxdWVzdElkKGRlcG9zaXRSZXN1bHQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG9wZXJhdGlvbklkLFxuICAgICAgdHhSZXF1ZXN0SWRzOiB7XG4gICAgICAgIGFwcHJvdmU6IGFwcHJvdmVUeFJlcXVlc3RJZCxcbiAgICAgICAgZGVwb3NpdDogZGVwb3NpdFR4UmVxdWVzdElkLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc3VtZSBhIHBhcnRpYWxseS1jb21wbGV0ZWQgZGVwb3NpdC4gQ2FsbCB0aGlzIHdoZW4gdGhlIFNESyBwcm9jZXNzIGRpZWRcbiAgICogYmV0d2VlbiB0aGUgYXBwcm92ZSBhbmQgZGVwb3NpdCB0eFJlcXVlc3QgY3JlYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMub3BlcmF0aW9uSWQgLSB0aGUgb3BlcmF0aW9uSWQgZnJvbSB0aGUgb3JpZ2luYWwgZGVwb3NpdFRvVmF1bHQgY2FsbFxuICAgKiBAcGFyYW0gcGFyYW1zLndhbGxldFBhc3NwaHJhc2UgLSByZXF1aXJlZCBmb3IgaG90IHdhbGxldHMsIG9taXQgZm9yIGN1c3RvZHlcbiAgICovXG4gIGFzeW5jIHJlc3VtZURlcG9zaXQocGFyYW1zOiBSZXN1bWVEZXBvc2l0T3B0aW9ucyk6IFByb21pc2U8RGVwb3NpdFJlc3VsdD4ge1xuICAgIGlmICghcGFyYW1zLm9wZXJhdGlvbklkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ29wZXJhdGlvbklkIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgLy8gRmV0Y2ggdGhlIG9wZXJhdGlvbiB0byBnZXQgdGhlIHZhdWx0IGFuZCBhbW91bnQgZGV0YWlsc1xuICAgIGNvbnN0IG9wZXJhdGlvbiA9IGF3YWl0IHRoaXMuZ2V0T3BlcmF0aW9uKHsgb3BlcmF0aW9uSWQ6IHBhcmFtcy5vcGVyYXRpb25JZCB9KTtcblxuICAgIGlmIChvcGVyYXRpb24uYXNzb2NpYXRlZFR4UmVxdWVzdElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RlcG9zaXQgdHhSZXF1ZXN0IGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIG9wZXJhdGlvbjsgbm90aGluZyB0byByZXN1bWUnKTtcbiAgICB9XG5cbiAgICBpZiAoIW9wZXJhdGlvbi50eFJlcXVlc3RJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBcHByb3ZlIHR4UmVxdWVzdCBub3QgZm91bmQgZm9yIHRoaXMgb3BlcmF0aW9uOyBjYW5ub3QgcmVzdW1lJyk7XG4gICAgfVxuXG4gICAgLy8gSXNzdWUgdGhlIGRlcG9zaXQgdHhSZXF1ZXN0IHVzaW5nIHRoZSBleGlzdGluZyBvcGVyYXRpb24ncyBkZXRhaWxzXG4gICAgY29uc3QgZGVwb3NpdFJlc3VsdCA9IGF3YWl0IHRoaXMud2FsbGV0LnNlbmRNYW55KHtcbiAgICAgIHR5cGU6ICdkZWZpRGVwb3NpdCcsXG4gICAgICBkZWZpUGFyYW1zOiB7XG4gICAgICAgIHZhdWx0SWQ6IG9wZXJhdGlvbi52YXVsdElkLFxuICAgICAgICBhbW91bnQ6IG9wZXJhdGlvbi5hc3NldEFtb3VudCxcbiAgICAgICAgb3BlcmF0aW9uSWQ6IHBhcmFtcy5vcGVyYXRpb25JZCxcbiAgICAgIH0sXG4gICAgICAuLi4ocGFyYW1zLndhbGxldFBhc3NwaHJhc2UgPyB7IHdhbGxldFBhc3NwaHJhc2U6IHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIH0gOiB7fSksXG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3BlcmF0aW9uSWQ6IHBhcmFtcy5vcGVyYXRpb25JZCxcbiAgICAgIHR4UmVxdWVzdElkczoge1xuICAgICAgICBhcHByb3ZlOiBvcGVyYXRpb24udHhSZXF1ZXN0SWQsXG4gICAgICAgIGRlcG9zaXQ6IHRoaXMuZXh0cmFjdFR4UmVxdWVzdElkKGRlcG9zaXRSZXN1bHQpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCBzdGF0ZSBvZiBhIERlRmkgb3BlcmF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zLm9wZXJhdGlvbklkIC0gdGhlIG9wZXJhdGlvbiB0byByZXRyaWV2ZVxuICAgKi9cbiAgYXN5bmMgZ2V0T3BlcmF0aW9uKHBhcmFtczogR2V0T3BlcmF0aW9uT3B0aW9ucyk6IFByb21pc2U8RGVmaU9wZXJhdGlvbj4ge1xuICAgIGlmICghcGFyYW1zLm9wZXJhdGlvbklkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ29wZXJhdGlvbklkIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYml0Z28uZ2V0KHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCh0aGlzLm9wZXJhdGlvbnNVcmwoKSArICcvJyArIHBhcmFtcy5vcGVyYXRpb25JZCkpLnJlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3Qgb3BlcmF0aW9ucyBmb3IgYSB2YXVsdCBmaWx0ZXJlZCBieSB3YWxsZXRJZC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcy52YXVsdElkIC0gdmF1bHQgdG8gbGlzdCBvcGVyYXRpb25zIGZvclxuICAgKiBAcGFyYW0gcGFyYW1zLnN0YXRlIC0gb3B0aW9uYWwgc3RhdGUgZmlsdGVyXG4gICAqIEBwYXJhbSBwYXJhbXMudHlwZSAtIG9wdGlvbmFsIHR5cGUgZmlsdGVyIChERVBPU0lUIHwgV0lUSERSQVcpXG4gICAqIEBwYXJhbSBwYXJhbXMubGltaXQgLSBwYWdlIHNpemVcbiAgICogQHBhcmFtIHBhcmFtcy5jdXJzb3IgLSBwYWdpbmF0aW9uIGN1cnNvclxuICAgKi9cbiAgYXN5bmMgbGlzdE9wZXJhdGlvbnMocGFyYW1zOiBMaXN0T3BlcmF0aW9uc09wdGlvbnMpOiBQcm9taXNlPERlZmlPcGVyYXRpb25MaXN0UmVzdWx0PiB7XG4gICAgaWYgKCFwYXJhbXMudmF1bHRJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YXVsdElkIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnk6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4gPSB7XG4gICAgICB2YXVsdElkOiBwYXJhbXMudmF1bHRJZCxcbiAgICB9O1xuICAgIGlmIChwYXJhbXMuc3RhdGUpIHF1ZXJ5LnN0YXRlID0gcGFyYW1zLnN0YXRlO1xuICAgIGlmIChwYXJhbXMudHlwZSkgcXVlcnkudHlwZSA9IHBhcmFtcy50eXBlO1xuICAgIGlmIChwYXJhbXMubGltaXQpIHF1ZXJ5LmxpbWl0ID0gcGFyYW1zLmxpbWl0O1xuICAgIGlmIChwYXJhbXMuY3Vyc29yKSBxdWVyeS5jdXJzb3IgPSBwYXJhbXMuY3Vyc29yO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYml0Z28uZ2V0KHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCh0aGlzLm9wZXJhdGlvbnNVcmwoKSkpLnF1ZXJ5KHF1ZXJ5KS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaXRoZHJhdyB2YXVsdCBzaGFyZXMgZnJvbSBhIERlRmkgdmF1bHQuXG4gICAqXG4gICAqIElzc3VlcyBhIHNpbmdsZSBzZW5kTWFueSBjYWxsIChkZWZpV2l0aGRyYXcpIGFuZCByZXR1cm5zIHRoZSBvcGVyYXRpb25JZFxuICAgKiBhbmQgdHhSZXF1ZXN0SWQuIFRoZSBzdGF0ZSBtYWNoaW5lIGZvciB3aXRoZHJhd2FsIGlzIHNpbXBsZXIgdGhhbiBkZXBvc2l0OlxuICAgKiBDUkVBVEVEIOKGkiBXSVRIRFJBV19UWF9SRVFVRVNURUQg4oaSIFdJVEhEUkFXX1NJR05FRCDihpIgV0lUSERSQVdfQ09ORklSTUVEIOKGkiBDT01QTEVURURcbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcy52YXVsdElkIC0gRGVGaS1zZXJ2aWNlIHZhdWx0IGlkZW50aWZpZXJcbiAgICogQHBhcmFtIHBhcmFtcy5hbW91bnQgLSBhbW91bnQgaW4gYmFzZSB1bml0cyBvZiB0aGUgdmF1bHQgc2hhcmUgdG9rZW5cbiAgICogQHBhcmFtIHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIC0gcmVxdWlyZWQgZm9yIGhvdCB3YWxsZXRzLCBvbWl0IGZvciBjdXN0b2R5XG4gICAqL1xuICBhc3luYyB3aXRoZHJhd0Zyb21WYXVsdChwYXJhbXM6IFdpdGhkcmF3RnJvbVZhdWx0T3B0aW9ucyk6IFByb21pc2U8V2l0aGRyYXdSZXN1bHQ+IHtcbiAgICBpZiAoIXBhcmFtcy52YXVsdElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZhdWx0SWQgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgaWYgKCFwYXJhbXMuYW1vdW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Ftb3VudCBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHdpdGhkcmF3UmVzdWx0ID0gYXdhaXQgdGhpcy53YWxsZXQuc2VuZE1hbnkoe1xuICAgICAgdHlwZTogJ2RlZmlXaXRoZHJhdycsXG4gICAgICBkZWZpUGFyYW1zOiB7XG4gICAgICAgIHZhdWx0SWQ6IHBhcmFtcy52YXVsdElkLFxuICAgICAgICBhbW91bnQ6IHBhcmFtcy5hbW91bnQsXG4gICAgICB9LFxuICAgICAgLi4uKHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlID8geyB3YWxsZXRQYXNzcGhyYXNlOiBwYXJhbXMud2FsbGV0UGFzc3BocmFzZSB9IDoge30pLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdHhSZXF1ZXN0SWQgPSB0aGlzLmV4dHJhY3RUeFJlcXVlc3RJZCh3aXRoZHJhd1Jlc3VsdCk7XG4gICAgY29uc3Qgb3BlcmF0aW9uSWQgPSB0aGlzLmV4dHJhY3RPcGVyYXRpb25JZCh3aXRoZHJhd1Jlc3VsdCk7XG5cbiAgICBpZiAoIW9wZXJhdGlvbklkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ29wZXJhdGlvbklkIG5vdCBmb3VuZCBpbiB3aXRoZHJhdyB0eFJlcXVlc3QgcmVzcG9uc2UnKTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBvcGVyYXRpb25JZCwgdHhSZXF1ZXN0SWQgfTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBJbnRlcm5hbCBoZWxwZXJzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKlxuICAgKiBFeHRyYWN0IHR4UmVxdWVzdElkIGZyb20gYSBzZW5kTWFueSByZXN1bHQuXG4gICAqIHNlbmRNYW55IHJldHVybnMgZGlmZmVyZW50IHNoYXBlcyBkZXBlbmRpbmcgb24gd2FsbGV0IHR5cGU6XG4gICAqIC0gVFNTIGZ1bGw6IHsgdHhSZXF1ZXN0OiB7IHR4UmVxdWVzdElkIH0gfSBvciB7IHBlbmRpbmdBcHByb3ZhbCwgdHhSZXF1ZXN0IH1cbiAgICogLSBUU1MgbGl0ZTogcmVzdWx0IGZyb20gdHNzVXRpbHMuc2VuZFR4UmVxdWVzdFxuICAgKi9cbiAgcHJpdmF0ZSBleHRyYWN0VHhSZXF1ZXN0SWQoc2VuZE1hbnlSZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogc3RyaW5nIHtcbiAgICBjb25zdCB0eFJlcXVlc3QgPSBzZW5kTWFueVJlc3VsdC50eFJlcXVlc3QgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICAgaWYgKHR4UmVxdWVzdD8udHhSZXF1ZXN0SWQpIHtcbiAgICAgIHJldHVybiB0eFJlcXVlc3QudHhSZXF1ZXN0SWQgYXMgc3RyaW5nO1xuICAgIH1cbiAgICBpZiAoc2VuZE1hbnlSZXN1bHQudHhSZXF1ZXN0SWQpIHtcbiAgICAgIHJldHVybiBzZW5kTWFueVJlc3VsdC50eFJlcXVlc3RJZCBhcyBzdHJpbmc7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcigndHhSZXF1ZXN0SWQgbm90IGZvdW5kIGluIHNlbmRNYW55IHJlc3BvbnNlJyk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdCBvcGVyYXRpb25JZCBmcm9tIGEgc2VuZE1hbnkgcmVzdWx0LlxuICAgKlxuICAgKiBUaGUgV1Agd3JpdGVzIHRoZSBkZWZpLXNlcnZpY2UtbWludGVkIG9wZXJhdGlvbklkIGludG8gdGhlIGJ1aWx0XG4gICAqIHRyYW5zYWN0aW9uJ3MgYGNvaW5TcGVjaWZpY2AgKGFsb25nc2lkZSBgYXNzaWduZWROb25jZWApLCBub3QgaW50byB0aGVcbiAgICogaW50ZW50LiBSZWFkIGl0IGZyb20gdGhlcmU6IHRoZSBgZnVsbGAgYXBpVmVyc2lvbiBzdXJmYWNlcyBpdCBhdFxuICAgKiBgdHJhbnNhY3Rpb25zWzBdLnVuc2lnbmVkVHguY29pblNwZWNpZmljLm9wZXJhdGlvbklkYCwgdGhlIGBsaXRlYCB2ZXJzaW9uXG4gICAqIGF0IGB1bnNpZ25lZFR4c1swXS5jb2luU3BlY2lmaWMub3BlcmF0aW9uSWRgLiBGYWxsIGJhY2sgdG9cbiAgICogYGludGVudC5vcGVyYXRpb25JZGAgZm9yIGZvcndhcmQtY29tcGF0IGluIGNhc2UgdGhlIFdQIGxhdGVyIGFsc29cbiAgICogcG9wdWxhdGVzIHRoZSBpbnRlbnQuXG4gICAqL1xuICBwcml2YXRlIGV4dHJhY3RPcGVyYXRpb25JZChzZW5kTWFueVJlc3VsdDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHR4UmVxdWVzdCA9IHNlbmRNYW55UmVzdWx0LnR4UmVxdWVzdCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICBpZiAoIXR4UmVxdWVzdCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBmdWxsIGFwaVZlcnNpb246IHRyYW5zYWN0aW9uc1swXS51bnNpZ25lZFR4LmNvaW5TcGVjaWZpYy5vcGVyYXRpb25JZFxuICAgIGNvbnN0IHRyYW5zYWN0aW9ucyA9IHR4UmVxdWVzdC50cmFuc2FjdGlvbnMgYXMgQXJyYXk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZ1bGxVbnNpZ25lZFR4ID0gdHJhbnNhY3Rpb25zPy5bMF0/LnVuc2lnbmVkVHggYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgZnVsbENvaW5TcGVjaWZpYyA9IGZ1bGxVbnNpZ25lZFR4Py5jb2luU3BlY2lmaWMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICAgaWYgKGZ1bGxDb2luU3BlY2lmaWM/Lm9wZXJhdGlvbklkKSB7XG4gICAgICByZXR1cm4gZnVsbENvaW5TcGVjaWZpYy5vcGVyYXRpb25JZCBhcyBzdHJpbmc7XG4gICAgfVxuXG4gICAgLy8gbGl0ZSBhcGlWZXJzaW9uOiB1bnNpZ25lZFR4c1swXS5jb2luU3BlY2lmaWMub3BlcmF0aW9uSWRcbiAgICBjb25zdCB1bnNpZ25lZFR4cyA9IHR4UmVxdWVzdC51bnNpZ25lZFR4cyBhcyBBcnJheTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgbGl0ZUNvaW5TcGVjaWZpYyA9IHVuc2lnbmVkVHhzPy5bMF0/LmNvaW5TcGVjaWZpYyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICBpZiAobGl0ZUNvaW5TcGVjaWZpYz8ub3BlcmF0aW9uSWQpIHtcbiAgICAgIHJldHVybiBsaXRlQ29pblNwZWNpZmljLm9wZXJhdGlvbklkIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICAvLyBmb3J3YXJkLWNvbXBhdDogaW50ZW50Lm9wZXJhdGlvbklkIChpbiBjYXNlIHRoZSBXUCBsYXRlciBwb3B1bGF0ZXMgdGhlIGludGVudClcbiAgICBjb25zdCBpbnRlbnQgPSB0eFJlcXVlc3QuaW50ZW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiBpbnRlbnQ/Lm9wZXJhdGlvbklkIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyB7QGxpbmsgQ29uY3JldGVEZXBvc2l0UmVzdWx0fSBmcm9tIGEgY3VzdG9kaWFsIHNlbmRNYW55IHJlc3BvbnNlLlxuICAgKiBDb25jcmV0ZSBCVEMgZGVwb3NpdHMgcmV0dXJuIGEgYHBlbmRpbmdBcHByb3ZhbGAgaW5zdGVhZCBvZiBhIHR4UmVxdWVzdCDigJRcbiAgICogdGhyb3dzIGlmIGBwZW5kaW5nQXBwcm92YWwuaWRgIGlzIGFic2VudCwgaW5kaWNhdGluZyBhbiB1bmV4cGVjdGVkIHNoYXBlLlxuICAgKi9cbiAgcHJpdmF0ZSBleHRyYWN0Q29uY3JldGVEZXBvc2l0UmVzdWx0KHNlbmRNYW55UmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IENvbmNyZXRlRGVwb3NpdFJlc3VsdCB7XG4gICAgY29uc3QgU2VuZE1hbnlDb25jcmV0ZVJlc3BvbnNlID0gdC50eXBlKHtcbiAgICAgIHBlbmRpbmdBcHByb3ZhbDogdC5pbnRlcnNlY3Rpb24oW3QudHlwZSh7IGlkOiB0LnN0cmluZyB9KSwgdC5wYXJ0aWFsKHsgc3RhdGU6IHQuc3RyaW5nIH0pXSksXG4gICAgfSk7XG4gICAgY29uc3QgZGVjb2RlZCA9IGRlY29kZVdpdGhDb2RlYyhTZW5kTWFueUNvbmNyZXRlUmVzcG9uc2UsIHNlbmRNYW55UmVzdWx0LCAnZGVmaS1kZXBvc2l0IHNlbmRNYW55IHJlc3BvbnNlJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBlbmRpbmdBcHByb3ZhbElkOiBkZWNvZGVkLnBlbmRpbmdBcHByb3ZhbC5pZCxcbiAgICAgIHN0YXRlOiBkZWNvZGVkLnBlbmRpbmdBcHByb3ZhbC5zdGF0ZSA/PyAnYXdhaXRpbmdTaWduYXR1cmUnLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG9wZXJhdGlvbnNVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYC9hcGkvZGVmaS1zZXJ2aWNlL3YxL3dhbGxldHMvJHt0aGlzLndhbGxldC5pZCgpfS9vcGVyYXRpb25zYDtcbiAgfVxufVxuIl19
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @prettier
3
3
  */
4
- import { GetVaultResponse } from '@bitgo/public-types';
4
+ import { GetVaultResponse, VaultProtocol } from '@bitgo/public-types';
5
5
  export interface DepositToVaultOptions {
6
6
  /** DeFi-service vault identifier */
7
7
  vaultId: string;
@@ -75,6 +75,7 @@ export interface IDefiVault {
75
75
  getOperation(params: GetOperationOptions): Promise<DefiOperation>;
76
76
  listOperations(params: ListOperationsOptions): Promise<DefiOperationListResult>;
77
77
  getVaultConfig(params: GetVaultConfigOptions): Promise<GetVaultResponse>;
78
+ getVaultProtocol(params: GetVaultConfigOptions): Promise<VaultProtocol>;
78
79
  withdrawFromVault(params: WithdrawFromVaultOptions): Promise<WithdrawResult>;
79
80
  }
80
81
  //# sourceMappingURL=iDefiVault.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"iDefiVault.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/defi/iDefiVault.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,qBAAqB;IACpC,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AAED,MAAM,MAAM,aAAa,GAAG,qBAAqB,GAAG,mBAAmB,CAAC;AAExE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACtE,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACpE,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAClE,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAChF,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzE,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAC9E"}
1
+ {"version":3,"file":"iDefiVault.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/defi/iDefiVault.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEtE,MAAM,WAAW,qBAAqB;IACpC,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AAED,MAAM,MAAM,aAAa,GAAG,qBAAqB,GAAG,mBAAmB,CAAC;AAExE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACtE,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACpE,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAClE,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAChF,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzE,gBAAgB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACxE,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAC9E"}
@@ -3,4 +3,4 @@
3
3
  * @prettier
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaURlZmlWYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9kZWZpL2lEZWZpVmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuXG5pbXBvcnQgeyBHZXRWYXVsdFJlc3BvbnNlIH0gZnJvbSAnQGJpdGdvL3B1YmxpYy10eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwb3NpdFRvVmF1bHRPcHRpb25zIHtcbiAgLyoqIERlRmktc2VydmljZSB2YXVsdCBpZGVudGlmaWVyICovXG4gIHZhdWx0SWQ6IHN0cmluZztcbiAgLyoqIEFtb3VudCBpbiBiYXNlIHVuaXRzIG9mIHRoZSB1bmRlcmx5aW5nIGFzc2V0ICovXG4gIGFtb3VudDogc3RyaW5nO1xuICAvKiogV2FsbGV0IHBhc3NwaHJhc2Ug4oCUIHJlcXVpcmVkIGZvciBob3Qgd2FsbGV0cywgb21pdCBmb3IgY3VzdG9keSAqL1xuICB3YWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3VtZURlcG9zaXRPcHRpb25zIHtcbiAgLyoqIG9wZXJhdGlvbklkIG9mIHRoZSBwYXJ0aWFsbHktY29tcGxldGVkIGRlcG9zaXQgKi9cbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgLyoqIFdhbGxldCBwYXNzcGhyYXNlIOKAlCByZXF1aXJlZCBmb3IgaG90IHdhbGxldHMsIG9taXQgZm9yIGN1c3RvZHkgKi9cbiAgd2FsbGV0UGFzc3BocmFzZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRPcGVyYXRpb25PcHRpb25zIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0T3BlcmF0aW9uc09wdGlvbnMge1xuICB2YXVsdElkOiBzdHJpbmc7XG4gIHN0YXRlPzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBsaW1pdD86IG51bWJlcjtcbiAgY3Vyc29yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFZhdWx0Q29uZmlnT3B0aW9ucyB7XG4gIHZhdWx0SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWZpT3BlcmF0aW9uIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgd2FsbGV0SWQ6IHN0cmluZztcbiAgdmF1bHRJZDogc3RyaW5nO1xuICB0eXBlOiAnREVQT1NJVCcgfCAnV0lUSERSQVcnO1xuICBhc3NldEFtb3VudDogc3RyaW5nO1xuICBzdGF0ZTogc3RyaW5nO1xuICB0eFJlcXVlc3RJZD86IHN0cmluZztcbiAgYXNzb2NpYXRlZFR4UmVxdWVzdElkPzogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uY3JldGVEZXBvc2l0UmVzdWx0IHtcbiAgcGVuZGluZ0FwcHJvdmFsSWQ6IHN0cmluZztcbiAgc3RhdGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb3JwaG9EZXBvc2l0UmVzdWx0IHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgdHhSZXF1ZXN0SWRzOiB7IGFwcHJvdmU6IHN0cmluZzsgZGVwb3NpdDogc3RyaW5nIH07XG59XG5cbmV4cG9ydCB0eXBlIERlcG9zaXRSZXN1bHQgPSBDb25jcmV0ZURlcG9zaXRSZXN1bHQgfCBNb3JwaG9EZXBvc2l0UmVzdWx0O1xuXG5leHBvcnQgaW50ZXJmYWNlIERlZmlPcGVyYXRpb25MaXN0UmVzdWx0IHtcbiAgaXRlbXM6IERlZmlPcGVyYXRpb25bXTtcbiAgbmV4dEN1cnNvcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaXRoZHJhd0Zyb21WYXVsdE9wdGlvbnMge1xuICAvKiogRGVGaS1zZXJ2aWNlIHZhdWx0IGlkZW50aWZpZXIgKi9cbiAgdmF1bHRJZDogc3RyaW5nO1xuICAvKiogQW1vdW50IGluIGJhc2UgdW5pdHMgb2YgdGhlIHZhdWx0IHNoYXJlIHRva2VuICovXG4gIGFtb3VudDogc3RyaW5nO1xuICAvKiogV2FsbGV0IHBhc3NwaHJhc2Ug4oCUIHJlcXVpcmVkIGZvciBob3Qgd2FsbGV0cywgb21pdCBmb3IgY3VzdG9keSAqL1xuICB3YWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdpdGhkcmF3UmVzdWx0IHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgdHhSZXF1ZXN0SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGVmaVZhdWx0IHtcbiAgZGVwb3NpdFRvVmF1bHQocGFyYW1zOiBEZXBvc2l0VG9WYXVsdE9wdGlvbnMpOiBQcm9taXNlPERlcG9zaXRSZXN1bHQ+O1xuICByZXN1bWVEZXBvc2l0KHBhcmFtczogUmVzdW1lRGVwb3NpdE9wdGlvbnMpOiBQcm9taXNlPERlcG9zaXRSZXN1bHQ+O1xuICBnZXRPcGVyYXRpb24ocGFyYW1zOiBHZXRPcGVyYXRpb25PcHRpb25zKTogUHJvbWlzZTxEZWZpT3BlcmF0aW9uPjtcbiAgbGlzdE9wZXJhdGlvbnMocGFyYW1zOiBMaXN0T3BlcmF0aW9uc09wdGlvbnMpOiBQcm9taXNlPERlZmlPcGVyYXRpb25MaXN0UmVzdWx0PjtcbiAgZ2V0VmF1bHRDb25maWcocGFyYW1zOiBHZXRWYXVsdENvbmZpZ09wdGlvbnMpOiBQcm9taXNlPEdldFZhdWx0UmVzcG9uc2U+O1xuICB3aXRoZHJhd0Zyb21WYXVsdChwYXJhbXM6IFdpdGhkcmF3RnJvbVZhdWx0T3B0aW9ucyk6IFByb21pc2U8V2l0aGRyYXdSZXN1bHQ+O1xufVxuIl19
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaURlZmlWYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9kZWZpL2lEZWZpVmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuXG5pbXBvcnQgeyBHZXRWYXVsdFJlc3BvbnNlLCBWYXVsdFByb3RvY29sIH0gZnJvbSAnQGJpdGdvL3B1YmxpYy10eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwb3NpdFRvVmF1bHRPcHRpb25zIHtcbiAgLyoqIERlRmktc2VydmljZSB2YXVsdCBpZGVudGlmaWVyICovXG4gIHZhdWx0SWQ6IHN0cmluZztcbiAgLyoqIEFtb3VudCBpbiBiYXNlIHVuaXRzIG9mIHRoZSB1bmRlcmx5aW5nIGFzc2V0ICovXG4gIGFtb3VudDogc3RyaW5nO1xuICAvKiogV2FsbGV0IHBhc3NwaHJhc2Ug4oCUIHJlcXVpcmVkIGZvciBob3Qgd2FsbGV0cywgb21pdCBmb3IgY3VzdG9keSAqL1xuICB3YWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3VtZURlcG9zaXRPcHRpb25zIHtcbiAgLyoqIG9wZXJhdGlvbklkIG9mIHRoZSBwYXJ0aWFsbHktY29tcGxldGVkIGRlcG9zaXQgKi9cbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgLyoqIFdhbGxldCBwYXNzcGhyYXNlIOKAlCByZXF1aXJlZCBmb3IgaG90IHdhbGxldHMsIG9taXQgZm9yIGN1c3RvZHkgKi9cbiAgd2FsbGV0UGFzc3BocmFzZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRPcGVyYXRpb25PcHRpb25zIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0T3BlcmF0aW9uc09wdGlvbnMge1xuICB2YXVsdElkOiBzdHJpbmc7XG4gIHN0YXRlPzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBsaW1pdD86IG51bWJlcjtcbiAgY3Vyc29yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFZhdWx0Q29uZmlnT3B0aW9ucyB7XG4gIHZhdWx0SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWZpT3BlcmF0aW9uIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgd2FsbGV0SWQ6IHN0cmluZztcbiAgdmF1bHRJZDogc3RyaW5nO1xuICB0eXBlOiAnREVQT1NJVCcgfCAnV0lUSERSQVcnO1xuICBhc3NldEFtb3VudDogc3RyaW5nO1xuICBzdGF0ZTogc3RyaW5nO1xuICB0eFJlcXVlc3RJZD86IHN0cmluZztcbiAgYXNzb2NpYXRlZFR4UmVxdWVzdElkPzogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uY3JldGVEZXBvc2l0UmVzdWx0IHtcbiAgcGVuZGluZ0FwcHJvdmFsSWQ6IHN0cmluZztcbiAgc3RhdGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb3JwaG9EZXBvc2l0UmVzdWx0IHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgdHhSZXF1ZXN0SWRzOiB7IGFwcHJvdmU6IHN0cmluZzsgZGVwb3NpdDogc3RyaW5nIH07XG59XG5cbmV4cG9ydCB0eXBlIERlcG9zaXRSZXN1bHQgPSBDb25jcmV0ZURlcG9zaXRSZXN1bHQgfCBNb3JwaG9EZXBvc2l0UmVzdWx0O1xuXG5leHBvcnQgaW50ZXJmYWNlIERlZmlPcGVyYXRpb25MaXN0UmVzdWx0IHtcbiAgaXRlbXM6IERlZmlPcGVyYXRpb25bXTtcbiAgbmV4dEN1cnNvcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaXRoZHJhd0Zyb21WYXVsdE9wdGlvbnMge1xuICAvKiogRGVGaS1zZXJ2aWNlIHZhdWx0IGlkZW50aWZpZXIgKi9cbiAgdmF1bHRJZDogc3RyaW5nO1xuICAvKiogQW1vdW50IGluIGJhc2UgdW5pdHMgb2YgdGhlIHZhdWx0IHNoYXJlIHRva2VuICovXG4gIGFtb3VudDogc3RyaW5nO1xuICAvKiogV2FsbGV0IHBhc3NwaHJhc2Ug4oCUIHJlcXVpcmVkIGZvciBob3Qgd2FsbGV0cywgb21pdCBmb3IgY3VzdG9keSAqL1xuICB3YWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdpdGhkcmF3UmVzdWx0IHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgdHhSZXF1ZXN0SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGVmaVZhdWx0IHtcbiAgZGVwb3NpdFRvVmF1bHQocGFyYW1zOiBEZXBvc2l0VG9WYXVsdE9wdGlvbnMpOiBQcm9taXNlPERlcG9zaXRSZXN1bHQ+O1xuICByZXN1bWVEZXBvc2l0KHBhcmFtczogUmVzdW1lRGVwb3NpdE9wdGlvbnMpOiBQcm9taXNlPERlcG9zaXRSZXN1bHQ+O1xuICBnZXRPcGVyYXRpb24ocGFyYW1zOiBHZXRPcGVyYXRpb25PcHRpb25zKTogUHJvbWlzZTxEZWZpT3BlcmF0aW9uPjtcbiAgbGlzdE9wZXJhdGlvbnMocGFyYW1zOiBMaXN0T3BlcmF0aW9uc09wdGlvbnMpOiBQcm9taXNlPERlZmlPcGVyYXRpb25MaXN0UmVzdWx0PjtcbiAgZ2V0VmF1bHRDb25maWcocGFyYW1zOiBHZXRWYXVsdENvbmZpZ09wdGlvbnMpOiBQcm9taXNlPEdldFZhdWx0UmVzcG9uc2U+O1xuICBnZXRWYXVsdFByb3RvY29sKHBhcmFtczogR2V0VmF1bHRDb25maWdPcHRpb25zKTogUHJvbWlzZTxWYXVsdFByb3RvY29sPjtcbiAgd2l0aGRyYXdGcm9tVmF1bHQocGFyYW1zOiBXaXRoZHJhd0Zyb21WYXVsdE9wdGlvbnMpOiBQcm9taXNlPFdpdGhkcmF3UmVzdWx0Pjtcbn1cbiJdfQ==
@@ -73,7 +73,7 @@ const mainnetBase = {
73
73
  },
74
74
  hmacVerificationEnforced: true,
75
75
  tonNodeUrl: 'https://toncenter.com/api/v2/jsonRPC',
76
- suiNodeUrl: 'https://fullnode.mainnet.sui.io',
76
+ suiNodeUrl: 'https://sui-rpc.publicnode.com',
77
77
  iotaNodeUrl: 'https://api.mainnet.iota.cafe',
78
78
  etcNodeUrl: 'https://etc.blockscout.com',
79
79
  coredaoExplorerBaseUrl: 'https://openapi.coredao.org',
@@ -311,7 +311,7 @@ const testnetBase = {
311
311
  },
312
312
  hmacVerificationEnforced: false,
313
313
  tonNodeUrl: 'https://testnet.toncenter.com/api/v2/jsonRPC',
314
- suiNodeUrl: 'https://fullnode.testnet.sui.io',
314
+ suiNodeUrl: 'https://sui-testnet-rpc.publicnode.com',
315
315
  iotaNodeUrl: 'https://api.testnet.iota.cafe',
316
316
  etcNodeUrl: 'https://etc-mordor.blockscout.com',
317
317
  coredaoExplorerBaseUrl: 'https://api.test2.btcs.network',
@@ -562,4 +562,4 @@ exports.Environments = {
562
562
  stellarFederationServerUrl: 'https://app.bitgo-dev.com/api/v2/txlm/federation',
563
563
  }),
564
564
  };
565
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL2Vudmlyb25tZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1SGEsUUFBQSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQy9DLFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxpSEFBaUg7UUFDdkgsSUFBSSxFQUFFLGlIQUFpSDtLQUN4SDtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxpSEFBaUg7UUFDdkgsSUFBSSxFQUFFLGlIQUFpSDtRQUN2SCxHQUFHLEVBQUUsaUhBQWlIO0tBQ3ZIO0NBQ0YsQ0FBQyxDQUFDO0FBcUJILHdGQUF3RjtBQUMzRSxRQUFBLGlCQUFpQixHQUFxRDtJQUNqRixVQUFVLEVBQUUsTUFBTTtJQUNsQixNQUFNLEVBQUUsTUFBTTtJQUNkLE1BQU0sRUFBRSxNQUFNO0lBQ2QsS0FBSyxFQUFFLEtBQUs7Q0FDYixDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQXdCO0lBQ3ZDLE9BQU8sRUFBRSxTQUFzQjtJQUMvQixjQUFjLEVBQUUsb0NBQW9DO0lBQ3BELFVBQVUsRUFBRSwyQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSTtJQUMvQyxPQUFPLEVBQUUsMkJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUk7SUFDekMsa0JBQWtCLEVBQUUsOEJBQThCO0lBQ2xELGdCQUFnQixFQUFFLDZCQUE2QjtJQUMvQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtJQUNsRCxtQkFBbUIsRUFBRSwwQkFBMEI7SUFDL0MsbUJBQW1CLEVBQUUsNEJBQTRCO0lBQ2pELHNCQUFzQixFQUFFLGlDQUFpQztJQUN6RCxjQUFjLEVBQUUsNkJBQTZCO0lBQzdDLGVBQWUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWE7SUFDMUMsa0JBQWtCLEVBQUUsNkJBQTZCO0lBQ2pELG1CQUFtQixFQUFF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QUU7UUFDakMsR0FBRyxFQUFFLDJCQUEyQjtRQUNoQywwQkFBMEIsRUFBRSxrREFBa0Q7S0FDL0UsQ0FBQztDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBWMU5ldHdvcmsgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIEVudmlyb25tZW50VGVtcGxhdGUge1xuICB1cmk/OiBzdHJpbmc7XG4gIG5ldHdvcms6IFYxTmV0d29yaztcbiAgc2lnbmluZ0FkZHJlc3M6IHN0cmluZztcbiAgc2VydmVyWHB1Yjogc3RyaW5nO1xuICBoc21YcHViOiBzdHJpbmc7XG4gIGJ0Y0V4cGxvcmVyQmFzZVVybDogc3RyaW5nO1xuICBldGhlcnNjYW5CYXNlVXJsOiBzdHJpbmc7XG4gIGV0aGVyc2NhbkFwaVRva2VuPzogc3RyaW5nO1xuICBhdmF4Y05ldHdvcmtCYXNlVXJsOiBzdHJpbmc7XG4gIGV0aDJFeHBsb3JlckJhc2VVcmw6IHN0cmluZztcbiAgZXRod0Z1bGxOb2RlUlBDQmFzZVVybDogc3RyaW5nO1xuICBwb2x5Z29uc2NhbkJhc2VVcmw/OiBzdHJpbmc7XG4gIGJzY3NjYW5CYXNlVXJsPzogc3RyaW5nO1xuICBic2NzY2FuQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHBvbHlnb25zY2FuQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGFwZWNoYWluRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgYXBlY2hhaW5FeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIGFyYmlzY2FuQmFzZVVybD86IHN0cmluZztcbiAgYXJiaXNjYW5BcGlUb2tlbj86IHN0cmluZztcbiAgb2FzRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgb2FzRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBvcHRpbWlzdGljRXRoZXJzY2FuQmFzZVVybD86IHN0cmluZztcbiAgb3B0aW1pc3RpY0V0aGVyc2NhbkFwaVRva2VuPzogc3RyaW5nO1xuICB6a3N5bmNFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHprc3luY0V4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGJlcmFFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIGJlcmFFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBiYXNlZXRoRXhwbG9yZXJVcmw/OiBzdHJpbmc7XG4gIGJhc2VldGhBcGlUb2tlbj86IHN0cmluZztcbiAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw/OiBzdHJpbmc7XG4gIGVvc05vZGVVcmxzOiBzdHJpbmdbXTtcbiAgbmVhck5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgc29sTm9kZVVybDogc3RyaW5nO1xuICBzb2xBbGNoZW15Tm9kZVVybDogc3RyaW5nO1xuICBhZGFOb2RlVXJsOiBzdHJpbmc7XG4gIGhhc2hOb2RlVXJsOiBzdHJpbmc7XG4gIGluak5vZGVVcmw6IHN0cmluZztcbiAgYXRvbU5vZGVVcmw6IHN0cmluZztcbiAgb3Ntb05vZGVVcmw6IHN0cmluZztcbiAgdGlhTm9kZVVybDogc3RyaW5nO1xuICBzZWlOb2RlVXJsOiBzdHJpbmc7XG4gIGJsZE5vZGVVcmw6IHN0cmluZztcbiAgYmVyYU5vZGVVcmw6IHN0cmluZztcbiAgemV0YU5vZGVVcmw6IHN0cmluZztcbiAgY29yZXVtTm9kZVVybDogc3RyaW5nO1xuICBydW5lTm9kZVVybDogc3RyaW5nO1xuICBiYWJ5Tm9kZVVybDogc3RyaW5nO1xuICBtYW50cmFOb2RlVXJsOiBzdHJpbmc7XG4gIGNyb25vc05vZGVVcmw6IHN0cmluZztcbiAgaW5pdGlhTm9kZVVybDogc3RyaW5nO1xuICBhc2lOb2RlVXJsOiBzdHJpbmc7XG4gIGlzbG1Ob2RlVXJsOiBzdHJpbmc7XG4gIGRvdE5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgc3Vic3RyYXRlTm9kZVVybHM6IHN0cmluZ1tdO1xuICBwb2x5bWVzaE5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgdHJvbk5vZGVzOiB7XG4gICAgZnVsbDogc3RyaW5nO1xuICAgIHNvbGlkaXR5OiBzdHJpbmc7XG4gIH07XG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogYm9vbGVhbjtcbiAgdG9uTm9kZVVybDogc3RyaW5nO1xuICBzdWlOb2RlVXJsOiBzdHJpbmc7XG4gIGlvdGFOb2RlVXJsOiBzdHJpbmc7XG4gIGV0Y05vZGVVcmw6IHN0cmluZztcbiAgY29yZWRhb0V4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgY29yZWRhb0V4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHhkY0V4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgeGRjRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgZmxyRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBmbHJFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzZ2JFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNnYkV4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGljcE5vZGVVcmw6IHN0cmluZztcbiAga2FzcGFOb2RlVXJsOiBzdHJpbmc7XG4gIHN0YXJrbmV0Tm9kZVVybDogc3RyaW5nO1xuICBoeXBlckxpcXVpZE5vZGVVcmw6IHN0cmluZztcbiAgd2VtaXhFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHdlbWl4RXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgbW9uRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBtb25FeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICB3b3JsZEV4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgd29ybGRFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzb21uaWFFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNvbW5pYUV4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHNvbmVpdW1FeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNvbmVpdW1FeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzdHhOb2RlVXJsOiBzdHJpbmc7XG4gIHZldE5vZGVVcmw6IHN0cmluZztcbiAgLy8gVGhlIGtleSBoZXJlIGlzIGNvaW5OYW1lIGFuZCBpdCB3aWxsIGJlIHNhbWUgZm9yIGJvdGggbWFpbm5ldCBhbmQgdGVzdG5ldCAoZWc6ICdwaHJzJylcbiAgZXZtPzoge1xuICAgIFtrZXk6IHN0cmluZ106IHtcbiAgICAgIGJhc2VVcmw6IHN0cmluZztcbiAgICAgIGFwaVRva2VuPzogc3RyaW5nO1xuICAgICAgcnBjVXJsPzogc3RyaW5nO1xuICAgICAgdG9rZW5JZD86IG51bWJlcjtcbiAgICAgIHN5c3RlbUFkZHI/OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgLy8gVGhlIGtleSBoZXJlIGlzIGNvaW5GYW1pbHkgYW5kIGl0IHdpbGwgYmUgc2FtZSBmb3IgYm90aCBtYWlubmV0IGFuZCB0ZXN0bmV0IChlZzogJ2Nyb25vcycpXG4gIGNvc21vcz86IHtcbiAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICBub2RlVXJsOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgeHR6RXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICB4dHpScGNVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnQgZXh0ZW5kcyBFbnZpcm9ubWVudFRlbXBsYXRlIHtcbiAgdXJpOiBzdHJpbmc7XG4gIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBoYXJkY29kZWRQdWJsaWNLZXlzID0gT2JqZWN0LmZyZWV6ZSh7XG4gIHNlcnZlclhwdWI6IHtcbiAgICBwcm9kOiAneHB1YjY2MU15TXdBcVJiY0V0VWd1OUhGOGFpNGlwdVZLS0hCelVxa3M0alNGeXBXOGR3d1FMMXp5Z0xnUXg5OU5tQzd6Skp6blNpd0tHNlJRZlZqQUtNdENzeDhWalI2a1FXOHg3SHJrWEZaZG5RJyxcbiAgICB0ZXN0OiAneHB1YjY2MU15TXdBcVJiY0VyRnFWWEdpVUZ2OVllb1BiaE43MlVpTkNVZGo5bmozVDZNOGg3aUtObWJDWXBNVldWWlA3TEEybWEzSFdjUG5nejFnUlRtNEZQZHRtOW1IZnJOdlU5M01Db3N6c0dMJyxcbiAgfSxcbiAgaHNtWHB1Yjoge1xuICAgIHByb2Q6ICd4cHViNjYxTXlNd0FxUmJjR0V0VEZnTUFveE1Gb3FzUmREYWlhUjYzYnlOZlpkVjdjQlpGdm92UVNOSjVicHllb1F0dUtWZ1hCazZzRlE3VHR2eVdxYWR0NDFEbkt3dmVZZ001S29VMkVLWWpkWTInLFxuICAgIHRlc3Q6ICd4cHViNjYxTXlNd0FxUmJjR0ZLZTRCcXZrNFNncmljNGdORkM4cFVidzR0VWtWalp4dWJqQ0E1MjJnUHpjMVlhWGIzYlFWbURXYzdDakc4QUdOV1JwY2RBVTM4UkVUQmg4bjJibnFFVTRrYlY0b0snLFxuICAgIGRldjogJ3hwdWI2NjFNeU13QXFSYmNGV3pvejhxbllSRFlFRlFwUExZd3hWRm9HNldMeTNjazVadXBSR0pURzRqdTZ5R2I3RGozZXk2R3NDNGtzdExSRVIybkt6Z2pMdG14eVBnQzR6SHk3a1ZoVXQ2eWZHbicsXG4gIH0sXG59KTtcblxuZXhwb3J0IHR5cGUgRW52aXJvbm1lbnROYW1lID1cbiAgfCAncHJvZCdcbiAgfCAnc3RhZ2luZydcbiAgfCAndGVzdCdcbiAgfCAnZGV2J1xuICB8ICdsb2NhbCdcbiAgfCAnbG9jYWxOb25TZWN1cmUnXG4gIHwgJ21vY2snXG4gIHwgJ2FkbWluUHJvZCdcbiAgfCAnYWRtaW5UZXN0J1xuICB8ICdhZG1pblN0YWdpbmcnXG4gIHwgJ2FkbWluRGV2J1xuICB8ICdjdXN0b20nXG4gIHwgJ2JyYW5jaCc7XG5cbmV4cG9ydCB0eXBlIEFsaWFzRW52aXJvbm1lbnROYW1lID0gJ3Byb2R1Y3Rpb24nIHwgJ21zUHJvZCcgfCAnbXNUZXN0JyB8ICdtc0Rldic7XG5cbmV4cG9ydCB0eXBlIEVudmlyb25tZW50cyA9IHsgW2sgaW4gRW52aXJvbm1lbnROYW1lXTogRW52aXJvbm1lbnQgfTtcblxuLy8gYWxpYXMgZW52aXJvbm1lbnRzIGFyZSBlbnZpcm9ubWVudCBuYW1lcyB3aGljaCBhcmUgYWxpYXNlcyBvZiBhIHN1cHBvcnRlZCBlbnZpcm9ubWVudFxuZXhwb3J0IGNvbnN0IEFsaWFzRW52aXJvbm1lbnRzOiB7IFtrIGluIEFsaWFzRW52aXJvbm1lbnROYW1lXTogRW52aXJvbm1lbnROYW1lIH0gPSB7XG4gIHByb2R1Y3Rpb246ICdwcm9kJyxcbiAgbXNQcm9kOiAncHJvZCcsXG4gIG1zVGVzdDogJ3Rlc3QnLFxuICBtc0RldjogJ2RldicsXG59O1xuXG5jb25zdCBtYWlubmV0QmFzZTogRW52aXJvbm1lbnRUZW1wbGF0ZSA9IHtcbiAgbmV0d29yazogJ2JpdGNvaW4nIGFzIFYxTmV0d29yayxcbiAgc2lnbmluZ0FkZHJlc3M6ICcxQml0R28zZ3hSWjZtUVNFSDUyZHZDS1NVZ1ZDQUg0UmphJyxcbiAgc2VydmVyWHB1YjogaGFyZGNvZGVkUHVibGljS2V5cy5zZXJ2ZXJYcHViLnByb2QsXG4gIGhzbVhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi5wcm9kLFxuICBidGNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2Jsb2Nrc3RyZWFtLmluZm8vYXBpJyxcbiAgZXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGV0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICBhdmF4Y05ldHdvcmtCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuYXZheC5uZXR3b3JrJyxcbiAgZXRoMkV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vYXBpJyxcbiAgZXRod0Z1bGxOb2RlUlBDQmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5ldGhlcmV1bXBvdy5vcmcnLFxuICBic2NzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGJzY3NjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuQlNDX0FQSV9UT0tFTixcbiAgcG9seWdvbnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgcG9seWdvbnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuUE9MWUdPTlNDQU5fQVBJX1RPS0VOLFxuICBhcmJpc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBhcmJpc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5BUkJJU0NBTl9BUElfVE9LRU4sXG4gIG9wdGltaXN0aWNFdGhlcnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgb3B0aW1pc3RpY0V0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5PUFRJTUlTVElDX0VUSEVSU0NBTl9BUElfVE9LRU4sXG4gIHprc3luY0V4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmxvY2stZXhwbG9yZXItYXBpLm1haW5uZXQuemtzeW5jLmlvJyxcbiAgemtzeW5jRXhwbG9yZXJBcGlUb2tlbjogcHJvY2Vzcy5lbnYuWktTWU5DX0VYUExPUkVSX0FQSV9UT0tFTixcbiAgYmFzZWV0aEV4cGxvcmVyVXJsOiAnaHR0cHM6Ly9hcGkuYmFzZXNjYW4ub3JnJywgLy9CYXNlRVRIIGV4cGxvcmVyIGFwaSB1cmxcbiAgYmFzZWV0aEFwaVRva2VuOiBwcm9jZXNzLmVudi5CQVNFU0NBTl9BUElfVE9LRU4sXG4gIGVvc05vZGVVcmxzOiBbJ2h0dHBzOi8vYnAuY3J5cHRvbGlvbnMuaW8nLCAnaHR0cHM6Ly9hcGkuZW9zbmV3eW9yay5pbycsICdodHRwczovL2FwaS5lb3NkZXRyb2l0LmlvJ10sXG4gIG5lYXJOb2RlVXJsczogWydodHRwczovL2FwaS5mYXN0bmVhci5jb20nXSxcbiAgc29sTm9kZVVybDogJ2h0dHBzOi8vYXBpLm1haW5uZXQtYmV0YS5zb2xhbmEuY29tJyxcbiAgc29sQWxjaGVteU5vZGVVcmw6ICdodHRwczovL3NvbGFuYS1tYWlubmV0LmcuYWxjaGVteS5jb20vdjInLFxuICBhZGFOb2RlVXJsOiAnaHR0cHM6Ly9hcGkua29pb3MucmVzdC9hcGkvdjEnLFxuICBoYXNoTm9kZVVybDogJ2h0dHBzOi8vYXBpLnByb3ZlbmFuY2UuaW8nLFxuICBpbmpOb2RlVXJsOiAnaHR0cHM6Ly9zZW50cnkubGNkLmluamVjdGl2ZS5uZXR3b3JrJywgLy8gcmVmZXJlbmNlIGh0dHBzOi8vZG9jcy5pbmplY3RpdmUubmV0d29yay9kZXZlbG9wL3B1YmxpYy1lbmRwb2ludHMvXG4gIGF0b21Ob2RlVXJsOiAnaHR0cHM6Ly9yZXN0LmNvc21vcy5kaXJlY3RvcnkvY29zbW9zaHViLycsXG4gIG9zbW9Ob2RlVXJsOiAnaHR0cHM6Ly9sY2Qub3Ntb3Npcy56b25lJyxcbiAgdGlhTm9kZVVybDogJ2h0dHBzOi8vcHVibGljLWNlbGVzdGlhLWxjZC5udW1pYS54eXonLCAvLyByZWZlcmVuY2UgaHR0cHM6Ly9kb2NzLmNlbGVzdGlhLm9yZy9ub2Rlcy9tYWlubmV0I2FwaS1lbmRwb2ludHNcbiAgc2VpTm9kZVVybDogJ2h0dHBzOi8vc2VpLWFwaS5wb2xrYWNodS5jb20nLFxuICBibGROb2RlVXJsOiAnaHR0cHM6Ly9hZ29yaWMtYXBpLnBvbGthY2h1LmNvbScsXG4gIGJlcmFOb2RlVXJsOiAnJywgLy8gVE9ETyhXSU4tNjkzKTogdXBkYXRlIHVybCB3aGVuIG1haW5uZXQgZ29lcyBsaXZlXG4gIHpldGFOb2RlVXJsOiAnaHR0cHM6Ly96ZXRhY2hhaW4uYmxvY2twaS5uZXR3b3JrJywgLy8gcmVmZXJlbmNlIGh0dHBzOi8vd3d3LnpldGFjaGFpbi5jb20vZG9jcy9yZWZlcmVuY2UvYXBpL1xuICBjb3JldW1Ob2RlVXJsOiAnaHR0cHM6Ly9mdWxsLW5vZGUubWFpbm5ldC0xLmNvcmV1bS5kZXY6MTMxNycsXG4gIHJ1bmVOb2RlVXJsOiAnaHR0cHM6Ly90aG9ybm9kZS5uaW5lcmVhbG1zLmNvbScsXG4gIGJhYnlOb2RlVXJsOiAnaHR0cHM6Ly9iYWJ5bG9uLm5vZGVzLmd1cnUvYXBpLycsXG4gIGlzbG1Ob2RlVXJsOiAnaHR0cHM6Ly9yZXN0LmNvc21vcy5oYXFxLm5ldHdvcmsnLFxuICBtYW50cmFOb2RlVXJsOiAnaHR0cHM6Ly9tYW50cmEtcmVzdC5wdWJsaWNub2RlLmNvbS8nLFxuICBjcm9ub3NOb2RlVXJsOiAnaHR0cHM6Ly9jcm9ub3MtcG9zLXJlc3QucHVibGljbm9kZS5jb20vJyxcbiAgaW5pdGlhTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5pbml0aWEueHl6LycsXG4gIGFzaU5vZGVVcmw6ICdodHRwczovL3Jlc3QtZmV0Y2hodWIuZmV0Y2guYWkvJyxcbiAgZG90Tm9kZVVybHM6IFsnd3NzOi8vYXNzZXQtaHViLXBvbGthZG90LXJwYy5uLmR3ZWxsaXIuY29tJ10sXG4gIHN1YnN0cmF0ZU5vZGVVcmxzOiBbJ3dzczovL2VudHJ5cG9pbnQtZmlubmV5Lm9wZW50ZW5zb3IuYWknXSxcbiAgcG9seW1lc2hOb2RlVXJsczogWyd3c3M6Ly9tYWlubmV0LXJwYy5wb2x5bWVzaC5uZXR3b3JrJ10sXG4gIHRyb25Ob2Rlczoge1xuICAgIGZ1bGw6ICdodHRwczovL2FwaS50cm9uZ3JpZC5pbycsXG4gICAgc29saWRpdHk6ICdodHRwczovL2FwaS50cm9uZ3JpZC5pbycsXG4gIH0sXG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogdHJ1ZSxcbiAgdG9uTm9kZVVybDogJ2h0dHBzOi8vdG9uY2VudGVyLmNvbS9hcGkvdjIvanNvblJQQycsXG4gIHN1aU5vZGVVcmw6ICdodHRwczovL2Z1bGxub2RlLm1haW5uZXQuc3VpLmlvJyxcbiAgaW90YU5vZGVVcmw6ICdodHRwczovL2FwaS5tYWlubmV0LmlvdGEuY2FmZScsXG4gIGV0Y05vZGVVcmw6ICdodHRwczovL2V0Yy5ibG9ja3Njb3V0LmNvbScsXG4gIGNvcmVkYW9FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL29wZW5hcGkuY29yZWRhby5vcmcnLFxuICBvYXNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLm9hc3lzLmdhbWVzJyxcbiAgZmxyRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9mbGFyZS1leHBsb3Jlci5mbGFyZS5uZXR3b3JrJyxcbiAgeGRjRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgd2VtaXhFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBzZ2JFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL3NvbmdiaXJkLWV4cGxvcmVyLmZsYXJlLm5ldHdvcmsnLFxuICBldm06IHtcbiAgICBhYnN0cmFjdGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmFic2Nhbi5vcmcvYXBpJyxcbiAgICB9LFxuICAgIGFwZWNoYWluOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICB9LFxuICAgIGNoaWxpejoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmNoaWxpc2Nhbi5jb20nLFxuICAgIH0sXG4gICAgY29kZXhldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLmNvZGV4Lnh5ei9hcGknLFxuICAgIH0sXG4gICAgcGhyczoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC5kcGxhYnMtaW50ZXJuYWwuY29tJywgLy8gVE9ETzogV0lOLTU3ODcgYWRkIG1haW5uZXQgdXJsIHdoZW4gaXRzIGF2YWlsYWJsZVxuICAgIH0sXG4gICAgY3RjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jcmVkaXRjb2luLmJsb2Nrc2NvdXQuY29tJyxcbiAgICB9LFxuICAgIGh5cGVldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgICAgLy8gVGhlc2UgYXJlIHVzZWQgZm9yIEJyaWRnaW5nIGFzc2V0cyBvbiBoeXBlIGNoYWluLlxuICAgICAgdG9rZW5JZDogMTUwLFxuICAgICAgc3lzdGVtQWRkcjogJzB4MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMicsXG4gICAgfSxcbiAgICBvZzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vY2hhaW5zY2FuLjBnLmFpL29wZW4nLFxuICAgIH0sXG4gICAgeHBsOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkucm91dGVzY2FuLmlvL3YyL25ldHdvcmsvbWFpbm5ldC9ldm0vOTc0NS9ldGhlcnNjYW4nLFxuICAgIH0sXG4gICAgc29uaWM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdXNkdDA6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3N0YWJsZXNjYW4ueHl6L2FwaScsXG4gICAgfSxcbiAgICBzZWlldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAga2FpYToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC1vYXBpLmthaWFzY2FuLmlvJyxcbiAgICB9LFxuICAgIGthdmFldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS52ZXJpZnkubWludHNjYW4uaW8vZXZtL2FwaS8weDhhZScsXG4gICAgfSxcbiAgICBpcnlzOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9ldm0tZXhwbG9yZXIuaXJ5cy54eXovYXBpJyxcbiAgICB9LFxuICAgIG1vbjoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBsaW5lYWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBpcDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vd3d3LnN0b3J5c2Nhbi5pbycsXG4gICAgfSxcbiAgICBzb21pOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9tYWlubmV0LnNvbW5pYS53M3VzLnNpdGUnLFxuICAgIH0sXG4gICAgYmFzZWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBvcGJuYjoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgICBhcGlUb2tlbjogcHJvY2Vzcy5lbnYuRVRIRVJTQ0FOX0FQSV9UT0tFTixcbiAgICB9LFxuICAgIGZhbnRvbToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIuZmFudG9tLm5ldHdvcmsnLFxuICAgICAgcnBjVXJsOiAnaHR0cHM6Ly9ycGNhcGkuZmFudG9tLm5ldHdvcmsvJyxcbiAgICB9LFxuICAgIGNvdGlldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL21haW5uZXQuY290aXNjYW4uaW8nLFxuICAgICAgcnBjVXJsOiAnaHR0cHM6Ly9tYWlubmV0LmNvdGkuaW8vcnBjJyxcbiAgICB9LFxuICAgIHh0emV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIuZXRoZXJsaW5rLmNvbS9hcGknLFxuICAgIH0sXG4gICAgZ2FzZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9uZW94c2Nhbi5uZ2QubmV0d29yay9hcGknLFxuICAgIH0sXG4gICAgZmxvdzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXZtLmZsb3dzY2FuLmlvJyxcbiAgICB9LFxuICAgIHBsdW1lOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5wbHVtZS5vcmcnLFxuICAgIH0sXG4gICAgbWVnYWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5tZWdhZXRoLmNvbS9ycGMnLFxuICAgIH0sXG4gICAgaGJhcmV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5taXJyb3Jub2RlLmhlZGVyYS5jb20vYXBpL3YxJyxcbiAgICAgIHJwY1VybDogJ2h0dHBzOi8vbWFpbm5ldC5oYXNoaW8uaW8vYXBpJyxcbiAgICB9LFxuICAgIHNjcm9sbGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnNjcm9sbHNjYW4uY29tL2FwaScsXG4gICAgfSxcbiAgICBoZW1pZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5oZW1pLnh5ei9hcGknLFxuICAgIH0sXG4gICAga2F0YW5hZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9rYXRhbmFzY2FuLmNvbS9hcGknLFxuICAgIH0sXG4gICAgaW5rZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5pbmtvbmNoYWluLmNvbS9hcGknLFxuICAgIH0sXG4gICAgcHJpdmlkaXVtZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5wcml2aWRpdW0uemtzeW5jLmRldi9hcGknLCAvLyBUT0RPOiB1cGRhdGUgd2l0aCBtYWlubmV0IFVSTCB3aGVuIGF2YWlsYWJsZVxuICAgIH0sXG4gICAgZmx1ZW50ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9mbHVlbnRzY2FuLnh5ei9hcGkvJyxcbiAgICB9LFxuICAgIG1hbnRsZToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLm1hbnRsZXNjYW4ueHl6L2FwaScsXG4gICAgfSxcbiAgICBqb3ZheWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnphbi50b3Avbm9kZS92MS9qb3ZheS9tYWlubmV0LycsXG4gICAgfSxcbiAgICBva2J4bGF5ZXI6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3d3dy5va2xpbmsuY29tL2FwaS92NS9leHBsb3Jlci9ibG9jay9ibG9jay1saXN0P2NoYWluU2hvcnROYW1lPXhsYXllcicsXG4gICAgfSxcbiAgICBtb3JwaDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXItYXBpLWhvb2RpLm1vcnBobDIuaW8nLCAvLyBUT0RPOiBXSU4tODEzNCBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgICB9LFxuICAgIG1vcnBoZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5tb3JwaC5uZXR3b3JrLycsXG4gICAgfSxcbiAgICBkb2dlb3M6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2Jsb2Nrc2NvdXQudGVzdG5ldC5kb2dlb3MuY29tJywgLy9UT0RPOiBXSU4tODA4MiA9PiBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgICB9LFxuICAgIGFyY3VzZGM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLmFyYy5pby9hcGknLCAvLyBXSU4tODg0NCA9PiBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgICB9LFxuICAgIHhkYzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICB6a3N5bmNlcmE6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdW5pZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly91bmljaGFpbi5ibG9ja3Njb3V0LmNvbS9hcGknLFxuICAgIH0sXG4gICAgaG9vZGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vcm9iaW5ob29kY2hhaW4uYmxvY2tzY291dC5jb20vYXBpJyxcbiAgICB9LFxuICAgIGhwcGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIuaHBwLmlvL2FwaScsXG4gICAgfSxcbiAgICBoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9odW1hbml0eS1tYWlubmV0LmV4cGxvcmVyLmFsY2hlbXkuY29tL2FwaScsXG4gICAgfSxcbiAgICBib2JhOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkucm91dGVzY2FuLmlvL3YyL25ldHdvcmsvbWFpbm5ldC9ldm0vMjg4L2V0aGVyc2Nhbi9hcGknLFxuICAgIH0sXG4gICAgdGVtcG86IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3RlbXBvLW1haW5uZXQuZy5hbGNoZW15LmNvbS92Mi8nLFxuICAgIH0sXG4gIH0sXG4gIGljcE5vZGVVcmw6ICdodHRwczovL2ljMC5hcHAnLFxuICBrYXNwYU5vZGVVcmw6ICdodHRwczovL2FwaS5rYXNwYS5vcmcnLFxuICBzdGFya25ldE5vZGVVcmw6ICdodHRwczovL3N0YXJrbmV0LW1haW5uZXQtcnBjLnB1YmxpY25vZGUuY29tLycsXG4gIGh5cGVyTGlxdWlkTm9kZVVybDogJ2h0dHBzOi8vYXBpLmh5cGVybGlxdWlkLnh5eicsXG4gIHdvcmxkRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly93b3JsZHNjYW4ub3JnLycsXG4gIHNvbW5pYUV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5zb21uaWEudzN1cy5zaXRlLycsXG4gIHNvbmVpdW1FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL3NvbmVpdW0uYmxvY2tzY291dC5jb20nLFxuICBtb25FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBzdHhOb2RlVXJsOiAnaHR0cHM6Ly9hcGkuaGlyby5zbycsXG4gIHZldE5vZGVVcmw6ICdodHRwczovL3N5bmMtbWFpbm5ldC52ZWNoYWluLm9yZycsXG4gIHh0ekV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLnR6a3QuaW8nLFxuICB4dHpScGNVcmw6ICdodHRwczovL3JwYy50emt0LmlvL21haW5uZXQnLFxufTtcblxuY29uc3QgdGVzdG5ldEJhc2U6IEVudmlyb25tZW50VGVtcGxhdGUgPSB7XG4gIG5ldHdvcms6ICd0ZXN0bmV0JyBhcyBWMU5ldHdvcmssXG4gIHNpZ25pbmdBZGRyZXNzOiAnbXNpZ25CZEZYdGVlaERFZ0I2RE5tN25wUnQ3QWNFWkpQMycsXG4gIHNlcnZlclhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuc2VydmVyWHB1Yi50ZXN0LFxuICBoc21YcHViOiBoYXJkY29kZWRQdWJsaWNLZXlzLmhzbVhwdWIudGVzdCxcbiAgYnRjRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9ibG9ja3N0cmVhbS5pbmZvL3Rlc3RuZXQvYXBpJyxcbiAgZXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGV0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICBhdmF4Y05ldHdvcmtCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuYXZheC10ZXN0Lm5ldHdvcmsnLFxuICBldGgyRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9iZWFjb25zY2FuLmNvbS9hcGknLFxuICBldGh3RnVsbE5vZGVSUENCYXNlVXJsOiAnaHR0cHM6Ly9tYWlubmV0LmV0aGVyZXVtcG93Lm9yZycsXG4gIHBvbHlnb25zY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIHBvbHlnb25zY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52LlBPTFlHT05TQ0FOX0FQSV9UT0tFTixcbiAgYnNjc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBic2NzY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52LkJTQ19BUElfVE9LRU4sXG4gIGFyYmlzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGFyYmlzY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52LkFSQklTQ0FOX0FQSV9UT0tFTixcbiAgb3B0aW1pc3RpY0V0aGVyc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBvcHRpbWlzdGljRXRoZXJzY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52Lk9QVElNSVNUSUNfRVRIRVJTQ0FOX0FQSV9UT0tFTixcbiAgemtzeW5jRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9ibG9jay1leHBsb3Jlci1hcGkuc2Vwb2xpYS56a3N5bmMuZGV2JyxcbiAgemtzeW5jRXhwbG9yZXJBcGlUb2tlbjogcHJvY2Vzcy5lbnYuWktTWU5DX0VYUExPUkVSX0FQSV9UT0tFTixcbiAgYmFzZWV0aEV4cGxvcmVyVXJsOiAnaHR0cHM6Ly9hcGktc2Vwb2xpYS5iYXNlc2Nhbi5vcmcnLFxuICBiYXNlZXRoQXBpVG9rZW46IHByb2Nlc3MuZW52LkJBU0VTQ0FOX0FQSV9UT0tFTixcbiAgLy8ga3lsaW4gZW9zIGVuZHBvaW50cyBmb3VuZCBoZXJlXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9jcnlwdG9reWxpbi9DcnlwdG9LeWxpbi1UZXN0bmV0I2h0dHAtYXBpLWxpc3RcbiAgLy8gaHR0cHM6Ly9kb2NzLmxpcXVpZGFwcHMuaW8vbGlxdWlkYXBwcy1kb2N1bWVudGF0aW9uL2Vvc2lvLWd1aWRlcy90ZXN0bmV0LWNyZWF0aW9uLWd1aWRlcy9jcmVhdGluZy1jcnlwdG9reWxpbi1hY2NvdW50I3NldHVwXG4gIGVvc05vZGVVcmxzOiBbJ2h0dHBzOi8va3lsaW4uZW9zbi5pbycsICdodHRwczovL2FwaS5reWxpbi5hbG9oYWVvcy5jb20nXSxcbiAgbmVhck5vZGVVcmxzOiBbJ2h0dHBzOi8vdGVzdC5ycGMuZmFzdG5lYXIuY29tJ10sXG4gIHNvbE5vZGVVcmw6ICdodHRwczovL2FwaS5kZXZuZXQuc29sYW5hLmNvbScsXG4gIHNvbEFsY2hlbXlOb2RlVXJsOiAnaHR0cHM6Ly9zb2xhbmEtZGV2bmV0LmcuYWxjaGVteS5jb20vdjInLFxuICBhZGFOb2RlVXJsOiAnaHR0cHM6Ly9wcmVwcm9kLmtvaW9zLnJlc3QvYXBpL3YxJyxcbiAgaGFzaE5vZGVVcmw6ICdodHRwczovL2FwaS50ZXN0LnByb3ZlbmFuY2UuaW8nLFxuICBpbmpOb2RlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LnNlbnRyeS5sY2QuaW5qZWN0aXZlLm5ldHdvcmsnLCAvLyBDT0lOLTEyMTkgOiByZWZlcmVuY2UgIGh0dHBzOi8vZG9jcy5pbmplY3RpdmUubmV0d29yay9kZXZlbG9wL3B1YmxpYy1lbmRwb2ludHMvI3Rlc3RuZXRcbiAgYXRvbU5vZGVVcmw6ICdodHRwczovL3Jlc3QucHJvdmlkZXItc2VudHJ5LTAyLmljcy10ZXN0bmV0LnBvbHlwb3JlLnh5ei8nLFxuICBvc21vTm9kZVVybDogJ2h0dHBzOi8vbGNkLm9zbW90ZXN0NS5vc21vc2lzLnpvbmUnLFxuICB0aWFOb2RlVXJsOiAnaHR0cHM6Ly9hcGktbW9jaGEucG9wcy5vbmUnLFxuICBzZWlOb2RlVXJsOiAnaHR0cHM6Ly9yZXN0LmF0bGFudGljLTIuc2VpbmV0d29yay5pbycsXG4gIGJsZE5vZGVVcmw6ICdodHRwczovL2Rldm5ldC5hcGkuYWdvcmljLm5ldCcsXG4gIGJlcmFOb2RlVXJsOiAnJywgLy8gVE9ETyhXSU4tNjkzKTogdXBkYXRlIHVybCB3aGVuIHRlc3RuZXQgZ29lcyBsaXZlXG4gIHpldGFOb2RlVXJsOiAnaHR0cHM6Ly9yZXN0Lm5vZGVqdW1wZXIuaW8vemV0YWNoYWludGVzdG5ldCcsIC8vIHJlZmVyZW5jZSA6IGh0dHBzOi8vd3d3LnpldGFjaGFpbi5jb20vZG9jcy9yZWZlcmVuY2UvYXBpL1xuICBjb3JldW1Ob2RlVXJsOiAnaHR0cHM6Ly9mdWxsLW5vZGUudGVzdG5ldC0xLmNvcmV1bS5kZXY6MTMxNycsXG4gIHJ1bmVOb2RlVXJsOiAnaHR0cHM6Ly9zdGFnZW5ldC10aG9ybm9kZS5uaW5lcmVhbG1zLmNvbScsXG4gIGJhYnlOb2RlVXJsOiAnaHR0cHM6Ly9iYWJ5bG9uLXRlc3RuZXQtYXBpLm5vZGVzLmd1cnUvJyxcbiAgaXNsbU5vZGVVcmw6ICdodHRwczovL3Jlc3QuY29zbW9zLnRlc3RlZGdlMi5oYXFxLm5ldHdvcmsgJyxcbiAgbWFudHJhTm9kZVVybDogJ2h0dHBzOi8vbWFudHJhLXRlc3RuZXQtcmVzdC5wdWJsaWNub2RlLmNvbS8nLFxuICBjcm9ub3NOb2RlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LWNyb2VzZWlkLTQuY3J5cHRvLm9yZzoxMzE3LycsXG4gIGluaXRpYU5vZGVVcmw6ICdodHRwczovL3Jlc3QudGVzdG5ldC5pbml0aWEueHl6LycsXG4gIGFzaU5vZGVVcmw6ICdodHRwczovL3Jlc3QtZG9yYWRvLmZldGNoLmFpLycsXG4gIGRvdE5vZGVVcmxzOiBbJ3dzczovL2Fzc2V0LWh1Yi13ZXN0ZW5kLXJwYy5uLmR3ZWxsaXIuY29tJ10sXG4gIHN1YnN0cmF0ZU5vZGVVcmxzOiBbJ3dzczovL3Rlc3QuZmlubmV5Lm9wZW50ZW5zb3IuYWknXSxcbiAgcG9seW1lc2hOb2RlVXJsczogWyd3c3M6Ly90ZXN0bmV0LXJwYy5wb2x5bWVzaC5saXZlJ10sXG4gIHRyb25Ob2Rlczoge1xuICAgIGZ1bGw6ICdodHRwczovL2FwaS5zaGFzdGEudHJvbmdyaWQuaW8nLFxuICAgIHNvbGlkaXR5OiAnaHR0cHM6Ly9hcGkuc2hhc3RhLnRyb25ncmlkLmlvJyxcbiAgfSxcbiAgaG1hY1ZlcmlmaWNhdGlvbkVuZm9yY2VkOiBmYWxzZSxcbiAgdG9uTm9kZVVybDogJ2h0dHBzOi8vdGVzdG5ldC50b25jZW50ZXIuY29tL2FwaS92Mi9qc29uUlBDJyxcbiAgc3VpTm9kZVVybDogJ2h0dHBzOi8vZnVsbG5vZGUudGVzdG5ldC5zdWkuaW8nLFxuICBpb3RhTm9kZVVybDogJ2h0dHBzOi8vYXBpLnRlc3RuZXQuaW90YS5jYWZlJyxcbiAgZXRjTm9kZVVybDogJ2h0dHBzOi8vZXRjLW1vcmRvci5ibG9ja3Njb3V0LmNvbScsXG4gIGNvcmVkYW9FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS50ZXN0Mi5idGNzLm5ldHdvcmsnLFxuICBvYXNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQub2FzeXMuZ2FtZXMnLFxuICB3ZW1peEV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGZsckV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vY29zdG9uMi1leHBsb3Jlci5mbGFyZS5uZXR3b3JrJyxcbiAgeGRjRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgc2diRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9jb3N0b24tZXhwbG9yZXIuZmxhcmUubmV0d29yaycsXG4gIGljcE5vZGVVcmw6ICdodHRwczovL2ljMC5hcHAnLFxuICBrYXNwYU5vZGVVcmw6ICdodHRwczovL2FwaS10bjEwLmthc3BhLm9yZycsXG4gIHN0YXJrbmV0Tm9kZVVybDogJ2h0dHBzOi8vc3RhcmtuZXQtc2Vwb2xpYS1ycGMucHVibGljbm9kZS5jb20vJyxcbiAgaHlwZXJMaXF1aWROb2RlVXJsOiAnaHR0cHM6Ly9hcGkuaHlwZXJsaXF1aWQtdGVzdG5ldC54eXonLFxuICBtb25FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICB3b3JsZEV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc2Vwb2xpYS53b3JsZHNjYW4ub3JnLycsXG4gIHNvbW5pYUV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc2hhbm5vbi1leHBsb3Jlci5zb21uaWEubmV0d29yay8nLFxuICBzb25laXVtRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9zb25laXVtLW1pbmF0by5ibG9ja3Njb3V0LmNvbScsXG4gIGV2bToge1xuICAgIGFic3RyYWN0ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuc2Vwb2xpYS5hYnNjYW4ub3JnL2FwaScsXG4gICAgfSxcbiAgICBhcGVjaGFpbjoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBjaGlsaXo6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS50ZXN0bmV0LmNoaWxpc2Nhbi5jb20nLFxuICAgIH0sXG4gICAgY29kZXhldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLmNvZGV4LXN0Zy54eXovYXBpJyxcbiAgICB9LFxuICAgIHBocnM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuZHBsYWJzLWludGVybmFsLmNvbScsIC8vIFdyb25nIHZhbHVlLCBOb3QgYXZhaWxhYmxlIHlldFxuICAgIH0sXG4gICAgY3RjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jcmVkaXRjb2luLXRlc3RuZXQuYmxvY2tzY291dC5jb20nLFxuICAgIH0sXG4gICAgaHlwZWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vcnBjLmh5cGVybGlxdWlkLXRlc3RuZXQueHl6L2V2bScsIC8vIE5vdCBBdmFpbGFibGVcbiAgICAgIC8vIFRoZXNlIGFyZSB1c2VkIGZvciBCcmlkZ2luZyBhc3NldHMgb24gaHlwZSBjaGFpbi5cbiAgICAgIHRva2VuSWQ6IDExMDUsXG4gICAgICBzeXN0ZW1BZGRyOiAnMHgyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyJyxcbiAgICB9LFxuICAgIG9nOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jaGFpbnNjYW4tdGVzdC4wZy5haS9vcGVuJyxcbiAgICB9LFxuICAgIHhwbDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnJvdXRlc2Nhbi5pby92Mi9uZXR3b3JrL3Rlc3RuZXQvZXZtLzk3NDZfNS9ldGhlcnNjYW4nLFxuICAgIH0sXG4gICAgc29uaWM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdXNkdDA6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuc3RhYmxlc2Nhbi54eXovYXBpJyxcbiAgICB9LFxuICAgIHNlaWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBrYWlhOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9rYWlyb3Mtb2FwaS5rYWlhc2Nhbi5pbycsXG4gICAgfSxcbiAgICBrYXZhZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkudmVyaWZ5Lm1pbnRzY2FuLmlvL2V2bS9hcGkvMHg4YWQnLFxuICAgIH0sXG4gICAgaXJ5czoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vaW5zdC0xLmNsb3VkLmJsb2Nrc2NvdXQuY29tL2FwaScsXG4gICAgfSxcbiAgICBtb246IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgbGluZWFldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgaXA6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FlbmVpZC5zdG9yeXNjYW4uaW8nLFxuICAgIH0sXG4gICAgdGJhc2VldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdG9wYm5iOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICAgIGFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICAgIH0sXG4gICAgdGNvdGlldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuY290aXNjYW4uaW8nLFxuICAgICAgcnBjVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LmNvdGkuaW8vcnBjJyxcbiAgICB9LFxuICAgIHh0emV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vc2hhZG93bmV0LmV4cGxvcmVyLmV0aGVybGluay5jb20vYXBpJyxcbiAgICB9LFxuICAgIHRnYXNldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL25lb3h0NHNjYW4ubmdkLm5ldHdvcmsvYXBpJyxcbiAgICB9LFxuICAgIGZsb3c6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V2bS10ZXN0bmV0LmZsb3dzY2FuLmlvJyxcbiAgICB9LFxuICAgIG1lZ2FldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2NhcnJvdC5tZWdhZXRoLmNvbS9ycGMnLFxuICAgIH0sXG4gICAgcGx1bWU6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQtZXhwbG9yZXIucGx1bWUub3JnJyxcbiAgICB9LFxuICAgIGhiYXJldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQubWlycm9ybm9kZS5oZWRlcmEuY29tL2FwaS92MScsXG4gICAgICBycGNVcmw6ICdodHRwczovL3Rlc3RuZXQuaGFzaGlvLmlvL2FwaScsXG4gICAgfSxcbiAgICB0c2Nyb2xsZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGktc2Vwb2xpYS5zY3JvbGxzY2FuLmNvbS9hcGknLFxuICAgIH0sXG4gICAgaGVtaWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC5leHBsb3Jlci5oZW1pLnh5ei9hcGknLFxuICAgIH0sXG4gICAgdGthdGFuYWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXItYm9rdXRvLmthdGFuYXJwYy5jb20vYXBpJyxcbiAgICB9LFxuICAgIHRpbmtldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLXNlcG9saWEuaW5rb25jaGFpbi5jb20vYXBpJyxcbiAgICB9LFxuICAgIHByaXZpZGl1bWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC1wcml2aWRpdW0uemtzeW5jLmRldi9hcGknLFxuICAgIH0sXG4gICAgZmx1ZW50ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LmZsdWVudHNjYW4ueHl6L2FwaS8nLFxuICAgIH0sXG4gICAgbWFudGxlOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGktc2Vwb2xpYS5tYW50bGVzY2FuLnh5ei9hcGknLFxuICAgIH0sXG4gICAgam92YXlldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS56YW4udG9wL25vZGUvdjEvam92YXkvdGVzdG5ldC8nLFxuICAgIH0sXG4gICAgb2tieGxheWVyOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly93d3cub2tsaW5rLmNvbS9hcGkvdjUvZXhwbG9yZXIvYmxvY2svYmxvY2stbGlzdD9jaGFpblNob3J0TmFtZT14bGF5ZXJfdGVzdG5ldCcsXG4gICAgfSxcbiAgICBtb3JwaDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXItYXBpLWhvb2RpLm1vcnBobDIuaW8nLFxuICAgIH0sXG4gICAgbW9ycGhldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLWhvb2RpLm1vcnBoLm5ldHdvcmsvJyxcbiAgICB9LFxuICAgIGRvZ2Vvczoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYmxvY2tzY291dC50ZXN0bmV0LmRvZ2Vvcy5jb20nLFxuICAgIH0sXG4gICAgYXJjdXNkYzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC5hcmNzY2FuLmFwcC9hcGknLCAvLyBXSU4tODg0NCA9PiBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgICB9LFxuICAgIHhkYzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICB6a3N5bmNlcmE6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdW5pZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly91bmljaGFpbi1zZXBvbGlhLmJsb2Nrc2NvdXQuY29tL2FwaScsXG4gICAgfSxcbiAgICBob29kZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LmNoYWluLnJvYmluaG9vZC5jb20vYXBpJyxcbiAgICB9LFxuICAgIGhwcGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vc2Vwb2xpYS1leHBsb3Jlci5ocHAuaW8vYXBpJyxcbiAgICB9LFxuICAgIGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2h1bWFuaXR5LXRlc3RuZXQuZXhwbG9yZXIuYWxjaGVteS5jb20vYXBpJyxcbiAgICB9LFxuICAgIGJvYmE6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5yb3V0ZXNjYW4uaW8vdjIvbmV0d29yay90ZXN0bmV0L2V2bS8yODg4Mi9ldGhlcnNjYW4vYXBpJyxcbiAgICB9LFxuICAgIHRlbXBvOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZW1wby1tb2RlcmF0by5nLmFsY2hlbXkuY29tL3YyLycsXG4gICAgfSxcbiAgfSxcbiAgc3R4Tm9kZVVybDogJ2h0dHBzOi8vYXBpLnRlc3RuZXQuaGlyby5zbycsXG4gIHZldE5vZGVVcmw6ICdodHRwczovL3N5bmMtdGVzdG5ldC52ZWNoYWluLm9yZycsXG4gIHh0ekV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLmdob3N0bmV0LnR6a3QuaW8nLFxuICB4dHpScGNVcmw6ICdodHRwczovL3JwYy50emt0LmlvL2dob3N0bmV0Jyxcbn07XG5cbmNvbnN0IGRldkJhc2U6IEVudmlyb25tZW50VGVtcGxhdGUgPSBPYmplY3QuYXNzaWduKHt9LCB0ZXN0bmV0QmFzZSwge1xuICBoc21YcHViOiBoYXJkY29kZWRQdWJsaWNLZXlzLmhzbVhwdWIuZGV2LFxuICBobWFjVmVyaWZpY2F0aW9uRW5mb3JjZWQ6IGZhbHNlLFxufSk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZWRlY2xhcmVcbmV4cG9ydCBjb25zdCBFbnZpcm9ubWVudHM6IEVudmlyb25tZW50cyA9IHtcbiAgcHJvZDogT2JqZWN0LmFzc2lnbih7fSwgbWFpbm5ldEJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FwcC5iaXRnby5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hcHAuYml0Z28uY29tL2FwaS92Mi94bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICB0ZXN0OiBPYmplY3QuYXNzaWduKHt9LCB0ZXN0bmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYXBwLmJpdGdvLXRlc3QuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYXBwLmJpdGdvLXRlc3QuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgZGV2OiBPYmplY3QuYXNzaWduKHt9LCBkZXZCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hcHAuYml0Z28tZGV2LmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FwcC5iaXRnby1kZXYuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgc3RhZ2luZzogT2JqZWN0LmFzc2lnbih7fSwgdGVzdG5ldEJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FwcC5iaXRnby1zdGFnaW5nLmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FwcC5iaXRnby1zdGFnaW5nLmNvbS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGxvY2FsOiBPYmplY3QuYXNzaWduKHt9LCBkZXZCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9sb2NhbGhvc3Q6MzAwMCcsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2xvY2FsaG9zdDozMDAwL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgbG9jYWxOb25TZWN1cmU6IE9iamVjdC5hc3NpZ24oe30sIGRldkJhc2UsIHtcbiAgICB1cmk6ICdodHRwOi8vbG9jYWxob3N0OjMwMDAnLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgbW9jazogT2JqZWN0LmFzc2lnbih7fSwgZGV2QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYml0Z28uZmFrZXVybCcsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2JpdGdvLmZha2V1cmwvYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gICAgZXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLWhvb2RpLmV0aGVyc2Nhbi5mYWtldXJsJyxcbiAgICBldGhlcnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuRVRIRVJTQ0FOX0FQSV9UT0tFTixcbiAgICBhdmF4Y05ldHdvcmtCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuYXZheC10ZXN0Lm5ldHdvcmsuZmFrZXVybCcsXG4gICAgZXRoMkV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vYXBpJyxcbiAgfSksXG4gIGFkbWluUHJvZDogT2JqZWN0LmFzc2lnbih7fSwgbWFpbm5ldEJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FkbWluLmJpdGdvLmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FkbWluLmJpdGdvLmNvbS9hcGkvdjIveGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgYWRtaW5UZXN0OiBPYmplY3QuYXNzaWduKHt9LCB0ZXN0bmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYWRtaW4uYml0Z28tdGVzdC5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby10ZXN0LmNvbS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGFkbWluRGV2OiBPYmplY3QuYXNzaWduKHt9LCBkZXZCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby1kZXYuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYWRtaW4uYml0Z28tZGV2LmNvbS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGFkbWluU3RhZ2luZzogT2JqZWN0LmFzc2lnbih7fSwgdGVzdG5ldEJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FkbWluLmJpdGdvLXN0YWdpbmcuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYWRtaW4uYml0Z28tc3RhZ2luZy5jb20vYXBpL3YyL3hsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGN1c3RvbTogT2JqZWN0LmFzc2lnbih7fSwgbWFpbm5ldEJhc2UsIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgIHVyaTogcHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX1JPT1RfVVJJISxcbiAgICBuZXR3b3JrOiBwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fQklUQ09JTl9ORVRXT1JLIGFzIFYxTmV0d29yayxcbiAgICBoc21YcHViOlxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyA/IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi5wcm9kIDogaGFyZGNvZGVkUHVibGljS2V5cy5oc21YcHViLnRlc3QsXG4gICAgYnRjRXhwbG9yZXJCYXNlVXJsOlxuICAgICAgcHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX0JJVENPSU5fTkVUV09SSyAhPT0gJ2JpdGNvaW4nXG4gICAgICAgID8gJ2h0dHBzOi8vYmxvY2tzdHJlYW0uaW5mby90ZXN0bmV0L2FwaSdcbiAgICAgICAgOiAnaHR0cHM6Ly9ibG9ja3N0cmVhbS5pbmZvL2FwaScsXG4gICAgZXRoZXJzY2FuQmFzZVVybDpcbiAgICAgIHByb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9FVEhFUkVVTV9ORVRXT1JLICE9PSAnZXRoZXJldW0nXG4gICAgICAgID8gJ2h0dHBzOi8vYXBpLWhvb2RpLmV0aGVyc2Nhbi5pbydcbiAgICAgICAgOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDpcbiAgICAgIHByb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9TVEVMTEFSX05FVFdPUksgIT09ICdzdGVsbGFyJ1xuICAgICAgICA/IGBodHRwczovLyR7cHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX1JPT1RfVVJJfS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uYFxuICAgICAgICA6IGBodHRwczovLyR7cHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX1JPT1RfVVJJfS9hcGkvdjIveGxtL2ZlZGVyYXRpb25gLFxuICAgIHNlcnZlclhwdWI6XG4gICAgICBwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fQklUQ09JTl9ORVRXT1JLICE9PSAnYml0Y29pbidcbiAgICAgICAgPyBoYXJkY29kZWRQdWJsaWNLZXlzLnNlcnZlclhwdWIudGVzdFxuICAgICAgICA6IGhhcmRjb2RlZFB1YmxpY0tleXMuc2VydmVyWHB1Yi5wcm9kLFxuICB9KSxcbiAgYnJhbmNoOiBPYmplY3QuYXNzaWduKHt9LCBkZXZCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hcHAuYml0Z28tZGV2LmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FwcC5iaXRnby1kZXYuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbn07XG4iXX0=
565
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL2Vudmlyb25tZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1SGEsUUFBQSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQy9DLFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxpSEFBaUg7UUFDdkgsSUFBSSxFQUFFLGlIQUFpSDtLQUN4SDtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxpSEFBaUg7UUFDdkgsSUFBSSxFQUFFLGlIQUFpSDtRQUN2SCxHQUFHLEVBQUUsaUhBQWlIO0tBQ3ZIO0NBQ0YsQ0FBQyxDQUFDO0FBcUJILHdGQUF3RjtBQUMzRSxRQUFBLGlCQUFpQixHQUFxRDtJQUNqRixVQUFVLEVBQUUsTUFBTTtJQUNsQixNQUFNLEVBQUUsTUFBTTtJQUNkLE1BQU0sRUFBRSxNQUFNO0lBQ2QsS0FBSyxFQUFFLEtBQUs7Q0FDYixDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQXdCO0lBQ3ZDLE9BQU8sRUFBRSxTQUFzQjtJQUMvQixjQUFjLEVBQUUsb0NBQW9DO0lBQ3BELFVBQVUsRUFBRSwyQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSTtJQUMvQyxPQUFPLEVBQUUsMkJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUk7SUFDekMsa0JBQWtCLEVBQUUsOEJBQThCO0lBQ2xELGdCQUFnQixFQUFFLDZCQUE2QjtJQUMvQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtJQUNsRCxtQkFBbUIsRUFBRSwwQkFBMEI7SUFDL0MsbUJBQW1CLEVBQUUsNEJBQTRCO0lBQ2pELHNCQUFzQixFQUFFLGlDQUFpQztJQUN6RCxjQUFjLEVBQUUsNkJBQTZCO0lBQzdDLGVBQWUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWE7SUFDMUMsa0JBQWtCLEVBQUUsNkJBQTZCO0lBQ2pELG1CQUFtQixFQUFF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QUU7UUFDakMsR0FBRyxFQUFFLDJCQUEyQjtRQUNoQywwQkFBMEIsRUFBRSxrREFBa0Q7S0FDL0UsQ0FBQztDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBWMU5ldHdvcmsgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIEVudmlyb25tZW50VGVtcGxhdGUge1xuICB1cmk/OiBzdHJpbmc7XG4gIG5ldHdvcms6IFYxTmV0d29yaztcbiAgc2lnbmluZ0FkZHJlc3M6IHN0cmluZztcbiAgc2VydmVyWHB1Yjogc3RyaW5nO1xuICBoc21YcHViOiBzdHJpbmc7XG4gIGJ0Y0V4cGxvcmVyQmFzZVVybDogc3RyaW5nO1xuICBldGhlcnNjYW5CYXNlVXJsOiBzdHJpbmc7XG4gIGV0aGVyc2NhbkFwaVRva2VuPzogc3RyaW5nO1xuICBhdmF4Y05ldHdvcmtCYXNlVXJsOiBzdHJpbmc7XG4gIGV0aDJFeHBsb3JlckJhc2VVcmw6IHN0cmluZztcbiAgZXRod0Z1bGxOb2RlUlBDQmFzZVVybDogc3RyaW5nO1xuICBwb2x5Z29uc2NhbkJhc2VVcmw/OiBzdHJpbmc7XG4gIGJzY3NjYW5CYXNlVXJsPzogc3RyaW5nO1xuICBic2NzY2FuQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHBvbHlnb25zY2FuQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGFwZWNoYWluRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgYXBlY2hhaW5FeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIGFyYmlzY2FuQmFzZVVybD86IHN0cmluZztcbiAgYXJiaXNjYW5BcGlUb2tlbj86IHN0cmluZztcbiAgb2FzRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgb2FzRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBvcHRpbWlzdGljRXRoZXJzY2FuQmFzZVVybD86IHN0cmluZztcbiAgb3B0aW1pc3RpY0V0aGVyc2NhbkFwaVRva2VuPzogc3RyaW5nO1xuICB6a3N5bmNFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHprc3luY0V4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGJlcmFFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIGJlcmFFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBiYXNlZXRoRXhwbG9yZXJVcmw/OiBzdHJpbmc7XG4gIGJhc2VldGhBcGlUb2tlbj86IHN0cmluZztcbiAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw/OiBzdHJpbmc7XG4gIGVvc05vZGVVcmxzOiBzdHJpbmdbXTtcbiAgbmVhck5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgc29sTm9kZVVybDogc3RyaW5nO1xuICBzb2xBbGNoZW15Tm9kZVVybDogc3RyaW5nO1xuICBhZGFOb2RlVXJsOiBzdHJpbmc7XG4gIGhhc2hOb2RlVXJsOiBzdHJpbmc7XG4gIGluak5vZGVVcmw6IHN0cmluZztcbiAgYXRvbU5vZGVVcmw6IHN0cmluZztcbiAgb3Ntb05vZGVVcmw6IHN0cmluZztcbiAgdGlhTm9kZVVybDogc3RyaW5nO1xuICBzZWlOb2RlVXJsOiBzdHJpbmc7XG4gIGJsZE5vZGVVcmw6IHN0cmluZztcbiAgYmVyYU5vZGVVcmw6IHN0cmluZztcbiAgemV0YU5vZGVVcmw6IHN0cmluZztcbiAgY29yZXVtTm9kZVVybDogc3RyaW5nO1xuICBydW5lTm9kZVVybDogc3RyaW5nO1xuICBiYWJ5Tm9kZVVybDogc3RyaW5nO1xuICBtYW50cmFOb2RlVXJsOiBzdHJpbmc7XG4gIGNyb25vc05vZGVVcmw6IHN0cmluZztcbiAgaW5pdGlhTm9kZVVybDogc3RyaW5nO1xuICBhc2lOb2RlVXJsOiBzdHJpbmc7XG4gIGlzbG1Ob2RlVXJsOiBzdHJpbmc7XG4gIGRvdE5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgc3Vic3RyYXRlTm9kZVVybHM6IHN0cmluZ1tdO1xuICBwb2x5bWVzaE5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgdHJvbk5vZGVzOiB7XG4gICAgZnVsbDogc3RyaW5nO1xuICAgIHNvbGlkaXR5OiBzdHJpbmc7XG4gIH07XG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogYm9vbGVhbjtcbiAgdG9uTm9kZVVybDogc3RyaW5nO1xuICBzdWlOb2RlVXJsOiBzdHJpbmc7XG4gIGlvdGFOb2RlVXJsOiBzdHJpbmc7XG4gIGV0Y05vZGVVcmw6IHN0cmluZztcbiAgY29yZWRhb0V4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgY29yZWRhb0V4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHhkY0V4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgeGRjRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgZmxyRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBmbHJFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzZ2JFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNnYkV4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGljcE5vZGVVcmw6IHN0cmluZztcbiAga2FzcGFOb2RlVXJsOiBzdHJpbmc7XG4gIHN0YXJrbmV0Tm9kZVVybDogc3RyaW5nO1xuICBoeXBlckxpcXVpZE5vZGVVcmw6IHN0cmluZztcbiAgd2VtaXhFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHdlbWl4RXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgbW9uRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBtb25FeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICB3b3JsZEV4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgd29ybGRFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzb21uaWFFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNvbW5pYUV4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHNvbmVpdW1FeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNvbmVpdW1FeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzdHhOb2RlVXJsOiBzdHJpbmc7XG4gIHZldE5vZGVVcmw6IHN0cmluZztcbiAgLy8gVGhlIGtleSBoZXJlIGlzIGNvaW5OYW1lIGFuZCBpdCB3aWxsIGJlIHNhbWUgZm9yIGJvdGggbWFpbm5ldCBhbmQgdGVzdG5ldCAoZWc6ICdwaHJzJylcbiAgZXZtPzoge1xuICAgIFtrZXk6IHN0cmluZ106IHtcbiAgICAgIGJhc2VVcmw6IHN0cmluZztcbiAgICAgIGFwaVRva2VuPzogc3RyaW5nO1xuICAgICAgcnBjVXJsPzogc3RyaW5nO1xuICAgICAgdG9rZW5JZD86IG51bWJlcjtcbiAgICAgIHN5c3RlbUFkZHI/OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgLy8gVGhlIGtleSBoZXJlIGlzIGNvaW5GYW1pbHkgYW5kIGl0IHdpbGwgYmUgc2FtZSBmb3IgYm90aCBtYWlubmV0IGFuZCB0ZXN0bmV0IChlZzogJ2Nyb25vcycpXG4gIGNvc21vcz86IHtcbiAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICBub2RlVXJsOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgeHR6RXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICB4dHpScGNVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnQgZXh0ZW5kcyBFbnZpcm9ubWVudFRlbXBsYXRlIHtcbiAgdXJpOiBzdHJpbmc7XG4gIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBoYXJkY29kZWRQdWJsaWNLZXlzID0gT2JqZWN0LmZyZWV6ZSh7XG4gIHNlcnZlclhwdWI6IHtcbiAgICBwcm9kOiAneHB1YjY2MU15TXdBcVJiY0V0VWd1OUhGOGFpNGlwdVZLS0hCelVxa3M0alNGeXBXOGR3d1FMMXp5Z0xnUXg5OU5tQzd6Skp6blNpd0tHNlJRZlZqQUtNdENzeDhWalI2a1FXOHg3SHJrWEZaZG5RJyxcbiAgICB0ZXN0OiAneHB1YjY2MU15TXdBcVJiY0VyRnFWWEdpVUZ2OVllb1BiaE43MlVpTkNVZGo5bmozVDZNOGg3aUtObWJDWXBNVldWWlA3TEEybWEzSFdjUG5nejFnUlRtNEZQZHRtOW1IZnJOdlU5M01Db3N6c0dMJyxcbiAgfSxcbiAgaHNtWHB1Yjoge1xuICAgIHByb2Q6ICd4cHViNjYxTXlNd0FxUmJjR0V0VEZnTUFveE1Gb3FzUmREYWlhUjYzYnlOZlpkVjdjQlpGdm92UVNOSjVicHllb1F0dUtWZ1hCazZzRlE3VHR2eVdxYWR0NDFEbkt3dmVZZ001S29VMkVLWWpkWTInLFxuICAgIHRlc3Q6ICd4cHViNjYxTXlNd0FxUmJjR0ZLZTRCcXZrNFNncmljNGdORkM4cFVidzR0VWtWalp4dWJqQ0E1MjJnUHpjMVlhWGIzYlFWbURXYzdDakc4QUdOV1JwY2RBVTM4UkVUQmg4bjJibnFFVTRrYlY0b0snLFxuICAgIGRldjogJ3hwdWI2NjFNeU13QXFSYmNGV3pvejhxbllSRFlFRlFwUExZd3hWRm9HNldMeTNjazVadXBSR0pURzRqdTZ5R2I3RGozZXk2R3NDNGtzdExSRVIybkt6Z2pMdG14eVBnQzR6SHk3a1ZoVXQ2eWZHbicsXG4gIH0sXG59KTtcblxuZXhwb3J0IHR5cGUgRW52aXJvbm1lbnROYW1lID1cbiAgfCAncHJvZCdcbiAgfCAnc3RhZ2luZydcbiAgfCAndGVzdCdcbiAgfCAnZGV2J1xuICB8ICdsb2NhbCdcbiAgfCAnbG9jYWxOb25TZWN1cmUnXG4gIHwgJ21vY2snXG4gIHwgJ2FkbWluUHJvZCdcbiAgfCAnYWRtaW5UZXN0J1xuICB8ICdhZG1pblN0YWdpbmcnXG4gIHwgJ2FkbWluRGV2J1xuICB8ICdjdXN0b20nXG4gIHwgJ2JyYW5jaCc7XG5cbmV4cG9ydCB0eXBlIEFsaWFzRW52aXJvbm1lbnROYW1lID0gJ3Byb2R1Y3Rpb24nIHwgJ21zUHJvZCcgfCAnbXNUZXN0JyB8ICdtc0Rldic7XG5cbmV4cG9ydCB0eXBlIEVudmlyb25tZW50cyA9IHsgW2sgaW4gRW52aXJvbm1lbnROYW1lXTogRW52aXJvbm1lbnQgfTtcblxuLy8gYWxpYXMgZW52aXJvbm1lbnRzIGFyZSBlbnZpcm9ubWVudCBuYW1lcyB3aGljaCBhcmUgYWxpYXNlcyBvZiBhIHN1cHBvcnRlZCBlbnZpcm9ubWVudFxuZXhwb3J0IGNvbnN0IEFsaWFzRW52aXJvbm1lbnRzOiB7IFtrIGluIEFsaWFzRW52aXJvbm1lbnROYW1lXTogRW52aXJvbm1lbnROYW1lIH0gPSB7XG4gIHByb2R1Y3Rpb246ICdwcm9kJyxcbiAgbXNQcm9kOiAncHJvZCcsXG4gIG1zVGVzdDogJ3Rlc3QnLFxuICBtc0RldjogJ2RldicsXG59O1xuXG5jb25zdCBtYWlubmV0QmFzZTogRW52aXJvbm1lbnRUZW1wbGF0ZSA9IHtcbiAgbmV0d29yazogJ2JpdGNvaW4nIGFzIFYxTmV0d29yayxcbiAgc2lnbmluZ0FkZHJlc3M6ICcxQml0R28zZ3hSWjZtUVNFSDUyZHZDS1NVZ1ZDQUg0UmphJyxcbiAgc2VydmVyWHB1YjogaGFyZGNvZGVkUHVibGljS2V5cy5zZXJ2ZXJYcHViLnByb2QsXG4gIGhzbVhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi5wcm9kLFxuICBidGNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2Jsb2Nrc3RyZWFtLmluZm8vYXBpJyxcbiAgZXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGV0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICBhdmF4Y05ldHdvcmtCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuYXZheC5uZXR3b3JrJyxcbiAgZXRoMkV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vYXBpJyxcbiAgZXRod0Z1bGxOb2RlUlBDQmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5ldGhlcmV1bXBvdy5vcmcnLFxuICBic2NzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGJzY3NjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuQlNDX0FQSV9UT0tFTixcbiAgcG9seWdvbnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgcG9seWdvbnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuUE9MWUdPTlNDQU5fQVBJX1RPS0VOLFxuICBhcmJpc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBhcmJpc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5BUkJJU0NBTl9BUElfVE9LRU4sXG4gIG9wdGltaXN0aWNFdGhlcnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgb3B0aW1pc3RpY0V0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5PUFRJTUlTVElDX0VUSEVSU0NBTl9BUElfVE9LRU4sXG4gIHprc3luY0V4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmxvY2stZXhwbG9yZXItYXBpLm1haW5uZXQuemtzeW5jLmlvJyxcbiAgemtzeW5jRXhwbG9yZXJBcGlUb2tlbjogcHJvY2Vzcy5lbnYuWktTWU5DX0VYUExPUkVSX0FQSV9UT0tFTixcbiAgYmFzZWV0aEV4cGxvcmVyVXJsOiAnaHR0cHM6Ly9hcGkuYmFzZXNjYW4ub3JnJywgLy9CYXNlRVRIIGV4cGxvcmVyIGFwaSB1cmxcbiAgYmFzZWV0aEFwaVRva2VuOiBwcm9jZXNzLmVudi5CQVNFU0NBTl9BUElfVE9LRU4sXG4gIGVvc05vZGVVcmxzOiBbJ2h0dHBzOi8vYnAuY3J5cHRvbGlvbnMuaW8nLCAnaHR0cHM6Ly9hcGkuZW9zbmV3eW9yay5pbycsICdodHRwczovL2FwaS5lb3NkZXRyb2l0LmlvJ10sXG4gIG5lYXJOb2RlVXJsczogWydodHRwczovL2FwaS5mYXN0bmVhci5jb20nXSxcbiAgc29sTm9kZVVybDogJ2h0dHBzOi8vYXBpLm1haW5uZXQtYmV0YS5zb2xhbmEuY29tJyxcbiAgc29sQWxjaGVteU5vZGVVcmw6ICdodHRwczovL3NvbGFuYS1tYWlubmV0LmcuYWxjaGVteS5jb20vdjInLFxuICBhZGFOb2RlVXJsOiAnaHR0cHM6Ly9hcGkua29pb3MucmVzdC9hcGkvdjEnLFxuICBoYXNoTm9kZVVybDogJ2h0dHBzOi8vYXBpLnByb3ZlbmFuY2UuaW8nLFxuICBpbmpOb2RlVXJsOiAnaHR0cHM6Ly9zZW50cnkubGNkLmluamVjdGl2ZS5uZXR3b3JrJywgLy8gcmVmZXJlbmNlIGh0dHBzOi8vZG9jcy5pbmplY3RpdmUubmV0d29yay9kZXZlbG9wL3B1YmxpYy1lbmRwb2ludHMvXG4gIGF0b21Ob2RlVXJsOiAnaHR0cHM6Ly9yZXN0LmNvc21vcy5kaXJlY3RvcnkvY29zbW9zaHViLycsXG4gIG9zbW9Ob2RlVXJsOiAnaHR0cHM6Ly9sY2Qub3Ntb3Npcy56b25lJyxcbiAgdGlhTm9kZVVybDogJ2h0dHBzOi8vcHVibGljLWNlbGVzdGlhLWxjZC5udW1pYS54eXonLCAvLyByZWZlcmVuY2UgaHR0cHM6Ly9kb2NzLmNlbGVzdGlhLm9yZy9ub2Rlcy9tYWlubmV0I2FwaS1lbmRwb2ludHNcbiAgc2VpTm9kZVVybDogJ2h0dHBzOi8vc2VpLWFwaS5wb2xrYWNodS5jb20nLFxuICBibGROb2RlVXJsOiAnaHR0cHM6Ly9hZ29yaWMtYXBpLnBvbGthY2h1LmNvbScsXG4gIGJlcmFOb2RlVXJsOiAnJywgLy8gVE9ETyhXSU4tNjkzKTogdXBkYXRlIHVybCB3aGVuIG1haW5uZXQgZ29lcyBsaXZlXG4gIHpldGFOb2RlVXJsOiAnaHR0cHM6Ly96ZXRhY2hhaW4uYmxvY2twaS5uZXR3b3JrJywgLy8gcmVmZXJlbmNlIGh0dHBzOi8vd3d3LnpldGFjaGFpbi5jb20vZG9jcy9yZWZlcmVuY2UvYXBpL1xuICBjb3JldW1Ob2RlVXJsOiAnaHR0cHM6Ly9mdWxsLW5vZGUubWFpbm5ldC0xLmNvcmV1bS5kZXY6MTMxNycsXG4gIHJ1bmVOb2RlVXJsOiAnaHR0cHM6Ly90aG9ybm9kZS5uaW5lcmVhbG1zLmNvbScsXG4gIGJhYnlOb2RlVXJsOiAnaHR0cHM6Ly9iYWJ5bG9uLm5vZGVzLmd1cnUvYXBpLycsXG4gIGlzbG1Ob2RlVXJsOiAnaHR0cHM6Ly9yZXN0LmNvc21vcy5oYXFxLm5ldHdvcmsnLFxuICBtYW50cmFOb2RlVXJsOiAnaHR0cHM6Ly9tYW50cmEtcmVzdC5wdWJsaWNub2RlLmNvbS8nLFxuICBjcm9ub3NOb2RlVXJsOiAnaHR0cHM6Ly9jcm9ub3MtcG9zLXJlc3QucHVibGljbm9kZS5jb20vJyxcbiAgaW5pdGlhTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5pbml0aWEueHl6LycsXG4gIGFzaU5vZGVVcmw6ICdodHRwczovL3Jlc3QtZmV0Y2hodWIuZmV0Y2guYWkvJyxcbiAgZG90Tm9kZVVybHM6IFsnd3NzOi8vYXNzZXQtaHViLXBvbGthZG90LXJwYy5uLmR3ZWxsaXIuY29tJ10sXG4gIHN1YnN0cmF0ZU5vZGVVcmxzOiBbJ3dzczovL2VudHJ5cG9pbnQtZmlubmV5Lm9wZW50ZW5zb3IuYWknXSxcbiAgcG9seW1lc2hOb2RlVXJsczogWyd3c3M6Ly9tYWlubmV0LXJwYy5wb2x5bWVzaC5uZXR3b3JrJ10sXG4gIHRyb25Ob2Rlczoge1xuICAgIGZ1bGw6ICdodHRwczovL2FwaS50cm9uZ3JpZC5pbycsXG4gICAgc29saWRpdHk6ICdodHRwczovL2FwaS50cm9uZ3JpZC5pbycsXG4gIH0sXG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogdHJ1ZSxcbiAgdG9uTm9kZVVybDogJ2h0dHBzOi8vdG9uY2VudGVyLmNvbS9hcGkvdjIvanNvblJQQycsXG4gIHN1aU5vZGVVcmw6ICdodHRwczovL3N1aS1ycGMucHVibGljbm9kZS5jb20nLFxuICBpb3RhTm9kZVVybDogJ2h0dHBzOi8vYXBpLm1haW5uZXQuaW90YS5jYWZlJyxcbiAgZXRjTm9kZVVybDogJ2h0dHBzOi8vZXRjLmJsb2Nrc2NvdXQuY29tJyxcbiAgY29yZWRhb0V4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vb3BlbmFwaS5jb3JlZGFvLm9yZycsXG4gIG9hc0V4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIub2FzeXMuZ2FtZXMnLFxuICBmbHJFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2ZsYXJlLWV4cGxvcmVyLmZsYXJlLm5ldHdvcmsnLFxuICB4ZGNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICB3ZW1peEV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIHNnYkV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc29uZ2JpcmQtZXhwbG9yZXIuZmxhcmUubmV0d29yaycsXG4gIGV2bToge1xuICAgIGFic3RyYWN0ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuYWJzY2FuLm9yZy9hcGknLFxuICAgIH0sXG4gICAgYXBlY2hhaW46IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgY2hpbGl6OiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuY2hpbGlzY2FuLmNvbScsXG4gICAgfSxcbiAgICBjb2RleGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIuY29kZXgueHl6L2FwaScsXG4gICAgfSxcbiAgICBwaHJzOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LmRwbGFicy1pbnRlcm5hbC5jb20nLCAvLyBUT0RPOiBXSU4tNTc4NyBhZGQgbWFpbm5ldCB1cmwgd2hlbiBpdHMgYXZhaWxhYmxlXG4gICAgfSxcbiAgICBjdGM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2NyZWRpdGNvaW4uYmxvY2tzY291dC5jb20nLFxuICAgIH0sXG4gICAgaHlwZWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgICAvLyBUaGVzZSBhcmUgdXNlZCBmb3IgQnJpZGdpbmcgYXNzZXRzIG9uIGh5cGUgY2hhaW4uXG4gICAgICB0b2tlbklkOiAxNTAsXG4gICAgICBzeXN0ZW1BZGRyOiAnMHgyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyJyxcbiAgICB9LFxuICAgIG9nOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jaGFpbnNjYW4uMGcuYWkvb3BlbicsXG4gICAgfSxcbiAgICB4cGw6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5yb3V0ZXNjYW4uaW8vdjIvbmV0d29yay9tYWlubmV0L2V2bS85NzQ1L2V0aGVyc2NhbicsXG4gICAgfSxcbiAgICBzb25pYzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICB1c2R0MDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vc3RhYmxlc2Nhbi54eXovYXBpJyxcbiAgICB9LFxuICAgIHNlaWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBrYWlhOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9tYWlubmV0LW9hcGkua2FpYXNjYW4uaW8nLFxuICAgIH0sXG4gICAga2F2YWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnZlcmlmeS5taW50c2Nhbi5pby9ldm0vYXBpLzB4OGFlJyxcbiAgICB9LFxuICAgIGlyeXM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V2bS1leHBsb3Jlci5pcnlzLnh5ei9hcGknLFxuICAgIH0sXG4gICAgbW9uOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICB9LFxuICAgIGxpbmVhZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICB9LFxuICAgIGlwOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly93d3cuc3RvcnlzY2FuLmlvJyxcbiAgICB9LFxuICAgIHNvbWk6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL21haW5uZXQuc29tbmlhLnczdXMuc2l0ZScsXG4gICAgfSxcbiAgICBiYXNlZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICB9LFxuICAgIG9wYm5iOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICAgIGFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICAgIH0sXG4gICAgZmFudG9tOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5mYW50b20ubmV0d29yaycsXG4gICAgICBycGNVcmw6ICdodHRwczovL3JwY2FwaS5mYW50b20ubmV0d29yay8nLFxuICAgIH0sXG4gICAgY290aWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5jb3Rpc2Nhbi5pbycsXG4gICAgICBycGNVcmw6ICdodHRwczovL21haW5uZXQuY290aS5pby9ycGMnLFxuICAgIH0sXG4gICAgeHR6ZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5ldGhlcmxpbmsuY29tL2FwaScsXG4gICAgfSxcbiAgICBnYXNldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL25lb3hzY2FuLm5nZC5uZXR3b3JrL2FwaScsXG4gICAgfSxcbiAgICBmbG93OiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9ldm0uZmxvd3NjYW4uaW8nLFxuICAgIH0sXG4gICAgcGx1bWU6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLnBsdW1lLm9yZycsXG4gICAgfSxcbiAgICBtZWdhZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9tYWlubmV0Lm1lZ2FldGguY29tL3JwYycsXG4gICAgfSxcbiAgICBoYmFyZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9tYWlubmV0Lm1pcnJvcm5vZGUuaGVkZXJhLmNvbS9hcGkvdjEnLFxuICAgICAgcnBjVXJsOiAnaHR0cHM6Ly9tYWlubmV0Lmhhc2hpby5pby9hcGknLFxuICAgIH0sXG4gICAgc2Nyb2xsZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuc2Nyb2xsc2Nhbi5jb20vYXBpJyxcbiAgICB9LFxuICAgIGhlbWlldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLmhlbWkueHl6L2FwaScsXG4gICAgfSxcbiAgICBrYXRhbmFldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2thdGFuYXNjYW4uY29tL2FwaScsXG4gICAgfSxcbiAgICBpbmtldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLmlua29uY2hhaW4uY29tL2FwaScsXG4gICAgfSxcbiAgICBwcml2aWRpdW1ldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLnByaXZpZGl1bS56a3N5bmMuZGV2L2FwaScsIC8vIFRPRE86IHVwZGF0ZSB3aXRoIG1haW5uZXQgVVJMIHdoZW4gYXZhaWxhYmxlXG4gICAgfSxcbiAgICBmbHVlbnRldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2ZsdWVudHNjYW4ueHl6L2FwaS8nLFxuICAgIH0sXG4gICAgbWFudGxlOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkubWFudGxlc2Nhbi54eXovYXBpJyxcbiAgICB9LFxuICAgIGpvdmF5ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuemFuLnRvcC9ub2RlL3YxL2pvdmF5L21haW5uZXQvJyxcbiAgICB9LFxuICAgIG9rYnhsYXllcjoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vd3d3Lm9rbGluay5jb20vYXBpL3Y1L2V4cGxvcmVyL2Jsb2NrL2Jsb2NrLWxpc3Q/Y2hhaW5TaG9ydE5hbWU9eGxheWVyJyxcbiAgICB9LFxuICAgIG1vcnBoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci1hcGktaG9vZGkubW9ycGhsMi5pbycsIC8vIFRPRE86IFdJTi04MTM0IGFkZCBtYWlubmV0IHVybCB3aGVuIGF2YWlsYWJsZVxuICAgIH0sXG4gICAgbW9ycGhldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLm1vcnBoLm5ldHdvcmsvJyxcbiAgICB9LFxuICAgIGRvZ2Vvczoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYmxvY2tzY291dC50ZXN0bmV0LmRvZ2Vvcy5jb20nLCAvL1RPRE86IFdJTi04MDgyID0+IGFkZCBtYWlubmV0IHVybCB3aGVuIGF2YWlsYWJsZVxuICAgIH0sXG4gICAgYXJjdXNkYzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIuYXJjLmlvL2FwaScsIC8vIFdJTi04ODQ0ID0+IGFkZCBtYWlubmV0IHVybCB3aGVuIGF2YWlsYWJsZVxuICAgIH0sXG4gICAgeGRjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICB9LFxuICAgIHprc3luY2VyYToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICB1bmlldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3VuaWNoYWluLmJsb2Nrc2NvdXQuY29tL2FwaScsXG4gICAgfSxcbiAgICBob29kZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9yb2Jpbmhvb2RjaGFpbi5ibG9ja3Njb3V0LmNvbS9hcGknLFxuICAgIH0sXG4gICAgaHBwZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5ocHAuaW8vYXBpJyxcbiAgICB9LFxuICAgIGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2h1bWFuaXR5LW1haW5uZXQuZXhwbG9yZXIuYWxjaGVteS5jb20vYXBpJyxcbiAgICB9LFxuICAgIGJvYmE6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5yb3V0ZXNjYW4uaW8vdjIvbmV0d29yay9tYWlubmV0L2V2bS8yODgvZXRoZXJzY2FuL2FwaScsXG4gICAgfSxcbiAgICB0ZW1wbzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVtcG8tbWFpbm5ldC5nLmFsY2hlbXkuY29tL3YyLycsXG4gICAgfSxcbiAgfSxcbiAgaWNwTm9kZVVybDogJ2h0dHBzOi8vaWMwLmFwcCcsXG4gIGthc3BhTm9kZVVybDogJ2h0dHBzOi8vYXBpLmthc3BhLm9yZycsXG4gIHN0YXJrbmV0Tm9kZVVybDogJ2h0dHBzOi8vc3RhcmtuZXQtbWFpbm5ldC1ycGMucHVibGljbm9kZS5jb20vJyxcbiAgaHlwZXJMaXF1aWROb2RlVXJsOiAnaHR0cHM6Ly9hcGkuaHlwZXJsaXF1aWQueHl6JyxcbiAgd29ybGRFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL3dvcmxkc2Nhbi5vcmcvJyxcbiAgc29tbmlhRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9tYWlubmV0LnNvbW5pYS53M3VzLnNpdGUvJyxcbiAgc29uZWl1bUV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc29uZWl1bS5ibG9ja3Njb3V0LmNvbScsXG4gIG1vbkV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIHN0eE5vZGVVcmw6ICdodHRwczovL2FwaS5oaXJvLnNvJyxcbiAgdmV0Tm9kZVVybDogJ2h0dHBzOi8vc3luYy1tYWlubmV0LnZlY2hhaW4ub3JnJyxcbiAgeHR6RXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkudHprdC5pbycsXG4gIHh0elJwY1VybDogJ2h0dHBzOi8vcnBjLnR6a3QuaW8vbWFpbm5ldCcsXG59O1xuXG5jb25zdCB0ZXN0bmV0QmFzZTogRW52aXJvbm1lbnRUZW1wbGF0ZSA9IHtcbiAgbmV0d29yazogJ3Rlc3RuZXQnIGFzIFYxTmV0d29yayxcbiAgc2lnbmluZ0FkZHJlc3M6ICdtc2lnbkJkRlh0ZWVoREVnQjZETm03bnBSdDdBY0VaSlAzJyxcbiAgc2VydmVyWHB1YjogaGFyZGNvZGVkUHVibGljS2V5cy5zZXJ2ZXJYcHViLnRlc3QsXG4gIGhzbVhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi50ZXN0LFxuICBidGNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2Jsb2Nrc3RyZWFtLmluZm8vdGVzdG5ldC9hcGknLFxuICBldGhlcnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgZXRoZXJzY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52LkVUSEVSU0NBTl9BUElfVE9LRU4sXG4gIGF2YXhjTmV0d29ya0Jhc2VVcmw6ICdodHRwczovL2FwaS5hdmF4LXRlc3QubmV0d29yaycsXG4gIGV0aDJFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2JlYWNvbnNjYW4uY29tL2FwaScsXG4gIGV0aHdGdWxsTm9kZVJQQ0Jhc2VVcmw6ICdodHRwczovL21haW5uZXQuZXRoZXJldW1wb3cub3JnJyxcbiAgcG9seWdvbnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgcG9seWdvbnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuUE9MWUdPTlNDQU5fQVBJX1RPS0VOLFxuICBic2NzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGJzY3NjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuQlNDX0FQSV9UT0tFTixcbiAgYXJiaXNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgYXJiaXNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuQVJCSVNDQU5fQVBJX1RPS0VOLFxuICBvcHRpbWlzdGljRXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIG9wdGltaXN0aWNFdGhlcnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuT1BUSU1JU1RJQ19FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICB6a3N5bmNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2Jsb2NrLWV4cGxvcmVyLWFwaS5zZXBvbGlhLnprc3luYy5kZXYnLFxuICB6a3N5bmNFeHBsb3JlckFwaVRva2VuOiBwcm9jZXNzLmVudi5aS1NZTkNfRVhQTE9SRVJfQVBJX1RPS0VOLFxuICBiYXNlZXRoRXhwbG9yZXJVcmw6ICdodHRwczovL2FwaS1zZXBvbGlhLmJhc2VzY2FuLm9yZycsXG4gIGJhc2VldGhBcGlUb2tlbjogcHJvY2Vzcy5lbnYuQkFTRVNDQU5fQVBJX1RPS0VOLFxuICAvLyBreWxpbiBlb3MgZW5kcG9pbnRzIGZvdW5kIGhlcmVcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2NyeXB0b2t5bGluL0NyeXB0b0t5bGluLVRlc3RuZXQjaHR0cC1hcGktbGlzdFxuICAvLyBodHRwczovL2RvY3MubGlxdWlkYXBwcy5pby9saXF1aWRhcHBzLWRvY3VtZW50YXRpb24vZW9zaW8tZ3VpZGVzL3Rlc3RuZXQtY3JlYXRpb24tZ3VpZGVzL2NyZWF0aW5nLWNyeXB0b2t5bGluLWFjY291bnQjc2V0dXBcbiAgZW9zTm9kZVVybHM6IFsnaHR0cHM6Ly9reWxpbi5lb3NuLmlvJywgJ2h0dHBzOi8vYXBpLmt5bGluLmFsb2hhZW9zLmNvbSddLFxuICBuZWFyTm9kZVVybHM6IFsnaHR0cHM6Ly90ZXN0LnJwYy5mYXN0bmVhci5jb20nXSxcbiAgc29sTm9kZVVybDogJ2h0dHBzOi8vYXBpLmRldm5ldC5zb2xhbmEuY29tJyxcbiAgc29sQWxjaGVteU5vZGVVcmw6ICdodHRwczovL3NvbGFuYS1kZXZuZXQuZy5hbGNoZW15LmNvbS92MicsXG4gIGFkYU5vZGVVcmw6ICdodHRwczovL3ByZXByb2Qua29pb3MucmVzdC9hcGkvdjEnLFxuICBoYXNoTm9kZVVybDogJ2h0dHBzOi8vYXBpLnRlc3QucHJvdmVuYW5jZS5pbycsXG4gIGluak5vZGVVcmw6ICdodHRwczovL3Rlc3RuZXQuc2VudHJ5LmxjZC5pbmplY3RpdmUubmV0d29yaycsIC8vIENPSU4tMTIxOSA6IHJlZmVyZW5jZSAgaHR0cHM6Ly9kb2NzLmluamVjdGl2ZS5uZXR3b3JrL2RldmVsb3AvcHVibGljLWVuZHBvaW50cy8jdGVzdG5ldFxuICBhdG9tTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5wcm92aWRlci1zZW50cnktMDIuaWNzLXRlc3RuZXQucG9seXBvcmUueHl6LycsXG4gIG9zbW9Ob2RlVXJsOiAnaHR0cHM6Ly9sY2Qub3Ntb3Rlc3Q1Lm9zbW9zaXMuem9uZScsXG4gIHRpYU5vZGVVcmw6ICdodHRwczovL2FwaS1tb2NoYS5wb3BzLm9uZScsXG4gIHNlaU5vZGVVcmw6ICdodHRwczovL3Jlc3QuYXRsYW50aWMtMi5zZWluZXR3b3JrLmlvJyxcbiAgYmxkTm9kZVVybDogJ2h0dHBzOi8vZGV2bmV0LmFwaS5hZ29yaWMubmV0JyxcbiAgYmVyYU5vZGVVcmw6ICcnLCAvLyBUT0RPKFdJTi02OTMpOiB1cGRhdGUgdXJsIHdoZW4gdGVzdG5ldCBnb2VzIGxpdmVcbiAgemV0YU5vZGVVcmw6ICdodHRwczovL3Jlc3Qubm9kZWp1bXBlci5pby96ZXRhY2hhaW50ZXN0bmV0JywgLy8gcmVmZXJlbmNlIDogaHR0cHM6Ly93d3cuemV0YWNoYWluLmNvbS9kb2NzL3JlZmVyZW5jZS9hcGkvXG4gIGNvcmV1bU5vZGVVcmw6ICdodHRwczovL2Z1bGwtbm9kZS50ZXN0bmV0LTEuY29yZXVtLmRldjoxMzE3JyxcbiAgcnVuZU5vZGVVcmw6ICdodHRwczovL3N0YWdlbmV0LXRob3Jub2RlLm5pbmVyZWFsbXMuY29tJyxcbiAgYmFieU5vZGVVcmw6ICdodHRwczovL2JhYnlsb24tdGVzdG5ldC1hcGkubm9kZXMuZ3VydS8nLFxuICBpc2xtTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5jb3Ntb3MudGVzdGVkZ2UyLmhhcXEubmV0d29yayAnLFxuICBtYW50cmFOb2RlVXJsOiAnaHR0cHM6Ly9tYW50cmEtdGVzdG5ldC1yZXN0LnB1YmxpY25vZGUuY29tLycsXG4gIGNyb25vc05vZGVVcmw6ICdodHRwczovL3Rlc3RuZXQtY3JvZXNlaWQtNC5jcnlwdG8ub3JnOjEzMTcvJyxcbiAgaW5pdGlhTm9kZVVybDogJ2h0dHBzOi8vcmVzdC50ZXN0bmV0LmluaXRpYS54eXovJyxcbiAgYXNpTm9kZVVybDogJ2h0dHBzOi8vcmVzdC1kb3JhZG8uZmV0Y2guYWkvJyxcbiAgZG90Tm9kZVVybHM6IFsnd3NzOi8vYXNzZXQtaHViLXdlc3RlbmQtcnBjLm4uZHdlbGxpci5jb20nXSxcbiAgc3Vic3RyYXRlTm9kZVVybHM6IFsnd3NzOi8vdGVzdC5maW5uZXkub3BlbnRlbnNvci5haSddLFxuICBwb2x5bWVzaE5vZGVVcmxzOiBbJ3dzczovL3Rlc3RuZXQtcnBjLnBvbHltZXNoLmxpdmUnXSxcbiAgdHJvbk5vZGVzOiB7XG4gICAgZnVsbDogJ2h0dHBzOi8vYXBpLnNoYXN0YS50cm9uZ3JpZC5pbycsXG4gICAgc29saWRpdHk6ICdodHRwczovL2FwaS5zaGFzdGEudHJvbmdyaWQuaW8nLFxuICB9LFxuICBobWFjVmVyaWZpY2F0aW9uRW5mb3JjZWQ6IGZhbHNlLFxuICB0b25Ob2RlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LnRvbmNlbnRlci5jb20vYXBpL3YyL2pzb25SUEMnLFxuICBzdWlOb2RlVXJsOiAnaHR0cHM6Ly9zdWktdGVzdG5ldC1ycGMucHVibGljbm9kZS5jb20nLFxuICBpb3RhTm9kZVVybDogJ2h0dHBzOi8vYXBpLnRlc3RuZXQuaW90YS5jYWZlJyxcbiAgZXRjTm9kZVVybDogJ2h0dHBzOi8vZXRjLW1vcmRvci5ibG9ja3Njb3V0LmNvbScsXG4gIGNvcmVkYW9FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS50ZXN0Mi5idGNzLm5ldHdvcmsnLFxuICBvYXNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQub2FzeXMuZ2FtZXMnLFxuICB3ZW1peEV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGZsckV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vY29zdG9uMi1leHBsb3Jlci5mbGFyZS5uZXR3b3JrJyxcbiAgeGRjRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgc2diRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9jb3N0b24tZXhwbG9yZXIuZmxhcmUubmV0d29yaycsXG4gIGljcE5vZGVVcmw6ICdodHRwczovL2ljMC5hcHAnLFxuICBrYXNwYU5vZGVVcmw6ICdodHRwczovL2FwaS10bjEwLmthc3BhLm9yZycsXG4gIHN0YXJrbmV0Tm9kZVVybDogJ2h0dHBzOi8vc3RhcmtuZXQtc2Vwb2xpYS1ycGMucHVibGljbm9kZS5jb20vJyxcbiAgaHlwZXJMaXF1aWROb2RlVXJsOiAnaHR0cHM6Ly9hcGkuaHlwZXJsaXF1aWQtdGVzdG5ldC54eXonLFxuICBtb25FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICB3b3JsZEV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc2Vwb2xpYS53b3JsZHNjYW4ub3JnLycsXG4gIHNvbW5pYUV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc2hhbm5vbi1leHBsb3Jlci5zb21uaWEubmV0d29yay8nLFxuICBzb25laXVtRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9zb25laXVtLW1pbmF0by5ibG9ja3Njb3V0LmNvbScsXG4gIGV2bToge1xuICAgIGFic3RyYWN0ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuc2Vwb2xpYS5hYnNjYW4ub3JnL2FwaScsXG4gICAgfSxcbiAgICBhcGVjaGFpbjoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBjaGlsaXo6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS50ZXN0bmV0LmNoaWxpc2Nhbi5jb20nLFxuICAgIH0sXG4gICAgY29kZXhldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLmNvZGV4LXN0Zy54eXovYXBpJyxcbiAgICB9LFxuICAgIHBocnM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuZHBsYWJzLWludGVybmFsLmNvbScsIC8vIFdyb25nIHZhbHVlLCBOb3QgYXZhaWxhYmxlIHlldFxuICAgIH0sXG4gICAgY3RjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jcmVkaXRjb2luLXRlc3RuZXQuYmxvY2tzY291dC5jb20nLFxuICAgIH0sXG4gICAgaHlwZWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vcnBjLmh5cGVybGlxdWlkLXRlc3RuZXQueHl6L2V2bScsIC8vIE5vdCBBdmFpbGFibGVcbiAgICAgIC8vIFRoZXNlIGFyZSB1c2VkIGZvciBCcmlkZ2luZyBhc3NldHMgb24gaHlwZSBjaGFpbi5cbiAgICAgIHRva2VuSWQ6IDExMDUsXG4gICAgICBzeXN0ZW1BZGRyOiAnMHgyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyJyxcbiAgICB9LFxuICAgIG9nOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jaGFpbnNjYW4tdGVzdC4wZy5haS9vcGVuJyxcbiAgICB9LFxuICAgIHhwbDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnJvdXRlc2Nhbi5pby92Mi9uZXR3b3JrL3Rlc3RuZXQvZXZtLzk3NDZfNS9ldGhlcnNjYW4nLFxuICAgIH0sXG4gICAgc29uaWM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdXNkdDA6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuc3RhYmxlc2Nhbi54eXovYXBpJyxcbiAgICB9LFxuICAgIHNlaWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBrYWlhOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9rYWlyb3Mtb2FwaS5rYWlhc2Nhbi5pbycsXG4gICAgfSxcbiAgICBrYXZhZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkudmVyaWZ5Lm1pbnRzY2FuLmlvL2V2bS9hcGkvMHg4YWQnLFxuICAgIH0sXG4gICAgaXJ5czoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vaW5zdC0xLmNsb3VkLmJsb2Nrc2NvdXQuY29tL2FwaScsXG4gICAgfSxcbiAgICBtb246IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgbGluZWFldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgaXA6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FlbmVpZC5zdG9yeXNjYW4uaW8nLFxuICAgIH0sXG4gICAgdGJhc2VldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdG9wYm5iOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICAgIGFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICAgIH0sXG4gICAgdGNvdGlldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuY290aXNjYW4uaW8nLFxuICAgICAgcnBjVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LmNvdGkuaW8vcnBjJyxcbiAgICB9LFxuICAgIHh0emV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vc2hhZG93bmV0LmV4cGxvcmVyLmV0aGVybGluay5jb20vYXBpJyxcbiAgICB9LFxuICAgIHRnYXNldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL25lb3h0NHNjYW4ubmdkLm5ldHdvcmsvYXBpJyxcbiAgICB9LFxuICAgIGZsb3c6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V2bS10ZXN0bmV0LmZsb3dzY2FuLmlvJyxcbiAgICB9LFxuICAgIG1lZ2FldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2NhcnJvdC5tZWdhZXRoLmNvbS9ycGMnLFxuICAgIH0sXG4gICAgcGx1bWU6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQtZXhwbG9yZXIucGx1bWUub3JnJyxcbiAgICB9LFxuICAgIGhiYXJldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQubWlycm9ybm9kZS5oZWRlcmEuY29tL2FwaS92MScsXG4gICAgICBycGNVcmw6ICdodHRwczovL3Rlc3RuZXQuaGFzaGlvLmlvL2FwaScsXG4gICAgfSxcbiAgICB0c2Nyb2xsZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGktc2Vwb2xpYS5zY3JvbGxzY2FuLmNvbS9hcGknLFxuICAgIH0sXG4gICAgaGVtaWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC5leHBsb3Jlci5oZW1pLnh5ei9hcGknLFxuICAgIH0sXG4gICAgdGthdGFuYWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXItYm9rdXRvLmthdGFuYXJwYy5jb20vYXBpJyxcbiAgICB9LFxuICAgIHRpbmtldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLXNlcG9saWEuaW5rb25jaGFpbi5jb20vYXBpJyxcbiAgICB9LFxuICAgIHByaXZpZGl1bWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC1wcml2aWRpdW0uemtzeW5jLmRldi9hcGknLFxuICAgIH0sXG4gICAgZmx1ZW50ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LmZsdWVudHNjYW4ueHl6L2FwaS8nLFxuICAgIH0sXG4gICAgbWFudGxlOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGktc2Vwb2xpYS5tYW50bGVzY2FuLnh5ei9hcGknLFxuICAgIH0sXG4gICAgam92YXlldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS56YW4udG9wL25vZGUvdjEvam92YXkvdGVzdG5ldC8nLFxuICAgIH0sXG4gICAgb2tieGxheWVyOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly93d3cub2tsaW5rLmNvbS9hcGkvdjUvZXhwbG9yZXIvYmxvY2svYmxvY2stbGlzdD9jaGFpblNob3J0TmFtZT14bGF5ZXJfdGVzdG5ldCcsXG4gICAgfSxcbiAgICBtb3JwaDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXItYXBpLWhvb2RpLm1vcnBobDIuaW8nLFxuICAgIH0sXG4gICAgbW9ycGhldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLWhvb2RpLm1vcnBoLm5ldHdvcmsvJyxcbiAgICB9LFxuICAgIGRvZ2Vvczoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYmxvY2tzY291dC50ZXN0bmV0LmRvZ2Vvcy5jb20nLFxuICAgIH0sXG4gICAgYXJjdXNkYzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC5hcmNzY2FuLmFwcC9hcGknLCAvLyBXSU4tODg0NCA9PiBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgICB9LFxuICAgIHhkYzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICB6a3N5bmNlcmE6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdW5pZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly91bmljaGFpbi1zZXBvbGlhLmJsb2Nrc2NvdXQuY29tL2FwaScsXG4gICAgfSxcbiAgICBob29kZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LmNoYWluLnJvYmluaG9vZC5jb20vYXBpJyxcbiAgICB9LFxuICAgIGhwcGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vc2Vwb2xpYS1leHBsb3Jlci5ocHAuaW8vYXBpJyxcbiAgICB9LFxuICAgIGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2h1bWFuaXR5LXRlc3RuZXQuZXhwbG9yZXIuYWxjaGVteS5jb20vYXBpJyxcbiAgICB9LFxuICAgIGJvYmE6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5yb3V0ZXNjYW4uaW8vdjIvbmV0d29yay90ZXN0bmV0L2V2bS8yODg4Mi9ldGhlcnNjYW4vYXBpJyxcbiAgICB9LFxuICAgIHRlbXBvOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZW1wby1tb2RlcmF0by5nLmFsY2hlbXkuY29tL3YyLycsXG4gICAgfSxcbiAgfSxcbiAgc3R4Tm9kZVVybDogJ2h0dHBzOi8vYXBpLnRlc3RuZXQuaGlyby5zbycsXG4gIHZldE5vZGVVcmw6ICdodHRwczovL3N5bmMtdGVzdG5ldC52ZWNoYWluLm9yZycsXG4gIHh0ekV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLmdob3N0bmV0LnR6a3QuaW8nLFxuICB4dHpScGNVcmw6ICdodHRwczovL3JwYy50emt0LmlvL2dob3N0bmV0Jyxcbn07XG5cbmNvbnN0IGRldkJhc2U6IEVudmlyb25tZW50VGVtcGxhdGUgPSBPYmplY3QuYXNzaWduKHt9LCB0ZXN0bmV0QmFzZSwge1xuICBoc21YcHViOiBoYXJkY29kZWRQdWJsaWNLZXlzLmhzbVhwdWIuZGV2LFxuICBobWFjVmVyaWZpY2F0aW9uRW5mb3JjZWQ6IGZhbHNlLFxufSk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZWRlY2xhcmVcbmV4cG9ydCBjb25zdCBFbnZpcm9ubWVudHM6IEVudmlyb25tZW50cyA9IHtcbiAgcHJvZDogT2JqZWN0LmFzc2lnbih7fSwgbWFpbm5ldEJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FwcC5iaXRnby5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hcHAuYml0Z28uY29tL2FwaS92Mi94bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICB0ZXN0OiBPYmplY3QuYXNzaWduKHt9LCB0ZXN0bmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYXBwLmJpdGdvLXRlc3QuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYXBwLmJpdGdvLXRlc3QuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgZGV2OiBPYmplY3QuYXNzaWduKHt9LCBkZXZCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hcHAuYml0Z28tZGV2LmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FwcC5iaXRnby1kZXYuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgc3RhZ2luZzogT2JqZWN0LmFzc2lnbih7fSwgdGVzdG5ldEJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FwcC5iaXRnby1zdGFnaW5nLmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FwcC5iaXRnby1zdGFnaW5nLmNvbS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGxvY2FsOiBPYmplY3QuYXNzaWduKHt9LCBkZXZCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9sb2NhbGhvc3Q6MzAwMCcsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2xvY2FsaG9zdDozMDAwL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgbG9jYWxOb25TZWN1cmU6IE9iamVjdC5hc3NpZ24oe30sIGRldkJhc2UsIHtcbiAgICB1cmk6ICdodHRwOi8vbG9jYWxob3N0OjMwMDAnLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgbW9jazogT2JqZWN0LmFzc2lnbih7fSwgZGV2QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYml0Z28uZmFrZXVybCcsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2JpdGdvLmZha2V1cmwvYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gICAgZXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLWhvb2RpLmV0aGVyc2Nhbi5mYWtldXJsJyxcbiAgICBldGhlcnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuRVRIRVJTQ0FOX0FQSV9UT0tFTixcbiAgICBhdmF4Y05ldHdvcmtCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuYXZheC10ZXN0Lm5ldHdvcmsuZmFrZXVybCcsXG4gICAgZXRoMkV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vYXBpJyxcbiAgfSksXG4gIGFkbWluUHJvZDogT2JqZWN0LmFzc2lnbih7fSwgbWFpbm5ldEJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FkbWluLmJpdGdvLmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FkbWluLmJpdGdvLmNvbS9hcGkvdjIveGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgYWRtaW5UZXN0OiBPYmplY3QuYXNzaWduKHt9LCB0ZXN0bmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYWRtaW4uYml0Z28tdGVzdC5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby10ZXN0LmNvbS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGFkbWluRGV2OiBPYmplY3QuYXNzaWduKHt9LCBkZXZCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby1kZXYuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYWRtaW4uYml0Z28tZGV2LmNvbS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGFkbWluU3RhZ2luZzogT2JqZWN0LmFzc2lnbih7fSwgdGVzdG5ldEJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FkbWluLmJpdGdvLXN0YWdpbmcuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYWRtaW4uYml0Z28tc3RhZ2luZy5jb20vYXBpL3YyL3hsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGN1c3RvbTogT2JqZWN0LmFzc2lnbih7fSwgbWFpbm5ldEJhc2UsIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgIHVyaTogcHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX1JPT1RfVVJJISxcbiAgICBuZXR3b3JrOiBwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fQklUQ09JTl9ORVRXT1JLIGFzIFYxTmV0d29yayxcbiAgICBoc21YcHViOlxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyA/IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi5wcm9kIDogaGFyZGNvZGVkUHVibGljS2V5cy5oc21YcHViLnRlc3QsXG4gICAgYnRjRXhwbG9yZXJCYXNlVXJsOlxuICAgICAgcHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX0JJVENPSU5fTkVUV09SSyAhPT0gJ2JpdGNvaW4nXG4gICAgICAgID8gJ2h0dHBzOi8vYmxvY2tzdHJlYW0uaW5mby90ZXN0bmV0L2FwaSdcbiAgICAgICAgOiAnaHR0cHM6Ly9ibG9ja3N0cmVhbS5pbmZvL2FwaScsXG4gICAgZXRoZXJzY2FuQmFzZVVybDpcbiAgICAgIHByb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9FVEhFUkVVTV9ORVRXT1JLICE9PSAnZXRoZXJldW0nXG4gICAgICAgID8gJ2h0dHBzOi8vYXBpLWhvb2RpLmV0aGVyc2Nhbi5pbydcbiAgICAgICAgOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDpcbiAgICAgIHByb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9TVEVMTEFSX05FVFdPUksgIT09ICdzdGVsbGFyJ1xuICAgICAgICA/IGBodHRwczovLyR7cHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX1JPT1RfVVJJfS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uYFxuICAgICAgICA6IGBodHRwczovLyR7cHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX1JPT1RfVVJJfS9hcGkvdjIveGxtL2ZlZGVyYXRpb25gLFxuICAgIHNlcnZlclhwdWI6XG4gICAgICBwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fQklUQ09JTl9ORVRXT1JLICE9PSAnYml0Y29pbidcbiAgICAgICAgPyBoYXJkY29kZWRQdWJsaWNLZXlzLnNlcnZlclhwdWIudGVzdFxuICAgICAgICA6IGhhcmRjb2RlZFB1YmxpY0tleXMuc2VydmVyWHB1Yi5wcm9kLFxuICB9KSxcbiAgYnJhbmNoOiBPYmplY3QuYXNzaWduKHt9LCBkZXZCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hcHAuYml0Z28tZGV2LmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FwcC5iaXRnby1kZXYuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbn07XG4iXX0=
@@ -120,6 +120,8 @@ export interface AddKeychainOptions {
120
120
  originalPasscodeEncryptionCode?: string;
121
121
  enterprise?: string;
122
122
  derivedFromParentWithSeed?: any;
123
+ /** Safe user-root key id this child was derived from. @experimental */
124
+ parent?: string;
123
125
  disableKRSEmail?: boolean;
124
126
  provider?: string;
125
127
  reqId?: IRequestTracer;