@bitgo-beta/sdk-coin-canton 1.0.1-beta.82 → 1.0.1-beta.821

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 (181) hide show
  1. package/dist/src/canton.d.ts +22 -1
  2. package/dist/src/canton.d.ts.map +1 -1
  3. package/dist/src/canton.js +293 -10
  4. package/dist/src/cantonToken.d.ts +19 -0
  5. package/dist/src/cantonToken.d.ts.map +1 -0
  6. package/dist/src/cantonToken.js +52 -0
  7. package/dist/src/index.d.ts +1 -0
  8. package/dist/src/index.d.ts.map +1 -1
  9. package/dist/src/index.js +2 -1
  10. package/dist/src/lib/allocationAllocateBuilder.d.ts +126 -0
  11. package/dist/src/lib/allocationAllocateBuilder.d.ts.map +1 -0
  12. package/dist/src/lib/allocationAllocateBuilder.js +248 -0
  13. package/dist/src/lib/allocationAllocateWithdrawnBuilder.d.ts +67 -0
  14. package/dist/src/lib/allocationAllocateWithdrawnBuilder.d.ts.map +1 -0
  15. package/dist/src/lib/allocationAllocateWithdrawnBuilder.js +130 -0
  16. package/dist/src/lib/allocationRejectBuilder.d.ts +51 -0
  17. package/dist/src/lib/allocationRejectBuilder.d.ts.map +1 -0
  18. package/dist/src/lib/allocationRejectBuilder.js +107 -0
  19. package/dist/src/lib/allocationRequestBuilder.d.ts +116 -0
  20. package/dist/src/lib/allocationRequestBuilder.d.ts.map +1 -0
  21. package/dist/src/lib/allocationRequestBuilder.js +243 -0
  22. package/dist/src/lib/amount.d.ts +8 -0
  23. package/dist/src/lib/amount.d.ts.map +1 -0
  24. package/dist/src/lib/amount.js +33 -0
  25. package/dist/src/lib/cantonCommandBuilder.d.ts +72 -0
  26. package/dist/src/lib/cantonCommandBuilder.d.ts.map +1 -0
  27. package/dist/src/lib/cantonCommandBuilder.js +173 -0
  28. package/dist/src/lib/clearSigning.d.ts +58 -0
  29. package/dist/src/lib/clearSigning.d.ts.map +1 -0
  30. package/dist/src/lib/clearSigning.js +66 -0
  31. package/dist/src/lib/cosignDelegationAcceptBuilder.d.ts +56 -0
  32. package/dist/src/lib/cosignDelegationAcceptBuilder.d.ts.map +1 -0
  33. package/dist/src/lib/cosignDelegationAcceptBuilder.js +112 -0
  34. package/dist/src/lib/cosignDelegationProposalBuilder.d.ts +60 -0
  35. package/dist/src/lib/cosignDelegationProposalBuilder.d.ts.map +1 -0
  36. package/dist/src/lib/cosignDelegationProposalBuilder.js +111 -0
  37. package/dist/src/lib/endInvestorOnboardingOfferBuilder.d.ts +58 -0
  38. package/dist/src/lib/endInvestorOnboardingOfferBuilder.d.ts.map +1 -0
  39. package/dist/src/lib/endInvestorOnboardingOfferBuilder.js +112 -0
  40. package/dist/src/lib/iface.d.ts +141 -2
  41. package/dist/src/lib/iface.d.ts.map +1 -1
  42. package/dist/src/lib/iface.js +3 -1
  43. package/dist/src/lib/index.d.ts +13 -0
  44. package/dist/src/lib/index.d.ts.map +1 -1
  45. package/dist/src/lib/index.js +29 -2
  46. package/dist/src/lib/messages/cantonBaseMessage.d.ts +16 -0
  47. package/dist/src/lib/messages/cantonBaseMessage.d.ts.map +1 -0
  48. package/dist/src/lib/messages/cantonBaseMessage.js +28 -0
  49. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessage.d.ts +14 -0
  50. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessage.d.ts.map +1 -0
  51. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessage.js +23 -0
  52. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessageBuilder.d.ts +17 -0
  53. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessageBuilder.d.ts.map +1 -0
  54. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessageBuilder.js +25 -0
  55. package/dist/src/lib/messages/cantonSignTopology/index.d.ts +3 -0
  56. package/dist/src/lib/messages/cantonSignTopology/index.d.ts.map +1 -0
  57. package/dist/src/lib/messages/cantonSignTopology/index.js +19 -0
  58. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessage.d.ts +13 -0
  59. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessage.d.ts.map +1 -0
  60. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessage.js +22 -0
  61. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessageBuilder.d.ts +14 -0
  62. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessageBuilder.d.ts.map +1 -0
  63. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessageBuilder.js +22 -0
  64. package/dist/src/lib/messages/cantonSignTransaction/index.d.ts +3 -0
  65. package/dist/src/lib/messages/cantonSignTransaction/index.d.ts.map +1 -0
  66. package/dist/src/lib/messages/cantonSignTransaction/index.js +19 -0
  67. package/dist/src/lib/messages/index.d.ts +5 -0
  68. package/dist/src/lib/messages/index.d.ts.map +1 -0
  69. package/dist/src/lib/messages/index.js +21 -0
  70. package/dist/src/lib/messages/messageBuilderFactory.d.ts +7 -0
  71. package/dist/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
  72. package/dist/src/lib/messages/messageBuilderFactory.js +23 -0
  73. package/dist/src/lib/oneStepPreApprovalBuilder.d.ts +8 -0
  74. package/dist/src/lib/oneStepPreApprovalBuilder.d.ts.map +1 -1
  75. package/dist/src/lib/oneStepPreApprovalBuilder.js +15 -1
  76. package/dist/src/lib/resourcesInterface.d.ts +1 -1
  77. package/dist/src/lib/resourcesInterface.d.ts.map +1 -1
  78. package/dist/src/lib/resourcesInterface.js +1 -1
  79. package/dist/src/lib/transaction/transaction.d.ts +17 -1
  80. package/dist/src/lib/transaction/transaction.d.ts.map +1 -1
  81. package/dist/src/lib/transaction/transaction.js +307 -16
  82. package/dist/src/lib/transactionBuilderFactory.d.ts +22 -0
  83. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  84. package/dist/src/lib/transactionBuilderFactory.js +78 -1
  85. package/dist/src/lib/transferAcknowledgeBuilder.d.ts +4 -4
  86. package/dist/src/lib/transferAcknowledgeBuilder.d.ts.map +1 -1
  87. package/dist/src/lib/transferAcknowledgeBuilder.js +5 -7
  88. package/dist/src/lib/transferBuilder.d.ts +84 -2
  89. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  90. package/dist/src/lib/transferBuilder.js +164 -2
  91. package/dist/src/lib/transferOfferWithdrawnBuilder.d.ts +67 -0
  92. package/dist/src/lib/transferOfferWithdrawnBuilder.d.ts.map +1 -0
  93. package/dist/src/lib/transferOfferWithdrawnBuilder.js +130 -0
  94. package/dist/src/lib/transferPreapprovalCancelBuilder.d.ts +68 -0
  95. package/dist/src/lib/transferPreapprovalCancelBuilder.d.ts.map +1 -0
  96. package/dist/src/lib/transferPreapprovalCancelBuilder.js +124 -0
  97. package/dist/src/lib/utils.d.ts +45 -3
  98. package/dist/src/lib/utils.d.ts.map +1 -1
  99. package/dist/src/lib/utils.js +776 -66
  100. package/dist/src/lib/walletInitBuilder.d.ts +2 -1
  101. package/dist/src/lib/walletInitBuilder.d.ts.map +1 -1
  102. package/dist/src/lib/walletInitBuilder.js +4 -1
  103. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts +2 -1
  104. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts.map +1 -1
  105. package/dist/src/lib/walletInitialization/walletInitTransaction.js +14 -1
  106. package/dist/src/register.d.ts +2 -0
  107. package/dist/src/register.d.ts.map +1 -1
  108. package/dist/src/register.js +19 -2
  109. package/dist/test/helper.d.ts +3 -0
  110. package/dist/test/helper.d.ts.map +1 -0
  111. package/dist/test/helper.js +9 -0
  112. package/dist/test/integration/canton.integration.d.ts +2 -0
  113. package/dist/test/integration/canton.integration.d.ts.map +1 -0
  114. package/dist/test/integration/canton.integration.js +157 -0
  115. package/dist/test/integration/canton.token.integration.d.ts +2 -0
  116. package/dist/test/integration/canton.token.integration.d.ts.map +1 -0
  117. package/dist/test/integration/canton.token.integration.js +51 -0
  118. package/dist/test/resources.d.ts +263 -2
  119. package/dist/test/resources.d.ts.map +1 -1
  120. package/dist/test/resources.js +269 -7
  121. package/dist/test/unit/builder/allocationAllocate/allocationAllocateBuilder.d.ts +2 -0
  122. package/dist/test/unit/builder/allocationAllocate/allocationAllocateBuilder.d.ts.map +1 -0
  123. package/dist/test/unit/builder/allocationAllocate/allocationAllocateBuilder.js +368 -0
  124. package/dist/test/unit/builder/allocationAllocateWithdrawn/allocationAllocateWithdrawnBuilder.d.ts +2 -0
  125. package/dist/test/unit/builder/allocationAllocateWithdrawn/allocationAllocateWithdrawnBuilder.d.ts.map +1 -0
  126. package/dist/test/unit/builder/allocationAllocateWithdrawn/allocationAllocateWithdrawnBuilder.js +133 -0
  127. package/dist/test/unit/builder/allocationReject/allocationRejectBuilder.d.ts +2 -0
  128. package/dist/test/unit/builder/allocationReject/allocationRejectBuilder.d.ts.map +1 -0
  129. package/dist/test/unit/builder/allocationReject/allocationRejectBuilder.js +121 -0
  130. package/dist/test/unit/builder/allocationRequest/allocationRequestBuilder.d.ts +2 -0
  131. package/dist/test/unit/builder/allocationRequest/allocationRequestBuilder.d.ts.map +1 -0
  132. package/dist/test/unit/builder/allocationRequest/allocationRequestBuilder.js +437 -0
  133. package/dist/test/unit/builder/cantonCommand/cantonCommandBuilder.d.ts +2 -0
  134. package/dist/test/unit/builder/cantonCommand/cantonCommandBuilder.d.ts.map +1 -0
  135. package/dist/test/unit/builder/cantonCommand/cantonCommandBuilder.js +340 -0
  136. package/dist/test/unit/builder/cosignDelegationAccept/cosignDelegationAcceptBuilder.d.ts +2 -0
  137. package/dist/test/unit/builder/cosignDelegationAccept/cosignDelegationAcceptBuilder.d.ts.map +1 -0
  138. package/dist/test/unit/builder/cosignDelegationAccept/cosignDelegationAcceptBuilder.js +116 -0
  139. package/dist/test/unit/builder/cosignDelegationProposal/cosignDelegationProposalBuilder.d.ts +2 -0
  140. package/dist/test/unit/builder/cosignDelegationProposal/cosignDelegationProposalBuilder.d.ts.map +1 -0
  141. package/dist/test/unit/builder/cosignDelegationProposal/cosignDelegationProposalBuilder.js +74 -0
  142. package/dist/test/unit/builder/endInvestorOnboardingOffer/endInvestorOnboardingOfferBuilder.d.ts +2 -0
  143. package/dist/test/unit/builder/endInvestorOnboardingOffer/endInvestorOnboardingOfferBuilder.d.ts.map +1 -0
  144. package/dist/test/unit/builder/endInvestorOnboardingOffer/endInvestorOnboardingOfferBuilder.js +116 -0
  145. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.js +20 -1
  146. package/dist/test/unit/builder/transfer/transferBuilder.d.ts +2 -0
  147. package/dist/test/unit/builder/transfer/transferBuilder.d.ts.map +1 -0
  148. package/dist/test/unit/builder/transfer/transferBuilder.js +100 -0
  149. package/dist/test/unit/builder/transferAccept/transferAcceptBuilder.js +65 -1
  150. package/dist/test/unit/builder/transferAcknowledge/transferAcknowledgeBuilder.js +34 -1
  151. package/dist/test/unit/builder/transferOfferWithdrawn/transferOfferWithdrawnBuilder.d.ts +2 -0
  152. package/dist/test/unit/builder/transferOfferWithdrawn/transferOfferWithdrawnBuilder.d.ts.map +1 -0
  153. package/dist/test/unit/builder/transferOfferWithdrawn/transferOfferWithdrawnBuilder.js +64 -0
  154. package/dist/test/unit/builder/transferPreapprovalCancel/transferPreapprovalCancelBuilder.d.ts +2 -0
  155. package/dist/test/unit/builder/transferPreapprovalCancel/transferPreapprovalCancelBuilder.d.ts.map +1 -0
  156. package/dist/test/unit/builder/transferPreapprovalCancel/transferPreapprovalCancelBuilder.js +74 -0
  157. package/dist/test/unit/builder/transferReject/transferRejectBuilder.js +41 -1
  158. package/dist/test/unit/canton.d.ts +2 -0
  159. package/dist/test/unit/canton.d.ts.map +1 -0
  160. package/dist/test/unit/canton.js +853 -0
  161. package/dist/test/unit/index.d.ts +5 -0
  162. package/dist/test/unit/index.d.ts.map +1 -1
  163. package/dist/test/unit/index.js +6 -1
  164. package/dist/test/unit/messages/cantonSignTopologyMessage.d.ts +2 -0
  165. package/dist/test/unit/messages/cantonSignTopologyMessage.d.ts.map +1 -0
  166. package/dist/test/unit/messages/cantonSignTopologyMessage.js +46 -0
  167. package/dist/test/unit/messages/cantonSignTransactionMessage.d.ts +2 -0
  168. package/dist/test/unit/messages/cantonSignTransactionMessage.d.ts.map +1 -0
  169. package/dist/test/unit/messages/cantonSignTransactionMessage.js +48 -0
  170. package/dist/test/unit/messages/clearSigning.d.ts +2 -0
  171. package/dist/test/unit/messages/clearSigning.d.ts.map +1 -0
  172. package/dist/test/unit/messages/clearSigning.js +72 -0
  173. package/dist/test/unit/messages/messageBuilderFactory.d.ts +2 -0
  174. package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
  175. package/dist/test/unit/messages/messageBuilderFactory.js +52 -0
  176. package/dist/test/unit/register.d.ts +2 -0
  177. package/dist/test/unit/register.d.ts.map +1 -0
  178. package/dist/test/unit/register.js +65 -0
  179. package/dist/test/unit/utils.js +389 -9
  180. package/dist/tsconfig.tsbuildinfo +1 -1
  181. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"resourcesInterface.d.ts","sourceRoot":"","sources":["../../../src/lib/resourcesInterface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resourcesInterface.d.ts","sourceRoot":"","sources":["../../../src/lib/resourcesInterface.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzSW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9yZXNvdXJjZXNJbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGEge1xuICBzdWJtaXR0ZXJJbmZvPzogTWV0YWRhdGFfU3VibWl0dGVySW5mbztcbiAgc3luY2hyb25pemVySWQ6IHN0cmluZztcbiAgbWVkaWF0b3JHcm91cDogbnVtYmVyO1xuICB0cmFuc2FjdGlvblV1aWQ6IHN0cmluZztcbiAgcHJlcGFyYXRpb25UaW1lOiBiaWdpbnQ7XG4gIGlucHV0Q29udHJhY3RzOiBNZXRhZGF0YV9JbnB1dENvbnRyYWN0W107XG4gIG1pbkxlZGdlckVmZmVjdGl2ZVRpbWU/OiBiaWdpbnQ7XG4gIG1heExlZGdlckVmZmVjdGl2ZVRpbWU/OiBiaWdpbnQ7XG4gIGdsb2JhbEtleU1hcHBpbmc6IE1ldGFkYXRhX0dsb2JhbEtleU1hcHBpbmdFbnRyeVtdO1xuICBtYXhSZWNvcmRUaW1lPzogYmlnaW50O1xufVxuXG5pbnRlcmZhY2UgTWV0YWRhdGFfU3VibWl0dGVySW5mbyB7XG4gIGFjdEFzOiBzdHJpbmdbXTtcbiAgY29tbWFuZElkOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBNZXRhZGF0YV9JbnB1dENvbnRyYWN0IHtcbiAgY29udHJhY3Q6XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3YxJztcbiAgICAgICAgdjE6IENyZWF0ZTtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiB1bmRlZmluZWQ7XG4gICAgICB9O1xuICBjcmVhdGVkQXQ6IGJpZ2ludDtcbiAgZXZlbnRCbG9iOiBVaW50OEFycmF5O1xufVxuXG5pbnRlcmZhY2UgQ3JlYXRlIHtcbiAgbGZWZXJzaW9uOiBzdHJpbmc7XG4gIGNvbnRyYWN0SWQ6IHN0cmluZztcbiAgcGFja2FnZU5hbWU6IHN0cmluZztcbiAgdGVtcGxhdGVJZD86IElkZW50aWZpZXI7XG4gIGFyZ3VtZW50PzogVmFsdWU7XG4gIHNpZ25hdG9yaWVzOiBzdHJpbmdbXTtcbiAgc3Rha2Vob2xkZXJzOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIE1ldGFkYXRhX0dsb2JhbEtleU1hcHBpbmdFbnRyeSB7XG4gIGtleT86IEdsb2JhbEtleTtcbiAgdmFsdWU/OiBWYWx1ZTtcbn1cblxuaW50ZXJmYWNlIEdsb2JhbEtleSB7XG4gIHRlbXBsYXRlSWQ/OiBJZGVudGlmaWVyO1xuICBwYWNrYWdlTmFtZTogc3RyaW5nO1xuICBrZXk/OiBWYWx1ZTtcbiAgaGFzaDogVWludDhBcnJheTtcbn1cblxuaW50ZXJmYWNlIElkZW50aWZpZXIge1xuICBwYWNrYWdlSWQ6IHN0cmluZztcbiAgbW9kdWxlTmFtZTogc3RyaW5nO1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBWYWx1ZSB7XG4gIHN1bTpcbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAndW5pdCc7XG4gICAgICAgIHVuaXQ6IEVtcHR5O1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICdib29sJztcbiAgICAgICAgYm9vbDogYm9vbGVhbjtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnaW50NjQnO1xuICAgICAgICBpbnQ2NDogc3RyaW5nO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICdkYXRlJztcbiAgICAgICAgZGF0ZTogbnVtYmVyO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICd0aW1lc3RhbXAnO1xuICAgICAgICB0aW1lc3RhbXA6IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnbnVtZXJpYyc7XG4gICAgICAgIG51bWVyaWM6IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAncGFydHknO1xuICAgICAgICBwYXJ0eTogc3RyaW5nO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICd0ZXh0JztcbiAgICAgICAgdGV4dDogc3RyaW5nO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICdjb250cmFjdElkJztcbiAgICAgICAgY29udHJhY3RJZDogc3RyaW5nO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICdvcHRpb25hbCc7XG4gICAgICAgIG9wdGlvbmFsOiBPcHRpb25hbDtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnbGlzdCc7XG4gICAgICAgIGxpc3Q6IExpc3Q7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3RleHRNYXAnO1xuICAgICAgICB0ZXh0TWFwOiBUZXh0TWFwO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICdnZW5NYXAnO1xuICAgICAgICBnZW5NYXA6IEdlbk1hcDtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAncmVjb3JkJztcbiAgICAgICAgcmVjb3JkOiBSZWNvcmQ7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3ZhcmlhbnQnO1xuICAgICAgICB2YXJpYW50OiBWYXJpYW50O1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICdlbnVtJztcbiAgICAgICAgZW51bTogRW51bTtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiB1bmRlZmluZWQ7XG4gICAgICB9O1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZVxuaW50ZXJmYWNlIEVtcHR5IHt9XG5cbmludGVyZmFjZSBPcHRpb25hbCB7XG4gIHZhbHVlPzogVmFsdWU7XG59XG5cbmludGVyZmFjZSBMaXN0IHtcbiAgZWxlbWVudHM6IFZhbHVlW107XG59XG5cbmludGVyZmFjZSBUZXh0TWFwIHtcbiAgZW50cmllczogVGV4dE1hcF9FbnRyeVtdO1xufVxuXG5pbnRlcmZhY2UgVGV4dE1hcF9FbnRyeSB7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZT86IFZhbHVlO1xufVxuXG5pbnRlcmZhY2UgR2VuTWFwIHtcbiAgZW50cmllczogR2VuTWFwX0VudHJ5W107XG59XG5cbmludGVyZmFjZSBHZW5NYXBfRW50cnkge1xuICBrZXk/OiBWYWx1ZTtcbiAgdmFsdWU/OiBWYWx1ZTtcbn1cblxuaW50ZXJmYWNlIFJlY29yZCB7XG4gIHJlY29yZElkPzogSWRlbnRpZmllcjtcbiAgZmllbGRzOiBSZWNvcmRGaWVsZFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZEZpZWxkIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU/OiBWYWx1ZTtcbn1cblxuaW50ZXJmYWNlIFZhcmlhbnQge1xuICB2YXJpYW50SWQ/OiBJZGVudGlmaWVyO1xuICBjb25zdHJ1Y3Rvcjogc3RyaW5nO1xuICB2YWx1ZT86IFZhbHVlO1xufVxuXG5pbnRlcmZhY2UgRW51bSB7XG4gIGVudW1JZD86IElkZW50aWZpZXI7XG4gIGNvbnN0cnVjdG9yOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGFtbFRyYW5zYWN0aW9uIHtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICByb290czogc3RyaW5nW107XG4gIG5vZGVzOiBEYW1sVHJhbnNhY3Rpb25fTm9kZVtdO1xuICBub2RlU2VlZHM6IERhbWxUcmFuc2FjdGlvbl9Ob2RlU2VlZFtdO1xufVxuXG5pbnRlcmZhY2UgRGFtbFRyYW5zYWN0aW9uX05vZGUge1xuICBub2RlSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFZlcnNpb25lZCBub2RlXG4gICAqXG4gICAqIEBnZW5lcmF0ZWQgZnJvbSBwcm90b2J1ZiBvbmVvZjogdmVyc2lvbmVkX25vZGVcbiAgICovXG4gIHZlcnNpb25lZE5vZGU6XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3YxJztcbiAgICAgICAgdjE6IE5vZGU7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogdW5kZWZpbmVkO1xuICAgICAgfTtcbn1cblxuaW50ZXJmYWNlIE5vZGUge1xuICBub2RlVHlwZTpcbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnY3JlYXRlJztcbiAgICAgICAgY3JlYXRlOiBDcmVhdGU7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ2ZldGNoJztcbiAgICAgICAgZmV0Y2g6IEZldGNoO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICdleGVyY2lzZSc7XG4gICAgICAgIGV4ZXJjaXNlOiBFeGVyY2lzZTtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAncm9sbGJhY2snO1xuICAgICAgICByb2xsYmFjazogUm9sbGJhY2s7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogdW5kZWZpbmVkO1xuICAgICAgfTtcbn1cblxuaW50ZXJmYWNlIEZldGNoIHtcbiAgbGZWZXJzaW9uOiBzdHJpbmc7XG4gIGNvbnRyYWN0SWQ6IHN0cmluZztcbiAgcGFja2FnZU5hbWU6IHN0cmluZztcbiAgdGVtcGxhdGVJZD86IElkZW50aWZpZXI7XG4gIHNpZ25hdG9yaWVzOiBzdHJpbmdbXTtcbiAgc3Rha2Vob2xkZXJzOiBzdHJpbmdbXTtcbiAgYWN0aW5nUGFydGllczogc3RyaW5nW107XG4gIGludGVyZmFjZUlkPzogSWRlbnRpZmllcjtcbn1cblxuaW50ZXJmYWNlIEV4ZXJjaXNlIHtcbiAgbGZWZXJzaW9uOiBzdHJpbmc7XG4gIGNvbnRyYWN0SWQ6IHN0cmluZztcbiAgcGFja2FnZU5hbWU6IHN0cmluZztcbiAgdGVtcGxhdGVJZD86IElkZW50aWZpZXI7XG4gIHNpZ25hdG9yaWVzOiBzdHJpbmdbXTtcbiAgc3Rha2Vob2xkZXJzOiBzdHJpbmdbXTtcbiAgYWN0aW5nUGFydGllczogc3RyaW5nW107XG4gIGludGVyZmFjZUlkPzogSWRlbnRpZmllcjtcbiAgY2hvaWNlSWQ6IHN0cmluZztcbiAgY2hvc2VuVmFsdWU/OiBWYWx1ZTtcbiAgY29uc3VtaW5nOiBib29sZWFuO1xuICBjaGlsZHJlbjogc3RyaW5nW107XG4gIGV4ZXJjaXNlUmVzdWx0PzogVmFsdWU7XG4gIGNob2ljZU9ic2VydmVyczogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBSb2xsYmFjayB7XG4gIGNoaWxkcmVuOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIERhbWxUcmFuc2FjdGlvbl9Ob2RlU2VlZCB7XG4gIG5vZGVJZDogbnVtYmVyO1xuICBzZWVkOiBVaW50OEFycmF5O1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzSW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9yZXNvdXJjZXNJbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGEge1xuICBzdWJtaXR0ZXJJbmZvPzogTWV0YWRhdGFfU3VibWl0dGVySW5mbztcbiAgc3luY2hyb25pemVySWQ6IHN0cmluZztcbiAgbWVkaWF0b3JHcm91cDogbnVtYmVyO1xuICB0cmFuc2FjdGlvblV1aWQ6IHN0cmluZztcbiAgcHJlcGFyYXRpb25UaW1lOiBiaWdpbnQ7XG4gIGlucHV0Q29udHJhY3RzOiBNZXRhZGF0YV9JbnB1dENvbnRyYWN0W107XG4gIG1pbkxlZGdlckVmZmVjdGl2ZVRpbWU/OiBiaWdpbnQ7XG4gIG1heExlZGdlckVmZmVjdGl2ZVRpbWU/OiBiaWdpbnQ7XG4gIGdsb2JhbEtleU1hcHBpbmc6IE1ldGFkYXRhX0dsb2JhbEtleU1hcHBpbmdFbnRyeVtdO1xuICBtYXhSZWNvcmRUaW1lPzogYmlnaW50O1xufVxuXG5pbnRlcmZhY2UgTWV0YWRhdGFfU3VibWl0dGVySW5mbyB7XG4gIGFjdEFzOiBzdHJpbmdbXTtcbiAgY29tbWFuZElkOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBNZXRhZGF0YV9JbnB1dENvbnRyYWN0IHtcbiAgY29udHJhY3Q6XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3YxJztcbiAgICAgICAgdjE6IENyZWF0ZTtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiB1bmRlZmluZWQ7XG4gICAgICB9O1xuICBjcmVhdGVkQXQ6IGJpZ2ludDtcbiAgZXZlbnRCbG9iOiBVaW50OEFycmF5O1xufVxuXG5pbnRlcmZhY2UgQ3JlYXRlIHtcbiAgbGZWZXJzaW9uOiBzdHJpbmc7XG4gIGNvbnRyYWN0SWQ6IHN0cmluZztcbiAgcGFja2FnZU5hbWU6IHN0cmluZztcbiAgdGVtcGxhdGVJZD86IElkZW50aWZpZXI7XG4gIGFyZ3VtZW50PzogVmFsdWU7XG4gIHNpZ25hdG9yaWVzOiBzdHJpbmdbXTtcbiAgc3Rha2Vob2xkZXJzOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIE1ldGFkYXRhX0dsb2JhbEtleU1hcHBpbmdFbnRyeSB7XG4gIGtleT86IEdsb2JhbEtleTtcbiAgdmFsdWU/OiBWYWx1ZTtcbn1cblxuaW50ZXJmYWNlIEdsb2JhbEtleSB7XG4gIHRlbXBsYXRlSWQ/OiBJZGVudGlmaWVyO1xuICBwYWNrYWdlTmFtZTogc3RyaW5nO1xuICBrZXk/OiBWYWx1ZTtcbiAgaGFzaDogVWludDhBcnJheTtcbn1cblxuaW50ZXJmYWNlIElkZW50aWZpZXIge1xuICBwYWNrYWdlSWQ6IHN0cmluZztcbiAgbW9kdWxlTmFtZTogc3RyaW5nO1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWUge1xuICBzdW06XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3VuaXQnO1xuICAgICAgICB1bml0OiBFbXB0eTtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnYm9vbCc7XG4gICAgICAgIGJvb2w6IGJvb2xlYW47XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ2ludDY0JztcbiAgICAgICAgaW50NjQ6IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnZGF0ZSc7XG4gICAgICAgIGRhdGU6IG51bWJlcjtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAndGltZXN0YW1wJztcbiAgICAgICAgdGltZXN0YW1wOiBzdHJpbmc7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ251bWVyaWMnO1xuICAgICAgICBudW1lcmljOiBzdHJpbmc7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3BhcnR5JztcbiAgICAgICAgcGFydHk6IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAndGV4dCc7XG4gICAgICAgIHRleHQ6IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnY29udHJhY3RJZCc7XG4gICAgICAgIGNvbnRyYWN0SWQ6IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnb3B0aW9uYWwnO1xuICAgICAgICBvcHRpb25hbDogT3B0aW9uYWw7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ2xpc3QnO1xuICAgICAgICBsaXN0OiBMaXN0O1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICd0ZXh0TWFwJztcbiAgICAgICAgdGV4dE1hcDogVGV4dE1hcDtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnZ2VuTWFwJztcbiAgICAgICAgZ2VuTWFwOiBHZW5NYXA7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3JlY29yZCc7XG4gICAgICAgIHJlY29yZDogUmVjb3JkO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICd2YXJpYW50JztcbiAgICAgICAgdmFyaWFudDogVmFyaWFudDtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnZW51bSc7XG4gICAgICAgIGVudW06IEVudW07XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogdW5kZWZpbmVkO1xuICAgICAgfTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2VcbmludGVyZmFjZSBFbXB0eSB7fVxuXG5pbnRlcmZhY2UgT3B0aW9uYWwge1xuICB2YWx1ZT86IFZhbHVlO1xufVxuXG5pbnRlcmZhY2UgTGlzdCB7XG4gIGVsZW1lbnRzOiBWYWx1ZVtdO1xufVxuXG5pbnRlcmZhY2UgVGV4dE1hcCB7XG4gIGVudHJpZXM6IFRleHRNYXBfRW50cnlbXTtcbn1cblxuaW50ZXJmYWNlIFRleHRNYXBfRW50cnkge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU/OiBWYWx1ZTtcbn1cblxuaW50ZXJmYWNlIEdlbk1hcCB7XG4gIGVudHJpZXM6IEdlbk1hcF9FbnRyeVtdO1xufVxuXG5pbnRlcmZhY2UgR2VuTWFwX0VudHJ5IHtcbiAga2V5PzogVmFsdWU7XG4gIHZhbHVlPzogVmFsdWU7XG59XG5cbmludGVyZmFjZSBSZWNvcmQge1xuICByZWNvcmRJZD86IElkZW50aWZpZXI7XG4gIGZpZWxkczogUmVjb3JkRmllbGRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWNvcmRGaWVsZCB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlPzogVmFsdWU7XG59XG5cbmludGVyZmFjZSBWYXJpYW50IHtcbiAgdmFyaWFudElkPzogSWRlbnRpZmllcjtcbiAgY29uc3RydWN0b3I6IHN0cmluZztcbiAgdmFsdWU/OiBWYWx1ZTtcbn1cblxuaW50ZXJmYWNlIEVudW0ge1xuICBlbnVtSWQ/OiBJZGVudGlmaWVyO1xuICBjb25zdHJ1Y3Rvcjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhbWxUcmFuc2FjdGlvbiB7XG4gIHZlcnNpb246IHN0cmluZztcbiAgcm9vdHM6IHN0cmluZ1tdO1xuICBub2RlczogRGFtbFRyYW5zYWN0aW9uX05vZGVbXTtcbiAgbm9kZVNlZWRzOiBEYW1sVHJhbnNhY3Rpb25fTm9kZVNlZWRbXTtcbn1cblxuaW50ZXJmYWNlIERhbWxUcmFuc2FjdGlvbl9Ob2RlIHtcbiAgbm9kZUlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBWZXJzaW9uZWQgbm9kZVxuICAgKlxuICAgKiBAZ2VuZXJhdGVkIGZyb20gcHJvdG9idWYgb25lb2Y6IHZlcnNpb25lZF9ub2RlXG4gICAqL1xuICB2ZXJzaW9uZWROb2RlOlxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICd2MSc7XG4gICAgICAgIHYxOiBOb2RlO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6IHVuZGVmaW5lZDtcbiAgICAgIH07XG59XG5cbmludGVyZmFjZSBOb2RlIHtcbiAgbm9kZVR5cGU6XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ2NyZWF0ZSc7XG4gICAgICAgIGNyZWF0ZTogQ3JlYXRlO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICdmZXRjaCc7XG4gICAgICAgIGZldGNoOiBGZXRjaDtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnZXhlcmNpc2UnO1xuICAgICAgICBleGVyY2lzZTogRXhlcmNpc2U7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3JvbGxiYWNrJztcbiAgICAgICAgcm9sbGJhY2s6IFJvbGxiYWNrO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6IHVuZGVmaW5lZDtcbiAgICAgIH07XG59XG5cbmludGVyZmFjZSBGZXRjaCB7XG4gIGxmVmVyc2lvbjogc3RyaW5nO1xuICBjb250cmFjdElkOiBzdHJpbmc7XG4gIHBhY2thZ2VOYW1lOiBzdHJpbmc7XG4gIHRlbXBsYXRlSWQ/OiBJZGVudGlmaWVyO1xuICBzaWduYXRvcmllczogc3RyaW5nW107XG4gIHN0YWtlaG9sZGVyczogc3RyaW5nW107XG4gIGFjdGluZ1BhcnRpZXM6IHN0cmluZ1tdO1xuICBpbnRlcmZhY2VJZD86IElkZW50aWZpZXI7XG59XG5cbmludGVyZmFjZSBFeGVyY2lzZSB7XG4gIGxmVmVyc2lvbjogc3RyaW5nO1xuICBjb250cmFjdElkOiBzdHJpbmc7XG4gIHBhY2thZ2VOYW1lOiBzdHJpbmc7XG4gIHRlbXBsYXRlSWQ/OiBJZGVudGlmaWVyO1xuICBzaWduYXRvcmllczogc3RyaW5nW107XG4gIHN0YWtlaG9sZGVyczogc3RyaW5nW107XG4gIGFjdGluZ1BhcnRpZXM6IHN0cmluZ1tdO1xuICBpbnRlcmZhY2VJZD86IElkZW50aWZpZXI7XG4gIGNob2ljZUlkOiBzdHJpbmc7XG4gIGNob3NlblZhbHVlPzogVmFsdWU7XG4gIGNvbnN1bWluZzogYm9vbGVhbjtcbiAgY2hpbGRyZW46IHN0cmluZ1tdO1xuICBleGVyY2lzZVJlc3VsdD86IFZhbHVlO1xuICBjaG9pY2VPYnNlcnZlcnM6IHN0cmluZ1tdO1xufVxuXG5pbnRlcmZhY2UgUm9sbGJhY2sge1xuICBjaGlsZHJlbjogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBEYW1sVHJhbnNhY3Rpb25fTm9kZVNlZWQge1xuICBub2RlSWQ6IG51bWJlcjtcbiAgc2VlZDogVWludDhBcnJheTtcbn1cbiJdfQ==
@@ -1,15 +1,23 @@
1
1
  import { BaseKey, BaseTransaction, TransactionType } from '@bitgo-beta/sdk-core';
2
2
  import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
- import { CantonPrepareCommandResponse, TransferAcknowledge, TxData } from '../iface';
3
+ import { AllocationRequest, CantonPrepareCommandResponse, CosignDelegationProposal, EndInvestorOnboardingOfferData, TransactionExplanation, TransferAcknowledge, TxData } from '../iface';
4
4
  export declare class Transaction extends BaseTransaction {
5
5
  private _prepareCommand;
6
6
  private _signerFingerprint;
7
7
  private _acknowledgeData;
8
+ private _cosignDelegationProposalData;
9
+ private _allocationRequestData;
10
+ private _endInvestorOnboardingOfferData;
11
+ private _cantonCommandActAs;
8
12
  constructor(coinConfig: Readonly<CoinConfig>);
9
13
  get prepareCommand(): CantonPrepareCommandResponse;
10
14
  set prepareCommand(transaction: CantonPrepareCommandResponse);
11
15
  set transactionType(transactionType: TransactionType);
12
16
  set acknowledgeData(data: TransferAcknowledge);
17
+ set cosignDelegationProposalData(data: CosignDelegationProposal);
18
+ set allocationRequestData(data: AllocationRequest);
19
+ set endInvestorOnboardingOfferData(data: EndInvestorOnboardingOfferData);
20
+ set cantonCommandActAs(parties: string[]);
13
21
  get id(): string;
14
22
  set id(id: string);
15
23
  canSign(key: BaseKey): boolean;
@@ -18,6 +26,14 @@ export declare class Transaction extends BaseTransaction {
18
26
  toBroadcastFormat(): string;
19
27
  toJson(): TxData;
20
28
  get signablePayload(): Buffer;
29
+ get cantonCommandActAsParties(): string[];
21
30
  fromRawTransaction(rawTx: string): void;
31
+ /**
32
+ * Loads the input & output fields for the transaction
33
+ *
34
+ */
35
+ loadInputsAndOutputs(): void;
36
+ explainTransaction(): TransactionExplanation;
37
+ private buildCantonCommandSummary;
22
38
  }
23
39
  //# sourceMappingURL=transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/transaction/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAA2B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACL,4BAA4B,EAK5B,mBAAmB,EACnB,MAAM,EACP,MAAM,UAAU,CAAC;AAIlB,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAAsB;gBAElC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,IAAI,cAAc,IAAI,4BAA4B,CAEjD;IAED,IAAI,cAAc,CAAC,WAAW,EAAE,4BAA4B,EAE3D;IAED,IAAI,eAAe,CAAC,eAAe,EAAE,eAAe,EAEnD;IAED,IAAI,eAAe,CAAC,IAAI,EAAE,mBAAmB,EAE5C;IAED,IAAI,EAAE,IAAI,MAAM,CAKf;IAED,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAEhB;IAED,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,EAE/B;IAED,IAAI,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAExC;IAED,iBAAiB,IAAI,MAAM;IA6D3B,MAAM,IAAI,MAAM;IA6BhB,IAAI,eAAe,IAAI,MAAM,CAQ5B;IAED,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAsBxC"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/transaction/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAIf,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACL,iBAAiB,EAEjB,4BAA4B,EAC5B,wBAAwB,EACxB,8BAA8B,EAK9B,sBAAsB,EACtB,mBAAmB,EACnB,MAAM,EACP,MAAM,UAAU,CAAC;AAIlB,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,6BAA6B,CAA2B;IAChE,OAAO,CAAC,sBAAsB,CAAoB;IAClD,OAAO,CAAC,+BAA+B,CAAiC;IACxE,OAAO,CAAC,mBAAmB,CAAW;gBAE1B,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,IAAI,cAAc,IAAI,4BAA4B,CAEjD;IAED,IAAI,cAAc,CAAC,WAAW,EAAE,4BAA4B,EAE3D;IAED,IAAI,eAAe,CAAC,eAAe,EAAE,eAAe,EAEnD;IAED,IAAI,eAAe,CAAC,IAAI,EAAE,mBAAmB,EAE5C;IAED,IAAI,4BAA4B,CAAC,IAAI,EAAE,wBAAwB,EAE9D;IAED,IAAI,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,EAEhD;IAED,IAAI,8BAA8B,CAAC,IAAI,EAAE,8BAA8B,EAEtE;IAED,IAAI,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAEvC;IAED,IAAI,EAAE,IAAI,MAAM,CAKf;IAED,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAEhB;IAED,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,EAE/B;IAED,IAAI,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAExC;IAED,iBAAiB,IAAI,MAAM;IAsG3B,MAAM,IAAI,MAAM;IAoEhB,IAAI,eAAe,IAAI,MAAM,CAa5B;IAED,IAAI,yBAAyB,IAAI,MAAM,EAAE,CAExC;IAED,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAyCvC;;;OAGG;IACH,oBAAoB,IAAI,IAAI;IAoB5B,kBAAkB,IAAI,sBAAsB;IAgI5C,OAAO,CAAC,yBAAyB;CAoBlC"}
@@ -23,6 +23,18 @@ class Transaction extends sdk_core_1.BaseTransaction {
23
23
  set acknowledgeData(data) {
24
24
  this._acknowledgeData = data;
25
25
  }
26
+ set cosignDelegationProposalData(data) {
27
+ this._cosignDelegationProposalData = data;
28
+ }
29
+ set allocationRequestData(data) {
30
+ this._allocationRequestData = data;
31
+ }
32
+ set endInvestorOnboardingOfferData(data) {
33
+ this._endInvestorOnboardingOfferData = data;
34
+ }
35
+ set cantonCommandActAs(parties) {
36
+ this._cantonCommandActAs = parties;
37
+ }
26
38
  get id() {
27
39
  if (!this._id) {
28
40
  throw new sdk_core_1.InvalidTransactionError('transaction is is not set');
@@ -42,7 +54,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
42
54
  this._signerFingerprint = fingerprint;
43
55
  }
44
56
  toBroadcastFormat() {
45
- if (!this._type) {
57
+ if (this._type === undefined) {
46
58
  throw new sdk_core_1.InvalidTransactionError('Transaction type is not set');
47
59
  }
48
60
  if (this._type === sdk_core_1.TransactionType.TransferAcknowledge) {
@@ -56,13 +68,46 @@ class Transaction extends sdk_core_1.BaseTransaction {
56
68
  };
57
69
  return Buffer.from(JSON.stringify(minData)).toString('base64');
58
70
  }
71
+ if (this._type === sdk_core_1.TransactionType.CosignDelegationProposal) {
72
+ if (!this._cosignDelegationProposalData) {
73
+ throw new sdk_core_1.InvalidTransactionError('CosignDelegationProposalData is not set');
74
+ }
75
+ const minData = {
76
+ txType: sdk_core_1.TransactionType[this._type],
77
+ submissionId: this.id,
78
+ cosignDelegationProposalData: this._cosignDelegationProposalData,
79
+ };
80
+ return Buffer.from(JSON.stringify(minData)).toString('base64');
81
+ }
82
+ if (this._type === sdk_core_1.TransactionType.AllocationRequest) {
83
+ if (!this._allocationRequestData) {
84
+ throw new sdk_core_1.InvalidTransactionError('AllocationRequestData is not set');
85
+ }
86
+ const minData = {
87
+ txType: sdk_core_1.TransactionType[this._type],
88
+ submissionId: this.id,
89
+ allocationRequestData: this._allocationRequestData,
90
+ };
91
+ return Buffer.from(JSON.stringify(minData)).toString('base64');
92
+ }
93
+ if (this._type === sdk_core_1.TransactionType.EndInvestorOnboardingOffer) {
94
+ if (!this._endInvestorOnboardingOfferData) {
95
+ throw new sdk_core_1.InvalidTransactionError('EndInvestorOnboardingOfferData is not set');
96
+ }
97
+ const minData = {
98
+ txType: sdk_core_1.TransactionType[this._type],
99
+ submissionId: this.id,
100
+ endInvestorOnboardingOfferData: this._endInvestorOnboardingOfferData,
101
+ };
102
+ return Buffer.from(JSON.stringify(minData)).toString('base64');
103
+ }
59
104
  if (!this._prepareCommand) {
60
105
  throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
61
106
  }
62
107
  const partySignatures = [];
63
108
  const data = {
64
109
  prepareCommandResponse: this._prepareCommand,
65
- txType: this._type ? sdk_core_1.TransactionType[this._type] : '',
110
+ txType: this._type !== undefined ? sdk_core_1.TransactionType[this._type] : '',
66
111
  preparedTransaction: '',
67
112
  partySignatures: {
68
113
  signatures: partySignatures,
@@ -80,7 +125,6 @@ class Transaction extends sdk_core_1.BaseTransaction {
80
125
  };
81
126
  const signatures = [];
82
127
  if (this._signatures.length > 0 && this._signerFingerprint) {
83
- const signerPartyId = `${this._signerFingerprint.slice(0, 5)}::${this._signerFingerprint}`;
84
128
  this.signature.map((signature) => {
85
129
  const signatureObj = {
86
130
  format: constant_1.SIGNATURE_FORMAT,
@@ -90,11 +134,19 @@ class Transaction extends sdk_core_1.BaseTransaction {
90
134
  };
91
135
  signatures.push(signatureObj);
92
136
  });
93
- const partySignature = {
94
- party: signerPartyId,
95
- signatures: signatures,
96
- };
97
- data.partySignatures?.signatures.push(partySignature);
137
+ // CantonCommand: the Canton protocol requires one partySignatures entry per actAs party; all parties share the same TSS key and signature.
138
+ if (this._type === sdk_core_1.TransactionType.CantonCommand) {
139
+ if (!this._cantonCommandActAs?.length) {
140
+ throw new sdk_core_1.InvalidTransactionError('CantonCommand transaction is missing actAs parties required for partySignatures');
141
+ }
142
+ for (const party of this._cantonCommandActAs) {
143
+ data.partySignatures?.signatures.push({ party, signatures });
144
+ }
145
+ }
146
+ else {
147
+ const signerPartyId = `${this._signerFingerprint.slice(0, 5)}::${this._signerFingerprint}`;
148
+ data.partySignatures?.signatures.push({ party: signerPartyId, signatures });
149
+ }
98
150
  data.preparedTransaction = this._prepareCommand.preparedTransaction
99
151
  ? this._prepareCommand.preparedTransaction
100
152
  : '';
@@ -107,6 +159,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
107
159
  type: this._type,
108
160
  sender: '',
109
161
  receiver: '',
162
+ amount: '',
110
163
  };
111
164
  if (this._type === sdk_core_1.TransactionType.TransferAcknowledge) {
112
165
  if (!this._acknowledgeData) {
@@ -115,23 +168,64 @@ class Transaction extends sdk_core_1.BaseTransaction {
115
168
  result.acknowledgeData = this._acknowledgeData;
116
169
  return result;
117
170
  }
171
+ if (this._type === sdk_core_1.TransactionType.CosignDelegationProposal) {
172
+ if (!this._cosignDelegationProposalData) {
173
+ throw new sdk_core_1.InvalidTransactionError('CosignDelegationProposalData is not set');
174
+ }
175
+ result.cosignDelegationProposalData = this._cosignDelegationProposalData;
176
+ return result;
177
+ }
178
+ if (this._type === sdk_core_1.TransactionType.AllocationRequest) {
179
+ if (!this._allocationRequestData) {
180
+ throw new sdk_core_1.InvalidTransactionError('AllocationRequestData is not set');
181
+ }
182
+ result.allocationRequestData = this._allocationRequestData;
183
+ return result;
184
+ }
185
+ if (this._type === sdk_core_1.TransactionType.EndInvestorOnboardingOffer) {
186
+ if (!this._endInvestorOnboardingOfferData) {
187
+ throw new sdk_core_1.InvalidTransactionError('EndInvestorOnboardingOfferData is not set');
188
+ }
189
+ result.endInvestorOnboardingOfferData = this._endInvestorOnboardingOfferData;
190
+ return result;
191
+ }
192
+ if (this._type === sdk_core_1.TransactionType.CantonCommand) {
193
+ if (!this._prepareCommand?.preparedTransaction) {
194
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
195
+ }
196
+ const commandSummary = this.buildCantonCommandSummary();
197
+ if (commandSummary) {
198
+ result.cantonCommand = commandSummary;
199
+ }
200
+ return result;
201
+ }
118
202
  if (!this._prepareCommand || !this._prepareCommand.preparedTransaction) {
119
203
  throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
120
204
  }
121
205
  // TODO: extract other required data (utxo used, request time, execute before etc)
122
206
  let parsedInfo;
123
207
  try {
124
- parsedInfo = utils_1.default.parseRawCantonTransactionData(this._prepareCommand.preparedTransaction);
208
+ parsedInfo = utils_1.default.parseRawCantonTransactionData(this._prepareCommand.preparedTransaction, this.type);
125
209
  }
126
210
  catch (e) {
127
211
  throw new sdk_core_1.InvalidTransactionError(`Failed to parse transaction hash: ${e instanceof Error ? e.message : e}`);
128
212
  }
129
213
  result.sender = parsedInfo.sender;
130
214
  result.receiver = parsedInfo.receiver;
215
+ result.amount = parsedInfo.amount;
216
+ if (parsedInfo.memoId) {
217
+ result.memoId = parsedInfo.memoId;
218
+ }
219
+ if (parsedInfo.token) {
220
+ result.token = parsedInfo.token;
221
+ }
131
222
  return result;
132
223
  }
133
224
  get signablePayload() {
134
- if (this._type === sdk_core_1.TransactionType.TransferAcknowledge) {
225
+ if (this._type === sdk_core_1.TransactionType.TransferAcknowledge ||
226
+ this._type === sdk_core_1.TransactionType.CosignDelegationProposal ||
227
+ this._type === sdk_core_1.TransactionType.AllocationRequest ||
228
+ this._type === sdk_core_1.TransactionType.EndInvestorOnboardingOffer) {
135
229
  return Buffer.from(constant_1.DUMMY_HASH, 'base64');
136
230
  }
137
231
  if (!this._prepareCommand) {
@@ -139,23 +233,47 @@ class Transaction extends sdk_core_1.BaseTransaction {
139
233
  }
140
234
  return Buffer.from(this._prepareCommand.preparedTransactionHash, 'base64');
141
235
  }
236
+ get cantonCommandActAsParties() {
237
+ return this._cantonCommandActAs ?? [];
238
+ }
142
239
  fromRawTransaction(rawTx) {
143
240
  try {
144
241
  const decoded = JSON.parse(Buffer.from(rawTx, 'base64').toString('utf8'));
145
242
  this.id = decoded.submissionId;
146
243
  this.transactionType = sdk_core_1.TransactionType[decoded.txType];
147
- if (this.type !== sdk_core_1.TransactionType.TransferAcknowledge) {
244
+ if (this.type === sdk_core_1.TransactionType.TransferAcknowledge) {
245
+ if (decoded.acknowledgeData) {
246
+ this.acknowledgeData = decoded.acknowledgeData;
247
+ }
248
+ }
249
+ else if (this.type === sdk_core_1.TransactionType.CosignDelegationProposal) {
250
+ if (decoded.cosignDelegationProposalData) {
251
+ this.cosignDelegationProposalData = decoded.cosignDelegationProposalData;
252
+ }
253
+ }
254
+ else if (this.type === sdk_core_1.TransactionType.AllocationRequest) {
255
+ if (decoded.allocationRequestData) {
256
+ this.allocationRequestData = decoded.allocationRequestData;
257
+ }
258
+ }
259
+ else if (this.type === sdk_core_1.TransactionType.EndInvestorOnboardingOffer) {
260
+ if (decoded.endInvestorOnboardingOfferData) {
261
+ this.endInvestorOnboardingOfferData = decoded.endInvestorOnboardingOfferData;
262
+ }
263
+ }
264
+ else {
148
265
  if (decoded.prepareCommandResponse) {
149
266
  this.prepareCommand = decoded.prepareCommandResponse;
267
+ if (this.type !== sdk_core_1.TransactionType.CantonCommand) {
268
+ this.loadInputsAndOutputs();
269
+ }
150
270
  }
151
271
  if (decoded.partySignatures && decoded.partySignatures.signatures.length > 0) {
152
272
  this.signerFingerprint = decoded.partySignatures.signatures[0].party.split('::')[1];
153
273
  this.signatures = decoded.partySignatures.signatures[0].signatures[0].signature;
154
274
  }
155
- }
156
- else {
157
- if (decoded.acknowledgeData) {
158
- this.acknowledgeData = decoded.acknowledgeData;
275
+ if (this.type === sdk_core_1.TransactionType.CantonCommand && decoded.prepareCommandResponse?.preparedTransaction) {
276
+ this.cantonCommandActAs = utils_1.default.extractSubmitterActAs(decoded.prepareCommandResponse.preparedTransaction);
159
277
  }
160
278
  }
161
279
  }
@@ -163,6 +281,179 @@ class Transaction extends sdk_core_1.BaseTransaction {
163
281
  throw new sdk_core_1.InvalidTransactionError('Unable to parse raw transaction data');
164
282
  }
165
283
  }
284
+ /**
285
+ * Loads the input & output fields for the transaction
286
+ *
287
+ */
288
+ loadInputsAndOutputs() {
289
+ const outputs = [];
290
+ const inputs = [];
291
+ const txData = this.toJson();
292
+ const input = {
293
+ address: txData.sender,
294
+ value: txData.amount,
295
+ coin: txData.token ? txData.token : this._coinConfig.name,
296
+ };
297
+ const output = {
298
+ address: txData.receiver,
299
+ value: txData.amount,
300
+ coin: txData.token ? txData.token : this._coinConfig.name,
301
+ };
302
+ inputs.push(input);
303
+ outputs.push(output);
304
+ this._inputs = inputs;
305
+ this._outputs = outputs;
306
+ }
307
+ explainTransaction() {
308
+ const displayOrder = [
309
+ 'id',
310
+ 'outputs',
311
+ 'outputAmount',
312
+ 'inputs',
313
+ 'inputAmount',
314
+ 'changeOutputs',
315
+ 'changeAmount',
316
+ 'fee',
317
+ 'type',
318
+ ];
319
+ const inputs = [];
320
+ const outputs = [];
321
+ let inputAmount = '0';
322
+ let outputAmount = '0';
323
+ switch (this.type) {
324
+ case sdk_core_1.TransactionType.CosignDelegationAccept:
325
+ case sdk_core_1.TransactionType.TransferAccept:
326
+ case sdk_core_1.TransactionType.TransferReject: {
327
+ const txData = this.toJson();
328
+ const input = {
329
+ address: txData.sender,
330
+ amount: txData.amount,
331
+ };
332
+ if (txData.token) {
333
+ input.tokenName = txData.token;
334
+ }
335
+ inputs.push(input);
336
+ inputAmount = txData.amount;
337
+ break;
338
+ }
339
+ case sdk_core_1.TransactionType.AllocationAllocate:
340
+ case sdk_core_1.TransactionType.Send: {
341
+ const txData = this.toJson();
342
+ const output = {
343
+ address: txData.receiver,
344
+ amount: txData.amount,
345
+ };
346
+ if (txData.memoId) {
347
+ output.memo = txData.memoId;
348
+ }
349
+ if (txData.token) {
350
+ output.tokenName = txData.token;
351
+ }
352
+ outputs.push(output);
353
+ outputAmount = txData.amount;
354
+ break;
355
+ }
356
+ case sdk_core_1.TransactionType.TransferOfferWithdrawn:
357
+ case sdk_core_1.TransactionType.AllocationAllocateWithdrawn: {
358
+ const txData = this.toJson();
359
+ const input = {
360
+ address: txData.receiver,
361
+ amount: txData.amount,
362
+ };
363
+ if (txData.token) {
364
+ input.tokenName = txData.token;
365
+ }
366
+ inputs.push(input);
367
+ inputAmount = txData.amount;
368
+ break;
369
+ }
370
+ case sdk_core_1.TransactionType.CantonCommand: {
371
+ const commandSummary = this.buildCantonCommandSummary();
372
+ const explanation = {
373
+ id: this.id,
374
+ displayOrder,
375
+ outputs: outputs,
376
+ outputAmount: outputAmount,
377
+ inputs: inputs,
378
+ inputAmount: inputAmount,
379
+ changeOutputs: [],
380
+ changeAmount: '0',
381
+ fee: { fee: '0' },
382
+ type: this.type,
383
+ };
384
+ if (commandSummary) {
385
+ explanation.cantonCommand = commandSummary;
386
+ }
387
+ return explanation;
388
+ }
389
+ case sdk_core_1.TransactionType.EndInvestorOnboardingOffer: {
390
+ // Non-signable notification record — no inputs, outputs, or amounts to explain.
391
+ return {
392
+ id: this.id,
393
+ displayOrder,
394
+ outputs: [],
395
+ outputAmount: '0',
396
+ inputs: [],
397
+ inputAmount: '0',
398
+ changeOutputs: [],
399
+ changeAmount: '0',
400
+ fee: { fee: '0' },
401
+ type: this.type,
402
+ };
403
+ }
404
+ case sdk_core_1.TransactionType.OneStepPreApproval:
405
+ case sdk_core_1.TransactionType.TransferPreapprovalCancel: {
406
+ // Both are zero-amount self-service operations on the wallet's own preapproval contract.
407
+ // Show the party address as an input so callers can identify whose preapproval is affected.
408
+ const txData = this.toJson();
409
+ const input = {
410
+ address: txData.receiver,
411
+ amount: txData.amount,
412
+ };
413
+ if (txData.token) {
414
+ input.tokenName = txData.token;
415
+ }
416
+ inputs.push(input);
417
+ inputAmount = txData.amount;
418
+ break;
419
+ }
420
+ }
421
+ return {
422
+ id: this.id,
423
+ displayOrder,
424
+ outputs: outputs,
425
+ outputAmount: outputAmount,
426
+ inputs: inputs,
427
+ inputAmount: inputAmount,
428
+ changeOutputs: [],
429
+ changeAmount: '0',
430
+ fee: { fee: '0' },
431
+ type: this.type,
432
+ };
433
+ }
434
+ buildCantonCommandSummary() {
435
+ const rawPrepared = this._prepareCommand?.preparedTransaction;
436
+ if (!rawPrepared) {
437
+ return undefined;
438
+ }
439
+ try {
440
+ const info = utils_1.default.extractCantonCommandInfo(rawPrepared);
441
+ const templateIdStr = `${info.templateId.packageId}:${info.templateId.moduleName}:${info.templateId.entityName}`;
442
+ const summary = {
443
+ kind: info.kind,
444
+ templateId: templateIdStr,
445
+ actAs: this._cantonCommandActAs ?? [],
446
+ };
447
+ if (info.choice !== undefined)
448
+ summary.choice = info.choice;
449
+ if (info.contractId !== undefined && info.contractId !== '')
450
+ summary.contractId = info.contractId;
451
+ return summary;
452
+ }
453
+ catch {
454
+ return undefined;
455
+ }
456
+ }
166
457
  }
167
458
  exports.Transaction = Transaction;
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUEwRztBQVcxRyxxREFBNkI7QUFDN0IsMENBQTZHO0FBRTdHLE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBSzlDLFlBQVksVUFBZ0M7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FBQyxXQUF5QztRQUMxRCxJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxlQUFlLENBQUMsZUFBZ0M7UUFDbEQsSUFBSSxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksZUFBZSxDQUFDLElBQXlCO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksRUFBRTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksa0NBQXVCLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLEVBQUUsQ0FBQyxFQUFVO1FBQ2YsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLFNBQWlCO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25D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QWMsR0FBRyxPQUFPLENBQUMsc0JBQXNCLENBQUM7Z0JBQ3ZELENBQUM7Z0JBQ0QsSUFBSSxPQUFPLENBQUMsZUFBZSxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDN0UsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3BGLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDbEYsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO2dCQUNqRCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDNUUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTFLRCxrQ0EwS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlS2V5LCBCYXNlVHJhbnNhY3Rpb24sIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBDYW50b25QcmVwYXJlQ29tbWFuZFJlc3BvbnNlLFxuICBNdWx0aUhhc2hTaWduYXR1cmUsXG4gIFBhcnR5U2lnbmF0dXJlLFxuICBQcmVwYXJlZFR4blBhcnNlZEluZm8sXG4gIFRyYW5zYWN0aW9uQnJvYWRjYXN0RGF0YSxcbiAgVHJhbnNmZXJBY2tub3dsZWRnZSxcbiAgVHhEYXRhLFxufSBmcm9tICcuLi9pZmFjZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgRFVNTVlfSEFTSCwgSEFTSElOR19TQ0hFTUVfVkVSU0lPTiwgU0lHTkFUVVJFX0FMR09SSVRITV9TUEVDLCBTSUdOQVRVUkVfRk9STUFUIH0gZnJvbSAnLi4vY29uc3RhbnQnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcml2YXRlIF9wcmVwYXJlQ29tbWFuZDogQ2FudG9uUHJlcGFyZUNvbW1hbmRSZXNwb25zZTtcbiAgcHJpdmF0ZSBfc2lnbmVyRmluZ2VycHJpbnQ6IHN0cmluZztcbiAgcHJpdmF0ZSBfYWNrbm93bGVkZ2VEYXRhOiBUcmFuc2ZlckFja25vd2xlZGdlO1xuXG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZyk7XG4gIH1cblxuICBnZXQgcHJlcGFyZUNvbW1hbmQoKTogQ2FudG9uUHJlcGFyZUNvbW1hbmRSZXNwb25zZSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXBhcmVDb21tYW5kO1xuICB9XG5cbiAgc2V0IHByZXBhcmVDb21tYW5kKHRyYW5zYWN0aW9uOiBDYW50b25QcmVwYXJlQ29tbWFuZFJlc3BvbnNlKSB7XG4gICAgdGhpcy5fcHJlcGFyZUNvbW1hbmQgPSB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNldCB0cmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvblR5cGUpIHtcbiAgICB0aGlzLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgc2V0IGFja25vd2xlZGdlRGF0YShkYXRhOiBUcmFuc2ZlckFja25vd2xlZGdlKSB7XG4gICAgdGhpcy5fYWNrbm93bGVkZ2VEYXRhID0gZGF0YTtcbiAgfVxuXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5faWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcigndHJhbnNhY3Rpb24gaXMgaXMgbm90IHNldCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faWQ7XG4gIH1cblxuICBzZXQgaWQoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gaWQ7XG4gIH1cblxuICBjYW5TaWduKGtleTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHNldCBzaWduYXR1cmVzKHNpZ25hdHVyZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZSk7XG4gIH1cblxuICBzZXQgc2lnbmVyRmluZ2VycHJpbnQoZmluZ2VycHJpbnQ6IHN0cmluZykge1xuICAgIHRoaXMuX3NpZ25lckZpbmdlcnByaW50ID0gZmluZ2VycHJpbnQ7XG4gIH1cblxuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fdHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2FjdGlvbiB0eXBlIGlzIG5vdCBzZXQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5UcmFuc2ZlckFja25vd2xlZGdlKSB7XG4gICAgICBpZiAoIXRoaXMuX2Fja25vd2xlZGdlRGF0YSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0Fja25vd2xlZGdlRGF0YSBpcyBub3Qgc2V0Jyk7XG4gICAgICB9XG4gICAgICBjb25zdCBtaW5EYXRhOiBUcmFuc2FjdGlvbkJyb2FkY2FzdERhdGEgPSB7XG4gICAgICAgIHR4VHlwZTogVHJhbnNhY3Rpb25UeXBlW3RoaXMuX3R5cGVdLFxuICAgICAgICBzdWJtaXNzaW9uSWQ6IHRoaXMuaWQsXG4gICAgICAgIGFja25vd2xlZGdlRGF0YTogdGhpcy5fYWNrbm93bGVkZ2VEYXRhLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShtaW5EYXRhKSkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3ByZXBhcmVDb21tYW5kKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgY29uc3QgcGFydHlTaWduYXR1cmVzOiBQYXJ0eVNpZ25hdHVyZVtdID0gW107XG4gICAgY29uc3QgZGF0YTogVHJhbnNhY3Rpb25Ccm9hZGNhc3REYXRhID0ge1xuICAgICAgcHJlcGFyZUNvbW1hbmRSZXNwb25zZTogdGhpcy5fcHJlcGFyZUNvbW1hbmQsXG4gICAgICB0eFR5cGU6IHRoaXMuX3R5cGUgPyBUcmFuc2FjdGlvblR5cGVbdGhpcy5fdHlwZV0gOiAnJyxcbiAgICAgIHByZXBhcmVkVHJhbnNhY3Rpb246ICcnLFxuICAgICAgcGFydHlTaWduYXR1cmVzOiB7XG4gICAgICAgIHNpZ25hdHVyZXM6IHBhcnR5U2lnbmF0dXJlcyxcbiAgICAgIH0sXG4gICAgICBkZWR1cGxpY2F0aW9uUGVyaW9kOiB7XG4gICAgICAgIEVtcHR5OiB7fSxcbiAgICAgIH0sXG4gICAgICBzdWJtaXNzaW9uSWQ6IHRoaXMuaWQsXG4gICAgICBoYXNoaW5nU2NoZW1lVmVyc2lvbjogSEFTSElOR19TQ0hFTUVfVkVSU0lPTixcbiAgICAgIG1pbkxlZGdlclRpbWU6IHtcbiAgICAgICAgdGltZToge1xuICAgICAgICAgIEVtcHR5OiB7fSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCBzaWduYXR1cmVzOiBNdWx0aUhhc2hTaWduYXR1cmVbXSA9IFtdO1xuICAgIGlmICh0aGlzLl9zaWduYXR1cmVzLmxlbmd0aCA+IDAgJiYgdGhpcy5fc2lnbmVyRmluZ2VycHJpbnQpIHtcbiAgICAgIGNvbnN0IHNpZ25lclBhcnR5SWQgPSBgJHt0aGlzLl9zaWduZXJGaW5nZXJwcmludC5zbGljZSgwLCA1KX06OiR7dGhpcy5fc2lnbmVyRmluZ2VycHJpbnR9YDtcbiAgICAgIHRoaXMuc2lnbmF0dXJlLm1hcCgoc2lnbmF0dXJlKSA9PiB7XG4gICAgICAgIGNvbnN0IHNpZ25hdHVyZU9iajogTXVsdGlIYXNoU2lnbmF0dXJlID0ge1xuICAgICAgICAgIGZvcm1hdDogU0lHTkFUVVJFX0ZPUk1BVCxcbiAgICAgICAgICBzaWduYXR1cmU6IHNpZ25hdHVyZSxcbiAgICAgICAgICBzaWduZWRCeTogdGhpcy5fc2lnbmVyRmluZ2VycHJpbnQsXG4gICAgICAgICAgc2lnbmluZ0FsZ29yaXRobVNwZWM6IFNJR05BVFVSRV9BTEdPUklUSE1fU1BFQyxcbiAgICAgICAgfTtcbiAgICAgICAgc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZU9iaik7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHBhcnR5U2lnbmF0dXJlID0ge1xuICAgICAgICBwYXJ0eTogc2lnbmVyUGFydHlJZCxcbiAgICAgICAgc2lnbmF0dXJlczogc2lnbmF0dXJlcyxcbiAgICAgIH07XG4gICAgICBkYXRhLnBhcnR5U2lnbmF0dXJlcz8uc2lnbmF0dXJlcy5wdXNoKHBhcnR5U2lnbmF0dXJlKTtcbiAgICAgIGRhdGEucHJlcGFyZWRUcmFuc2FjdGlvbiA9IHRoaXMuX3ByZXBhcmVDb21tYW5kLnByZXBhcmVkVHJhbnNhY3Rpb25cbiAgICAgICAgPyB0aGlzLl9wcmVwYXJlQ29tbWFuZC5wcmVwYXJlZFRyYW5zYWN0aW9uXG4gICAgICAgIDogJyc7XG4gICAgfVxuICAgIHJldHVybiBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShkYXRhKSkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICB9XG5cbiAgdG9Kc29uKCk6IFR4RGF0YSB7XG4gICAgY29uc3QgcmVzdWx0OiBUeERhdGEgPSB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIHR5cGU6IHRoaXMuX3R5cGUgYXMgVHJhbnNhY3Rpb25UeXBlLFxuICAgICAgc2VuZGVyOiAnJyxcbiAgICAgIHJlY2VpdmVyOiAnJyxcbiAgICB9O1xuICAgIGlmICh0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuVHJhbnNmZXJBY2tub3dsZWRnZSkge1xuICAgICAgaWYgKCF0aGlzLl9hY2tub3dsZWRnZURhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdBY2tub3dsZWRnZURhdGEgaXMgbm90IHNldCcpO1xuICAgICAgfVxuICAgICAgcmVzdWx0LmFja25vd2xlZGdlRGF0YSA9IHRoaXMuX2Fja25vd2xlZGdlRGF0YTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGlmICghdGhpcy5fcHJlcGFyZUNvbW1hbmQgfHwgIXRoaXMuX3ByZXBhcmVDb21tYW5kLnByZXBhcmVkVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgICAvLyBUT0RPOiBleHRyYWN0IG90aGVyIHJlcXVpcmVkIGRhdGEgKHV0eG8gdXNlZCwgcmVxdWVzdCB0aW1lLCBleGVjdXRlIGJlZm9yZSBldGMpXG4gICAgbGV0IHBhcnNlZEluZm86IFByZXBhcmVkVHhuUGFyc2VkSW5mbztcbiAgICB0cnkge1xuICAgICAgcGFyc2VkSW5mbyA9IHV0aWxzLnBhcnNlUmF3Q2FudG9uVHJhbnNhY3Rpb25EYXRhKHRoaXMuX3ByZXBhcmVDb21tYW5kLnByZXBhcmVkVHJhbnNhY3Rpb24pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgRmFpbGVkIHRvIHBhcnNlIHRyYW5zYWN0aW9uIGhhc2g6ICR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogZX1gKTtcbiAgICB9XG4gICAgcmVzdWx0LnNlbmRlciA9IHBhcnNlZEluZm8uc2VuZGVyO1xuICAgIHJlc3VsdC5yZWNlaXZlciA9IHBhcnNlZEluZm8ucmVjZWl2ZXI7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldCBzaWduYWJsZVBheWxvYWQoKTogQnVmZmVyIHtcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlRyYW5zZmVyQWNrbm93bGVkZ2UpIHtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbShEVU1NWV9IQVNILCAnYmFzZTY0Jyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fcHJlcGFyZUNvbW1hbmQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgICByZXR1cm4gQnVmZmVyLmZyb20odGhpcy5fcHJlcGFyZUNvbW1hbmQucHJlcGFyZWRUcmFuc2FjdGlvbkhhc2gsICdiYXNlNjQnKTtcbiAgfVxuXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUeDogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRlY29kZWQ6IFRyYW5zYWN0aW9uQnJvYWRjYXN0RGF0YSA9IEpTT04ucGFyc2UoQnVmZmVyLmZyb20ocmF3VHgsICdiYXNlNjQnKS50b1N0cmluZygndXRmOCcpKTtcbiAgICAgIHRoaXMuaWQgPSBkZWNvZGVkLnN1Ym1pc3Npb25JZDtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25UeXBlID0gVHJhbnNhY3Rpb25UeXBlW2RlY29kZWQudHhUeXBlXTtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IFRyYW5zYWN0aW9uVHlwZS5UcmFuc2ZlckFja25vd2xlZGdlKSB7XG4gICAgICAgIGlmIChkZWNvZGVkLnByZXBhcmVDb21tYW5kUmVzcG9uc2UpIHtcbiAgICAgICAgICB0aGlzLnByZXBhcmVDb21tYW5kID0gZGVjb2RlZC5wcmVwYXJlQ29tbWFuZFJlc3BvbnNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZWNvZGVkLnBhcnR5U2lnbmF0dXJlcyAmJiBkZWNvZGVkLnBhcnR5U2lnbmF0dXJlcy5zaWduYXR1cmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnNpZ25lckZpbmdlcnByaW50ID0gZGVjb2RlZC5wYXJ0eVNpZ25hdHVyZXMuc2lnbmF0dXJlc1swXS5wYXJ0eS5zcGxpdCgnOjonKVsxXTtcbiAgICAgICAgICB0aGlzLnNpZ25hdHVyZXMgPSBkZWNvZGVkLnBhcnR5U2lnbmF0dXJlcy5zaWduYXR1cmVzWzBdLnNpZ25hdHVyZXNbMF0uc2lnbmF0dXJlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZGVjb2RlZC5hY2tub3dsZWRnZURhdGEpIHtcbiAgICAgICAgICB0aGlzLmFja25vd2xlZGdlRGF0YSA9IGRlY29kZWQuYWNrbm93bGVkZ2VEYXRhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdVbmFibGUgdG8gcGFyc2UgcmF3IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
459
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQU84QjtBQWdCOUIscURBQTZCO0FBQzdCLDBDQUE2RztBQUU3RyxNQUFhLFdBQVksU0FBUSwwQkFBZTtJQVM5QyxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxjQUFjLENBQUMsV0FBeUM7UUFDMUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksZUFBZSxDQUFDLGVBQWdDO1FBQ2xELElBQUksQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLGVBQWUsQ0FBQyxJQUF5QjtRQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLDRCQUE0QixDQUFDLElBQThCO1FBQzdELElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMsSUFBdUI7UUFDL0MsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSw4QkFBOEIsQ0FBQyxJQUFvQztRQUNyRSxJQUFJLENBQUMsK0JBQStCLEdBQUcsSUFBSSxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLGtCQUFrQixDQUFDLE9BQWlCO1FBQ3RDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksRUFBRTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxF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QUUsQ0FBQztZQUNqSCxNQUFNLE9BQU8sR0FBeUI7Z0JBQ3BDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixVQUFVLEVBQUUsYUFBYTtnQkFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxFQUFFO2FBQ3RDLENBQUM7WUFDRixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUztnQkFBRSxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDNUQsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEVBQUU7Z0JBQUUsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2xHLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBdGRELGtDQXNkQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbixcbiAgRW50cnksXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBJVHJhbnNhY3Rpb25SZWNpcGllbnQsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHtcbiAgQWxsb2NhdGlvblJlcXVlc3QsXG4gIENhbnRvbkNvbW1hbmRFeHBsYWluLFxuICBDYW50b25QcmVwYXJlQ29tbWFuZFJlc3BvbnNlLFxuICBDb3NpZ25EZWxlZ2F0aW9uUHJvcG9zYWwsXG4gIEVuZEludmVzdG9yT25ib2FyZGluZ09mZmVyRGF0YSxcbiAgTXVsdGlIYXNoU2lnbmF0dXJlLFxuICBQYXJ0eVNpZ25hdHVyZSxcbiAgUHJlcGFyZWRUeG5QYXJzZWRJbmZvLFxuICBUcmFuc2FjdGlvbkJyb2FkY2FzdERhdGEsXG4gIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFRyYW5zZmVyQWNrbm93bGVkZ2UsXG4gIFR4RGF0YSxcbn0gZnJvbSAnLi4vaWZhY2UnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IERVTU1ZX0hBU0gsIEhBU0hJTkdfU0NIRU1FX1ZFUlNJT04sIFNJR05BVFVSRV9BTEdPUklUSE1fU1BFQywgU0lHTkFUVVJFX0ZPUk1BVCB9IGZyb20gJy4uL2NvbnN0YW50JztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSBfcHJlcGFyZUNvbW1hbmQ6IENhbnRvblByZXBhcmVDb21tYW5kUmVzcG9uc2U7XG4gIHByaXZhdGUgX3NpZ25lckZpbmdlcnByaW50OiBzdHJpbmc7XG4gIHByaXZhdGUgX2Fja25vd2xlZGdlRGF0YTogVHJhbnNmZXJBY2tub3dsZWRnZTtcbiAgcHJpdmF0ZSBfY29zaWduRGVsZWdhdGlvblByb3Bvc2FsRGF0YTogQ29zaWduRGVsZWdhdGlvblByb3Bvc2FsO1xuICBwcml2YXRlIF9hbGxvY2F0aW9uUmVxdWVzdERhdGE6IEFsbG9jYXRpb25SZXF1ZXN0O1xuICBwcml2YXRlIF9lbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlckRhdGE6IEVuZEludmVzdG9yT25ib2FyZGluZ09mZmVyRGF0YTtcbiAgcHJpdmF0ZSBfY2FudG9uQ29tbWFuZEFjdEFzOiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0IHByZXBhcmVDb21tYW5kKCk6IENhbnRvblByZXBhcmVDb21tYW5kUmVzcG9uc2Uge1xuICAgIHJldHVybiB0aGlzLl9wcmVwYXJlQ29tbWFuZDtcbiAgfVxuXG4gIHNldCBwcmVwYXJlQ29tbWFuZCh0cmFuc2FjdGlvbjogQ2FudG9uUHJlcGFyZUNvbW1hbmRSZXNwb25zZSkge1xuICAgIHRoaXMuX3ByZXBhcmVDb21tYW5kID0gdHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXQgdHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIHNldCBhY2tub3dsZWRnZURhdGEoZGF0YTogVHJhbnNmZXJBY2tub3dsZWRnZSkge1xuICAgIHRoaXMuX2Fja25vd2xlZGdlRGF0YSA9IGRhdGE7XG4gIH1cblxuICBzZXQgY29zaWduRGVsZWdhdGlvblByb3Bvc2FsRGF0YShkYXRhOiBDb3NpZ25EZWxlZ2F0aW9uUHJvcG9zYWwpIHtcbiAgICB0aGlzLl9jb3NpZ25EZWxlZ2F0aW9uUHJvcG9zYWxEYXRhID0gZGF0YTtcbiAgfVxuXG4gIHNldCBhbGxvY2F0aW9uUmVxdWVzdERhdGEoZGF0YTogQWxsb2NhdGlvblJlcXVlc3QpIHtcbiAgICB0aGlzLl9hbGxvY2F0aW9uUmVxdWVzdERhdGEgPSBkYXRhO1xuICB9XG5cbiAgc2V0IGVuZEludmVzdG9yT25ib2FyZGluZ09mZmVyRGF0YShkYXRhOiBFbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlckRhdGEpIHtcbiAgICB0aGlzLl9lbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlckRhdGEgPSBkYXRhO1xuICB9XG5cbiAgc2V0IGNhbnRvbkNvbW1hbmRBY3RBcyhwYXJ0aWVzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX2NhbnRvbkNvbW1hbmRBY3RBcyA9IHBhcnRpZXM7XG4gIH1cblxuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX2lkKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ3RyYW5zYWN0aW9uIGlzIGlzIG5vdCBzZXQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG5cbiAgc2V0IGlkKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9pZCA9IGlkO1xuICB9XG5cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzZXQgc2lnbmF0dXJlcyhzaWduYXR1cmU6IHN0cmluZykge1xuICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaChzaWduYXR1cmUpO1xuICB9XG5cbiAgc2V0IHNpZ25lckZpbmdlcnByaW50KGZpbmdlcnByaW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zaWduZXJGaW5nZXJwcmludCA9IGZpbmdlcnByaW50O1xuICB9XG5cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1RyYW5zYWN0aW9uIHR5cGUgaXMgbm90IHNldCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlRyYW5zZmVyQWNrbm93bGVkZ2UpIHtcbiAgICAgIGlmICghdGhpcy5fYWNrbm93bGVkZ2VEYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignQWNrbm93bGVkZ2VEYXRhIGlzIG5vdCBzZXQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbkRhdGE6IFRyYW5zYWN0aW9uQnJvYWRjYXN0RGF0YSA9IHtcbiAgICAgICAgdHhUeXBlOiBUcmFuc2FjdGlvblR5cGVbdGhpcy5fdHlwZV0sXG4gICAgICAgIHN1Ym1pc3Npb25JZDogdGhpcy5pZCxcbiAgICAgICAgYWNrbm93bGVkZ2VEYXRhOiB0aGlzLl9hY2tub3dsZWRnZURhdGEsXG4gICAgICB9O1xuICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KG1pbkRhdGEpKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQ29zaWduRGVsZWdhdGlvblByb3Bvc2FsKSB7XG4gICAgICBpZiAoIXRoaXMuX2Nvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdDb3NpZ25EZWxlZ2F0aW9uUHJvcG9zYWxEYXRhIGlzIG5vdCBzZXQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbkRhdGE6IFRyYW5zYWN0aW9uQnJvYWRjYXN0RGF0YSA9IHtcbiAgICAgICAgdHhUeXBlOiBUcmFuc2FjdGlvblR5cGVbdGhpcy5fdHlwZV0sXG4gICAgICAgIHN1Ym1pc3Npb25JZDogdGhpcy5pZCxcbiAgICAgICAgY29zaWduRGVsZWdhdGlvblByb3Bvc2FsRGF0YTogdGhpcy5fY29zaWduRGVsZWdhdGlvblByb3Bvc2FsRGF0YSxcbiAgICAgIH07XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkobWluRGF0YSkpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5BbGxvY2F0aW9uUmVxdWVzdCkge1xuICAgICAgaWYgKCF0aGlzLl9hbGxvY2F0aW9uUmVxdWVzdERhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdBbGxvY2F0aW9uUmVxdWVzdERhdGEgaXMgbm90IHNldCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgbWluRGF0YTogVHJhbnNhY3Rpb25Ccm9hZGNhc3REYXRhID0ge1xuICAgICAgICB0eFR5cGU6IFRyYW5zYWN0aW9uVHlwZVt0aGlzLl90eXBlXSxcbiAgICAgICAgc3VibWlzc2lvbklkOiB0aGlzLmlkLFxuICAgICAgICBhbGxvY2F0aW9uUmVxdWVzdERhdGE6IHRoaXMuX2FsbG9jYXRpb25SZXF1ZXN0RGF0YSxcbiAgICAgIH07XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkobWluRGF0YSkpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5FbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlcikge1xuICAgICAgaWYgKCF0aGlzLl9lbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlckRhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlckRhdGEgaXMgbm90IHNldCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgbWluRGF0YTogVHJhbnNhY3Rpb25Ccm9hZGNhc3REYXRhID0ge1xuICAgICAgICB0eFR5cGU6IFRyYW5zYWN0aW9uVHlwZVt0aGlzLl90eXBlXSxcbiAgICAgICAgc3VibWlzc2lvbklkOiB0aGlzLmlkLFxuICAgICAgICBlbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlckRhdGE6IHRoaXMuX2VuZEludmVzdG9yT25ib2FyZGluZ09mZmVyRGF0YSxcbiAgICAgIH07XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkobWluRGF0YSkpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9wcmVwYXJlQ29tbWFuZCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbiBkYXRhJyk7XG4gICAgfVxuICAgIGNvbnN0IHBhcnR5U2lnbmF0dXJlczogUGFydHlTaWduYXR1cmVbXSA9IFtdO1xuICAgIGNvbnN0IGRhdGE6IFRyYW5zYWN0aW9uQnJvYWRjYXN0RGF0YSA9IHtcbiAgICAgIHByZXBhcmVDb21tYW5kUmVzcG9uc2U6IHRoaXMuX3ByZXBhcmVDb21tYW5kLFxuICAgICAgdHhUeXBlOiB0aGlzLl90eXBlICE9PSB1bmRlZmluZWQgPyBUcmFuc2FjdGlvblR5cGVbdGhpcy5fdHlwZV0gOiAnJyxcbiAgICAgIHByZXBhcmVkVHJhbnNhY3Rpb246ICcnLFxuICAgICAgcGFydHlTaWduYXR1cmVzOiB7XG4gICAgICAgIHNpZ25hdHVyZXM6IHBhcnR5U2lnbmF0dXJlcyxcbiAgICAgIH0sXG4gICAgICBkZWR1cGxpY2F0aW9uUGVyaW9kOiB7XG4gICAgICAgIEVtcHR5OiB7fSxcbiAgICAgIH0sXG4gICAgICBzdWJtaXNzaW9uSWQ6IHRoaXMuaWQsXG4gICAgICBoYXNoaW5nU2NoZW1lVmVyc2lvbjogSEFTSElOR19TQ0hFTUVfVkVSU0lPTixcbiAgICAgIG1pbkxlZGdlclRpbWU6IHtcbiAgICAgICAgdGltZToge1xuICAgICAgICAgIEVtcHR5OiB7fSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCBzaWduYXR1cmVzOiBNdWx0aUhhc2hTaWduYXR1cmVbXSA9IFtdO1xuICAgIGlmICh0aGlzLl9zaWduYXR1cmVzLmxlbmd0aCA+IDAgJiYgdGhpcy5fc2lnbmVyRmluZ2VycHJpbnQpIHtcbiAgICAgIHRoaXMuc2lnbmF0dXJlLm1hcCgoc2lnbmF0dXJlKSA9PiB7XG4gICAgICAgIGNvbnN0IHNpZ25hdHVyZU9iajogTXVsdGlIYXNoU2lnbmF0dXJlID0ge1xuICAgICAgICAgIGZvcm1hdDogU0lHTkFUVVJFX0ZPUk1BVCxcbiAgICAgICAgICBzaWduYXR1cmU6IHNpZ25hdHVyZSxcbiAgICAgICAgICBzaWduZWRCeTogdGhpcy5fc2lnbmVyRmluZ2VycHJpbnQsXG4gICAgICAgICAgc2lnbmluZ0FsZ29yaXRobVNwZWM6IFNJR05BVFVSRV9BTEdPUklUSE1fU1BFQyxcbiAgICAgICAgfTtcbiAgICAgICAgc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZU9iaik7XG4gICAgICB9KTtcbiAgICAgIC8vIENhbnRvbkNvbW1hbmQ6IHRoZSBDYW50b24gcHJvdG9jb2wgcmVxdWlyZXMgb25lIHBhcnR5U2lnbmF0dXJlcyBlbnRyeSBwZXIgYWN0QXMgcGFydHk7IGFsbCBwYXJ0aWVzIHNoYXJlIHRoZSBzYW1lIFRTUyBrZXkgYW5kIHNpZ25hdHVyZS5cbiAgICAgIGlmICh0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQ2FudG9uQ29tbWFuZCkge1xuICAgICAgICBpZiAoIXRoaXMuX2NhbnRvbkNvbW1hbmRBY3RBcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICAgICAgJ0NhbnRvbkNvbW1hbmQgdHJhbnNhY3Rpb24gaXMgbWlzc2luZyBhY3RBcyBwYXJ0aWVzIHJlcXVpcmVkIGZvciBwYXJ0eVNpZ25hdHVyZXMnXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IHBhcnR5IG9mIHRoaXMuX2NhbnRvbkNvbW1hbmRBY3RBcykge1xuICAgICAgICAgIGRhdGEucGFydHlTaWduYXR1cmVzPy5zaWduYXR1cmVzLnB1c2goeyBwYXJ0eSwgc2lnbmF0dXJlcyB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc2lnbmVyUGFydHlJZCA9IGAke3RoaXMuX3NpZ25lckZpbmdlcnByaW50LnNsaWNlKDAsIDUpfTo6JHt0aGlzLl9zaWduZXJGaW5nZXJwcmludH1gO1xuICAgICAgICBkYXRhLnBhcnR5U2lnbmF0dXJlcz8uc2lnbmF0dXJlcy5wdXNoKHsgcGFydHk6IHNpZ25lclBhcnR5SWQsIHNpZ25hdHVyZXMgfSk7XG4gICAgICB9XG4gICAgICBkYXRhLnByZXBhcmVkVHJhbnNhY3Rpb24gPSB0aGlzLl9wcmVwYXJlQ29tbWFuZC5wcmVwYXJlZFRyYW5zYWN0aW9uXG4gICAgICAgID8gdGhpcy5fcHJlcGFyZUNvbW1hbmQucHJlcGFyZWRUcmFuc2FjdGlvblxuICAgICAgICA6ICcnO1xuICAgIH1cbiAgICByZXR1cm4gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkoZGF0YSkpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgfVxuXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGNvbnN0IHJlc3VsdDogVHhEYXRhID0ge1xuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICB0eXBlOiB0aGlzLl90eXBlIGFzIFRyYW5zYWN0aW9uVHlwZSxcbiAgICAgIHNlbmRlcjogJycsXG4gICAgICByZWNlaXZlcjogJycsXG4gICAgICBhbW91bnQ6ICcnLFxuICAgIH07XG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5UcmFuc2ZlckFja25vd2xlZGdlKSB7XG4gICAgICBpZiAoIXRoaXMuX2Fja25vd2xlZGdlRGF0YSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0Fja25vd2xlZGdlRGF0YSBpcyBub3Qgc2V0Jyk7XG4gICAgICB9XG4gICAgICByZXN1bHQuYWNrbm93bGVkZ2VEYXRhID0gdGhpcy5fYWNrbm93bGVkZ2VEYXRhO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5Db3NpZ25EZWxlZ2F0aW9uUHJvcG9zYWwpIHtcbiAgICAgIGlmICghdGhpcy5fY29zaWduRGVsZWdhdGlvblByb3Bvc2FsRGF0YSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0Nvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGEgaXMgbm90IHNldCcpO1xuICAgICAgfVxuICAgICAgcmVzdWx0LmNvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGEgPSB0aGlzLl9jb3NpZ25EZWxlZ2F0aW9uUHJvcG9zYWxEYXRhO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5BbGxvY2F0aW9uUmVxdWVzdCkge1xuICAgICAgaWYgKCF0aGlzLl9hbGxvY2F0aW9uUmVxdWVzdERhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdBbGxvY2F0aW9uUmVxdWVzdERhdGEgaXMgbm90IHNldCcpO1xuICAgICAgfVxuICAgICAgcmVzdWx0LmFsbG9jYXRpb25SZXF1ZXN0RGF0YSA9IHRoaXMuX2FsbG9jYXRpb25SZXF1ZXN0RGF0YTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGlmICh0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuRW5kSW52ZXN0b3JPbmJvYXJkaW5nT2ZmZXIpIHtcbiAgICAgIGlmICghdGhpcy5fZW5kSW52ZXN0b3JPbmJvYXJkaW5nT2ZmZXJEYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW5kSW52ZXN0b3JPbmJvYXJkaW5nT2ZmZXJEYXRhIGlzIG5vdCBzZXQnKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5lbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlckRhdGEgPSB0aGlzLl9lbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlckRhdGE7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkNhbnRvbkNvbW1hbmQpIHtcbiAgICAgIGlmICghdGhpcy5fcHJlcGFyZUNvbW1hbmQ/LnByZXBhcmVkVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbiBkYXRhJyk7XG4gICAgICB9XG4gICAgICBjb25zdCBjb21tYW5kU3VtbWFyeSA9IHRoaXMuYnVpbGRDYW50b25Db21tYW5kU3VtbWFyeSgpO1xuICAgICAgaWYgKGNvbW1hbmRTdW1tYXJ5KSB7XG4gICAgICAgIHJlc3VsdC5jYW50b25Db21tYW5kID0gY29tbWFuZFN1bW1hcnk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3ByZXBhcmVDb21tYW5kIHx8ICF0aGlzLl9wcmVwYXJlQ29tbWFuZC5wcmVwYXJlZFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgLy8gVE9ETzogZXh0cmFjdCBvdGhlciByZXF1aXJlZCBkYXRhICh1dHhvIHVzZWQsIHJlcXVlc3QgdGltZSwgZXhlY3V0ZSBiZWZvcmUgZXRjKVxuICAgIGxldCBwYXJzZWRJbmZvOiBQcmVwYXJlZFR4blBhcnNlZEluZm87XG4gICAgdHJ5IHtcbiAgICAgIHBhcnNlZEluZm8gPSB1dGlscy5wYXJzZVJhd0NhbnRvblRyYW5zYWN0aW9uRGF0YSh0aGlzLl9wcmVwYXJlQ29tbWFuZC5wcmVwYXJlZFRyYW5zYWN0aW9uLCB0aGlzLnR5cGUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgRmFpbGVkIHRvIHBhcnNlIHRyYW5zYWN0aW9uIGhhc2g6ICR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogZX1gKTtcbiAgICB9XG4gICAgcmVzdWx0LnNlbmRlciA9IHBhcnNlZEluZm8uc2VuZGVyO1xuICAgIHJlc3VsdC5yZWNlaXZlciA9IHBhcnNlZEluZm8ucmVjZWl2ZXI7XG4gICAgcmVzdWx0LmFtb3VudCA9IHBhcnNlZEluZm8uYW1vdW50O1xuICAgIGlmIChwYXJzZWRJbmZvLm1lbW9JZCkge1xuICAgICAgcmVzdWx0Lm1lbW9JZCA9IHBhcnNlZEluZm8ubWVtb0lkO1xuICAgIH1cbiAgICBpZiAocGFyc2VkSW5mby50b2tlbikge1xuICAgICAgcmVzdWx0LnRva2VuID0gcGFyc2VkSW5mby50b2tlbjtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldCBzaWduYWJsZVBheWxvYWQoKTogQnVmZmVyIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuVHJhbnNmZXJBY2tub3dsZWRnZSB8fFxuICAgICAgdGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkNvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbCB8fFxuICAgICAgdGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkFsbG9jYXRpb25SZXF1ZXN0IHx8XG4gICAgICB0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuRW5kSW52ZXN0b3JPbmJvYXJkaW5nT2ZmZXJcbiAgICApIHtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbShEVU1NWV9IQVNILCAnYmFzZTY0Jyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fcHJlcGFyZUNvbW1hbmQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgICByZXR1cm4gQnVmZmVyLmZyb20odGhpcy5fcHJlcGFyZUNvbW1hbmQucHJlcGFyZWRUcmFuc2FjdGlvbkhhc2gsICdiYXNlNjQnKTtcbiAgfVxuXG4gIGdldCBjYW50b25Db21tYW5kQWN0QXNQYXJ0aWVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fY2FudG9uQ29tbWFuZEFjdEFzID8/IFtdO1xuICB9XG5cbiAgZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1R4OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGVjb2RlZDogVHJhbnNhY3Rpb25Ccm9hZGNhc3REYXRhID0gSlNPTi5wYXJzZShCdWZmZXIuZnJvbShyYXdUeCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGY4JykpO1xuICAgICAgdGhpcy5pZCA9IGRlY29kZWQuc3VibWlzc2lvbklkO1xuICAgICAgdGhpcy50cmFuc2FjdGlvblR5cGUgPSBUcmFuc2FjdGlvblR5cGVbZGVjb2RlZC50eFR5cGVdO1xuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlRyYW5zZmVyQWNrbm93bGVkZ2UpIHtcbiAgICAgICAgaWYgKGRlY29kZWQuYWNrbm93bGVkZ2VEYXRhKSB7XG4gICAgICAgICAgdGhpcy5hY2tub3dsZWRnZURhdGEgPSBkZWNvZGVkLmFja25vd2xlZGdlRGF0YTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5Db3NpZ25EZWxlZ2F0aW9uUHJvcG9zYWwpIHtcbiAgICAgICAgaWYgKGRlY29kZWQuY29zaWduRGVsZWdhdGlvblByb3Bvc2FsRGF0YSkge1xuICAgICAgICAgIHRoaXMuY29zaWduRGVsZWdhdGlvblByb3Bvc2FsRGF0YSA9IGRlY29kZWQuY29zaWduRGVsZWdhdGlvblByb3Bvc2FsRGF0YTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5BbGxvY2F0aW9uUmVxdWVzdCkge1xuICAgICAgICBpZiAoZGVjb2RlZC5hbGxvY2F0aW9uUmVxdWVzdERhdGEpIHtcbiAgICAgICAgICB0aGlzLmFsbG9jYXRpb25SZXF1ZXN0RGF0YSA9IGRlY29kZWQuYWxsb2NhdGlvblJlcXVlc3REYXRhO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkVuZEludmVzdG9yT25ib2FyZGluZ09mZmVyKSB7XG4gICAgICAgIGlmIChkZWNvZGVkLmVuZEludmVzdG9yT25ib2FyZGluZ09mZmVyRGF0YSkge1xuICAgICAgICAgIHRoaXMuZW5kSW52ZXN0b3JPbmJvYXJkaW5nT2ZmZXJEYXRhID0gZGVjb2RlZC5lbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlckRhdGE7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChkZWNvZGVkLnByZXBhcmVDb21tYW5kUmVzcG9uc2UpIHtcbiAgICAgICAgICB0aGlzLnByZXBhcmVDb21tYW5kID0gZGVjb2RlZC5wcmVwYXJlQ29tbWFuZFJlc3BvbnNlO1xuICAgICAgICAgIGlmICh0aGlzLnR5cGUgIT09IFRyYW5zYWN0aW9uVHlwZS5DYW50b25Db21tYW5kKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkZWNvZGVkLnBhcnR5U2lnbmF0dXJlcyAmJiBkZWNvZGVkLnBhcnR5U2lnbmF0dXJlcy5zaWduYXR1cmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnNpZ25lckZpbmdlcnByaW50ID0gZGVjb2RlZC5wYXJ0eVNpZ25hdHVyZXMuc2lnbmF0dXJlc1swXS5wYXJ0eS5zcGxpdCgnOjonKVsxXTtcbiAgICAgICAgICB0aGlzLnNpZ25hdHVyZXMgPSBkZWNvZGVkLnBhcnR5U2lnbmF0dXJlcy5zaWduYXR1cmVzWzBdLnNpZ25hdHVyZXNbMF0uc2lnbmF0dXJlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5DYW50b25Db21tYW5kICYmIGRlY29kZWQucHJlcGFyZUNvbW1hbmRSZXNwb25zZT8ucHJlcGFyZWRUcmFuc2FjdGlvbikge1xuICAgICAgICAgIHRoaXMuY2FudG9uQ29tbWFuZEFjdEFzID0gdXRpbHMuZXh0cmFjdFN1Ym1pdHRlckFjdEFzKGRlY29kZWQucHJlcGFyZUNvbW1hbmRSZXNwb25zZS5wcmVwYXJlZFRyYW5zYWN0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignVW5hYmxlIHRvIHBhcnNlIHJhdyB0cmFuc2FjdGlvbiBkYXRhJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBpbnB1dCAmIG91dHB1dCBmaWVsZHMgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKlxuICAgKi9cbiAgbG9hZElucHV0c0FuZE91dHB1dHMoKTogdm9pZCB7XG4gICAgY29uc3Qgb3V0cHV0czogRW50cnlbXSA9IFtdO1xuICAgIGNvbnN0IGlucHV0czogRW50cnlbXSA9IFtdO1xuICAgIGNvbnN0IHR4RGF0YSA9IHRoaXMudG9Kc29uKCk7XG4gICAgY29uc3QgaW5wdXQ6IEVudHJ5ID0ge1xuICAgICAgYWRkcmVzczogdHhEYXRhLnNlbmRlcixcbiAgICAgIHZhbHVlOiB0eERhdGEuYW1vdW50LFxuICAgICAgY29pbjogdHhEYXRhLnRva2VuID8gdHhEYXRhLnRva2VuIDogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgIH07XG4gICAgY29uc3Qgb3V0cHV0OiBFbnRyeSA9IHtcbiAgICAgIGFkZHJlc3M6IHR4RGF0YS5yZWNlaXZlcixcbiAgICAgIHZhbHVlOiB0eERhdGEuYW1vdW50LFxuICAgICAgY29pbjogdHhEYXRhLnRva2VuID8gdHhEYXRhLnRva2VuIDogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgIH07XG4gICAgaW5wdXRzLnB1c2goaW5wdXQpO1xuICAgIG91dHB1dHMucHVzaChvdXRwdXQpO1xuICAgIHRoaXMuX2lucHV0cyA9IGlucHV0cztcbiAgICB0aGlzLl9vdXRwdXRzID0gb3V0cHV0cztcbiAgfVxuXG4gIGV4cGxhaW5UcmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCBkaXNwbGF5T3JkZXIgPSBbXG4gICAgICAnaWQnLFxuICAgICAgJ291dHB1dHMnLFxuICAgICAgJ291dHB1dEFtb3VudCcsXG4gICAgICAnaW5wdXRzJyxcbiAgICAgICdpbnB1dEFtb3VudCcsXG4gICAgICAnY2hhbmdlT3V0cHV0cycsXG4gICAgICAnY2hhbmdlQW1vdW50JyxcbiAgICAgICdmZWUnLFxuICAgICAgJ3R5cGUnLFxuICAgIF07XG4gICAgY29uc3QgaW5wdXRzOiBJVHJhbnNhY3Rpb25SZWNpcGllbnRbXSA9IFtdO1xuICAgIGNvbnN0IG91dHB1dHM6IElUcmFuc2FjdGlvblJlY2lwaWVudFtdID0gW107XG4gICAgbGV0IGlucHV0QW1vdW50ID0gJzAnO1xuICAgIGxldCBvdXRwdXRBbW91bnQgPSAnMCc7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkNvc2lnbkRlbGVnYXRpb25BY2NlcHQ6XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5UcmFuc2ZlckFjY2VwdDpcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlRyYW5zZmVyUmVqZWN0OiB7XG4gICAgICAgIGNvbnN0IHR4RGF0YSA9IHRoaXMudG9Kc29uKCk7XG4gICAgICAgIGNvbnN0IGlucHV0OiBJVHJhbnNhY3Rpb25SZWNpcGllbnQgPSB7XG4gICAgICAgICAgYWRkcmVzczogdHhEYXRhLnNlbmRlcixcbiAgICAgICAgICBhbW91bnQ6IHR4RGF0YS5hbW91bnQsXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0eERhdGEudG9rZW4pIHtcbiAgICAgICAgICBpbnB1dC50b2tlbk5hbWUgPSB0eERhdGEudG9rZW47XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXRzLnB1c2goaW5wdXQpO1xuICAgICAgICBpbnB1dEFtb3VudCA9IHR4RGF0YS5hbW91bnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuQWxsb2NhdGlvbkFsbG9jYXRlOlxuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZDoge1xuICAgICAgICBjb25zdCB0eERhdGEgPSB0aGlzLnRvSnNvbigpO1xuICAgICAgICBjb25zdCBvdXRwdXQ6IElUcmFuc2FjdGlvblJlY2lwaWVudCA9IHtcbiAgICAgICAgICBhZGRyZXNzOiB0eERhdGEucmVjZWl2ZXIsXG4gICAgICAgICAgYW1vdW50OiB0eERhdGEuYW1vdW50LFxuICAgICAgICB9O1xuICAgICAgICBpZiAodHhEYXRhLm1lbW9JZCkge1xuICAgICAgICAgIG91dHB1dC5tZW1vID0gdHhEYXRhLm1lbW9JZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHhEYXRhLnRva2VuKSB7XG4gICAgICAgICAgb3V0cHV0LnRva2VuTmFtZSA9IHR4RGF0YS50b2tlbjtcbiAgICAgICAgfVxuICAgICAgICBvdXRwdXRzLnB1c2gob3V0cHV0KTtcbiAgICAgICAgb3V0cHV0QW1vdW50ID0gdHhEYXRhLmFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5UcmFuc2Zlck9mZmVyV2l0aGRyYXduOlxuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuQWxsb2NhdGlvbkFsbG9jYXRlV2l0aGRyYXduOiB7XG4gICAgICAgIGNvbnN0IHR4RGF0YSA9IHRoaXMudG9Kc29uKCk7XG4gICAgICAgIGNvbnN0IGlucHV0OiBJVHJhbnNhY3Rpb25SZWNpcGllbnQgPSB7XG4gICAgICAgICAgYWRkcmVzczogdHhEYXRhLnJlY2VpdmVyLFxuICAgICAgICAgIGFtb3VudDogdHhEYXRhLmFtb3VudCxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHR4RGF0YS50b2tlbikge1xuICAgICAgICAgIGlucHV0LnRva2VuTmFtZSA9IHR4RGF0YS50b2tlbjtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dHMucHVzaChpbnB1dCk7XG4gICAgICAgIGlucHV0QW1vdW50ID0gdHhEYXRhLmFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5DYW50b25Db21tYW5kOiB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmRTdW1tYXJ5ID0gdGhpcy5idWlsZENhbnRvbkNvbW1hbmRTdW1tYXJ5KCk7XG4gICAgICAgIGNvbnN0IGV4cGxhbmF0aW9uOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uID0ge1xuICAgICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICAgIGRpc3BsYXlPcmRlcixcbiAgICAgICAgICBvdXRwdXRzOiBvdXRwdXRzLFxuICAgICAgICAgIG91dHB1dEFtb3VudDogb3V0cHV0QW1vdW50LFxuICAgICAgICAgIGlucHV0czogaW5wdXRzLFxuICAgICAgICAgIGlucHV0QW1vdW50OiBpbnB1dEFtb3VudCxcbiAgICAgICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgICAgICBmZWU6IHsgZmVlOiAnMCcgfSxcbiAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChjb21tYW5kU3VtbWFyeSkge1xuICAgICAgICAgIGV4cGxhbmF0aW9uLmNhbnRvbkNvbW1hbmQgPSBjb21tYW5kU3VtbWFyeTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXhwbGFuYXRpb247XG4gICAgICB9XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5FbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlcjoge1xuICAgICAgICAvLyBOb24tc2lnbmFibGUgbm90aWZpY2F0aW9uIHJlY29yZCDigJQgbm8gaW5wdXRzLCBvdXRwdXRzLCBvciBhbW91bnRzIHRvIGV4cGxhaW4uXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgICAgIG91dHB1dHM6IFtdLFxuICAgICAgICAgIG91dHB1dEFtb3VudDogJzAnLFxuICAgICAgICAgIGlucHV0czogW10sXG4gICAgICAgICAgaW5wdXRBbW91bnQ6ICcwJyxcbiAgICAgICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgICAgICBmZWU6IHsgZmVlOiAnMCcgfSxcbiAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5PbmVTdGVwUHJlQXBwcm92YWw6XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5UcmFuc2ZlclByZWFwcHJvdmFsQ2FuY2VsOiB7XG4gICAgICAgIC8vIEJvdGggYXJlIHplcm8tYW1vdW50IHNlbGYtc2VydmljZSBvcGVyYXRpb25zIG9uIHRoZSB3YWxsZXQncyBvd24gcHJlYXBwcm92YWwgY29udHJhY3QuXG4gICAgICAgIC8vIFNob3cgdGhlIHBhcnR5IGFkZHJlc3MgYXMgYW4gaW5wdXQgc28gY2FsbGVycyBjYW4gaWRlbnRpZnkgd2hvc2UgcHJlYXBwcm92YWwgaXMgYWZmZWN0ZWQuXG4gICAgICAgIGNvbnN0IHR4RGF0YSA9IHRoaXMudG9Kc29uKCk7XG4gICAgICAgIGNvbnN0IGlucHV0OiBJVHJhbnNhY3Rpb25SZWNpcGllbnQgPSB7XG4gICAgICAgICAgYWRkcmVzczogdHhEYXRhLnJlY2VpdmVyLFxuICAgICAgICAgIGFtb3VudDogdHhEYXRhLmFtb3VudCxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHR4RGF0YS50b2tlbikge1xuICAgICAgICAgIGlucHV0LnRva2VuTmFtZSA9IHR4RGF0YS50b2tlbjtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dHMucHVzaChpbnB1dCk7XG4gICAgICAgIGlucHV0QW1vdW50ID0gdHhEYXRhLmFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIGRpc3BsYXlPcmRlcixcbiAgICAgIG91dHB1dHM6IG91dHB1dHMsXG4gICAgICBvdXRwdXRBbW91bnQ6IG91dHB1dEFtb3VudCxcbiAgICAgIGlucHV0czogaW5wdXRzLFxuICAgICAgaW5wdXRBbW91bnQ6IGlucHV0QW1vdW50LFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgIGZlZTogeyBmZWU6ICcwJyB9LFxuICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ2FudG9uQ29tbWFuZFN1bW1hcnkoKTogQ2FudG9uQ29tbWFuZEV4cGxhaW4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHJhd1ByZXBhcmVkID0gdGhpcy5fcHJlcGFyZUNvbW1hbmQ/LnByZXBhcmVkVHJhbnNhY3Rpb247XG4gICAgaWYgKCFyYXdQcmVwYXJlZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGluZm8gPSB1dGlscy5leHRyYWN0Q2FudG9uQ29tbWFuZEluZm8ocmF3UHJlcGFyZWQpO1xuICAgICAgY29uc3QgdGVtcGxhdGVJZFN0ciA9IGAke2luZm8udGVtcGxhdGVJZC5wYWNrYWdlSWR9OiR7aW5mby50ZW1wbGF0ZUlkLm1vZHVsZU5hbWV9OiR7aW5mby50ZW1wbGF0ZUlkLmVudGl0eU5hbWV9YDtcbiAgICAgIGNvbnN0IHN1bW1hcnk6IENhbnRvbkNvbW1hbmRFeHBsYWluID0ge1xuICAgICAgICBraW5kOiBpbmZvLmtpbmQsXG4gICAgICAgIHRlbXBsYXRlSWQ6IHRlbXBsYXRlSWRTdHIsXG4gICAgICAgIGFjdEFzOiB0aGlzLl9jYW50b25Db21tYW5kQWN0QXMgPz8gW10sXG4gICAgICB9O1xuICAgICAgaWYgKGluZm8uY2hvaWNlICE9PSB1bmRlZmluZWQpIHN1bW1hcnkuY2hvaWNlID0gaW5mby5jaG9pY2U7XG4gICAgICBpZiAoaW5mby5jb250cmFjdElkICE9PSB1bmRlZmluZWQgJiYgaW5mby5jb250cmFjdElkICE9PSAnJykgc3VtbWFyeS5jb250cmFjdElkID0gaW5mby5jb250cmFjdElkO1xuICAgICAgcmV0dXJuIHN1bW1hcnk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIl19