@bitgo-beta/sdk-core 8.2.1-beta.11 → 8.2.1-beta.111

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 (159) hide show
  1. package/CHANGELOG.md +302 -0
  2. package/dist/src/account-lib/baseCoin/enum.d.ts +4 -1
  3. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
  4. package/dist/src/account-lib/baseCoin/enum.js +7 -1
  5. package/dist/src/account-lib/mpc/curves/ed25519.d.ts +4 -18
  6. package/dist/src/account-lib/mpc/curves/ed25519.d.ts.map +1 -1
  7. package/dist/src/account-lib/mpc/curves/ed25519.js +6 -60
  8. package/dist/src/account-lib/mpc/index.d.ts +4 -4
  9. package/dist/src/account-lib/mpc/index.d.ts.map +1 -1
  10. package/dist/src/account-lib/mpc/index.js +6 -6
  11. package/dist/src/account-lib/mpc/shamir.d.ts +5 -37
  12. package/dist/src/account-lib/mpc/shamir.d.ts.map +1 -1
  13. package/dist/src/account-lib/mpc/shamir.js +6 -130
  14. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +34 -12
  15. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -1
  16. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +555 -146
  17. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts +2 -2
  18. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts.map +1 -1
  19. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.js +3 -3
  20. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts +70 -55
  21. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts.map +1 -1
  22. package/dist/src/account-lib/mpc/tss/ecdsa/types.js +1 -1
  23. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts +1 -1
  24. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts.map +1 -1
  25. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.js +1 -1
  26. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts +0 -3
  27. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts.map +1 -1
  28. package/dist/src/account-lib/mpc/tss/eddsa/types.js +1 -1
  29. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +16 -0
  30. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
  31. package/dist/src/bitgo/baseCoin/baseCoin.js +15 -1
  32. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +20 -4
  33. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  34. package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
  35. package/dist/src/bitgo/bitgoBase.d.ts +2 -1
  36. package/dist/src/bitgo/bitgoBase.d.ts.map +1 -1
  37. package/dist/src/bitgo/bitgoBase.js +1 -1
  38. package/dist/src/bitgo/enterprise/enterprise.d.ts +13 -1
  39. package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -1
  40. package/dist/src/bitgo/enterprise/enterprise.js +29 -1
  41. package/dist/src/bitgo/enterprise/enterprises.d.ts +6 -0
  42. package/dist/src/bitgo/enterprise/enterprises.d.ts.map +1 -1
  43. package/dist/src/bitgo/enterprise/enterprises.js +26 -1
  44. package/dist/src/bitgo/enterprise/iEnterprise.d.ts +4 -1
  45. package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -1
  46. package/dist/src/bitgo/enterprise/iEnterprise.js +1 -1
  47. package/dist/src/bitgo/enterprise/iEnterprises.d.ts +2 -0
  48. package/dist/src/bitgo/enterprise/iEnterprises.d.ts.map +1 -1
  49. package/dist/src/bitgo/enterprise/iEnterprises.js +1 -1
  50. package/dist/src/bitgo/environments.d.ts +7 -0
  51. package/dist/src/bitgo/environments.d.ts.map +1 -1
  52. package/dist/src/bitgo/environments.js +17 -3
  53. package/dist/src/bitgo/keychain/iKeychains.d.ts +6 -0
  54. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  55. package/dist/src/bitgo/keychain/iKeychains.js +1 -1
  56. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  57. package/dist/src/bitgo/keychain/keychains.js +30 -24
  58. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts +124 -89
  59. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts.map +1 -1
  60. package/dist/src/bitgo/keychain/ovcJsonCodec.js +31 -24
  61. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +2 -0
  62. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -1
  63. package/dist/src/bitgo/pendingApproval/iPendingApproval.js +1 -1
  64. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -1
  65. package/dist/src/bitgo/pendingApproval/pendingApproval.js +13 -1
  66. package/dist/src/bitgo/recovery/initiate.d.ts +7 -1
  67. package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -1
  68. package/dist/src/bitgo/recovery/initiate.js +1 -1
  69. package/dist/src/bitgo/staking/iStakingWallet.d.ts +11 -1
  70. package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -1
  71. package/dist/src/bitgo/staking/iStakingWallet.js +1 -1
  72. package/dist/src/bitgo/staking/stakingWallet.d.ts +7 -1
  73. package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
  74. package/dist/src/bitgo/staking/stakingWallet.js +9 -1
  75. package/dist/src/bitgo/tss/common.d.ts +15 -4
  76. package/dist/src/bitgo/tss/common.d.ts.map +1 -1
  77. package/dist/src/bitgo/tss/common.js +26 -11
  78. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +11 -8
  79. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
  80. package/dist/src/bitgo/tss/ecdsa/ecdsa.js +36 -33
  81. package/dist/src/bitgo/tss/ecdsa/types.d.ts +2 -2
  82. package/dist/src/bitgo/tss/ecdsa/types.d.ts.map +1 -1
  83. package/dist/src/bitgo/tss/ecdsa/types.js +1 -1
  84. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +6 -5
  85. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -1
  86. package/dist/src/bitgo/tss/eddsa/eddsa.js +20 -9
  87. package/dist/src/bitgo/tss/types.d.ts +19 -0
  88. package/dist/src/bitgo/tss/types.d.ts.map +1 -1
  89. package/dist/src/bitgo/tss/types.js +1 -1
  90. package/dist/src/bitgo/utils/codecProps.d.ts +7 -0
  91. package/dist/src/bitgo/utils/codecProps.d.ts.map +1 -0
  92. package/dist/src/bitgo/utils/codecProps.js +41 -0
  93. package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -1
  94. package/dist/src/bitgo/utils/opengpgUtils.js +7 -10
  95. package/dist/src/bitgo/utils/postWithCodec.d.ts +18 -0
  96. package/dist/src/bitgo/utils/postWithCodec.d.ts.map +1 -0
  97. package/dist/src/bitgo/utils/postWithCodec.js +59 -0
  98. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +54 -12
  99. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
  100. package/dist/src/bitgo/utils/tss/baseTSSUtils.js +66 -9
  101. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +99 -8
  102. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  103. package/dist/src/bitgo/utils/tss/baseTypes.js +26 -2
  104. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts +47 -7
  105. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
  106. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +242 -128
  107. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts +9 -0
  108. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts.map +1 -1
  109. package/dist/src/bitgo/utils/tss/ecdsa/types.js +1 -1
  110. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +18 -5
  111. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
  112. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +79 -25
  113. package/dist/src/bitgo/wallet/BuildParams.d.ts +110 -0
  114. package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -0
  115. package/dist/src/bitgo/wallet/BuildParams.js +119 -0
  116. package/dist/src/bitgo/wallet/SendTransactionRequest.d.ts +92 -0
  117. package/dist/src/bitgo/wallet/SendTransactionRequest.d.ts.map +1 -0
  118. package/dist/src/bitgo/wallet/SendTransactionRequest.js +41 -0
  119. package/dist/src/bitgo/wallet/iWallet.d.ts +13 -1
  120. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  121. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  122. package/dist/src/bitgo/wallet/wallet.d.ts +11 -2
  123. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  124. package/dist/src/bitgo/wallet/wallet.js +136 -80
  125. package/dist/src/index.d.ts +5 -1
  126. package/dist/src/index.d.ts.map +1 -1
  127. package/dist/src/index.js +4 -2
  128. package/dist/src/openssl/index.d.ts +4 -1
  129. package/dist/src/openssl/index.d.ts.map +1 -1
  130. package/dist/src/openssl/index.js +7 -12
  131. package/dist/test/node.utils.d.ts +2 -0
  132. package/dist/test/node.utils.d.ts.map +1 -0
  133. package/dist/test/node.utils.js +5 -0
  134. package/dist/test/unit/bitgo/utils/postWithCodec.d.ts +2 -0
  135. package/dist/test/unit/bitgo/utils/postWithCodec.d.ts.map +1 -0
  136. package/dist/test/unit/bitgo/utils/postWithCodec.js +79 -0
  137. package/dist/test/unit/bitgo/wallet/SendTransactionRequest.d.ts +2 -0
  138. package/dist/test/unit/bitgo/wallet/SendTransactionRequest.d.ts.map +1 -0
  139. package/dist/test/unit/bitgo/wallet/SendTransactionRequest.js +49 -0
  140. package/dist/test/unit/openssl.d.ts +2 -0
  141. package/dist/test/unit/openssl.d.ts.map +1 -0
  142. package/dist/test/unit/openssl.js +39 -0
  143. package/dist/test/unit/units.d.ts +2 -0
  144. package/dist/test/unit/units.d.ts.map +1 -0
  145. package/dist/test/unit/units.js +98 -0
  146. package/dist/tsconfig.tsbuildinfo +1 -8272
  147. package/package.json +11 -10
  148. package/dist/src/account-lib/mpc/hdTree.d.ts +0 -31
  149. package/dist/src/account-lib/mpc/hdTree.d.ts.map +0 -1
  150. package/dist/src/account-lib/mpc/hdTree.js +0 -141
  151. package/dist/src/account-lib/mpc/types.d.ts +0 -5
  152. package/dist/src/account-lib/mpc/types.d.ts.map +0 -1
  153. package/dist/src/account-lib/mpc/types.js +0 -3
  154. package/dist/src/openssl/openssl.d.ts +0 -12
  155. package/dist/src/openssl/openssl.d.ts.map +0 -1
  156. package/dist/src/openssl/openssl.js +0 -48
  157. package/dist/src/openssl/opensslbytes.d.ts +0 -4
  158. package/dist/src/openssl/opensslbytes.d.ts.map +0 -1
  159. package/dist/src/openssl/opensslbytes.js +0 -20
@@ -2,10 +2,10 @@
2
2
  * Zero Knowledge Range Proofs as described in (Two-party generation of DSA signatures)[1].
3
3
  * [1]: https://reitermk.github.io/papers/2004/IJIS.pdf
4
4
  */
5
- import { EcdsaRangeProof, randomCoPrimeTo } from '@bitgo-beta/sdk-lib-mpc';
5
+ import { EcdsaRangeProof, randomPositiveCoPrimeTo } from '@bitgo-beta/sdk-lib-mpc';
6
6
  declare const generateSafePrimes: typeof EcdsaRangeProof.generateSafePrimes, generateNtilde: typeof EcdsaRangeProof.generateNtilde, generateNtildeProof: typeof EcdsaRangeProof.generateNtildeProof, verifyNtildeProof: typeof EcdsaRangeProof.verifyNtildeProof, prove: typeof EcdsaRangeProof.prove, proveWithCheck: typeof EcdsaRangeProof.proveWithCheck, verify: typeof EcdsaRangeProof.verify, verifyWithCheck: typeof EcdsaRangeProof.verifyWithCheck;
7
7
  /**
8
8
  * @deprecated Use EcdsaRangeProof from sdk-lib-mpc instead
9
9
  */
10
- export { generateSafePrimes, randomCoPrimeTo, generateNtilde, generateNtildeProof, verifyNtildeProof, prove, proveWithCheck, verify, verifyWithCheck, };
10
+ export { generateSafePrimes, randomPositiveCoPrimeTo, generateNtilde, generateNtildeProof, verifyNtildeProof, prove, proveWithCheck, verify, verifyWithCheck, };
11
11
  //# sourceMappingURL=rangeproof.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rangeproof.d.ts","sourceRoot":"","sources":["../../../../../../src/account-lib/mpc/tss/ecdsa/rangeproof.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE3E,QAAA,MACE,kBAAkB,6CAClB,cAAc,yCACd,mBAAmB,8CACnB,iBAAiB,4CACjB,KAAK,gCACL,cAAc,yCACd,MAAM,iCACN,eAAe,wCACE,CAAC;AAEpB;;GAEG;AACH,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,EACL,cAAc,EACd,MAAM,EACN,eAAe,GAChB,CAAC"}
1
+ {"version":3,"file":"rangeproof.d.ts","sourceRoot":"","sources":["../../../../../../src/account-lib/mpc/tss/ecdsa/rangeproof.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEnF,QAAA,MACE,kBAAkB,6CAClB,cAAc,yCACd,mBAAmB,8CACnB,iBAAiB,4CACjB,KAAK,gCACL,cAAc,yCACd,MAAM,iCACN,eAAe,wCACE,CAAC;AAEpB;;GAEG;AACH,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,EACL,cAAc,EACd,MAAM,EACN,eAAe,GAChB,CAAC"}
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyWithCheck = exports.verify = exports.proveWithCheck = exports.prove = exports.verifyNtildeProof = exports.generateNtildeProof = exports.generateNtilde = exports.randomCoPrimeTo = exports.generateSafePrimes = void 0;
3
+ exports.verifyWithCheck = exports.verify = exports.proveWithCheck = exports.prove = exports.verifyNtildeProof = exports.generateNtildeProof = exports.generateNtilde = exports.randomPositiveCoPrimeTo = exports.generateSafePrimes = void 0;
4
4
  /**
5
5
  * Zero Knowledge Range Proofs as described in (Two-party generation of DSA signatures)[1].
6
6
  * [1]: https://reitermk.github.io/papers/2004/IJIS.pdf
7
7
  */
8
8
  const sdk_lib_mpc_1 = require("@bitgo-beta/sdk-lib-mpc");
9
- Object.defineProperty(exports, "randomCoPrimeTo", { enumerable: true, get: function () { return sdk_lib_mpc_1.randomCoPrimeTo; } });
9
+ Object.defineProperty(exports, "randomPositiveCoPrimeTo", { enumerable: true, get: function () { return sdk_lib_mpc_1.randomPositiveCoPrimeTo; } });
10
10
  const { generateSafePrimes, generateNtilde, generateNtildeProof, verifyNtildeProof, prove, proveWithCheck, verify, verifyWithCheck, } = sdk_lib_mpc_1.EcdsaRangeProof;
11
11
  exports.generateSafePrimes = generateSafePrimes;
12
12
  exports.generateNtilde = generateNtilde;
@@ -16,4 +16,4 @@ exports.prove = prove;
16
16
  exports.proveWithCheck = proveWithCheck;
17
17
  exports.verify = verify;
18
18
  exports.verifyWithCheck = verifyWithCheck;
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2Vwcm9vZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hY2NvdW50LWxpYi9tcGMvdHNzL2VjZHNhL3JhbmdlcHJvb2YudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7OztHQUdHO0FBQ0gseURBQTJFO0FBa0J6RSxnR0FsQndCLDZCQUFlLE9Ba0J4QjtBQWhCakIsTUFBTSxFQUNKLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixLQUFLLEVBQ0wsY0FBYyxFQUNkLE1BQU0sRUFDTixlQUFlLEdBQ2hCLEdBQUcsNkJBQWUsQ0FBQztBQU1sQixnREFBa0I7QUFFbEIsd0NBQWM7QUFDZCxrREFBbUI7QUFDbkIsOENBQWlCO0FBQ2pCLHNCQUFLO0FBQ0wsd0NBQWM7QUFDZCx3QkFBTTtBQUNOLDBDQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBaZXJvIEtub3dsZWRnZSBSYW5nZSBQcm9vZnMgYXMgZGVzY3JpYmVkIGluIChUd28tcGFydHkgZ2VuZXJhdGlvbiBvZiBEU0Egc2lnbmF0dXJlcylbMV0uXG4gKiBbMV06IGh0dHBzOi8vcmVpdGVybWsuZ2l0aHViLmlvL3BhcGVycy8yMDA0L0lKSVMucGRmXG4gKi9cbmltcG9ydCB7IEVjZHNhUmFuZ2VQcm9vZiwgcmFuZG9tQ29QcmltZVRvIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWxpYi1tcGMnO1xuXG5jb25zdCB7XG4gIGdlbmVyYXRlU2FmZVByaW1lcyxcbiAgZ2VuZXJhdGVOdGlsZGUsXG4gIGdlbmVyYXRlTnRpbGRlUHJvb2YsXG4gIHZlcmlmeU50aWxkZVByb29mLFxuICBwcm92ZSxcbiAgcHJvdmVXaXRoQ2hlY2ssXG4gIHZlcmlmeSxcbiAgdmVyaWZ5V2l0aENoZWNrLFxufSA9IEVjZHNhUmFuZ2VQcm9vZjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgRWNkc2FSYW5nZVByb29mIGZyb20gc2RrLWxpYi1tcGMgaW5zdGVhZFxuICovXG5leHBvcnQge1xuICBnZW5lcmF0ZVNhZmVQcmltZXMsXG4gIHJhbmRvbUNvUHJpbWVUbyxcbiAgZ2VuZXJhdGVOdGlsZGUsXG4gIGdlbmVyYXRlTnRpbGRlUHJvb2YsXG4gIHZlcmlmeU50aWxkZVByb29mLFxuICBwcm92ZSxcbiAgcHJvdmVXaXRoQ2hlY2ssXG4gIHZlcmlmeSxcbiAgdmVyaWZ5V2l0aENoZWNrLFxufTtcbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2Vwcm9vZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hY2NvdW50LWxpYi9tcGMvdHNzL2VjZHNhL3JhbmdlcHJvb2YudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7OztHQUdHO0FBQ0gseURBQW1GO0FBa0JqRix3R0FsQndCLHFDQUF1QixPQWtCeEI7QUFoQnpCLE1BQU0sRUFDSixrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLGNBQWMsRUFDZCxNQUFNLEVBQ04sZUFBZSxHQUNoQixHQUFHLDZCQUFlLENBQUM7QUFNbEIsZ0RBQWtCO0FBRWxCLHdDQUFjO0FBQ2Qsa0RBQW1CO0FBQ25CLDhDQUFpQjtBQUNqQixzQkFBSztBQUNMLHdDQUFjO0FBQ2Qsd0JBQU07QUFDTiwwQ0FBZSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogWmVybyBLbm93bGVkZ2UgUmFuZ2UgUHJvb2ZzIGFzIGRlc2NyaWJlZCBpbiAoVHdvLXBhcnR5IGdlbmVyYXRpb24gb2YgRFNBIHNpZ25hdHVyZXMpWzFdLlxuICogWzFdOiBodHRwczovL3JlaXRlcm1rLmdpdGh1Yi5pby9wYXBlcnMvMjAwNC9JSklTLnBkZlxuICovXG5pbXBvcnQgeyBFY2RzYVJhbmdlUHJvb2YsIHJhbmRvbVBvc2l0aXZlQ29QcmltZVRvIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWxpYi1tcGMnO1xuXG5jb25zdCB7XG4gIGdlbmVyYXRlU2FmZVByaW1lcyxcbiAgZ2VuZXJhdGVOdGlsZGUsXG4gIGdlbmVyYXRlTnRpbGRlUHJvb2YsXG4gIHZlcmlmeU50aWxkZVByb29mLFxuICBwcm92ZSxcbiAgcHJvdmVXaXRoQ2hlY2ssXG4gIHZlcmlmeSxcbiAgdmVyaWZ5V2l0aENoZWNrLFxufSA9IEVjZHNhUmFuZ2VQcm9vZjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgRWNkc2FSYW5nZVByb29mIGZyb20gc2RrLWxpYi1tcGMgaW5zdGVhZFxuICovXG5leHBvcnQge1xuICBnZW5lcmF0ZVNhZmVQcmltZXMsXG4gIHJhbmRvbVBvc2l0aXZlQ29QcmltZVRvLFxuICBnZW5lcmF0ZU50aWxkZSxcbiAgZ2VuZXJhdGVOdGlsZGVQcm9vZixcbiAgdmVyaWZ5TnRpbGRlUHJvb2YsXG4gIHByb3ZlLFxuICBwcm92ZVdpdGhDaGVjayxcbiAgdmVyaWZ5LFxuICB2ZXJpZnlXaXRoQ2hlY2ssXG59O1xuIl19
@@ -31,7 +31,7 @@ export declare type SerializedNtilde = EcdsaTypes.SerializedNtilde;
31
31
  * @deprecated use SerializedNtildeWithProofs from sdk-lib-mpc instead
32
32
  */
33
33
  export declare type SerializedNtildeWithProofs = EcdsaTypes.SerializedNtildeWithProofs;
34
- export interface PShare {
34
+ export declare type PShare = {
35
35
  i: number;
36
36
  t?: number;
37
37
  c?: number;
@@ -42,7 +42,7 @@ export interface PShare {
42
42
  n: string;
43
43
  y: string;
44
44
  chaincode: string;
45
- }
45
+ };
46
46
  export declare type SignIndex = {
47
47
  i: number;
48
48
  j: number;
@@ -58,7 +58,7 @@ export declare type KeyShare = {
58
58
  pShare: PShare;
59
59
  nShares: Record<number, NShare>;
60
60
  };
61
- export interface XShare {
61
+ export declare type XShare = {
62
62
  i: number;
63
63
  l: string;
64
64
  m: string;
@@ -66,59 +66,53 @@ export interface XShare {
66
66
  y: string;
67
67
  x: string;
68
68
  chaincode: string;
69
- }
70
- export declare type XShareWithNtilde = XShare & EcdsaTypes.SerializedNtilde;
69
+ };
70
+ export declare type XShareWithChallenges = XShare & EcdsaTypes.SerializedNtilde & EcdsaTypes.SerializedPaillierChallenge;
71
71
  export declare type YShare = SignIndex & {
72
72
  n: string;
73
73
  };
74
- export declare type YShareWithNtilde = YShare & EcdsaTypes.SerializedNtilde;
74
+ export declare type YShareWithChallenges = YShare & EcdsaTypes.SerializedNtilde & EcdsaTypes.SerializedPaillierChallenge;
75
75
  export interface KeyCombined {
76
76
  xShare: XShare;
77
77
  yShares: Record<number, YShare>;
78
78
  }
79
- export interface KeyCombinedWithNtilde {
80
- xShare: XShareWithNtilde;
81
- yShares: Record<number, YShareWithNtilde>;
82
- }
83
- export interface SubkeyShare {
79
+ export declare type KeyCombinedWithNtilde = {
80
+ xShare: XShareWithChallenges;
81
+ yShares: Record<number, YShareWithChallenges>;
82
+ };
83
+ export declare type SubkeyShare = {
84
84
  xShare: XShare;
85
85
  nShares: Record<number, NShare>;
86
- }
87
- export interface WShare {
86
+ };
87
+ export declare type WShare = EcdsaTypes.SerializedNtilde & EcdsaTypes.SerializedPaillierChallenge & {
88
88
  i: number;
89
89
  l: string;
90
90
  m: string;
91
91
  n: string;
92
92
  y: string;
93
- ntilde: string;
94
- h1: string;
95
- h2: string;
96
93
  ck: string;
97
94
  k: string;
98
95
  w: string;
99
96
  gamma: string;
100
- }
101
- export interface RangeProofShare {
97
+ };
98
+ export declare type RangeProofShare = {
102
99
  z: string;
103
100
  u: string;
104
101
  w: string;
105
102
  s: string;
106
103
  s1: string;
107
104
  s2: string;
108
- }
109
- export declare type KShare = SignIndex & {
105
+ };
106
+ export declare type KShare = SignIndex & EcdsaTypes.SerializedNtilde & EcdsaTypes.SerializedPaillierChallenge & EcdsaTypes.SerializedPaillierChallengeProofs & {
110
107
  n: string;
111
- ntilde: string;
112
- h1: string;
113
- h2: string;
114
108
  k: string;
115
- proof: RangeProofShare;
109
+ proof?: RangeProofShare;
116
110
  };
117
- export interface SignShareRT {
111
+ export declare type SignShareRT = {
118
112
  wShare: WShare;
119
113
  kShare: KShare;
120
- }
121
- export interface RangeProofWithCheckShare {
114
+ };
115
+ export declare type RangeProofWithCheckShare = {
122
116
  z: string;
123
117
  zprm: string;
124
118
  t: string;
@@ -131,31 +125,27 @@ export interface RangeProofWithCheckShare {
131
125
  t2: string;
132
126
  u: string;
133
127
  x: string;
134
- }
135
- export declare type AShare = SignIndex & {
128
+ };
129
+ export declare type AShare = SignIndex & EcdsaTypes.SerializedNtilde & EcdsaTypes.SerializedPaillierChallengeProofs & {
136
130
  n: string;
137
- ntilde: string;
138
- h1: string;
139
- h2: string;
140
131
  k: string;
141
132
  alpha: string;
142
133
  mu: string;
143
- proof: RangeProofShare;
144
- gammaProof: RangeProofWithCheckShare;
145
- wProof: RangeProofWithCheckShare;
134
+ proof?: RangeProofShare;
135
+ gammaProof?: RangeProofWithCheckShare;
136
+ wProof?: RangeProofWithCheckShare;
146
137
  };
147
- export interface BShare extends WShare {
148
- gamma: string;
138
+ export declare type BShare = WShare & {
149
139
  beta: string;
150
140
  nu: string;
151
- }
141
+ };
152
142
  export declare type MUShare = SignIndex & {
153
143
  alpha: string;
154
144
  mu: string;
155
145
  gammaProof: RangeProofWithCheckShare;
156
146
  wProof: RangeProofWithCheckShare;
157
147
  };
158
- export interface GShare {
148
+ export declare type GShare = {
159
149
  i: number;
160
150
  l?: string;
161
151
  m?: string;
@@ -168,52 +158,77 @@ export interface GShare {
168
158
  mu: string;
169
159
  beta: string;
170
160
  nu: string;
171
- }
172
- export interface SignConvert {
173
- xShare?: XShare;
161
+ };
162
+ export declare type SignConvert = {
163
+ xShare?: XShareWithChallenges;
174
164
  yShare?: YShare;
175
165
  kShare?: KShare;
176
166
  bShare?: BShare;
177
167
  muShare?: MUShare;
178
168
  aShare?: AShare;
179
169
  wShare?: WShare;
180
- }
181
- export interface SignConvertRT {
170
+ };
171
+ export declare type SignConvertStep1 = {
172
+ xShare: XShareWithChallenges;
173
+ yShare: YShare;
174
+ kShare: KShare;
175
+ };
176
+ export declare type SignConvertStep1Response = {
177
+ bShare: BShare;
178
+ aShare: AShare;
179
+ };
180
+ export declare type SignConvertStep2 = {
181
+ wShare: WShare;
182
+ aShare: AShare;
183
+ };
184
+ export declare type SignConvertStep2Response = {
185
+ gShare: GShare;
186
+ muShare: MUShare;
187
+ };
188
+ export declare type SignConvertStep3 = {
189
+ bShare: BShare;
190
+ muShare: MUShare;
191
+ };
192
+ export declare type SignConvertStep3Response = {
193
+ gShare: GShare;
194
+ signIndex: SignIndex;
195
+ };
196
+ export declare type SignConvertRT = {
182
197
  aShare?: AShare;
183
198
  bShare?: BShare;
184
199
  muShare?: MUShare;
185
200
  gShare?: GShare;
186
- }
187
- export interface OShare {
201
+ };
202
+ export declare type OShare = {
188
203
  i: number;
189
204
  y: string;
190
205
  k: string;
191
206
  omicron: string;
192
207
  delta: string;
193
208
  Gamma: string;
194
- }
209
+ };
195
210
  export declare type DShare = SignIndex & {
196
211
  delta: string;
197
212
  Gamma: string;
198
213
  };
199
- export interface SShare {
214
+ export declare type SShare = {
200
215
  i: number;
201
216
  R: string;
202
217
  s: string;
203
218
  y: string;
204
- }
205
- export interface SignCombine {
219
+ };
220
+ export declare type SignCombine = {
206
221
  gShare: GShare;
207
222
  signIndex: SignIndex;
208
- }
209
- export interface SignCombineRT {
223
+ };
224
+ export declare type SignCombineRT = {
210
225
  oShare: OShare;
211
226
  dShare: DShare;
212
- }
213
- export interface Signature {
227
+ };
228
+ export declare type Signature = {
214
229
  y: string;
215
230
  recid: number;
216
231
  r: string;
217
232
  s: string;
218
- }
233
+ };
219
234
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/account-lib/mpc/tss/ecdsa/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/account-lib/mpc/tss/ecdsa/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvbXBjL3Rzcy9lY2RzYS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWNkc2FUeXBlcyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1saWItbXBjJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgRGVzZXJpYWxpemVkTnRpbGRlUHJvb2YgZnJvbSBzZGstbGliLW1wYyBpbnN0ZWFkXG4gKi9cbmV4cG9ydCB0eXBlIERlc2VyaWFsaXplZE50aWxkZVByb29mID0gRWNkc2FUeXBlcy5EZXNlcmlhbGl6ZWROdGlsZGVQcm9vZjtcbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIERlc2VyaWFsaXplZE50aWxkZVByb29mcyBmcm9tIHNkay1saWItbXBjIGluc3RlYWRcbiAqL1xuZXhwb3J0IHR5cGUgRGVzZXJpYWxpemVkTnRpbGRlUHJvb2ZzID0gRWNkc2FUeXBlcy5EZXNlcmlhbGl6ZWROdGlsZGVQcm9vZnM7XG4vKipcbiAqIEBkZXByZWNhdGVkIHVzZSBEZXNlcmlhbGl6ZWROdGlsZGVQcm9vZnMgZnJvbSBzZGstbGliLW1wYyBpbnN0ZWFkXG4gKi9cbmV4cG9ydCB0eXBlIERlc2VyaWFsaXplZE50aWxkZSA9IEVjZHNhVHlwZXMuRGVzZXJpYWxpemVkTnRpbGRlO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgRGVzZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcyBmcm9tIHNkay1saWItbXBjIGluc3RlYWRcbiAqL1xuZXhwb3J0IHR5cGUgRGVzZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcyA9IEVjZHNhVHlwZXMuRGVzZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcztcbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIFNlcmlhbGl6ZWROdGlsZGVQcm9vZiBmcm9tIHNkay1saWItbXBjIGluc3RlYWRcbiAqL1xuZXhwb3J0IHR5cGUgU2VyaWFsaXplZE50aWxkZVByb29mID0gRWNkc2FUeXBlcy5TZXJpYWxpemVkTnRpbGRlUHJvb2Y7XG4vKipcbiAqIEBkZXByZWNhdGVkIHVzZSBTZXJpYWxpemVkTnRpbGRlUHJvb2ZzIGZyb20gc2RrLWxpYi1tcGMgaW5zdGVhZFxuICovXG5leHBvcnQgdHlwZSBTZXJpYWxpemVkTnRpbGRlUHJvb2ZzID0gRWNkc2FUeXBlcy5TZXJpYWxpemVkTnRpbGRlUHJvb2ZzO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgU2VyaWFsaXplZE50aWxkZSBmcm9tIHNkay1saWItbXBjIGluc3RlYWRcbiAqL1xuZXhwb3J0IHR5cGUgU2VyaWFsaXplZE50aWxkZSA9IEVjZHNhVHlwZXMuU2VyaWFsaXplZE50aWxkZTtcbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIFNlcmlhbGl6ZWROdGlsZGVXaXRoUHJvb2ZzIGZyb20gc2RrLWxpYi1tcGMgaW5zdGVhZFxuICovXG5leHBvcnQgdHlwZSBTZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcyA9IEVjZHNhVHlwZXMuU2VyaWFsaXplZE50aWxkZVdpdGhQcm9vZnM7XG5cbi8vIFByaXZhdGUgc2hhcmUgb2YgdGhlIHVzZXIgZ2VuZXJhdGVkIGR1cmluZyBrZXkgZ2VuZXJhdGlvblxuZXhwb3J0IGludGVyZmFjZSBQU2hhcmUge1xuICBpOiBudW1iZXI7IC8vIHBhcnRpY2lwYW50IGluZGV4XG4gIHQ/OiBudW1iZXI7IC8vIHRocmVzaG9sZFxuICBjPzogbnVtYmVyOyAvLyBudW1iZXIgb2Ygc2hhcmVzXG4gIGw6IHN0cmluZzsgLy8gbGFtYmRhIHZhbHVlIGZvciBwYWlsbGllciBzZWNyZXQga2V5XG4gIG06IHN0cmluZzsgLy8gbXUgdmFsdWUgZm9yIHBhaWxsaWVyIHNlY3JldCBrZXlcbiAgdTogc3RyaW5nOyAvLyBzaGFtaXIgc2hhcmUgb2Ygc2VjcmV0XG4gIHV1OiBzdHJpbmc7IC8vIHVuc3BsaXQgc2hhbWlyIHNoYXJlIG9mIHNlY3JldFxuICBuOiBzdHJpbmc7IC8vIG4gPT4gKHAgLiBxKSB3aGVyZSBwIGFuZCBxIGFyZSB0aGUgdHdvIHJhbmRvbSBwcmltZSBudW1iZXJzIGNob3NlbiBmb3IgcGFpbGxpZXIgZW5jcnlwdGlvblxuICB5OiBzdHJpbmc7XG4gIGNoYWluY29kZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBTaWduSW5kZXggPSB7XG4gIGk6IG51bWJlcjsgLy8gcGFydGljaXBhbnQgaW5kZXhcbiAgajogbnVtYmVyOyAvLyB0YXJnZXQgcGFydGljaXBhbnQgaW5kZXhcbn07XG5cbi8vIE5TaGFyZXMgd2hpY2ggaXMgc2hhcmVkIHRvIHRoZSBvdGhlciBwYXJ0aWNpcGFudHMgZHVyaW5nIGtleSBnZW5lcmF0aW9uXG5leHBvcnQgdHlwZSBOU2hhcmUgPSBTaWduSW5kZXggJiB7XG4gIG46IHN0cmluZztcbiAgdTogc3RyaW5nOyAvLyBzaGFtaXIgc2hhcmUgb2Ygc2VjcmV0IGF0IGondGggaW5kZXhcbiAgeTogc3RyaW5nO1xuICB2Pzogc3RyaW5nO1xuICBjaGFpbmNvZGU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEtleVNoYXJlID0ge1xuICBwU2hhcmU6IFBTaGFyZTtcbiAgblNoYXJlczogUmVjb3JkPG51bWJlciwgTlNoYXJlPjtcbn07XG5cbi8vIFByaXZhdGUgWFNoYXJlIG9mIHRoZSBjdXJyZW50IHBhcnRpY2lwYW50XG5leHBvcnQgaW50ZXJmYWNlIFhTaGFyZSB7XG4gIGk6IG51bWJlcjtcbiAgbDogc3RyaW5nO1xuICBtOiBzdHJpbmc7XG4gIG46IHN0cmluZztcbiAgeTogc3RyaW5nOyAvLyBjb21iaW5lZCBwdWJsaWMga2V5XG4gIHg6IHN0cmluZzsgLy8gY29tYmluZWQgc2VjcmV0XG4gIGNoYWluY29kZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBYU2hhcmVXaXRoTnRpbGRlID0gWFNoYXJlICYgRWNkc2FUeXBlcy5TZXJpYWxpemVkTnRpbGRlO1xuXG4vLyBZU2hhcmVzIHVzZWQgZHVyaW5nIHNpZ25hdHVyZSBnZW5lcmF0aW9uXG5leHBvcnQgdHlwZSBZU2hhcmUgPSBTaWduSW5kZXggJiB7XG4gIG46IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFlTaGFyZVdpdGhOdGlsZGUgPSBZU2hhcmUgJiBFY2RzYVR5cGVzLlNlcmlhbGl6ZWROdGlsZGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5Q29tYmluZWQge1xuICB4U2hhcmU6IFhTaGFyZTtcbiAgeVNoYXJlczogUmVjb3JkPG51bWJlciwgWVNoYXJlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlDb21iaW5lZFdpdGhOdGlsZGUge1xuICB4U2hhcmU6IFhTaGFyZVdpdGhOdGlsZGU7XG4gIHlTaGFyZXM6IFJlY29yZDxudW1iZXIsIFlTaGFyZVdpdGhOdGlsZGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YmtleVNoYXJlIHtcbiAgeFNoYXJlOiBYU2hhcmU7XG4gIG5TaGFyZXM6IFJlY29yZDxudW1iZXIsIE5TaGFyZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV1NoYXJlIHtcbiAgaTogbnVtYmVyO1xuICBsOiBzdHJpbmc7XG4gIG06IHN0cmluZztcbiAgbjogc3RyaW5nO1xuICB5OiBzdHJpbmc7IC8vIGNvbWJpbmVkIHB1YmxpYyBrZXlcbiAgbnRpbGRlOiBzdHJpbmc7XG4gIGgxOiBzdHJpbmc7XG4gIGgyOiBzdHJpbmc7XG4gIGNrOiBzdHJpbmc7XG4gIGs6IHN0cmluZztcbiAgdzogc3RyaW5nO1xuICBnYW1tYTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJhbmdlUHJvb2ZTaGFyZSB7XG4gIHo6IHN0cmluZztcbiAgdTogc3RyaW5nO1xuICB3OiBzdHJpbmc7XG4gIHM6IHN0cmluZztcbiAgczE6IHN0cmluZztcbiAgczI6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgS1NoYXJlID0gU2lnbkluZGV4ICYge1xuICBuOiBzdHJpbmc7XG4gIG50aWxkZTogc3RyaW5nO1xuICBoMTogc3RyaW5nO1xuICBoMjogc3RyaW5nO1xuICBrOiBzdHJpbmc7XG4gIHByb29mOiBSYW5nZVByb29mU2hhcmU7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25TaGFyZVJUIHtcbiAgd1NoYXJlOiBXU2hhcmU7XG4gIGtTaGFyZTogS1NoYXJlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJhbmdlUHJvb2ZXaXRoQ2hlY2tTaGFyZSB7XG4gIHo6IHN0cmluZztcbiAgenBybTogc3RyaW5nO1xuICB0OiBzdHJpbmc7XG4gIHY6IHN0cmluZztcbiAgdzogc3RyaW5nO1xuICBzOiBzdHJpbmc7XG4gIHMxOiBzdHJpbmc7XG4gIHMyOiBzdHJpbmc7XG4gIHQxOiBzdHJpbmc7XG4gIHQyOiBzdHJpbmc7XG4gIHU6IHN0cmluZztcbiAgeDogc3RyaW5nO1xufVxuXG4vLyBBbHBoYSBTaGFyZVxuZXhwb3J0IHR5cGUgQVNoYXJlID0gU2lnbkluZGV4ICYge1xuICBuOiBzdHJpbmc7XG4gIG50aWxkZTogc3RyaW5nO1xuICBoMTogc3RyaW5nO1xuICBoMjogc3RyaW5nO1xuICBrOiBzdHJpbmc7XG4gIGFscGhhOiBzdHJpbmc7XG4gIG11OiBzdHJpbmc7XG4gIHByb29mOiBSYW5nZVByb29mU2hhcmU7XG4gIGdhbW1hUHJvb2Y6IFJhbmdlUHJvb2ZXaXRoQ2hlY2tTaGFyZTtcbiAgd1Byb29mOiBSYW5nZVByb29mV2l0aENoZWNrU2hhcmU7XG59O1xuXG4vLyBCZXRhIFNoYXJlXG5leHBvcnQgaW50ZXJmYWNlIEJTaGFyZSBleHRlbmRzIFdTaGFyZSB7XG4gIGdhbW1hOiBzdHJpbmc7XG4gIGJldGE6IHN0cmluZztcbiAgbnU6IHN0cmluZztcbn1cblxuLy8gTXUgU2hhcmVcbmV4cG9ydCB0eXBlIE1VU2hhcmUgPSBTaWduSW5kZXggJiB7XG4gIGFscGhhOiBzdHJpbmc7XG4gIG11OiBzdHJpbmc7XG4gIGdhbW1hUHJvb2Y6IFJhbmdlUHJvb2ZXaXRoQ2hlY2tTaGFyZTtcbiAgd1Byb29mOiBSYW5nZVByb29mV2l0aENoZWNrU2hhcmU7XG59O1xuXG4vLyBHYW1tYSBTaGFyZVxuZXhwb3J0IGludGVyZmFjZSBHU2hhcmUge1xuICBpOiBudW1iZXI7XG4gIGw/OiBzdHJpbmc7XG4gIG0/OiBzdHJpbmc7XG4gIG46IHN0cmluZztcbiAgeTogc3RyaW5nOyAvLyBjb21iaW5lZCBwdWJsaWMga2V5XG4gIGs6IHN0cmluZztcbiAgdzogc3RyaW5nO1xuICBnYW1tYTogc3RyaW5nO1xuICBhbHBoYTogc3RyaW5nO1xuICBtdTogc3RyaW5nO1xuICBiZXRhOiBzdHJpbmc7XG4gIG51OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNpZ25Db252ZXJ0IHtcbiAgeFNoYXJlPzogWFNoYXJlOyAvLyBYU2hhcmUgb2YgdGhlIGN1cnJlbnQgcGFydGljaXBhbnRcbiAgeVNoYXJlPzogWVNoYXJlOyAvLyBZU2hhcmUgY29ycmVzcG9uZGluZyB0byB0aGUgb3RoZXIgcGFydGljaXBhbnRcbiAga1NoYXJlPzogS1NoYXJlOyAvLyBLU2hhcmUgcmVjZWl2ZWQgZnJvbSB0aGUgb3RoZXIgcGFydGljaXBhbnRcbiAgYlNoYXJlPzogQlNoYXJlOyAvLyBQcml2YXRlIEJldGEgc2hhcmUgb2YgdGhlIHBhcnRpY2lwYW50XG4gIG11U2hhcmU/OiBNVVNoYXJlOyAvLyBtdVNoYXJlIHJlY2VpdmVkIGZyb20gdGhlIG90aGVyIHBhcnRpY2lwYW50XG4gIGFTaGFyZT86IEFTaGFyZTtcbiAgd1NoYXJlPzogV1NoYXJlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25Db252ZXJ0UlQge1xuICBhU2hhcmU/OiBBU2hhcmU7XG4gIGJTaGFyZT86IEJTaGFyZTtcbiAgbXVTaGFyZT86IE1VU2hhcmU7XG4gIGdTaGFyZT86IEdTaGFyZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPU2hhcmUge1xuICBpOiBudW1iZXI7XG4gIHk6IHN0cmluZztcbiAgazogc3RyaW5nO1xuICBvbWljcm9uOiBzdHJpbmc7XG4gIGRlbHRhOiBzdHJpbmc7XG4gIEdhbW1hOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIERTaGFyZSA9IFNpZ25JbmRleCAmIHtcbiAgZGVsdGE6IHN0cmluZztcbiAgR2FtbWE6IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU1NoYXJlIHtcbiAgaTogbnVtYmVyO1xuICBSOiBzdHJpbmc7XG4gIHM6IHN0cmluZztcbiAgeTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25Db21iaW5lIHtcbiAgZ1NoYXJlOiBHU2hhcmU7XG4gIHNpZ25JbmRleDogU2lnbkluZGV4O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25Db21iaW5lUlQge1xuICBvU2hhcmU6IE9TaGFyZTtcbiAgZFNoYXJlOiBEU2hhcmU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlIHtcbiAgeTogc3RyaW5nO1xuICByZWNpZDogbnVtYmVyO1xuICByOiBzdHJpbmc7XG4gIHM6IHN0cmluZztcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvbXBjL3Rzcy9lY2RzYS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWNkc2FUeXBlcyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1saWItbXBjJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgRGVzZXJpYWxpemVkTnRpbGRlUHJvb2YgZnJvbSBzZGstbGliLW1wYyBpbnN0ZWFkXG4gKi9cbmV4cG9ydCB0eXBlIERlc2VyaWFsaXplZE50aWxkZVByb29mID0gRWNkc2FUeXBlcy5EZXNlcmlhbGl6ZWROdGlsZGVQcm9vZjtcbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIERlc2VyaWFsaXplZE50aWxkZVByb29mcyBmcm9tIHNkay1saWItbXBjIGluc3RlYWRcbiAqL1xuZXhwb3J0IHR5cGUgRGVzZXJpYWxpemVkTnRpbGRlUHJvb2ZzID0gRWNkc2FUeXBlcy5EZXNlcmlhbGl6ZWROdGlsZGVQcm9vZnM7XG4vKipcbiAqIEBkZXByZWNhdGVkIHVzZSBEZXNlcmlhbGl6ZWROdGlsZGVQcm9vZnMgZnJvbSBzZGstbGliLW1wYyBpbnN0ZWFkXG4gKi9cbmV4cG9ydCB0eXBlIERlc2VyaWFsaXplZE50aWxkZSA9IEVjZHNhVHlwZXMuRGVzZXJpYWxpemVkTnRpbGRlO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgRGVzZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcyBmcm9tIHNkay1saWItbXBjIGluc3RlYWRcbiAqL1xuZXhwb3J0IHR5cGUgRGVzZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcyA9IEVjZHNhVHlwZXMuRGVzZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcztcbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIFNlcmlhbGl6ZWROdGlsZGVQcm9vZiBmcm9tIHNkay1saWItbXBjIGluc3RlYWRcbiAqL1xuZXhwb3J0IHR5cGUgU2VyaWFsaXplZE50aWxkZVByb29mID0gRWNkc2FUeXBlcy5TZXJpYWxpemVkTnRpbGRlUHJvb2Y7XG4vKipcbiAqIEBkZXByZWNhdGVkIHVzZSBTZXJpYWxpemVkTnRpbGRlUHJvb2ZzIGZyb20gc2RrLWxpYi1tcGMgaW5zdGVhZFxuICovXG5leHBvcnQgdHlwZSBTZXJpYWxpemVkTnRpbGRlUHJvb2ZzID0gRWNkc2FUeXBlcy5TZXJpYWxpemVkTnRpbGRlUHJvb2ZzO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgU2VyaWFsaXplZE50aWxkZSBmcm9tIHNkay1saWItbXBjIGluc3RlYWRcbiAqL1xuZXhwb3J0IHR5cGUgU2VyaWFsaXplZE50aWxkZSA9IEVjZHNhVHlwZXMuU2VyaWFsaXplZE50aWxkZTtcbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIFNlcmlhbGl6ZWROdGlsZGVXaXRoUHJvb2ZzIGZyb20gc2RrLWxpYi1tcGMgaW5zdGVhZFxuICovXG5leHBvcnQgdHlwZSBTZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcyA9IEVjZHNhVHlwZXMuU2VyaWFsaXplZE50aWxkZVdpdGhQcm9vZnM7XG5cbi8vIFByaXZhdGUgc2hhcmUgb2YgdGhlIHVzZXIgZ2VuZXJhdGVkIGR1cmluZyBrZXkgZ2VuZXJhdGlvblxuZXhwb3J0IHR5cGUgUFNoYXJlID0ge1xuICBpOiBudW1iZXI7IC8vIHBhcnRpY2lwYW50IGluZGV4XG4gIHQ/OiBudW1iZXI7IC8vIHRocmVzaG9sZFxuICBjPzogbnVtYmVyOyAvLyBudW1iZXIgb2Ygc2hhcmVzXG4gIGw6IHN0cmluZzsgLy8gbGFtYmRhIHZhbHVlIGZvciBwYWlsbGllciBzZWNyZXQga2V5XG4gIG06IHN0cmluZzsgLy8gbXUgdmFsdWUgZm9yIHBhaWxsaWVyIHNlY3JldCBrZXlcbiAgdTogc3RyaW5nOyAvLyBzaGFtaXIgc2hhcmUgb2Ygc2VjcmV0XG4gIHV1OiBzdHJpbmc7IC8vIHVuc3BsaXQgc2hhbWlyIHNoYXJlIG9mIHNlY3JldFxuICBuOiBzdHJpbmc7IC8vIG4gPT4gKHAgLiBxKSB3aGVyZSBwIGFuZCBxIGFyZSB0aGUgdHdvIHJhbmRvbSBwcmltZSBudW1iZXJzIGNob3NlbiBmb3IgcGFpbGxpZXIgZW5jcnlwdGlvblxuICB5OiBzdHJpbmc7XG4gIGNoYWluY29kZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgU2lnbkluZGV4ID0ge1xuICBpOiBudW1iZXI7IC8vIHBhcnRpY2lwYW50IGluZGV4XG4gIGo6IG51bWJlcjsgLy8gdGFyZ2V0IHBhcnRpY2lwYW50IGluZGV4XG59O1xuXG4vLyBOU2hhcmVzIHdoaWNoIGlzIHNoYXJlZCB0byB0aGUgb3RoZXIgcGFydGljaXBhbnRzIGR1cmluZyBrZXkgZ2VuZXJhdGlvblxuZXhwb3J0IHR5cGUgTlNoYXJlID0gU2lnbkluZGV4ICYge1xuICBuOiBzdHJpbmc7XG4gIHU6IHN0cmluZzsgLy8gc2hhbWlyIHNoYXJlIG9mIHNlY3JldCBhdCBqJ3RoIGluZGV4XG4gIHk6IHN0cmluZztcbiAgdj86IHN0cmluZztcbiAgY2hhaW5jb2RlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBLZXlTaGFyZSA9IHtcbiAgcFNoYXJlOiBQU2hhcmU7XG4gIG5TaGFyZXM6IFJlY29yZDxudW1iZXIsIE5TaGFyZT47XG59O1xuXG4vLyBQcml2YXRlIFhTaGFyZSBvZiB0aGUgY3VycmVudCBwYXJ0aWNpcGFudFxuZXhwb3J0IHR5cGUgWFNoYXJlID0ge1xuICBpOiBudW1iZXI7XG4gIGw6IHN0cmluZztcbiAgbTogc3RyaW5nO1xuICBuOiBzdHJpbmc7XG4gIHk6IHN0cmluZzsgLy8gY29tYmluZWQgcHVibGljIGtleVxuICB4OiBzdHJpbmc7IC8vIGNvbWJpbmVkIHNlY3JldFxuICBjaGFpbmNvZGU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFhTaGFyZVdpdGhDaGFsbGVuZ2VzID0gWFNoYXJlICYgRWNkc2FUeXBlcy5TZXJpYWxpemVkTnRpbGRlICYgRWNkc2FUeXBlcy5TZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2U7XG5cbi8vIFlTaGFyZXMgdXNlZCBkdXJpbmcgc2lnbmF0dXJlIGdlbmVyYXRpb25cbmV4cG9ydCB0eXBlIFlTaGFyZSA9IFNpZ25JbmRleCAmIHtcbiAgbjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgWVNoYXJlV2l0aENoYWxsZW5nZXMgPSBZU2hhcmUgJiBFY2RzYVR5cGVzLlNlcmlhbGl6ZWROdGlsZGUgJiBFY2RzYVR5cGVzLlNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZTtcblxuZXhwb3J0IGludGVyZmFjZSBLZXlDb21iaW5lZCB7XG4gIHhTaGFyZTogWFNoYXJlO1xuICB5U2hhcmVzOiBSZWNvcmQ8bnVtYmVyLCBZU2hhcmU+O1xufVxuXG5leHBvcnQgdHlwZSBLZXlDb21iaW5lZFdpdGhOdGlsZGUgPSB7XG4gIHhTaGFyZTogWFNoYXJlV2l0aENoYWxsZW5nZXM7XG4gIHlTaGFyZXM6IFJlY29yZDxudW1iZXIsIFlTaGFyZVdpdGhDaGFsbGVuZ2VzPjtcbn07XG5cbmV4cG9ydCB0eXBlIFN1YmtleVNoYXJlID0ge1xuICB4U2hhcmU6IFhTaGFyZTtcbiAgblNoYXJlczogUmVjb3JkPG51bWJlciwgTlNoYXJlPjtcbn07XG5cbmV4cG9ydCB0eXBlIFdTaGFyZSA9IEVjZHNhVHlwZXMuU2VyaWFsaXplZE50aWxkZSAmXG4gIEVjZHNhVHlwZXMuU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlICYge1xuICAgIGk6IG51bWJlcjtcbiAgICBsOiBzdHJpbmc7XG4gICAgbTogc3RyaW5nO1xuICAgIG46IHN0cmluZztcbiAgICB5OiBzdHJpbmc7IC8vIGNvbWJpbmVkIHB1YmxpYyBrZXlcbiAgICBjazogc3RyaW5nO1xuICAgIGs6IHN0cmluZztcbiAgICB3OiBzdHJpbmc7XG4gICAgZ2FtbWE6IHN0cmluZztcbiAgfTtcblxuZXhwb3J0IHR5cGUgUmFuZ2VQcm9vZlNoYXJlID0ge1xuICB6OiBzdHJpbmc7XG4gIHU6IHN0cmluZztcbiAgdzogc3RyaW5nO1xuICBzOiBzdHJpbmc7XG4gIHMxOiBzdHJpbmc7XG4gIHMyOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBLU2hhcmUgPSBTaWduSW5kZXggJlxuICBFY2RzYVR5cGVzLlNlcmlhbGl6ZWROdGlsZGUgJlxuICBFY2RzYVR5cGVzLlNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZSAmXG4gIEVjZHNhVHlwZXMuU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzICYge1xuICAgIG46IHN0cmluZztcbiAgICBrOiBzdHJpbmc7XG4gICAgLy8gVE9ETyhCRy03ODcxMyk6IHRoaXMgc2hvdWxkbid0IGJlIG9wdGlvbmFsXG4gICAgcHJvb2Y/OiBSYW5nZVByb29mU2hhcmU7XG4gIH07XG5cbmV4cG9ydCB0eXBlIFNpZ25TaGFyZVJUID0ge1xuICB3U2hhcmU6IFdTaGFyZTtcbiAga1NoYXJlOiBLU2hhcmU7XG59O1xuXG5leHBvcnQgdHlwZSBSYW5nZVByb29mV2l0aENoZWNrU2hhcmUgPSB7XG4gIHo6IHN0cmluZztcbiAgenBybTogc3RyaW5nO1xuICB0OiBzdHJpbmc7XG4gIHY6IHN0cmluZztcbiAgdzogc3RyaW5nO1xuICBzOiBzdHJpbmc7XG4gIHMxOiBzdHJpbmc7XG4gIHMyOiBzdHJpbmc7XG4gIHQxOiBzdHJpbmc7XG4gIHQyOiBzdHJpbmc7XG4gIHU6IHN0cmluZztcbiAgeDogc3RyaW5nO1xufTtcblxuLy8gQWxwaGEgU2hhcmVcbmV4cG9ydCB0eXBlIEFTaGFyZSA9IFNpZ25JbmRleCAmXG4gIEVjZHNhVHlwZXMuU2VyaWFsaXplZE50aWxkZSAmXG4gIEVjZHNhVHlwZXMuU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzICYge1xuICAgIG46IHN0cmluZztcbiAgICBrOiBzdHJpbmc7XG4gICAgYWxwaGE6IHN0cmluZztcbiAgICBtdTogc3RyaW5nO1xuICAgIC8vIFRPRE8oQkctNzg3MTMpOiB0aGVzZSBzaG91bGRuJ3QgYmUgb3B0aW9uYWxcbiAgICBwcm9vZj86IFJhbmdlUHJvb2ZTaGFyZTtcbiAgICBnYW1tYVByb29mPzogUmFuZ2VQcm9vZldpdGhDaGVja1NoYXJlO1xuICAgIHdQcm9vZj86IFJhbmdlUHJvb2ZXaXRoQ2hlY2tTaGFyZTtcbiAgfTtcblxuLy8gQmV0YSBTaGFyZVxuZXhwb3J0IHR5cGUgQlNoYXJlID0gV1NoYXJlICYge1xuICBiZXRhOiBzdHJpbmc7XG4gIG51OiBzdHJpbmc7XG59O1xuXG4vLyBNdSBTaGFyZVxuZXhwb3J0IHR5cGUgTVVTaGFyZSA9IFNpZ25JbmRleCAmIHtcbiAgYWxwaGE6IHN0cmluZztcbiAgbXU6IHN0cmluZztcbiAgZ2FtbWFQcm9vZjogUmFuZ2VQcm9vZldpdGhDaGVja1NoYXJlO1xuICB3UHJvb2Y6IFJhbmdlUHJvb2ZXaXRoQ2hlY2tTaGFyZTtcbn07XG5cbi8vIEdhbW1hIFNoYXJlXG5leHBvcnQgdHlwZSBHU2hhcmUgPSB7XG4gIGk6IG51bWJlcjtcbiAgbD86IHN0cmluZztcbiAgbT86IHN0cmluZztcbiAgbjogc3RyaW5nO1xuICB5OiBzdHJpbmc7IC8vIGNvbWJpbmVkIHB1YmxpYyBrZXlcbiAgazogc3RyaW5nO1xuICB3OiBzdHJpbmc7XG4gIGdhbW1hOiBzdHJpbmc7XG4gIGFscGhhOiBzdHJpbmc7XG4gIG11OiBzdHJpbmc7XG4gIGJldGE6IHN0cmluZztcbiAgbnU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNpZ25Db252ZXJ0ID0ge1xuICB4U2hhcmU/OiBYU2hhcmVXaXRoQ2hhbGxlbmdlczsgLy8gWFNoYXJlIG9mIHRoZSBjdXJyZW50IHBhcnRpY2lwYW50XG4gIHlTaGFyZT86IFlTaGFyZTsgLy8gWVNoYXJlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG90aGVyIHBhcnRpY2lwYW50XG4gIGtTaGFyZT86IEtTaGFyZTsgLy8gS1NoYXJlIHJlY2VpdmVkIGZyb20gdGhlIG90aGVyIHBhcnRpY2lwYW50XG4gIGJTaGFyZT86IEJTaGFyZTsgLy8gUHJpdmF0ZSBCZXRhIHNoYXJlIG9mIHRoZSBwYXJ0aWNpcGFudFxuICBtdVNoYXJlPzogTVVTaGFyZTsgLy8gbXVTaGFyZSByZWNlaXZlZCBmcm9tIHRoZSBvdGhlciBwYXJ0aWNpcGFudFxuICBhU2hhcmU/OiBBU2hhcmU7XG4gIHdTaGFyZT86IFdTaGFyZTtcbn07XG5cbmV4cG9ydCB0eXBlIFNpZ25Db252ZXJ0U3RlcDEgPSB7XG4gIHhTaGFyZTogWFNoYXJlV2l0aENoYWxsZW5nZXM7IC8vIFhTaGFyZSBvZiB0aGUgY3VycmVudCBwYXJ0aWNpcGFudCAoZG9lcyBub3QgZ2V0IHNlbnQgdG8gb3RoZXIgcGFydGljaXBhbnQpXG4gIHlTaGFyZTogWVNoYXJlOyAvLyBZU2hhcmUgY29ycmVzcG9uZGluZyB0byB0aGUgb3RoZXIgcGFydGljaXBhbnQgKGRvZXMgbm90IGdldCBzZW50IHRvIG90aGVyIHBhcnRpY2lwYW50KVxuICBrU2hhcmU6IEtTaGFyZTsgLy8gc2hhcmUgdG8gYmUgbW9kaWZpZWQgYW5kIHNlbnQgdG8gb3RoZXIgcGFydGljaXBhbnRcbn07XG5cbmV4cG9ydCB0eXBlIFNpZ25Db252ZXJ0U3RlcDFSZXNwb25zZSA9IHtcbiAgYlNoYXJlOiBCU2hhcmU7IC8vIHByaXZhdGUgcGFydGljaXBhbnQgc2hhcmUgKGRvZXMgbm90IGdldCBzZW50IHRvIG90aGVyIHBhcnRpY2lwYW50KVxuICBhU2hhcmU6IEFTaGFyZTsgLy8gc2hhcmUgdG8gYmUgc2VudCB0byBvdGhlciBwYXJ0aWNpcGFudFxufTtcblxuZXhwb3J0IHR5cGUgU2lnbkNvbnZlcnRTdGVwMiA9IHtcbiAgd1NoYXJlOiBXU2hhcmU7IC8vIHByaXZhdGUgcGFydGljaXBhbnQgc2hhcmUgKGRvZXMgbm90IGdldCBzZW50IHRvIG90aGVyIHBhcnRpY2lwYW50KVxuICBhU2hhcmU6IEFTaGFyZTsgLy8gc2hhcmUgdG8gYmUgbW9kaWZpZWQgYW5kIHNlbnQgdG8gb3RoZXIgcGFydGljaXBhbnRcbn07XG5cbmV4cG9ydCB0eXBlIFNpZ25Db252ZXJ0U3RlcDJSZXNwb25zZSA9IHtcbiAgZ1NoYXJlOiBHU2hhcmU7IC8vIHByaXZhdGUgcGFydGljaXBhbnQgc2hhcmUgKGRvZXMgbm90IGdldCBzZW50IHRvIG90aGVyIHBhcnRpY2lwYW50KVxuICBtdVNoYXJlOiBNVVNoYXJlOyAvLyBzaGFyZSB0byBiZSBzZW50IHRvIG90aGVyIHBhcnRpY2lwYW50XG59O1xuXG5leHBvcnQgdHlwZSBTaWduQ29udmVydFN0ZXAzID0ge1xuICBiU2hhcmU6IEJTaGFyZTsgLy8gcHJpdmF0ZSBwYXJ0aWNpcGFudCBzaGFyZSAoZG9lcyBub3QgZ2V0IHNlbnQgdG8gb3RoZXIgcGFydGljaXBhbnQpXG4gIG11U2hhcmU6IE1VU2hhcmU7IC8vIHNoYXJlIHRvIGJlIG1vZGlmaWVkIGFuZCBzZW50IHRvIG90aGVyIHBhcnRpY2lwYW50XG59O1xuXG5leHBvcnQgdHlwZSBTaWduQ29udmVydFN0ZXAzUmVzcG9uc2UgPSB7XG4gIGdTaGFyZTogR1NoYXJlOyAvLyBwYXJ0aWNpcGFudCBzaGFyZVxuICBzaWduSW5kZXg6IFNpZ25JbmRleDtcbn07XG5cbmV4cG9ydCB0eXBlIFNpZ25Db252ZXJ0UlQgPSB7XG4gIGFTaGFyZT86IEFTaGFyZTtcbiAgYlNoYXJlPzogQlNoYXJlO1xuICBtdVNoYXJlPzogTVVTaGFyZTtcbiAgZ1NoYXJlPzogR1NoYXJlO1xufTtcblxuZXhwb3J0IHR5cGUgT1NoYXJlID0ge1xuICBpOiBudW1iZXI7XG4gIHk6IHN0cmluZztcbiAgazogc3RyaW5nO1xuICBvbWljcm9uOiBzdHJpbmc7XG4gIGRlbHRhOiBzdHJpbmc7XG4gIEdhbW1hOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBEU2hhcmUgPSBTaWduSW5kZXggJiB7XG4gIGRlbHRhOiBzdHJpbmc7XG4gIEdhbW1hOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBTU2hhcmUgPSB7XG4gIGk6IG51bWJlcjtcbiAgUjogc3RyaW5nO1xuICBzOiBzdHJpbmc7XG4gIHk6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNpZ25Db21iaW5lID0ge1xuICBnU2hhcmU6IEdTaGFyZTtcbiAgc2lnbkluZGV4OiBTaWduSW5kZXg7XG59O1xuXG5leHBvcnQgdHlwZSBTaWduQ29tYmluZVJUID0ge1xuICBvU2hhcmU6IE9TaGFyZTtcbiAgZFNoYXJlOiBEU2hhcmU7XG59O1xuXG5leHBvcnQgdHlwZSBTaWduYXR1cmUgPSB7XG4gIHk6IHN0cmluZztcbiAgcmVjaWQ6IG51bWJlcjtcbiAgcjogc3RyaW5nO1xuICBzOiBzdHJpbmc7XG59O1xuIl19
@@ -1,8 +1,8 @@
1
1
  /// <reference types="node" />
2
2
  import { Ed25519Curve } from '../../curves';
3
3
  import Shamir from '../../shamir';
4
- import HDTree from '../../hdTree';
5
4
  import { KeyShare, UShare, YShare, KeyCombine, PShare, SubkeyShare, JShare, SignShare, Signature, XShare, RShare, GShare } from './types';
5
+ import { HDTree } from '@bitgo-beta/sdk-lib-mpc';
6
6
  export default class Eddsa {
7
7
  static curve: Ed25519Curve;
8
8
  static shamir: Shamir;
@@ -1 +1 @@
1
- {"version":3,"file":"eddsa.d.ts","sourceRoot":"","sources":["../../../../../../src/account-lib/mpc/tss/eddsa/eddsa.ts"],"names":[],"mappings":";AAgCA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,MAAM,MAAM,cAAc,CAAC;AAElC,OAAO,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACN,UAAU,EACV,MAAM,EACN,WAAW,EACX,MAAM,EACN,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,MAAM,EACP,MAAM,SAAS,CAAC;AAMjB,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,MAAM,CAAC,KAAK,EAAE,YAAY,CAAsB;IAChD,MAAM,CAAC,MAAM,EAAE,MAAM,CAA2B;IAChD,MAAM,CAAC,WAAW,UAAS;WAEd,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IASxD,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEJ,MAAM,CAAC,EAAE,MAAM;IAI3B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ;IA6CtF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU;IAgDzD;;;;;;OAMG;IACH,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAqB9D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW;IA2DvE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS;IAmDvF,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,MAAM,EAAO,GAAG,MAAM;IAgC7F,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS;IAkBxC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO;IAMtD,OAAO,CAAC,kBAAkB;CAQ3B"}
1
+ {"version":3,"file":"eddsa.d.ts","sourceRoot":"","sources":["../../../../../../src/account-lib/mpc/tss/eddsa/eddsa.ts"],"names":[],"mappings":";AAgCA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,MAAM,MAAM,cAAc,CAAC;AAElC,OAAO,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACN,UAAU,EACV,MAAM,EACN,WAAW,EACX,MAAM,EACN,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,MAAM,EACP,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAKjD,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,MAAM,CAAC,KAAK,EAAE,YAAY,CAAsB;IAChD,MAAM,CAAC,MAAM,EAAE,MAAM,CAA2B;IAChD,MAAM,CAAC,WAAW,UAAS;WAEd,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IASxD,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEJ,MAAM,CAAC,EAAE,MAAM;IAI3B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ;IA6CtF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU;IAgDzD;;;;;;OAMG;IACH,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAqB9D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW;IA2DvE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS;IAmDvF,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,MAAM,EAAO,GAAG,MAAM;IAgC7F,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS;IAkBxC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO;IAMtD,OAAO,CAAC,kBAAkB;CAQ3B"}
@@ -304,4 +304,4 @@ exports.default = Eddsa;
304
304
  Eddsa.curve = new curves_1.Ed25519Curve();
305
305
  Eddsa.shamir = new shamir_1.default(Eddsa.curve);
306
306
  Eddsa.initialized = false;
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvbXBjL3Rzcy9lZGRzYS9lZGRzYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFDSCxtQ0FBaUQ7QUFDakQseUNBQTRDO0FBQzVDLDBEQUFrQztBQUVsQyxxQ0FBK0c7QUFlL0csb0RBQTRCO0FBRTVCLFFBQVE7QUFDUixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsc0VBQXNFLENBQUMsQ0FBQztBQUU1RixNQUFxQixLQUFLO0lBZ0J4QixZQUFZLE1BQWU7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQWJELE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQWU7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUU7WUFDdEIsTUFBTSxxQkFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQzFCO1FBRUQsT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBUUQsUUFBUSxDQUFDLEtBQWEsRUFBRSxTQUFpQixFQUFFLFNBQWlCLEVBQUUsSUFBYTtRQUN6RSxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxTQUFTLENBQUMsRUFBRTtZQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7U0FDNUM7UUFDRCxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDN0M7UUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLGFBQUosSUFBSSxjQUFK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Q29udGVudCI6WyIvKipcbiAqIE1vZHVsZSBwcm92aWRlcyBmdW5jdGlvbnMgZm9yIE1QQyB1c2luZyB0aHJlc2hvbGQgc2lnbmF0dXJlIHNjaGVtZSAoVFNTKS4gSXQgY29udGFpbnNcbiAqIGZ1bmN0aW9ucyBmb3Iga2V5IGdlbmVyYXRpb24gYW5kIG1lc3NhZ2Ugc2lnbmluZyB3aXRoIEVkRFNBLlxuICpcbiAqXG4gKiA9PT09PT09PT09PT09PT09PT09PT09XG4gKiBFZERTQSBLZXkgR2VuZXJhdGlvblxuICogPT09PT09PT09PT09PT09PT09PT09PVxuICogMS4gRWFjaCBzaWduZXIgZ2VuZXJhdGVzIHRoZWlyIG93biBrZXkgc2hhcmUsIHdoaWNoIGludm9sdmVzIGEgcHJpdmF0ZSB1LXNoYXJlIGFuZCBhIHB1YmxpYyB5LXNoYXJlLlxuICogMi4gU2lnbmVycyBkaXN0cmlidXRlIHRoZWlyIHktc2hhcmUgdG8gb3RoZXIgc2lnbmVycy5cbiAqIDMuIEFmdGVyIGV4Y2hhbmdpbmcgeS1zaGFyZXMgdGhlIG5leHQgcGhhc2UgaXMgdG8gY29tYmluZSBrZXkgc2hhcmVzLiBFYWNoIHNpZ25lciBjb21iaW5lcyB0aGVpciB1LXNoYXJlXG4gKiAgICB3aXRoIHRoZSB5LXNoYXJlcyByZWNlaXZlZCBmcm9tIG90aGVyIHNpZ25lcnMgaW4gb3JkZXIgdG8gZ2VuZXJhdGUgYSBwLXNoYXJlIGZvciB0aGVtc2VsdmVzLiBXZVxuICogICAgYWxzbyBzYXZlIGotc2hhcmVzIGZvciBvdGhlciBzaWduZXJzLlxuICogNC4gQXQgdGhpcyBwb2ludCB0aGUgcGxheWVycyBkbyBub3QgZGlzdHJpYnV0ZSBhbnkgc2hhcmVzIGFuZCB0aGUgZmlyc3QgcGhhc2Ugb2YgdGhlXG4gKiAgICBzaWduaW5nIHByb3RvY29sIGlzIGNvbXBsZXRlLlxuICpcbiAqID09PT09PT09PT09PT09PT09PT09PT1cbiAqIEVkRFNBIFNpZ25pbmdcbiAqID09PT09PT09PT09PT09PT09PT09PT1cbiAqIDEuIFRoZSBwYXJ0aWVzIGZyb20ga2V5IGdlbmVyYXRpb24gZGVjaWRlIHRoZXkgd2FudCB0byBzaWduIHNvbWV0aGluZy4gVGhleSBiZWdpbiB0aGUgc2lnbmluZyBwcm90b2NvbFxuICogICAgYnkgZ2VuZXJhdGluZyBzaGFyZXMgb2YgYW4gZXBoZW1lcmFsIGtleS5cbiAqXG4gKiAgICBhKSBFYWNoIHNpZ25lciB1c2VzIGhpcyBwLXNoYXJlIGFuZCB0aGUgai1zaGFyZXMgc3RvcmVkIGZvciBvdGhlciBwbGF5ZXJzIHRvIGdlbmVyYXRlIGhpcyBzaWduaW5nIHNoYXJlLlxuICogICAgYikgVGhpcyByZXN1bHRzIGluIGVhY2ggc2lnbmVyIGhhdmluZyBhIHByaXZhdGUgeC1zaGFyZSBhbmQgcHVibGljIHItc2hhcmVzLlxuICpcbiAqIDIuIFNpZ25lcnMgZGlzdHJpYnV0ZSB0aGVpciByLXNoYXJlcyB0byBvdGhlciBzaWduZXJzLlxuICogMy4gQWZ0ZXIgZXhjaGFuZ2luZyByLXNoYXJlcywgZWFjaCBzaWduZXIgc2lnbnMgdGhlaXIgc2hhcmUgb2YgdGhlIGVwaGVtZXJhbCBrZXkgdXNpbmcgdGhlaXIgcHJpdmF0ZVxuICogICAgeC1zaGFyZSB3aXRoIHRoZSByLXNoYXJlcyBmcm9tIG90aGVyIHNpZ25lcnMuXG4gKiA0LiBUaGlzIHJlc3VsdHMgaW4gZWFjaCBzaWduZXIgaGF2aW5nIGEgcHVibGljIGctc2hhcmUgd2hpY2ggdGhleSBzZW5kIHRvIHRoZSBvdGhlciBzaWduZXJzLlxuICogNS4gQWZ0ZXIgdGhlIHNpZ25lcnMgYnJvYWRjYXN0IHRoZWlyIGctc2hhcmVzLCB0aGUgZmluYWwgc2lnbmF0dXJlIGNhbiBiZSByZS1jb25zdHJ1Y3RlZCBpbmRlcGVuZGVudGx5LlxuICovXG5pbXBvcnQgeyByYW5kb21CeXRlcywgY3JlYXRlSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBFZDI1NTE5Q3VydmUgfSBmcm9tICcuLi8uLi9jdXJ2ZXMnO1xuaW1wb3J0IFNoYW1pciBmcm9tICcuLi8uLi9zaGFtaXInO1xuaW1wb3J0IEhEVHJlZSBmcm9tICcuLi8uLi9oZFRyZWUnO1xuaW1wb3J0IHsgYmlnSW50RnJvbUJ1ZmZlckxFLCBiaWdJbnRUb0J1ZmZlckxFLCBiaWdJbnRGcm9tQnVmZmVyQkUsIGJpZ0ludFRvQnVmZmVyQkUsIGNsYW1wIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQge1xuICBLZXlTaGFyZSxcbiAgVVNoYXJlLFxuICBZU2hhcmUsXG4gIEtleUNvbWJpbmUsXG4gIFBTaGFyZSxcbiAgU3Via2V5U2hhcmUsXG4gIEpTaGFyZSxcbiAgU2lnblNoYXJlLFxuICBTaWduYXR1cmUsXG4gIFhTaGFyZSxcbiAgUlNoYXJlLFxuICBHU2hhcmUsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG4vLyAyXjI1NlxuY29uc3QgYmFzZSA9IEJpZ0ludCgnMHgwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRWRkc2Ege1xuICBzdGF0aWMgY3VydmU6IEVkMjU1MTlDdXJ2ZSA9IG5ldyBFZDI1NTE5Q3VydmUoKTtcbiAgc3RhdGljIHNoYW1pcjogU2hhbWlyID0gbmV3IFNoYW1pcihFZGRzYS5jdXJ2ZSk7XG4gIHN0YXRpYyBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIHN0YXRpYyBhc3luYyBpbml0aWFsaXplKGhkVHJlZT86IEhEVHJlZSk6IFByb21pc2U8RWRkc2E+IHtcbiAgICBpZiAoIUVkZHNhLmluaXRpYWxpemVkKSB7XG4gICAgICBhd2FpdCBFZDI1NTE5Q3VydmUuaW5pdGlhbGl6ZSgpO1xuICAgICAgRWRkc2EuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRWRkc2EoaGRUcmVlKTtcbiAgfVxuXG4gIGhkVHJlZT86IEhEVHJlZTtcblxuICBjb25zdHJ1Y3RvcihoZFRyZWU/OiBIRFRyZWUpIHtcbiAgICB0aGlzLmhkVHJlZSA9IGhkVHJlZTtcbiAgfVxuXG4gIGtleVNoYXJlKGluZGV4OiBudW1iZXIsIHRocmVzaG9sZDogbnVtYmVyLCBudW1TaGFyZXM6IG51bWJlciwgc2VlZD86IEJ1ZmZlcik6IEtleVNoYXJlIHtcbiAgICBpZiAoIShpbmRleCA+IDAgJiYgaW5kZXggPD0gbnVtU2hhcmVzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIEtleVNoYXJlIGNvbmZpZycpO1xuICAgIH1cbiAgICBpZiAoc2VlZCAmJiBzZWVkLmxlbmd0aCAhPT0gNjQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2VlZCBtdXN0IGhhdmUgbGVuZ3RoIDY0Jyk7XG4gICAgfVxuICAgIGNvbnN0IHNlZWRjaGFpbiA9IHNlZWQgPz8gcmFuZG9tQnl0ZXMoNjQpO1xuICAgIGNvbnN0IGFjdHVhbFNlZWQgPSBzZWVkY2hhaW4uc2xpY2UoMCwgMzIpO1xuICAgIGNvbnN0IGNoYWluY29kZSA9IHNlZWRjaGFpbi5zbGljZSgzMik7XG4gICAgY29uc3QgaCA9IGNyZWF0ZUhhc2goJ3NoYTUxMicpLnVwZGF0ZShhY3R1YWxTZWVkKS5kaWdlc3QoKTtcbiAgICBjb25zdCB1ID0gY2xhbXAoYmlnSW50RnJvbUJ1ZmZlckxFKGguc2xpY2UoMCwgMzIpKSk7XG4gICAgY29uc3QgeSA9IEVkZHNhLmN1cnZlLmJhc2VQb2ludE11bHQodSk7XG4gICAgY29uc3QgeyBzaGFyZXM6IHNwbGl0X3UsIHYgfSA9IEVkZHNhLnNoYW1pci5zcGxpdCh1LCB0aHJlc2hvbGQsIG51bVNoYXJlcyk7XG5cbiAgICBjb25zdCBQX2k6IFVTaGFyZSA9IHtcbiAgICAgIGk6IGluZGV4LFxuICAgICAgdDogdGhyZXNob2xkLFxuICAgICAgbjogbnVtU2hhcmVzLFxuICAgICAgeTogYmlnSW50VG9CdWZmZXJMRSh5LCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgc2VlZDogYWN0dWFsU2VlZC50b1N0cmluZygnaGV4JyksXG4gICAgICBjaGFpbmNvZGU6IGNoYWluY29kZS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgICBjb25zdCBzaGFyZXM6IEtleVNoYXJlID0ge1xuICAgICAgdVNoYXJlOiBQX2ksXG4gICAgICB5U2hhcmVzOiB7fSxcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBpbmQgaW4gc3BsaXRfdSkge1xuICAgICAgY29uc3QgaSA9IHBhcnNlSW50KGluZCwgMTApO1xuICAgICAgaWYgKGkgPT09IGluZGV4KSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgc2hhcmVzLnlTaGFyZXNbaV0gPSB7XG4gICAgICAgIGksXG4gICAgICAgIGo6IFBfaS5pLFxuICAgICAgICB5OiBiaWdJbnRUb0J1ZmZlckxFKHksIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIHY6IGJpZ0ludFRvQnVmZmVyTEUodlswXSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgdTogYmlnSW50VG9CdWZmZXJMRShzcGxpdF91W2luZF0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIGNoYWluY29kZTogY2hhaW5jb2RlLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBzaGFyZXM7XG4gIH1cblxuICBrZXlDb21iaW5lKHVTaGFyZTogVVNoYXJlLCB5U2hhcmVzOiBZU2hhcmVbXSk6IEtleUNvbWJpbmUge1xuICAgIGNvbnN0IGggPSBjcmVhdGVIYXNoKCdzaGE1MTInKS51cGRhdGUoQnVmZmVyLmZyb20odVNoYXJlLnNlZWQsICdoZXgnKSkuZGlnZXN0KCk7XG4gICAgY29uc3QgdSA9IGNsYW1wKGJpZ0ludEZyb21CdWZmZXJMRShoLnNsaWNlKDAsIDMyKSkpO1xuICAgIGNvbnN0IHlWYWx1ZXMgPSBbdVNoYXJlLCAuLi55U2hhcmVzXS5tYXAoKHNoYXJlKSA9PiBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oc2hhcmUueSwgJ2hleCcpKSk7XG4gICAgY29uc3QgeSA9IHlWYWx1ZXMucmVkdWNlKChwYXJ0aWFsLCBzaGFyZSkgPT4gRWRkc2EuY3VydmUucG9pbnRBZGQocGFydGlhbCwgc2hhcmUpKTtcbiAgICBjb25zdCBjaGFpbmNvZGVzID0gW3VTaGFyZSwgLi4ueVNoYXJlc10ubWFwKCh7IGNoYWluY29kZSB9KSA9PiBiaWdJbnRGcm9tQnVmZmVyQkUoQnVmZmVyLmZyb20oY2hhaW5jb2RlLCAnaGV4JykpKTtcbiAgICBjb25zdCBjaGFpbmNvZGUgPSBjaGFpbmNvZGVzLnJlZHVjZSgoYWNjLCBjaGFpbmNvZGUpID0+IChhY2MgKyBjaGFpbmNvZGUpICUgYmFzZSk7XG5cbiAgICAvLyBWZXJpZnkgc2hhcmVzLlxuICAgIGZvciAoY29uc3Qgc2hhcmUgb2YgeVNoYXJlcykge1xuICAgICAgaWYgKCd2JyBpbiBzaGFyZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIEVkZHNhLnNoYW1pci52ZXJpZnkoXG4gICAgICAgICAgICBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oc2hhcmUudSwgJ2hleCcpKSxcbiAgICAgICAgICAgIFtiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oc2hhcmUueSwgJ2hleCcpKSwgYmlnSW50RnJvbUJ1ZmZlckxFKEJ1ZmZlci5mcm9tKHNoYXJlLnYhLCAnaGV4JykpXSxcbiAgICAgICAgICAgIHVTaGFyZS5pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgLy8gVE9ETyhCRy02MTAzNik6IEZpeCBWZXJpZmljYXRpb25cbiAgICAgICAgICAvLyB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCB2ZXJpZnkgc2hhcmUgZnJvbSBwYXJ0aWNpcGFudCAke3NoYXJlLmp9LiBWZXJpZmljYXRpb24gZXJyb3I6ICR7ZXJyfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgUF9pOiBQU2hhcmUgPSB7XG4gICAgICBpOiB1U2hhcmUuaSxcbiAgICAgIHQ6IHVTaGFyZS50LFxuICAgICAgbjogdVNoYXJlLm4sXG4gICAgICB5OiBiaWdJbnRUb0J1ZmZlckxFKHksIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICB1OiBiaWdJbnRUb0J1ZmZlckxFKHUsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICBwcmVmaXg6IGguc2xpY2UoMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIGNoYWluY29kZTogYmlnSW50VG9CdWZmZXJCRShjaGFpbmNvZGUsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgICBjb25zdCBwbGF5ZXJzOiBLZXlDb21iaW5lID0ge1xuICAgICAgcFNoYXJlOiBQX2ksXG4gICAgICBqU2hhcmVzOiB7fSxcbiAgICB9O1xuXG4gICAgZm9yIChsZXQgaW5kID0gMDsgaW5kIDwgeVNoYXJlcy5sZW5ndGg7IGluZCsrKSB7XG4gICAgICBjb25zdCBQX2ogPSB5U2hhcmVzW2luZF07XG4gICAgICBwbGF5ZXJzLmpTaGFyZXNbUF9qLmpdID0ge1xuICAgICAgICBpOiBQX2ouaixcbiAgICAgICAgajogUF9pLmksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gcGxheWVycztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXJpdmVzIGEgY2hpbGQgY29tbW9uIGtleWNoYWluIGZyb20gY29tbW9uIGtleWNoYWluXG4gICAqXG4gICAqIEBwYXJhbSBjb21tb25LZXljaGFpbiAtIGNvbW1vbiBrZXljaGFpbiBhcyBhIGhleCBzdHJpbmdcbiAgICogQHBhcmFtIHBhdGggLSBiaXAzMiBwYXRoXG4gICAqIEByZXR1cm4ge3N0cmluZ30gZGVyaXZlZCBjb21tb24ga2V5Y2hhaW4gYXMgYSBoZXggc3RyaW5nXG4gICAqL1xuICBkZXJpdmVVbmhhcmRlbmVkKGNvbW1vbktleWNoYWluOiBzdHJpbmcsIHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaGRUcmVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGRlcml2ZSBrZXkgd2l0aG91dCBIRFRyZWUgaW1wbGVtZW50YXRpb25cIik7XG4gICAgfVxuXG4gICAgY29uc3Qga2V5Y2hhaW4gPSBCdWZmZXIuZnJvbShjb21tb25LZXljaGFpbiwgJ2hleCcpO1xuXG4gICAgY29uc3QgZGVyaXZlZFB1YmxpY0tleWNoYWluID0gdGhpcy5oZFRyZWUucHVibGljRGVyaXZlKFxuICAgICAge1xuICAgICAgICBwazogYmlnSW50RnJvbUJ1ZmZlckxFKGtleWNoYWluLnNsaWNlKDAsIDMyKSksXG4gICAgICAgIGNoYWluY29kZTogYmlnSW50RnJvbUJ1ZmZlckJFKGtleWNoYWluLnNsaWNlKDMyKSksXG4gICAgICB9LFxuICAgICAgcGF0aFxuICAgICk7XG5cbiAgICBjb25zdCBkZXJpdmVkUGsgPSBiaWdJbnRUb0J1ZmZlckxFKGRlcml2ZWRQdWJsaWNLZXljaGFpbi5waywgMzIpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBjb25zdCBkZXJpdmVkQ2hhaW5jb2RlID0gYmlnSW50VG9CdWZmZXJCRShkZXJpdmVkUHVibGljS2V5Y2hhaW4uY2hhaW5jb2RlLCAzMikudG9TdHJpbmcoJ2hleCcpO1xuXG4gICAgcmV0dXJuIGRlcml2ZWRQayArIGRlcml2ZWRDaGFpbmNvZGU7XG4gIH1cblxuICBrZXlEZXJpdmUodVNoYXJlOiBVU2hhcmUsIHlTaGFyZXM6IFlTaGFyZVtdLCBwYXRoOiBzdHJpbmcpOiBTdWJrZXlTaGFyZSB7XG4gICAgaWYgKHRoaXMuaGRUcmVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGRlcml2ZSBrZXkgd2l0aG91dCBIRFRyZWUgaW1wbGVtZW50YXRpb25cIik7XG4gICAgfVxuICAgIGNvbnN0IGggPSBjcmVhdGVIYXNoKCdzaGE1MTInKS51cGRhdGUoQnVmZmVyLmZyb20odVNoYXJlLnNlZWQsICdoZXgnKSkuZGlnZXN0KCk7XG4gICAgY29uc3QgeVZhbHVlcyA9IFt1U2hhcmUsIC4uLnlTaGFyZXNdLm1hcCgoc2hhcmUpID0+IGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShzaGFyZS55LCAnaGV4JykpKTtcbiAgICBjb25zdCB5ID0geVZhbHVlcy5yZWR1Y2UoKHBhcnRpYWwsIHNoYXJlKSA9PiBFZGRzYS5jdXJ2ZS5wb2ludEFkZChwYXJ0aWFsLCBzaGFyZSkpO1xuICAgIGNvbnN0IHUgPSBjbGFtcChiaWdJbnRGcm9tQnVmZmVyTEUoaC5zbGljZSgwLCAzMikpKTtcbiAgICBjb25zdCBwcmVmaXggPSBiaWdJbnRGcm9tQnVmZmVyQkUoaC5zbGljZSgzMikpO1xuICAgIGxldCBjb250cmliQ2hhaW5jb2RlID0gYmlnSW50RnJvbUJ1ZmZlckJFKEJ1ZmZlci5mcm9tKHVTaGFyZS5jaGFpbmNvZGUsICdoZXgnKSk7XG4gICAgY29uc3QgY2hhaW5jb2RlcyA9IFtcbiAgICAgIGNvbnRyaWJDaGFpbmNvZGUsXG4gICAgICAuLi55U2hhcmVzLm1hcCgoeyBjaGFpbmNvZGUgfSkgPT4gYmlnSW50RnJvbUJ1ZmZlckJFKEJ1ZmZlci5mcm9tKGNoYWluY29kZSwgJ2hleCcpKSksXG4gICAgXTtcbiAgICBjb25zdCBjaGFpbmNvZGUgPSBjaGFpbmNvZGVzLnJlZHVjZSgoYWNjLCBjaGFpbmNvZGUpID0+IChhY2MgKyBjaGFpbmNvZGUpICUgYmFzZSk7XG5cbiAgICAvLyBEZXJpdmUgc3Via2V5LlxuICAgIGNvbnN0IHN1YmtleSA9IHRoaXMuaGRUcmVlLnByaXZhdGVEZXJpdmUoeyBwazogeSwgc2s6IHUsIHByZWZpeCwgY2hhaW5jb2RlIH0sIHBhdGgpO1xuXG4gICAgLy8gQ2FsY3VsYXRlIG5ldyBwdWJsaWMga2V5IGNvbnRyaWJ1dGlvbi5cbiAgICBjb25zdCBjb250cmliWSA9IEVkZHNhLmN1cnZlLmJhc2VQb2ludE11bHQoc3Via2V5LnNrKTtcblxuICAgIC8vIENhbGN1bGF0ZSBuZXcgY2hhaW5jb2RlIGNvbnRyaWJ1dGlvbi5cbiAgICBjb25zdCBjaGFpbmNvZGVEZWx0YSA9IChiYXNlICsgc3Via2V5LmNoYWluY29kZSAtIGNoYWluY29kZSkgJSBiYXNlO1xuICAgIGNvbnRyaWJDaGFpbmNvZGUgPSAoY29udHJpYkNoYWluY29kZSArIGNoYWluY29kZURlbHRhKSAlIGJhc2U7XG5cbiAgICAvLyBDYWxjdWxhdGUgbmV3IHUgdmFsdWVzLlxuICAgIGNvbnN0IHsgc2hhcmVzOiBzcGxpdF91LCB2IH0gPSBFZGRzYS5zaGFtaXIuc3BsaXQoc3Via2V5LnNrLCB1U2hhcmUudCwgdVNoYXJlLm4pO1xuXG4gICAgY29uc3QgUF9pOiBQU2hhcmUgPSB7XG4gICAgICBpOiB1U2hhcmUuaSxcbiAgICAgIHQ6IHVTaGFyZS50LFxuICAgICAgbjogdVNoYXJlLm4sXG4gICAgICB5OiBiaWdJbnRUb0J1ZmZlckxFKHN1YmtleS5waywgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHU6IGJpZ0ludFRvQnVmZmVyTEUoc3Via2V5LnNrLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgcHJlZml4OiBiaWdJbnRUb0J1ZmZlckJFKHN1YmtleS5wcmVmaXghLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgY2hhaW5jb2RlOiBiaWdJbnRUb0J1ZmZlckJFKHN1YmtleS5jaGFpbmNvZGUsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcblxuICAgIGNvbnN0IHNoYXJlczogU3Via2V5U2hhcmUgPSB7XG4gICAgICBwU2hhcmU6IFBfaSxcbiAgICAgIHlTaGFyZXM6IHt9LFxuICAgIH07XG5cbiAgICBmb3IgKGxldCBpbmQgPSAwOyBpbmQgPCB5U2hhcmVzLmxlbmd0aDsgaW5kKyspIHtcbiAgICAgIGNvbnN0IFBfaiA9IHlTaGFyZXNbaW5kXTtcbiAgICAgIHNoYXJlcy55U2hhcmVzW1Bfai5qXSA9IHtcbiAgICAgICAgaTogUF9qLmosXG4gICAgICAgIGo6IFBfaS5pLFxuICAgICAgICB5OiBiaWdJbnRUb0J1ZmZlckxFKGNvbnRyaWJZLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB2OiBiaWdJbnRUb0J1ZmZlckxFKHZbMF0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIHU6IGJpZ0ludFRvQnVmZmVyTEUoc3BsaXRfdVtQX2oual0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIGNoYWluY29kZTogYmlnSW50VG9CdWZmZXJCRShjb250cmliQ2hhaW5jb2RlLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2hhcmVzO1xuICB9XG5cbiAgc2lnblNoYXJlKG1lc3NhZ2U6IEJ1ZmZlciwgcFNoYXJlOiBQU2hhcmUsIGpTaGFyZXM6IEpTaGFyZVtdLCBzZWVkPzogQnVmZmVyKTogU2lnblNoYXJlIHtcbiAgICBpZiAoc2VlZCAmJiBzZWVkLmxlbmd0aCAhPT0gNjQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2VlZCBtdXN0IGhhdmUgbGVuZ3RoIDY0Jyk7XG4gICAgfVxuICAgIGNvbnN0IGluZGljZXMgPSBbcFNoYXJlLCAuLi5qU2hhcmVzXS5tYXAoKHsgaSB9KSA9PiBpKTtcbiAgICBjb25zdCB7IHNoYXJlczogc3BsaXRfdSwgdiB9ID0gRWRkc2Euc2hhbWlyLnNwbGl0KFxuICAgICAgYmlnSW50RnJvbUJ1ZmZlckxFKEJ1ZmZlci5mcm9tKHBTaGFyZS51LCAnaGV4JykpLFxuICAgICAgcFNoYXJlLnQsXG4gICAgICBwU2hhcmUublxuICAgICk7XG5cbiAgICAvLyBHZW5lcmF0ZSBub25jZSBjb250cmlidXRpb24uXG4gICAgY29uc3QgcHJlZml4ID0gQnVmZmVyLmZyb20ocFNoYXJlLnByZWZpeCwgJ2hleCcpO1xuICAgIGNvbnN0IHJhbmRvbUJ1ZmZlciA9IHNlZWQgPz8gcmFuZG9tQnl0ZXMoNjQpO1xuXG4gICAgY29uc3QgZGlnZXN0ID0gY3JlYXRlSGFzaCgnc2hhNTEyJylcbiAgICAgIC51cGRhdGUoQnVmZmVyLmNvbmNhdChbcHJlZml4LCBtZXNzYWdlLCByYW5kb21CdWZmZXJdKSlcbiAgICAgIC5kaWdlc3QoKTtcblxuICAgIGNvbnN0IHIgPSBFZGRzYS5jdXJ2ZS5zY2FsYXJSZWR1Y2UoYmlnSW50RnJvbUJ1ZmZlckxFKGRpZ2VzdCkpO1xuICAgIGNvbnN0IFIgPSBFZGRzYS5jdXJ2ZS5iYXNlUG9pbnRNdWx0KHIpO1xuICAgIGNvbnN0IHsgc2hhcmVzOiBzcGxpdF9yIH0gPSBFZGRzYS5zaGFtaXIuc3BsaXQociwgaW5kaWNlcy5sZW5ndGgsIGluZGljZXMubGVuZ3RoLCBpbmRpY2VzKTtcblxuICAgIGNvbnN0IFBfaTogWFNoYXJlID0ge1xuICAgICAgaTogcFNoYXJlLmksXG4gICAgICB5OiBwU2hhcmUueSxcbiAgICAgIHU6IGJpZ0ludFRvQnVmZmVyTEUoc3BsaXRfdVtwU2hhcmUuaV0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICByOiBiaWdJbnRUb0J1ZmZlckxFKHNwbGl0X3JbcFNoYXJlLmldLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgUjogYmlnSW50VG9CdWZmZXJMRShSLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG5cbiAgICBjb25zdCByZXN1bHRTaGFyZXM6IFNpZ25TaGFyZSA9IHtcbiAgICAgIHhTaGFyZTogUF9pLFxuICAgICAgclNoYXJlczoge30sXG4gICAgfTtcblxuICAgIGZvciAobGV0IGluZCA9IDA7IGluZCA8IGpTaGFyZXMubGVuZ3RoOyBpbmQrKykge1xuICAgICAgY29uc3QgU19qID0galNoYXJlc1tpbmRdO1xuICAgICAgcmVzdWx0U2hhcmVzLnJTaGFyZXNbU19qLmldID0ge1xuICAgICAgICBpOiBTX2ouaSxcbiAgICAgICAgajogcFNoYXJlLmksXG4gICAgICAgIHU6IGJpZ0ludFRvQnVmZmVyTEUoc3BsaXRfdVtTX2ouaV0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIHY6IGJpZ0ludFRvQnVmZmVyTEUodlswXSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgcjogYmlnSW50VG9CdWZmZXJMRShzcGxpdF9yW1Nfai5pXSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgUjogYmlnSW50VG9CdWZmZXJMRShSLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBjb21taXRtZW50OiBiaWdJbnRUb0J1ZmZlckxFKEVkZHNhLmN1cnZlLmJhc2VQb2ludE11bHQoc3BsaXRfcltTX2ouaV0pLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdFNoYXJlcztcbiAgfVxuXG4gIHNpZ24obWVzc2FnZTogQnVmZmVyLCBwbGF5ZXJTaGFyZTogWFNoYXJlLCByU2hhcmVzOiBSU2hhcmVbXSwgeVNoYXJlczogWVNoYXJlW10gPSBbXSk6IEdTaGFyZSB7XG4gICAgZm9yIChjb25zdCByU2hhcmUgb2YgclNoYXJlcykge1xuICAgICAgaWYgKHJTaGFyZS5jb21taXRtZW50KSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVDb21taXRtZW50KHJTaGFyZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgU19pID0gcGxheWVyU2hhcmU7XG5cbiAgICBjb25zdCB1VmFsdWVzID0gW3BsYXllclNoYXJlLCAuLi5yU2hhcmVzLCAuLi55U2hhcmVzXS5tYXAoKHsgdSB9KSA9PiBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20odSwgJ2hleCcpKSk7XG4gICAgY29uc3QgeCA9IHVWYWx1ZXMucmVkdWNlKChhY2MsIHUpID0+IEVkZHNhLmN1cnZlLnNjYWxhckFkZChhY2MsIHUpKTtcblxuICAgIGNvbnN0IFJWYWx1ZXMgPSBbcGxheWVyU2hhcmUsIC4uLnJTaGFyZXNdLm1hcCgoeyBSIH0pID0+IGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShSLCAnaGV4JykpKTtcbiAgICBjb25zdCBSID0gUlZhbHVlcy5yZWR1Y2UoKHBhcnRpYWwsIHNoYXJlKSA9PiBFZGRzYS5jdXJ2ZS5wb2ludEFkZChwYXJ0aWFsLCBzaGFyZSkpO1xuXG4gICAgY29uc3QgclZhbHVlcyA9IFtwbGF5ZXJTaGFyZSwgLi4uclNoYXJlc10ubWFwKCh7IHIgfSkgPT4gYmlnSW50RnJvbUJ1ZmZlckxFKEJ1ZmZlci5mcm9tKHIsICdoZXgnKSkpO1xuICAgIGNvbnN0IHIgPSByVmFsdWVzLnJlZHVjZSgocGFydGlhbCwgc2hhcmUpID0+IEVkZHNhLmN1cnZlLnNjYWxhckFkZChwYXJ0aWFsLCBzaGFyZSkpO1xuXG4gICAgY29uc3QgY29tYmluZWRCdWZmZXIgPSBCdWZmZXIuY29uY2F0KFtiaWdJbnRUb0J1ZmZlckxFKFIsIDMyKSwgQnVmZmVyLmZyb20oU19pLnksICdoZXgnKSwgbWVzc2FnZV0pO1xuICAgIGNvbnN0IGRpZ2VzdCA9IGNyZWF0ZUhhc2goJ3NoYTUxMicpLnVwZGF0ZShjb21iaW5lZEJ1ZmZlcikuZGlnZXN0KCk7XG4gICAgY29uc3QgayA9IEVkZHNhLmN1cnZlLnNjYWxhclJlZHVjZShiaWdJbnRGcm9tQnVmZmVyTEUoZGlnZXN0KSk7XG5cbiAgICBjb25zdCBnYW1tYSA9IEVkZHNhLmN1cnZlLnNjYWxhckFkZChyLCBFZGRzYS5jdXJ2ZS5zY2FsYXJNdWx0KGssIHgpKTtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICBpOiBwbGF5ZXJTaGFyZS5pLFxuICAgICAgeTogcGxheWVyU2hhcmUueSxcbiAgICAgIGdhbW1hOiBiaWdJbnRUb0J1ZmZlckxFKGdhbW1hLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgUjogYmlnSW50VG9CdWZmZXJMRShSLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHNpZ25Db21iaW5lKHNoYXJlczogR1NoYXJlW10pOiBTaWduYXR1cmUge1xuICAgIGNvbnN0IHkgPSBzaGFyZXNbMF0ueTtcbiAgICBjb25zdCBSID0gc2hhcmVzWzBdLlI7XG5cbiAgICBjb25zdCByZXN1bHRTaGFyZXMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGluZCBpbiBzaGFyZXMpIHtcbiAgICAgIGNvbnN0IFNfaSA9IHNoYXJlc1tpbmRdO1xuICAgICAgcmVzdWx0U2hhcmVzW1NfaS5pXSA9IGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShTX2kuZ2FtbWEsICdoZXgnKSk7XG4gICAgfVxuICAgIGNvbnN0IHNpZ21hOiBiaWdpbnQgPSBFZGRzYS5zaGFtaXIuY29tYmluZShyZXN1bHRTaGFyZXMpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIHksXG4gICAgICBSLFxuICAgICAgc2lnbWE6IGJpZ0ludFRvQnVmZmVyTEUoc2lnbWEsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgdmVyaWZ5KG1lc3NhZ2U6IEJ1ZmZlciwgc2lnbmF0dXJlOiBTaWduYXR1cmUpOiBib29sZWFuIHtcbiAgICBjb25zdCBwdWJsaWNLZXkgPSBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oc2lnbmF0dXJlLnksICdoZXgnKSk7XG4gICAgY29uc3Qgc2lnbmVkTWVzc2FnZSA9IEJ1ZmZlci5jb25jYXQoW0J1ZmZlci5mcm9tKHNpZ25hdHVyZS5SLCAnaGV4JyksIEJ1ZmZlci5mcm9tKHNpZ25hdHVyZS5zaWdtYSwgJ2hleCcpXSk7XG4gICAgcmV0dXJuIEVkZHNhLmN1cnZlLnZlcmlmeShtZXNzYWdlLCBzaWduZWRNZXNzYWdlLCBwdWJsaWNLZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUNvbW1pdG1lbnQoUlNoYXJlOiBSU2hhcmUpOiB2b2lkIHtcbiAgICBhc3NlcnQoUlNoYXJlLmNvbW1pdG1lbnQsICdDb21taXRtZW50IGlzIG1pc3NpbmcnKTtcbiAgICBjb25zdCBjID0gRWRkc2EuY3VydmUuYmFzZVBvaW50TXVsdChiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oUlNoYXJlLnIsICdoZXgnKSkpO1xuICAgIGNvbnN0IG90aGVyUGxheWVyQ29tbWl0bWVudCA9IGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShSU2hhcmUuY29tbWl0bWVudCwgJ2hleCcpKTtcbiAgICBpZiAoYyAhPT0gb3RoZXJQbGF5ZXJDb21taXRtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCB2ZXJpZnkgb3RoZXIgcGxheWVyIHNoYXJlJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvbXBjL3Rzcy9lZGRzYS9lZGRzYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFDSCxtQ0FBaUQ7QUFDakQseUNBQTRDO0FBQzVDLDBEQUFrQztBQUNsQyxxQ0FBK0c7QUFlL0csb0RBQTRCO0FBRzVCLFFBQVE7QUFDUixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsc0VBQXNFLENBQUMsQ0FBQztBQUU1RixNQUFxQixLQUFLO0lBZ0J4QixZQUFZLE1BQWU7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQWJELE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQWU7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUU7WUFDdEIsTUFBTSxxQkFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQzFCO1FBRUQsT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBUUQsUUFBUSxDQUFDLEtBQWEsRUFBRSxTQUFpQixFQUFFLFNBQWlCLEVBQUUsSUFBYTtRQUN6RSxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxTQUFTLENBQUMsRUFBRTtZQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7U0FDNUM7UUFDRCxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDN0M7UUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLGFBQUosSUFBSSxjQUFK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Q29udGVudCI6WyIvKipcbiAqIE1vZHVsZSBwcm92aWRlcyBmdW5jdGlvbnMgZm9yIE1QQyB1c2luZyB0aHJlc2hvbGQgc2lnbmF0dXJlIHNjaGVtZSAoVFNTKS4gSXQgY29udGFpbnNcbiAqIGZ1bmN0aW9ucyBmb3Iga2V5IGdlbmVyYXRpb24gYW5kIG1lc3NhZ2Ugc2lnbmluZyB3aXRoIEVkRFNBLlxuICpcbiAqXG4gKiA9PT09PT09PT09PT09PT09PT09PT09XG4gKiBFZERTQSBLZXkgR2VuZXJhdGlvblxuICogPT09PT09PT09PT09PT09PT09PT09PVxuICogMS4gRWFjaCBzaWduZXIgZ2VuZXJhdGVzIHRoZWlyIG93biBrZXkgc2hhcmUsIHdoaWNoIGludm9sdmVzIGEgcHJpdmF0ZSB1LXNoYXJlIGFuZCBhIHB1YmxpYyB5LXNoYXJlLlxuICogMi4gU2lnbmVycyBkaXN0cmlidXRlIHRoZWlyIHktc2hhcmUgdG8gb3RoZXIgc2lnbmVycy5cbiAqIDMuIEFmdGVyIGV4Y2hhbmdpbmcgeS1zaGFyZXMgdGhlIG5leHQgcGhhc2UgaXMgdG8gY29tYmluZSBrZXkgc2hhcmVzLiBFYWNoIHNpZ25lciBjb21iaW5lcyB0aGVpciB1LXNoYXJlXG4gKiAgICB3aXRoIHRoZSB5LXNoYXJlcyByZWNlaXZlZCBmcm9tIG90aGVyIHNpZ25lcnMgaW4gb3JkZXIgdG8gZ2VuZXJhdGUgYSBwLXNoYXJlIGZvciB0aGVtc2VsdmVzLiBXZVxuICogICAgYWxzbyBzYXZlIGotc2hhcmVzIGZvciBvdGhlciBzaWduZXJzLlxuICogNC4gQXQgdGhpcyBwb2ludCB0aGUgcGxheWVycyBkbyBub3QgZGlzdHJpYnV0ZSBhbnkgc2hhcmVzIGFuZCB0aGUgZmlyc3QgcGhhc2Ugb2YgdGhlXG4gKiAgICBzaWduaW5nIHByb3RvY29sIGlzIGNvbXBsZXRlLlxuICpcbiAqID09PT09PT09PT09PT09PT09PT09PT1cbiAqIEVkRFNBIFNpZ25pbmdcbiAqID09PT09PT09PT09PT09PT09PT09PT1cbiAqIDEuIFRoZSBwYXJ0aWVzIGZyb20ga2V5IGdlbmVyYXRpb24gZGVjaWRlIHRoZXkgd2FudCB0byBzaWduIHNvbWV0aGluZy4gVGhleSBiZWdpbiB0aGUgc2lnbmluZyBwcm90b2NvbFxuICogICAgYnkgZ2VuZXJhdGluZyBzaGFyZXMgb2YgYW4gZXBoZW1lcmFsIGtleS5cbiAqXG4gKiAgICBhKSBFYWNoIHNpZ25lciB1c2VzIGhpcyBwLXNoYXJlIGFuZCB0aGUgai1zaGFyZXMgc3RvcmVkIGZvciBvdGhlciBwbGF5ZXJzIHRvIGdlbmVyYXRlIGhpcyBzaWduaW5nIHNoYXJlLlxuICogICAgYikgVGhpcyByZXN1bHRzIGluIGVhY2ggc2lnbmVyIGhhdmluZyBhIHByaXZhdGUgeC1zaGFyZSBhbmQgcHVibGljIHItc2hhcmVzLlxuICpcbiAqIDIuIFNpZ25lcnMgZGlzdHJpYnV0ZSB0aGVpciByLXNoYXJlcyB0byBvdGhlciBzaWduZXJzLlxuICogMy4gQWZ0ZXIgZXhjaGFuZ2luZyByLXNoYXJlcywgZWFjaCBzaWduZXIgc2lnbnMgdGhlaXIgc2hhcmUgb2YgdGhlIGVwaGVtZXJhbCBrZXkgdXNpbmcgdGhlaXIgcHJpdmF0ZVxuICogICAgeC1zaGFyZSB3aXRoIHRoZSByLXNoYXJlcyBmcm9tIG90aGVyIHNpZ25lcnMuXG4gKiA0LiBUaGlzIHJlc3VsdHMgaW4gZWFjaCBzaWduZXIgaGF2aW5nIGEgcHVibGljIGctc2hhcmUgd2hpY2ggdGhleSBzZW5kIHRvIHRoZSBvdGhlciBzaWduZXJzLlxuICogNS4gQWZ0ZXIgdGhlIHNpZ25lcnMgYnJvYWRjYXN0IHRoZWlyIGctc2hhcmVzLCB0aGUgZmluYWwgc2lnbmF0dXJlIGNhbiBiZSByZS1jb25zdHJ1Y3RlZCBpbmRlcGVuZGVudGx5LlxuICovXG5pbXBvcnQgeyByYW5kb21CeXRlcywgY3JlYXRlSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBFZDI1NTE5Q3VydmUgfSBmcm9tICcuLi8uLi9jdXJ2ZXMnO1xuaW1wb3J0IFNoYW1pciBmcm9tICcuLi8uLi9zaGFtaXInO1xuaW1wb3J0IHsgYmlnSW50RnJvbUJ1ZmZlckxFLCBiaWdJbnRUb0J1ZmZlckxFLCBiaWdJbnRGcm9tQnVmZmVyQkUsIGJpZ0ludFRvQnVmZmVyQkUsIGNsYW1wIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQge1xuICBLZXlTaGFyZSxcbiAgVVNoYXJlLFxuICBZU2hhcmUsXG4gIEtleUNvbWJpbmUsXG4gIFBTaGFyZSxcbiAgU3Via2V5U2hhcmUsXG4gIEpTaGFyZSxcbiAgU2lnblNoYXJlLFxuICBTaWduYXR1cmUsXG4gIFhTaGFyZSxcbiAgUlNoYXJlLFxuICBHU2hhcmUsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgSERUcmVlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWxpYi1tcGMnO1xuXG4vLyAyXjI1NlxuY29uc3QgYmFzZSA9IEJpZ0ludCgnMHgwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRWRkc2Ege1xuICBzdGF0aWMgY3VydmU6IEVkMjU1MTlDdXJ2ZSA9IG5ldyBFZDI1NTE5Q3VydmUoKTtcbiAgc3RhdGljIHNoYW1pcjogU2hhbWlyID0gbmV3IFNoYW1pcihFZGRzYS5jdXJ2ZSk7XG4gIHN0YXRpYyBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIHN0YXRpYyBhc3luYyBpbml0aWFsaXplKGhkVHJlZT86IEhEVHJlZSk6IFByb21pc2U8RWRkc2E+IHtcbiAgICBpZiAoIUVkZHNhLmluaXRpYWxpemVkKSB7XG4gICAgICBhd2FpdCBFZDI1NTE5Q3VydmUuaW5pdGlhbGl6ZSgpO1xuICAgICAgRWRkc2EuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRWRkc2EoaGRUcmVlKTtcbiAgfVxuXG4gIGhkVHJlZT86IEhEVHJlZTtcblxuICBjb25zdHJ1Y3RvcihoZFRyZWU/OiBIRFRyZWUpIHtcbiAgICB0aGlzLmhkVHJlZSA9IGhkVHJlZTtcbiAgfVxuXG4gIGtleVNoYXJlKGluZGV4OiBudW1iZXIsIHRocmVzaG9sZDogbnVtYmVyLCBudW1TaGFyZXM6IG51bWJlciwgc2VlZD86IEJ1ZmZlcik6IEtleVNoYXJlIHtcbiAgICBpZiAoIShpbmRleCA+IDAgJiYgaW5kZXggPD0gbnVtU2hhcmVzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIEtleVNoYXJlIGNvbmZpZycpO1xuICAgIH1cbiAgICBpZiAoc2VlZCAmJiBzZWVkLmxlbmd0aCAhPT0gNjQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2VlZCBtdXN0IGhhdmUgbGVuZ3RoIDY0Jyk7XG4gICAgfVxuICAgIGNvbnN0IHNlZWRjaGFpbiA9IHNlZWQgPz8gcmFuZG9tQnl0ZXMoNjQpO1xuICAgIGNvbnN0IGFjdHVhbFNlZWQgPSBzZWVkY2hhaW4uc2xpY2UoMCwgMzIpO1xuICAgIGNvbnN0IGNoYWluY29kZSA9IHNlZWRjaGFpbi5zbGljZSgzMik7XG4gICAgY29uc3QgaCA9IGNyZWF0ZUhhc2goJ3NoYTUxMicpLnVwZGF0ZShhY3R1YWxTZWVkKS5kaWdlc3QoKTtcbiAgICBjb25zdCB1ID0gY2xhbXAoYmlnSW50RnJvbUJ1ZmZlckxFKGguc2xpY2UoMCwgMzIpKSk7XG4gICAgY29uc3QgeSA9IEVkZHNhLmN1cnZlLmJhc2VQb2ludE11bHQodSk7XG4gICAgY29uc3QgeyBzaGFyZXM6IHNwbGl0X3UsIHYgfSA9IEVkZHNhLnNoYW1pci5zcGxpdCh1LCB0aHJlc2hvbGQsIG51bVNoYXJlcyk7XG5cbiAgICBjb25zdCBQX2k6IFVTaGFyZSA9IHtcbiAgICAgIGk6IGluZGV4LFxuICAgICAgdDogdGhyZXNob2xkLFxuICAgICAgbjogbnVtU2hhcmVzLFxuICAgICAgeTogYmlnSW50VG9CdWZmZXJMRSh5LCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgc2VlZDogYWN0dWFsU2VlZC50b1N0cmluZygnaGV4JyksXG4gICAgICBjaGFpbmNvZGU6IGNoYWluY29kZS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgICBjb25zdCBzaGFyZXM6IEtleVNoYXJlID0ge1xuICAgICAgdVNoYXJlOiBQX2ksXG4gICAgICB5U2hhcmVzOiB7fSxcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBpbmQgaW4gc3BsaXRfdSkge1xuICAgICAgY29uc3QgaSA9IHBhcnNlSW50KGluZCwgMTApO1xuICAgICAgaWYgKGkgPT09IGluZGV4KSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgc2hhcmVzLnlTaGFyZXNbaV0gPSB7XG4gICAgICAgIGksXG4gICAgICAgIGo6IFBfaS5pLFxuICAgICAgICB5OiBiaWdJbnRUb0J1ZmZlckxFKHksIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIHY6IGJpZ0ludFRvQnVmZmVyTEUodlswXSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgdTogYmlnSW50VG9CdWZmZXJMRShzcGxpdF91W2luZF0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIGNoYWluY29kZTogY2hhaW5jb2RlLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBzaGFyZXM7XG4gIH1cblxuICBrZXlDb21iaW5lKHVTaGFyZTogVVNoYXJlLCB5U2hhcmVzOiBZU2hhcmVbXSk6IEtleUNvbWJpbmUge1xuICAgIGNvbnN0IGggPSBjcmVhdGVIYXNoKCdzaGE1MTInKS51cGRhdGUoQnVmZmVyLmZyb20odVNoYXJlLnNlZWQsICdoZXgnKSkuZGlnZXN0KCk7XG4gICAgY29uc3QgdSA9IGNsYW1wKGJpZ0ludEZyb21CdWZmZXJMRShoLnNsaWNlKDAsIDMyKSkpO1xuICAgIGNvbnN0IHlWYWx1ZXMgPSBbdVNoYXJlLCAuLi55U2hhcmVzXS5tYXAoKHNoYXJlKSA9PiBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oc2hhcmUueSwgJ2hleCcpKSk7XG4gICAgY29uc3QgeSA9IHlWYWx1ZXMucmVkdWNlKChwYXJ0aWFsLCBzaGFyZSkgPT4gRWRkc2EuY3VydmUucG9pbnRBZGQocGFydGlhbCwgc2hhcmUpKTtcbiAgICBjb25zdCBjaGFpbmNvZGVzID0gW3VTaGFyZSwgLi4ueVNoYXJlc10ubWFwKCh7IGNoYWluY29kZSB9KSA9PiBiaWdJbnRGcm9tQnVmZmVyQkUoQnVmZmVyLmZyb20oY2hhaW5jb2RlLCAnaGV4JykpKTtcbiAgICBjb25zdCBjaGFpbmNvZGUgPSBjaGFpbmNvZGVzLnJlZHVjZSgoYWNjLCBjaGFpbmNvZGUpID0+IChhY2MgKyBjaGFpbmNvZGUpICUgYmFzZSk7XG5cbiAgICAvLyBWZXJpZnkgc2hhcmVzLlxuICAgIGZvciAoY29uc3Qgc2hhcmUgb2YgeVNoYXJlcykge1xuICAgICAgaWYgKCd2JyBpbiBzaGFyZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIEVkZHNhLnNoYW1pci52ZXJpZnkoXG4gICAgICAgICAgICBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oc2hhcmUudSwgJ2hleCcpKSxcbiAgICAgICAgICAgIFtiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oc2hhcmUueSwgJ2hleCcpKSwgYmlnSW50RnJvbUJ1ZmZlckxFKEJ1ZmZlci5mcm9tKHNoYXJlLnYhLCAnaGV4JykpXSxcbiAgICAgICAgICAgIHVTaGFyZS5pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgLy8gVE9ETyhCRy02MTAzNik6IEZpeCBWZXJpZmljYXRpb25cbiAgICAgICAgICAvLyB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCB2ZXJpZnkgc2hhcmUgZnJvbSBwYXJ0aWNpcGFudCAke3NoYXJlLmp9LiBWZXJpZmljYXRpb24gZXJyb3I6ICR7ZXJyfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgUF9pOiBQU2hhcmUgPSB7XG4gICAgICBpOiB1U2hhcmUuaSxcbiAgICAgIHQ6IHVTaGFyZS50LFxuICAgICAgbjogdVNoYXJlLm4sXG4gICAgICB5OiBiaWdJbnRUb0J1ZmZlckxFKHksIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICB1OiBiaWdJbnRUb0J1ZmZlckxFKHUsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICBwcmVmaXg6IGguc2xpY2UoMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIGNoYWluY29kZTogYmlnSW50VG9CdWZmZXJCRShjaGFpbmNvZGUsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgICBjb25zdCBwbGF5ZXJzOiBLZXlDb21iaW5lID0ge1xuICAgICAgcFNoYXJlOiBQX2ksXG4gICAgICBqU2hhcmVzOiB7fSxcbiAgICB9O1xuXG4gICAgZm9yIChsZXQgaW5kID0gMDsgaW5kIDwgeVNoYXJlcy5sZW5ndGg7IGluZCsrKSB7XG4gICAgICBjb25zdCBQX2ogPSB5U2hhcmVzW2luZF07XG4gICAgICBwbGF5ZXJzLmpTaGFyZXNbUF9qLmpdID0ge1xuICAgICAgICBpOiBQX2ouaixcbiAgICAgICAgajogUF9pLmksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gcGxheWVycztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXJpdmVzIGEgY2hpbGQgY29tbW9uIGtleWNoYWluIGZyb20gY29tbW9uIGtleWNoYWluXG4gICAqXG4gICAqIEBwYXJhbSBjb21tb25LZXljaGFpbiAtIGNvbW1vbiBrZXljaGFpbiBhcyBhIGhleCBzdHJpbmdcbiAgICogQHBhcmFtIHBhdGggLSBiaXAzMiBwYXRoXG4gICAqIEByZXR1cm4ge3N0cmluZ30gZGVyaXZlZCBjb21tb24ga2V5Y2hhaW4gYXMgYSBoZXggc3RyaW5nXG4gICAqL1xuICBkZXJpdmVVbmhhcmRlbmVkKGNvbW1vbktleWNoYWluOiBzdHJpbmcsIHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaGRUcmVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGRlcml2ZSBrZXkgd2l0aG91dCBIRFRyZWUgaW1wbGVtZW50YXRpb25cIik7XG4gICAgfVxuXG4gICAgY29uc3Qga2V5Y2hhaW4gPSBCdWZmZXIuZnJvbShjb21tb25LZXljaGFpbiwgJ2hleCcpO1xuXG4gICAgY29uc3QgZGVyaXZlZFB1YmxpY0tleWNoYWluID0gdGhpcy5oZFRyZWUucHVibGljRGVyaXZlKFxuICAgICAge1xuICAgICAgICBwazogYmlnSW50RnJvbUJ1ZmZlckxFKGtleWNoYWluLnNsaWNlKDAsIDMyKSksXG4gICAgICAgIGNoYWluY29kZTogYmlnSW50RnJvbUJ1ZmZlckJFKGtleWNoYWluLnNsaWNlKDMyKSksXG4gICAgICB9LFxuICAgICAgcGF0aFxuICAgICk7XG5cbiAgICBjb25zdCBkZXJpdmVkUGsgPSBiaWdJbnRUb0J1ZmZlckxFKGRlcml2ZWRQdWJsaWNLZXljaGFpbi5waywgMzIpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBjb25zdCBkZXJpdmVkQ2hhaW5jb2RlID0gYmlnSW50VG9CdWZmZXJCRShkZXJpdmVkUHVibGljS2V5Y2hhaW4uY2hhaW5jb2RlLCAzMikudG9TdHJpbmcoJ2hleCcpO1xuXG4gICAgcmV0dXJuIGRlcml2ZWRQayArIGRlcml2ZWRDaGFpbmNvZGU7XG4gIH1cblxuICBrZXlEZXJpdmUodVNoYXJlOiBVU2hhcmUsIHlTaGFyZXM6IFlTaGFyZVtdLCBwYXRoOiBzdHJpbmcpOiBTdWJrZXlTaGFyZSB7XG4gICAgaWYgKHRoaXMuaGRUcmVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGRlcml2ZSBrZXkgd2l0aG91dCBIRFRyZWUgaW1wbGVtZW50YXRpb25cIik7XG4gICAgfVxuICAgIGNvbnN0IGggPSBjcmVhdGVIYXNoKCdzaGE1MTInKS51cGRhdGUoQnVmZmVyLmZyb20odVNoYXJlLnNlZWQsICdoZXgnKSkuZGlnZXN0KCk7XG4gICAgY29uc3QgeVZhbHVlcyA9IFt1U2hhcmUsIC4uLnlTaGFyZXNdLm1hcCgoc2hhcmUpID0+IGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShzaGFyZS55LCAnaGV4JykpKTtcbiAgICBjb25zdCB5ID0geVZhbHVlcy5yZWR1Y2UoKHBhcnRpYWwsIHNoYXJlKSA9PiBFZGRzYS5jdXJ2ZS5wb2ludEFkZChwYXJ0aWFsLCBzaGFyZSkpO1xuICAgIGNvbnN0IHUgPSBjbGFtcChiaWdJbnRGcm9tQnVmZmVyTEUoaC5zbGljZSgwLCAzMikpKTtcbiAgICBjb25zdCBwcmVmaXggPSBiaWdJbnRGcm9tQnVmZmVyQkUoaC5zbGljZSgzMikpO1xuICAgIGxldCBjb250cmliQ2hhaW5jb2RlID0gYmlnSW50RnJvbUJ1ZmZlckJFKEJ1ZmZlci5mcm9tKHVTaGFyZS5jaGFpbmNvZGUsICdoZXgnKSk7XG4gICAgY29uc3QgY2hhaW5jb2RlcyA9IFtcbiAgICAgIGNvbnRyaWJDaGFpbmNvZGUsXG4gICAgICAuLi55U2hhcmVzLm1hcCgoeyBjaGFpbmNvZGUgfSkgPT4gYmlnSW50RnJvbUJ1ZmZlckJFKEJ1ZmZlci5mcm9tKGNoYWluY29kZSwgJ2hleCcpKSksXG4gICAgXTtcbiAgICBjb25zdCBjaGFpbmNvZGUgPSBjaGFpbmNvZGVzLnJlZHVjZSgoYWNjLCBjaGFpbmNvZGUpID0+IChhY2MgKyBjaGFpbmNvZGUpICUgYmFzZSk7XG5cbiAgICAvLyBEZXJpdmUgc3Via2V5LlxuICAgIGNvbnN0IHN1YmtleSA9IHRoaXMuaGRUcmVlLnByaXZhdGVEZXJpdmUoeyBwazogeSwgc2s6IHUsIHByZWZpeCwgY2hhaW5jb2RlIH0sIHBhdGgpO1xuXG4gICAgLy8gQ2FsY3VsYXRlIG5ldyBwdWJsaWMga2V5IGNvbnRyaWJ1dGlvbi5cbiAgICBjb25zdCBjb250cmliWSA9IEVkZHNhLmN1cnZlLmJhc2VQb2ludE11bHQoc3Via2V5LnNrKTtcblxuICAgIC8vIENhbGN1bGF0ZSBuZXcgY2hhaW5jb2RlIGNvbnRyaWJ1dGlvbi5cbiAgICBjb25zdCBjaGFpbmNvZGVEZWx0YSA9IChiYXNlICsgc3Via2V5LmNoYWluY29kZSAtIGNoYWluY29kZSkgJSBiYXNlO1xuICAgIGNvbnRyaWJDaGFpbmNvZGUgPSAoY29udHJpYkNoYWluY29kZSArIGNoYWluY29kZURlbHRhKSAlIGJhc2U7XG5cbiAgICAvLyBDYWxjdWxhdGUgbmV3IHUgdmFsdWVzLlxuICAgIGNvbnN0IHsgc2hhcmVzOiBzcGxpdF91LCB2IH0gPSBFZGRzYS5zaGFtaXIuc3BsaXQoc3Via2V5LnNrLCB1U2hhcmUudCwgdVNoYXJlLm4pO1xuXG4gICAgY29uc3QgUF9pOiBQU2hhcmUgPSB7XG4gICAgICBpOiB1U2hhcmUuaSxcbiAgICAgIHQ6IHVTaGFyZS50LFxuICAgICAgbjogdVNoYXJlLm4sXG4gICAgICB5OiBiaWdJbnRUb0J1ZmZlckxFKHN1YmtleS5waywgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHU6IGJpZ0ludFRvQnVmZmVyTEUoc3Via2V5LnNrLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgcHJlZml4OiBiaWdJbnRUb0J1ZmZlckJFKHN1YmtleS5wcmVmaXghLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgY2hhaW5jb2RlOiBiaWdJbnRUb0J1ZmZlckJFKHN1YmtleS5jaGFpbmNvZGUsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcblxuICAgIGNvbnN0IHNoYXJlczogU3Via2V5U2hhcmUgPSB7XG4gICAgICBwU2hhcmU6IFBfaSxcbiAgICAgIHlTaGFyZXM6IHt9LFxuICAgIH07XG5cbiAgICBmb3IgKGxldCBpbmQgPSAwOyBpbmQgPCB5U2hhcmVzLmxlbmd0aDsgaW5kKyspIHtcbiAgICAgIGNvbnN0IFBfaiA9IHlTaGFyZXNbaW5kXTtcbiAgICAgIHNoYXJlcy55U2hhcmVzW1Bfai5qXSA9IHtcbiAgICAgICAgaTogUF9qLmosXG4gICAgICAgIGo6IFBfaS5pLFxuICAgICAgICB5OiBiaWdJbnRUb0J1ZmZlckxFKGNvbnRyaWJZLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB2OiBiaWdJbnRUb0J1ZmZlckxFKHZbMF0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIHU6IGJpZ0ludFRvQnVmZmVyTEUoc3BsaXRfdVtQX2oual0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIGNoYWluY29kZTogYmlnSW50VG9CdWZmZXJCRShjb250cmliQ2hhaW5jb2RlLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2hhcmVzO1xuICB9XG5cbiAgc2lnblNoYXJlKG1lc3NhZ2U6IEJ1ZmZlciwgcFNoYXJlOiBQU2hhcmUsIGpTaGFyZXM6IEpTaGFyZVtdLCBzZWVkPzogQnVmZmVyKTogU2lnblNoYXJlIHtcbiAgICBpZiAoc2VlZCAmJiBzZWVkLmxlbmd0aCAhPT0gNjQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2VlZCBtdXN0IGhhdmUgbGVuZ3RoIDY0Jyk7XG4gICAgfVxuICAgIGNvbnN0IGluZGljZXMgPSBbcFNoYXJlLCAuLi5qU2hhcmVzXS5tYXAoKHsgaSB9KSA9PiBpKTtcbiAgICBjb25zdCB7IHNoYXJlczogc3BsaXRfdSwgdiB9ID0gRWRkc2Euc2hhbWlyLnNwbGl0KFxuICAgICAgYmlnSW50RnJvbUJ1ZmZlckxFKEJ1ZmZlci5mcm9tKHBTaGFyZS51LCAnaGV4JykpLFxuICAgICAgcFNoYXJlLnQsXG4gICAgICBwU2hhcmUublxuICAgICk7XG5cbiAgICAvLyBHZW5lcmF0ZSBub25jZSBjb250cmlidXRpb24uXG4gICAgY29uc3QgcHJlZml4ID0gQnVmZmVyLmZyb20ocFNoYXJlLnByZWZpeCwgJ2hleCcpO1xuICAgIGNvbnN0IHJhbmRvbUJ1ZmZlciA9IHNlZWQgPz8gcmFuZG9tQnl0ZXMoNjQpO1xuXG4gICAgY29uc3QgZGlnZXN0ID0gY3JlYXRlSGFzaCgnc2hhNTEyJylcbiAgICAgIC51cGRhdGUoQnVmZmVyLmNvbmNhdChbcHJlZml4LCBtZXNzYWdlLCByYW5kb21CdWZmZXJdKSlcbiAgICAgIC5kaWdlc3QoKTtcblxuICAgIGNvbnN0IHIgPSBFZGRzYS5jdXJ2ZS5zY2FsYXJSZWR1Y2UoYmlnSW50RnJvbUJ1ZmZlckxFKGRpZ2VzdCkpO1xuICAgIGNvbnN0IFIgPSBFZGRzYS5jdXJ2ZS5iYXNlUG9pbnRNdWx0KHIpO1xuICAgIGNvbnN0IHsgc2hhcmVzOiBzcGxpdF9yIH0gPSBFZGRzYS5zaGFtaXIuc3BsaXQociwgaW5kaWNlcy5sZW5ndGgsIGluZGljZXMubGVuZ3RoLCBpbmRpY2VzKTtcblxuICAgIGNvbnN0IFBfaTogWFNoYXJlID0ge1xuICAgICAgaTogcFNoYXJlLmksXG4gICAgICB5OiBwU2hhcmUueSxcbiAgICAgIHU6IGJpZ0ludFRvQnVmZmVyTEUoc3BsaXRfdVtwU2hhcmUuaV0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICByOiBiaWdJbnRUb0J1ZmZlckxFKHNwbGl0X3JbcFNoYXJlLmldLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgUjogYmlnSW50VG9CdWZmZXJMRShSLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG5cbiAgICBjb25zdCByZXN1bHRTaGFyZXM6IFNpZ25TaGFyZSA9IHtcbiAgICAgIHhTaGFyZTogUF9pLFxuICAgICAgclNoYXJlczoge30sXG4gICAgfTtcblxuICAgIGZvciAobGV0IGluZCA9IDA7IGluZCA8IGpTaGFyZXMubGVuZ3RoOyBpbmQrKykge1xuICAgICAgY29uc3QgU19qID0galNoYXJlc1tpbmRdO1xuICAgICAgcmVzdWx0U2hhcmVzLnJTaGFyZXNbU19qLmldID0ge1xuICAgICAgICBpOiBTX2ouaSxcbiAgICAgICAgajogcFNoYXJlLmksXG4gICAgICAgIHU6IGJpZ0ludFRvQnVmZmVyTEUoc3BsaXRfdVtTX2ouaV0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIHY6IGJpZ0ludFRvQnVmZmVyTEUodlswXSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgcjogYmlnSW50VG9CdWZmZXJMRShzcGxpdF9yW1Nfai5pXSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgUjogYmlnSW50VG9CdWZmZXJMRShSLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBjb21taXRtZW50OiBiaWdJbnRUb0J1ZmZlckxFKEVkZHNhLmN1cnZlLmJhc2VQb2ludE11bHQoc3BsaXRfcltTX2ouaV0pLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdFNoYXJlcztcbiAgfVxuXG4gIHNpZ24obWVzc2FnZTogQnVmZmVyLCBwbGF5ZXJTaGFyZTogWFNoYXJlLCByU2hhcmVzOiBSU2hhcmVbXSwgeVNoYXJlczogWVNoYXJlW10gPSBbXSk6IEdTaGFyZSB7XG4gICAgZm9yIChjb25zdCByU2hhcmUgb2YgclNoYXJlcykge1xuICAgICAgaWYgKHJTaGFyZS5jb21taXRtZW50KSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVDb21taXRtZW50KHJTaGFyZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgU19pID0gcGxheWVyU2hhcmU7XG5cbiAgICBjb25zdCB1VmFsdWVzID0gW3BsYXllclNoYXJlLCAuLi5yU2hhcmVzLCAuLi55U2hhcmVzXS5tYXAoKHsgdSB9KSA9PiBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20odSwgJ2hleCcpKSk7XG4gICAgY29uc3QgeCA9IHVWYWx1ZXMucmVkdWNlKChhY2MsIHUpID0+IEVkZHNhLmN1cnZlLnNjYWxhckFkZChhY2MsIHUpKTtcblxuICAgIGNvbnN0IFJWYWx1ZXMgPSBbcGxheWVyU2hhcmUsIC4uLnJTaGFyZXNdLm1hcCgoeyBSIH0pID0+IGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShSLCAnaGV4JykpKTtcbiAgICBjb25zdCBSID0gUlZhbHVlcy5yZWR1Y2UoKHBhcnRpYWwsIHNoYXJlKSA9PiBFZGRzYS5jdXJ2ZS5wb2ludEFkZChwYXJ0aWFsLCBzaGFyZSkpO1xuXG4gICAgY29uc3QgclZhbHVlcyA9IFtwbGF5ZXJTaGFyZSwgLi4uclNoYXJlc10ubWFwKCh7IHIgfSkgPT4gYmlnSW50RnJvbUJ1ZmZlckxFKEJ1ZmZlci5mcm9tKHIsICdoZXgnKSkpO1xuICAgIGNvbnN0IHIgPSByVmFsdWVzLnJlZHVjZSgocGFydGlhbCwgc2hhcmUpID0+IEVkZHNhLmN1cnZlLnNjYWxhckFkZChwYXJ0aWFsLCBzaGFyZSkpO1xuXG4gICAgY29uc3QgY29tYmluZWRCdWZmZXIgPSBCdWZmZXIuY29uY2F0KFtiaWdJbnRUb0J1ZmZlckxFKFIsIDMyKSwgQnVmZmVyLmZyb20oU19pLnksICdoZXgnKSwgbWVzc2FnZV0pO1xuICAgIGNvbnN0IGRpZ2VzdCA9IGNyZWF0ZUhhc2goJ3NoYTUxMicpLnVwZGF0ZShjb21iaW5lZEJ1ZmZlcikuZGlnZXN0KCk7XG4gICAgY29uc3QgayA9IEVkZHNhLmN1cnZlLnNjYWxhclJlZHVjZShiaWdJbnRGcm9tQnVmZmVyTEUoZGlnZXN0KSk7XG5cbiAgICBjb25zdCBnYW1tYSA9IEVkZHNhLmN1cnZlLnNjYWxhckFkZChyLCBFZGRzYS5jdXJ2ZS5zY2FsYXJNdWx0KGssIHgpKTtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICBpOiBwbGF5ZXJTaGFyZS5pLFxuICAgICAgeTogcGxheWVyU2hhcmUueSxcbiAgICAgIGdhbW1hOiBiaWdJbnRUb0J1ZmZlckxFKGdhbW1hLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgUjogYmlnSW50VG9CdWZmZXJMRShSLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHNpZ25Db21iaW5lKHNoYXJlczogR1NoYXJlW10pOiBTaWduYXR1cmUge1xuICAgIGNvbnN0IHkgPSBzaGFyZXNbMF0ueTtcbiAgICBjb25zdCBSID0gc2hhcmVzWzBdLlI7XG5cbiAgICBjb25zdCByZXN1bHRTaGFyZXMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGluZCBpbiBzaGFyZXMpIHtcbiAgICAgIGNvbnN0IFNfaSA9IHNoYXJlc1tpbmRdO1xuICAgICAgcmVzdWx0U2hhcmVzW1NfaS5pXSA9IGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShTX2kuZ2FtbWEsICdoZXgnKSk7XG4gICAgfVxuICAgIGNvbnN0IHNpZ21hOiBiaWdpbnQgPSBFZGRzYS5zaGFtaXIuY29tYmluZShyZXN1bHRTaGFyZXMpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIHksXG4gICAgICBSLFxuICAgICAgc2lnbWE6IGJpZ0ludFRvQnVmZmVyTEUoc2lnbWEsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgdmVyaWZ5KG1lc3NhZ2U6IEJ1ZmZlciwgc2lnbmF0dXJlOiBTaWduYXR1cmUpOiBib29sZWFuIHtcbiAgICBjb25zdCBwdWJsaWNLZXkgPSBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oc2lnbmF0dXJlLnksICdoZXgnKSk7XG4gICAgY29uc3Qgc2lnbmVkTWVzc2FnZSA9IEJ1ZmZlci5jb25jYXQoW0J1ZmZlci5mcm9tKHNpZ25hdHVyZS5SLCAnaGV4JyksIEJ1ZmZlci5mcm9tKHNpZ25hdHVyZS5zaWdtYSwgJ2hleCcpXSk7XG4gICAgcmV0dXJuIEVkZHNhLmN1cnZlLnZlcmlmeShtZXNzYWdlLCBzaWduZWRNZXNzYWdlLCBwdWJsaWNLZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUNvbW1pdG1lbnQoUlNoYXJlOiBSU2hhcmUpOiB2b2lkIHtcbiAgICBhc3NlcnQoUlNoYXJlLmNvbW1pdG1lbnQsICdDb21taXRtZW50IGlzIG1pc3NpbmcnKTtcbiAgICBjb25zdCBjID0gRWRkc2EuY3VydmUuYmFzZVBvaW50TXVsdChiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oUlNoYXJlLnIsICdoZXgnKSkpO1xuICAgIGNvbnN0IG90aGVyUGxheWVyQ29tbWl0bWVudCA9IGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShSU2hhcmUuY29tbWl0bWVudCwgJ2hleCcpKTtcbiAgICBpZiAoYyAhPT0gb3RoZXJQbGF5ZXJDb21taXRtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCB2ZXJpZnkgb3RoZXIgcGxheWVyIHNoYXJlJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -59,9 +59,6 @@ export interface SignShare {
59
59
  xShare: XShare;
60
60
  rShares: Record<number, RShare>;
61
61
  }
62
- export interface ExchangeCommitmentResponse {
63
- commitment: string;
64
- }
65
62
  export interface GShare {
66
63
  i: number;
67
64
  y: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/account-lib/mpc/tss/eddsa/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/account-lib/mpc/tss/eddsa/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvbXBjL3Rzcy9lZGRzYS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBVU2hhcmUge1xuICBpOiBudW1iZXI7XG4gIHQ6IG51bWJlcjtcbiAgbjogbnVtYmVyO1xuICB5OiBzdHJpbmc7XG4gIHNlZWQ6IHN0cmluZztcbiAgY2hhaW5jb2RlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgWVNoYXJlIHtcbiAgaTogbnVtYmVyO1xuICBqOiBudW1iZXI7XG4gIHk6IHN0cmluZztcbiAgdj86IHN0cmluZztcbiAgdTogc3RyaW5nO1xuICBjaGFpbmNvZGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlTaGFyZSB7XG4gIHVTaGFyZTogVVNoYXJlO1xuICB5U2hhcmVzOiBSZWNvcmQ8bnVtYmVyLCBZU2hhcmU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBTaGFyZSB7XG4gIGk6IG51bWJlcjtcbiAgdDogbnVtYmVyO1xuICBuOiBudW1iZXI7XG4gIHk6IHN0cmluZztcbiAgdTogc3RyaW5nO1xuICBwcmVmaXg6IHN0cmluZztcbiAgY2hhaW5jb2RlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSlNoYXJlIHtcbiAgaTogbnVtYmVyO1xuICBqOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5Q29tYmluZSB7XG4gIHBTaGFyZTogUFNoYXJlO1xuICBqU2hhcmVzOiBSZWNvcmQ8bnVtYmVyLCBKU2hhcmU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YmtleVNoYXJlIHtcbiAgcFNoYXJlOiBQU2hhcmU7XG4gIHlTaGFyZXM6IFJlY29yZDxudW1iZXIsIFlTaGFyZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgWFNoYXJlIHtcbiAgaTogbnVtYmVyO1xuICB5OiBzdHJpbmc7XG4gIHU6IHN0cmluZztcbiAgcjogc3RyaW5nO1xuICBSOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUlNoYXJlIHtcbiAgaTogbnVtYmVyO1xuICBqOiBudW1iZXI7XG4gIHU6IHN0cmluZztcbiAgdj86IHN0cmluZztcbiAgcjogc3RyaW5nO1xuICBSOiBzdHJpbmc7XG4gIGNvbW1pdG1lbnQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnblNoYXJlIHtcbiAgeFNoYXJlOiBYU2hhcmU7XG4gIHJTaGFyZXM6IFJlY29yZDxudW1iZXIsIFJTaGFyZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhjaGFuZ2VDb21taXRtZW50UmVzcG9uc2Uge1xuICBjb21taXRtZW50OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR1NoYXJlIHtcbiAgaTogbnVtYmVyO1xuICB5OiBzdHJpbmc7XG4gIGdhbW1hOiBzdHJpbmc7XG4gIFI6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmUge1xuICB5OiBzdHJpbmc7XG4gIFI6IHN0cmluZztcbiAgc2lnbWE6IHN0cmluZztcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvbXBjL3Rzcy9lZGRzYS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBVU2hhcmUge1xuICBpOiBudW1iZXI7XG4gIHQ6IG51bWJlcjtcbiAgbjogbnVtYmVyO1xuICB5OiBzdHJpbmc7XG4gIHNlZWQ6IHN0cmluZztcbiAgY2hhaW5jb2RlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgWVNoYXJlIHtcbiAgaTogbnVtYmVyO1xuICBqOiBudW1iZXI7XG4gIHk6IHN0cmluZztcbiAgdj86IHN0cmluZztcbiAgdTogc3RyaW5nO1xuICBjaGFpbmNvZGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlTaGFyZSB7XG4gIHVTaGFyZTogVVNoYXJlO1xuICB5U2hhcmVzOiBSZWNvcmQ8bnVtYmVyLCBZU2hhcmU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBTaGFyZSB7XG4gIGk6IG51bWJlcjtcbiAgdDogbnVtYmVyO1xuICBuOiBudW1iZXI7XG4gIHk6IHN0cmluZztcbiAgdTogc3RyaW5nO1xuICBwcmVmaXg6IHN0cmluZztcbiAgY2hhaW5jb2RlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSlNoYXJlIHtcbiAgaTogbnVtYmVyO1xuICBqOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5Q29tYmluZSB7XG4gIHBTaGFyZTogUFNoYXJlO1xuICBqU2hhcmVzOiBSZWNvcmQ8bnVtYmVyLCBKU2hhcmU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YmtleVNoYXJlIHtcbiAgcFNoYXJlOiBQU2hhcmU7XG4gIHlTaGFyZXM6IFJlY29yZDxudW1iZXIsIFlTaGFyZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgWFNoYXJlIHtcbiAgaTogbnVtYmVyO1xuICB5OiBzdHJpbmc7XG4gIHU6IHN0cmluZztcbiAgcjogc3RyaW5nO1xuICBSOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUlNoYXJlIHtcbiAgaTogbnVtYmVyO1xuICBqOiBudW1iZXI7XG4gIHU6IHN0cmluZztcbiAgdj86IHN0cmluZztcbiAgcjogc3RyaW5nO1xuICBSOiBzdHJpbmc7XG4gIGNvbW1pdG1lbnQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnblNoYXJlIHtcbiAgeFNoYXJlOiBYU2hhcmU7XG4gIHJTaGFyZXM6IFJlY29yZDxudW1iZXIsIFJTaGFyZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR1NoYXJlIHtcbiAgaTogbnVtYmVyO1xuICB5OiBzdHJpbmc7XG4gIGdhbW1hOiBzdHJpbmc7XG4gIFI6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmUge1xuICB5OiBzdHJpbmc7XG4gIFI6IHN0cmluZztcbiAgc2lnbWE6IHN0cmluZztcbn1cbiJdfQ==
@@ -110,6 +110,22 @@ export declare abstract class BaseCoin implements IBaseCoin {
110
110
  signMessage(key: {
111
111
  prv: string;
112
112
  }, message: string): Promise<Buffer>;
113
+ /**
114
+ * Create signatures for the backup and bitgo keys using the user key.
115
+ * We can verify the signatures when fetching the keys from wallet-platform later.
116
+ * Currently only `AbstractUtxoCoin` implements and uses the complementary `verifyKeySignature` method.
117
+ * @param prv - the user private key
118
+ * @param backupKeychain - contains the backup public key
119
+ * @param bitgoKeychain - contains the bitgo public key
120
+ */
121
+ createKeySignatures(prv: string, backupKeychain: {
122
+ pub: string;
123
+ }, bitgoKeychain: {
124
+ pub: string;
125
+ }): Promise<{
126
+ backup: string;
127
+ bitgo: string;
128
+ }>;
113
129
  /**
114
130
  * Decompose a raw transaction into useful information.
115
131
  * @param options - coin-specific