@witnet/sdk 1.2.7 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/.env_witnet +18 -18
  2. package/LICENSE +21 -21
  3. package/README.md +116 -116
  4. package/dist/package.json +14 -3
  5. package/dist/src/bin/helpers.d.ts.map +1 -1
  6. package/dist/src/bin/helpers.js +22 -54
  7. package/dist/src/lib/crypto/account.d.ts.map +1 -1
  8. package/dist/src/lib/crypto/account.js +3 -9
  9. package/dist/src/lib/crypto/coinbase.d.ts.map +1 -1
  10. package/dist/src/lib/crypto/coinbase.js +2 -2
  11. package/dist/src/lib/crypto/interfaces.d.ts.map +1 -1
  12. package/dist/src/lib/crypto/interfaces.js +1 -1
  13. package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts +4 -6
  14. package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts.map +1 -1
  15. package/dist/src/lib/crypto/payloads/DataRequestPayload.js +20 -71
  16. package/dist/src/lib/crypto/payloads/StakePayload.d.ts.map +1 -1
  17. package/dist/src/lib/crypto/payloads/StakePayload.js +4 -9
  18. package/dist/src/lib/crypto/payloads/UnstakePayload.d.ts.map +1 -1
  19. package/dist/src/lib/crypto/payloads/UnstakePayload.js +4 -7
  20. package/dist/src/lib/crypto/payloads/ValueTransferPayload.d.ts.map +1 -1
  21. package/dist/src/lib/crypto/payloads/ValueTransferPayload.js +4 -9
  22. package/dist/src/lib/crypto/payloads.d.ts.map +1 -1
  23. package/dist/src/lib/crypto/payloads.js +6 -13
  24. package/dist/src/lib/crypto/signer.d.ts.map +1 -1
  25. package/dist/src/lib/crypto/signer.js +2 -2
  26. package/dist/src/lib/crypto/transmitters/DataRequests.d.ts.map +1 -1
  27. package/dist/src/lib/crypto/transmitters/DataRequests.js +2 -2
  28. package/dist/src/lib/crypto/transmitters/StakeDeposits.d.ts.map +1 -1
  29. package/dist/src/lib/crypto/transmitters/StakeDeposits.js +2 -2
  30. package/dist/src/lib/crypto/transmitters/StakeWithdrawals.d.ts.map +1 -1
  31. package/dist/src/lib/crypto/transmitters/StakeWithdrawals.js +2 -2
  32. package/dist/src/lib/crypto/transmitters/ValueTransfers.d.ts.map +1 -1
  33. package/dist/src/lib/crypto/transmitters/ValueTransfers.js +2 -2
  34. package/dist/src/lib/crypto/transmitters.d.ts.map +1 -1
  35. package/dist/src/lib/crypto/transmitters.js +22 -31
  36. package/dist/src/lib/crypto/types.d.ts.map +1 -1
  37. package/dist/src/lib/crypto/types.js +6 -13
  38. package/dist/src/lib/crypto/utils.d.ts.map +1 -1
  39. package/dist/src/lib/crypto/utils.js +5 -9
  40. package/dist/src/lib/crypto/wallet.d.ts.map +1 -1
  41. package/dist/src/lib/crypto/wallet.js +9 -23
  42. package/dist/src/lib/radon/ccdr/eth.d.ts.map +1 -1
  43. package/dist/src/lib/radon/ccdr/eth.js +12 -32
  44. package/dist/src/lib/radon/ccdr/wit.d.ts.map +1 -1
  45. package/dist/src/lib/radon/ccdr/wit.js +3 -6
  46. package/dist/src/lib/radon/index.d.ts.map +1 -1
  47. package/dist/src/lib/radon/index.js +18 -41
  48. package/dist/src/lib/radon/reducers.js +2 -2
  49. package/dist/src/lib/radon/types.d.ts.map +1 -1
  50. package/dist/src/lib/radon/types.js +6 -32
  51. package/dist/src/lib/radon/utils.d.ts +1 -1
  52. package/dist/src/lib/radon/utils.d.ts.map +1 -1
  53. package/dist/src/lib/radon/utils.js +3 -6
  54. package/dist/src/lib/rest/kermit.d.ts.map +1 -1
  55. package/dist/src/lib/rest/kermit.js +1 -1
  56. package/dist/src/lib/rpc/nodes.d.ts.map +1 -1
  57. package/dist/src/lib/rpc/nodes.js +8 -28
  58. package/dist/src/lib/rpc/provider.d.ts.map +1 -1
  59. package/dist/src/lib/rpc/provider.js +16 -38
  60. package/dist/src/lib/rpc/types.d.ts.map +1 -1
  61. package/dist/src/lib/rpc/types.js +1 -1
  62. package/dist/src/lib/utils.d.ts.map +1 -1
  63. package/dist/src/lib/utils.js +2 -5
  64. package/dist/witnet/assets/index.cjs +1 -1
  65. package/dist/witnet/assets/modals/index.cjs +1 -1
  66. package/dist/witnet/assets/modals/web3/eth.cjs +2 -2
  67. package/dist/witnet/assets/modals/web3/ipfs.cjs +2 -2
  68. package/dist/witnet/assets/modals/web3/wit.cjs +4 -11
  69. package/dist/witnet/assets/requests.cjs +3 -11
  70. package/package.json +7 -3
  71. package/src/bin/bots/watcher.cjs +27 -93
  72. package/src/bin/cli/inspect.js +30 -119
  73. package/src/bin/cli/network.js +46 -202
  74. package/src/bin/cli/nodes.js +12 -58
  75. package/src/bin/cli/radon.js +80 -265
  76. package/src/bin/cli/wallet.js +69 -241
  77. package/src/bin/helpers.js +56 -162
  78. package/src/bin/index.js +21 -51
  79. package/witnet/assets/_index.cjs +5 -5
  80. package/witnet/assets/_requests.cjs +25 -25
  81. package/witnet/assets/_sources.cjs +36 -36
  82. package/witnet/assets/_templates.cjs +36 -36
  83. package/witnet/assets/index.cjs +4 -4
  84. package/witnet/assets/modals/index.cjs +7 -7
  85. package/witnet/assets/modals/web3/eth.cjs +22 -27
  86. package/witnet/assets/modals/web3/ipfs.cjs +17 -22
  87. package/witnet/assets/modals/web3/wit.cjs +16 -28
  88. package/witnet/assets/requests.cjs +41 -49
@@ -56,10 +56,7 @@ export class Account {
56
56
  return this.external.consumeUtxos(...this.internal.consumeUtxos(...utxos));
57
57
  }
58
58
  async getBalance() {
59
- return Promise.all([
60
- this.internal.getBalance(),
61
- this.external.getBalance(),
62
- ]).then(([internal, external]) => {
59
+ return Promise.all([this.internal.getBalance(), this.external.getBalance()]).then(([internal, external]) => {
63
60
  return {
64
61
  locked: internal.locked + external.locked,
65
62
  staked: internal.staked + external.staked,
@@ -102,10 +99,7 @@ export class Account {
102
99
  return undefined;
103
100
  }
104
101
  async getUtxos(reload = false) {
105
- return [
106
- ...(await this.internal.getUtxos(reload)),
107
- ...(await this.external.getUtxos(reload)),
108
- ];
102
+ return [...(await this.internal.getUtxos(reload)), ...(await this.external.getUtxos(reload))];
109
103
  }
110
104
  async selectUtxos(specs) {
111
105
  return this.getUtxos(specs?.reload).then((utxos) => selectUtxos({
@@ -115,4 +109,4 @@ export class Account {
115
109
  }));
116
110
  }
117
111
  }
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY3J5cHRvL2FjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBTU4scUJBQXFCLEdBQ3JCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekMsTUFBTSxPQUFPLE9BQU87SUFDSCxLQUFLLENBQVM7SUFDZCxRQUFRLENBQVU7SUFDbEIsUUFBUSxDQUFVO0lBRWxCLFFBQVEsQ0FBbUI7SUFDcEMsUUFBUSxDQUF3QjtJQUV2QyxZQUNDLElBQVksRUFDWixRQUEwQixFQUMxQixLQUFhLEVBQ2IsUUFBZ0M7UUFFaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE1BQU0sQ0FDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsS0FBSyxFQUFFLENBQUMsRUFDM0MsUUFBUSxFQUNSLFFBQVEsQ0FDUixDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE1BQU0sQ0FDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsS0FBSyxFQUFFLENBQUMsRUFDM0MsUUFBUSxFQUNSLFFBQVEsQ0FDUixDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLHFCQUFxQixDQUFDLFVBQVUsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ25CLE1BQU0sUUFBUSxHQUFHLElB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QSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2xELFdBQVcsQ0FBQztZQUNYLEtBQUs7WUFDTCxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUs7WUFDbkIsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVE7U0FDMUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG5cdEJhbGFuY2UsXG5cdEhleFN0cmluZyxcblx0TmV0d29yayxcblx0UXVlcnlTdGFrZXNPcmRlcixcblx0U3Rha2VFbnRyeSxcbn0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgdHlwZSB7XG5cdElBY2NvdW50LFxuXHRJQklQMzIsXG5cdElKc29uUnBjUHJvdmlkZXIsXG5cdElTaWduZXIsXG59IGZyb20gXCIuL2ludGVyZmFjZXMuanNcIjtcbmltcG9ydCB7IFNpZ25lciB9IGZyb20gXCIuL3NpZ25lci5qc1wiO1xuaW1wb3J0IHtcblx0dHlwZSBDb2lucyxcblx0dHlwZSBQdWJsaWNLZXksXG5cdHR5cGUgUHVibGljS2V5SGFzaFN0cmluZyxcblx0dHlwZSBVdHhvLFxuXHR0eXBlIFV0eG9DYWNoZUluZm8sXG5cdFV0eG9TZWxlY3Rpb25TdHJhdGVneSxcbn0gZnJvbSBcIi4vdHlwZXMuanNcIjtcbmltcG9ydCB7IHNlbGVjdFV0eG9zIH0gZnJvbSBcIi4vdXRpbHMuanNcIjtcblxuZXhwb3J0IGNsYXNzIEFjY291bnQgaW1wbGVtZW50cyBJQWNjb3VudCB7XG5cdHB1YmxpYyByZWFkb25seSBpbmRleDogbnVtYmVyO1xuXHRwdWJsaWMgcmVhZG9ubHkgaW50ZXJuYWw6IElTaWduZXI7XG5cdHB1YmxpYyByZWFkb25seSBleHRlcm5hbDogSVNpZ25lcjtcblxuXHRwdWJsaWMgcmVhZG9ubHkgcHJvdmlkZXI6IElKc29uUnBjUHJvdmlkZXI7XG5cdHB1YmxpYyBzdHJhdGVneTogVXR4b1NlbGVjdGlvblN0cmF0ZWd5O1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHJvb3Q6IElCSVAzMixcblx0XHRwcm92aWRlcjogSUpzb25ScGNQcm92aWRlcixcblx0XHRpbmRleDogbnVtYmVyLFxuXHRcdHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5LFxuXHQpIHtcblx0XHR0aGlzLmluZGV4ID0gaW5kZXg7XG5cdFx0dGhpcy5pbnRlcm5hbCA9IG5ldyBTaWduZXIoXG5cdFx0XHRyb290LmRlcml2ZVBhdGgoYG0vMycvNDkxOScvMCcvMS8ke2luZGV4fWApLFxuXHRcdFx0cHJvdmlkZXIsXG5cdFx0XHRzdHJhdGVneSxcblx0XHQpO1xuXHRcdHRoaXMuZXh0ZXJuYWwgPSBuZXcgU2lnbmVyKFxuXHRcdFx0cm9vdC5kZXJpdmVQYXRoKGBtLzMnLzQ5MTknLzAnLzAvJHtpbmRleH1gKSxcblx0XHRcdHByb3ZpZGVyLFxuXHRcdFx0c3RyYXRlZ3ksXG5cdFx0KTtcblxuXHRcdGlmICghcHJvdmlkZXIubmV0d29yaykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBBY2NvdW50OiB1bmluaXRpYWxpemVkIHByb3ZpZGVyLmApO1xuXHRcdH1cblx0XHR0aGlzLnByb3ZpZGVyID0gcHJvdmlkZXI7XG5cdFx0dGhpcy5zdHJhdGVneSA9IHN0cmF0ZWd5IHx8IFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbWFsbEZpcnN0O1xuXHR9XG5cblx0cHVibGljIGdldCBjYWNoZUluZm8oKTogVXR4b0NhY2hlSW5mbyB7XG5cdFx0Y29uc3QgaW50ZXJuYWwgPSB0aGlzLmludGVybmFsLmNhY2hlSW5mbztcblx0XHRjb25zdCBleHRlcm5hbCA9IHRoaXMuZXh0ZXJuYWwuY2FjaGVJbmZvO1xuXHRcdHJldHVybiB7XG5cdFx0XHRleHBlbmRhYmxlOiBCaWdJbnQoaW50ZXJuYWwuZXhwZW5kYWJsZSkgKyBCaWdJbnQoZXh0ZXJuYWwuZXhwZW5kYWJsZSksXG5cdFx0XHRzaXplOiBpbnRlcm5hbC5zaXplICsgZXh0ZXJuYWwuc2l6ZSxcblx0XHRcdHRpbWVsb2NrOiBNYXRoLm1pbihcblx0XHRcdFx0aW50ZXJuYWwudGltZWxvY2sgfHwgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXG5cdFx0XHRcdGV4dGVybmFsLnRpbWVsb2NrLFxuXHRcdFx0KSxcblx0XHR9O1xuXHR9XG5cblx0cHVibGljIGdldCBjaGFuZ2VQa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuaW50ZXJuYWwucGtoO1xuXHR9XG5cblx0cHVibGljIGdldCBwa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuZXh0ZXJuYWwucGtoO1xuXHR9XG5cblx0cHVibGljIGdldCBwdWJsaWNLZXkoKTogUHVibGljS2V5IHtcblx0XHRyZXR1cm4gdGhpcy5leHRlcm5hbC5wdWJsaWNLZXk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHByaXZhdGVLZXkoKTogSGV4U3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5leHRlcm5hbC5wcml2YXRlS2V5O1xuXHR9XG5cblx0cHVibGljIGdldCBuZXR3b3JrKCk6IE5ldHdvcmsgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLnByb3ZpZGVyLm5ldHdvcms7XG5cdH1cblxuXHRwdWJsaWMgYXV0aG9yaXplRXZtQWRkcmVzcyhldm1BZGRyZXNzOiBIZXhTdHJpbmcpOiBhbnkge1xuXHRcdHJldHVybiB0aGlzLmV4dGVybmFsLmF1dGhvcml6ZUV2bUFkZHJlc3MoZXZtQWRkcmVzcyk7XG5cdH1cblxuXHRwdWJsaWMgYWRkVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KToge1xuXHRcdGV4Y2x1ZGVkOiBBcnJheTxVdHhvPjtcblx0XHRpbmNsdWRlZDogQXJyYXk8VXR4bz47XG5cdH0ge1xuXHRcdGNvbnN0IGludGVybmFsID0gdGhpcy5pbnRlcm5hbC5hZGRVdHhvcyguLi51dHhvcyk7XG5cdFx0Y29uc3QgZXh0ZXJuYWwgPSB0aGlzLmV4dGVybmFsLmFkZFV0eG9zKC4uLmludGVybmFsLmV4Y2x1ZGVkKTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0ZXhjbHVkZWQ6IGV4dGVybmFsLmV4Y2x1ZGVkLFxuXHRcdFx0aW5jbHVkZWQ6IFsuLi5pbnRlcm5hbC5pbmNsdWRlZCwgLi4uZXh0ZXJuYWwuaW5jbHVkZWRdLFxuXHRcdH07XG5cdH1cblxuXHRwdWJsaWMgY29uc3VtZVV0eG9zKC4uLnV0eG9zOiBBcnJheTxVdHhvPik6IEFycmF5PFV0eG8+IHtcblx0XHRyZXR1cm4gdGhpcy5leHRlcm5hbC5jb25zdW1lVXR4b3MoLi4udGhpcy5pbnRlcm5hbC5jb25zdW1lVXR4b3MoLi4udXR4b3MpKTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRCYWxhbmNlKCk6IFByb21pc2U8QmFsYW5jZT4ge1xuXHRcdHJldHVybiBQcm9taXNlLmFsbChbXG5cdFx0XHR0aGlzLmludGVybmFsLmdldEJhbGFuY2UoKSxcblx0XHRcdHRoaXMuZXh0ZXJuYWwuZ2V0QmFsYW5jZSgpLFxuXHRcdF0pLnRoZW4oKFtpbnRlcm5hbCwgZXh0ZXJuYWxdKSA9PiB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRsb2NrZWQ6IGludGVybmFsLmxvY2tlZCArIGV4dGVybmFsLmxvY2tlZCxcblx0XHRcdFx0c3Rha2VkOiBpbnRlcm5hbC5zdGFrZWQgKyBleHRlcm5hbC5zdGFrZWQsXG5cdFx0XHRcdHVubG9ja2VkOiBpbnRlcm5hbC51bmxvY2tlZCArIGV4dGVybmFsLnVubG9ja2VkLFxuXHRcdFx0fTtcblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXREZWxlZ2F0ZWVzKFxuXHRcdG9yZGVyPzogUXVlcnlTdGFrZXNPcmRlcixcblx0XHRsZWZ0Sm9pbiA9IHRydWUsXG5cdCk6IFByb21pc2U8QXJyYXk8U3Rha2VFbnRyeT4+IHtcblx0XHRyZXR1cm4gdGhpcy5wcm92aWRlclxuXHRcdFx0LnN0YWtlcyh7XG5cdFx0XHRcdGZpbHRlcjogeyB3aXRoZHJhd2VyOiB0aGlzLnBraCB9LFxuXHRcdFx0XHRwYXJhbXM6IHsgb3JkZXIgfSxcblx0XHRcdH0pXG5cdFx0XHQudGhlbigocmVjb3JkcykgPT4ge1xuXHRcdFx0XHRpZiAocmVjb3Jkcy5sZW5ndGggPT09IDAgJiYgbGVmdEpvaW4pIHtcblx0XHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRrZXk6IHsgdmFsaWRhdG9yOiBcIlwiLCB3aXRoZHJhd2VyOiB0aGlzLnBraCB9LFxuXHRcdFx0XHRcdFx0XHR2YWx1ZToge1xuXHRcdFx0XHRcdFx0XHRcdGNvaW5zOiAwbixcblx0XHRcdFx0XHRcdFx0XHRub25jZTogMCxcblx0XHRcdFx0XHRcdFx0XHRlcG9jaHM6IHsgbWluaW5nOiAwLCB3aXRuZXNzaW5nOiAwIH0sXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdF07XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIHJlY29yZHM7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHR9XG5cblx0cHVibGljIGdldFNpZ25lcihwa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nKTogSVNpZ25lciB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKCFwa2gpIHJldHVybiB0aGlzLmV4dGVybmFsO1xuXHRcdGVsc2UgaWYgKHBraCA9PT0gdGhpcy5leHRlcm5hbC5wa2gpIHJldHVybiB0aGlzLmV4dGVybmFsO1xuXHRcdGVsc2UgaWYgKHBraCA9PT0gdGhpcy5pbnRlcm5hbC5wa2gpIHJldHVybiB0aGlzLmludGVybmFsO1xuXHRcdGVsc2UgcmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRVdHhvcyhyZWxvYWQgPSBmYWxzZSk6IFByb21pc2U8QXJyYXk8VXR4bz4+IHtcblx0XHRyZXR1cm4gW1xuXHRcdFx0Li4uKGF3YWl0IHRoaXMuaW50ZXJuYWwuZ2V0VXR4b3MocmVsb2FkKSksXG5cdFx0XHQuLi4oYXdhaXQgdGhpcy5leHRlcm5hbC5nZXRVdHhvcyhyZWxvYWQpKSxcblx0XHRdO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHNlbGVjdFV0eG9zKHNwZWNzPzoge1xuXHRcdHZhbHVlPzogQ29pbnM7XG5cdFx0Y29uc3VtZT86IGJvb2xlYW47XG5cdFx0cmVsb2FkPzogYm9vbGVhbjtcblx0XHRzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblx0fSk6IFByb21pc2U8QXJyYXk8VXR4bz4+IHtcblx0XHRyZXR1cm4gdGhpcy5nZXRVdHhvcyhzcGVjcz8ucmVsb2FkKS50aGVuKCh1dHhvcykgPT5cblx0XHRcdHNlbGVjdFV0eG9zKHtcblx0XHRcdFx0dXR4b3MsXG5cdFx0XHRcdHZhbHVlOiBzcGVjcz8udmFsdWUsXG5cdFx0XHRcdHN0cmF0ZWd5OiBzcGVjcz8uc3RyYXRlZ3kgfHwgdGhpcy5zdHJhdGVneSxcblx0XHRcdH0pLFxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY3J5cHRvL2FjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBTU4scUJBQXFCLEdBQ3JCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekMsTUFBTSxPQUFPLE9BQU87SUFDSCxLQUFLLENBQVM7SUFDZCxRQUFRLENBQVU7SUFDbEIsUUFBUSxDQUFVO0lBRWxCLFFBQVEsQ0FBbUI7SUFDcEMsUUFBUSxDQUF3QjtJQUV2QyxZQUFZLElBQVksRUFBRSxRQUEwQixFQUFFLEtBQWEsRUFBRSxRQUFnQztRQUNwRyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEtBQUssRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFNUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLHFCQUFxQixDQUFDLFVBQVUsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUks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SSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDbEQsV0FBVyxDQUFDO1lBQ1gsS0FBSztZQUNMLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSztZQUNuQixRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUTtTQUMxQyxDQUFDLENBQ0YsQ0FBQztJQUNILENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmFsYW5jZSwgSGV4U3RyaW5nLCBOZXR3b3JrLCBRdWVyeVN0YWtlc09yZGVyLCBTdGFrZUVudHJ5IH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IElBY2NvdW50LCBJQklQMzIsIElKc29uUnBjUHJvdmlkZXIsIElTaWduZXIgfSBmcm9tIFwiLi9pbnRlcmZhY2VzLmpzXCI7XG5pbXBvcnQgeyBTaWduZXIgfSBmcm9tIFwiLi9zaWduZXIuanNcIjtcbmltcG9ydCB7XG5cdHR5cGUgQ29pbnMsXG5cdHR5cGUgUHVibGljS2V5LFxuXHR0eXBlIFB1YmxpY0tleUhhc2hTdHJpbmcsXG5cdHR5cGUgVXR4byxcblx0dHlwZSBVdHhvQ2FjaGVJbmZvLFxuXHRVdHhvU2VsZWN0aW9uU3RyYXRlZ3ksXG59IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBzZWxlY3RVdHhvcyB9IGZyb20gXCIuL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBBY2NvdW50IGltcGxlbWVudHMgSUFjY291bnQge1xuXHRwdWJsaWMgcmVhZG9ubHkgaW5kZXg6IG51bWJlcjtcblx0cHVibGljIHJlYWRvbmx5IGludGVybmFsOiBJU2lnbmVyO1xuXHRwdWJsaWMgcmVhZG9ubHkgZXh0ZXJuYWw6IElTaWduZXI7XG5cblx0cHVibGljIHJlYWRvbmx5IHByb3ZpZGVyOiBJSnNvblJwY1Byb3ZpZGVyO1xuXHRwdWJsaWMgc3RyYXRlZ3k6IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblxuXHRjb25zdHJ1Y3Rvcihyb290OiBJQklQMzIsIHByb3ZpZGVyOiBJSnNvblJwY1Byb3ZpZGVyLCBpbmRleDogbnVtYmVyLCBzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneSkge1xuXHRcdHRoaXMuaW5kZXggPSBpbmRleDtcblx0XHR0aGlzLmludGVybmFsID0gbmV3IFNpZ25lcihyb290LmRlcml2ZVBhdGgoYG0vMycvNDkxOScvMCcvMS8ke2luZGV4fWApLCBwcm92aWRlciwgc3RyYXRlZ3kpO1xuXHRcdHRoaXMuZXh0ZXJuYWwgPSBuZXcgU2lnbmVyKHJvb3QuZGVyaXZlUGF0aChgbS8zJy80OTE5Jy8wJy8wLyR7aW5kZXh9YCksIHByb3ZpZGVyLCBzdHJhdGVneSk7XG5cblx0XHRpZiAoIXByb3ZpZGVyLm5ldHdvcmspIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgQWNjb3VudDogdW5pbml0aWFsaXplZCBwcm92aWRlci5gKTtcblx0XHR9XG5cdFx0dGhpcy5wcm92aWRlciA9IHByb3ZpZGVyO1xuXHRcdHRoaXMuc3RyYXRlZ3kgPSBzdHJhdGVneSB8fCBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU21hbGxGaXJzdDtcblx0fVxuXG5cdHB1YmxpYyBnZXQgY2FjaGVJbmZvKCk6IFV0eG9DYWNoZUluZm8ge1xuXHRcdGNvbnN0IGludGVybmFsID0gdGhpcy5pbnRlcm5hbC5jYWNoZUluZm87XG5cdFx0Y29uc3QgZXh0ZXJuYWwgPSB0aGlzLmV4dGVybmFsLmNhY2hlSW5mbztcblx0XHRyZXR1cm4ge1xuXHRcdFx0ZXhwZW5kYWJsZTogQmlnSW50KGludGVybmFsLmV4cGVuZGFibGUpICsgQmlnSW50KGV4dGVybmFsLmV4cGVuZGFibGUpLFxuXHRcdFx0c2l6ZTogaW50ZXJuYWwuc2l6ZSArIGV4dGVybmFsLnNpemUsXG5cdFx0XHR0aW1lbG9jazogTWF0aC5taW4oaW50ZXJuYWwudGltZWxvY2sgfHwgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsIGV4dGVybmFsLnRpbWVsb2NrKSxcblx0XHR9O1xuXHR9XG5cblx0cHVibGljIGdldCBjaGFuZ2VQa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuaW50ZXJuYWwucGtoO1xuXHR9XG5cblx0cHVibGljIGdldCBwa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuZXh0ZXJuYWwucGtoO1xuXHR9XG5cblx0cHVibGljIGdldCBwdWJsaWNLZXkoKTogUHVibGljS2V5IHtcblx0XHRyZXR1cm4gdGhpcy5leHRlcm5hbC5wdWJsaWNLZXk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHByaXZhdGVLZXkoKTogSGV4U3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5leHRlcm5hbC5wcml2YXRlS2V5O1xuXHR9XG5cblx0cHVibGljIGdldCBuZXR3b3JrKCk6IE5ldHdvcmsgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLnByb3ZpZGVyLm5ldHdvcms7XG5cdH1cblxuXHRwdWJsaWMgYXV0aG9yaXplRXZtQWRkcmVzcyhldm1BZGRyZXNzOiBIZXhTdHJpbmcpOiBhbnkge1xuXHRcdHJldHVybiB0aGlzLmV4dGVybmFsLmF1dGhvcml6ZUV2bUFkZHJlc3MoZXZtQWRkcmVzcyk7XG5cdH1cblxuXHRwdWJsaWMgYWRkVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KToge1xuXHRcdGV4Y2x1ZGVkOiBBcnJheTxVdHhvPjtcblx0XHRpbmNsdWRlZDogQXJyYXk8VXR4bz47XG5cdH0ge1xuXHRcdGNvbnN0IGludGVybmFsID0gdGhpcy5pbnRlcm5hbC5hZGRVdHhvcyguLi51dHhvcyk7XG5cdFx0Y29uc3QgZXh0ZXJuYWwgPSB0aGlzLmV4dGVybmFsLmFkZFV0eG9zKC4uLmludGVybmFsLmV4Y2x1ZGVkKTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0ZXhjbHVkZWQ6IGV4dGVybmFsLmV4Y2x1ZGVkLFxuXHRcdFx0aW5jbHVkZWQ6IFsuLi5pbnRlcm5hbC5pbmNsdWRlZCwgLi4uZXh0ZXJuYWwuaW5jbHVkZWRdLFxuXHRcdH07XG5cdH1cblxuXHRwdWJsaWMgY29uc3VtZVV0eG9zKC4uLnV0eG9zOiBBcnJheTxVdHhvPik6IEFycmF5PFV0eG8+IHtcblx0XHRyZXR1cm4gdGhpcy5leHRlcm5hbC5jb25zdW1lVXR4b3MoLi4udGhpcy5pbnRlcm5hbC5jb25zdW1lVXR4b3MoLi4udXR4b3MpKTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRCYWxhbmNlKCk6IFByb21pc2U8QmFsYW5jZT4ge1xuXHRcdHJldHVybiBQcm9taXNlLmFsbChbdGhpcy5pbnRlcm5hbC5nZXRCYWxhbmNlKCksIHRoaXMuZXh0ZXJuYWwuZ2V0QmFsYW5jZSgpXSkudGhlbigoW2ludGVybmFsLCBleHRlcm5hbF0pID0+IHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGxvY2tlZDogaW50ZXJuYWwubG9ja2VkICsgZXh0ZXJuYWwubG9ja2VkLFxuXHRcdFx0XHRzdGFrZWQ6IGludGVybmFsLnN0YWtlZCArIGV4dGVybmFsLnN0YWtlZCxcblx0XHRcdFx0dW5sb2NrZWQ6IGludGVybmFsLnVubG9ja2VkICsgZXh0ZXJuYWwudW5sb2NrZWQsXG5cdFx0XHR9O1xuXHRcdH0pO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGdldERlbGVnYXRlZXMob3JkZXI/OiBRdWVyeVN0YWtlc09yZGVyLCBsZWZ0Sm9pbiA9IHRydWUpOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+PiB7XG5cdFx0cmV0dXJuIHRoaXMucHJvdmlkZXJcblx0XHRcdC5zdGFrZXMoe1xuXHRcdFx0XHRmaWx0ZXI6IHsgd2l0aGRyYXdlcjogdGhpcy5wa2ggfSxcblx0XHRcdFx0cGFyYW1zOiB7IG9yZGVyIH0sXG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKHJlY29yZHMpID0+IHtcblx0XHRcdFx0aWYgKHJlY29yZHMubGVuZ3RoID09PSAwICYmIGxlZnRKb2luKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0a2V5OiB7IHZhbGlkYXRvcjogXCJcIiwgd2l0aGRyYXdlcjogdGhpcy5wa2ggfSxcblx0XHRcdFx0XHRcdFx0dmFsdWU6IHtcblx0XHRcdFx0XHRcdFx0XHRjb2luczogMG4sXG5cdFx0XHRcdFx0XHRcdFx0bm9uY2U6IDAsXG5cdFx0XHRcdFx0XHRcdFx0ZXBvY2hzOiB7IG1pbmluZzogMCwgd2l0bmVzc2luZzogMCB9LFxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRdO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiByZWNvcmRzO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBnZXRTaWduZXIocGtoPzogUHVibGljS2V5SGFzaFN0cmluZyk6IElTaWduZXIgfCB1bmRlZmluZWQge1xuXHRcdGlmICghcGtoKSByZXR1cm4gdGhpcy5leHRlcm5hbDtcblx0XHRlbHNlIGlmIChwa2ggPT09IHRoaXMuZXh0ZXJuYWwucGtoKSByZXR1cm4gdGhpcy5leHRlcm5hbDtcblx0XHRlbHNlIGlmIChwa2ggPT09IHRoaXMuaW50ZXJuYWwucGtoKSByZXR1cm4gdGhpcy5pbnRlcm5hbDtcblx0XHRlbHNlIHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZ2V0VXR4b3MocmVsb2FkID0gZmFsc2UpOiBQcm9taXNlPEFycmF5PFV0eG8+PiB7XG5cdFx0cmV0dXJuIFsuLi4oYXdhaXQgdGhpcy5pbnRlcm5hbC5nZXRVdHhvcyhyZWxvYWQpKSwgLi4uKGF3YWl0IHRoaXMuZXh0ZXJuYWwuZ2V0VXR4b3MocmVsb2FkKSldO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHNlbGVjdFV0eG9zKHNwZWNzPzoge1xuXHRcdHZhbHVlPzogQ29pbnM7XG5cdFx0Y29uc3VtZT86IGJvb2xlYW47XG5cdFx0cmVsb2FkPzogYm9vbGVhbjtcblx0XHRzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblx0fSk6IFByb21pc2U8QXJyYXk8VXR4bz4+IHtcblx0XHRyZXR1cm4gdGhpcy5nZXRVdHhvcyhzcGVjcz8ucmVsb2FkKS50aGVuKCh1dHhvcykgPT5cblx0XHRcdHNlbGVjdFV0eG9zKHtcblx0XHRcdFx0dXR4b3MsXG5cdFx0XHRcdHZhbHVlOiBzcGVjcz8udmFsdWUsXG5cdFx0XHRcdHN0cmF0ZWd5OiBzcGVjcz8uc3RyYXRlZ3kgfHwgdGhpcy5zdHJhdGVneSxcblx0XHRcdH0pLFxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"coinbase.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/coinbase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAEN,KAAK,mBAAmB,EAExB,KAAK,qBAAqB,EAC1B,MAAM,YAAY,CAAC;AAEpB,qBAAa,QAAS,SAAQ,MAAO,YAAW,SAAS;gBAEvD,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,CAAC,EAAE,qBAAqB;IAQ1B,cAAc,CAAC,UAAU,EAAE,mBAAmB,GAAG,SAAS;IAO1D,cAAc,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;CAM3E"}
1
+ {"version":3,"file":"coinbase.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/coinbase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAiB,KAAK,mBAAmB,EAAwB,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEvH,qBAAa,QAAS,SAAQ,MAAO,YAAW,SAAS;gBAC5C,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,qBAAqB;IAO/E,cAAc,CAAC,UAAU,EAAE,mBAAmB,GAAG,SAAS;IAO1D,cAAc,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;CAM3E"}
@@ -1,5 +1,5 @@
1
1
  import { Signer } from "./signer.js";
2
- import { PublicKeyHash, RecoverableSignature, } from "./types.js";
2
+ import { PublicKeyHash, RecoverableSignature } from "./types.js";
3
3
  export class Coinbase extends Signer {
4
4
  constructor(node, provider, strategy) {
5
5
  super(node, provider, strategy);
@@ -20,4 +20,4 @@ export class Coinbase extends Signer {
20
20
  });
21
21
  }
22
22
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by9jb2luYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFDTixhQUFhLEVBRWIsb0JBQW9CLEdBRXBCLE1BQU0sWUFBWSxDQUFDO0FBRXBCLE1BQU0sT0FBTyxRQUFTLFNBQVEsTUFBTTtJQUNuQyxZQUNDLElBQVksRUFDWixRQUEwQixFQUMxQixRQUFnQztRQUVoQyxLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsTUFBTSxLQUFLLENBQUMsdUNBQXVDLElBQUksQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDRixDQUFDO0lBRU0sY0FBYyxDQUFDLFVBQStCO1FBQ3BELE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDN0QsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixNQUFNLFNBQVMsR0FBRyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkUsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQXdCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDM0IsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDL0IsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFO1NBQ2pCLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSGV4U3RyaW5nLCBRdWVyeVN0YWtlc09yZGVyLCBTdGFrZUVudHJ5IH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IElCSVAzMiwgSUNvaW5iYXNlLCBJSnNvblJwY1Byb3ZpZGVyIH0gZnJvbSBcIi4vaW50ZXJmYWNlcy5qc1wiO1xuaW1wb3J0IHsgU2lnbmVyIH0gZnJvbSBcIi4vc2lnbmVyLmpzXCI7XG5pbXBvcnQge1xuXHRQdWJsaWNLZXlIYXNoLFxuXHR0eXBlIFB1YmxpY0tleUhhc2hTdHJpbmcsXG5cdFJlY292ZXJhYmxlU2lnbmF0dXJlLFxuXHR0eXBlIFV0eG9TZWxlY3Rpb25TdHJhdGVneSxcbn0gZnJvbSBcIi4vdHlwZXMuanNcIjtcblxuZXhwb3J0IGNsYXNzIENvaW5iYXNlIGV4dGVuZHMgU2lnbmVyIGltcGxlbWVudHMgSUNvaW5iYXNlIHtcblx0Y29uc3RydWN0b3IoXG5cdFx0bm9kZTogSUJJUDMyLFxuXHRcdHByb3ZpZGVyOiBJSnNvblJwY1Byb3ZpZGVyLFxuXHRcdHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5LFxuXHQpIHtcblx0XHRzdXBlcihub2RlLCBwcm92aWRlciwgc3RyYXRlZ3kpO1xuXHRcdGlmIChub2RlLmRlcHRoICE9PSAwKSB7XG5cdFx0XHR0aHJvdyBFcnJvcihgQ29pbmJhc2U6IGludmFsaWQgQklQMzIgbm9kZSBkZXB0aDogJHtub2RlLmRlcHRofSA+IDBgKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgYXV0aG9yaXplU3Rha2Uod2l0aGRyYXdlcjogUHVibGljS2V5SGFzaFN0cmluZyk6IEhleFN0cmluZyB7XG5cdFx0Y29uc3QgbXNnID0gUHVibGljS2V5SGFzaC5mcm9tQmVjaDMyKHdpdGhkcmF3ZXIpLnRvQnl0ZXMzMigpO1xuXHRcdGNvbnN0IGtzID0gdGhpcy5zaWduSGFzaChtc2cpO1xuXHRcdGNvbnN0IHNpZ25hdHVyZSA9IFJlY292ZXJhYmxlU2lnbmF0dXJlLmZyb21LZXllZFNpZ25hdHVyZShrcywgbXNnKTtcblx0XHRyZXR1cm4gc2lnbmF0dXJlLnB1YktleS5oYXNoKCkudG9IZXhTdHJpbmcoKSArIHNpZ25hdHVyZS50b0hleFN0cmluZygpO1xuXHR9XG5cblx0cHVibGljIGdldFdpdGhkcmF3ZXJzKG9yZGVyPzogUXVlcnlTdGFrZXNPcmRlcik6IFByb21pc2U8QXJyYXk8U3Rha2VFbnRyeT4+IHtcblx0XHRyZXR1cm4gdGhpcy5wcm92aWRlci5zdGFrZXMoe1xuXHRcdFx0ZmlsdGVyOiB7IHZhbGlkYXRvcjogdGhpcy5wa2ggfSxcblx0XHRcdHBhcmFtczogeyBvcmRlciB9LFxuXHRcdH0pO1xuXHR9XG59XG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by9jb2luYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQTRCLG9CQUFvQixFQUE4QixNQUFNLFlBQVksQ0FBQztBQUV2SCxNQUFNLE9BQU8sUUFBUyxTQUFRLE1BQU07SUFDbkMsWUFBWSxJQUFZLEVBQUUsUUFBMEIsRUFBRSxRQUFnQztRQUNyRixLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsTUFBTSxLQUFLLENBQUMsdUNBQXVDLElBQUksQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDRixDQUFDO0lBRU0sY0FBYyxDQUFDLFVBQStCO1FBQ3BELE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDN0QsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixNQUFNLFNBQVMsR0FBRyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkUsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQXdCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDM0IsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDL0IsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFO1NBQ2pCLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSGV4U3RyaW5nLCBRdWVyeVN0YWtlc09yZGVyLCBTdGFrZUVudHJ5IH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IElCSVAzMiwgSUNvaW5iYXNlLCBJSnNvblJwY1Byb3ZpZGVyIH0gZnJvbSBcIi4vaW50ZXJmYWNlcy5qc1wiO1xuaW1wb3J0IHsgU2lnbmVyIH0gZnJvbSBcIi4vc2lnbmVyLmpzXCI7XG5pbXBvcnQgeyBQdWJsaWNLZXlIYXNoLCB0eXBlIFB1YmxpY0tleUhhc2hTdHJpbmcsIFJlY292ZXJhYmxlU2lnbmF0dXJlLCB0eXBlIFV0eG9TZWxlY3Rpb25TdHJhdGVneSB9IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBDb2luYmFzZSBleHRlbmRzIFNpZ25lciBpbXBsZW1lbnRzIElDb2luYmFzZSB7XG5cdGNvbnN0cnVjdG9yKG5vZGU6IElCSVAzMiwgcHJvdmlkZXI6IElKc29uUnBjUHJvdmlkZXIsIHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5KSB7XG5cdFx0c3VwZXIobm9kZSwgcHJvdmlkZXIsIHN0cmF0ZWd5KTtcblx0XHRpZiAobm9kZS5kZXB0aCAhPT0gMCkge1xuXHRcdFx0dGhyb3cgRXJyb3IoYENvaW5iYXNlOiBpbnZhbGlkIEJJUDMyIG5vZGUgZGVwdGg6ICR7bm9kZS5kZXB0aH0gPiAwYCk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGF1dGhvcml6ZVN0YWtlKHdpdGhkcmF3ZXI6IFB1YmxpY0tleUhhc2hTdHJpbmcpOiBIZXhTdHJpbmcge1xuXHRcdGNvbnN0IG1zZyA9IFB1YmxpY0tleUhhc2guZnJvbUJlY2gzMih3aXRoZHJhd2VyKS50b0J5dGVzMzIoKTtcblx0XHRjb25zdCBrcyA9IHRoaXMuc2lnbkhhc2gobXNnKTtcblx0XHRjb25zdCBzaWduYXR1cmUgPSBSZWNvdmVyYWJsZVNpZ25hdHVyZS5mcm9tS2V5ZWRTaWduYXR1cmUoa3MsIG1zZyk7XG5cdFx0cmV0dXJuIHNpZ25hdHVyZS5wdWJLZXkuaGFzaCgpLnRvSGV4U3RyaW5nKCkgKyBzaWduYXR1cmUudG9IZXhTdHJpbmcoKTtcblx0fVxuXG5cdHB1YmxpYyBnZXRXaXRoZHJhd2VycyhvcmRlcj86IFF1ZXJ5U3Rha2VzT3JkZXIpOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+PiB7XG5cdFx0cmV0dXJuIHRoaXMucHJvdmlkZXIuc3Rha2VzKHtcblx0XHRcdGZpbHRlcjogeyB2YWxpZGF0b3I6IHRoaXMucGtoIH0sXG5cdFx0XHRwYXJhbXM6IHsgb3JkZXIgfSxcblx0XHR9KTtcblx0fVxufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/interfaces.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY3J5cHRvL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcblx0QmFsYW5jZSxcblx0SGFzaCxcblx0SGV4U3RyaW5nLFxuXHRJSnNvblJwY1Byb3ZpZGVyLFxuXHROZXR3b3JrLFxuXHRRdWVyeVN0YWtlc09yZGVyLFxuXHRTdGFrZUVudHJ5LFxuXHRWYWx1ZVRyYW5zZmVyT3V0cHV0LFxufSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcblxuaW1wb3J0IHR5cGUge1xuXHRDb2lucyxcblx0S2V5ZWRTaWduYXR1cmUsXG5cdFB1YmxpY0tleSxcblx0UHVibGljS2V5SGFzaFN0cmluZyxcblx0VHJhbnNhY3Rpb25SZWNlaXB0LFxuXHRVdHhvLFxuXHRVdHhvQ2FjaGVJbmZvLFxuXHRVdHhvU2VsZWN0aW9uU3RyYXRlZ3ksXG59IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCB7IEJJUDMySW50ZXJmYWNlIGFzIElCSVAzMiB9IGZyb20gXCJiaXAzMlwiO1xuZXhwb3J0IHsgSUpzb25ScGNQcm92aWRlciB9IGZyb20gXCIuLi9ycGMvaW5kZXguanNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJQWNjb3VudCBleHRlbmRzIElMZWRnZXIge1xuXHRpbmRleDogbnVtYmVyO1xuXHRpbnRlcm5hbDogSVNpZ25lcjtcblx0ZXh0ZXJuYWw6IElTaWduZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxlZGdlciB7XG5cdGNhY2hlSW5mbzogVXR4b0NhY2hlSW5mbztcblx0Y2hhbmdlUGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuXHRuZXR3b3JrPzogTmV0d29yaztcblx0cGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuXHRwcm92aWRlcjogSUpzb25ScGNQcm92aWRlcjtcblx0cHVibGljS2V5OiBQdWJsaWNLZXk7XG5cdHByaXZhdGVLZXk6IEhleFN0cmluZztcblx0c3RyYXRlZ3k6IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblxuXHRhdXRob3JpemVFdm1BZGRyZXNzKGV2bUFkZHJlc3M6IEhleFN0cmluZyk6IGFueTtcblxuXHRhZGRVdHhvcyguLi51dHhvczogQXJyYXk8VXR4bz4pOiB7XG5cdFx0ZXhjbHVkZWQ6IEFycmF5PFV0eG8+O1xuXHRcdGluY2x1ZGVkOiBBcnJheTxVdHhvPjtcblx0fTtcblx0Y29uc3VtZVV0eG9zKC4uLnV0eG9zOiBBcnJheTxVdHhvPik6IGFueTtcblx0c2VsZWN0VXR4b3Moc3BlY3M/OiB7XG5cdFx0dmFsdWU/OiBDb2lucztcblx0XHRyZWxvYWQ/OiBib29sZWFuO1xuXHRcdHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5O1xuXHR9KTogUHJvbWlzZTxBcnJheTxVdHhvPj47XG5cblx0Z2V0QmFsYW5jZSgpOiBQcm9taXNlPEJhbGFuY2U+O1xuXHRnZXREZWxlZ2F0ZWVzKFxuXHRcdG9yZGVyPzogUXVlcnlTdGFrZXNPcmRlcixcblx0XHRsZWZ0Sm9pbj86IGJvb2xlYW4sXG5cdCk6IFByb21pc2U8QXJyYXk8U3Rha2VFbnRyeT4+O1xuXHRnZXRTaWduZXIocGtoPzogUHVibGljS2V5SGFzaFN0cmluZyk6IElTaWduZXIgfCB1bmRlZmluZWQ7XG5cdGdldFV0eG9zKHNwZWNzPzogYW55KTogUHJvbWlzZTxBcnJheTxVdHhvPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvaW5iYXNlIGV4dGVuZHMgSVNpZ25lciB7XG5cdGF1dGhvcml6ZVN0YWtlKHdpdGhkcmF3ZXI6IFB1YmxpY0tleUhhc2hTdHJpbmcpOiBIZXhTdHJpbmc7XG5cdGdldFdpdGhkcmF3ZXJzKG9yZGVyPzogUXVlcnlTdGFrZXNPcmRlcik6IFByb21pc2U8QXJyYXk8U3Rha2VFbnRyeT4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTaWduZXIgZXh0ZW5kcyBJTGVkZ2VyIHtcblx0YXV0aG9yaXplRXZtQWRkcmVzcyhldm1BZGRyZXNzOiBIZXhTdHJpbmcpOiBhbnk7XG5cdGdldFN0YWtlRW50cnlOb25jZSh2YWxpZGF0b3I6IFB1YmxpY0tleUhhc2hTdHJpbmcpOiBQcm9taXNlPG51bWJlcj47XG5cdHNpZ25IYXNoKGhhc2g6IGFueSk6IEtleWVkU2lnbmF0dXJlO1xuXHRzaWduTWVzc2FnZSh0ZXh0OiBzdHJpbmcpOiB7XG5cdFx0YWRkcmVzczogc3RyaW5nO1xuXHRcdG1lc3NhZ2U6IHN0cmluZztcblx0XHRwdWJsaWNLZXk6IEhleFN0cmluZztcblx0XHRzaWduYXR1cmU6IEhleFN0cmluZztcblx0fTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJV2FsbGV0IGV4dGVuZHMgSUxlZGdlciB7XG5cdGFjY291bnRzPzogQXJyYXk8SUFjY291bnQ+O1xuXHRjb2luYmFzZTogSUNvaW5iYXNlO1xuXHRkZXJpdmVBY2NvdW50cyhpbmRleDogbnVtYmVyKTogQXJyYXk8SUFjY291bnQ+O1xuXHRleHBsb3JlQWNjb3VudHMocGFyYW1zPzogYW55KTogUHJvbWlzZTxBcnJheTxJQWNjb3VudD4+O1xuXHRnZXRBY2NvdW50KHBraDogUHVibGljS2V5SGFzaFN0cmluZywgZ2FwPzogbnVtYmVyKTogSUFjY291bnQgfCB1bmRlZmluZWQ7XG5cdGdldFNpZ25lcihwa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nLCBnYXA/OiBudW1iZXIpOiBJU2lnbmVyIHwgdW5kZWZpbmVkO1xufVxuXG5pbnRlcmZhY2UgSUhhc2hhYmxlIHtcblx0Ynl0ZWNvZGU/OiBVaW50OEFycmF5O1xuXHRoYXNoPzogSGFzaDtcblx0dG9KU09OKGh1bWFuaXplPzogYm9vbGVhbiwgcGFyYW1zPzogYW55KTogYW55O1xuXHR0b1Byb3RvYnVmKCk6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVHJhbnNtaXR0ZXIge1xuXHRuZXR3b3JrOiBOZXR3b3JrO1xuXHRwYXlsb2FkPzogYW55O1xuXHRwcm92aWRlcjogSUpzb25ScGNQcm92aWRlcjtcblx0dHJhbnNhY3Rpb25zOiBBcnJheTxIYXNoPjtcblx0dHlwZTogc3RyaW5nO1xuXHRjb25maXJtVHJhbnNhY3Rpb24ocGFyYW1zPzogYW55KTogUHJvbWlzZTxUcmFuc2FjdGlvblJlY2VpcHQgfCB1bmtub3duPjtcblx0c2VuZFRyYW5zYWN0aW9uKHBhcmFtcz86IGFueSk6IFByb21pc2U8VHJhbnNhY3Rpb25SZWNlaXB0Pjtcblx0c2lnblRyYW5zYWN0aW9uKHBhcmFtcz86IGFueSwgcmVsb2FkPzogYm9vbGVhbik6IFByb21pc2U8VHJhbnNhY3Rpb25SZWNlaXB0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVHJhbnNhY3Rpb25QYXlsb2FkPFNwZWNzPiBleHRlbmRzIElIYXNoYWJsZSB7XG5cdGNoYW5nZT86IENvaW5zO1xuXHRjb3ZlcmVkOiBib29sZWFuO1xuXHRmZWVzPzogQ29pbnM7XG5cdG1heFdlaWdodDogbnVtYmVyO1xuXHRwcmVwYXJlZDogYm9vbGVhbjtcblx0b3V0cHV0czogQXJyYXk8VmFsdWVUcmFuc2Zlck91dHB1dD47XG5cdHRhcmdldD86IFNwZWNzO1xuXHR2YWx1ZT86IENvaW5zO1xuXHR3ZWlnaHQ6IG51bWJlcjtcblx0Y29uc3VtZVV0eG9zKGxlZGdlcjogSUxlZGdlciwgcGFyYW1zPzogYW55KTogYW55O1xuXHRpbnRvUmVjZWlwdCh0YXJnZXQ6IFNwZWNzLCBuZXR3b3JrPzogTmV0d29yayk6IGFueTtcblx0cHJlcGFyZU91dHB1dHMocGFyYW1zPzogYW55KTogYW55O1xuXHRyZXNldFRhcmdldCh0YXJnZXQ6IFNwZWNzKTogYW55O1xuXHR0b0pTT04oaHVtYW5pemU/OiBib29sZWFuLCBuZXR3b3JrPzogTmV0d29yayk6IGFueTtcblx0dmFsaWRhdGVUYXJnZXQodGFyZ2V0PzogU3BlY3MpOiBTcGVjcyB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVHJhbnNhY3Rpb25QYXlsb2FkTXVsdGlTaWc8U3BlY3M+XG5cdGV4dGVuZHMgSVRyYW5zYWN0aW9uUGF5bG9hZDxTcGVjcz4ge1xuXHRpbnB1dHM6IEFycmF5PFV0eG8+O1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY3J5cHRvL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcblx0QmFsYW5jZSxcblx0SGFzaCxcblx0SGV4U3RyaW5nLFxuXHRJSnNvblJwY1Byb3ZpZGVyLFxuXHROZXR3b3JrLFxuXHRRdWVyeVN0YWtlc09yZGVyLFxuXHRTdGFrZUVudHJ5LFxuXHRWYWx1ZVRyYW5zZmVyT3V0cHV0LFxufSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcblxuaW1wb3J0IHR5cGUge1xuXHRDb2lucyxcblx0S2V5ZWRTaWduYXR1cmUsXG5cdFB1YmxpY0tleSxcblx0UHVibGljS2V5SGFzaFN0cmluZyxcblx0VHJhbnNhY3Rpb25SZWNlaXB0LFxuXHRVdHhvLFxuXHRVdHhvQ2FjaGVJbmZvLFxuXHRVdHhvU2VsZWN0aW9uU3RyYXRlZ3ksXG59IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCB7IEJJUDMySW50ZXJmYWNlIGFzIElCSVAzMiB9IGZyb20gXCJiaXAzMlwiO1xuZXhwb3J0IHsgSUpzb25ScGNQcm92aWRlciB9IGZyb20gXCIuLi9ycGMvaW5kZXguanNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJQWNjb3VudCBleHRlbmRzIElMZWRnZXIge1xuXHRpbmRleDogbnVtYmVyO1xuXHRpbnRlcm5hbDogSVNpZ25lcjtcblx0ZXh0ZXJuYWw6IElTaWduZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxlZGdlciB7XG5cdGNhY2hlSW5mbzogVXR4b0NhY2hlSW5mbztcblx0Y2hhbmdlUGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuXHRuZXR3b3JrPzogTmV0d29yaztcblx0cGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuXHRwcm92aWRlcjogSUpzb25ScGNQcm92aWRlcjtcblx0cHVibGljS2V5OiBQdWJsaWNLZXk7XG5cdHByaXZhdGVLZXk6IEhleFN0cmluZztcblx0c3RyYXRlZ3k6IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblxuXHRhdXRob3JpemVFdm1BZGRyZXNzKGV2bUFkZHJlc3M6IEhleFN0cmluZyk6IGFueTtcblxuXHRhZGRVdHhvcyguLi51dHhvczogQXJyYXk8VXR4bz4pOiB7XG5cdFx0ZXhjbHVkZWQ6IEFycmF5PFV0eG8+O1xuXHRcdGluY2x1ZGVkOiBBcnJheTxVdHhvPjtcblx0fTtcblx0Y29uc3VtZVV0eG9zKC4uLnV0eG9zOiBBcnJheTxVdHhvPik6IGFueTtcblx0c2VsZWN0VXR4b3Moc3BlY3M/OiB7IHZhbHVlPzogQ29pbnM7IHJlbG9hZD86IGJvb2xlYW47IHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5IH0pOiBQcm9taXNlPEFycmF5PFV0eG8+PjtcblxuXHRnZXRCYWxhbmNlKCk6IFByb21pc2U8QmFsYW5jZT47XG5cdGdldERlbGVnYXRlZXMob3JkZXI/OiBRdWVyeVN0YWtlc09yZGVyLCBsZWZ0Sm9pbj86IGJvb2xlYW4pOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+Pjtcblx0Z2V0U2lnbmVyKHBraD86IFB1YmxpY0tleUhhc2hTdHJpbmcpOiBJU2lnbmVyIHwgdW5kZWZpbmVkO1xuXHRnZXRVdHhvcyhzcGVjcz86IGFueSk6IFByb21pc2U8QXJyYXk8VXR4bz4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb2luYmFzZSBleHRlbmRzIElTaWduZXIge1xuXHRhdXRob3JpemVTdGFrZSh3aXRoZHJhd2VyOiBQdWJsaWNLZXlIYXNoU3RyaW5nKTogSGV4U3RyaW5nO1xuXHRnZXRXaXRoZHJhd2VycyhvcmRlcj86IFF1ZXJ5U3Rha2VzT3JkZXIpOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2lnbmVyIGV4dGVuZHMgSUxlZGdlciB7XG5cdGF1dGhvcml6ZUV2bUFkZHJlc3MoZXZtQWRkcmVzczogSGV4U3RyaW5nKTogYW55O1xuXHRnZXRTdGFrZUVudHJ5Tm9uY2UodmFsaWRhdG9yOiBQdWJsaWNLZXlIYXNoU3RyaW5nKTogUHJvbWlzZTxudW1iZXI+O1xuXHRzaWduSGFzaChoYXNoOiBhbnkpOiBLZXllZFNpZ25hdHVyZTtcblx0c2lnbk1lc3NhZ2UodGV4dDogc3RyaW5nKToge1xuXHRcdGFkZHJlc3M6IHN0cmluZztcblx0XHRtZXNzYWdlOiBzdHJpbmc7XG5cdFx0cHVibGljS2V5OiBIZXhTdHJpbmc7XG5cdFx0c2lnbmF0dXJlOiBIZXhTdHJpbmc7XG5cdH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVdhbGxldCBleHRlbmRzIElMZWRnZXIge1xuXHRhY2NvdW50cz86IEFycmF5PElBY2NvdW50Pjtcblx0Y29pbmJhc2U6IElDb2luYmFzZTtcblx0ZGVyaXZlQWNjb3VudHMoaW5kZXg6IG51bWJlcik6IEFycmF5PElBY2NvdW50Pjtcblx0ZXhwbG9yZUFjY291bnRzKHBhcmFtcz86IGFueSk6IFByb21pc2U8QXJyYXk8SUFjY291bnQ+Pjtcblx0Z2V0QWNjb3VudChwa2g6IFB1YmxpY0tleUhhc2hTdHJpbmcsIGdhcD86IG51bWJlcik6IElBY2NvdW50IHwgdW5kZWZpbmVkO1xuXHRnZXRTaWduZXIocGtoPzogUHVibGljS2V5SGFzaFN0cmluZywgZ2FwPzogbnVtYmVyKTogSVNpZ25lciB8IHVuZGVmaW5lZDtcbn1cblxuaW50ZXJmYWNlIElIYXNoYWJsZSB7XG5cdGJ5dGVjb2RlPzogVWludDhBcnJheTtcblx0aGFzaD86IEhhc2g7XG5cdHRvSlNPTihodW1hbml6ZT86IGJvb2xlYW4sIHBhcmFtcz86IGFueSk6IGFueTtcblx0dG9Qcm90b2J1ZigpOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zbWl0dGVyIHtcblx0bmV0d29yazogTmV0d29yaztcblx0cGF5bG9hZD86IGFueTtcblx0cHJvdmlkZXI6IElKc29uUnBjUHJvdmlkZXI7XG5cdHRyYW5zYWN0aW9uczogQXJyYXk8SGFzaD47XG5cdHR5cGU6IHN0cmluZztcblx0Y29uZmlybVRyYW5zYWN0aW9uKHBhcmFtcz86IGFueSk6IFByb21pc2U8VHJhbnNhY3Rpb25SZWNlaXB0IHwgdW5rbm93bj47XG5cdHNlbmRUcmFuc2FjdGlvbihwYXJhbXM/OiBhbnkpOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVjZWlwdD47XG5cdHNpZ25UcmFuc2FjdGlvbihwYXJhbXM/OiBhbnksIHJlbG9hZD86IGJvb2xlYW4pOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVjZWlwdD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zYWN0aW9uUGF5bG9hZDxTcGVjcz4gZXh0ZW5kcyBJSGFzaGFibGUge1xuXHRjaGFuZ2U/OiBDb2lucztcblx0Y292ZXJlZDogYm9vbGVhbjtcblx0ZmVlcz86IENvaW5zO1xuXHRtYXhXZWlnaHQ6IG51bWJlcjtcblx0cHJlcGFyZWQ6IGJvb2xlYW47XG5cdG91dHB1dHM6IEFycmF5PFZhbHVlVHJhbnNmZXJPdXRwdXQ+O1xuXHR0YXJnZXQ/OiBTcGVjcztcblx0dmFsdWU/OiBDb2lucztcblx0d2VpZ2h0OiBudW1iZXI7XG5cdGNvbnN1bWVVdHhvcyhsZWRnZXI6IElMZWRnZXIsIHBhcmFtcz86IGFueSk6IGFueTtcblx0aW50b1JlY2VpcHQodGFyZ2V0OiBTcGVjcywgbmV0d29yaz86IE5ldHdvcmspOiBhbnk7XG5cdHByZXBhcmVPdXRwdXRzKHBhcmFtcz86IGFueSk6IGFueTtcblx0cmVzZXRUYXJnZXQodGFyZ2V0OiBTcGVjcyk6IGFueTtcblx0dG9KU09OKGh1bWFuaXplPzogYm9vbGVhbiwgbmV0d29yaz86IE5ldHdvcmspOiBhbnk7XG5cdHZhbGlkYXRlVGFyZ2V0KHRhcmdldD86IFNwZWNzKTogU3BlY3MgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zYWN0aW9uUGF5bG9hZE11bHRpU2lnPFNwZWNzPiBleHRlbmRzIElUcmFuc2FjdGlvblBheWxvYWQ8U3BlY3M+IHtcblx0aW5wdXRzOiBBcnJheTxVdHhvPjtcbn1cbiJdfQ==
@@ -4,26 +4,24 @@ import type { ILedger } from "../interfaces.js";
4
4
  import { TransactionPayloadMultiSig } from "../payloads.js";
5
5
  import { Coins, type TransactionParams, TransactionPriority } from "../types.js";
6
6
  export type DataRequestTemplateArgs = any | string | string[] | string[][];
7
- export type DataRequestMajority = "simple" | "qualified";
8
7
  export type DataRequestParams = TransactionParams & {
9
8
  args?: DataRequestTemplateArgs;
10
- majorityType?: DataRequestMajority;
11
9
  maxResultSize?: number;
12
10
  witnesses?: number;
13
11
  };
14
12
  type DataRequestOutputSLA = {
15
- collateral?: number;
16
- commitAndRevealFee?: number;
13
+ collateral: number;
14
+ commitAndRevealFee: number;
17
15
  minConsensusPercentage: number;
18
16
  witnesses: number;
19
- witnessReward: number;
20
- maxResultSize?: number;
17
+ witnessReward?: number;
21
18
  };
22
19
  export declare class DataRequestPayload extends TransactionPayloadMultiSig<DataRequestParams> {
23
20
  static DEFAULT_MAX_RESULT_SIZE: number;
24
21
  static DEFAULT_WITNESSES: number;
25
22
  static MAX_WEIGHT: number;
26
23
  static MIN_COLLATERAL: bigint;
24
+ static MIN_CONSENSUS_PERCENTAGE: number;
27
25
  protected _request?: RadonRequest;
28
26
  readonly template?: RadonTemplate;
29
27
  constructor(protoTypeName: string, radon: RadonRequest | RadonTemplate, initialTarget?: DataRequestParams);
@@ -1 +1 @@
1
- {"version":3,"file":"DataRequestPayload.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/payloads/DataRequestPayload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataRequestPayload.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/payloads/DataRequestPayload.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ const protoRoot = ProtoRoot.fromJSON(require("../../../../witnet/witnet.proto.js
7
7
  import { fromHexString, toHexString } from "../../../bin/helpers.js";
8
8
  import { RadonRequest, RadonTemplate } from "../../radon/index.js";
9
9
  import { TransactionPayloadMultiSig } from "../payloads.js";
10
- import { Coins, PublicKeyHash, TransactionPriority, } from "../types.js";
10
+ import { Coins, PublicKeyHash, TransactionPriority } from "../types.js";
11
11
  import { BigMath, sha256 } from "../utils.js";
12
12
  const COLLATERAL_RATIO = 100n;
13
13
  // const RADON_ERROR_MAX_BYTES = 9;
@@ -23,6 +23,7 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
23
23
  static DEFAULT_WITNESSES = 12;
24
24
  static MAX_WEIGHT = 80_000;
25
25
  static MIN_COLLATERAL = 20000000000n;
26
+ static MIN_CONSENSUS_PERCENTAGE = 51;
26
27
  _request;
27
28
  template;
28
29
  constructor(protoTypeName, radon, initialTarget) {
@@ -60,7 +61,7 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
60
61
  }
61
62
  get droSLA() {
62
63
  if (this._target && this._fees) {
63
- const minConsensusPercentage = this._target.majorityType === "qualified" ? 66 : 51;
64
+ const minConsensusPercentage = DataRequestPayload.MIN_CONSENSUS_PERCENTAGE;
64
65
  const witnesses = typeof this._target.witnesses === "object"
65
66
  ? Object.keys(this._target.witnesses).length
66
67
  : this._target.witnesses || 0;
@@ -73,38 +74,9 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
73
74
  throw new TypeError(`${this.constructor.name}: excessive witness reward: ${witnessReward.toString()} > ${Number.MAX_SAFE_INTEGER}`);
74
75
  else if (commitAndRevealFee > Number.MAX_SAFE_INTEGER)
75
76
  throw new TypeError(`${this.constructor.name}: excessive commit/reveal fee: ${commitAndRevealFee.toString()} > ${Number.MAX_SAFE_INTEGER}`);
76
- // TODO: only when protocol >= V2_1
77
- // let maxResultSize
78
- // if (this.request) {
79
- // if (this.request.witnessReducer.opcode === Opcodes.ConcatenateAndHash) {
80
- // if (this._target?.maxResultSize && this._target?.maxResultSize !== 34) {
81
- // throw new TypeError(`${this.constructor.name}: invalid max result size (${this._target?.maxResultSize}) for a concatenate-and-hash output.`)
82
- // }
83
- // } else {
84
- // switch (this.request.dataType) {
85
- // case "RadonBoolean":
86
- // case "RadonInteger":
87
- // case "RadonFloat":
88
- // if (this._target?.maxResultSize && this._target.maxResultSize !== RADON_ERROR_MAX_BYTES) {
89
- // throw new TypeError(`${this.constructor.name}: invalid max result size (${
90
- // this._target.maxResultSize
91
- // } bytes) for expected result type (${this.request.dataType})`)
92
- // }
93
- // break;
94
- // default:
95
- // if (this._target?.maxResultSize && this._target.maxResultSize < RADON_ERROR_MAX_BYTES) {
96
- // throw new TypeError(`${this.constructor.name}: invalid max result size (${
97
- // this._target.maxResultSize
98
- // } bytes) for variant result type (${this.request.dataType})`)
99
- // }
100
- // maxResultSize = this._target?.maxResultSize || DataRequestPayload.DEFAULT_MAX_RESULT_SIZE
101
- // }
102
- // }
103
- // }
104
77
  return {
105
78
  collateral: Number(collateral),
106
79
  commitAndRevealFee: Number(commitAndRevealFee),
107
- // maxResultSize, TODO: only if protocol >= V2_1
108
80
  minConsensusPercentage,
109
81
  witnesses,
110
82
  witnessReward: Number(witnessReward),
@@ -130,10 +102,7 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
130
102
  return !!this.template;
131
103
  }
132
104
  get prepared() {
133
- return (this.covered &&
134
- this._inputs.length > 0 &&
135
- !!this._request &&
136
- !!this._target);
105
+ return this.covered && this._inputs.length > 0 && !!this._request && !!this._target;
137
106
  }
138
107
  get radArgs() {
139
108
  return this.template ? this._target?.args : undefined;
@@ -157,15 +126,11 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
157
126
  const witnesses = typeof this._target.witnesses === "object"
158
127
  ? Object.keys(this._target.witnesses).length
159
128
  : this._target.witnesses || 0;
160
- return (DR_TX_WEIGHT_ALPHA * (this._request.weight() + 8 + 2 + 8 + 4 + 8),
161
- +this._inputs.length * TX_WEIGHT_INPUT_SIZE +
162
- this._outputs.length * TX_WEIGHT_OUTPUT_SIZE +
163
- witnesses *
164
- (DR_COMMIT_TX_WEIGHT +
165
- DR_REVEAL_TX_WEIGHT * DR_TX_WEIGHT_BETA +
166
- TX_WEIGHT_OUTPUT_SIZE) + // TODO V2.1: typeof this._target.witnesses === 'object' ? TX_WEIGHT_OUTPUT_SIZE : 0
167
- Math.max(DR_TALLY_TX_WEIGHT, this._target?.maxResultSize || 0) *
168
- DR_TX_WEIGHT_BETA);
129
+ return (DR_TX_WEIGHT_ALPHA * (this._request.weight() + 8 + 2 + 8 + 4 + 8) +
130
+ this._inputs.length * TX_WEIGHT_INPUT_SIZE +
131
+ this._outputs.length * TX_WEIGHT_OUTPUT_SIZE +
132
+ witnesses * (DR_COMMIT_TX_WEIGHT + DR_REVEAL_TX_WEIGHT * DR_TX_WEIGHT_BETA + TX_WEIGHT_OUTPUT_SIZE) + // TODO V2.1: typeof this._target.witnesses === 'object' ? TX_WEIGHT_OUTPUT_SIZE : 0
133
+ Math.max(DR_TALLY_TX_WEIGHT, this._target?.maxResultSize || 0) * DR_TX_WEIGHT_BETA);
169
134
  }
170
135
  else {
171
136
  return 0;
@@ -188,17 +153,14 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
188
153
  }
189
154
  else if (this.weight > DataRequestPayload.MAX_WEIGHT * 0.8) {
190
155
  const delta = this.weight - DataRequestPayload.MAX_WEIGHT * 0.8;
191
- this._target.witnesses -= Math.ceil(delta /
192
- (DR_COMMIT_TX_WEIGHT +
193
- DR_REVEAL_TX_WEIGHT * TX_WEIGHT_OUTPUT_SIZE));
156
+ this._target.witnesses -= Math.ceil(delta / (DR_COMMIT_TX_WEIGHT + DR_REVEAL_TX_WEIGHT * TX_WEIGHT_OUTPUT_SIZE));
194
157
  if (this._target.witnesses < 3) {
195
158
  delete this._target.witnesses;
196
159
  throw new Error(`${this.constructor.name}: cannot estimate witnesses: radon request too heavy: ${this.weight} weight units`);
197
160
  }
198
161
  }
199
162
  }
200
- const priority = this._target?.fees ||
201
- TransactionPriority.Opulent;
163
+ const priority = this._target?.fees || TransactionPriority.Opulent;
202
164
  let estimatedFees = await this._estimateNetworkFees(ledger.provider, priority);
203
165
  while (this._fees < estimatedFees && this._change >= 0) {
204
166
  this._fees = estimatedFees;
@@ -210,9 +172,7 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
210
172
  value: Coins.fromPedros(value + this._fees - this._covered),
211
173
  reload,
212
174
  });
213
- const extra = utxos
214
- .map((utxo) => BigInt(utxo.value))
215
- .reduce((prev, curr) => prev + curr, 0n);
175
+ const extra = utxos.map((utxo) => BigInt(utxo.value)).reduce((prev, curr) => prev + curr, 0n);
216
176
  this._covered += extra;
217
177
  this._inputs.push(...utxos);
218
178
  ledger.consumeUtxos(...utxos);
@@ -250,8 +210,7 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
250
210
  this._inputs = [];
251
211
  this._outputs = [];
252
212
  this._target = target;
253
- if (this.droSLA?.collateral &&
254
- this.droSLA.collateral < DataRequestPayload.MIN_COLLATERAL) {
213
+ if (this.droSLA?.collateral && this.droSLA.collateral < DataRequestPayload.MIN_COLLATERAL) {
255
214
  throw new TypeError(`${this.constructor.name}: witnessing collateral below minimum: ${this.droSLA.collateral} < ${DataRequestPayload.MIN_COLLATERAL}`);
256
215
  }
257
216
  if (this.template) {
@@ -271,18 +230,14 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
271
230
  toJSON(humanize = false) {
272
231
  const droSLA = this.droSLA;
273
232
  return {
274
- inputs: this.inputs.map((utxo) => ({
275
- output_pointer: utxo.output_pointer,
276
- })),
233
+ inputs: this.inputs.map((utxo) => ({ output_pointer: utxo.output_pointer })),
277
234
  outputs: this.outputs.map((vto) => ({
278
235
  pkh: vto.pkh,
279
236
  time_lock: vto.time_lock,
280
237
  value: vto.value.toString(),
281
238
  })),
282
239
  dr_output: {
283
- ...(this._request
284
- ? { data_request: this._request.toJSON(humanize) }
285
- : {}),
240
+ ...(this._request ? { data_request: this._request.toJSON(humanize) } : {}),
286
241
  commit_and_reveal_fee: droSLA?.commitAndRevealFee,
287
242
  min_consensus_percentage: droSLA?.minConsensusPercentage,
288
243
  witnesses: droSLA?.witnesses,
@@ -299,17 +254,13 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
299
254
  const outputIndex = parseInt(utxo.output_pointer.split(":")[1], 10);
300
255
  return {
301
256
  outputPointer: {
302
- transactionId: {
303
- SHA256: Array.from(fromHexString(transactionId)),
304
- },
257
+ transactionId: { SHA256: Array.from(fromHexString(transactionId)) },
305
258
  ...(outputIndex > 0 ? { outputIndex } : {}),
306
259
  },
307
260
  };
308
261
  }),
309
262
  outputs: this.outputs.map((vto) => ({
310
- pkh: {
311
- hash: Array.from(PublicKeyHash.fromBech32(vto.pkh).toBytes20()),
312
- },
263
+ pkh: { hash: Array.from(PublicKeyHash.fromBech32(vto.pkh).toBytes20()) },
313
264
  value: Long.fromValue(vto.value),
314
265
  ...(vto.time_lock > 0 ? { timeLock: vto.time_lock } : {}),
315
266
  })),
@@ -322,8 +273,7 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
322
273
  if (target && Object.keys(target).length > 0) {
323
274
  if (!(target &&
324
275
  (!target?.fees ||
325
- (target.fees instanceof Coins &&
326
- target.fees.pedros > 0) ||
276
+ (target.fees instanceof Coins && target.fees.pedros > 0) ||
327
277
  Object.values(TransactionPriority).includes(target.fees)) &&
328
278
  (target?.witnesses || target?.witnesses === undefined) &&
329
279
  (!this.template || target?.args))) {
@@ -363,8 +313,7 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
363
313
  }
364
314
  _fees2Value(fees, witnesses) {
365
315
  return (BigInt(witnesses) *
366
- (this._fees2UnitaryReward(fees, witnesses) +
367
- 2n * this._fees2UnitaryCommitRevealReward(fees, witnesses)));
316
+ (this._fees2UnitaryReward(fees, witnesses) + 2n * this._fees2UnitaryCommitRevealReward(fees, witnesses)));
368
317
  }
369
318
  _toDrOutputProtobuf() {
370
319
  if (this._request) {
@@ -375,4 +324,4 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
375
324
  }
376
325
  }
377
326
  }
378
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVJlcXVlc3RQYXlsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vcGF5bG9hZHMvRGF0YVJlcXVlc3RQYXlsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRS9DLE9BQU8sUUFBUSxNQUFNLFlBQVksQ0FBQztBQUVsQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLFFBQVEsQ0FBQztBQUNyQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUNuQyxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FDL0MsQ0FBQztBQUVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFckUsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUluRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQ04sS0FBSyxFQUNMLGFBQWEsRUFFYixtQkFBbUIsR0FDbkIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFzQjlDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0FBQzlCLG1DQUFtQztBQUVuQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztBQUNoQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztBQUNoQyxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQztBQUUvQixNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBQztBQUM3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QyxDQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUVTLG1CQUFtQjtRQUM1QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixPQUFPO2dCQUNOLEdBQUcsSUFBSSxDQUFDLE1BQU07Z0JBQ2QsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFO2FBQ3ZDLENBQUM7UUFDSCxDQUFDO0lBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcbmltcG9ydCBMb25nIGZyb20gXCJsb25nXCI7XG5cbmNvbnN0IHJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7XG5cbmltcG9ydCBwcm90b2J1ZiBmcm9tIFwicHJvdG9idWZqc1wiO1xuXG5jb25zdCB7IFJvb3Q6IFByb3RvUm9vdCB9ID0gcHJvdG9idWY7XG5jb25zdCBwcm90b1Jvb3QgPSBQcm90b1Jvb3QuZnJvbUpTT04oXG5cdHJlcXVpcmUoXCIuLi8uLi8uLi8uLi93aXRuZXQvd2l0bmV0LnByb3RvLmpzb25cIiksXG4pO1xuXG5pbXBvcnQgeyBmcm9tSGV4U3RyaW5nLCB0b0hleFN0cmluZyB9IGZyb20gXCIuLi8uLi8uLi9iaW4vaGVscGVycy5qc1wiO1xuXG5pbXBvcnQgeyBSYWRvblJlcXVlc3QsIFJhZG9uVGVtcGxhdGUgfSBmcm9tIFwiLi4vLi4vcmFkb24vaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHsgSGFzaCwgSGV4U3RyaW5nLCBJSnNvblJwY1Byb3ZpZGVyIH0gZnJvbSBcIi4uLy4uL3R5cGVzLmpzXCI7XG5cbmltcG9ydCB0eXBlIHsgSUxlZGdlciB9IGZyb20gXCIuLi9pbnRlcmZhY2VzLmpzXCI7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblBheWxvYWRNdWx0aVNpZyB9IGZyb20gXCIuLi9wYXlsb2Fkcy5qc1wiO1xuaW1wb3J0IHtcblx0Q29pbnMsXG5cdFB1YmxpY0tleUhhc2gsXG5cdHR5cGUgVHJhbnNhY3Rpb25QYXJhbXMsXG5cdFRyYW5zYWN0aW9uUHJpb3JpdHksXG59IGZyb20gXCIuLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgQmlnTWF0aCwgc2hhMjU2IH0gZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCB0eXBlIERhdGFSZXF1ZXN0VGVtcGxhdGVBcmdzID0gYW55IHwgc3RyaW5nIHwgc3RyaW5nW10gfCBzdHJpbmdbXVtdO1xuXG5leHBvcnQgdHlwZSBEYXRhUmVxdWVzdE1ham9yaXR5ID0gXCJzaW1wbGVcIiB8IFwicXVhbGlmaWVkXCI7XG5cbmV4cG9ydCB0eXBlIERhdGFSZXF1ZXN0UGFyYW1zID0gVHJhbnNhY3Rpb25QYXJhbXMgJiB7XG5cdGFyZ3M/OiBEYXRhUmVxdWVzdFRlbXBsYXRlQXJncztcblx0bWFqb3JpdHlUeXBlPzogRGF0YVJlcXVlc3RNYWpvcml0eTtcblx0bWF4UmVzdWx0U2l6ZT86IG51bWJlcjtcblx0d2l0bmVzc2VzPzogbnVtYmVyO1xufTtcblxudHlwZSBEYXRhUmVxdWVzdE91dHB1dFNMQSA9IHtcblx0Y29sbGF0ZXJhbD86IG51bWJlcjtcblx0Y29tbWl0QW5kUmV2ZWFsRmVlPzogbnVtYmVyO1xuXHRtaW5Db25zZW5zdXNQZXJjZW50YWdlOiBudW1iZXI7XG5cdHdpdG5lc3NlczogbnVtYmVyO1xuXHR3aXRuZXNzUmV3YXJkOiBudW1iZXI7XG5cdG1heFJlc3VsdFNpemU/OiBudW1iZXI7XG59O1xuXG5jb25zdCBDT0xMQVRFUkFMX1JBVElPID0gMTAwbjtcbi8vIGNvbnN0IFJBRE9OX0VSUk9SX01BWF9CWVRFUyA9IDk7XG5cbmNvbnN0IERSX0NPTU1JVF9UWF9XRUlHSFQgPSA0MDA7XG5jb25zdCBEUl9SRVZFQUxfVFhfV0VJR0hUID0gMjAwO1xuY29uc3QgRFJfVEFMTFlfVFhfV0VJR0hUID0gMTAwO1xuXG5jb25zdCBEUl9UWF9XRUlHSFRfQUxQSEEgPSAxO1xuY29uc3QgRFJfVFhfV0VJR0hUX0JFVEEgPSAxO1xuXG5jb25zdCBUWF9XRUlHSFRfSU5QVVRfU0laRSA9IDEzMztcbmNvbnN0IFRYX1dFSUdIVF9PVVRQVVRfU0laRSA9IDM2O1xuXG5leHBvcnQgY2xhc3MgRGF0YVJlcXVlc3RQYXlsb2FkIGV4dGVuZHMgVHJhbnNhY3Rpb25QYXlsb2FkTXVsdGlTaWc8RGF0YVJlcXVlc3RQYXJhbXM+IHtcblx0cHVibGljIHN0YXRpYyBERUZBVUxUX01BWF9SRVNVTFRfU0laRSA9IDI1Njtcblx0cHVibGljIHN0YXRpYyBERUZBVUxUX1dJVE5FU1NFUyA9IDEyO1xuXHRwdWJsaWMgc3RhdGljIE1BWF9XRUlHSFQgPSA4MF8wMDA7XG5cdHB1YmxpYyBzdGF0aWMgTUlOX0NPTExBVEVSQUwgPSAyMF8wMDBfMDAwXzAwMG47XG5cblx0cHJvdGVjdGVkIF9yZXF1ZXN0PzogUmFkb25SZXF1ZXN0O1xuXHRwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGU/OiBSYWRvblRlbXBsYXRlO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByb3RvVHlwZU5hbWU6IHN0cmluZyxcblx0XHRyYWRvbjogUmFkb25SZXF1ZXN0IHwgUmFkb25UZW1wbGF0ZSxcblx0XHRpbml0aWFsVGFyZ2V0PzogRGF0YVJlcXVlc3RQYXJhbXMsXG5cdCkge1xuXHRcdHN1cGVyKHByb3RvVHlwZU5hbWUsIGluaXRpYWxUYXJnZXQpO1xuXHRcdGlmIChyYWRvbiBpbnN0YW5jZW9mIFJhZG9uUmVxdWVzdCkge1xuXHRcdFx0dGhpcy5fcmVxdWVzdCA9IHJhZG9uO1xuXHRcdH0gZWxzZSBpZiAocmFkb24gaW5zdGFuY2VvZiBSYWRvblRlbXBsYXRlKSB7XG5cdFx0XHR0aGlzLnRlbXBsYXRlID0gcmFkb247XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdGBEYXRhUmVxdWVzdFBheWxvYWQ6IHVuc3VwcG9ydGVkIFJhZG9uIGFzc2V0IHR5cGU6ICR7KHJhZG9uIGFzIGFueSk/LmNvbnN0cnVjdG9yLm5hbWV9YCxcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGdldCBkcm9IYXNoKCk6IEhhc2ggfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG9iaiA9IHRoaXMuX3RvRHJPdXRwdXRQcm90b2J1ZigpO1xuXHRcdGlmIChvYmopIHtcblx0XHRcdGNvbnN0IERhdGFSZXF1ZXN0T3V0cHV0ID0gcHJvdG9Sb290Lmxvb2t1cFR5cGUoXCJEYXRhUmVxdWVzdE91dHB1dFwiKTtcblx0XHRcdGNvbnN0IGVyciA9IERhdGFSZXF1ZXN0T3V0cHV0LnZlcmlmeShvYmopO1xuXHRcdFx0aWYgKGVycikge1xuXHRcdFx0XHR0aHJvdyBUeXBlRXJyb3IoZXJyKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKFwiXFxuZHJvSGFzaC5vYmogPT5cIiwgSlNPTi5zdHJpbmdpZnkob2JqKSlcblx0XHRcdFx0Y29uc3QgbWVzc2FnZSA9IERhdGFSZXF1ZXN0T3V0cHV0LmZyb21PYmplY3Qob2JqKTtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coXCJcXG5kcm9IYXNoLm1lc3NhZ2UgPT5cIiwgSlNPTi5zdHJpbmdpZnkobWVzc2FnZSkpXG5cdFx0XHRcdGNvbnN0IGJ5dGVjb2RlID0gRGF0YVJlcXVlc3RPdXRwdXQuZW5jb2RlKG1lc3NhZ2UpLmZpbmlzaCgpO1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhcIlxcbmRyb0hhc2guYnl0ZWNvZGUgPT5cIiwgYnl0ZWNvZGUpXG5cdFx0XHRcdHJldHVybiB0b0hleFN0cmluZyhzaGEyNTYoYnl0ZWNvZGUpKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZ2V0IGRyb1NMQSgpOiBEYXRhUmVxdWVzdE91dHB1dFNMQSB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKHRoaXMuX3RhcmdldCAmJiB0aGlzLl9mZWVzKSB7XG5cdFx0XHRjb25zdCBtaW5Db25zZW5zdXNQZXJjZW50YWdlID1cblx0XHRcdFx0dGhpcy5fdGFyZ2V0Lm1ham9yaXR5VHlwZSA9PT0gXCJxdWFsaWZpZWRcIiA/IDY2IDogNTE7XG5cdFx0XHRjb25zdCB3aXRuZXNzZXMgPVxuXHRcdFx0XHR0eXBlb2YgdGhpcy5fdGFyZ2V0LndpdG5lc3NlcyA9PT0gXCJvYmplY3RcIlxuXHRcdFx0XHRcdD8gT2JqZWN0LmtleXModGhpcy5fdGFyZ2V0LndpdG5lc3NlcykubGVuZ3RoXG5cdFx0XHRcdFx0OiB0aGlzLl90YXJnZXQud2l0bmVzc2VzIHx8IDA7XG5cdFx0XHRjb25zdCB3aXRuZXNzUmV3YXJkID0gdGhpcy5fZmVlczJVbml0YXJ5UmV3YXJkKHRoaXMuX2ZlZXMsIHdpdG5lc3Nlcyk7XG5cdFx0XHRjb25zdCBjb21taXRBbmRSZXZlYWxGZWUgPSB0aGlzLl9mZWVzMlVuaXRhcnlDb21taXRSZXZlYWxSZXdhcmQoXG5cdFx0XHRcdHRoaXMuX2ZlZXMsXG5cdFx0XHRcdHdpdG5lc3Nlcyxcblx0XHRcdCk7IC8vTWF0aC5mbG9vcihOdW1iZXIod2l0bmVzc1Jld2FyZCAvIEJpZ0ludCh3aXRuZXNzZXMpKSkgLy8gVE9ETzogemVyb2Z5IGlmIHByb3RvY29sID49IFYyXzFcblx0XHRcdGNvbnN0IGNvbGxhdGVyYWwgPSB3aXRuZXNzUmV3YXJkICogQ09MTEFURVJBTF9SQVRJTzsgLy8gVE9ETzogemVyb2Z5IGlmIHByb3RvY29sID49IFYyXzFcblx0XHRcdGlmIChjb2xsYXRlcmFsID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpXG5cdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogZXhjZXNzaXZlIHdpdG5lc3MgY29sbGF0ZXJhbDogJHtjb2xsYXRlcmFsLnRvU3RyaW5nKCl9ID4gJHtOdW1iZXIuTUFYX1NBRkVfSU5URUdFUn1gLFxuXHRcdFx0XHQpO1xuXHRcdFx0ZWxzZSBpZiAod2l0bmVzc1Jld2FyZCA+IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKVxuXHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFxuXHRcdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGV4Y2Vzc2l2ZSB3aXRuZXNzIHJld2FyZDogJHt3aXRuZXNzUmV3YXJkLnRvU3RyaW5nKCl9ID4gJHtOdW1iZXIuTUFYX1NBRkVfSU5URUdFUn1gLFxuXHRcdFx0XHQpO1xuXHRcdFx0ZWxzZSBpZiAoY29tbWl0QW5kUmV2ZWFsRmVlID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpXG5cdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogZXhjZXNzaXZlIGNvbW1pdC9yZXZlYWwgZmVlOiAke2NvbW1pdEFuZFJldmVhbEZlZS50b1N0cmluZygpfSA+ICR7TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJ9YCxcblx0XHRcdFx0KTtcblx0XHRcdC8vIFRPRE86IG9ubHkgd2hlbiBwcm90b2NvbCA+PSBWMl8xXG5cdFx0XHQvLyBsZXQgbWF4UmVzdWx0U2l6ZVxuXHRcdFx0Ly8gaWYgKHRoaXMucmVxdWVzdCkge1xuXHRcdFx0Ly8gICAgIGlmICh0aGlzLnJlcXVlc3Qud2l0bmVzc1JlZHVjZXIub3Bjb2RlID09PSBPcGNvZGVzLkNvbmNhdGVuYXRlQW5kSGFzaCkge1xuXHRcdFx0Ly8gICAgICAgICBpZiAodGhpcy5fdGFyZ2V0Py5tYXhSZXN1bHRTaXplICYmIHRoaXMuX3RhcmdldD8ubWF4UmVzdWx0U2l6ZSAhPT0gMzQpIHtcblx0XHRcdC8vICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogaW52YWxpZCBtYXggcmVzdWx0IHNpemUgKCR7dGhpcy5fdGFyZ2V0Py5tYXhSZXN1bHRTaXplfSkgZm9yIGEgY29uY2F0ZW5hdGUtYW5kLWhhc2ggb3V0cHV0LmApXG5cdFx0XHQvLyAgICAgICAgIH1cblx0XHRcdC8vICAgICB9IGVsc2Uge1xuXHRcdFx0Ly8gICAgICAgICBzd2l0Y2ggKHRoaXMucmVxdWVzdC5kYXRhVHlwZSkge1xuXHRcdFx0Ly8gICAgICAgICAgICAgY2FzZSBcIlJhZG9uQm9vbGVhblwiOlxuXHRcdFx0Ly8gICAgICAgICAgICAgY2FzZSBcIlJhZG9uSW50ZWdlclwiOlxuXHRcdFx0Ly8gICAgICAgICAgICAgY2FzZSBcIlJhZG9uRmxvYXRcIjpcblx0XHRcdC8vICAgICAgICAgICAgICAgICBpZiAodGhpcy5fdGFyZ2V0Py5tYXhSZXN1bHRTaXplICYmIHRoaXMuX3RhcmdldC5tYXhSZXN1bHRTaXplICE9PSBSQURPTl9FUlJPUl9NQVhfQllURVMpIHtcblx0XHRcdC8vICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnZhbGlkIG1heCByZXN1bHQgc2l6ZSAoJHtcblx0XHRcdC8vICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldC5tYXhSZXN1bHRTaXplXG5cdFx0XHQvLyAgICAgICAgICAgICAgICAgICAgICAgICB9IGJ5dGVzKSBmb3IgZXhwZWN0ZWQgcmVzdWx0IHR5cGUgKCR7dGhpcy5yZXF1ZXN0LmRhdGFUeXBlfSlgKVxuXHRcdFx0Ly8gICAgICAgICAgICAgICAgIH1cblx0XHRcdC8vICAgICAgICAgICAgICAgICBicmVhaztcblx0XHRcdC8vICAgICAgICAgICAgIGRlZmF1bHQ6XG5cdFx0XHQvLyAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3RhcmdldD8ubWF4UmVzdWx0U2l6ZSAmJiB0aGlzLl90YXJnZXQubWF4UmVzdWx0U2l6ZSA8IFJBRE9OX0VSUk9SX01BWF9CWVRFUykge1xuXHRcdFx0Ly8gICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGludmFsaWQgbWF4IHJlc3VsdCBzaXplICgke1xuXHRcdFx0Ly8gICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0Lm1heFJlc3VsdFNpemVcblx0XHRcdC8vICAgICAgICAgICAgICAgICAgICAgICAgIH0gYnl0ZXMpIGZvciB2YXJpYW50IHJlc3VsdCB0eXBlICgke3RoaXMucmVxdWVzdC5kYXRhVHlwZX0pYClcblx0XHRcdC8vICAgICAgICAgICAgICAgICB9XG5cdFx0XHQvLyAgICAgICAgICAgICAgICAgbWF4UmVzdWx0U2l6ZSA9IHRoaXMuX3RhcmdldD8ubWF4UmVzdWx0U2l6ZSB8fCBEYXRhUmVxdWVzdFBheWxvYWQuREVGQVVMVF9NQVhfUkVTVUxUX1NJWkVcblx0XHRcdC8vICAgICAgICAgfVxuXHRcdFx0Ly8gICAgIH1cblx0XHRcdC8vIH1cblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGNvbGxhdGVyYWw6IE51bWJlcihjb2xsYXRlcmFsKSxcblx0XHRcdFx0Y29tbWl0QW5kUmV2ZWFsRmVlOiBOdW1iZXIoY29tbWl0QW5kUmV2ZWFsRmVlKSxcblx0XHRcdFx0Ly8gbWF4UmVzdWx0U2l6ZSwgVE9ETzogb25seSBpZiBwcm90b2NvbCA+PSBWMl8xXG5cdFx0XHRcdG1pbkNvbnNlbnN1c1BlcmNlbnRhZ2UsXG5cdFx0XHRcdHdpdG5lc3Nlcyxcblx0XHRcdFx0d2l0bmVzc1Jld2FyZDogTnVtYmVyKHdpdG5lc3NSZXdhcmQpLFxuXHRcdFx0fTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZ2V0IGhhc2goKTogSGFzaCB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgX2J5dGVjb2RlID0gdGhpcy5ieXRlY29kZTtcblx0XHRpZiAoX2J5dGVjb2RlICYmIHRoaXMuZHJvSGFzaCkge1xuXHRcdFx0cmV0dXJuIHRvSGV4U3RyaW5nKFxuXHRcdFx0XHRzaGEyNTYoQnVmZmVyLmNvbmNhdChbZnJvbUhleFN0cmluZyh0aGlzLmRyb0hhc2gpLCBzaGEyNTYoX2J5dGVjb2RlKV0pKSxcblx0XHRcdCkgYXMgSGFzaDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZ2V0IG1heFdlaWdodCgpOiBudW1iZXIge1xuXHRcdHJldHVybiBEYXRhUmVxdWVzdFBheWxvYWQuTUFYX1dFSUdIVDtcblx0fVxuXG5cdHB1YmxpYyBnZXQgcGFyYW1ldGVyaXplZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gISF0aGlzLnRlbXBsYXRlO1xuXHR9XG5cblx0cHVibGljIGdldCBwcmVwYXJlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0dGhpcy5jb3ZlcmVkICYmXG5cdFx0XHR0aGlzLl9pbnB1dHMubGVuZ3RoID4gMCAmJlxuXHRcdFx0ISF0aGlzLl9yZXF1ZXN0ICYmXG5cdFx0XHQhIXRoaXMuX3RhcmdldFxuXHRcdCk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHJhZEFyZ3MoKTogRGF0YVJlcXVlc3RUZW1wbGF0ZUFyZ3MgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLnRlbXBsYXRlID8gdGhpcy5fdGFyZ2V0Py5hcmdzIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0cHVibGljIGdldCByYWRIYXNoKCk6IEhleFN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMucmVxdWVzdD8ucmFkSGFzaDtcblx0fVxuXG5cdHB1YmxpYyBnZXQgcmVxdWVzdCgpOiBSYWRvblJlcXVlc3QgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLl9yZXF1ZXN0O1xuXHR9XG5cblx0cHVibGljIGdldCB2YWx1ZSgpOiBDb2lucyB7XG5cdFx0aWYgKHRoaXMuX3RhcmdldCAmJiB0aGlzLl9mZWVzKSB7XG5cdFx0XHRyZXR1cm4gQ29pbnMuZnJvbVBlZHJvcyhcblx0XHRcdFx0dGhpcy5fZmVlczJWYWx1ZSh0aGlzLl9mZWVzLCB0aGlzLl90YXJnZXQud2l0bmVzc2VzIHx8IDApLFxuXHRcdFx0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIENvaW5zLnplcm8oKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHdlaWdodCgpOiBudW1iZXIge1xuXHRcdGlmICh0aGlzLl9yZXF1ZXN0ICYmIHRoaXMuX3RhcmdldCkge1xuXHRcdFx0Y29uc3Qgd2l0bmVzc2VzID1cblx0XHRcdFx0dHlwZW9mIHRoaXMuX3RhcmdldC53aXRuZXNzZXMgPT09IFwib2JqZWN0XCJcblx0XHRcdFx0XHQ/IE9iamVjdC5rZXlzKHRoaXMuX3RhcmdldC53aXRuZXNzZXMpLmxlbmd0aFxuXHRcdFx0XHRcdDogdGhpcy5fdGFyZ2V0LndpdG5lc3NlcyB8fCAwO1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0RFJfVFhfV0VJR0hUX0FMUEhBICogKHRoaXMuX3JlcXVlc3Qud2VpZ2h0KCkgKyA4ICsgMiArIDggKyA0ICsgOCksXG5cdFx0XHRcdCt0aGlzLl9pbnB1dHMubGVuZ3RoICogVFhfV0VJR0hUX0lOUFVUX1NJWkUgK1xuXHRcdFx0XHRcdHRoaXMuX291dHB1dHMubGVuZ3RoICogVFhfV0VJR0hUX09VVFBVVF9TSVpFICtcblx0XHRcdFx0XHR3aXRuZXNzZXMgKlxuXHRcdFx0XHRcdFx0KERSX0NPTU1JVF9UWF9XRUlHSFQgK1xuXHRcdFx0XHRcdFx0XHREUl9SRVZFQUxfVFhfV0VJR0hUICogRFJfVFhfV0VJR0hUX0JFVEEgK1xuXHRcdFx0XHRcdFx0XHRUWF9XRUlHSFRfT1VUUFVUX1NJWkUpICsgLy8gVE9ETyBWMi4xOiB0eXBlb2YgdGhpcy5fdGFyZ2V0LndpdG5lc3NlcyA9PT0gJ29iamVjdCcgPyBUWF9XRUlHSFRfT1VUUFVUX1NJWkUgOiAwXG5cdFx0XHRcdFx0TWF0aC5tYXgoRFJfVEFMTFlfVFhfV0VJR0hULCB0aGlzLl90YXJnZXQ/Lm1heFJlc3VsdFNpemUgfHwgMCkgKlxuXHRcdFx0XHRcdFx0RFJfVFhfV0VJR0hUX0JFVEFcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiAwO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBhc3luYyBjb25zdW1lVXR4b3MoXG5cdFx0bGVkZ2VyOiBJTGVkZ2VyLFxuXHRcdHJlbG9hZD86IGJvb2xlYW4sXG5cdCk6IFByb21pc2U8YmlnaW50PiB7XG5cdFx0aWYgKCF0aGlzLl90YXJnZXQpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogaW50ZXJuYWwgZXJyb3I6IG5vIGluLWZsaWdodCBwYXJhbXMuYCxcblx0XHRcdCk7XG5cdFx0fSBlbHNlIGlmICgodGhpcy5fdGFyZ2V0IGFzIGFueSk/LmZlZXMgaW5zdGFuY2VvZiBDb2lucykge1xuXHRcdFx0dGhpcy5fZmVlcyA9ICh0aGlzLl90YXJnZXQgYXMgYW55KS5mZWVzLnBlZHJvcztcblx0XHRcdHJldHVybiBzdXBlci5jb25zdW1lVXR4b3MobGVkZ2VyLCByZWxvYWQpO1xuXHRcdH1cblxuXHRcdGlmICghdGhpcy5jb3ZlcmVkKSB7XG5cdFx0XHRpZiAoIXRoaXMuX3RhcmdldC53aXRuZXNzZXMpIHtcblx0XHRcdFx0dGhpcy5fdGFyZ2V0LndpdG5lc3NlcyA9IE1hdGgubWluKFxuXHRcdFx0XHRcdERhdGFSZXF1ZXN0UGF5bG9hZC5ERUZBVUxUX1dJVE5FU1NFUyxcblx0XHRcdFx0XHRhd2FpdCBsZWRnZXIucHJvdmlkZXIud2l0bmVzc2VzKCksXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGlmICh0aGlzLl90YXJnZXQud2l0bmVzc2VzIDwgMykge1xuXHRcdFx0XHRcdGRlbGV0ZSB0aGlzLl90YXJnZXQud2l0bmVzc2VzO1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGNhbm5vdCBlc3RpbWF0ZSB3aXRuZXNzZXM6IG5ldHdvcmsgbm90IHJlYWR5IGZvciB3aXRuZXNzaW5nLmAsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLndlaWdodCA+IERhdGFSZXF1ZXN0UGF5bG9hZC5NQVhfV0VJR0hUICogMC44KSB7XG5cdFx0XHRcdFx0Y29uc3QgZGVsdGEgPSB0aGlzLndlaWdodCAtIERhdGFSZXF1ZXN0UGF5bG9hZC5NQVhfV0VJR0hUICogMC44O1xuXHRcdFx0XHRcdHRoaXMuX3RhcmdldC53aXRuZXNzZXMgLT0gTWF0aC5jZWlsKFxuXHRcdFx0XHRcdFx0ZGVsdGEgL1xuXHRcdFx0XHRcdFx0XHQoRFJfQ09NTUlUX1RYX1dFSUdIVCArXG5cdFx0XHRcdFx0XHRcdFx0RFJfUkVWRUFMX1RYX1dFSUdIVCAqIFRYX1dFSUdIVF9PVVRQVVRfU0laRSksXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRpZiAodGhpcy5fdGFyZ2V0LndpdG5lc3NlcyA8IDMpIHtcblx0XHRcdFx0XHRcdGRlbGV0ZSB0aGlzLl90YXJnZXQud2l0bmVzc2VzO1xuXHRcdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFxuXHRcdFx0XHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBjYW5ub3QgZXN0aW1hdGUgd2l0bmVzc2VzOiByYWRvbiByZXF1ZXN0IHRvbyBoZWF2eTogJHt0aGlzLndlaWdodH0gd2VpZ2h0IHVuaXRzYCxcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBwcmlvcml0eSA9XG5cdFx0XHRcdCgodGhpcy5fdGFyZ2V0IGFzIGFueSk/LmZlZXMgYXMgVHJhbnNhY3Rpb25Qcmlvcml0eSkgfHxcblx0XHRcdFx0VHJhbnNhY3Rpb25Qcmlvcml0eS5PcHVsZW50O1xuXHRcdFx0bGV0IGVzdGltYXRlZEZlZXMgPSBhd2FpdCB0aGlzLl9lc3RpbWF0ZU5ldHdvcmtGZWVzKFxuXHRcdFx0XHRsZWRnZXIucHJvdmlkZXIsXG5cdFx0XHRcdHByaW9yaXR5LFxuXHRcdFx0KTtcblx0XHRcdHdoaWxlICh0aGlzLl9mZWVzIDwgZXN0aW1hdGVkRmVlcyAmJiB0aGlzLl9jaGFuZ2UgPj0gMCkge1xuXHRcdFx0XHR0aGlzLl9mZWVzID0gZXN0aW1hdGVkRmVlcztcblx0XHRcdFx0dGhpcy5fb3V0cHV0cyA9IFtdO1xuXHRcdFx0XHQvLyBjb25zdW1lIHV0eG9zIGFzIHRvIGNvdmVyIGZvciBlc3RpbWF0ZWQgdmFsdWUgYW5kIGVzdGltYXRlZCBmZWVzXG5cdFx0XHRcdGNvbnN0IHZhbHVlID0gdGhpcy5fZmVlczJWYWx1ZSh0aGlzLl9mZWVzLCB0aGlzLl90YXJnZXQud2l0bmVzc2VzKTtcblx0XHRcdFx0aWYgKHRoaXMuX2NvdmVyZWQgPCB0aGlzLnZhbHVlLnBlZHJvcyArIHRoaXMuX2ZlZXMpIHtcblx0XHRcdFx0XHRjb25zdCB1dHhvcyA9IGF3YWl0IGxlZGdlci5zZWxlY3RVdHhvcyh7XG5cdFx0XHRcdFx0XHR2YWx1ZTogQ29pbnMuZnJvbVBlZHJvcyh2YWx1ZSArIHRoaXMuX2ZlZXMgLSB0aGlzLl9jb3ZlcmVkKSxcblx0XHRcdFx0XHRcdHJlbG9hZCxcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRjb25zdCBleHRyYSA9IHV0eG9zXG5cdFx0XHRcdFx0XHQubWFwKCh1dHhvKSA9PiBCaWdJbnQodXR4by52YWx1ZSkpXG5cdFx0XHRcdFx0XHQucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBwcmV2ICsgY3VyciwgMG4pO1xuXHRcdFx0XHRcdHRoaXMuX2NvdmVyZWQgKz0gZXh0cmE7XG5cdFx0XHRcdFx0dGhpcy5faW5wdXRzLnB1c2goLi4udXR4b3MpO1xuXHRcdFx0XHRcdGxlZGdlci5jb25zdW1lVXR4b3MoLi4udXR4b3MpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuX2NoYW5nZSA9IHRoaXMuX2NvdmVyZWQgLSAodmFsdWUgKyB0aGlzLl9mZWVzKTtcblx0XHRcdFx0aWYgKHRoaXMuX2NoYW5nZSA+PSAwKSB7XG5cdFx0XHRcdFx0dGhpcy5wcmVwYXJlT3V0cHV0cyh7IHZhbHVlOiB0aGlzLl9jaGFuZ2UgfSk7XG5cdFx0XHRcdFx0ZXN0aW1hdGVkRmVlcyA9IGF3YWl0IHRoaXMuX2VzdGltYXRlTmV0d29ya0ZlZXMoXG5cdFx0XHRcdFx0XHRsZWRnZXIucHJvdmlkZXIsXG5cdFx0XHRcdFx0XHRwcmlvcml0eSxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLl9jaGFuZ2U7XG5cdH1cblxuXHRwdWJsaWMgaW50b1JlY2VpcHQodGFyZ2V0OiBEYXRhUmVxdWVzdFBhcmFtcyk6IGFueSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGRyb0hhc2g6IHRoaXMuZHJvSGFzaCxcblx0XHRcdHJhZEFyZ3M6IHRoaXMucmFkQXJncyxcblx0XHRcdHJhZEhhc2g6IHRoaXMucmFkSGFzaCxcblx0XHRcdHdpdG5lc3NlczogdGFyZ2V0LndpdG5lc3Nlcyxcblx0XHR9O1xuXHR9XG5cblx0cHVibGljIHByZXBhcmVPdXRwdXRzKGNoYW5nZT86IHsgdmFsdWU6IGJpZ2ludCB9KTogYW55IHtcblx0XHRpZiAoY2hhbmdlPy52YWx1ZSkge1xuXHRcdFx0dGhpcy5fb3V0cHV0cy5wdXNoKHtcblx0XHRcdFx0cGtoOiB0aGlzLl9pbnB1dHNbMF0uc2lnbmVyLFxuXHRcdFx0XHR2YWx1ZTogY2hhbmdlLnZhbHVlLFxuXHRcdFx0XHR0aW1lX2xvY2s6IDAsXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgcmVzZXRUYXJnZXQodGFyZ2V0OiBEYXRhUmVxdWVzdFBhcmFtcyk6IGFueSB7XG5cdFx0dGhpcy5fY2hhbmdlID0gMG47XG5cdFx0dGhpcy5fY292ZXJlZCA9IDBuO1xuXHRcdHRoaXMuX2ZlZXMgPSAwbjtcblx0XHR0aGlzLl9pbnB1dHMgPSBbXTtcblx0XHR0aGlzLl9vdXRwdXRzID0gW107XG5cdFx0dGhpcy5fdGFyZ2V0ID0gdGFyZ2V0O1xuXHRcdGlmIChcblx0XHRcdHRoaXMuZHJvU0xBPy5jb2xsYXRlcmFsICYmXG5cdFx0XHR0aGlzLmRyb1NMQS5jb2xsYXRlcmFsIDwgRGF0YVJlcXVlc3RQYXlsb2FkLk1JTl9DT0xMQVRFUkFMXG5cdFx0KSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiB3aXRuZXNzaW5nIGNvbGxhdGVyYWwgYmVsb3cgbWluaW11bTogJHtcblx0XHRcdFx0XHR0aGlzLmRyb1NMQS5jb2xsYXRlcmFsXG5cdFx0XHRcdH0gPCAke0RhdGFSZXF1ZXN0UGF5bG9hZC5NSU5fQ09MTEFURVJBTH1gLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0aWYgKHRoaXMudGVtcGxhdGUpIHtcblx0XHRcdGNvbnN0IGFyZ3MgPSB0YXJnZXQ/LmFyZ3M7XG5cdFx0XHRpZiAoYXJncyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogbm8gdGVtcGxhdGUgYXJncyB3ZXJlIHBhc3NlZC5gLFxuXHRcdFx0XHQpO1xuXHRcdFx0fSBlbHNlIGlmICh0eXBlb2YgYXJncyA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0XHR0aGlzLl9yZXF1ZXN0ID0gdGhpcy50ZW1wbGF0ZS5idWlsZFJhZG9uUmVxdWVzdChbYXJnc10pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5fcmVxdWVzdCA9IHRoaXMudGVtcGxhdGUuYnVpbGRSYWRvblJlcXVlc3QoYXJncyk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGRlbGV0ZSB0aGlzLl9wcmlvcml0aWVzO1xuXHR9XG5cblx0cHVibGljIHRvSlNPTihodW1hbml6ZSA9IGZhbHNlKTogYW55IHtcblx0XHRjb25zdCBkcm9TTEEgPSB0aGlzLmRyb1NMQTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0aW5wdXRzOiB0aGlzLmlucHV0cy5tYXAoKHV0eG8pID0+ICh7XG5cdFx0XHRcdG91dHB1dF9wb2ludGVyOiB1dHhvLm91dHB1dF9wb2ludGVyLFxuXHRcdFx0fSkpLFxuXHRcdFx0b3V0cHV0czogdGhpcy5vdXRwdXRzLm1hcCgodnRvKSA9PiAoe1xuXHRcdFx0XHRwa2g6IHZ0by5wa2gsXG5cdFx0XHRcdHRpbWVfbG9jazogdnRvLnRpbWVfbG9jayxcblx0XHRcdFx0dmFsdWU6IHZ0by52YWx1ZS50b1N0cmluZygpLFxuXHRcdFx0fSkpLFxuXHRcdFx0ZHJfb3V0cHV0OiB7XG5cdFx0XHRcdC4uLih0aGlzLl9yZXF1ZXN0XG5cdFx0XHRcdFx0PyB7IGRhdGFfcmVxdWVzdDogdGhpcy5fcmVxdWVzdC50b0pTT04oaHVtYW5pemUpIH1cblx0XHRcdFx0XHQ6IHt9KSxcblx0XHRcdFx0Y29tbWl0X2FuZF9yZXZlYWxfZmVlOiBkcm9TTEE/LmNvbW1pdEFuZFJldmVhbEZlZSxcblx0XHRcdFx0bWluX2NvbnNlbnN1c19wZXJjZW50YWdlOiBkcm9TTEE/Lm1pbkNvbnNlbnN1c1BlcmNlbnRhZ2UsXG5cdFx0XHRcdHdpdG5lc3NlczogZHJvU0xBPy53aXRuZXNzZXMsXG5cdFx0XHRcdHdpdG5lc3NfcmV3YXJkOiBkcm9TTEE/LndpdG5lc3NSZXdhcmQsXG5cdFx0XHRcdGNvbGxhdGVyYWw6IGRyb1NMQT8uY29sbGF0ZXJhbCxcblx0XHRcdH0sXG5cdFx0fTtcblx0fVxuXG5cdHB1YmxpYyB0b1Byb3RvYnVmKCk6IGFueSB7XG5cdFx0aWYgKHRoaXMucHJlcGFyZWQgJiYgdGhpcy5fdGFyZ2V0ICYmIHRoaXMuX3JlcXVlc3QpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGlucHV0czogdGhpcy5pbnB1dHMubWFwKCh1dHhvKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgdHJhbnNhY3Rpb25JZCA9IHV0eG8ub3V0cHV0X3BvaW50ZXIuc3BsaXQoXCI6XCIpWzBdO1xuXHRcdFx0XHRcdGNvbnN0IG91dHB1dEluZGV4ID0gcGFyc2VJbnQodXR4by5vdXRwdXRfcG9pbnRlci5zcGxpdChcIjpcIilbMV0sIDEwKTtcblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0b3V0cHV0UG9pbnRlcjoge1xuXHRcdFx0XHRcdFx0XHR0cmFuc2FjdGlvbklkOiB7XG5cdFx0XHRcdFx0XHRcdFx0U0hBMjU2OiBBcnJheS5mcm9tKGZyb21IZXhTdHJpbmcodHJhbnNhY3Rpb25JZCkpLFxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHQuLi4ob3V0cHV0SW5kZXggPiAwID8geyBvdXRwdXRJbmRleCB9IDoge30pLFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9KSxcblx0XHRcdFx0b3V0cHV0czogdGhpcy5vdXRwdXRzLm1hcCgodnRvKSA9PiAoe1xuXHRcdFx0XHRcdHBraDoge1xuXHRcdFx0XHRcdFx0aGFzaDogQXJyYXkuZnJvbShQdWJsaWNLZXlIYXNoLmZyb21CZWNoMzIodnRvLnBraCkudG9CeXRlczIwKCkpLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0dmFsdWU6IExvbmcuZnJvbVZhbHVlKHZ0by52YWx1ZSksXG5cdFx0XHRcdFx0Li4uKHZ0by50aW1lX2xvY2sgPiAwID8geyB0aW1lTG9jazogdnRvLnRpbWVfbG9jayB9IDoge30pLFxuXHRcdFx0XHR9KSksXG5cdFx0XHRcdGRyT3V0cHV0OiB0aGlzLl90b0RyT3V0cHV0UHJvdG9idWYoKSxcblx0XHRcdH07XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIHZhbGlkYXRlVGFyZ2V0KHRhcmdldD86IGFueSk6IERhdGFSZXF1ZXN0UGFyYW1zIHwgdW5kZWZpbmVkIHtcblx0XHR0YXJnZXQgPSB0aGlzLl9jbGVhblRhcmdldEV4dHJhcyh0YXJnZXQpO1xuXHRcdGlmICh0YXJnZXQgJiYgT2JqZWN0LmtleXModGFyZ2V0KS5sZW5ndGggPiAwKSB7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdCEoXG5cdFx0XHRcdFx0dGFyZ2V0ICYmXG5cdFx0XHRcdFx0KCF0YXJnZXQ/LmZlZXMgfHxcblx0XHRcdFx0XHRcdCh0YXJnZXQuZmVlcyBpbnN0YW5jZW9mIENvaW5zICYmXG5cdFx0XHRcdFx0XHRcdCh0YXJnZXQuZmVlcyBhcyBDb2lucykucGVkcm9zID4gMCkgfHxcblx0XHRcdFx0XHRcdE9iamVjdC52YWx1ZXMoVHJhbnNhY3Rpb25Qcmlvcml0eSkuaW5jbHVkZXModGFyZ2V0LmZlZXMpKSAmJlxuXHRcdFx0XHRcdCh0YXJnZXQ/LndpdG5lc3NlcyB8fCB0YXJnZXQ/LndpdG5lc3NlcyA9PT0gdW5kZWZpbmVkKSAmJlxuXHRcdFx0XHRcdCghdGhpcy50ZW1wbGF0ZSB8fCB0YXJnZXQ/LmFyZ3MpXG5cdFx0XHRcdClcblx0XHRcdCkge1xuXHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFxuXHRcdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGludmFsaWQgb3B0aW9uczogJHtKU09OLnN0cmluZ2lmeSh0YXJnZXQpfWAsXG5cdFx0XHRcdCk7XG5cdFx0XHR9IGVsc2UgaWYgKHRhcmdldD8ud2l0bmVzc2VzKSB7XG5cdFx0XHRcdGlmICh0eXBlb2YgdGFyZ2V0LndpdG5lc3NlcyA9PT0gXCJvYmplY3RcIikge1xuXHRcdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBleHBsaWNpdCB3aXRuZXNzaW5nIGNvbW1pdHRlZXMgbm90IHlldCBzdXBwb3J0ZWQ6ICR7dGFyZ2V0LndpdG5lc3Nlc31gLFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGFyZ2V0LndpdG5lc3NlcyA9IHBhcnNlSW50KHRhcmdldC53aXRuZXNzZXMgYXMgc3RyaW5nLCAxMCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdGFyZ2V0IGFzIERhdGFSZXF1ZXN0UGFyYW1zO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBfY2xlYW5UYXJnZXRFeHRyYXModGFyZ2V0PzogYW55KTogYW55IHtcblx0XHRpZiAodGFyZ2V0KSB7XG5cdFx0XHRyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRPYmplY3QuZW50cmllcyh0YXJnZXQpLmZpbHRlcigoW2tleV0pID0+XG5cdFx0XHRcdFx0W1wiYXJnc1wiLCBcImZlZXNcIiwgXCJtYXhSZXN1bHRTaXplXCIsIFwid2l0bmVzc2VzXCJdLmluY2x1ZGVzKGtleSksXG5cdFx0XHRcdCksXG5cdFx0XHQpO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBhc3luYyBfZXN0aW1hdGVOZXR3b3JrRmVlcyhcblx0XHRwcm92aWRlcjogSUpzb25ScGNQcm92aWRlcixcblx0XHRwcmlvcml0eSA9IFRyYW5zYWN0aW9uUHJpb3JpdHkuTWVkaXVtLFxuXHQpOiBQcm9taXNlPGJpZ2ludD4ge1xuXHRcdHRoaXMuX3ByaW9yaXRpZXMgPSBhd2FpdCBwcm92aWRlci5wcmlvcml0aWVzKCk7XG5cdFx0cmV0dXJuIEJpZ0ludChcblx0XHRcdE1hdGguZmxvb3IoXG5cdFx0XHRcdHRoaXMuX3ByaW9yaXRpZXNbYGRydF8ke3ByaW9yaXR5fWBdLnByaW9yaXR5ICpcblx0XHRcdFx0XHQodGhpcy5jb3ZlcmVkXG5cdFx0XHRcdFx0XHQ/IHRoaXMud2VpZ2h0XG5cdFx0XHRcdFx0XHQ6IHRoaXMud2VpZ2h0ICtcblx0XHRcdFx0XHRcdFx0Ly8gZXN0aW1hdGUgd2VpZ2h0IG9mIG9uZSBzaW5nbGUgb3V0cHV0IGluIGNhc2UgdGhlcmUgd2FzIGNoYW5nZSB0byBwYXkgYmFja1xuXHRcdFx0XHRcdFx0XHRUWF9XRUlHSFRfT1VUUFVUX1NJWkUpLFxuXHRcdFx0KSxcblx0XHQpO1xuXHR9XG5cblx0cHJvdGVjdGVkIF9mZWVzMlVuaXRhcnlDb21taXRSZXZlYWxSZXdhcmQoXG5cdFx0ZmVlczogYmlnaW50LFxuXHRcdHdpdG5lc3NlczogbnVtYmVyLFxuXHQpOiBiaWdpbnQge1xuXHRcdHJldHVybiBmZWVzIC8gQmlnSW50KHdpdG5lc3NlcykgfHwgMW47XG5cdH1cblxuXHRwcm90ZWN0ZWQgX2ZlZXMyVW5pdGFyeVJld2FyZChmZWVzOiBiaWdpbnQsIF93aXRuZXNzZXM6IG51bWJlcik6IGJpZ2ludCB7XG5cdFx0cmV0dXJuIEJpZ01hdGgubWF4KFxuXHRcdFx0ZmVlcyxcblx0XHRcdEJpZ0ludChcblx0XHRcdFx0TWF0aC5jZWlsKE51bWJlcihEYXRhUmVxdWVzdFBheWxvYWQuTUlOX0NPTExBVEVSQUwgLyBDT0xMQVRFUkFMX1JBVElPKSksXG5cdFx0XHQpLFxuXHRcdCk7XG5cdH1cblx0cHJvdGVjdGVkIF9mZWVzMlZhbHVlKGZlZXM6IGJpZ2ludCwgd2l0bmVzc2VzOiBudW1iZXIpOiBiaWdpbnQge1xuXHRcdHJldHVybiAoXG5cdFx0XHRCaWdJbnQod2l0bmVzc2VzKSAqXG5cdFx0XHQodGhpcy5fZmVlczJVbml0YXJ5UmV3YXJkKGZlZXMsIHdpdG5lc3NlcykgK1xuXHRcdFx0XHQybiAqIHRoaXMuX2ZlZXMyVW5pdGFyeUNvbW1pdFJldmVhbFJld2FyZChmZWVzLCB3aXRuZXNzZXMpKVxuXHRcdCk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgX3RvRHJPdXRwdXRQcm90b2J1ZigpOiBhbnkge1xuXHRcdGlmICh0aGlzLl9yZXF1ZXN0KSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHQuLi50aGlzLmRyb1NMQSxcblx0XHRcdFx0ZGF0YVJlcXVlc3Q6IHRoaXMuX3JlcXVlc3QudG9Qcm90b2J1ZigpLFxuXHRcdFx0fTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
327
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVJlcXVlc3RQYXlsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vcGF5bG9hZHMvRGF0YVJlcXVlc3RQYXlsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRS9DLE9BQU8sUUFBUSxNQUFNLFlBQVksQ0FBQztBQUVsQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLFFBQVEsQ0FBQztBQUNyQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDLENBQUM7QUFFdEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSW5FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUEwQixtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWtCOUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7QUFDOUIsbUNBQW1DO0FBRW5DLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0FBQ2hDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0FBQ2hDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0FBRS9CLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0FBQzdCLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBRTVCLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBQ2pDLE1BQU0scUJBQXFCLEdBQUcsRUFBRSxDQUFDO0FBRWpDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSwwQkFBNkM7SUFDN0UsTUFBTSxDQUFDLHVCQUF1QixHQUFHLEdBQUcsQ0FBQztJQUNyQyxNQUFNLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO0lBQzNCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsWUFBZSxDQUFDO0lBQ3hDLE1BQU0sQ0FBQyx3QkFBd0IsR0FBRyxFQUFFLENBQUM7SUFFbEMsUUFBUSxDQUFnQjtJQUNsQixRQUFRLENBQWlCO0lBRXpDLFlBQVksYUFBcUIsRUFBRSxLQUFtQyxFQUFFLGFBQWlDO1FBQ3hHLEtBQUssQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDcEMsSUFBSSxLQUFLLFlBQVksWUFBWSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQzthQUFNLElBQUksS0FBSyxZQUFZLGFBQWEsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxDQUFDO1lBQ1AsTUFBTSxJQUFJLFNBQVMsQ0FBQyxxREFBc0QsS0FBYSxFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlHLENBQUM7SUFDRixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3ZDLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVCxNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNwRSxNQUFNLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDVCxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsdURBQXVEO2dCQUN2RCxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xELCtEQUErRDtnQkFDL0QsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM1RCxpREFBaUQ7Z0JBQ2pELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDRixDQUFDO2FBQU0sQ0FBQztZQUNQLE9BQU8sU0FBUyxDQUFDO1FBQ2xCLENBQUM7SUFDRixDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2hCLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEMsTUFBTSxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQyx3QkFBd0IsQ0FBQztZQUMzRSxNQUFNLFNBQVMsR0FDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxLQUFLLFFBQVE7Z0JBQ3pDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTTtnQkFDNUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQztZQUNoQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN0RSxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsMkZBQTJGO1lBQ25MLE1BQU0sVUFBVSxHQUFHLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLG1DQUFtQztZQUN4RixJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsZ0JBQWdCO2dCQUN2QyxNQUFNLElBQUksU0FBUyxDQUNsQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxtQ0FBbUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUMvRyxDQUFDO2lCQUNFLElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0I7Z0JBQy9DLE1BQU0sSUFBSSxTQUFTLENBQ2xCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLCtCQUErQixhQUFhLENBQUMsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQzlHLENBQUM7aUJBQ0UsSUFBSSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCO2dCQUNwRCxNQUFNLElBQUksU0FBUyxDQUNsQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxrQ0FBa0Msa0JBQWtCLENBQUMsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQ3RILENBQUM7WUFDSCxPQUFPO2dCQUNOLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUM5QixrQkFBa0IsRUFBRSxNQUFNLENBQUMsa0JBQWtCLENBQUM7Z0JBQzlDLHNCQUFzQjtnQkFDdEIsU0FBUztnQkFDVCxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQzthQUNwQyxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDUCxPQUFPLFNBQVMsQ0FBQztRQUNsQixDQUFDO0lBQ0YsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNkLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDaEMsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQy9CLE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQVMsQ0FBQztRQUNyRyxDQUFDO2FBQU0sQ0FBQztZQUNQLE9BQU8sU0FBUyxDQUFDO1FBQ2xCLENBQUM7SUFDRixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ25CLE9BQU8sa0JBQWtCLENBQUMsVUFBVSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDckYsQ0FBQztJQUVELElBQVcsT0FBTztRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQVcsT0FBTztRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hDLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRixDQUFDO2FBQU0sQ0FBQztZQUNQLE9BQU8sS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDRixDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2hCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkMsTUFBTSxTQUFTLEdBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsS0FBSyxRQUFRO2dCQUN6QyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU07Z0JBQzVDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7WUFDaEMsT0FBTyxDQUNOLGtCQUFrQixHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxvQkFBb0I7Z0JBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLHFCQUFxQjtnQkFDNUMsU0FBUyxHQUFHLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLEdBQUcsaUJBQWlCLEdBQUcscUJBQXFCLENBQUMsR0FBRyxvRkFBb0Y7Z0JBQzFMLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLElBQUksQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQ2xGLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNQLE9BQU8sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNGLENBQUM7SUFFTSxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQWUsRUFBRSxNQUFnQjtRQUMxRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksd0NBQXdDLENBQUMsQ0FBQztRQUNuRixDQUFDO2FBQU0sSUFBSyxJQUFJLENBQUMsT0FBZSxFQUFFLElBQUksWUFBWSxLQUFLLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUMsS0FBSyxHQUFJLElBQUksQ0FBQyxPQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMvQyxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixFQUFFLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO29CQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGdFQUFnRSxDQUFDLENBQUM7Z0JBQzNHLENBQUM7cUJBQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQztvQkFDOUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO29CQUNoRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUNsQyxLQUFLLEdBQUcsQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQyxDQUMzRSxDQUFDO29CQUNGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUM7d0JBQ2hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7d0JBQzlCLE1BQU0sSUFBSSxLQUFLLENBQ2QsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUkseURBQXlELElBQUksQ0FBQyxNQUFNLGVBQWUsQ0FDM0csQ0FBQztvQkFDSCxDQUFDO2dCQUNGLENBQUM7WUFDRixDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQUssSUFBSSxDQUFDLE9BQWUsRUFBRSxJQUE0QixJQUFJLG1CQUFtQixDQUFDLE9BQU8sQ0FBQztZQUNyRyxJQUFJLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQy9FLE9BQU8sSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFhLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2dCQUNuQixtRUFBbUU7Z0JBQ25FLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNuRSxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNwRCxNQUFNLEtBQUssR0FBRyxNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUM7d0JBQ3RDLEtBQUssRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7d0JBQzNELE1BQU07cUJBQ04sQ0FBQyxDQUFDO29CQUNILE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUM5RixJQUFJLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztvQkFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztvQkFDNUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO2dCQUMvQixDQUFDO2dCQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztvQkFDN0MsYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzVFLENBQUM7WUFDRixDQUFDO1FBQ0YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNyQixDQUFDO0lBRU0sV0FBVyxDQUFDLE1BQXlCO1FBQzNDLE9BQU87WUFDTixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7U0FDM0IsQ0FBQztJQUNILENBQUM7SUFFTSxjQUFjLENBQUMsTUFBMEI7UUFDL0MsSUFBSSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xCLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU07Z0JBQzNCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztnQkFDbkIsU0FBUyxFQUFFLENBQUM7YUFDWixDQUFDLENBQUM7UUFDSixDQUFDO0lBQ0YsQ0FBQztJQUVNLFdBQVcsQ0FBQyxNQUF5QjtRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzNGLE1BQU0sSUFBSSxTQUFTLENBQ2xCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLDBDQUEwQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsTUFDdkYsa0JBQWtCLENBQUMsY0FDcEIsRUFBRSxDQUNGLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLEdBQUcsTUFBTSxFQUFFLElBQUksQ0FBQztZQUMxQixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxJQUFJLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxpQ0FBaUMsQ0FBQyxDQUFDO1lBQ2hGLENBQUM7aUJBQU0sSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN6RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZELENBQUM7UUFDRixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3pCLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxHQUFHLEtBQUs7UUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixPQUFPO1lBQ04sTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQzVFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDbkMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHO2dCQUNaLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUztnQkFDeEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO2FBQzNCLENBQUMsQ0FBQztZQUNILFNBQVMsRUFBRTtnQkFDVixHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMxRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsa0JBQWtCO2dCQUNqRCx3QkFBd0IsRUFBRSxNQUFNLEVBQUUsc0JBQXNCO2dCQUN4RCxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVM7Z0JBQzVCLGNBQWMsRUFBRSxNQUFNLEVBQUUsYUFBYTtnQkFDckMsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVO2FBQzlCO1NBQ0QsQ0FBQztJQUNILENBQUM7SUFFTSxVQUFVO1FBQ2hCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwRCxPQUFPO2dCQUNOLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNoQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDeEQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNwRSxPQUFPO3dCQUNOLGFBQWEsRUFBRTs0QkFDZCxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRTs0QkFDbkUsR0FBRyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt5QkFDM0M7cUJBQ0QsQ0FBQztnQkFDSCxDQUFDLENBQUM7Z0JBQ0YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNuQyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFO29CQUN4RSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO29CQUNoQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUN6RCxDQUFDLENBQUM7Z0JBQ0gsUUFBUSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRTthQUNwQyxDQUFDO1FBQ0gsQ0FBQztJQUNGLENBQUM7SUFFTSxjQUFjLENBQUMsTUFBWTtRQUNqQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQ0MsQ0FBQyxDQUNBLE1BQU07Z0JBQ04sQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJO29CQUNiLENBQUMsTUFBTSxDQUFDLElBQUksWUFBWSxLQUFLLElBQUssTUFBTSxDQUFDLElBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO29CQUNuRSxNQUFNLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDMUQsQ0FBQyxNQUFNLEVBQUUsU0FBUyxJQUFJLE1BQU0sRUFBRSxTQUFTLEtBQUssU0FBUyxDQUFDO2dCQUN0RCxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQ2hDLEVBQ0EsQ0FBQztnQkFDRixNQUFNLElBQUksU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLHNCQUFzQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3RixDQUFDO2lCQUFNLElBQUksTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO2dCQUM5QixJQUFJLE9BQU8sTUFBTSxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDMUMsTUFBTSxJQUFJLFNBQVMsQ0FDbEIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksdURBQXVELE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FDakcsQ0FBQztnQkFDSCxDQUFDO2dCQUNELE1BQU0sQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdELENBQUM7WUFDRCxPQUFPLE1BQTJCLENBQUM7UUFDcEMsQ0FBQzthQUFNLENBQUM7WUFDUCxPQUFPLFNBQVMsQ0FBQztRQUNsQixDQUFDO0lBQ0YsQ0FBQztJQUVTLGtCQUFrQixDQUFDLE1BQVk7UUFDeEMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUN0RyxDQUFDO1FBQ0gsQ0FBQztJQUNGLENBQUM7SUFFUyxLQUFLLENBQUMsb0JBQW9CLENBQ25DLFFBQTBCLEVBQzFCLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNO1FBRXJDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0MsT0FBTyxNQUFNLENBQ1osSUFBSSxDQUFDLEtBQUssQ0FDVCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO1lBQzNDLENBQUMsSUFBSSxDQUFDLE9BQU87Z0JBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNO2dCQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTTtvQkFDWiw0RUFBNEU7b0JBQzVFLHFCQUFxQixDQUFDLENBQ3pCLENBQ0QsQ0FBQztJQUNILENBQUM7SUFFUywrQkFBK0IsQ0FBQyxJQUFZLEVBQUUsU0FBaUI7UUFDeEUsT0FBTyxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRVMsbUJBQW1CLENBQUMsSUFBWSxFQUFFLFVBQWtCO1FBQzdELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFDUyxXQUFXLENBQUMsSUFBWSxFQUFFLFNBQWlCO1FBQ3BELE9BQU8sQ0FDTixNQUFNLENBQUMsU0FBUyxDQUFDO1lBQ2pCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUN4RyxDQUFDO0lBQ0gsQ0FBQztJQUVTLG1CQUFtQjtRQUM1QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixPQUFPO2dCQUNOLEdBQUcsSUFBSSxDQUFDLE1BQU07Z0JBQ2QsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFO2FBQ3ZDLENBQUM7UUFDSCxDQUFDO0lBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcbmltcG9ydCBMb25nIGZyb20gXCJsb25nXCI7XG5cbmNvbnN0IHJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7XG5cbmltcG9ydCBwcm90b2J1ZiBmcm9tIFwicHJvdG9idWZqc1wiO1xuXG5jb25zdCB7IFJvb3Q6IFByb3RvUm9vdCB9ID0gcHJvdG9idWY7XG5jb25zdCBwcm90b1Jvb3QgPSBQcm90b1Jvb3QuZnJvbUpTT04ocmVxdWlyZShcIi4uLy4uLy4uLy4uL3dpdG5ldC93aXRuZXQucHJvdG8uanNvblwiKSk7XG5cbmltcG9ydCB7IGZyb21IZXhTdHJpbmcsIHRvSGV4U3RyaW5nIH0gZnJvbSBcIi4uLy4uLy4uL2Jpbi9oZWxwZXJzLmpzXCI7XG5cbmltcG9ydCB7IFJhZG9uUmVxdWVzdCwgUmFkb25UZW1wbGF0ZSB9IGZyb20gXCIuLi8uLi9yYWRvbi9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBIYXNoLCBIZXhTdHJpbmcsIElKc29uUnBjUHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vdHlwZXMuanNcIjtcblxuaW1wb3J0IHR5cGUgeyBJTGVkZ2VyIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMuanNcIjtcbmltcG9ydCB7IFRyYW5zYWN0aW9uUGF5bG9hZE11bHRpU2lnIH0gZnJvbSBcIi4uL3BheWxvYWRzLmpzXCI7XG5pbXBvcnQgeyBDb2lucywgUHVibGljS2V5SGFzaCwgdHlwZSBUcmFuc2FjdGlvblBhcmFtcywgVHJhbnNhY3Rpb25Qcmlvcml0eSB9IGZyb20gXCIuLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgQmlnTWF0aCwgc2hhMjU2IH0gZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCB0eXBlIERhdGFSZXF1ZXN0VGVtcGxhdGVBcmdzID0gYW55IHwgc3RyaW5nIHwgc3RyaW5nW10gfCBzdHJpbmdbXVtdO1xuXG5leHBvcnQgdHlwZSBEYXRhUmVxdWVzdFBhcmFtcyA9IFRyYW5zYWN0aW9uUGFyYW1zICYge1xuXHRhcmdzPzogRGF0YVJlcXVlc3RUZW1wbGF0ZUFyZ3M7XG5cdG1heFJlc3VsdFNpemU/OiBudW1iZXI7XG5cdHdpdG5lc3Nlcz86IG51bWJlcjtcbn07XG5cbnR5cGUgRGF0YVJlcXVlc3RPdXRwdXRTTEEgPSB7XG5cdGNvbGxhdGVyYWw6IG51bWJlcjtcblx0Y29tbWl0QW5kUmV2ZWFsRmVlOiBudW1iZXI7XG5cdG1pbkNvbnNlbnN1c1BlcmNlbnRhZ2U6IG51bWJlcjtcblx0d2l0bmVzc2VzOiBudW1iZXI7XG5cdHdpdG5lc3NSZXdhcmQ/OiBudW1iZXI7XG59O1xuXG5jb25zdCBDT0xMQVRFUkFMX1JBVElPID0gMTAwbjtcbi8vIGNvbnN0IFJBRE9OX0VSUk9SX01BWF9CWVRFUyA9IDk7XG5cbmNvbnN0IERSX0NPTU1JVF9UWF9XRUlHSFQgPSA0MDA7XG5jb25zdCBEUl9SRVZFQUxfVFhfV0VJR0hUID0gMjAwO1xuY29uc3QgRFJfVEFMTFlfVFhfV0VJR0hUID0gMTAwO1xuXG5jb25zdCBEUl9UWF9XRUlHSFRfQUxQSEEgPSAxO1xuY29uc3QgRFJfVFhfV0VJR0hUX0JFVEEgPSAxO1xuXG5jb25zdCBUWF9XRUlHSFRfSU5QVVRfU0laRSA9IDEzMztcbmNvbnN0IFRYX1dFSUdIVF9PVVRQVVRfU0laRSA9IDM2O1xuXG5leHBvcnQgY2xhc3MgRGF0YVJlcXVlc3RQYXlsb2FkIGV4dGVuZHMgVHJhbnNhY3Rpb25QYXlsb2FkTXVsdGlTaWc8RGF0YVJlcXVlc3RQYXJhbXM+IHtcblx0cHVibGljIHN0YXRpYyBERUZBVUxUX01BWF9SRVNVTFRfU0laRSA9IDI1Njtcblx0cHVibGljIHN0YXRpYyBERUZBVUxUX1dJVE5FU1NFUyA9IDEyO1xuXHRwdWJsaWMgc3RhdGljIE1BWF9XRUlHSFQgPSA4MF8wMDA7XG5cdHB1YmxpYyBzdGF0aWMgTUlOX0NPTExBVEVSQUwgPSAyMF8wMDBfMDAwXzAwMG47XG5cdHB1YmxpYyBzdGF0aWMgTUlOX0NPTlNFTlNVU19QRVJDRU5UQUdFID0gNTE7XG5cblx0cHJvdGVjdGVkIF9yZXF1ZXN0PzogUmFkb25SZXF1ZXN0O1xuXHRwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGU/OiBSYWRvblRlbXBsYXRlO1xuXG5cdGNvbnN0cnVjdG9yKHByb3RvVHlwZU5hbWU6IHN0cmluZywgcmFkb246IFJhZG9uUmVxdWVzdCB8IFJhZG9uVGVtcGxhdGUsIGluaXRpYWxUYXJnZXQ/OiBEYXRhUmVxdWVzdFBhcmFtcykge1xuXHRcdHN1cGVyKHByb3RvVHlwZU5hbWUsIGluaXRpYWxUYXJnZXQpO1xuXHRcdGlmIChyYWRvbiBpbnN0YW5jZW9mIFJhZG9uUmVxdWVzdCkge1xuXHRcdFx0dGhpcy5fcmVxdWVzdCA9IHJhZG9uO1xuXHRcdH0gZWxzZSBpZiAocmFkb24gaW5zdGFuY2VvZiBSYWRvblRlbXBsYXRlKSB7XG5cdFx0XHR0aGlzLnRlbXBsYXRlID0gcmFkb247XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYERhdGFSZXF1ZXN0UGF5bG9hZDogdW5zdXBwb3J0ZWQgUmFkb24gYXNzZXQgdHlwZTogJHsocmFkb24gYXMgYW55KT8uY29uc3RydWN0b3IubmFtZX1gKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZ2V0IGRyb0hhc2goKTogSGFzaCB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgb2JqID0gdGhpcy5fdG9Eck91dHB1dFByb3RvYnVmKCk7XG5cdFx0aWYgKG9iaikge1xuXHRcdFx0Y29uc3QgRGF0YVJlcXVlc3RPdXRwdXQgPSBwcm90b1Jvb3QubG9va3VwVHlwZShcIkRhdGFSZXF1ZXN0T3V0cHV0XCIpO1xuXHRcdFx0Y29uc3QgZXJyID0gRGF0YVJlcXVlc3RPdXRwdXQudmVyaWZ5KG9iaik7XG5cdFx0XHRpZiAoZXJyKSB7XG5cdFx0XHRcdHRocm93IFR5cGVFcnJvcihlcnIpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coXCJcXG5kcm9IYXNoLm9iaiA9PlwiLCBKU09OLnN0cmluZ2lmeShvYmopKVxuXHRcdFx0XHRjb25zdCBtZXNzYWdlID0gRGF0YVJlcXVlc3RPdXRwdXQuZnJvbU9iamVjdChvYmopO1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhcIlxcbmRyb0hhc2gubWVzc2FnZSA9PlwiLCBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSlcblx0XHRcdFx0Y29uc3QgYnl0ZWNvZGUgPSBEYXRhUmVxdWVzdE91dHB1dC5lbmNvZGUobWVzc2FnZSkuZmluaXNoKCk7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKFwiXFxuZHJvSGFzaC5ieXRlY29kZSA9PlwiLCBieXRlY29kZSlcblx0XHRcdFx0cmV0dXJuIHRvSGV4U3RyaW5nKHNoYTI1NihieXRlY29kZSkpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBnZXQgZHJvU0xBKCk6IERhdGFSZXF1ZXN0T3V0cHV0U0xBIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAodGhpcy5fdGFyZ2V0ICYmIHRoaXMuX2ZlZXMpIHtcblx0XHRcdGNvbnN0IG1pbkNvbnNlbnN1c1BlcmNlbnRhZ2UgPSBEYXRhUmVxdWVzdFBheWxvYWQuTUlOX0NPTlNFTlNVU19QRVJDRU5UQUdFO1xuXHRcdFx0Y29uc3Qgd2l0bmVzc2VzID1cblx0XHRcdFx0dHlwZW9mIHRoaXMuX3RhcmdldC53aXRuZXNzZXMgPT09IFwib2JqZWN0XCJcblx0XHRcdFx0XHQ/IE9iamVjdC5rZXlzKHRoaXMuX3RhcmdldC53aXRuZXNzZXMpLmxlbmd0aFxuXHRcdFx0XHRcdDogdGhpcy5fdGFyZ2V0LndpdG5lc3NlcyB8fCAwO1xuXHRcdFx0Y29uc3Qgd2l0bmVzc1Jld2FyZCA9IHRoaXMuX2ZlZXMyVW5pdGFyeVJld2FyZCh0aGlzLl9mZWVzLCB3aXRuZXNzZXMpO1xuXHRcdFx0Y29uc3QgY29tbWl0QW5kUmV2ZWFsRmVlID0gdGhpcy5fZmVlczJVbml0YXJ5Q29tbWl0UmV2ZWFsUmV3YXJkKHRoaXMuX2ZlZXMsIHdpdG5lc3Nlcyk7IC8vTWF0aC5mbG9vcihOdW1iZXIod2l0bmVzc1Jld2FyZCAvIEJpZ0ludCh3aXRuZXNzZXMpKSkgLy8gVE9ETzogemVyb2Z5IGlmIHByb3RvY29sID49IFYyXzFcblx0XHRcdGNvbnN0IGNvbGxhdGVyYWwgPSB3aXRuZXNzUmV3YXJkICogQ09MTEFURVJBTF9SQVRJTzsgLy8gVE9ETzogemVyb2Z5IGlmIHByb3RvY29sID49IFYyXzFcblx0XHRcdGlmIChjb2xsYXRlcmFsID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpXG5cdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogZXhjZXNzaXZlIHdpdG5lc3MgY29sbGF0ZXJhbDogJHtjb2xsYXRlcmFsLnRvU3RyaW5nKCl9ID4gJHtOdW1iZXIuTUFYX1NBRkVfSU5URUdFUn1gLFxuXHRcdFx0XHQpO1xuXHRcdFx0ZWxzZSBpZiAod2l0bmVzc1Jld2FyZCA+IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKVxuXHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFxuXHRcdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGV4Y2Vzc2l2ZSB3aXRuZXNzIHJld2FyZDogJHt3aXRuZXNzUmV3YXJkLnRvU3RyaW5nKCl9ID4gJHtOdW1iZXIuTUFYX1NBRkVfSU5URUdFUn1gLFxuXHRcdFx0XHQpO1xuXHRcdFx0ZWxzZSBpZiAoY29tbWl0QW5kUmV2ZWFsRmVlID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpXG5cdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogZXhjZXNzaXZlIGNvbW1pdC9yZXZlYWwgZmVlOiAke2NvbW1pdEFuZFJldmVhbEZlZS50b1N0cmluZygpfSA+ICR7TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJ9YCxcblx0XHRcdFx0KTtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGNvbGxhdGVyYWw6IE51bWJlcihjb2xsYXRlcmFsKSxcblx0XHRcdFx0Y29tbWl0QW5kUmV2ZWFsRmVlOiBOdW1iZXIoY29tbWl0QW5kUmV2ZWFsRmVlKSxcblx0XHRcdFx0bWluQ29uc2Vuc3VzUGVyY2VudGFnZSxcblx0XHRcdFx0d2l0bmVzc2VzLFxuXHRcdFx0XHR3aXRuZXNzUmV3YXJkOiBOdW1iZXIod2l0bmVzc1Jld2FyZCksXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBnZXQgaGFzaCgpOiBIYXNoIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBfYnl0ZWNvZGUgPSB0aGlzLmJ5dGVjb2RlO1xuXHRcdGlmIChfYnl0ZWNvZGUgJiYgdGhpcy5kcm9IYXNoKSB7XG5cdFx0XHRyZXR1cm4gdG9IZXhTdHJpbmcoc2hhMjU2KEJ1ZmZlci5jb25jYXQoW2Zyb21IZXhTdHJpbmcodGhpcy5kcm9IYXNoKSwgc2hhMjU2KF9ieXRlY29kZSldKSkpIGFzIEhhc2g7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGdldCBtYXhXZWlnaHQoKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gRGF0YVJlcXVlc3RQYXlsb2FkLk1BWF9XRUlHSFQ7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHBhcmFtZXRlcml6ZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuICEhdGhpcy50ZW1wbGF0ZTtcblx0fVxuXG5cdHB1YmxpYyBnZXQgcHJlcGFyZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuY292ZXJlZCAmJiB0aGlzLl9pbnB1dHMubGVuZ3RoID4gMCAmJiAhIXRoaXMuX3JlcXVlc3QgJiYgISF0aGlzLl90YXJnZXQ7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHJhZEFyZ3MoKTogRGF0YVJlcXVlc3RUZW1wbGF0ZUFyZ3MgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLnRlbXBsYXRlID8gdGhpcy5fdGFyZ2V0Py5hcmdzIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0cHVibGljIGdldCByYWRIYXNoKCk6IEhleFN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMucmVxdWVzdD8ucmFkSGFzaDtcblx0fVxuXG5cdHB1YmxpYyBnZXQgcmVxdWVzdCgpOiBSYWRvblJlcXVlc3QgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLl9yZXF1ZXN0O1xuXHR9XG5cblx0cHVibGljIGdldCB2YWx1ZSgpOiBDb2lucyB7XG5cdFx0aWYgKHRoaXMuX3RhcmdldCAmJiB0aGlzLl9mZWVzKSB7XG5cdFx0XHRyZXR1cm4gQ29pbnMuZnJvbVBlZHJvcyh0aGlzLl9mZWVzMlZhbHVlKHRoaXMuX2ZlZXMsIHRoaXMuX3RhcmdldC53aXRuZXNzZXMgfHwgMCkpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gQ29pbnMuemVybygpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBnZXQgd2VpZ2h0KCk6IG51bWJlciB7XG5cdFx0aWYgKHRoaXMuX3JlcXVlc3QgJiYgdGhpcy5fdGFyZ2V0KSB7XG5cdFx0XHRjb25zdCB3aXRuZXNzZXMgPVxuXHRcdFx0XHR0eXBlb2YgdGhpcy5fdGFyZ2V0LndpdG5lc3NlcyA9PT0gXCJvYmplY3RcIlxuXHRcdFx0XHRcdD8gT2JqZWN0LmtleXModGhpcy5fdGFyZ2V0LndpdG5lc3NlcykubGVuZ3RoXG5cdFx0XHRcdFx0OiB0aGlzLl90YXJnZXQud2l0bmVzc2VzIHx8IDA7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHREUl9UWF9XRUlHSFRfQUxQSEEgKiAodGhpcy5fcmVxdWVzdC53ZWlnaHQoKSArIDggKyAyICsgOCArIDQgKyA4KSArXG5cdFx0XHRcdHRoaXMuX2lucHV0cy5sZW5ndGggKiBUWF9XRUlHSFRfSU5QVVRfU0laRSArXG5cdFx0XHRcdHRoaXMuX291dHB1dHMubGVuZ3RoICogVFhfV0VJR0hUX09VVFBVVF9TSVpFICtcblx0XHRcdFx0d2l0bmVzc2VzICogKERSX0NPTU1JVF9UWF9XRUlHSFQgKyBEUl9SRVZFQUxfVFhfV0VJR0hUICogRFJfVFhfV0VJR0hUX0JFVEEgKyBUWF9XRUlHSFRfT1VUUFVUX1NJWkUpICsgLy8gVE9ETyBWMi4xOiB0eXBlb2YgdGhpcy5fdGFyZ2V0LndpdG5lc3NlcyA9PT0gJ29iamVjdCcgPyBUWF9XRUlHSFRfT1VUUFVUX1NJWkUgOiAwXG5cdFx0XHRcdE1hdGgubWF4KERSX1RBTExZX1RYX1dFSUdIVCwgdGhpcy5fdGFyZ2V0Py5tYXhSZXN1bHRTaXplIHx8IDApICogRFJfVFhfV0VJR0hUX0JFVEFcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiAwO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBhc3luYyBjb25zdW1lVXR4b3MobGVkZ2VyOiBJTGVkZ2VyLCByZWxvYWQ/OiBib29sZWFuKTogUHJvbWlzZTxiaWdpbnQ+IHtcblx0XHRpZiAoIXRoaXMuX3RhcmdldCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGludGVybmFsIGVycm9yOiBubyBpbi1mbGlnaHQgcGFyYW1zLmApO1xuXHRcdH0gZWxzZSBpZiAoKHRoaXMuX3RhcmdldCBhcyBhbnkpPy5mZWVzIGluc3RhbmNlb2YgQ29pbnMpIHtcblx0XHRcdHRoaXMuX2ZlZXMgPSAodGhpcy5fdGFyZ2V0IGFzIGFueSkuZmVlcy5wZWRyb3M7XG5cdFx0XHRyZXR1cm4gc3VwZXIuY29uc3VtZVV0eG9zKGxlZGdlciwgcmVsb2FkKTtcblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuY292ZXJlZCkge1xuXHRcdFx0aWYgKCF0aGlzLl90YXJnZXQud2l0bmVzc2VzKSB7XG5cdFx0XHRcdHRoaXMuX3RhcmdldC53aXRuZXNzZXMgPSBNYXRoLm1pbihEYXRhUmVxdWVzdFBheWxvYWQuREVGQVVMVF9XSVRORVNTRVMsIGF3YWl0IGxlZGdlci5wcm92aWRlci53aXRuZXNzZXMoKSk7XG5cdFx0XHRcdGlmICh0aGlzLl90YXJnZXQud2l0bmVzc2VzIDwgMykge1xuXHRcdFx0XHRcdGRlbGV0ZSB0aGlzLl90YXJnZXQud2l0bmVzc2VzO1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBjYW5ub3QgZXN0aW1hdGUgd2l0bmVzc2VzOiBuZXR3b3JrIG5vdCByZWFkeSBmb3Igd2l0bmVzc2luZy5gKTtcblx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLndlaWdodCA+IERhdGFSZXF1ZXN0UGF5bG9hZC5NQVhfV0VJR0hUICogMC44KSB7XG5cdFx0XHRcdFx0Y29uc3QgZGVsdGEgPSB0aGlzLndlaWdodCAtIERhdGFSZXF1ZXN0UGF5bG9hZC5NQVhfV0VJR0hUICogMC44O1xuXHRcdFx0XHRcdHRoaXMuX3RhcmdldC53aXRuZXNzZXMgLT0gTWF0aC5jZWlsKFxuXHRcdFx0XHRcdFx0ZGVsdGEgLyAoRFJfQ09NTUlUX1RYX1dFSUdIVCArIERSX1JFVkVBTF9UWF9XRUlHSFQgKiBUWF9XRUlHSFRfT1VUUFVUX1NJWkUpLFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0aWYgKHRoaXMuX3RhcmdldC53aXRuZXNzZXMgPCAzKSB7XG5cdFx0XHRcdFx0XHRkZWxldGUgdGhpcy5fdGFyZ2V0LndpdG5lc3Nlcztcblx0XHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogY2Fubm90IGVzdGltYXRlIHdpdG5lc3NlczogcmFkb24gcmVxdWVzdCB0b28gaGVhdnk6ICR7dGhpcy53ZWlnaHR9IHdlaWdodCB1bml0c2AsXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Y29uc3QgcHJpb3JpdHkgPSAoKHRoaXMuX3RhcmdldCBhcyBhbnkpPy5mZWVzIGFzIFRyYW5zYWN0aW9uUHJpb3JpdHkpIHx8IFRyYW5zYWN0aW9uUHJpb3JpdHkuT3B1bGVudDtcblx0XHRcdGxldCBlc3RpbWF0ZWRGZWVzID0gYXdhaXQgdGhpcy5fZXN0aW1hdGVOZXR3b3JrRmVlcyhsZWRnZXIucHJvdmlkZXIsIHByaW9yaXR5KTtcblx0XHRcdHdoaWxlICh0aGlzLl9mZWVzIDwgZXN0aW1hdGVkRmVlcyAmJiB0aGlzLl9jaGFuZ2UgPj0gMCkge1xuXHRcdFx0XHR0aGlzLl9mZWVzID0gZXN0aW1hdGVkRmVlcztcblx0XHRcdFx0dGhpcy5fb3V0cHV0cyA9IFtdO1xuXHRcdFx0XHQvLyBjb25zdW1lIHV0eG9zIGFzIHRvIGNvdmVyIGZvciBlc3RpbWF0ZWQgdmFsdWUgYW5kIGVzdGltYXRlZCBmZWVzXG5cdFx0XHRcdGNvbnN0IHZhbHVlID0gdGhpcy5fZmVlczJWYWx1ZSh0aGlzLl9mZWVzLCB0aGlzLl90YXJnZXQud2l0bmVzc2VzKTtcblx0XHRcdFx0aWYgKHRoaXMuX2NvdmVyZWQgPCB0aGlzLnZhbHVlLnBlZHJvcyArIHRoaXMuX2ZlZXMpIHtcblx0XHRcdFx0XHRjb25zdCB1dHhvcyA9IGF3YWl0IGxlZGdlci5zZWxlY3RVdHhvcyh7XG5cdFx0XHRcdFx0XHR2YWx1ZTogQ29pbnMuZnJvbVBlZHJvcyh2YWx1ZSArIHRoaXMuX2ZlZXMgLSB0aGlzLl9jb3ZlcmVkKSxcblx0XHRcdFx0XHRcdHJlbG9hZCxcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRjb25zdCBleHRyYSA9IHV0eG9zLm1hcCgodXR4bykgPT4gQmlnSW50KHV0eG8udmFsdWUpKS5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHByZXYgKyBjdXJyLCAwbik7XG5cdFx0XHRcdFx0dGhpcy5fY292ZXJlZCArPSBleHRyYTtcblx0XHRcdFx0XHR0aGlzLl9pbnB1dHMucHVzaCguLi51dHhvcyk7XG5cdFx0XHRcdFx0bGVkZ2VyLmNvbnN1bWVVdHhvcyguLi51dHhvcyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5fY2hhbmdlID0gdGhpcy5fY292ZXJlZCAtICh2YWx1ZSArIHRoaXMuX2ZlZXMpO1xuXHRcdFx0XHRpZiAodGhpcy5fY2hhbmdlID49IDApIHtcblx0XHRcdFx0XHR0aGlzLnByZXBhcmVPdXRwdXRzKHsgdmFsdWU6IHRoaXMuX2NoYW5nZSB9KTtcblx0XHRcdFx0XHRlc3RpbWF0ZWRGZWVzID0gYXdhaXQgdGhpcy5fZXN0aW1hdGVOZXR3b3JrRmVlcyhsZWRnZXIucHJvdmlkZXIsIHByaW9yaXR5KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5fY2hhbmdlO1xuXHR9XG5cblx0cHVibGljIGludG9SZWNlaXB0KHRhcmdldDogRGF0YVJlcXVlc3RQYXJhbXMpOiBhbnkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRkcm9IYXNoOiB0aGlzLmRyb0hhc2gsXG5cdFx0XHRyYWRBcmdzOiB0aGlzLnJhZEFyZ3MsXG5cdFx0XHRyYWRIYXNoOiB0aGlzLnJhZEhhc2gsXG5cdFx0XHR3aXRuZXNzZXM6IHRhcmdldC53aXRuZXNzZXMsXG5cdFx0fTtcblx0fVxuXG5cdHB1YmxpYyBwcmVwYXJlT3V0cHV0cyhjaGFuZ2U/OiB7IHZhbHVlOiBiaWdpbnQgfSk6IGFueSB7XG5cdFx0aWYgKGNoYW5nZT8udmFsdWUpIHtcblx0XHRcdHRoaXMuX291dHB1dHMucHVzaCh7XG5cdFx0XHRcdHBraDogdGhpcy5faW5wdXRzWzBdLnNpZ25lcixcblx0XHRcdFx0dmFsdWU6IGNoYW5nZS52YWx1ZSxcblx0XHRcdFx0dGltZV9sb2NrOiAwLFxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIHJlc2V0VGFyZ2V0KHRhcmdldDogRGF0YVJlcXVlc3RQYXJhbXMpOiBhbnkge1xuXHRcdHRoaXMuX2NoYW5nZSA9IDBuO1xuXHRcdHRoaXMuX2NvdmVyZWQgPSAwbjtcblx0XHR0aGlzLl9mZWVzID0gMG47XG5cdFx0dGhpcy5faW5wdXRzID0gW107XG5cdFx0dGhpcy5fb3V0cHV0cyA9IFtdO1xuXHRcdHRoaXMuX3RhcmdldCA9IHRhcmdldDtcblx0XHRpZiAodGhpcy5kcm9TTEE/LmNvbGxhdGVyYWwgJiYgdGhpcy5kcm9TTEEuY29sbGF0ZXJhbCA8IERhdGFSZXF1ZXN0UGF5bG9hZC5NSU5fQ09MTEFURVJBTCkge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogd2l0bmVzc2luZyBjb2xsYXRlcmFsIGJlbG93IG1pbmltdW06ICR7dGhpcy5kcm9TTEEuY29sbGF0ZXJhbH0gPCAke1xuXHRcdFx0XHRcdERhdGFSZXF1ZXN0UGF5bG9hZC5NSU5fQ09MTEFURVJBTFxuXHRcdFx0XHR9YCxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLnRlbXBsYXRlKSB7XG5cdFx0XHRjb25zdCBhcmdzID0gdGFyZ2V0Py5hcmdzO1xuXHRcdFx0aWYgKGFyZ3MgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IG5vIHRlbXBsYXRlIGFyZ3Mgd2VyZSBwYXNzZWQuYCk7XG5cdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBhcmdzID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRcdHRoaXMuX3JlcXVlc3QgPSB0aGlzLnRlbXBsYXRlLmJ1aWxkUmFkb25SZXF1ZXN0KFthcmdzXSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLl9yZXF1ZXN0ID0gdGhpcy50ZW1wbGF0ZS5idWlsZFJhZG9uUmVxdWVzdChhcmdzKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0ZGVsZXRlIHRoaXMuX3ByaW9yaXRpZXM7XG5cdH1cblxuXHRwdWJsaWMgdG9KU09OKGh1bWFuaXplID0gZmFsc2UpOiBhbnkge1xuXHRcdGNvbnN0IGRyb1NMQSA9IHRoaXMuZHJvU0xBO1xuXHRcdHJldHVybiB7XG5cdFx0XHRpbnB1dHM6IHRoaXMuaW5wdXRzLm1hcCgodXR4bykgPT4gKHsgb3V0cHV0X3BvaW50ZXI6IHV0eG8ub3V0cHV0X3BvaW50ZXIgfSkpLFxuXHRcdFx0b3V0cHV0czogdGhpcy5vdXRwdXRzLm1hcCgodnRvKSA9PiAoe1xuXHRcdFx0XHRwa2g6IHZ0by5wa2gsXG5cdFx0XHRcdHRpbWVfbG9jazogdnRvLnRpbWVfbG9jayxcblx0XHRcdFx0dmFsdWU6IHZ0by52YWx1ZS50b1N0cmluZygpLFxuXHRcdFx0fSkpLFxuXHRcdFx0ZHJfb3V0cHV0OiB7XG5cdFx0XHRcdC4uLih0aGlzLl9yZXF1ZXN0ID8geyBkYXRhX3JlcXVlc3Q6IHRoaXMuX3JlcXVlc3QudG9KU09OKGh1bWFuaXplKSB9IDoge30pLFxuXHRcdFx0XHRjb21taXRfYW5kX3JldmVhbF9mZWU6IGRyb1NMQT8uY29tbWl0QW5kUmV2ZWFsRmVlLFxuXHRcdFx0XHRtaW5fY29uc2Vuc3VzX3BlcmNlbnRhZ2U6IGRyb1NMQT8ubWluQ29uc2Vuc3VzUGVyY2VudGFnZSxcblx0XHRcdFx0d2l0bmVzc2VzOiBkcm9TTEE/LndpdG5lc3Nlcyxcblx0XHRcdFx0d2l0bmVzc19yZXdhcmQ6IGRyb1NMQT8ud2l0bmVzc1Jld2FyZCxcblx0XHRcdFx0Y29sbGF0ZXJhbDogZHJvU0xBPy5jb2xsYXRlcmFsLFxuXHRcdFx0fSxcblx0XHR9O1xuXHR9XG5cblx0cHVibGljIHRvUHJvdG9idWYoKTogYW55IHtcblx0XHRpZiAodGhpcy5wcmVwYXJlZCAmJiB0aGlzLl90YXJnZXQgJiYgdGhpcy5fcmVxdWVzdCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0aW5wdXRzOiB0aGlzLmlucHV0cy5tYXAoKHV0eG8pID0+IHtcblx0XHRcdFx0XHRjb25zdCB0cmFuc2FjdGlvbklkID0gdXR4by5vdXRwdXRfcG9pbnRlci5zcGxpdChcIjpcIilbMF07XG5cdFx0XHRcdFx0Y29uc3Qgb3V0cHV0SW5kZXggPSBwYXJzZUludCh1dHhvLm91dHB1dF9wb2ludGVyLnNwbGl0KFwiOlwiKVsxXSwgMTApO1xuXHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRvdXRwdXRQb2ludGVyOiB7XG5cdFx0XHRcdFx0XHRcdHRyYW5zYWN0aW9uSWQ6IHsgU0hBMjU2OiBBcnJheS5mcm9tKGZyb21IZXhTdHJpbmcodHJhbnNhY3Rpb25JZCkpIH0sXG5cdFx0XHRcdFx0XHRcdC4uLihvdXRwdXRJbmRleCA+IDAgPyB7IG91dHB1dEluZGV4IH0gOiB7fSksXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH0pLFxuXHRcdFx0XHRvdXRwdXRzOiB0aGlzLm91dHB1dHMubWFwKCh2dG8pID0+ICh7XG5cdFx0XHRcdFx0cGtoOiB7IGhhc2g6IEFycmF5LmZyb20oUHVibGljS2V5SGFzaC5mcm9tQmVjaDMyKHZ0by5wa2gpLnRvQnl0ZXMyMCgpKSB9LFxuXHRcdFx0XHRcdHZhbHVlOiBMb25nLmZyb21WYWx1ZSh2dG8udmFsdWUpLFxuXHRcdFx0XHRcdC4uLih2dG8udGltZV9sb2NrID4gMCA/IHsgdGltZUxvY2s6IHZ0by50aW1lX2xvY2sgfSA6IHt9KSxcblx0XHRcdFx0fSkpLFxuXHRcdFx0XHRkck91dHB1dDogdGhpcy5fdG9Eck91dHB1dFByb3RvYnVmKCksXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyB2YWxpZGF0ZVRhcmdldCh0YXJnZXQ/OiBhbnkpOiBEYXRhUmVxdWVzdFBhcmFtcyB8IHVuZGVmaW5lZCB7XG5cdFx0dGFyZ2V0ID0gdGhpcy5fY2xlYW5UYXJnZXRFeHRyYXModGFyZ2V0KTtcblx0XHRpZiAodGFyZ2V0ICYmIE9iamVjdC5rZXlzKHRhcmdldCkubGVuZ3RoID4gMCkge1xuXHRcdFx0aWYgKFxuXHRcdFx0XHQhKFxuXHRcdFx0XHRcdHRhcmdldCAmJlxuXHRcdFx0XHRcdCghdGFyZ2V0Py5mZWVzIHx8XG5cdFx0XHRcdFx0XHQodGFyZ2V0LmZlZXMgaW5zdGFuY2VvZiBDb2lucyAmJiAodGFyZ2V0LmZlZXMgYXMgQ29pbnMpLnBlZHJvcyA+IDApIHx8XG5cdFx0XHRcdFx0XHRPYmplY3QudmFsdWVzKFRyYW5zYWN0aW9uUHJpb3JpdHkpLmluY2x1ZGVzKHRhcmdldC5mZWVzKSkgJiZcblx0XHRcdFx0XHQodGFyZ2V0Py53aXRuZXNzZXMgfHwgdGFyZ2V0Py53aXRuZXNzZXMgPT09IHVuZGVmaW5lZCkgJiZcblx0XHRcdFx0XHQoIXRoaXMudGVtcGxhdGUgfHwgdGFyZ2V0Py5hcmdzKVxuXHRcdFx0XHQpXG5cdFx0XHQpIHtcblx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnZhbGlkIG9wdGlvbnM6ICR7SlNPTi5zdHJpbmdpZnkodGFyZ2V0KX1gKTtcblx0XHRcdH0gZWxzZSBpZiAodGFyZ2V0Py53aXRuZXNzZXMpIHtcblx0XHRcdFx0aWYgKHR5cGVvZiB0YXJnZXQud2l0bmVzc2VzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcblx0XHRcdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGV4cGxpY2l0IHdpdG5lc3NpbmcgY29tbWl0dGVlcyBub3QgeWV0IHN1cHBvcnRlZDogJHt0YXJnZXQud2l0bmVzc2VzfWAsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0YXJnZXQud2l0bmVzc2VzID0gcGFyc2VJbnQodGFyZ2V0LndpdG5lc3NlcyBhcyBzdHJpbmcsIDEwKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0YXJnZXQgYXMgRGF0YVJlcXVlc3RQYXJhbXM7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIF9jbGVhblRhcmdldEV4dHJhcyh0YXJnZXQ/OiBhbnkpOiBhbnkge1xuXHRcdGlmICh0YXJnZXQpIHtcblx0XHRcdHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG5cdFx0XHRcdE9iamVjdC5lbnRyaWVzKHRhcmdldCkuZmlsdGVyKChba2V5XSkgPT4gW1wiYXJnc1wiLCBcImZlZXNcIiwgXCJtYXhSZXN1bHRTaXplXCIsIFwid2l0bmVzc2VzXCJdLmluY2x1ZGVzKGtleSkpLFxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgX2VzdGltYXRlTmV0d29ya0ZlZXMoXG5cdFx0cHJvdmlkZXI6IElKc29uUnBjUHJvdmlkZXIsXG5cdFx0cHJpb3JpdHkgPSBUcmFuc2FjdGlvblByaW9yaXR5Lk1lZGl1bSxcblx0KTogUHJvbWlzZTxiaWdpbnQ+IHtcblx0XHR0aGlzLl9wcmlvcml0aWVzID0gYXdhaXQgcHJvdmlkZXIucHJpb3JpdGllcygpO1xuXHRcdHJldHVybiBCaWdJbnQoXG5cdFx0XHRNYXRoLmZsb29yKFxuXHRcdFx0XHR0aGlzLl9wcmlvcml0aWVzW2BkcnRfJHtwcmlvcml0eX1gXS5wcmlvcml0eSAqXG5cdFx0XHRcdFx0KHRoaXMuY292ZXJlZFxuXHRcdFx0XHRcdFx0PyB0aGlzLndlaWdodFxuXHRcdFx0XHRcdFx0OiB0aGlzLndlaWdodCArXG5cdFx0XHRcdFx0XHRcdC8vIGVzdGltYXRlIHdlaWdodCBvZiBvbmUgc2luZ2xlIG91dHB1dCBpbiBjYXNlIHRoZXJlIHdhcyBjaGFuZ2UgdG8gcGF5IGJhY2tcblx0XHRcdFx0XHRcdFx0VFhfV0VJR0hUX09VVFBVVF9TSVpFKSxcblx0XHRcdCksXG5cdFx0KTtcblx0fVxuXG5cdHByb3RlY3RlZCBfZmVlczJVbml0YXJ5Q29tbWl0UmV2ZWFsUmV3YXJkKGZlZXM6IGJpZ2ludCwgd2l0bmVzc2VzOiBudW1iZXIpOiBiaWdpbnQge1xuXHRcdHJldHVybiBmZWVzIC8gQmlnSW50KHdpdG5lc3NlcykgfHwgMW47XG5cdH1cblxuXHRwcm90ZWN0ZWQgX2ZlZXMyVW5pdGFyeVJld2FyZChmZWVzOiBiaWdpbnQsIF93aXRuZXNzZXM6IG51bWJlcik6IGJpZ2ludCB7XG5cdFx0cmV0dXJuIEJpZ01hdGgubWF4KGZlZXMsIEJpZ0ludChNYXRoLmNlaWwoTnVtYmVyKERhdGFSZXF1ZXN0UGF5bG9hZC5NSU5fQ09MTEFURVJBTCAvIENPTExBVEVSQUxfUkFUSU8pKSkpO1xuXHR9XG5cdHByb3RlY3RlZCBfZmVlczJWYWx1ZShmZWVzOiBiaWdpbnQsIHdpdG5lc3NlczogbnVtYmVyKTogYmlnaW50IHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0QmlnSW50KHdpdG5lc3NlcykgKlxuXHRcdFx0KHRoaXMuX2ZlZXMyVW5pdGFyeVJld2FyZChmZWVzLCB3aXRuZXNzZXMpICsgMm4gKiB0aGlzLl9mZWVzMlVuaXRhcnlDb21taXRSZXZlYWxSZXdhcmQoZmVlcywgd2l0bmVzc2VzKSlcblx0XHQpO1xuXHR9XG5cblx0cHJvdGVjdGVkIF90b0RyT3V0cHV0UHJvdG9idWYoKTogYW55IHtcblx0XHRpZiAodGhpcy5fcmVxdWVzdCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0Li4udGhpcy5kcm9TTEEsXG5cdFx0XHRcdGRhdGFSZXF1ZXN0OiB0aGlzLl9yZXF1ZXN0LnRvUHJvdG9idWYoKSxcblx0XHRcdH07XG5cdFx0fVxuXHR9XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"StakePayload.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/payloads/StakePayload.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACN,KAAK,EAGL,KAAK,mBAAmB,EAExB,KAAK,iBAAiB,EACtB,mBAAmB,EACnB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG;IACpD,aAAa,EAAE,SAAS,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAMF,qBAAa,YAAa,SAAQ,0BAA0B,CAAC,kBAAkB,CAAC;IAC/E,OAAc,UAAU,SAAS;IACjC,OAAc,SAAS,SAAmB;IAE1C,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,QAAQ,IAAI,OAAO,CAM7B;IAED,IAAW,KAAK,IAAI,KAAK,CAExB;IAED,IAAW,MAAM,IAAI,MAAM,CAM1B;IAEM,WAAW,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,OAAO;;;;;IAUzD,MAAM,CAAC,SAAS,UAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,GAAG;IAkCjD,UAAU,IAAI,GAAG;IAqDjB,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,kBAAkB,GAAG,SAAS;IA8CnE,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG;cAU/B,oBAAoB,CACnC,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,sBAA6B,GACnC,OAAO,CAAC,MAAM,CAAC;CAkBlB"}
1
+ {"version":3,"file":"StakePayload.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/payloads/StakePayload.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACN,KAAK,EAGL,KAAK,mBAAmB,EAExB,KAAK,iBAAiB,EACtB,mBAAmB,EACnB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG;IACpD,aAAa,EAAE,SAAS,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAMF,qBAAa,YAAa,SAAQ,0BAA0B,CAAC,kBAAkB,CAAC;IAC/E,OAAc,UAAU,SAAS;IACjC,OAAc,SAAS,SAAmB;IAE1C,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,KAAK,IAAI,KAAK,CAExB;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAEM,WAAW,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,OAAO;;;;;IAQzD,MAAM,CAAC,SAAS,UAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,GAAG;IAgCjD,UAAU,IAAI,GAAG;IA6CjB,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,kBAAkB,GAAG,SAAS;IAuCnE,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG;cAQ/B,oBAAoB,CACnC,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,sBAA6B,GACnC,OAAO,CAAC,MAAM,CAAC;CAkBlB"}