@bitgo/sdk-core 38.12.1 → 38.15.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 (109) hide show
  1. package/dist/src/account-lib/baseCoin/enum.d.ts +2 -1
  2. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
  3. package/dist/src/account-lib/baseCoin/enum.js +3 -1
  4. package/dist/src/api/types.d.ts +6 -0
  5. package/dist/src/api/types.d.ts.map +1 -1
  6. package/dist/src/api/types.js +8 -1
  7. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +2 -0
  8. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
  9. package/dist/src/bitgo/baseCoin/baseCoin.js +3 -3
  10. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +12 -6
  11. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  12. package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
  13. package/dist/src/bitgo/defi/defiVault.d.ts +35 -1
  14. package/dist/src/bitgo/defi/defiVault.d.ts.map +1 -1
  15. package/dist/src/bitgo/defi/defiVault.js +67 -1
  16. package/dist/src/bitgo/defi/iDefiVault.d.ts +15 -0
  17. package/dist/src/bitgo/defi/iDefiVault.d.ts.map +1 -1
  18. package/dist/src/bitgo/defi/iDefiVault.js +1 -1
  19. package/dist/src/bitgo/internal/keycard.d.ts +2 -1
  20. package/dist/src/bitgo/internal/keycard.d.ts.map +1 -1
  21. package/dist/src/bitgo/internal/keycard.js +6 -3
  22. package/dist/src/bitgo/keychain/iKeychains.d.ts +2 -2
  23. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  24. package/dist/src/bitgo/keychain/iKeychains.js +1 -1
  25. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  26. package/dist/src/bitgo/keychain/keychains.js +29 -5
  27. package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts +27 -6
  28. package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts.map +1 -1
  29. package/dist/src/bitgo/safe/derivableEd25519Pub.js +68 -20
  30. package/dist/src/bitgo/safe/safe.js +2 -2
  31. package/dist/src/bitgo/safe/safes.d.ts.map +1 -1
  32. package/dist/src/bitgo/safe/safes.js +10 -1
  33. package/dist/src/bitgo/tss/common.d.ts.map +1 -1
  34. package/dist/src/bitgo/tss/common.js +4 -1
  35. package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.d.ts +50 -0
  36. package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
  37. package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.js +112 -0
  38. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
  39. package/dist/src/bitgo/utils/mpcUtils.js +15 -1
  40. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +1 -1
  41. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  42. package/dist/src/bitgo/utils/tss/baseTypes.js +1 -1
  43. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts +39 -0
  44. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts.map +1 -0
  45. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.js +344 -0
  46. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts +1 -0
  47. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts.map +1 -1
  48. package/dist/src/bitgo/utils/tss/ecdsa/index.js +2 -1
  49. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts +17 -2
  50. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts.map +1 -1
  51. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.js +1 -1
  52. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +8 -5
  53. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -1
  54. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +1 -1
  55. package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts +33 -0
  56. package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts.map +1 -0
  57. package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.js +260 -0
  58. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts +1 -0
  59. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts.map +1 -1
  60. package/dist/src/bitgo/utils/tss/eddsa/index.js +2 -1
  61. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts +15 -2
  62. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts.map +1 -1
  63. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.js +13 -2
  64. package/dist/src/bitgo/utils/tss/recipientUtils.d.ts.map +1 -1
  65. package/dist/src/bitgo/utils/tss/recipientUtils.js +13 -1
  66. package/dist/src/bitgo/wallet/iWallet.d.ts +30 -0
  67. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  68. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  69. package/dist/src/bitgo/wallet/iWallets.d.ts +2 -0
  70. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
  71. package/dist/src/bitgo/wallet/iWallets.js +1 -1
  72. package/dist/src/bitgo/wallet/safeKeychain.d.ts +25 -2
  73. package/dist/src/bitgo/wallet/safeKeychain.d.ts.map +1 -1
  74. package/dist/src/bitgo/wallet/safeKeychain.js +72 -18
  75. package/dist/src/bitgo/wallet/wallet.d.ts +18 -5
  76. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  77. package/dist/src/bitgo/wallet/wallet.js +109 -19
  78. package/dist/src/bitgo/wallet/wallets.d.ts +6 -0
  79. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
  80. package/dist/src/bitgo/wallet/wallets.js +37 -22
  81. package/dist/test/unit/bitgo/defi/defiVault.js +163 -1
  82. package/dist/test/unit/bitgo/keychain/keychains.d.ts +2 -0
  83. package/dist/test/unit/bitgo/keychain/keychains.d.ts.map +1 -0
  84. package/dist/test/unit/bitgo/keychain/keychains.js +155 -0
  85. package/dist/test/unit/bitgo/safe/derivableEd25519Pub.js +21 -6
  86. package/dist/test/unit/bitgo/safe/fixtures/derivableEd25519Pub.json +114 -62
  87. package/dist/test/unit/bitgo/safe/safe.js +4 -4
  88. package/dist/test/unit/bitgo/safe/safes.js +28 -2
  89. package/dist/test/unit/bitgo/tss/common.d.ts +2 -0
  90. package/dist/test/unit/bitgo/tss/common.d.ts.map +1 -0
  91. package/dist/test/unit/bitgo/tss/common.js +77 -0
  92. package/dist/test/unit/bitgo/tss/redpallas/redpallasMPCv2.d.ts +2 -0
  93. package/dist/test/unit/bitgo/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
  94. package/dist/test/unit/bitgo/tss/redpallas/redpallasMPCv2.js +181 -0
  95. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +70 -1
  96. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts +2 -0
  97. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts.map +1 -0
  98. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.js +173 -0
  99. package/dist/test/unit/bitgo/utils/tss/recipientUtils.js +33 -1
  100. package/dist/test/unit/bitgo/wallet/getPotentialStuckTxs.d.ts +2 -0
  101. package/dist/test/unit/bitgo/wallet/getPotentialStuckTxs.d.ts.map +1 -0
  102. package/dist/test/unit/bitgo/wallet/getPotentialStuckTxs.js +88 -0
  103. package/dist/test/unit/bitgo/wallet/safeGetUserPrv.js +10 -10
  104. package/dist/test/unit/bitgo/wallet/safeShareWallet.d.ts +9 -0
  105. package/dist/test/unit/bitgo/wallet/safeShareWallet.d.ts.map +1 -0
  106. package/dist/test/unit/bitgo/wallet/safeShareWallet.js +303 -0
  107. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.js +51 -40
  108. package/dist/tsconfig.tsbuildinfo +1 -1
  109. package/package.json +6 -5
@@ -83,4 +83,4 @@ exports.GenerateGoAccountWalletOptionsCodec = t.intersection([
83
83
  GenerateGoAccountWalletBaseOptionsCodec,
84
84
  t.union([GenerateGoAccountWalletPasswordOptionsCodec, GenerateGoAccountWalletPasswordlessOptionsCodec]),
85
85
  ], 'GenerateGoAccountWalletOptions');
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaVdhbGxldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vd2FsbGV0L2lXYWxsZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUEyQjtBQXNSZCxRQUFBLG1DQUFtQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQy9EO0lBQ0UsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNQLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNmLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNwQixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDcEIsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDaEMsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7S0FDckYsQ0FBQztJQUNGLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDUixpQkFBaUIsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDdkUsa0ZBQWtGO1FBQ2xGLDhFQUE4RTtRQUM5RSxpQkFBaUIsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDekQsQ0FBQztDQUNILEVBQ0QsZ0NBQWdDLENBQ2pDLENBQUM7QUFHRixNQUFNLHVDQUF1QyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDN0QsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNQLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNmLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNwQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7S0FDM0IsQ0FBQztJQUNGLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDUiw2RkFBNkY7UUFDN0YsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7S0FDaEMsQ0FBQztDQUNILENBQUMsQ0FBQztBQUVILE1BQU0sMkNBQTJDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUNqRSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1AsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNO1FBQ3BCLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxNQUFNO0tBQ2pDLENBQUM7SUFDRixDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ1Isc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLE9BQU87S0FDbEMsQ0FBQztDQUNILENBQUMsQ0FBQztBQUVILE1BQU0sK0NBQStDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUNyRSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1Asc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7S0FDekMsQ0FBQztJQUNGLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDUixVQUFVLEVBQUUsQ0FBQyxDQUFDLFNBQVM7UUFDdkIsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLFNBQVM7S0FDcEMsQ0FBQztDQUNILENBQUMsQ0FBQztBQUVVLFFBQUEsbUNBQW1DLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FDL0Q7SUFDRSx1Q0FBdUM7SUFDdkMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLDJDQUEyQyxFQUFFLCtDQUErQyxDQUFDLENBQUM7Q0FDeEcsRUFDRCxnQ0FBZ0MsQ0FDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuaW1wb3J0IHsgRGtsc1R5cGVzLCBNUFNUeXBlcyB9IGZyb20gJ0BiaXRnby9zZGstbGliLW1wYyc7XG5pbXBvcnQgeyBNUEN2MkJyb2FkY2FzdE1lc3NhZ2UsIE1QQ3YyUDJQTWVzc2FnZSB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuXG5pbXBvcnQgeyBFbmNyeXB0aW9uVmVyc2lvbiwgSVJlcXVlc3RUcmFjZXIgfSBmcm9tICcuLi8uLi9hcGknO1xuaW1wb3J0IHsgS2V5Y2hhaW5zVHJpcGxldCwgTGlnaHRuaW5nS2V5Y2hhaW5zVHJpcGxldCB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEFwaUtleVNoYXJlLCBLZXljaGFpbiwgV2ViYXV0aG5JbmZvIH0gZnJvbSAnLi4va2V5Y2hhaW4nO1xuaW1wb3J0IHsgSVdhbGxldCwgUGFnaW5hdGlvbk9wdGlvbnMsIFdhbGxldFNoYXJlIH0gZnJvbSAnLi9pV2FsbGV0JztcbmltcG9ydCB7IFdhbGxldCB9IGZyb20gJy4vd2FsbGV0JztcblxuZXhwb3J0IGludGVyZmFjZSBXYWxsZXRXaXRoS2V5Y2hhaW5zIGV4dGVuZHMgS2V5Y2hhaW5zVHJpcGxldCB7XG4gIHJlc3BvbnNlVHlwZTogJ1dhbGxldFdpdGhLZXljaGFpbnMnO1xuICB3YWxsZXQ6IElXYWxsZXQ7XG4gIHdhcm5pbmc/OiBzdHJpbmc7XG4gIGVuY3J5cHRlZFdhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlnaHRuaW5nV2FsbGV0V2l0aEtleWNoYWlucyBleHRlbmRzIExpZ2h0bmluZ0tleWNoYWluc1RyaXBsZXQge1xuICByZXNwb25zZVR5cGU6ICdMaWdodG5pbmdXYWxsZXRXaXRoS2V5Y2hhaW5zJztcbiAgd2FsbGV0OiBJV2FsbGV0O1xuICB3YXJuaW5nPzogc3RyaW5nO1xuICBlbmNyeXB0ZWRXYWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdvQWNjb3VudFdhbGxldFdpdGhVc2VyS2V5Y2hhaW4ge1xuICByZXNwb25zZVR5cGU6ICdHb0FjY291bnRXYWxsZXRXaXRoVXNlcktleWNoYWluJztcbiAgd2FsbGV0OiBJV2FsbGV0O1xuICB1c2VyS2V5Y2hhaW46IEtleWNoYWluO1xuICB3YXJuaW5nPzogc3RyaW5nO1xuICBlbmNyeXB0ZWRXYWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFdhbGxldE9wdGlvbnMge1xuICBhbGxUb2tlbnM/OiBib29sZWFuO1xuICByZXFJZD86IElSZXF1ZXN0VHJhY2VyO1xuICBpZD86IHN0cmluZztcbiAgaW5jbHVkZUJhbGFuY2U/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlQmFzZU1wY1dhbGxldE9wdGlvbnMge1xuICBtdWx0aXNpZ1R5cGU6ICd0c3MnO1xuICBsYWJlbDogc3RyaW5nO1xuICBlbnRlcnByaXNlOiBzdHJpbmc7XG4gIHdhbGxldFZlcnNpb24/OiBudW1iZXI7XG59XG5cbi8qKiBXZWJBdXRobiBQUkYtYmFzZWQgZW5jcnlwdGlvbiBpbmZvIGZvciBhdHRhY2hpbmcgYSBoYXJkd2FyZSBhdXRoZW50aWNhdG9yIHRvIGEga2V5LlxuICogVGhlIHBhc3NwaHJhc2UgaXMgdGhlIFBSRi1kZXJpdmVkIGtleSB1c2VkIHRvIGVuY3J5cHQgdGhlIHVzZXIgcHJpdmF0ZSBrZXkvc2hhcmVcbiAqIGJlZm9yZSBpdCBpcyBwZXJzaXN0ZWQuIE5ldmVyIHNlbnQgdG8gdGhlIHNlcnZlci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2ViYXV0aG5LZXlFbmNyeXB0aW9uSW5mbyB7XG4gIG90cERldmljZUlkOiBzdHJpbmc7XG4gIHByZlNhbHQ6IHN0cmluZztcbiAgcGFzc3BocmFzZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlTXBjV2FsbGV0T3B0aW9ucyBleHRlbmRzIEdlbmVyYXRlQmFzZU1wY1dhbGxldE9wdGlvbnMge1xuICBwYXNzcGhyYXNlOiBzdHJpbmc7XG4gIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZztcbiAgd2ViYXV0aG5JbmZvPzogV2ViYXV0aG5LZXlFbmNyeXB0aW9uSW5mbztcbiAgZW5jcnlwdGlvblZlcnNpb24/OiBFbmNyeXB0aW9uVmVyc2lvbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVTTUNNcGNXYWxsZXRPcHRpb25zIGV4dGVuZHMgR2VuZXJhdGVCYXNlTXBjV2FsbGV0T3B0aW9ucyB7XG4gIGJpdGdvS2V5SWQ6IHN0cmluZztcbiAgY29tbW9uS2V5Y2hhaW46IHN0cmluZztcbiAgY29sZERlcml2YXRpb25TZWVkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUtleWNoYWluQ2FsbGJhY2tQYXJhbXMge1xuICBzb3VyY2U6ICd1c2VyJyB8ICdiYWNrdXAnO1xuICBjb2luOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlS2V5Y2hhaW5DYWxsYmFja1Jlc3VsdCB7XG4gIHB1Yjogc3RyaW5nO1xuICB0eXBlOiAnaW5kZXBlbmRlbnQnO1xuICBzb3VyY2U6ICd1c2VyJyB8ICdiYWNrdXAnO1xufVxuXG5leHBvcnQgdHlwZSBDcmVhdGVLZXljaGFpbkNhbGxiYWNrID0gKHBhcmFtczogQ3JlYXRlS2V5Y2hhaW5DYWxsYmFja1BhcmFtcykgPT4gUHJvbWlzZTxDcmVhdGVLZXljaGFpbkNhbGxiYWNrUmVzdWx0PjtcblxuLyoqIFBlci1zb3VyY2UgZW5jcnlwdGVkIHNlc3Npb24gc3RhdGUgdGhyZWFkZWQgdGhyb3VnaCBNUEMgcm91bmRzIGJ5IHRoZSBleHRlcm5hbCBzaWduZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVybmFsU2lnbmVyTXBjU3RhdGUge1xuICBlbmNyeXB0ZWREYXRhOiBzdHJpbmc7XG4gIGVuY3J5cHRlZERhdGFLZXk6IHN0cmluZztcbn1cblxuLyoqIEEga2V5IHNoYXJlIHN1cHBsaWVkIGJ5IHRoZSBleHRlcm5hbCBzaWduZXIg4oCUIHJvdXRpbmcgZmllbGRzIChmcm9tL3RvKSBhcmUgYWRkZWQgYnkgdGhlIFNESy4gKi9cbmV4cG9ydCB0eXBlIEV4dGVybmFsU2lnbmVyS2V5U2hhcmUgPSBPbWl0PEFwaUtleVNoYXJlLCAnZnJvbScgfCAndG8nPiAmIHtcbiAgcHJpdmF0ZVNoYXJlUHJvb2Y6IHN0cmluZztcbiAgdnNzUHJvb2Y6IHN0cmluZztcbiAgZ3BnS2V5OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBFY2RzYU1QQ3YyS2V5R2VuSW5pdGlhbGl6ZUNhbGxiYWNrID0gKHBhcmFtczoge1xuICBlbnRlcnByaXNlOiBzdHJpbmc7XG4gIGJpdGdvUHVibGljR3BnS2V5OiBzdHJpbmc7XG59KSA9PiBQcm9taXNlPHtcbiAgdXNlckdwZ1B1YmxpY0tleTogc3RyaW5nO1xuICBiYWNrdXBHcGdQdWJsaWNLZXk6IHN0cmluZztcbiAgcm91bmQxTWVzc2FnZXM6IERrbHNUeXBlcy5BdXRoRW5jTWVzc2FnZXM7XG4gIHVzZXJTdGF0ZTogRXh0ZXJuYWxTaWduZXJNcGNTdGF0ZTtcbiAgYmFja3VwU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG59PjtcblxuZXhwb3J0IHR5cGUgRWNkc2FNUEN2MktleUdlblJvdW5kMkNhbGxiYWNrID0gKHBhcmFtczoge1xuICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgYml0Z29Nc2cxOiBNUEN2MkJyb2FkY2FzdE1lc3NhZ2U7XG4gIGJpdGdvVG9Vc2VyTXNnMjogTVBDdjJQMlBNZXNzYWdlO1xuICBiaXRnb1RvQmFja3VwTXNnMjogTVBDdjJQMlBNZXNzYWdlO1xuICB1c2VyU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG4gIGJhY2t1cFN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xufSkgPT4gUHJvbWlzZTx7XG4gIHJvdW5kMk1lc3NhZ2VzOiBEa2xzVHlwZXMuQXV0aEVuY01lc3NhZ2VzO1xuICB1c2VyU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG4gIGJhY2t1cFN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xufT47XG5cbmV4cG9ydCB0eXBlIEVjZHNhTVBDdjJLZXlHZW5Sb3VuZDNDYWxsYmFjayA9IChwYXJhbXM6IHtcbiAgc2Vzc2lvbklkOiBzdHJpbmc7XG4gIGJpdGdvQ29tbWl0bWVudDI6IHN0cmluZztcbiAgYml0Z29Ub1VzZXJNc2czOiBNUEN2MlAyUE1lc3NhZ2U7XG4gIGJpdGdvVG9CYWNrdXBNc2czOiBNUEN2MlAyUE1lc3NhZ2U7XG4gIHVzZXJTdGF0ZTogRXh0ZXJuYWxTaWduZXJNcGNTdGF0ZTtcbiAgYmFja3VwU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG59KSA9PiBQcm9taXNlPHtcbiAgcm91bmQzTWVzc2FnZXM6IERrbHNUeXBlcy5BdXRoRW5jTWVzc2FnZXM7XG4gIHVzZXJTdGF0ZTogRXh0ZXJuYWxTaWduZXJNcGNTdGF0ZTtcbiAgYmFja3VwU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG59PjtcblxuZXhwb3J0IHR5cGUgRWNkc2FNUEN2MktleUdlbkZpbmFsaXplQ2FsbGJhY2sgPSAocGFyYW1zOiB7XG4gIHNlc3Npb25JZDogc3RyaW5nO1xuICBiaXRnb01zZzQ6IE1QQ3YyQnJvYWRjYXN0TWVzc2FnZTtcbiAgYml0Z29Db21tb25LZXljaGFpbjogc3RyaW5nO1xuICB1c2VyU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG4gIGJhY2t1cFN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xufSkgPT4gUHJvbWlzZTx7IGNvbW1vbktleWNoYWluOiBzdHJpbmcgfT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWNkc2FNUEN2MktleUdlbkNhbGxiYWNrcyB7XG4gIGluaXRpYWxpemVDYWxsYmFjazogRWNkc2FNUEN2MktleUdlbkluaXRpYWxpemVDYWxsYmFjaztcbiAgcm91bmQyQ2FsbGJhY2s6IEVjZHNhTVBDdjJLZXlHZW5Sb3VuZDJDYWxsYmFjaztcbiAgcm91bmQzQ2FsbGJhY2s6IEVjZHNhTVBDdjJLZXlHZW5Sb3VuZDNDYWxsYmFjaztcbiAgZmluYWxpemVDYWxsYmFjazogRWNkc2FNUEN2MktleUdlbkZpbmFsaXplQ2FsbGJhY2s7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWRkc2FLZXlHZW5Jbml0aWFsaXplUmVzdWx0IHtcbiAgdXNlckdwZ1B1YmxpY0tleTogc3RyaW5nO1xuICBiYWNrdXBHcGdQdWJsaWNLZXk6IHN0cmluZztcbiAgdXNlclRvQml0Z29LZXlTaGFyZTogRXh0ZXJuYWxTaWduZXJLZXlTaGFyZTtcbiAgYmFja3VwVG9CaXRnb0tleVNoYXJlOiBFeHRlcm5hbFNpZ25lcktleVNoYXJlO1xuICB1c2VyU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG4gIGJhY2t1cFN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xuICBiYWNrdXBUb1VzZXJDb3VudGVyUGFydHlLZXlTaGFyZTogRXh0ZXJuYWxTaWduZXJLZXlTaGFyZTtcbn1cblxuZXhwb3J0IHR5cGUgRWRkc2FLZXlHZW5Jbml0aWFsaXplQ2FsbGJhY2sgPSAocGFyYW1zOiB7XG4gIGVudGVycHJpc2U6IHN0cmluZztcbiAgYml0Z29QdWJsaWNHcGdLZXk6IHN0cmluZztcbn0pID0+IFByb21pc2U8RWRkc2FLZXlHZW5Jbml0aWFsaXplUmVzdWx0PjtcblxuZXhwb3J0IHR5cGUgRWRkc2FLZXlHZW5GaW5hbGl6ZVJlc3VsdCA9IHtcbiAgY29tbW9uS2V5Y2hhaW46IHN0cmluZztcbiAgLyoqIFJlcXVpcmVkIHdoZW4gdGhlIGNhbGxiYWNrIGlzIGludm9rZWQgd2l0aCBzb3VyY2U6ICd1c2VyJzsgbXVzdCBiZSBvbWl0dGVkIGZvciBzb3VyY2U6ICdiYWNrdXAnLiAqL1xuICBjb3VudGVycGFydHlLZXlTaGFyZT86IEV4dGVybmFsU2lnbmVyS2V5U2hhcmU7XG59O1xuXG5leHBvcnQgdHlwZSBFZGRzYUtleUdlbkZpbmFsaXplQ2FsbGJhY2sgPSAocGFyYW1zOiB7XG4gIHNvdXJjZTogJ3VzZXInIHwgJ2JhY2t1cCc7XG4gIGNvaW46IHN0cmluZztcbiAgYml0Z29LZXljaGFpbjogS2V5Y2hhaW47XG4gIGNvdW50ZXJQYXJ0eUdQR0tleTogc3RyaW5nO1xuICBjb3VudGVyUGFydHlLZXlTaGFyZTogRXh0ZXJuYWxTaWduZXJLZXlTaGFyZTtcbiAgc3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG59KSA9PiBQcm9taXNlPEVkZHNhS2V5R2VuRmluYWxpemVSZXN1bHQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVkZHNhS2V5R2VuQ2FsbGJhY2tzIHtcbiAgaW5pdGlhbGl6ZUNhbGxiYWNrOiBFZGRzYUtleUdlbkluaXRpYWxpemVDYWxsYmFjaztcbiAgZmluYWxpemVDYWxsYmFjazogRWRkc2FLZXlHZW5GaW5hbGl6ZUNhbGxiYWNrO1xufVxuXG5leHBvcnQgdHlwZSBFZGRzYU1QQ3YyS2V5R2VuSW5pdGlhbGl6ZUNhbGxiYWNrID0gKHBhcmFtczoge1xuICBlbnRlcnByaXNlOiBzdHJpbmc7XG4gIGJpdGdvUHVibGljR3BnS2V5OiBzdHJpbmc7XG59KSA9PiBQcm9taXNlPHtcbiAgdXNlckdwZ1B1YmxpY0tleTogc3RyaW5nO1xuICBiYWNrdXBHcGdQdWJsaWNLZXk6IHN0cmluZztcbiAgdXNlclN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xuICBiYWNrdXBTdGF0ZTogRXh0ZXJuYWxTaWduZXJNcGNTdGF0ZTtcbn0+O1xuXG5leHBvcnQgdHlwZSBFZGRzYU1QQ3YyS2V5R2VuUm91bmQxQ2FsbGJhY2sgPSAocGFyYW1zOiB7XG4gIGJpdGdvUHVibGljR3BnS2V5OiBzdHJpbmc7XG4gIHVzZXJHcGdQdWJsaWNLZXk6IHN0cmluZztcbiAgYmFja3VwR3BnUHVibGljS2V5OiBzdHJpbmc7XG4gIHVzZXJTdGF0ZTogRXh0ZXJuYWxTaWduZXJNcGNTdGF0ZTtcbiAgYmFja3VwU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG59KSA9PiBQcm9taXNlPHtcbiAgdXNlclNpZ25lZE1zZzE6IE1QU1R5cGVzLk1QU1NpZ25lZE1lc3NhZ2U7XG4gIGJhY2t1cFNpZ25lZE1zZzE6IE1QU1R5cGVzLk1QU1NpZ25lZE1lc3NhZ2U7XG4gIHVzZXJTdGF0ZTogRXh0ZXJuYWxTaWduZXJNcGNTdGF0ZTtcbiAgYmFja3VwU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG59PjtcblxuZXhwb3J0IHR5cGUgRWRkc2FNUEN2MktleUdlblJvdW5kMkNhbGxiYWNrID0gKHBhcmFtczoge1xuICBiaXRnb01zZzE6IE1QU1R5cGVzLk1QU1NpZ25lZE1lc3NhZ2U7XG4gIHVzZXJTaWduZWRNc2cxOiBNUFNUeXBlcy5NUFNTaWduZWRNZXNzYWdlO1xuICBiYWNrdXBTaWduZWRNc2cxOiBNUFNUeXBlcy5NUFNTaWduZWRNZXNzYWdlO1xuICB1c2VyU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG4gIGJhY2t1cFN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xufSkgPT4gUHJvbWlzZTx7XG4gIHVzZXJTaWduZWRNc2cyOiBNUFNUeXBlcy5NUFNTaWduZWRNZXNzYWdlO1xuICBiYWNrdXBTaWduZWRNc2cyOiBNUFNUeXBlcy5NUFNTaWduZWRNZXNzYWdlO1xuICB1c2VyU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG4gIGJhY2t1cFN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xufT47XG5cbmV4cG9ydCB0eXBlIEVkZHNhTVBDdjJLZXlHZW5GaW5hbGl6ZUNhbGxiYWNrID0gKHBhcmFtczoge1xuICBiaXRnb01zZzI6IE1QU1R5cGVzLk1QU1NpZ25lZE1lc3NhZ2U7XG4gIGJpdGdvQ29tbW9uS2V5Y2hhaW46IHN0cmluZztcbiAgdXNlclN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xuICBiYWNrdXBTdGF0ZTogRXh0ZXJuYWxTaWduZXJNcGNTdGF0ZTtcbn0pID0+IFByb21pc2U8eyBjb21tb25LZXljaGFpbjogc3RyaW5nIH0+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVkZHNhTVBDdjJLZXlHZW5DYWxsYmFja3Mge1xuICBpbml0aWFsaXplQ2FsbGJhY2s6IEVkZHNhTVBDdjJLZXlHZW5Jbml0aWFsaXplQ2FsbGJhY2s7XG4gIHJvdW5kMUNhbGxiYWNrOiBFZGRzYU1QQ3YyS2V5R2VuUm91bmQxQ2FsbGJhY2s7XG4gIHJvdW5kMkNhbGxiYWNrOiBFZGRzYU1QQ3YyS2V5R2VuUm91bmQyQ2FsbGJhY2s7XG4gIGZpbmFsaXplQ2FsbGJhY2s6IEVkZHNhTVBDdjJLZXlHZW5GaW5hbGl6ZUNhbGxiYWNrO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlV2FsbGV0T3B0aW9ucyB7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBwYXNzcGhyYXNlPzogc3RyaW5nO1xuICB1c2VyS2V5Pzogc3RyaW5nO1xuICBiYWNrdXBYcHViPzogc3RyaW5nO1xuICBiYWNrdXBYcHViUHJvdmlkZXI/OiBzdHJpbmc7XG4gIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gIGVudGVycHJpc2U/OiBzdHJpbmc7XG4gIGRpc2FibGVUcmFuc2FjdGlvbk5vdGlmaWNhdGlvbnM/OiBib29sZWFuO1xuICBnYXNQcmljZT86IG51bWJlcjtcbiAgZWlwMTU1OT86IHtcbiAgICBtYXhGZWVQZXJHYXM6IHN0cmluZztcbiAgICBtYXhQcmlvcml0eUZlZVBlckdhczogc3RyaW5nO1xuICB9O1xuICB3YWxsZXRWZXJzaW9uPzogbnVtYmVyO1xuICBkaXNhYmxlS1JTRW1haWw/OiBib29sZWFuO1xuICBrcnNTcGVjaWZpYz86IHtcbiAgICBbaW5kZXg6IHN0cmluZ106IGJvb2xlYW4gfCBzdHJpbmcgfCBudW1iZXI7XG4gIH07XG4gIGNvbGREZXJpdmF0aW9uU2VlZD86IHN0cmluZztcbiAgcm9vdFByaXZhdGVLZXk/OiBzdHJpbmc7XG4gIG11bHRpc2lnVHlwZT86ICdvbmNoYWluJyB8ICd0c3MnIHwgJ2Jsc2RrZyc7XG4gIGlzRGlzdHJpYnV0ZWRDdXN0b2R5PzogYm9vbGVhbjtcbiAgYml0Z29LZXlJZD86IHN0cmluZztcbiAgY29tbW9uS2V5Y2hhaW4/OiBzdHJpbmc7XG4gIHR5cGU/OiAnaG90JyB8ICdjb2xkJyB8ICdjdXN0b2RpYWwnIHwgJ3RyYWRpbmcnIHwgJ2FkdmFuY2VkJztcbiAgc3ViVHlwZT86ICdsaWdodG5pbmdDdXN0b2R5JyB8ICdsaWdodG5pbmdTZWxmQ3VzdG9keSc7XG4gIGV2bUtleVJpbmdSZWZlcmVuY2VXYWxsZXRJZD86IHN0cmluZztcbiAgbGlnaHRuaW5nUHJvdmlkZXI/OiAnYW1ib3NzJyB8ICd2b2x0YWdlJztcbiAgLyoqIE9wdGlvbmFsIFdlYkF1dGhuIFBSRi1iYXNlZCBlbmNyeXB0aW9uIGluZm8uIFdoZW4gcHJvdmlkZWQsIHRoZSB1c2VyIHByaXZhdGUga2V5IGlzIGFkZGl0aW9uYWxseSBlbmNyeXB0ZWQgd2l0aCB0aGUgUFJGLWRlcml2ZWQgcGFzc3BocmFzZSBzbyB0aGUgc2VydmVyIGNhbiBzdG9yZSBhIFdlYkF1dGhuLXByb3RlY3RlZCBjb3B5LiAqL1xuICB3ZWJhdXRobkluZm8/OiBXZWJhdXRobktleUVuY3J5cHRpb25JbmZvO1xuICBlbmNyeXB0aW9uVmVyc2lvbj86IEVuY3J5cHRpb25WZXJzaW9uO1xuICAvKiogRGVsZWdhdGVzIHVzZXIvYmFja3VwIGtleSBjcmVhdGlvbiB0byBhbiBleHRlcm5hbCBzaWduZXIgKG9uY2hhaW4gbXVsdGlzaWcgb25seSkuICovXG4gIGNyZWF0ZUtleWNoYWluQ2FsbGJhY2s/OiBDcmVhdGVLZXljaGFpbkNhbGxiYWNrO1xuICAvKiogT0ZDIG9ubHkuIFdoZW4gZmFsc2UsIEJpdEdvIHNpZ25zIE9GQyBwYXlsb2FkcyBvbiBiZWhhbGYgb2YgdGhlIHVzZXIgd2l0aG91dCByZXF1aXJpbmcgYSB1c2VyLWtleSBzaWduYXR1cmUuIERlZmF1bHRzIHRvIHRydWUgKHVzZXIgbXVzdCBzaWduKS4gKi9cbiAgdXNlcktleVNpZ25pbmdSZXF1aXJlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVXYWxsZXRXaXRoRXh0ZXJuYWxTaWduZXJPcHRpb25zXG4gIGV4dGVuZHMgT21pdDxHZW5lcmF0ZVdhbGxldE9wdGlvbnMsICdwYXNzcGhyYXNlJyB8ICd1c2VyS2V5JyB8ICdiYWNrdXBYcHViJyB8ICdiYWNrdXBYcHViUHJvdmlkZXInPiB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGNyZWF0ZUtleWNoYWluQ2FsbGJhY2s/OiBDcmVhdGVLZXljaGFpbkNhbGxiYWNrO1xuICAvKiogT3B0aW9uYWwgdXNlci1rZXkgc2lnbmF0dXJlcyBvdmVyIGJhY2t1cC9iaXRnbyBwdWJzLiBPbWl0IHdoZW4gdGhlIGV4dGVybmFsIHNpZ25lciBjYW5ub3QgcHJvZHVjZSB0aGVtIChlcXVpdmFsZW50IHRvIGEgY29sZCB3YWxsZXQpLiAqL1xuICBrZXlTaWduYXR1cmVzPzogeyBiYWNrdXA6IHN0cmluZzsgYml0Z286IHN0cmluZyB9O1xuICBlY2RzYU1QQ3YyQ2FsbGJhY2tzPzogRWNkc2FNUEN2MktleUdlbkNhbGxiYWNrcztcbiAgZWRkc2FDYWxsYmFja3M/OiBFZGRzYUtleUdlbkNhbGxiYWNrcztcbn1cblxuZXhwb3J0IGNvbnN0IEdlbmVyYXRlTGlnaHRuaW5nV2FsbGV0T3B0aW9uc0NvZGVjID0gdC5pbnRlcnNlY3Rpb24oXG4gIFtcbiAgICB0LnN0cmljdCh7XG4gICAgICBsYWJlbDogdC5zdHJpbmcsXG4gICAgICBwYXNzcGhyYXNlOiB0LnN0cmluZyxcbiAgICAgIGVudGVycHJpc2U6IHQuc3RyaW5nLFxuICAgICAgcGFzc2NvZGVFbmNyeXB0aW9uQ29kZTogdC5zdHJpbmcsXG4gICAgICBzdWJUeXBlOiB0LnVuaW9uKFt0LmxpdGVyYWwoJ2xpZ2h0bmluZ0N1c3RvZHknKSwgdC5saXRlcmFsKCdsaWdodG5pbmdTZWxmQ3VzdG9keScpXSksXG4gICAgfSksXG4gICAgdC5wYXJ0aWFsKHtcbiAgICAgIGxpZ2h0bmluZ1Byb3ZpZGVyOiB0LnVuaW9uKFt0LmxpdGVyYWwoJ2FtYm9zcycpLCB0LmxpdGVyYWwoJ3ZvbHRhZ2UnKV0pLFxuICAgICAgLy8gMSBpcyBhY2NlcHRlZCBkdXJpbmcgdGhlIHYyLWRlY3J5cHQgcm9sbG91dCB3aW5kb3c6IHNvbWUgVUkvU0RLIGNvbnN1bWVycyBjYW4ndFxuICAgICAgLy8gZGVjcnlwdCB2MiBlbnZlbG9wZXMgeWV0LCBzbyBjYWxsZXJzIG1heSBzdGlsbCBuZWVkIHRvIGZvcmNlIHYxIGV4cGxpY2l0bHkuXG4gICAgICBlbmNyeXB0aW9uVmVyc2lvbjogdC51bmlvbihbdC5saXRlcmFsKDEpLCB0LmxpdGVyYWwoMildKSxcbiAgICB9KSxcbiAgXSxcbiAgJ0dlbmVyYXRlTGlnaHRuaW5nV2FsbGV0T3B0aW9ucydcbik7XG5leHBvcnQgdHlwZSBHZW5lcmF0ZUxpZ2h0bmluZ1dhbGxldE9wdGlvbnMgPSB0LlR5cGVPZjx0eXBlb2YgR2VuZXJhdGVMaWdodG5pbmdXYWxsZXRPcHRpb25zQ29kZWM+O1xuXG5jb25zdCBHZW5lcmF0ZUdvQWNjb3VudFdhbGxldEJhc2VPcHRpb25zQ29kZWMgPSB0LmludGVyc2VjdGlvbihbXG4gIHQuc3RyaWN0KHtcbiAgICBsYWJlbDogdC5zdHJpbmcsXG4gICAgZW50ZXJwcmlzZTogdC5zdHJpbmcsXG4gICAgdHlwZTogdC5saXRlcmFsKCd0cmFkaW5nJyksXG4gIH0pLFxuICB0LnBhcnRpYWwoe1xuICAgIC8vIENvZGVjIGludGVudGlvbmFsbHkgYWNjZXB0cyBvbmx5IDI6IHYxIGlzIHRoZSBpbXBsaWNpdCBkZWZhdWx0IGFuZCBuZXZlciBzZW50IG9uIHRoZSB3aXJlLlxuICAgIGVuY3J5cHRpb25WZXJzaW9uOiB0LmxpdGVyYWwoMiksXG4gIH0pLFxuXSk7XG5cbmNvbnN0IEdlbmVyYXRlR29BY2NvdW50V2FsbGV0UGFzc3dvcmRPcHRpb25zQ29kZWMgPSB0LmludGVyc2VjdGlvbihbXG4gIHQuc3RyaWN0KHtcbiAgICBwYXNzcGhyYXNlOiB0LnN0cmluZyxcbiAgICBwYXNzY29kZUVuY3J5cHRpb25Db2RlOiB0LnN0cmluZyxcbiAgfSksXG4gIHQucGFydGlhbCh7XG4gICAgdXNlcktleVNpZ25pbmdSZXF1aXJlZDogdC5ib29sZWFuLFxuICB9KSxcbl0pO1xuXG5jb25zdCBHZW5lcmF0ZUdvQWNjb3VudFdhbGxldFBhc3N3b3JkbGVzc09wdGlvbnNDb2RlYyA9IHQuaW50ZXJzZWN0aW9uKFtcbiAgdC5zdHJpY3Qoe1xuICAgIHVzZXJLZXlTaWduaW5nUmVxdWlyZWQ6IHQubGl0ZXJhbChmYWxzZSksXG4gIH0pLFxuICB0LnBhcnRpYWwoe1xuICAgIHBhc3NwaHJhc2U6IHQudW5kZWZpbmVkLFxuICAgIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGU6IHQudW5kZWZpbmVkLFxuICB9KSxcbl0pO1xuXG5leHBvcnQgY29uc3QgR2VuZXJhdGVHb0FjY291bnRXYWxsZXRPcHRpb25zQ29kZWMgPSB0LmludGVyc2VjdGlvbihcbiAgW1xuICAgIEdlbmVyYXRlR29BY2NvdW50V2FsbGV0QmFzZU9wdGlvbnNDb2RlYyxcbiAgICB0LnVuaW9uKFtHZW5lcmF0ZUdvQWNjb3VudFdhbGxldFBhc3N3b3JkT3B0aW9uc0NvZGVjLCBHZW5lcmF0ZUdvQWNjb3VudFdhbGxldFBhc3N3b3JkbGVzc09wdGlvbnNDb2RlY10pLFxuICBdLFxuICAnR2VuZXJhdGVHb0FjY291bnRXYWxsZXRPcHRpb25zJ1xuKTtcblxuZXhwb3J0IHR5cGUgR2VuZXJhdGVHb0FjY291bnRXYWxsZXRPcHRpb25zID0gdC5UeXBlT2Y8dHlwZW9mIEdlbmVyYXRlR29BY2NvdW50V2FsbGV0T3B0aW9uc0NvZGVjPjtcblxuZXhwb3J0IGludGVyZmFjZSBHZXRXYWxsZXRCeUFkZHJlc3NPcHRpb25zIHtcbiAgYWRkcmVzcz86IHN0cmluZztcbiAgcmVxSWQ/OiBJUmVxdWVzdFRyYWNlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVTaGFyZU9wdGlvbnMge1xuICB3YWxsZXRTaGFyZUlkPzogc3RyaW5nO1xuICBzdGF0ZT86IHN0cmluZztcbiAgZW5jcnlwdGVkUHJ2Pzogc3RyaW5nO1xuICBrZXlJZD86IHN0cmluZztcbiAgc2lnbmF0dXJlPzogc3RyaW5nO1xuICBwYXlsb2FkPzogc3RyaW5nO1xuICBwdWI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZXB0U2hhcmVPcHRpb25zIHtcbiAgb3ZlcnJpZGVFbmNyeXB0ZWRQcnY/OiBzdHJpbmc7XG4gIHdhbGxldFNoYXJlSWQ/OiBzdHJpbmc7XG4gIHVzZXJQYXNzd29yZD86IHN0cmluZztcbiAgbmV3V2FsbGV0UGFzc3BocmFzZT86IHN0cmluZztcbiAgZW5jcnlwdGlvblZlcnNpb24/OiBFbmNyeXB0aW9uVmVyc2lvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWxrQWNjZXB0U2hhcmVPcHRpb25zIHtcbiAgd2FsbGV0U2hhcmVJZHM6IHN0cmluZ1tdO1xuICB1c2VyTG9naW5QYXNzd29yZDogc3RyaW5nO1xuICBuZXdXYWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xuICB3ZWJhdXRobkluZm8/OiBXZWJhdXRobktleUVuY3J5cHRpb25JbmZvO1xuICBlbmNyeXB0aW9uVmVyc2lvbj86IEVuY3J5cHRpb25WZXJzaW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY2VwdFNoYXJlT3B0aW9uc1JlcXVlc3Qge1xuICB3YWxsZXRTaGFyZUlkOiBzdHJpbmc7XG4gIGVuY3J5cHRlZFBydjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHB1YmxpYyBhc3NvY2lhdGVkIHRvIHRoZSBlbmNyeXB0ZWQgcHJpdmF0ZSBrZXkuXG4gICAqIFJlcXVpcmVkIGZvciB1c2VyTXVsdGlLZXlSb3RhdGlvblJlcXVpcmVkIHNoYXJlcy5cbiAgICovXG4gIHB1Yj86IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIFdlYkF1dGhuIFBSRi1iYXNlZCBlbmNyeXB0aW9uIGluZm8uXG4gICAqIFdoZW4gcHJvdmlkZWQsIHRoZSB3YWxsZXQgcHJpdmF0ZSBrZXkgaXMgYWRkaXRpb25hbGx5IGVuY3J5cHRlZCB3aXRoIHRoZVxuICAgKiBQUkYtZGVyaXZlZCBwYXNzcGhyYXNlIHNvIHRoZSBzZXJ2ZXIgY2FuIHN0b3JlIGEgV2ViQXV0aG4tcHJvdGVjdGVkIGNvcHkuXG4gICAqIFRoZSBwYXNzcGhyYXNlIGl0c2VsZiBpcyBuZXZlciBzZW50IHRvIHRoZSBzZXJ2ZXIuXG4gICAqL1xuICB3ZWJhdXRobkluZm8/OiBXZWJhdXRobkluZm87XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVsa1VwZGF0ZVdhbGxldFNoYXJlT3B0aW9ucyB7XG4gIHNoYXJlczoge1xuICAgIHdhbGxldFNoYXJlSWQ6IHN0cmluZztcbiAgICBzdGF0dXM6ICdhY2NlcHQnIHwgJ3JlamVjdCc7XG4gIH1bXTtcbiAgdXNlckxvZ2luUGFzc3dvcmQ/OiBzdHJpbmc7XG4gIG5ld1dhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG4gIGVuY3J5cHRpb25WZXJzaW9uPzogRW5jcnlwdGlvblZlcnNpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVsa1VwZGF0ZVdhbGxldFNoYXJlT3B0aW9uc1JlcXVlc3Qge1xuICB3YWxsZXRTaGFyZUlkOiBzdHJpbmc7XG4gIGVuY3J5cHRlZFBydj86IHN0cmluZztcbiAgc3RhdHVzOiAnYWNjZXB0JyB8ICdyZWplY3QnO1xuICBrZXlJZD86IHN0cmluZztcbiAgc2lnbmF0dXJlPzogc3RyaW5nO1xuICBwYXlsb2FkPzogc3RyaW5nO1xuICBwdWI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVsa1VwZGF0ZVdhbGxldFNoYXJlUmVzcG9uc2Uge1xuICBhY2NlcHRlZFdhbGxldFNoYXJlczogc3RyaW5nW107XG4gIHJlamVjdGVkV2FsbGV0U2hhcmVzOiBzdHJpbmdbXTtcbiAgd2FsbGV0U2hhcmVVcGRhdGVFcnJvcnM6IHtcbiAgICB3YWxsZXRTaGFyZUlkOiBzdHJpbmc7XG4gICAgcmVhc29uOiBzdHJpbmc7XG4gIH1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRXYWxsZXRPcHRpb25zIHtcbiAgY29pblNwZWNpZmljPzogYW55O1xuICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICBpc0NvbGQ/OiBJc0NvbGQ7XG4gIGlzQ3VzdG9kaWFsPzogSXNDdXN0b2RpYWw7XG4gIGtleXM/OiBzdHJpbmdbXTtcbiAga2V5U2lnbmF0dXJlcz86IEtleVNpZ25hdHVyZXM7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG11bHRpc2lnVHlwZT86ICdvbmNoYWluJyB8ICd0c3MnIHwgJ2Jsc2RrZyc7XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIG0/OiBudW1iZXI7XG4gIG4/OiBudW1iZXI7XG4gIHRhZ3M/OiBzdHJpbmdbXTtcbiAgdHlwZT86IHN0cmluZztcbiAgd2FsbGV0VmVyc2lvbj86IG51bWJlcjtcbiAgZWlwMTU1OT86IEVpcDE1NTk7XG4gIGNsaWVudEZsYWdzPzogc3RyaW5nW107XG4gIC8vIEFkZGl0aW9uYWwgcGFyYW1zIG5lZWRlZCBmb3IgeHJwXG4gIHJvb3RQdWI/OiBzdHJpbmc7XG4gIC8vIEluIFhSUCwgWExNIGFuZCBDU1BSIHRoaXMgcHJpdmF0ZSBrZXkgaXMgdXNlZCBvbmx5IGZvciB3YWxsZXQgY3JlYXRpb24gcHVycG9zZXMsXG4gIC8vIG9uY2UgdGhlIHdhbGxldCBpcyBpbml0aWFsaXplZCB0aGVuIHdlIHVwZGF0ZSBpdHMgd2VpZ2h0IHRvIDAgbWFraW5nIGl0IGFuIGludmFsaWQga2V5LlxuICAvLyBodHRwczovL3d3dy5zdGVsbGFyLm9yZy9kZXZlbG9wZXJzL2d1aWRlcy9jb25jZXB0cy9tdWx0aS1zaWcuaHRtbCNhZGRpdGlvbmFsLXNpZ25pbmcta2V5c1xuICByb290UHJpdmF0ZUtleT86IHN0cmluZztcbiAgaW5pdGlhbGl6YXRpb25UeHM/OiBhbnk7XG4gIGRpc2FibGVUcmFuc2FjdGlvbk5vdGlmaWNhdGlvbnM/OiBib29sZWFuO1xuICBnYXNQcmljZT86IG51bWJlcjtcbiAgZXZtS2V5UmluZ1JlZmVyZW5jZVdhbGxldElkPzogc3RyaW5nO1xufVxuXG50eXBlIEtleVNpZ25hdHVyZXMgPSB7XG4gIGJhY2t1cD86IHN0cmluZztcbiAgYml0Z28/OiBzdHJpbmc7XG59O1xuXG4vKiogQGRlcHJlY2F0ZWQgKi9cbnR5cGUgSXNDb2xkID0gYm9vbGVhbjtcblxuLyoqIEBkZXByZWNhdGVkICovXG50eXBlIElzQ3VzdG9kaWFsID0gYm9vbGVhbjtcblxudHlwZSBFaXAxNTU5ID0ge1xuICBtYXhQcmlvcml0eUZlZVBlckdhczogc3RyaW5nO1xuICBtYXhGZWVQZXJHYXM6IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFdhbGxldE9wdGlvbnMgZXh0ZW5kcyBQYWdpbmF0aW9uT3B0aW9ucyB7XG4gIHNraXA/OiBudW1iZXI7XG4gIGdldGJhbGFuY2VzPzogYm9vbGVhbjtcbiAgYWxsVG9rZW5zPzogYm9vbGVhbjtcbiAgc2tpcFJlY2VpdmVBZGRyZXNzPzogYm9vbGVhbjsgLy8gSWYgc2tpcFJlY2VpdmVBZGRyZXNzIGlzIHNldCB0byB0cnVlLCB0aGUgcmVjZWl2ZUFkZHJlc3MgcHJvcGVydHkgd2lsbCBub3QgYmUgcmV0dXJuZWQgaW4gdGhlIHdhbGxldCBvYmplY3QuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2FsbGV0U2hhcmVzIHtcbiAgaW5jb21pbmc6IFdhbGxldFNoYXJlW107IC8vIFdhbGxldFNoYXJlcyB0aGF0IHRoZSB1c2VyIGhhcyB0byBhY2NlcHRcbiAgb3V0Z29pbmc6IFdhbGxldFNoYXJlW107IC8vIFdhbGxldFNoYXJlcyB0aGF0IHRoZSB1c2VyIGhhcyBjcmVhdGVkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZXB0U2hhcmVSZXNwb25zZSB7XG4gIHdhbGxldFNoYXJlSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWxrQWNjZXB0U2hhcmVSZXNwb25zZSB7XG4gIGFjY2VwdGVkV2FsbGV0U2hhcmVzOiBBY2NlcHRTaGFyZVJlc3BvbnNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVdhbGxldHMge1xuICBnZXQocGFyYW1zPzogR2V0V2FsbGV0T3B0aW9ucyk6IFByb21pc2U8V2FsbGV0PjtcbiAgbGlzdChwYXJhbXM/OiBMaXN0V2FsbGV0T3B0aW9ucyk6IFByb21pc2U8eyB3YWxsZXRzOiBJV2FsbGV0W10gfT47XG4gIGFkZChwYXJhbXM/OiBBZGRXYWxsZXRPcHRpb25zKTogUHJvbWlzZTxhbnk+O1xuICBnZW5lcmF0ZVdhbGxldChcbiAgICBwYXJhbXM/OiBHZW5lcmF0ZVdhbGxldE9wdGlvbnNcbiAgKTogUHJvbWlzZTxXYWxsZXRXaXRoS2V5Y2hhaW5zIHwgTGlnaHRuaW5nV2FsbGV0V2l0aEtleWNoYWlucyB8IEdvQWNjb3VudFdhbGxldFdpdGhVc2VyS2V5Y2hhaW4+O1xuICBnZW5lcmF0ZVdhbGxldFdpdGhFeHRlcm5hbFNpZ25lcihwYXJhbXM6IEdlbmVyYXRlV2FsbGV0V2l0aEV4dGVybmFsU2lnbmVyT3B0aW9ucyk6IFByb21pc2U8V2FsbGV0V2l0aEtleWNoYWlucz47XG4gIGxpc3RTaGFyZXMocGFyYW1zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBQcm9taXNlPGFueT47XG4gIGdldFNoYXJlKHBhcmFtcz86IHsgd2FsbGV0U2hhcmVJZD86IHN0cmluZyB9KTogUHJvbWlzZTxhbnk+O1xuICB1cGRhdGVTaGFyZShwYXJhbXM/OiBVcGRhdGVTaGFyZU9wdGlvbnMpOiBQcm9taXNlPGFueT47XG4gIHJlc2VuZFNoYXJlSW52aXRlKHBhcmFtcz86IHsgd2FsbGV0U2hhcmVJZD86IHN0cmluZyB9KTogUHJvbWlzZTxhbnk+O1xuICBjYW5jZWxTaGFyZShwYXJhbXM/OiB7IHdhbGxldFNoYXJlSWQ/OiBzdHJpbmcgfSk6IFByb21pc2U8YW55PjtcbiAgYWNjZXB0U2hhcmUocGFyYW1zPzogQWNjZXB0U2hhcmVPcHRpb25zKTogUHJvbWlzZTxhbnk+O1xuICBnZXRXYWxsZXQocGFyYW1zPzogR2V0V2FsbGV0T3B0aW9ucyk6IFByb21pc2U8SVdhbGxldD47XG4gIGdldFdhbGxldEJ5QWRkcmVzcyhwYXJhbXM/OiBHZXRXYWxsZXRCeUFkZHJlc3NPcHRpb25zKTogUHJvbWlzZTxJV2FsbGV0PjtcbiAgZ2V0VG90YWxCYWxhbmNlcyhwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj4pOiBQcm9taXNlPGFueT47XG4gIGJ1bGtBY2NlcHRTaGFyZShwYXJhbXM6IEJ1bGtBY2NlcHRTaGFyZU9wdGlvbnMpOiBQcm9taXNlPEJ1bGtBY2NlcHRTaGFyZVJlc3BvbnNlPjtcbiAgbGlzdFNoYXJlc1YyKCk6IFByb21pc2U8V2FsbGV0U2hhcmVzPjtcbn1cbiJdfQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaVdhbGxldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vd2FsbGV0L2lXYWxsZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUEyQjtBQXlSZCxRQUFBLG1DQUFtQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQy9EO0lBQ0UsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNQLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNmLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNwQixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDcEIsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDaEMsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7S0FDckYsQ0FBQztJQUNGLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDUixpQkFBaUIsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDdkUsa0ZBQWtGO1FBQ2xGLDhFQUE4RTtRQUM5RSxpQkFBaUIsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDekQsQ0FBQztDQUNILEVBQ0QsZ0NBQWdDLENBQ2pDLENBQUM7QUFHRixNQUFNLHVDQUF1QyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDN0QsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNQLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNmLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNwQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7S0FDM0IsQ0FBQztJQUNGLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDUiw2RkFBNkY7UUFDN0YsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7S0FDaEMsQ0FBQztDQUNILENBQUMsQ0FBQztBQUVILE1BQU0sMkNBQTJDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUNqRSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1AsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNO1FBQ3BCLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxNQUFNO0tBQ2pDLENBQUM7SUFDRixDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ1Isc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLE9BQU87S0FDbEMsQ0FBQztDQUNILENBQUMsQ0FBQztBQUVILE1BQU0sK0NBQStDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUNyRSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1Asc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7S0FDekMsQ0FBQztJQUNGLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDUixVQUFVLEVBQUUsQ0FBQyxDQUFDLFNBQVM7UUFDdkIsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLFNBQVM7S0FDcEMsQ0FBQztDQUNILENBQUMsQ0FBQztBQUVVLFFBQUEsbUNBQW1DLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FDL0Q7SUFDRSx1Q0FBdUM7SUFDdkMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLDJDQUEyQyxFQUFFLCtDQUErQyxDQUFDLENBQUM7Q0FDeEcsRUFDRCxnQ0FBZ0MsQ0FDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuaW1wb3J0IHsgRGtsc1R5cGVzLCBNUFNUeXBlcyB9IGZyb20gJ0BiaXRnby9zZGstbGliLW1wYyc7XG5pbXBvcnQgeyBNUEN2MkJyb2FkY2FzdE1lc3NhZ2UsIE1QQ3YyUDJQTWVzc2FnZSB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuXG5pbXBvcnQgeyBFbmNyeXB0aW9uVmVyc2lvbiwgSVJlcXVlc3RUcmFjZXIgfSBmcm9tICcuLi8uLi9hcGknO1xuaW1wb3J0IHsgS2V5Y2hhaW5zVHJpcGxldCwgTGlnaHRuaW5nS2V5Y2hhaW5zVHJpcGxldCB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEFwaUtleVNoYXJlLCBLZXljaGFpbiwgV2ViYXV0aG5JbmZvIH0gZnJvbSAnLi4va2V5Y2hhaW4nO1xuaW1wb3J0IHsgSVdhbGxldCwgUGFnaW5hdGlvbk9wdGlvbnMsIFdhbGxldFNoYXJlIH0gZnJvbSAnLi9pV2FsbGV0JztcbmltcG9ydCB7IFdhbGxldCB9IGZyb20gJy4vd2FsbGV0JztcblxuZXhwb3J0IGludGVyZmFjZSBXYWxsZXRXaXRoS2V5Y2hhaW5zIGV4dGVuZHMgS2V5Y2hhaW5zVHJpcGxldCB7XG4gIHJlc3BvbnNlVHlwZTogJ1dhbGxldFdpdGhLZXljaGFpbnMnO1xuICB3YWxsZXQ6IElXYWxsZXQ7XG4gIHdhcm5pbmc/OiBzdHJpbmc7XG4gIGVuY3J5cHRlZFdhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlnaHRuaW5nV2FsbGV0V2l0aEtleWNoYWlucyBleHRlbmRzIExpZ2h0bmluZ0tleWNoYWluc1RyaXBsZXQge1xuICByZXNwb25zZVR5cGU6ICdMaWdodG5pbmdXYWxsZXRXaXRoS2V5Y2hhaW5zJztcbiAgd2FsbGV0OiBJV2FsbGV0O1xuICB3YXJuaW5nPzogc3RyaW5nO1xuICBlbmNyeXB0ZWRXYWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdvQWNjb3VudFdhbGxldFdpdGhVc2VyS2V5Y2hhaW4ge1xuICByZXNwb25zZVR5cGU6ICdHb0FjY291bnRXYWxsZXRXaXRoVXNlcktleWNoYWluJztcbiAgd2FsbGV0OiBJV2FsbGV0O1xuICB1c2VyS2V5Y2hhaW46IEtleWNoYWluO1xuICB3YXJuaW5nPzogc3RyaW5nO1xuICBlbmNyeXB0ZWRXYWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFdhbGxldE9wdGlvbnMge1xuICBhbGxUb2tlbnM/OiBib29sZWFuO1xuICByZXFJZD86IElSZXF1ZXN0VHJhY2VyO1xuICBpZD86IHN0cmluZztcbiAgaW5jbHVkZUJhbGFuY2U/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlQmFzZU1wY1dhbGxldE9wdGlvbnMge1xuICBtdWx0aXNpZ1R5cGU6ICd0c3MnO1xuICBpc1NoaWVsZGVkPzogYm9vbGVhbjtcbiAgbGFiZWw6IHN0cmluZztcbiAgZW50ZXJwcmlzZTogc3RyaW5nO1xuICB3YWxsZXRWZXJzaW9uPzogbnVtYmVyO1xufVxuXG4vKiogV2ViQXV0aG4gUFJGLWJhc2VkIGVuY3J5cHRpb24gaW5mbyBmb3IgYXR0YWNoaW5nIGEgaGFyZHdhcmUgYXV0aGVudGljYXRvciB0byBhIGtleS5cbiAqIFRoZSBwYXNzcGhyYXNlIGlzIHRoZSBQUkYtZGVyaXZlZCBrZXkgdXNlZCB0byBlbmNyeXB0IHRoZSB1c2VyIHByaXZhdGUga2V5L3NoYXJlXG4gKiBiZWZvcmUgaXQgaXMgcGVyc2lzdGVkLiBOZXZlciBzZW50IHRvIHRoZSBzZXJ2ZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIFdlYmF1dGhuS2V5RW5jcnlwdGlvbkluZm8ge1xuICBvdHBEZXZpY2VJZDogc3RyaW5nO1xuICBwcmZTYWx0OiBzdHJpbmc7XG4gIHBhc3NwaHJhc2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZU1wY1dhbGxldE9wdGlvbnMgZXh0ZW5kcyBHZW5lcmF0ZUJhc2VNcGNXYWxsZXRPcHRpb25zIHtcbiAgcGFzc3BocmFzZTogc3RyaW5nO1xuICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gIHdlYmF1dGhuSW5mbz86IFdlYmF1dGhuS2V5RW5jcnlwdGlvbkluZm87XG4gIGVuY3J5cHRpb25WZXJzaW9uPzogRW5jcnlwdGlvblZlcnNpb247XG59XG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlU01DTXBjV2FsbGV0T3B0aW9ucyBleHRlbmRzIEdlbmVyYXRlQmFzZU1wY1dhbGxldE9wdGlvbnMge1xuICBiaXRnb0tleUlkOiBzdHJpbmc7XG4gIGNvbW1vbktleWNoYWluOiBzdHJpbmc7XG4gIGNvbGREZXJpdmF0aW9uU2VlZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVLZXljaGFpbkNhbGxiYWNrUGFyYW1zIHtcbiAgc291cmNlOiAndXNlcicgfCAnYmFja3VwJztcbiAgY29pbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUtleWNoYWluQ2FsbGJhY2tSZXN1bHQge1xuICBwdWI6IHN0cmluZztcbiAgdHlwZTogJ2luZGVwZW5kZW50JztcbiAgc291cmNlOiAndXNlcicgfCAnYmFja3VwJztcbn1cblxuZXhwb3J0IHR5cGUgQ3JlYXRlS2V5Y2hhaW5DYWxsYmFjayA9IChwYXJhbXM6IENyZWF0ZUtleWNoYWluQ2FsbGJhY2tQYXJhbXMpID0+IFByb21pc2U8Q3JlYXRlS2V5Y2hhaW5DYWxsYmFja1Jlc3VsdD47XG5cbi8qKiBQZXItc291cmNlIGVuY3J5cHRlZCBzZXNzaW9uIHN0YXRlIHRocmVhZGVkIHRocm91Z2ggTVBDIHJvdW5kcyBieSB0aGUgZXh0ZXJuYWwgc2lnbmVyLiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRlcm5hbFNpZ25lck1wY1N0YXRlIHtcbiAgZW5jcnlwdGVkRGF0YTogc3RyaW5nO1xuICBlbmNyeXB0ZWREYXRhS2V5OiBzdHJpbmc7XG59XG5cbi8qKiBBIGtleSBzaGFyZSBzdXBwbGllZCBieSB0aGUgZXh0ZXJuYWwgc2lnbmVyIOKAlCByb3V0aW5nIGZpZWxkcyAoZnJvbS90bykgYXJlIGFkZGVkIGJ5IHRoZSBTREsuICovXG5leHBvcnQgdHlwZSBFeHRlcm5hbFNpZ25lcktleVNoYXJlID0gT21pdDxBcGlLZXlTaGFyZSwgJ2Zyb20nIHwgJ3RvJz4gJiB7XG4gIHByaXZhdGVTaGFyZVByb29mOiBzdHJpbmc7XG4gIHZzc1Byb29mOiBzdHJpbmc7XG4gIGdwZ0tleTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgRWNkc2FNUEN2MktleUdlbkluaXRpYWxpemVDYWxsYmFjayA9IChwYXJhbXM6IHtcbiAgZW50ZXJwcmlzZTogc3RyaW5nO1xuICBiaXRnb1B1YmxpY0dwZ0tleTogc3RyaW5nO1xufSkgPT4gUHJvbWlzZTx7XG4gIHVzZXJHcGdQdWJsaWNLZXk6IHN0cmluZztcbiAgYmFja3VwR3BnUHVibGljS2V5OiBzdHJpbmc7XG4gIHJvdW5kMU1lc3NhZ2VzOiBEa2xzVHlwZXMuQXV0aEVuY01lc3NhZ2VzO1xuICB1c2VyU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG4gIGJhY2t1cFN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xufT47XG5cbmV4cG9ydCB0eXBlIEVjZHNhTVBDdjJLZXlHZW5Sb3VuZDJDYWxsYmFjayA9IChwYXJhbXM6IHtcbiAgc2Vzc2lvbklkOiBzdHJpbmc7XG4gIGJpdGdvTXNnMTogTVBDdjJCcm9hZGNhc3RNZXNzYWdlO1xuICBiaXRnb1RvVXNlck1zZzI6IE1QQ3YyUDJQTWVzc2FnZTtcbiAgYml0Z29Ub0JhY2t1cE1zZzI6IE1QQ3YyUDJQTWVzc2FnZTtcbiAgdXNlclN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xuICBiYWNrdXBTdGF0ZTogRXh0ZXJuYWxTaWduZXJNcGNTdGF0ZTtcbn0pID0+IFByb21pc2U8e1xuICByb3VuZDJNZXNzYWdlczogRGtsc1R5cGVzLkF1dGhFbmNNZXNzYWdlcztcbiAgdXNlclN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xuICBiYWNrdXBTdGF0ZTogRXh0ZXJuYWxTaWduZXJNcGNTdGF0ZTtcbn0+O1xuXG5leHBvcnQgdHlwZSBFY2RzYU1QQ3YyS2V5R2VuUm91bmQzQ2FsbGJhY2sgPSAocGFyYW1zOiB7XG4gIHNlc3Npb25JZDogc3RyaW5nO1xuICBiaXRnb0NvbW1pdG1lbnQyOiBzdHJpbmc7XG4gIGJpdGdvVG9Vc2VyTXNnMzogTVBDdjJQMlBNZXNzYWdlO1xuICBiaXRnb1RvQmFja3VwTXNnMzogTVBDdjJQMlBNZXNzYWdlO1xuICB1c2VyU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG4gIGJhY2t1cFN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xufSkgPT4gUHJvbWlzZTx7XG4gIHJvdW5kM01lc3NhZ2VzOiBEa2xzVHlwZXMuQXV0aEVuY01lc3NhZ2VzO1xuICB1c2VyU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG4gIGJhY2t1cFN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xufT47XG5cbmV4cG9ydCB0eXBlIEVjZHNhTVBDdjJLZXlHZW5GaW5hbGl6ZUNhbGxiYWNrID0gKHBhcmFtczoge1xuICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgYml0Z29Nc2c0OiBNUEN2MkJyb2FkY2FzdE1lc3NhZ2U7XG4gIGJpdGdvQ29tbW9uS2V5Y2hhaW46IHN0cmluZztcbiAgdXNlclN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xuICBiYWNrdXBTdGF0ZTogRXh0ZXJuYWxTaWduZXJNcGNTdGF0ZTtcbn0pID0+IFByb21pc2U8eyBjb21tb25LZXljaGFpbjogc3RyaW5nIH0+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVjZHNhTVBDdjJLZXlHZW5DYWxsYmFja3Mge1xuICBpbml0aWFsaXplQ2FsbGJhY2s6IEVjZHNhTVBDdjJLZXlHZW5Jbml0aWFsaXplQ2FsbGJhY2s7XG4gIHJvdW5kMkNhbGxiYWNrOiBFY2RzYU1QQ3YyS2V5R2VuUm91bmQyQ2FsbGJhY2s7XG4gIHJvdW5kM0NhbGxiYWNrOiBFY2RzYU1QQ3YyS2V5R2VuUm91bmQzQ2FsbGJhY2s7XG4gIGZpbmFsaXplQ2FsbGJhY2s6IEVjZHNhTVBDdjJLZXlHZW5GaW5hbGl6ZUNhbGxiYWNrO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVkZHNhS2V5R2VuSW5pdGlhbGl6ZVJlc3VsdCB7XG4gIHVzZXJHcGdQdWJsaWNLZXk6IHN0cmluZztcbiAgYmFja3VwR3BnUHVibGljS2V5OiBzdHJpbmc7XG4gIHVzZXJUb0JpdGdvS2V5U2hhcmU6IEV4dGVybmFsU2lnbmVyS2V5U2hhcmU7XG4gIGJhY2t1cFRvQml0Z29LZXlTaGFyZTogRXh0ZXJuYWxTaWduZXJLZXlTaGFyZTtcbiAgdXNlclN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xuICBiYWNrdXBTdGF0ZTogRXh0ZXJuYWxTaWduZXJNcGNTdGF0ZTtcbiAgYmFja3VwVG9Vc2VyQ291bnRlclBhcnR5S2V5U2hhcmU6IEV4dGVybmFsU2lnbmVyS2V5U2hhcmU7XG59XG5cbmV4cG9ydCB0eXBlIEVkZHNhS2V5R2VuSW5pdGlhbGl6ZUNhbGxiYWNrID0gKHBhcmFtczoge1xuICBlbnRlcnByaXNlOiBzdHJpbmc7XG4gIGJpdGdvUHVibGljR3BnS2V5OiBzdHJpbmc7XG59KSA9PiBQcm9taXNlPEVkZHNhS2V5R2VuSW5pdGlhbGl6ZVJlc3VsdD47XG5cbmV4cG9ydCB0eXBlIEVkZHNhS2V5R2VuRmluYWxpemVSZXN1bHQgPSB7XG4gIGNvbW1vbktleWNoYWluOiBzdHJpbmc7XG4gIC8qKiBSZXF1aXJlZCB3aGVuIHRoZSBjYWxsYmFjayBpcyBpbnZva2VkIHdpdGggc291cmNlOiAndXNlcic7IG11c3QgYmUgb21pdHRlZCBmb3Igc291cmNlOiAnYmFja3VwJy4gKi9cbiAgY291bnRlcnBhcnR5S2V5U2hhcmU/OiBFeHRlcm5hbFNpZ25lcktleVNoYXJlO1xufTtcblxuZXhwb3J0IHR5cGUgRWRkc2FLZXlHZW5GaW5hbGl6ZUNhbGxiYWNrID0gKHBhcmFtczoge1xuICBzb3VyY2U6ICd1c2VyJyB8ICdiYWNrdXAnO1xuICBjb2luOiBzdHJpbmc7XG4gIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluO1xuICBjb3VudGVyUGFydHlHUEdLZXk6IHN0cmluZztcbiAgY291bnRlclBhcnR5S2V5U2hhcmU6IEV4dGVybmFsU2lnbmVyS2V5U2hhcmU7XG4gIHN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xufSkgPT4gUHJvbWlzZTxFZGRzYUtleUdlbkZpbmFsaXplUmVzdWx0PjtcblxuZXhwb3J0IGludGVyZmFjZSBFZGRzYUtleUdlbkNhbGxiYWNrcyB7XG4gIGluaXRpYWxpemVDYWxsYmFjazogRWRkc2FLZXlHZW5Jbml0aWFsaXplQ2FsbGJhY2s7XG4gIGZpbmFsaXplQ2FsbGJhY2s6IEVkZHNhS2V5R2VuRmluYWxpemVDYWxsYmFjaztcbn1cblxuZXhwb3J0IHR5cGUgRWRkc2FNUEN2MktleUdlbkluaXRpYWxpemVDYWxsYmFjayA9IChwYXJhbXM6IHtcbiAgZW50ZXJwcmlzZTogc3RyaW5nO1xuICBiaXRnb1B1YmxpY0dwZ0tleTogc3RyaW5nO1xufSkgPT4gUHJvbWlzZTx7XG4gIHVzZXJHcGdQdWJsaWNLZXk6IHN0cmluZztcbiAgYmFja3VwR3BnUHVibGljS2V5OiBzdHJpbmc7XG4gIHVzZXJTdGF0ZTogRXh0ZXJuYWxTaWduZXJNcGNTdGF0ZTtcbiAgYmFja3VwU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG59PjtcblxuZXhwb3J0IHR5cGUgRWRkc2FNUEN2MktleUdlblJvdW5kMUNhbGxiYWNrID0gKHBhcmFtczoge1xuICBiaXRnb1B1YmxpY0dwZ0tleTogc3RyaW5nO1xuICB1c2VyR3BnUHVibGljS2V5OiBzdHJpbmc7XG4gIGJhY2t1cEdwZ1B1YmxpY0tleTogc3RyaW5nO1xuICB1c2VyU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG4gIGJhY2t1cFN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xufSkgPT4gUHJvbWlzZTx7XG4gIHVzZXJTaWduZWRNc2cxOiBNUFNUeXBlcy5NUFNTaWduZWRNZXNzYWdlO1xuICBiYWNrdXBTaWduZWRNc2cxOiBNUFNUeXBlcy5NUFNTaWduZWRNZXNzYWdlO1xuICB1c2VyU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG4gIGJhY2t1cFN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xufT47XG5cbmV4cG9ydCB0eXBlIEVkZHNhTVBDdjJLZXlHZW5Sb3VuZDJDYWxsYmFjayA9IChwYXJhbXM6IHtcbiAgYml0Z29Nc2cxOiBNUFNUeXBlcy5NUFNTaWduZWRNZXNzYWdlO1xuICB1c2VyU2lnbmVkTXNnMTogTVBTVHlwZXMuTVBTU2lnbmVkTWVzc2FnZTtcbiAgYmFja3VwU2lnbmVkTXNnMTogTVBTVHlwZXMuTVBTU2lnbmVkTWVzc2FnZTtcbiAgdXNlclN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xuICBiYWNrdXBTdGF0ZTogRXh0ZXJuYWxTaWduZXJNcGNTdGF0ZTtcbn0pID0+IFByb21pc2U8e1xuICB1c2VyU2lnbmVkTXNnMjogTVBTVHlwZXMuTVBTU2lnbmVkTWVzc2FnZTtcbiAgYmFja3VwU2lnbmVkTXNnMjogTVBTVHlwZXMuTVBTU2lnbmVkTWVzc2FnZTtcbiAgdXNlclN0YXRlOiBFeHRlcm5hbFNpZ25lck1wY1N0YXRlO1xuICBiYWNrdXBTdGF0ZTogRXh0ZXJuYWxTaWduZXJNcGNTdGF0ZTtcbn0+O1xuXG5leHBvcnQgdHlwZSBFZGRzYU1QQ3YyS2V5R2VuRmluYWxpemVDYWxsYmFjayA9IChwYXJhbXM6IHtcbiAgYml0Z29Nc2cyOiBNUFNUeXBlcy5NUFNTaWduZWRNZXNzYWdlO1xuICBiaXRnb0NvbW1vbktleWNoYWluOiBzdHJpbmc7XG4gIHVzZXJTdGF0ZTogRXh0ZXJuYWxTaWduZXJNcGNTdGF0ZTtcbiAgYmFja3VwU3RhdGU6IEV4dGVybmFsU2lnbmVyTXBjU3RhdGU7XG59KSA9PiBQcm9taXNlPHsgY29tbW9uS2V5Y2hhaW46IHN0cmluZyB9PjtcblxuZXhwb3J0IGludGVyZmFjZSBFZGRzYU1QQ3YyS2V5R2VuQ2FsbGJhY2tzIHtcbiAgaW5pdGlhbGl6ZUNhbGxiYWNrOiBFZGRzYU1QQ3YyS2V5R2VuSW5pdGlhbGl6ZUNhbGxiYWNrO1xuICByb3VuZDFDYWxsYmFjazogRWRkc2FNUEN2MktleUdlblJvdW5kMUNhbGxiYWNrO1xuICByb3VuZDJDYWxsYmFjazogRWRkc2FNUEN2MktleUdlblJvdW5kMkNhbGxiYWNrO1xuICBmaW5hbGl6ZUNhbGxiYWNrOiBFZGRzYU1QQ3YyS2V5R2VuRmluYWxpemVDYWxsYmFjaztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZVdhbGxldE9wdGlvbnMge1xuICBsYWJlbD86IHN0cmluZztcbiAgcGFzc3BocmFzZT86IHN0cmluZztcbiAgdXNlcktleT86IHN0cmluZztcbiAgYmFja3VwWHB1Yj86IHN0cmluZztcbiAgYmFja3VwWHB1YlByb3ZpZGVyPzogc3RyaW5nO1xuICBwYXNzY29kZUVuY3J5cHRpb25Db2RlPzogc3RyaW5nO1xuICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICBkaXNhYmxlVHJhbnNhY3Rpb25Ob3RpZmljYXRpb25zPzogYm9vbGVhbjtcbiAgZ2FzUHJpY2U/OiBudW1iZXI7XG4gIGVpcDE1NTk/OiB7XG4gICAgbWF4RmVlUGVyR2FzOiBzdHJpbmc7XG4gICAgbWF4UHJpb3JpdHlGZWVQZXJHYXM6IHN0cmluZztcbiAgfTtcbiAgd2FsbGV0VmVyc2lvbj86IG51bWJlcjtcbiAgZGlzYWJsZUtSU0VtYWlsPzogYm9vbGVhbjtcbiAga3JzU3BlY2lmaWM/OiB7XG4gICAgW2luZGV4OiBzdHJpbmddOiBib29sZWFuIHwgc3RyaW5nIHwgbnVtYmVyO1xuICB9O1xuICBjb2xkRGVyaXZhdGlvblNlZWQ/OiBzdHJpbmc7XG4gIHJvb3RQcml2YXRlS2V5Pzogc3RyaW5nO1xuICBtdWx0aXNpZ1R5cGU/OiAnb25jaGFpbicgfCAndHNzJyB8ICdibHNka2cnO1xuICAvLyBVc2VkIGZvciB6ZWMgc2hpZWxkZWQgY3VzdG9kaWFsIHdhbGxldHNcbiAgaXNTaGllbGRlZD86IGJvb2xlYW47XG4gIGlzRGlzdHJpYnV0ZWRDdXN0b2R5PzogYm9vbGVhbjtcbiAgYml0Z29LZXlJZD86IHN0cmluZztcbiAgY29tbW9uS2V5Y2hhaW4/OiBzdHJpbmc7XG4gIHR5cGU/OiAnaG90JyB8ICdjb2xkJyB8ICdjdXN0b2RpYWwnIHwgJ3RyYWRpbmcnIHwgJ2FkdmFuY2VkJztcbiAgc3ViVHlwZT86ICdsaWdodG5pbmdDdXN0b2R5JyB8ICdsaWdodG5pbmdTZWxmQ3VzdG9keSc7XG4gIGV2bUtleVJpbmdSZWZlcmVuY2VXYWxsZXRJZD86IHN0cmluZztcbiAgbGlnaHRuaW5nUHJvdmlkZXI/OiAnYW1ib3NzJyB8ICd2b2x0YWdlJztcbiAgLyoqIE9wdGlvbmFsIFdlYkF1dGhuIFBSRi1iYXNlZCBlbmNyeXB0aW9uIGluZm8uIFdoZW4gcHJvdmlkZWQsIHRoZSB1c2VyIHByaXZhdGUga2V5IGlzIGFkZGl0aW9uYWxseSBlbmNyeXB0ZWQgd2l0aCB0aGUgUFJGLWRlcml2ZWQgcGFzc3BocmFzZSBzbyB0aGUgc2VydmVyIGNhbiBzdG9yZSBhIFdlYkF1dGhuLXByb3RlY3RlZCBjb3B5LiAqL1xuICB3ZWJhdXRobkluZm8/OiBXZWJhdXRobktleUVuY3J5cHRpb25JbmZvO1xuICBlbmNyeXB0aW9uVmVyc2lvbj86IEVuY3J5cHRpb25WZXJzaW9uO1xuICAvKiogRGVsZWdhdGVzIHVzZXIvYmFja3VwIGtleSBjcmVhdGlvbiB0byBhbiBleHRlcm5hbCBzaWduZXIgKG9uY2hhaW4gbXVsdGlzaWcgb25seSkuICovXG4gIGNyZWF0ZUtleWNoYWluQ2FsbGJhY2s/OiBDcmVhdGVLZXljaGFpbkNhbGxiYWNrO1xuICAvKiogT0ZDIG9ubHkuIFdoZW4gZmFsc2UsIEJpdEdvIHNpZ25zIE9GQyBwYXlsb2FkcyBvbiBiZWhhbGYgb2YgdGhlIHVzZXIgd2l0aG91dCByZXF1aXJpbmcgYSB1c2VyLWtleSBzaWduYXR1cmUuIERlZmF1bHRzIHRvIHRydWUgKHVzZXIgbXVzdCBzaWduKS4gKi9cbiAgdXNlcktleVNpZ25pbmdSZXF1aXJlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVXYWxsZXRXaXRoRXh0ZXJuYWxTaWduZXJPcHRpb25zXG4gIGV4dGVuZHMgT21pdDxHZW5lcmF0ZVdhbGxldE9wdGlvbnMsICdwYXNzcGhyYXNlJyB8ICd1c2VyS2V5JyB8ICdiYWNrdXBYcHViJyB8ICdiYWNrdXBYcHViUHJvdmlkZXInPiB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGNyZWF0ZUtleWNoYWluQ2FsbGJhY2s/OiBDcmVhdGVLZXljaGFpbkNhbGxiYWNrO1xuICAvKiogT3B0aW9uYWwgdXNlci1rZXkgc2lnbmF0dXJlcyBvdmVyIGJhY2t1cC9iaXRnbyBwdWJzLiBPbWl0IHdoZW4gdGhlIGV4dGVybmFsIHNpZ25lciBjYW5ub3QgcHJvZHVjZSB0aGVtIChlcXVpdmFsZW50IHRvIGEgY29sZCB3YWxsZXQpLiAqL1xuICBrZXlTaWduYXR1cmVzPzogeyBiYWNrdXA6IHN0cmluZzsgYml0Z286IHN0cmluZyB9O1xuICBlY2RzYU1QQ3YyQ2FsbGJhY2tzPzogRWNkc2FNUEN2MktleUdlbkNhbGxiYWNrcztcbiAgZWRkc2FDYWxsYmFja3M/OiBFZGRzYUtleUdlbkNhbGxiYWNrcztcbn1cblxuZXhwb3J0IGNvbnN0IEdlbmVyYXRlTGlnaHRuaW5nV2FsbGV0T3B0aW9uc0NvZGVjID0gdC5pbnRlcnNlY3Rpb24oXG4gIFtcbiAgICB0LnN0cmljdCh7XG4gICAgICBsYWJlbDogdC5zdHJpbmcsXG4gICAgICBwYXNzcGhyYXNlOiB0LnN0cmluZyxcbiAgICAgIGVudGVycHJpc2U6IHQuc3RyaW5nLFxuICAgICAgcGFzc2NvZGVFbmNyeXB0aW9uQ29kZTogdC5zdHJpbmcsXG4gICAgICBzdWJUeXBlOiB0LnVuaW9uKFt0LmxpdGVyYWwoJ2xpZ2h0bmluZ0N1c3RvZHknKSwgdC5saXRlcmFsKCdsaWdodG5pbmdTZWxmQ3VzdG9keScpXSksXG4gICAgfSksXG4gICAgdC5wYXJ0aWFsKHtcbiAgICAgIGxpZ2h0bmluZ1Byb3ZpZGVyOiB0LnVuaW9uKFt0LmxpdGVyYWwoJ2FtYm9zcycpLCB0LmxpdGVyYWwoJ3ZvbHRhZ2UnKV0pLFxuICAgICAgLy8gMSBpcyBhY2NlcHRlZCBkdXJpbmcgdGhlIHYyLWRlY3J5cHQgcm9sbG91dCB3aW5kb3c6IHNvbWUgVUkvU0RLIGNvbnN1bWVycyBjYW4ndFxuICAgICAgLy8gZGVjcnlwdCB2MiBlbnZlbG9wZXMgeWV0LCBzbyBjYWxsZXJzIG1heSBzdGlsbCBuZWVkIHRvIGZvcmNlIHYxIGV4cGxpY2l0bHkuXG4gICAgICBlbmNyeXB0aW9uVmVyc2lvbjogdC51bmlvbihbdC5saXRlcmFsKDEpLCB0LmxpdGVyYWwoMildKSxcbiAgICB9KSxcbiAgXSxcbiAgJ0dlbmVyYXRlTGlnaHRuaW5nV2FsbGV0T3B0aW9ucydcbik7XG5leHBvcnQgdHlwZSBHZW5lcmF0ZUxpZ2h0bmluZ1dhbGxldE9wdGlvbnMgPSB0LlR5cGVPZjx0eXBlb2YgR2VuZXJhdGVMaWdodG5pbmdXYWxsZXRPcHRpb25zQ29kZWM+O1xuXG5jb25zdCBHZW5lcmF0ZUdvQWNjb3VudFdhbGxldEJhc2VPcHRpb25zQ29kZWMgPSB0LmludGVyc2VjdGlvbihbXG4gIHQuc3RyaWN0KHtcbiAgICBsYWJlbDogdC5zdHJpbmcsXG4gICAgZW50ZXJwcmlzZTogdC5zdHJpbmcsXG4gICAgdHlwZTogdC5saXRlcmFsKCd0cmFkaW5nJyksXG4gIH0pLFxuICB0LnBhcnRpYWwoe1xuICAgIC8vIENvZGVjIGludGVudGlvbmFsbHkgYWNjZXB0cyBvbmx5IDI6IHYxIGlzIHRoZSBpbXBsaWNpdCBkZWZhdWx0IGFuZCBuZXZlciBzZW50IG9uIHRoZSB3aXJlLlxuICAgIGVuY3J5cHRpb25WZXJzaW9uOiB0LmxpdGVyYWwoMiksXG4gIH0pLFxuXSk7XG5cbmNvbnN0IEdlbmVyYXRlR29BY2NvdW50V2FsbGV0UGFzc3dvcmRPcHRpb25zQ29kZWMgPSB0LmludGVyc2VjdGlvbihbXG4gIHQuc3RyaWN0KHtcbiAgICBwYXNzcGhyYXNlOiB0LnN0cmluZyxcbiAgICBwYXNzY29kZUVuY3J5cHRpb25Db2RlOiB0LnN0cmluZyxcbiAgfSksXG4gIHQucGFydGlhbCh7XG4gICAgdXNlcktleVNpZ25pbmdSZXF1aXJlZDogdC5ib29sZWFuLFxuICB9KSxcbl0pO1xuXG5jb25zdCBHZW5lcmF0ZUdvQWNjb3VudFdhbGxldFBhc3N3b3JkbGVzc09wdGlvbnNDb2RlYyA9IHQuaW50ZXJzZWN0aW9uKFtcbiAgdC5zdHJpY3Qoe1xuICAgIHVzZXJLZXlTaWduaW5nUmVxdWlyZWQ6IHQubGl0ZXJhbChmYWxzZSksXG4gIH0pLFxuICB0LnBhcnRpYWwoe1xuICAgIHBhc3NwaHJhc2U6IHQudW5kZWZpbmVkLFxuICAgIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGU6IHQudW5kZWZpbmVkLFxuICB9KSxcbl0pO1xuXG5leHBvcnQgY29uc3QgR2VuZXJhdGVHb0FjY291bnRXYWxsZXRPcHRpb25zQ29kZWMgPSB0LmludGVyc2VjdGlvbihcbiAgW1xuICAgIEdlbmVyYXRlR29BY2NvdW50V2FsbGV0QmFzZU9wdGlvbnNDb2RlYyxcbiAgICB0LnVuaW9uKFtHZW5lcmF0ZUdvQWNjb3VudFdhbGxldFBhc3N3b3JkT3B0aW9uc0NvZGVjLCBHZW5lcmF0ZUdvQWNjb3VudFdhbGxldFBhc3N3b3JkbGVzc09wdGlvbnNDb2RlY10pLFxuICBdLFxuICAnR2VuZXJhdGVHb0FjY291bnRXYWxsZXRPcHRpb25zJ1xuKTtcblxuZXhwb3J0IHR5cGUgR2VuZXJhdGVHb0FjY291bnRXYWxsZXRPcHRpb25zID0gdC5UeXBlT2Y8dHlwZW9mIEdlbmVyYXRlR29BY2NvdW50V2FsbGV0T3B0aW9uc0NvZGVjPjtcblxuZXhwb3J0IGludGVyZmFjZSBHZXRXYWxsZXRCeUFkZHJlc3NPcHRpb25zIHtcbiAgYWRkcmVzcz86IHN0cmluZztcbiAgcmVxSWQ/OiBJUmVxdWVzdFRyYWNlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVTaGFyZU9wdGlvbnMge1xuICB3YWxsZXRTaGFyZUlkPzogc3RyaW5nO1xuICBzdGF0ZT86IHN0cmluZztcbiAgZW5jcnlwdGVkUHJ2Pzogc3RyaW5nO1xuICBrZXlJZD86IHN0cmluZztcbiAgc2lnbmF0dXJlPzogc3RyaW5nO1xuICBwYXlsb2FkPzogc3RyaW5nO1xuICBwdWI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZXB0U2hhcmVPcHRpb25zIHtcbiAgb3ZlcnJpZGVFbmNyeXB0ZWRQcnY/OiBzdHJpbmc7XG4gIHdhbGxldFNoYXJlSWQ/OiBzdHJpbmc7XG4gIHVzZXJQYXNzd29yZD86IHN0cmluZztcbiAgbmV3V2FsbGV0UGFzc3BocmFzZT86IHN0cmluZztcbiAgZW5jcnlwdGlvblZlcnNpb24/OiBFbmNyeXB0aW9uVmVyc2lvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWxrQWNjZXB0U2hhcmVPcHRpb25zIHtcbiAgd2FsbGV0U2hhcmVJZHM6IHN0cmluZ1tdO1xuICB1c2VyTG9naW5QYXNzd29yZDogc3RyaW5nO1xuICBuZXdXYWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xuICB3ZWJhdXRobkluZm8/OiBXZWJhdXRobktleUVuY3J5cHRpb25JbmZvO1xuICBlbmNyeXB0aW9uVmVyc2lvbj86IEVuY3J5cHRpb25WZXJzaW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY2VwdFNoYXJlT3B0aW9uc1JlcXVlc3Qge1xuICB3YWxsZXRTaGFyZUlkOiBzdHJpbmc7XG4gIGVuY3J5cHRlZFBydjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHB1YmxpYyBhc3NvY2lhdGVkIHRvIHRoZSBlbmNyeXB0ZWQgcHJpdmF0ZSBrZXkuXG4gICAqIFJlcXVpcmVkIGZvciB1c2VyTXVsdGlLZXlSb3RhdGlvblJlcXVpcmVkIHNoYXJlcy5cbiAgICovXG4gIHB1Yj86IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIFdlYkF1dGhuIFBSRi1iYXNlZCBlbmNyeXB0aW9uIGluZm8uXG4gICAqIFdoZW4gcHJvdmlkZWQsIHRoZSB3YWxsZXQgcHJpdmF0ZSBrZXkgaXMgYWRkaXRpb25hbGx5IGVuY3J5cHRlZCB3aXRoIHRoZVxuICAgKiBQUkYtZGVyaXZlZCBwYXNzcGhyYXNlIHNvIHRoZSBzZXJ2ZXIgY2FuIHN0b3JlIGEgV2ViQXV0aG4tcHJvdGVjdGVkIGNvcHkuXG4gICAqIFRoZSBwYXNzcGhyYXNlIGl0c2VsZiBpcyBuZXZlciBzZW50IHRvIHRoZSBzZXJ2ZXIuXG4gICAqL1xuICB3ZWJhdXRobkluZm8/OiBXZWJhdXRobkluZm87XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVsa1VwZGF0ZVdhbGxldFNoYXJlT3B0aW9ucyB7XG4gIHNoYXJlczoge1xuICAgIHdhbGxldFNoYXJlSWQ6IHN0cmluZztcbiAgICBzdGF0dXM6ICdhY2NlcHQnIHwgJ3JlamVjdCc7XG4gIH1bXTtcbiAgdXNlckxvZ2luUGFzc3dvcmQ/OiBzdHJpbmc7XG4gIG5ld1dhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG4gIGVuY3J5cHRpb25WZXJzaW9uPzogRW5jcnlwdGlvblZlcnNpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVsa1VwZGF0ZVdhbGxldFNoYXJlT3B0aW9uc1JlcXVlc3Qge1xuICB3YWxsZXRTaGFyZUlkOiBzdHJpbmc7XG4gIGVuY3J5cHRlZFBydj86IHN0cmluZztcbiAgc3RhdHVzOiAnYWNjZXB0JyB8ICdyZWplY3QnO1xuICBrZXlJZD86IHN0cmluZztcbiAgc2lnbmF0dXJlPzogc3RyaW5nO1xuICBwYXlsb2FkPzogc3RyaW5nO1xuICBwdWI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVsa1VwZGF0ZVdhbGxldFNoYXJlUmVzcG9uc2Uge1xuICBhY2NlcHRlZFdhbGxldFNoYXJlczogc3RyaW5nW107XG4gIHJlamVjdGVkV2FsbGV0U2hhcmVzOiBzdHJpbmdbXTtcbiAgd2FsbGV0U2hhcmVVcGRhdGVFcnJvcnM6IHtcbiAgICB3YWxsZXRTaGFyZUlkOiBzdHJpbmc7XG4gICAgcmVhc29uOiBzdHJpbmc7XG4gIH1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRXYWxsZXRPcHRpb25zIHtcbiAgY29pblNwZWNpZmljPzogYW55O1xuICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICBpc0NvbGQ/OiBJc0NvbGQ7XG4gIGlzQ3VzdG9kaWFsPzogSXNDdXN0b2RpYWw7XG4gIGtleXM/OiBzdHJpbmdbXTtcbiAga2V5U2lnbmF0dXJlcz86IEtleVNpZ25hdHVyZXM7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG11bHRpc2lnVHlwZT86ICdvbmNoYWluJyB8ICd0c3MnIHwgJ2Jsc2RrZyc7XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIG0/OiBudW1iZXI7XG4gIG4/OiBudW1iZXI7XG4gIHRhZ3M/OiBzdHJpbmdbXTtcbiAgdHlwZT86IHN0cmluZztcbiAgd2FsbGV0VmVyc2lvbj86IG51bWJlcjtcbiAgZWlwMTU1OT86IEVpcDE1NTk7XG4gIGNsaWVudEZsYWdzPzogc3RyaW5nW107XG4gIC8vIEFkZGl0aW9uYWwgcGFyYW1zIG5lZWRlZCBmb3IgeHJwXG4gIHJvb3RQdWI/OiBzdHJpbmc7XG4gIC8vIEluIFhSUCwgWExNIGFuZCBDU1BSIHRoaXMgcHJpdmF0ZSBrZXkgaXMgdXNlZCBvbmx5IGZvciB3YWxsZXQgY3JlYXRpb24gcHVycG9zZXMsXG4gIC8vIG9uY2UgdGhlIHdhbGxldCBpcyBpbml0aWFsaXplZCB0aGVuIHdlIHVwZGF0ZSBpdHMgd2VpZ2h0IHRvIDAgbWFraW5nIGl0IGFuIGludmFsaWQga2V5LlxuICAvLyBodHRwczovL3d3dy5zdGVsbGFyLm9yZy9kZXZlbG9wZXJzL2d1aWRlcy9jb25jZXB0cy9tdWx0aS1zaWcuaHRtbCNhZGRpdGlvbmFsLXNpZ25pbmcta2V5c1xuICByb290UHJpdmF0ZUtleT86IHN0cmluZztcbiAgaW5pdGlhbGl6YXRpb25UeHM/OiBhbnk7XG4gIGRpc2FibGVUcmFuc2FjdGlvbk5vdGlmaWNhdGlvbnM/OiBib29sZWFuO1xuICBnYXNQcmljZT86IG51bWJlcjtcbiAgZXZtS2V5UmluZ1JlZmVyZW5jZVdhbGxldElkPzogc3RyaW5nO1xufVxuXG50eXBlIEtleVNpZ25hdHVyZXMgPSB7XG4gIGJhY2t1cD86IHN0cmluZztcbiAgYml0Z28/OiBzdHJpbmc7XG59O1xuXG4vKiogQGRlcHJlY2F0ZWQgKi9cbnR5cGUgSXNDb2xkID0gYm9vbGVhbjtcblxuLyoqIEBkZXByZWNhdGVkICovXG50eXBlIElzQ3VzdG9kaWFsID0gYm9vbGVhbjtcblxudHlwZSBFaXAxNTU5ID0ge1xuICBtYXhQcmlvcml0eUZlZVBlckdhczogc3RyaW5nO1xuICBtYXhGZWVQZXJHYXM6IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFdhbGxldE9wdGlvbnMgZXh0ZW5kcyBQYWdpbmF0aW9uT3B0aW9ucyB7XG4gIHNraXA/OiBudW1iZXI7XG4gIGdldGJhbGFuY2VzPzogYm9vbGVhbjtcbiAgYWxsVG9rZW5zPzogYm9vbGVhbjtcbiAgc2tpcFJlY2VpdmVBZGRyZXNzPzogYm9vbGVhbjsgLy8gSWYgc2tpcFJlY2VpdmVBZGRyZXNzIGlzIHNldCB0byB0cnVlLCB0aGUgcmVjZWl2ZUFkZHJlc3MgcHJvcGVydHkgd2lsbCBub3QgYmUgcmV0dXJuZWQgaW4gdGhlIHdhbGxldCBvYmplY3QuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2FsbGV0U2hhcmVzIHtcbiAgaW5jb21pbmc6IFdhbGxldFNoYXJlW107IC8vIFdhbGxldFNoYXJlcyB0aGF0IHRoZSB1c2VyIGhhcyB0byBhY2NlcHRcbiAgb3V0Z29pbmc6IFdhbGxldFNoYXJlW107IC8vIFdhbGxldFNoYXJlcyB0aGF0IHRoZSB1c2VyIGhhcyBjcmVhdGVkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZXB0U2hhcmVSZXNwb25zZSB7XG4gIHdhbGxldFNoYXJlSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWxrQWNjZXB0U2hhcmVSZXNwb25zZSB7XG4gIGFjY2VwdGVkV2FsbGV0U2hhcmVzOiBBY2NlcHRTaGFyZVJlc3BvbnNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVdhbGxldHMge1xuICBnZXQocGFyYW1zPzogR2V0V2FsbGV0T3B0aW9ucyk6IFByb21pc2U8V2FsbGV0PjtcbiAgbGlzdChwYXJhbXM/OiBMaXN0V2FsbGV0T3B0aW9ucyk6IFByb21pc2U8eyB3YWxsZXRzOiBJV2FsbGV0W10gfT47XG4gIGFkZChwYXJhbXM/OiBBZGRXYWxsZXRPcHRpb25zKTogUHJvbWlzZTxhbnk+O1xuICBnZW5lcmF0ZVdhbGxldChcbiAgICBwYXJhbXM/OiBHZW5lcmF0ZVdhbGxldE9wdGlvbnNcbiAgKTogUHJvbWlzZTxXYWxsZXRXaXRoS2V5Y2hhaW5zIHwgTGlnaHRuaW5nV2FsbGV0V2l0aEtleWNoYWlucyB8IEdvQWNjb3VudFdhbGxldFdpdGhVc2VyS2V5Y2hhaW4+O1xuICBnZW5lcmF0ZVdhbGxldFdpdGhFeHRlcm5hbFNpZ25lcihwYXJhbXM6IEdlbmVyYXRlV2FsbGV0V2l0aEV4dGVybmFsU2lnbmVyT3B0aW9ucyk6IFByb21pc2U8V2FsbGV0V2l0aEtleWNoYWlucz47XG4gIGxpc3RTaGFyZXMocGFyYW1zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBQcm9taXNlPGFueT47XG4gIGdldFNoYXJlKHBhcmFtcz86IHsgd2FsbGV0U2hhcmVJZD86IHN0cmluZyB9KTogUHJvbWlzZTxhbnk+O1xuICB1cGRhdGVTaGFyZShwYXJhbXM/OiBVcGRhdGVTaGFyZU9wdGlvbnMpOiBQcm9taXNlPGFueT47XG4gIHJlc2VuZFNoYXJlSW52aXRlKHBhcmFtcz86IHsgd2FsbGV0U2hhcmVJZD86IHN0cmluZyB9KTogUHJvbWlzZTxhbnk+O1xuICBjYW5jZWxTaGFyZShwYXJhbXM/OiB7IHdhbGxldFNoYXJlSWQ/OiBzdHJpbmcgfSk6IFByb21pc2U8YW55PjtcbiAgYWNjZXB0U2hhcmUocGFyYW1zPzogQWNjZXB0U2hhcmVPcHRpb25zKTogUHJvbWlzZTxhbnk+O1xuICBnZXRXYWxsZXQocGFyYW1zPzogR2V0V2FsbGV0T3B0aW9ucyk6IFByb21pc2U8SVdhbGxldD47XG4gIGdldFdhbGxldEJ5QWRkcmVzcyhwYXJhbXM/OiBHZXRXYWxsZXRCeUFkZHJlc3NPcHRpb25zKTogUHJvbWlzZTxJV2FsbGV0PjtcbiAgZ2V0VG90YWxCYWxhbmNlcyhwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj4pOiBQcm9taXNlPGFueT47XG4gIGJ1bGtBY2NlcHRTaGFyZShwYXJhbXM6IEJ1bGtBY2NlcHRTaGFyZU9wdGlvbnMpOiBQcm9taXNlPEJ1bGtBY2NlcHRTaGFyZVJlc3BvbnNlPjtcbiAgbGlzdFNoYXJlc1YyKCk6IFByb21pc2U8V2FsbGV0U2hhcmVzPjtcbn1cbiJdfQ==
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { BitGoBase } from '../bitgoBase';
5
5
  import { IKeychains, Keychain, KeychainWithEncryptedPrv } from '../keychain';
6
+ import type { DecryptedKeychainData } from './iWallet';
6
7
  export declare class InvalidRootKeychainSourceError extends Error {
7
8
  constructor(id: string, source: string | undefined);
8
9
  }
@@ -14,6 +15,10 @@ export declare class SafeDerivedPublicKeyMismatchError extends Error {
14
15
  export declare class SafeOwnerSigningNotImplementedError extends Error {
15
16
  constructor(walletId: string, detail: string);
16
17
  }
18
+ /** Thrown when wallet sharing is not implemented for this safe slot (TSS, ed25519 multisig, …). */
19
+ export declare class SafeShareNotImplementedError extends Error {
20
+ constructor(walletId: string, detail: string);
21
+ }
17
22
  /**
18
23
  * True when this is the safe minter's user key: wallet is in a safe, the key
19
24
  * has a parent root, and there is no child-level encryptedPrv (sharees have one).
@@ -26,7 +31,11 @@ export declare function isSafeChildPublicOnlyKeychain(walletSafeId: string | und
26
31
  * Requires `source === 'user'` so a misconfigured parent fails early.
27
32
  */
28
33
  export declare function fetchRootKeychainForSafeChild(keychains: IKeychains, childKeychain: Keychain): Promise<KeychainWithEncryptedPrv>;
29
- export interface ResolveSafeOwnerSigningPrvParams {
34
+ /**
35
+ * Shared params for resolving safe-owner key material (owner signing and wallet sharing).
36
+ * Both resolvers extend this so the precondition/derivation path cannot diverge.
37
+ */
38
+ export interface SafeKeyMaterialBaseParams {
30
39
  bitgo: BitGoBase;
31
40
  keychains: IKeychains;
32
41
  walletId: string;
@@ -38,10 +47,11 @@ export interface ResolveSafeOwnerSigningPrvParams {
38
47
  /** When already fetched (passphrase preflight), skip a second GET. */
39
48
  rootKeychain?: KeychainWithEncryptedPrv;
40
49
  }
50
+ export type ResolveSafeOwnerSigningPrvParams = SafeKeyMaterialBaseParams;
41
51
  /**
42
52
  * Resolve signing material for a safe owner (child key has no encryptedPrv).
43
53
  *
44
- * Onchain secp256k1: decrypt root, hardened-derive at `derivedFromParentWithHardenedPath`
54
+ * Onchain secp256k1: decrypt root, hardened-derive at `derivedFromParentWithPath`
45
55
  * (`m/<n>'`), and verify the registered pub.
46
56
  * TSS and ed25519 onchain: throw — do not return root material or BIP32-derive the wrong curve.
47
57
  *
@@ -49,4 +59,17 @@ export interface ResolveSafeOwnerSigningPrvParams {
49
59
  * Call only when `isSafeChildPublicOnlyKeychain` is true.
50
60
  */
51
61
  export declare function resolveSafeOwnerSigningPrv(params: ResolveSafeOwnerSigningPrvParams): Promise<string>;
62
+ export interface ResolveSafeChildPrvForSharingParams extends SafeKeyMaterialBaseParams {
63
+ mpcAlgorithm?: 'ecdsa' | 'eddsa';
64
+ }
65
+ /**
66
+ * Resolve sharing material for a safe owner (child key has no encryptedPrv).
67
+ *
68
+ * Onchain secp256k1: decrypt root, hardened-derive at `derivedFromParentWithPath`
69
+ * (`m/<n>'`), verify the registered pub, and return the CHILD `{prv, pub}` — never the root.
70
+ * TSS and ed25519 onchain: throw `SafeShareNotImplementedError` naming the slot + blocker.
71
+ *
72
+ * Call only when `isSafeChildPublicOnlyKeychain` is true.
73
+ */
74
+ export declare function resolveSafeChildPrvForSharing(params: ResolveSafeChildPrvForSharingParams): Promise<DecryptedKeychainData>;
52
75
  //# sourceMappingURL=safeKeychain.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"safeKeychain.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/safeKeychain.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAA6B,UAAU,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAIxG,qBAAa,8BAA+B,SAAQ,KAAK;gBAC3C,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;CAOnD;AAED,sFAAsF;AACtF,qBAAa,iCAAkC,SAAQ,KAAK;gBAC9C,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAOtE;AAED,kGAAkG;AAClG,qBAAa,mCAAoC,SAAQ,KAAK;gBAChD,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI7C;AAKD;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAC7B,QAAQ,IAAI,QAAQ,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAE3C;AAED;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,SAAS,EAAE,UAAU,EACrB,aAAa,EAAE,QAAQ,GACtB,OAAO,CAAC,wBAAwB,CAAC,CAYnC;AAED,MAAM,WAAW,gCAAgC;IAC/C,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,QAAQ,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,YAAY,CAAC,EAAE,wBAAwB,CAAC;CACzC;AAED;;;;;;;;;GASG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,gCAAgC,GAAG,OAAO,CAAC,MAAM,CAAC,CAsC1G"}
1
+ {"version":3,"file":"safeKeychain.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/safeKeychain.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAA6B,UAAU,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAGxG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEvD,qBAAa,8BAA+B,SAAQ,KAAK;gBAC3C,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;CAOnD;AAED,sFAAsF;AACtF,qBAAa,iCAAkC,SAAQ,KAAK;gBAC9C,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAOtE;AAED,kGAAkG;AAClG,qBAAa,mCAAoC,SAAQ,KAAK;gBAChD,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI7C;AAED,mGAAmG;AACnG,qBAAa,4BAA6B,SAAQ,KAAK;gBACzC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI7C;AAKD;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAC7B,QAAQ,IAAI,QAAQ,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAE3C;AAED;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,SAAS,EAAE,UAAU,EACrB,aAAa,EAAE,QAAQ,GACtB,OAAO,CAAC,wBAAwB,CAAC,CAYnC;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,QAAQ,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,YAAY,CAAC,EAAE,wBAAwB,CAAC;CACzC;AAED,MAAM,MAAM,gCAAgC,GAAG,yBAAyB,CAAC;AAgEzE;;;;;;;;;GASG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,gCAAgC,GAAG,OAAO,CAAC,MAAM,CAAC,CAgB1G;AAED,MAAM,WAAW,mCAAoC,SAAQ,yBAAyB;IACpF,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAClC;AAYD;;;;;;;;GAQG;AACH,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,mCAAmC,GAC1C,OAAO,CAAC,qBAAqB,CAAC,CAMhC"}
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SafeOwnerSigningNotImplementedError = exports.SafeDerivedPublicKeyMismatchError = exports.InvalidRootKeychainSourceError = void 0;
3
+ exports.SafeShareNotImplementedError = exports.SafeOwnerSigningNotImplementedError = exports.SafeDerivedPublicKeyMismatchError = exports.InvalidRootKeychainSourceError = void 0;
4
4
  exports.isSafeChildPublicOnlyKeychain = isSafeChildPublicOnlyKeychain;
5
5
  exports.fetchRootKeychainForSafeChild = fetchRootKeychainForSafeChild;
6
6
  exports.resolveSafeOwnerSigningPrv = resolveSafeOwnerSigningPrv;
7
+ exports.resolveSafeChildPrvForSharing = resolveSafeChildPrvForSharing;
7
8
  const keychain_1 = require("../keychain");
8
9
  const safeDerivation_1 = require("../safe/safeDerivation");
9
10
  const errors_1 = require("../errors");
@@ -32,6 +33,14 @@ class SafeOwnerSigningNotImplementedError extends Error {
32
33
  }
33
34
  }
34
35
  exports.SafeOwnerSigningNotImplementedError = SafeOwnerSigningNotImplementedError;
36
+ /** Thrown when wallet sharing is not implemented for this safe slot (TSS, ed25519 multisig, …). */
37
+ class SafeShareNotImplementedError extends Error {
38
+ constructor(walletId, detail) {
39
+ super(`Safe wallet ${walletId}: ${detail}`);
40
+ this.name = 'SafeShareNotImplementedError';
41
+ }
42
+ }
43
+ exports.SafeShareNotImplementedError = SafeShareNotImplementedError;
35
44
  /** ed25519 onchain multisig (slot ④). Needs SLIP-0010, not secp256k1 BIP32. */
36
45
  const ED25519_ONCHAIN_FAMILIES = new Set(['algo', 'xlm', 'hbar']);
37
46
  /**
@@ -59,23 +68,21 @@ async function fetchRootKeychainForSafeChild(keychains, childKeychain) {
59
68
  return root;
60
69
  }
61
70
  /**
62
- * Resolve signing material for a safe owner (child key has no encryptedPrv).
63
- *
64
- * Onchain secp256k1: decrypt root, hardened-derive at `derivedFromParentWithHardenedPath`
65
- * (`m/<n>'`), and verify the registered pub.
66
- * TSS and ed25519 onchain: throw — do not return root material or BIP32-derive the wrong curve.
71
+ * Shared core that resolves safe key material for a pub-only safe child. Returns the CHILD
72
+ * `{prv, pub}` only — never the root — so the root can never leak into a share document.
67
73
  *
68
- * Do not use for wallet sharing — that must not receive root key material.
69
- * Call only when `isSafeChildPublicOnlyKeychain` is true.
74
+ * Onchain secp256k1: decrypt root, hardened-derive at `derivedFromParentWithPath`
75
+ * (`m/<n>'`), and verify the registered pub. TSS and ed25519 onchain throw via
76
+ * `makeNotImplementedError` — the caller constructs its own error class + message, so the
77
+ * guard set stays shared while signing/sharing report their own errors.
70
78
  */
71
- async function resolveSafeOwnerSigningPrv(params) {
72
- const { bitgo, keychains, walletId, multisigType, coinFamily, childKeychain, walletPassphrase } = params;
79
+ async function resolveSafeKeyMaterial(params) {
80
+ const { bitgo, keychains, walletId, multisigType, coinFamily, childKeychain, walletPassphrase, makeNotImplementedError, } = params;
73
81
  if (multisigType !== 'onchain') {
74
- throw new SafeOwnerSigningNotImplementedError(walletId, 'TSS owner signing from the root keyshare is not implemented. ' +
75
- 'Returning the root private key would expose material that can derive every child in this slot.');
82
+ throw makeNotImplementedError('tss', walletId);
76
83
  }
77
84
  if (ED25519_ONCHAIN_FAMILIES.has(coinFamily)) {
78
- throw new SafeOwnerSigningNotImplementedError(walletId, `ed25519 multisig owner derivation (${coinFamily}) is not implemented; BIP32 would produce the wrong child key.`);
85
+ throw makeNotImplementedError('ed25519', walletId);
79
86
  }
80
87
  const rootKeychain = params.rootKeychain ?? (await fetchRootKeychainForSafeChild(keychains, childKeychain));
81
88
  const rootPrv = await (0, keychain_1.decryptKeychainPrivateKey)(bitgo, rootKeychain, walletPassphrase);
@@ -85,13 +92,60 @@ async function resolveSafeOwnerSigningPrv(params) {
85
92
  if (!childKeychain.pub) {
86
93
  throw new Error(`Safe wallet ${walletId}: child keychain is missing pub for pre-sign verification`);
87
94
  }
88
- if (childKeychain.derivedFromParentWithHardenedPath === undefined) {
89
- throw new Error(`Safe wallet ${walletId}: child keychain is missing derivedFromParentWithHardenedPath`);
95
+ if (childKeychain.derivedFromParentWithPath === undefined) {
96
+ throw new Error(`Safe wallet ${walletId}: child keychain is missing derivedFromParentWithPath`);
90
97
  }
91
- const derived = (0, safeDerivation_1.deriveSafeChildHardenedFromXprv)(rootPrv, (0, safeDerivation_1.parseDerivedFromParentWithHardenedPath)(childKeychain.derivedFromParentWithHardenedPath));
98
+ const derived = (0, safeDerivation_1.deriveSafeChildHardenedFromXprv)(rootPrv, (0, safeDerivation_1.parseDerivedFromParentWithHardenedPath)(childKeychain.derivedFromParentWithPath));
92
99
  if (derived.pub !== childKeychain.pub) {
93
100
  throw new SafeDerivedPublicKeyMismatchError(walletId, childKeychain.pub, derived.pub);
94
101
  }
95
- return derived.prv;
102
+ if (derived.pub === rootKeychain.pub) {
103
+ throw new Error(`Safe wallet ${walletId}: derived child pub unexpectedly equals the root pub`);
104
+ }
105
+ return { prv: derived.prv, pub: derived.pub };
106
+ }
107
+ /**
108
+ * Resolve signing material for a safe owner (child key has no encryptedPrv).
109
+ *
110
+ * Onchain secp256k1: decrypt root, hardened-derive at `derivedFromParentWithPath`
111
+ * (`m/<n>'`), and verify the registered pub.
112
+ * TSS and ed25519 onchain: throw — do not return root material or BIP32-derive the wrong curve.
113
+ *
114
+ * Do not use for wallet sharing — that must not receive root key material.
115
+ * Call only when `isSafeChildPublicOnlyKeychain` is true.
116
+ */
117
+ async function resolveSafeOwnerSigningPrv(params) {
118
+ const { prv } = await resolveSafeKeyMaterial({
119
+ ...params,
120
+ makeNotImplementedError: (slot, walletId) => slot === 'ed25519'
121
+ ? new SafeOwnerSigningNotImplementedError(walletId, `ed25519 multisig owner derivation (${params.coinFamily}) is not implemented; BIP32 would produce the wrong child key.`)
122
+ : new SafeOwnerSigningNotImplementedError(walletId, 'TSS owner signing from the root keyshare is not implemented. ' +
123
+ 'Returning the root private key would expose material that can derive every child in this slot.'),
124
+ });
125
+ return prv;
126
+ }
127
+ /** Slot-named not-implemented detail for wallet sharing. */
128
+ function safeShareSlotDetail(slot, params) {
129
+ if (slot === 'ed25519') {
130
+ return `ed25519 multisig safe sharing (${params.coinFamily}) is not implemented; BIP32 would derive the wrong child.`;
131
+ }
132
+ return params.mpcAlgorithm === 'eddsa'
133
+ ? 'eddsaMpc safe sharing is not implemented (needs the EdDSA derive ceremony).'
134
+ : 'ecdsaMpc safe sharing is not implemented (needs the DKLS derive ceremony).';
135
+ }
136
+ /**
137
+ * Resolve sharing material for a safe owner (child key has no encryptedPrv).
138
+ *
139
+ * Onchain secp256k1: decrypt root, hardened-derive at `derivedFromParentWithPath`
140
+ * (`m/<n>'`), verify the registered pub, and return the CHILD `{prv, pub}` — never the root.
141
+ * TSS and ed25519 onchain: throw `SafeShareNotImplementedError` naming the slot + blocker.
142
+ *
143
+ * Call only when `isSafeChildPublicOnlyKeychain` is true.
144
+ */
145
+ async function resolveSafeChildPrvForSharing(params) {
146
+ return resolveSafeKeyMaterial({
147
+ ...params,
148
+ makeNotImplementedError: (slot, walletId) => new SafeShareNotImplementedError(walletId, safeShareSlotDetail(slot, params)),
149
+ });
96
150
  }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZUtleWNoYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3dhbGxldC9zYWZlS2V5Y2hhaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNENBLHNFQUtDO0FBTUQsc0VBZUM7QUF5QkQsZ0VBc0NDO0FBaklELDBDQUF3RztBQUN4RywyREFBaUg7QUFDakgsc0NBQW1EO0FBRW5ELE1BQWEsOEJBQStCLFNBQVEsS0FBSztJQUN2RCxZQUFZLEVBQVUsRUFBRSxNQUEwQjtRQUNoRCxLQUFLLENBQ0gsaUJBQWlCLEVBQUUsZ0JBQWdCLE1BQU0sSUFBSSxTQUFTLHNCQUFzQjtZQUMxRSxxREFBcUQsQ0FDeEQsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsZ0NBQWdDLENBQUM7SUFDL0MsQ0FBQztDQUNGO0FBUkQsd0VBUUM7QUFFRCxzRkFBc0Y7QUFDdEYsTUFBYSxpQ0FBa0MsU0FBUSxLQUFLO0lBQzFELFlBQVksUUFBZ0IsRUFBRSxXQUFtQixFQUFFLFVBQWtCO1FBQ25FLEtBQUssQ0FDSCxlQUFlLFFBQVEscUVBQXFFO1lBQzFGLFlBQVksV0FBVyxTQUFTLFVBQVUsR0FBRyxDQUNoRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksR0FBRyxtQ0FBbUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7QUFSRCw4RUFRQztBQUVELGtHQUFrRztBQUNsRyxNQUFhLG1DQUFvQyxTQUFRLEtBQUs7SUFDNUQsWUFBWSxRQUFnQixFQUFFLE1BQWM7UUFDMUMsS0FBSyxDQUFDLGVBQWUsUUFBUSxLQUFLLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLElBQUksR0FBRyxxQ0FBcUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUFMRCxrRkFLQztBQUVELCtFQUErRTtBQUMvRSxNQUFNLHdCQUF3QixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMs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TyxPQUFPLENBQUMsR0FBRyxDQUFDO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgZGVjcnlwdEtleWNoYWluUHJpdmF0ZUtleSwgSUtleWNoYWlucywgS2V5Y2hhaW4sIEtleWNoYWluV2l0aEVuY3J5cHRlZFBydiB9IGZyb20gJy4uL2tleWNoYWluJztcbmltcG9ydCB7IGRlcml2ZVNhZmVDaGlsZEhhcmRlbmVkRnJvbVhwcnYsIHBhcnNlRGVyaXZlZEZyb21QYXJlbnRXaXRoSGFyZGVuZWRQYXRoIH0gZnJvbSAnLi4vc2FmZS9zYWZlRGVyaXZhdGlvbic7XG5pbXBvcnQgeyBJbmNvcnJlY3RQYXNzd29yZEVycm9yIH0gZnJvbSAnLi4vZXJyb3JzJztcblxuZXhwb3J0IGNsYXNzIEludmFsaWRSb290S2V5Y2hhaW5Tb3VyY2VFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoaWQ6IHN0cmluZywgc291cmNlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBzdXBlcihcbiAgICAgIGBSb290IGtleWNoYWluICR7aWR9IGhhcyBzb3VyY2UgJyR7c291cmNlID8/ICd1bmtub3duJ30nOyBleHBlY3RlZCAndXNlcicuIGAgK1xuICAgICAgICBgVXNpbmcgYSBiYWNrdXAgb3IgQml0R28gcm9vdCB3b3VsZCBmYWlsIGF0IHNpZ25pbmcuYFxuICAgICk7XG4gICAgdGhpcy5uYW1lID0gJ0ludmFsaWRSb290S2V5Y2hhaW5Tb3VyY2VFcnJvcic7XG4gIH1cbn1cblxuLyoqIFRocm93biB3aGVuIGhhcmRlbmVkIGRlcml2YXRpb24gZG9lcyBub3QgbWF0Y2ggdGhlIHJlZ2lzdGVyZWQgY2hpbGQgcHVibGljIGtleS4gKi9cbmV4cG9ydCBjbGFzcyBTYWZlRGVyaXZlZFB1YmxpY0tleU1pc21hdGNoRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKHdhbGxldElkOiBzdHJpbmcsIGV4cGVjdGVkUHViOiBzdHJpbmcsIGRlcml2ZWRQdWI6IHN0cmluZykge1xuICAgIHN1cGVyKFxuICAgICAgYFNhZmUgd2FsbGV0ICR7d2FsbGV0SWR9OiBkZXJpdmVkIGNoaWxkIHB1YmxpYyBrZXkgZG9lcyBub3QgbWF0Y2ggdGhlIHJlZ2lzdGVyZWQgdXNlciBrZXkuIGAgK1xuICAgICAgICBgRXhwZWN0ZWQgJHtleHBlY3RlZFB1Yn0sIGdvdCAke2Rlcml2ZWRQdWJ9LmBcbiAgICApO1xuICAgIHRoaXMubmFtZSA9ICdTYWZlRGVyaXZlZFB1YmxpY0tleU1pc21hdGNoRXJyb3InO1xuICB9XG59XG5cbi8qKiBUaHJvd24gd2hlbiBvd25lciBzaWduaW5nIGlzIG5vdCBpbXBsZW1lbnRlZCBmb3IgdGhpcyBzYWZlIHNsb3QgKFRTUywgZWQyNTUxOSBtdWx0aXNpZywg4oCmKS4gKi9cbmV4cG9ydCBjbGFzcyBTYWZlT3duZXJTaWduaW5nTm90SW1wbGVtZW50ZWRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3Iod2FsbGV0SWQ6IHN0cmluZywgZGV0YWlsOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgU2FmZSB3YWxsZXQgJHt3YWxsZXRJZH06ICR7ZGV0YWlsfWApO1xuICAgIHRoaXMubmFtZSA9ICdTYWZlT3duZXJTaWduaW5nTm90SW1wbGVtZW50ZWRFcnJvcic7XG4gIH1cbn1cblxuLyoqIGVkMjU1MTkgb25jaGFpbiBtdWx0aXNpZyAoc2xvdCDikaMpLiBOZWVkcyBTTElQLTAwMTAsIG5vdCBzZWNwMjU2azEgQklQMzIuICovXG5jb25zdCBFRDI1NTE5X09OQ0hBSU5fRkFNSUxJRVMgPSBuZXcgU2V0KFsnYWxnbycsICd4bG0nLCAnaGJhciddKTtcblxuLyoqXG4gKiBUcnVlIHdoZW4gdGhpcyBpcyB0aGUgc2FmZSBtaW50ZXIncyB1c2VyIGtleTogd2FsbGV0IGlzIGluIGEgc2FmZSwgdGhlIGtleVxuICogaGFzIGEgcGFyZW50IHJvb3QsIGFuZCB0aGVyZSBpcyBubyBjaGlsZC1sZXZlbCBlbmNyeXB0ZWRQcnYgKHNoYXJlZXMgaGF2ZSBvbmUpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTYWZlQ2hpbGRQdWJsaWNPbmx5S2V5Y2hhaW4oXG4gIHdhbGxldFNhZmVJZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBrZXljaGFpbjogS2V5Y2hhaW4gfCB1bmRlZmluZWRcbik6IGtleWNoYWluIGlzIEtleWNoYWluICYgeyBwYXJlbnQ6IHN0cmluZyB9IHtcbiAgcmV0dXJuICEhKHdhbGxldFNhZmVJZCAmJiBrZXljaGFpbj8ucGFyZW50ICYmICFrZXljaGFpbi5lbmNyeXB0ZWRQcnYpO1xufVxuXG4vKipcbiAqIEZldGNoIHRoZSByb290IHVzZXIga2V5Y2hhaW4gZm9yIGEgc2FmZSBjaGlsZCBrZXkuXG4gKiBSZXF1aXJlcyBgc291cmNlID09PSAndXNlcidgIHNvIGEgbWlzY29uZmlndXJlZCBwYXJlbnQgZmFpbHMgZWFybHkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaFJvb3RLZXljaGFpbkZvclNhZmVDaGlsZChcbiAga2V5Y2hhaW5zOiBJS2V5Y2hhaW5zLFxuICBjaGlsZEtleWNoYWluOiBLZXljaGFpblxuKTogUHJvbWlzZTxLZXljaGFpbldpdGhFbmNyeXB0ZWRQcnY+IHtcbiAgaWYgKCFjaGlsZEtleWNoYWluLnBhcmVudCkge1xuICAgIHRocm93IG5ldyBFcnJvcignY2hpbGRLZXljaGFpbi5wYXJlbnQgaXMgcmVxdWlyZWQgdG8gZmV0Y2ggdGhlIHJvb3Qga2V5Y2hhaW4nKTtcbiAgfVxuICBjb25zdCByb290ID0gYXdhaXQga2V5Y2hhaW5zLmdldCh7IGlkOiBjaGlsZEtleWNoYWluLnBhcmVudCB9KTtcbiAgaWYgKHJvb3Quc291cmNlICE9PSAndXNlcicpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZFJvb3RLZXljaGFpblNvdXJjZUVycm9yKHJvb3QuaWQsIHJvb3Quc291cmNlKTtcbiAgfVxuICBpZiAoIXJvb3QuZW5jcnlwdGVkUHJ2KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGByb290IGtleWNoYWluICR7cm9vdC5pZH0gZG9lcyBub3QgaGF2ZSBwcm9wZXJ0eSBlbmNyeXB0ZWRQcnZgKTtcbiAgfVxuICByZXR1cm4gcm9vdCBhcyBLZXljaGFpbldpdGhFbmNyeXB0ZWRQcnY7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZVNhZmVPd25lclNpZ25pbmdQcnZQYXJhbXMge1xuICBiaXRnbzogQml0R29CYXNlO1xuICBrZXljaGFpbnM6IElLZXljaGFpbnM7XG4gIHdhbGxldElkOiBzdHJpbmc7XG4gIC8qKiBPbmNoYWluIHNlY3AyNTZrMTogaGFyZGVuZWQtZGVyaXZlIGFuZCB2ZXJpZnkgcHViLiBPdGhlciBzbG90cyB0aHJvdy4gKi9cbiAgbXVsdGlzaWdUeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGNvaW5GYW1pbHk6IHN0cmluZztcbiAgY2hpbGRLZXljaGFpbjogS2V5Y2hhaW47XG4gIHdhbGxldFBhc3NwaHJhc2U6IHN0cmluZztcbiAgLyoqIFdoZW4gYWxyZWFkeSBmZXRjaGVkIChwYXNzcGhyYXNlIHByZWZsaWdodCksIHNraXAgYSBzZWNvbmQgR0VULiAqL1xuICByb290S2V5Y2hhaW4/OiBLZXljaGFpbldpdGhFbmNyeXB0ZWRQcnY7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBzaWduaW5nIG1hdGVyaWFsIGZvciBhIHNhZmUgb3duZXIgKGNoaWxkIGtleSBoYXMgbm8gZW5jcnlwdGVkUHJ2KS5cbiAqXG4gKiBPbmNoYWluIHNlY3AyNTZrMTogZGVjcnlwdCByb290LCBoYXJkZW5lZC1kZXJpdmUgYXQgYGRlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aGBcbiAqIChgbS88bj4nYCksIGFuZCB2ZXJpZnkgdGhlIHJlZ2lzdGVyZWQgcHViLlxuICogVFNTIGFuZCBlZDI1NTE5IG9uY2hhaW46IHRocm93IOKAlCBkbyBub3QgcmV0dXJuIHJvb3QgbWF0ZXJpYWwgb3IgQklQMzItZGVyaXZlIHRoZSB3cm9uZyBjdXJ2ZS5cbiAqXG4gKiBEbyBub3QgdXNlIGZvciB3YWxsZXQgc2hhcmluZyDigJQgdGhhdCBtdXN0IG5vdCByZWNlaXZlIHJvb3Qga2V5IG1hdGVyaWFsLlxuICogQ2FsbCBvbmx5IHdoZW4gYGlzU2FmZUNoaWxkUHVibGljT25seUtleWNoYWluYCBpcyB0cnVlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZVNhZmVPd25lclNpZ25pbmdQcnYocGFyYW1zOiBSZXNvbHZlU2FmZU93bmVyU2lnbmluZ1BydlBhcmFtcyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHsgYml0Z28sIGtleWNoYWlucywgd2FsbGV0SWQsIG11bHRpc2lnVHlwZSwgY29pbkZhbWlseSwgY2hpbGRLZXljaGFpbiwgd2FsbGV0UGFzc3BocmFzZSB9ID0gcGFyYW1zO1xuXG4gIGlmIChtdWx0aXNpZ1R5cGUgIT09ICdvbmNoYWluJykge1xuICAgIHRocm93IG5ldyBTYWZlT3duZXJTaWduaW5nTm90SW1wbGVtZW50ZWRFcnJvcihcbiAgICAgIHdhbGxldElkLFxuICAgICAgJ1RTUyBvd25lciBzaWduaW5nIGZyb20gdGhlIHJvb3Qga2V5c2hhcmUgaXMgbm90IGltcGxlbWVudGVkLiAnICtcbiAgICAgICAgJ1JldHVybmluZyB0aGUgcm9vdCBwcml2YXRlIGtleSB3b3VsZCBleHBvc2UgbWF0ZXJpYWwgdGhhdCBjYW4gZGVyaXZlIGV2ZXJ5IGNoaWxkIGluIHRoaXMgc2xvdC4nXG4gICAgKTtcbiAgfVxuICBpZiAoRUQyNTUxOV9PTkNIQUlOX0ZBTUlMSUVTLmhhcyhjb2luRmFtaWx5KSkge1xuICAgIHRocm93IG5ldyBTYWZlT3duZXJTaWduaW5nTm90SW1wbGVtZW50ZWRFcnJvcihcbiAgICAgIHdhbGxldElkLFxuICAgICAgYGVkMjU1MTkgbXVsdGlzaWcgb3duZXIgZGVyaXZhdGlvbiAoJHtjb2luRmFtaWx5fSkgaXMgbm90IGltcGxlbWVudGVkOyBCSVAzMiB3b3VsZCBwcm9kdWNlIHRoZSB3cm9uZyBjaGlsZCBrZXkuYFxuICAgICk7XG4gIH1cblxuICBjb25zdCByb290S2V5Y2hhaW4gPSBwYXJhbXMucm9vdEtleWNoYWluID8/IChhd2FpdCBmZXRjaFJvb3RLZXljaGFpbkZvclNhZmVDaGlsZChrZXljaGFpbnMsIGNoaWxkS2V5Y2hhaW4pKTtcbiAgY29uc3Qgcm9vdFBydiA9IGF3YWl0IGRlY3J5cHRLZXljaGFpblByaXZhdGVLZXkoYml0Z28sIHJvb3RLZXljaGFpbiwgd2FsbGV0UGFzc3BocmFzZSk7XG4gIGlmICghcm9vdFBydikge1xuICAgIHRocm93IG5ldyBJbmNvcnJlY3RQYXNzd29yZEVycm9yKCk7XG4gIH1cblxuICBpZiAoIWNoaWxkS2V5Y2hhaW4ucHViKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTYWZlIHdhbGxldCAke3dhbGxldElkfTogY2hpbGQga2V5Y2hhaW4gaXMgbWlzc2luZyBwdWIgZm9yIHByZS1zaWduIHZlcmlmaWNhdGlvbmApO1xuICB9XG4gIGlmIChjaGlsZEtleWNoYWluLmRlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTYWZlIHdhbGxldCAke3dhbGxldElkfTogY2hpbGQga2V5Y2hhaW4gaXMgbWlzc2luZyBkZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGhgKTtcbiAgfVxuXG4gIGNvbnN0IGRlcml2ZWQgPSBkZXJpdmVTYWZlQ2hpbGRIYXJkZW5lZEZyb21YcHJ2KFxuICAgIHJvb3RQcnYsXG4gICAgcGFyc2VEZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGgoY2hpbGRLZXljaGFpbi5kZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGgpXG4gICk7XG4gIGlmIChkZXJpdmVkLnB1YiAhPT0gY2hpbGRLZXljaGFpbi5wdWIpIHtcbiAgICB0aHJvdyBuZXcgU2FmZURlcml2ZWRQdWJsaWNLZXlNaXNtYXRjaEVycm9yKHdhbGxldElkLCBjaGlsZEtleWNoYWluLnB1YiwgZGVyaXZlZC5wdWIpO1xuICB9XG4gIHJldHVybiBkZXJpdmVkLnBydjtcbn1cbiJdfQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZUtleWNoYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3dhbGxldC9zYWZlS2V5Y2hhaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBcURBLHNFQUtDO0FBTUQsc0VBZUM7QUE2RkQsZ0VBZ0JDO0FBeUJELHNFQVFDO0FBek5ELDBDQUF3RztBQUN4RywyREFBaUg7QUFDakgsc0NBQW1EO0FBR25ELE1BQWEsOEJBQStCLFNBQVEsS0FBSztJQUN2RCxZQUFZLEVBQVUsRUFBRSxNQUEwQjtRQUNoRCxLQUFLLENBQ0gsaUJBQWlCLEVBQUUsZ0JBQWdCLE1BQU0sSUFBSSxTQUFTLHNCQUFzQjtZQUMxRSxxREFBcUQsQ0FDeEQsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsZ0NBQWdDLENBQUM7SUFDL0MsQ0FBQztDQUNGO0FBUkQsd0VBUUM7QUFFRCxzRkFBc0Y7QUFDdEYsTUFBYSxpQ0FBa0MsU0FBUSxLQUFLO0lBQzFELFlBQVksUUFBZ0IsRUFBRSxXQUFtQixFQUFFLFVBQWtCO1FBQ25FLEtBQUssQ0FDSCxlQUFlLFFBQVEscUVBQXFFO1lBQzFGLFlBQVksV0FBVyxTQUFTLFVBQVUsR0FBRyxDQUNoRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksR0FBRyxtQ0FBbUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7QUFSRCw4RUFRQztBQUVELGtHQUFrRztBQUNsRyxNQUFhLG1DQUFvQyxTQUFRLEtBQUs7SUFDNUQsWUFBWSxRQUFnQixFQUFFLE1BQWM7UUFDMUMsS0FBSyxDQUFDLGVBQWUsUUFBUSxLQUFLLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLElBQUksR0FBRyxxQ0FBcUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUFMRCxrRkFLQztBQUVELG1HQUFtRztBQUNuRyxNQUFhLDRCQUE2QixTQUFRLEtBQUs7SUFDckQsWUFBWSxRQUFnQixFQUFFLE1BQWM7UUFDMUMs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TUFBTSxDQUFDLFlBQVksS0FBSyxPQUFPO1FBQ3BDLENBQUMsQ0FBQyw2RUFBNkU7UUFDL0UsQ0FBQyxDQUFDLDRFQUE0RSxDQUFDO0FBQ25GLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNJLEtBQUssVUFBVSw2QkFBNkIsQ0FDakQsTUFBMkM7SUFFM0MsT0FBTyxzQkFBc0IsQ0FBQztRQUM1QixHQUFHLE1BQU07UUFDVCx1QkFBdUIsRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUMxQyxJQUFJLDRCQUE0QixDQUFDLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDaEYsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBkZWNyeXB0S2V5Y2hhaW5Qcml2YXRlS2V5LCBJS2V5Y2hhaW5zLCBLZXljaGFpbiwgS2V5Y2hhaW5XaXRoRW5jcnlwdGVkUHJ2IH0gZnJvbSAnLi4va2V5Y2hhaW4nO1xuaW1wb3J0IHsgZGVyaXZlU2FmZUNoaWxkSGFyZGVuZWRGcm9tWHBydiwgcGFyc2VEZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGggfSBmcm9tICcuLi9zYWZlL3NhZmVEZXJpdmF0aW9uJztcbmltcG9ydCB7IEluY29ycmVjdFBhc3N3b3JkRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMnO1xuaW1wb3J0IHR5cGUgeyBEZWNyeXB0ZWRLZXljaGFpbkRhdGEgfSBmcm9tICcuL2lXYWxsZXQnO1xuXG5leHBvcnQgY2xhc3MgSW52YWxpZFJvb3RLZXljaGFpblNvdXJjZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihpZDogc3RyaW5nLCBzb3VyY2U6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHN1cGVyKFxuICAgICAgYFJvb3Qga2V5Y2hhaW4gJHtpZH0gaGFzIHNvdXJjZSAnJHtzb3VyY2UgPz8gJ3Vua25vd24nfSc7IGV4cGVjdGVkICd1c2VyJy4gYCArXG4gICAgICAgIGBVc2luZyBhIGJhY2t1cCBvciBCaXRHbyByb290IHdvdWxkIGZhaWwgYXQgc2lnbmluZy5gXG4gICAgKTtcbiAgICB0aGlzLm5hbWUgPSAnSW52YWxpZFJvb3RLZXljaGFpblNvdXJjZUVycm9yJztcbiAgfVxufVxuXG4vKiogVGhyb3duIHdoZW4gaGFyZGVuZWQgZGVyaXZhdGlvbiBkb2VzIG5vdCBtYXRjaCB0aGUgcmVnaXN0ZXJlZCBjaGlsZCBwdWJsaWMga2V5LiAqL1xuZXhwb3J0IGNsYXNzIFNhZmVEZXJpdmVkUHVibGljS2V5TWlzbWF0Y2hFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3Iod2FsbGV0SWQ6IHN0cmluZywgZXhwZWN0ZWRQdWI6IHN0cmluZywgZGVyaXZlZFB1Yjogc3RyaW5nKSB7XG4gICAgc3VwZXIoXG4gICAgICBgU2FmZSB3YWxsZXQgJHt3YWxsZXRJZH06IGRlcml2ZWQgY2hpbGQgcHVibGljIGtleSBkb2VzIG5vdCBtYXRjaCB0aGUgcmVnaXN0ZXJlZCB1c2VyIGtleS4gYCArXG4gICAgICAgIGBFeHBlY3RlZCAke2V4cGVjdGVkUHVifSwgZ290ICR7ZGVyaXZlZFB1Yn0uYFxuICAgICk7XG4gICAgdGhpcy5uYW1lID0gJ1NhZmVEZXJpdmVkUHVibGljS2V5TWlzbWF0Y2hFcnJvcic7XG4gIH1cbn1cblxuLyoqIFRocm93biB3aGVuIG93bmVyIHNpZ25pbmcgaXMgbm90IGltcGxlbWVudGVkIGZvciB0aGlzIHNhZmUgc2xvdCAoVFNTLCBlZDI1NTE5IG11bHRpc2lnLCDigKYpLiAqL1xuZXhwb3J0IGNsYXNzIFNhZmVPd25lclNpZ25pbmdOb3RJbXBsZW1lbnRlZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcih3YWxsZXRJZDogc3RyaW5nLCBkZXRhaWw6IHN0cmluZykge1xuICAgIHN1cGVyKGBTYWZlIHdhbGxldCAke3dhbGxldElkfTogJHtkZXRhaWx9YCk7XG4gICAgdGhpcy5uYW1lID0gJ1NhZmVPd25lclNpZ25pbmdOb3RJbXBsZW1lbnRlZEVycm9yJztcbiAgfVxufVxuXG4vKiogVGhyb3duIHdoZW4gd2FsbGV0IHNoYXJpbmcgaXMgbm90IGltcGxlbWVudGVkIGZvciB0aGlzIHNhZmUgc2xvdCAoVFNTLCBlZDI1NTE5IG11bHRpc2lnLCDigKYpLiAqL1xuZXhwb3J0IGNsYXNzIFNhZmVTaGFyZU5vdEltcGxlbWVudGVkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKHdhbGxldElkOiBzdHJpbmcsIGRldGFpbDogc3RyaW5nKSB7XG4gICAgc3VwZXIoYFNhZmUgd2FsbGV0ICR7d2FsbGV0SWR9OiAke2RldGFpbH1gKTtcbiAgICB0aGlzLm5hbWUgPSAnU2FmZVNoYXJlTm90SW1wbGVtZW50ZWRFcnJvcic7XG4gIH1cbn1cblxuLyoqIGVkMjU1MTkgb25jaGFpbiBtdWx0aXNpZyAoc2xvdCDikaMpLiBOZWVkcyBTTElQLTAwMTAsIG5vdCBzZWNwMjU2azEgQklQMzIuICovXG5jb25zdCBFRDI1NTE5X09OQ0hBSU5fRkFNSUxJRVMgPSBuZXcgU2V0KFsnYWxnbycsICd4bG0nLCAnaGJhciddKTtcblxuLyoqXG4gKiBUcnVlIHdoZW4gdGhpcyBpcyB0aGUgc2FmZSBtaW50ZXIncyB1c2VyIGtleTogd2FsbGV0IGlzIGluIGEgc2FmZSwgdGhlIGtleVxuICogaGFzIGEgcGFyZW50IHJvb3QsIGFuZCB0aGVyZSBpcyBubyBjaGlsZC1sZXZlbCBlbmNyeXB0ZWRQcnYgKHNoYXJlZXMgaGF2ZSBvbmUpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTYWZlQ2hpbGRQdWJsaWNPbmx5S2V5Y2hhaW4oXG4gIHdhbGxldFNhZmVJZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBrZXljaGFpbjogS2V5Y2hhaW4gfCB1bmRlZmluZWRcbik6IGtleWNoYWluIGlzIEtleWNoYWluICYgeyBwYXJlbnQ6IHN0cmluZyB9IHtcbiAgcmV0dXJuICEhKHdhbGxldFNhZmVJZCAmJiBrZXljaGFpbj8ucGFyZW50ICYmICFrZXljaGFpbi5lbmNyeXB0ZWRQcnYpO1xufVxuXG4vKipcbiAqIEZldGNoIHRoZSByb290IHVzZXIga2V5Y2hhaW4gZm9yIGEgc2FmZSBjaGlsZCBrZXkuXG4gKiBSZXF1aXJlcyBgc291cmNlID09PSAndXNlcidgIHNvIGEgbWlzY29uZmlndXJlZCBwYXJlbnQgZmFpbHMgZWFybHkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaFJvb3RLZXljaGFpbkZvclNhZmVDaGlsZChcbiAga2V5Y2hhaW5zOiBJS2V5Y2hhaW5zLFxuICBjaGlsZEtleWNoYWluOiBLZXljaGFpblxuKTogUHJvbWlzZTxLZXljaGFpbldpdGhFbmNyeXB0ZWRQcnY+IHtcbiAgaWYgKCFjaGlsZEtleWNoYWluLnBhcmVudCkge1xuICAgIHRocm93IG5ldyBFcnJvcignY2hpbGRLZXljaGFpbi5wYXJlbnQgaXMgcmVxdWlyZWQgdG8gZmV0Y2ggdGhlIHJvb3Qga2V5Y2hhaW4nKTtcbiAgfVxuICBjb25zdCByb290ID0gYXdhaXQga2V5Y2hhaW5zLmdldCh7IGlkOiBjaGlsZEtleWNoYWluLnBhcmVudCB9KTtcbiAgaWYgKHJvb3Quc291cmNlICE9PSAndXNlcicpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZFJvb3RLZXljaGFpblNvdXJjZUVycm9yKHJvb3QuaWQsIHJvb3Quc291cmNlKTtcbiAgfVxuICBpZiAoIXJvb3QuZW5jcnlwdGVkUHJ2KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGByb290IGtleWNoYWluICR7cm9vdC5pZH0gZG9lcyBub3QgaGF2ZSBwcm9wZXJ0eSBlbmNyeXB0ZWRQcnZgKTtcbiAgfVxuICByZXR1cm4gcm9vdCBhcyBLZXljaGFpbldpdGhFbmNyeXB0ZWRQcnY7XG59XG5cbi8qKlxuICogU2hhcmVkIHBhcmFtcyBmb3IgcmVzb2x2aW5nIHNhZmUtb3duZXIga2V5IG1hdGVyaWFsIChvd25lciBzaWduaW5nIGFuZCB3YWxsZXQgc2hhcmluZykuXG4gKiBCb3RoIHJlc29sdmVycyBleHRlbmQgdGhpcyBzbyB0aGUgcHJlY29uZGl0aW9uL2Rlcml2YXRpb24gcGF0aCBjYW5ub3QgZGl2ZXJnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYWZlS2V5TWF0ZXJpYWxCYXNlUGFyYW1zIHtcbiAgYml0Z286IEJpdEdvQmFzZTtcbiAga2V5Y2hhaW5zOiBJS2V5Y2hhaW5zO1xuICB3YWxsZXRJZDogc3RyaW5nO1xuICAvKiogT25jaGFpbiBzZWNwMjU2azE6IGhhcmRlbmVkLWRlcml2ZSBhbmQgdmVyaWZ5IHB1Yi4gT3RoZXIgc2xvdHMgdGhyb3cuICovXG4gIG11bHRpc2lnVHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBjb2luRmFtaWx5OiBzdHJpbmc7XG4gIGNoaWxkS2V5Y2hhaW46IEtleWNoYWluO1xuICB3YWxsZXRQYXNzcGhyYXNlOiBzdHJpbmc7XG4gIC8qKiBXaGVuIGFscmVhZHkgZmV0Y2hlZCAocGFzc3BocmFzZSBwcmVmbGlnaHQpLCBza2lwIGEgc2Vjb25kIEdFVC4gKi9cbiAgcm9vdEtleWNoYWluPzogS2V5Y2hhaW5XaXRoRW5jcnlwdGVkUHJ2O1xufVxuXG5leHBvcnQgdHlwZSBSZXNvbHZlU2FmZU93bmVyU2lnbmluZ1BydlBhcmFtcyA9IFNhZmVLZXlNYXRlcmlhbEJhc2VQYXJhbXM7XG5cbnR5cGUgU2FmZUtleU1hdGVyaWFsU2xvdCA9ICd0c3MnIHwgJ2VkMjU1MTknO1xuXG50eXBlIFJlc29sdmVTYWZlS2V5TWF0ZXJpYWxQYXJhbXMgPSBTYWZlS2V5TWF0ZXJpYWxCYXNlUGFyYW1zICYge1xuICAvKiogQ29uc3RydWN0cyB0aGUgbm90LWltcGxlbWVudGVkIGVycm9yIGZvciB0aGUgY3VycmVudCByZXNvbHZlciAoc2lnbmluZyB2cyBzaGFyaW5nKS4gKi9cbiAgbWFrZU5vdEltcGxlbWVudGVkRXJyb3I6IChzbG90OiBTYWZlS2V5TWF0ZXJpYWxTbG90LCB3YWxsZXRJZDogc3RyaW5nKSA9PiBFcnJvcjtcbn07XG5cbi8qKlxuICogU2hhcmVkIGNvcmUgdGhhdCByZXNvbHZlcyBzYWZlIGtleSBtYXRlcmlhbCBmb3IgYSBwdWItb25seSBzYWZlIGNoaWxkLiBSZXR1cm5zIHRoZSBDSElMRFxuICogYHtwcnYsIHB1Yn1gIG9ubHkg4oCUIG5ldmVyIHRoZSByb290IOKAlCBzbyB0aGUgcm9vdCBjYW4gbmV2ZXIgbGVhayBpbnRvIGEgc2hhcmUgZG9jdW1lbnQuXG4gKlxuICogT25jaGFpbiBzZWNwMjU2azE6IGRlY3J5cHQgcm9vdCwgaGFyZGVuZWQtZGVyaXZlIGF0IGBkZXJpdmVkRnJvbVBhcmVudFdpdGhQYXRoYFxuICogKGBtLzxuPidgKSwgYW5kIHZlcmlmeSB0aGUgcmVnaXN0ZXJlZCBwdWIuIFRTUyBhbmQgZWQyNTUxOSBvbmNoYWluIHRocm93IHZpYVxuICogYG1ha2VOb3RJbXBsZW1lbnRlZEVycm9yYCDigJQgdGhlIGNhbGxlciBjb25zdHJ1Y3RzIGl0cyBvd24gZXJyb3IgY2xhc3MgKyBtZXNzYWdlLCBzbyB0aGVcbiAqIGd1YXJkIHNldCBzdGF5cyBzaGFyZWQgd2hpbGUgc2lnbmluZy9zaGFyaW5nIHJlcG9ydCB0aGVpciBvd24gZXJyb3JzLlxuICovXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlU2FmZUtleU1hdGVyaWFsKHBhcmFtczogUmVzb2x2ZVNhZmVLZXlNYXRlcmlhbFBhcmFtcyk6IFByb21pc2U8eyBwcnY6IHN0cmluZzsgcHViOiBzdHJpbmcgfT4ge1xuICBjb25zdCB7XG4gICAgYml0Z28sXG4gICAga2V5Y2hhaW5zLFxuICAgIHdhbGxldElkLFxuICAgIG11bHRpc2lnVHlwZSxcbiAgICBjb2luRmFtaWx5LFxuICAgIGNoaWxkS2V5Y2hhaW4sXG4gICAgd2FsbGV0UGFzc3BocmFzZSxcbiAgICBtYWtlTm90SW1wbGVtZW50ZWRFcnJvcixcbiAgfSA9IHBhcmFtcztcblxuICBpZiAobXVsdGlzaWdUeXBlICE9PSAnb25jaGFpbicpIHtcbiAgICB0aHJvdyBtYWtlTm90SW1wbGVtZW50ZWRFcnJvcigndHNzJywgd2FsbGV0SWQpO1xuICB9XG4gIGlmIChFRDI1NTE5X09OQ0hBSU5fRkFNSUxJRVMuaGFzKGNvaW5GYW1pbHkpKSB7XG4gICAgdGhyb3cgbWFrZU5vdEltcGxlbWVudGVkRXJyb3IoJ2VkMjU1MTknLCB3YWxsZXRJZCk7XG4gIH1cblxuICBjb25zdCByb290S2V5Y2hhaW4gPSBwYXJhbXMucm9vdEtleWNoYWluID8/IChhd2FpdCBmZXRjaFJvb3RLZXljaGFpbkZvclNhZmVDaGlsZChrZXljaGFpbnMsIGNoaWxkS2V5Y2hhaW4pKTtcbiAgY29uc3Qgcm9vdFBydiA9IGF3YWl0IGRlY3J5cHRLZXljaGFpblByaXZhdGVLZXkoYml0Z28sIHJvb3RLZXljaGFpbiwgd2FsbGV0UGFzc3BocmFzZSk7XG4gIGlmICghcm9vdFBydikge1xuICAgIHRocm93IG5ldyBJbmNvcnJlY3RQYXNzd29yZEVycm9yKCk7XG4gIH1cblxuICBpZiAoIWNoaWxkS2V5Y2hhaW4ucHViKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTYWZlIHdhbGxldCAke3dhbGxldElkfTogY2hpbGQga2V5Y2hhaW4gaXMgbWlzc2luZyBwdWIgZm9yIHByZS1zaWduIHZlcmlmaWNhdGlvbmApO1xuICB9XG4gIGlmIChjaGlsZEtleWNoYWluLmRlcml2ZWRGcm9tUGFyZW50V2l0aFBhdGggPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgU2FmZSB3YWxsZXQgJHt3YWxsZXRJZH06IGNoaWxkIGtleWNoYWluIGlzIG1pc3NpbmcgZGVyaXZlZEZyb21QYXJlbnRXaXRoUGF0aGApO1xuICB9XG5cbiAgY29uc3QgZGVyaXZlZCA9IGRlcml2ZVNhZmVDaGlsZEhhcmRlbmVkRnJvbVhwcnYoXG4gICAgcm9vdFBydixcbiAgICBwYXJzZURlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aChjaGlsZEtleWNoYWluLmRlcml2ZWRGcm9tUGFyZW50V2l0aFBhdGgpXG4gICk7XG4gIGlmIChkZXJpdmVkLnB1YiAhPT0gY2hpbGRLZXljaGFpbi5wdWIpIHtcbiAgICB0aHJvdyBuZXcgU2FmZURlcml2ZWRQdWJsaWNLZXlNaXNtYXRjaEVycm9yKHdhbGxldElkLCBjaGlsZEtleWNoYWluLnB1YiwgZGVyaXZlZC5wdWIpO1xuICB9XG5cbiAgaWYgKGRlcml2ZWQucHViID09PSByb290S2V5Y2hhaW4ucHViKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTYWZlIHdhbGxldCAke3dhbGxldElkfTogZGVyaXZlZCBjaGlsZCBwdWIgdW5leHBlY3RlZGx5IGVxdWFscyB0aGUgcm9vdCBwdWJgKTtcbiAgfVxuICByZXR1cm4geyBwcnY6IGRlcml2ZWQucHJ2LCBwdWI6IGRlcml2ZWQucHViIH07XG59XG5cbi8qKlxuICogUmVzb2x2ZSBzaWduaW5nIG1hdGVyaWFsIGZvciBhIHNhZmUgb3duZXIgKGNoaWxkIGtleSBoYXMgbm8gZW5jcnlwdGVkUHJ2KS5cbiAqXG4gKiBPbmNoYWluIHNlY3AyNTZrMTogZGVjcnlwdCByb290LCBoYXJkZW5lZC1kZXJpdmUgYXQgYGRlcml2ZWRGcm9tUGFyZW50V2l0aFBhdGhgXG4gKiAoYG0vPG4+J2ApLCBhbmQgdmVyaWZ5IHRoZSByZWdpc3RlcmVkIHB1Yi5cbiAqIFRTUyBhbmQgZWQyNTUxOSBvbmNoYWluOiB0aHJvdyDigJQgZG8gbm90IHJldHVybiByb290IG1hdGVyaWFsIG9yIEJJUDMyLWRlcml2ZSB0aGUgd3JvbmcgY3VydmUuXG4gKlxuICogRG8gbm90IHVzZSBmb3Igd2FsbGV0IHNoYXJpbmcg4oCUIHRoYXQgbXVzdCBub3QgcmVjZWl2ZSByb290IGtleSBtYXRlcmlhbC5cbiAqIENhbGwgb25seSB3aGVuIGBpc1NhZmVDaGlsZFB1YmxpY09ubHlLZXljaGFpbmAgaXMgdHJ1ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVTYWZlT3duZXJTaWduaW5nUHJ2KHBhcmFtczogUmVzb2x2ZVNhZmVPd25lclNpZ25pbmdQcnZQYXJhbXMpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCB7IHBydiB9ID0gYXdhaXQgcmVzb2x2ZVNhZmVLZXlNYXRlcmlhbCh7XG4gICAgLi4ucGFyYW1zLFxuICAgIG1ha2VOb3RJbXBsZW1lbnRlZEVycm9yOiAoc2xvdCwgd2FsbGV0SWQpID0+XG4gICAgICBzbG90ID09PSAnZWQyNTUxOSdcbiAgICAgICAgPyBuZXcgU2FmZU93bmVyU2lnbmluZ05vdEltcGxlbWVudGVkRXJyb3IoXG4gICAgICAgICAgICB3YWxsZXRJZCxcbiAgICAgICAgICAgIGBlZDI1NTE5IG11bHRpc2lnIG93bmVyIGRlcml2YXRpb24gKCR7cGFyYW1zLmNvaW5GYW1pbHl9KSBpcyBub3QgaW1wbGVtZW50ZWQ7IEJJUDMyIHdvdWxkIHByb2R1Y2UgdGhlIHdyb25nIGNoaWxkIGtleS5gXG4gICAgICAgICAgKVxuICAgICAgICA6IG5ldyBTYWZlT3duZXJTaWduaW5nTm90SW1wbGVtZW50ZWRFcnJvcihcbiAgICAgICAgICAgIHdhbGxldElkLFxuICAgICAgICAgICAgJ1RTUyBvd25lciBzaWduaW5nIGZyb20gdGhlIHJvb3Qga2V5c2hhcmUgaXMgbm90IGltcGxlbWVudGVkLiAnICtcbiAgICAgICAgICAgICAgJ1JldHVybmluZyB0aGUgcm9vdCBwcml2YXRlIGtleSB3b3VsZCBleHBvc2UgbWF0ZXJpYWwgdGhhdCBjYW4gZGVyaXZlIGV2ZXJ5IGNoaWxkIGluIHRoaXMgc2xvdC4nXG4gICAgICAgICAgKSxcbiAgfSk7XG4gIHJldHVybiBwcnY7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZVNhZmVDaGlsZFBydkZvclNoYXJpbmdQYXJhbXMgZXh0ZW5kcyBTYWZlS2V5TWF0ZXJpYWxCYXNlUGFyYW1zIHtcbiAgbXBjQWxnb3JpdGhtPzogJ2VjZHNhJyB8ICdlZGRzYSc7XG59XG5cbi8qKiBTbG90LW5hbWVkIG5vdC1pbXBsZW1lbnRlZCBkZXRhaWwgZm9yIHdhbGxldCBzaGFyaW5nLiAqL1xuZnVuY3Rpb24gc2FmZVNoYXJlU2xvdERldGFpbChzbG90OiBTYWZlS2V5TWF0ZXJpYWxTbG90LCBwYXJhbXM6IFJlc29sdmVTYWZlQ2hpbGRQcnZGb3JTaGFyaW5nUGFyYW1zKTogc3RyaW5nIHtcbiAgaWYgKHNsb3QgPT09ICdlZDI1NTE5Jykge1xuICAgIHJldHVybiBgZWQyNTUxOSBtdWx0aXNpZyBzYWZlIHNoYXJpbmcgKCR7cGFyYW1zLmNvaW5GYW1pbHl9KSBpcyBub3QgaW1wbGVtZW50ZWQ7IEJJUDMyIHdvdWxkIGRlcml2ZSB0aGUgd3JvbmcgY2hpbGQuYDtcbiAgfVxuICByZXR1cm4gcGFyYW1zLm1wY0FsZ29yaXRobSA9PT0gJ2VkZHNhJ1xuICAgID8gJ2VkZHNhTXBjIHNhZmUgc2hhcmluZyBpcyBub3QgaW1wbGVtZW50ZWQgKG5lZWRzIHRoZSBFZERTQSBkZXJpdmUgY2VyZW1vbnkpLidcbiAgICA6ICdlY2RzYU1wYyBzYWZlIHNoYXJpbmcgaXMgbm90IGltcGxlbWVudGVkIChuZWVkcyB0aGUgREtMUyBkZXJpdmUgY2VyZW1vbnkpLic7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBzaGFyaW5nIG1hdGVyaWFsIGZvciBhIHNhZmUgb3duZXIgKGNoaWxkIGtleSBoYXMgbm8gZW5jcnlwdGVkUHJ2KS5cbiAqXG4gKiBPbmNoYWluIHNlY3AyNTZrMTogZGVjcnlwdCByb290LCBoYXJkZW5lZC1kZXJpdmUgYXQgYGRlcml2ZWRGcm9tUGFyZW50V2l0aFBhdGhgXG4gKiAoYG0vPG4+J2ApLCB2ZXJpZnkgdGhlIHJlZ2lzdGVyZWQgcHViLCBhbmQgcmV0dXJuIHRoZSBDSElMRCBge3BydiwgcHVifWAg4oCUIG5ldmVyIHRoZSByb290LlxuICogVFNTIGFuZCBlZDI1NTE5IG9uY2hhaW46IHRocm93IGBTYWZlU2hhcmVOb3RJbXBsZW1lbnRlZEVycm9yYCBuYW1pbmcgdGhlIHNsb3QgKyBibG9ja2VyLlxuICpcbiAqIENhbGwgb25seSB3aGVuIGBpc1NhZmVDaGlsZFB1YmxpY09ubHlLZXljaGFpbmAgaXMgdHJ1ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVTYWZlQ2hpbGRQcnZGb3JTaGFyaW5nKFxuICBwYXJhbXM6IFJlc29sdmVTYWZlQ2hpbGRQcnZGb3JTaGFyaW5nUGFyYW1zXG4pOiBQcm9taXNlPERlY3J5cHRlZEtleWNoYWluRGF0YT4ge1xuICByZXR1cm4gcmVzb2x2ZVNhZmVLZXlNYXRlcmlhbCh7XG4gICAgLi4ucGFyYW1zLFxuICAgIG1ha2VOb3RJbXBsZW1lbnRlZEVycm9yOiAoc2xvdCwgd2FsbGV0SWQpID0+XG4gICAgICBuZXcgU2FmZVNoYXJlTm90SW1wbGVtZW50ZWRFcnJvcih3YWxsZXRJZCwgc2FmZVNoYXJlU2xvdERldGFpbChzbG90LCBwYXJhbXMpKSxcbiAgfSk7XG59XG4iXX0=
@@ -14,7 +14,7 @@ import { DefiVault } from '../defi';
14
14
  import { GoStakingWallet, StakingWallet } from '../staking';
15
15
  import { TradingAccount } from '../trading';
16
16
  import { TxRequest } from '../utils';
17
- import { AccelerateTransactionOptions, AddressesByBalanceOptions, AddressesOptions, BuildConsolidationTransactionOptions, BuildResourceDelegationTransactionOptions, BuildResourceManagementTransactionResult, BuildResourceUndelegationTransactionOptions, ResourceManagementSendResult, BuildTokenEnablementOptions, BulkCreateShareOption, BulkWalletShareKeychain, BulkWalletShareOptions, ChangeFeeOptions, ConsolidateUnspentsOptions, CreateAddressOptions, CreateBulkWalletShareListResponse, CreatePolicyRuleOptions, CreateShareOptions, CrossChainUTXO, DecryptedKeychainData, DeployForwardersOptions, DownloadKeycardOptions, FanoutUnspentsOptions, FetchCrossChainUTXOsOptions, FlushForwarderTokenOptions, ForwarderBalance, ForwarderBalanceOptions, FreezeOptions, FundForwarderParams, FundForwardersOptions, GetAddressOptions, GetPrvOptions, GetTransactionOptions, GetTransferOptions, GetUserPrvOptions, type IWallet, ManageUnspentReservationOptions, MaximumSpendable, MaximumSpendableOptions, ModifyWebhookOptions, NftBalance, PaginationOptions, PrebuildAndSignTransactionOptions, PrebuildTransactionOptions, PrebuildTransactionResult, RecoverTokenOptions, RemovePolicyRuleOptions, RemoveUserOptions, SendManyOptions, SendNFTOptions, SendNFTResult, SendOptions, SharedKeyChain, ShareWalletOptions, SignAndSendTxRequestOptions, SimulateWebhookOptions, SubmitTransactionOptions, SubWalletType, SweepOptions, TransferBySequenceIdOptions, TransferCommentOptions, TransfersOptions, UnspentsOptions, UpdateAddressOptions, UpdateBuildDefaultOptions, UpdateWalletOptions, UpgradeEncryptionOptions, UpgradeEncryptionResult, WalletCoinSpecific, WalletData, WalletEcdsaChallenges, WalletSignMessageOptions, WalletSignTransactionOptions, WalletSignTypedDataOptions, WalletType, BuildTokenApprovalResponse, WalletInitResult, GetAccountResourcesOptions, GetAccountResourcesResponse, GetResourceDelegationsOptions, GetResourceDelegationsResponse } from './iWallet';
17
+ import { AccelerateTransactionOptions, AddressesByBalanceOptions, AddressesOptions, BuildConsolidationTransactionOptions, BuildResourceDelegationTransactionOptions, BuildResourceManagementTransactionResult, BuildResourceUndelegationTransactionOptions, ResourceManagementSendResult, BuildTokenEnablementOptions, BulkCreateShareOption, BulkWalletShareKeychain, BulkWalletShareOptions, ChangeFeeOptions, ConsolidateUnspentsOptions, CreateAddressOptions, CreateBulkWalletShareListResponse, CreatePolicyRuleOptions, CreateShareOptions, CrossChainUTXO, DecryptedKeychainData, DeployForwardersOptions, DownloadKeycardOptions, FanoutUnspentsOptions, FetchCrossChainUTXOsOptions, FlushForwarderTokenOptions, ForwarderBalance, ForwarderBalanceOptions, FreezeOptions, FundForwarderParams, FundForwardersOptions, GetAddressOptions, GetPrvOptions, GetPotentialStuckTxsOptions, GetPotentialStuckTxsResult, GetTransactionOptions, GetTransferOptions, GetUserPrvOptions, type IWallet, ManageUnspentReservationOptions, MaximumSpendable, MaximumSpendableOptions, ModifyWebhookOptions, NftBalance, PaginationOptions, PrebuildAndSignTransactionOptions, PrebuildTransactionOptions, PrebuildTransactionResult, RecoverTokenOptions, RemovePolicyRuleOptions, RemoveUserOptions, SendManyOptions, SendNFTOptions, SendNFTResult, SendOptions, SharedKeyChain, ShareWalletOptions, SignAndSendTxRequestOptions, SimulateWebhookOptions, SubmitTransactionOptions, SubWalletType, SweepOptions, TransferBySequenceIdOptions, TransferCommentOptions, TransfersOptions, UnspentsOptions, UpdateAddressOptions, UpdateBuildDefaultOptions, UpdateWalletOptions, UpgradeEncryptionOptions, UpgradeEncryptionResult, WalletCoinSpecific, WalletData, WalletEcdsaChallenges, WalletSignMessageOptions, WalletSignTransactionOptions, WalletSignTypedDataOptions, WalletType, BuildTokenApprovalResponse, WalletInitResult, GetAccountResourcesOptions, GetAccountResourcesResponse, GetResourceDelegationsOptions, GetResourceDelegationsResponse } from './iWallet';
18
18
  export declare enum ManageUnspentsOptions {
19
19
  BUILD_ONLY = 0,
20
20
  BUILD_SIGN_SEND = 1
@@ -140,6 +140,11 @@ export declare class Wallet implements IWallet {
140
140
  * @returns {*}
141
141
  */
142
142
  transactions(params?: PaginationOptions): Promise<any>;
143
+ /**
144
+ * List potentially stuck transactions for this wallet.
145
+ * Age thresholds are opt-in; when both are supplied, the API uses OR semantics.
146
+ */
147
+ getPotentialStuckTxs(params?: GetPotentialStuckTxsOptions): Promise<GetPotentialStuckTxsResult[]>;
143
148
  /**
144
149
  * Return a list of nft tokens for this wallet. Will always return undefined if the wallet
145
150
  * was not initialized with the allTokens flag.
@@ -453,6 +458,7 @@ export declare class Wallet implements IWallet {
453
458
  * Useful when trying to get the users' keychain from the server before decrypting to sign a transaction.
454
459
  */
455
460
  getEncryptedUserKeychain(): Promise<KeychainWithEncryptedPrv>;
461
+ private getSafeOwnerChildKeychain;
456
462
  /**
457
463
  * Gets the unencrypted private key for this wallet (be careful!)
458
464
  * Requires wallet passphrase
@@ -517,10 +523,13 @@ export declare class Wallet implements IWallet {
517
523
  * @param pub - The wallet's public key
518
524
  * @param userPubkey - The recipient user's public key
519
525
  * @param path - The key path
520
- * @param encryptionVersion - Optional encryption version (defaults to v2)
526
+ * @param encryptionVersion - Deprecated and ignored because the shared key is high entropy.
521
527
  * @returns The encrypted keychain for the recipient with all required fields
522
528
  */
523
- encryptPrvForUser(decryptedPrv: string, pub: string, userPubkey: string, path: string, encryptionVersion?: EncryptionVersion): Promise<BulkWalletShareKeychain>;
529
+ encryptPrvForUser(decryptedPrv: string, pub: string, userPubkey: string, path: string,
530
+ /** @deprecated Ignored because the shared key is high entropy. */
531
+ encryptionVersion?: EncryptionVersion): Promise<BulkWalletShareKeychain>;
532
+ private rethrowUnlessColdWalletShare;
524
533
  /**
525
534
  * Prepares a keychain for sharing with another user.
526
535
  * Fetches the wallet keychain, decrypts it, and encrypts it for the recipient.
@@ -528,9 +537,13 @@ export declare class Wallet implements IWallet {
528
537
  * @param walletPassphrase - The passphrase to decrypt the keychain
529
538
  * @param pubkey - The recipient's public key
530
539
  * @param path - The key path
540
+ * @param encryptionVersion - Deprecated and ignored because the shared key is high entropy.
541
+ * @param decryptedKeychain - Pre-decrypted keychain for bulk sharing
531
542
  * @returns The encrypted keychain for the recipient
532
543
  */
533
- prepareSharedKeychain(walletPassphrase: string | undefined, pubkey: string, path: string, encryptionVersion?: EncryptionVersion, decryptedKeychain?: DecryptedKeychainData): Promise<SharedKeyChain>;
544
+ prepareSharedKeychain(walletPassphrase: string | undefined, pubkey: string, path: string,
545
+ /** @deprecated Ignored because the shared key is high entropy. */
546
+ encryptionVersion?: EncryptionVersion, decryptedKeychain?: DecryptedKeychainData): Promise<SharedKeyChain>;
534
547
  /**
535
548
  * Share this wallet with another BitGo user.
536
549
  * @param params
@@ -826,7 +839,7 @@ export declare class Wallet implements IWallet {
826
839
  toGoStakingWallet(): GoStakingWallet;
827
840
  /**
828
841
  * Creates and downloads PDF keycard for wallet (requires response from wallets.generateWallet).
829
- * Defaults to v2 encryption for Box D; pass `encryptionVersion: 1` for legacy v1.
842
+ * `encryptionVersion` applies to the backup key. Box D uses its fixed version.
830
843
  *
831
844
  * Note: this is example code and is not the version used on bitgo.com
832
845
  *
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/wallet.ts"],"names":[],"mappings":"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"}