@witnet/sdk 1.0.3 → 1.0.4

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 (197) hide show
  1. package/.env_witnet +6 -6
  2. package/LICENSE +21 -21
  3. package/README.md +103 -103
  4. package/dist/bin/helpers.d.ts +88 -0
  5. package/dist/bin/helpers.d.ts.map +1 -0
  6. package/dist/bin/helpers.js +866 -0
  7. package/dist/index.d.ts +4 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +42 -0
  10. package/dist/lib/crypto/account.d.ts +18 -0
  11. package/dist/lib/crypto/account.d.ts.map +1 -0
  12. package/dist/lib/crypto/account.js +152 -0
  13. package/dist/lib/crypto/coinbase.d.ts +9 -0
  14. package/dist/lib/crypto/coinbase.d.ts.map +1 -0
  15. package/dist/lib/crypto/coinbase.js +39 -0
  16. package/dist/lib/crypto/index.d.ts +7 -0
  17. package/dist/lib/crypto/index.d.ts.map +1 -0
  18. package/dist/lib/crypto/index.js +28 -0
  19. package/dist/lib/crypto/interfaces.d.ts +80 -0
  20. package/dist/lib/crypto/interfaces.d.ts.map +1 -0
  21. package/dist/lib/crypto/interfaces.js +3 -0
  22. package/dist/lib/crypto/payloads/DataRequestPayload.d.ts +47 -0
  23. package/dist/lib/crypto/payloads/DataRequestPayload.d.ts.map +1 -0
  24. package/dist/lib/crypto/payloads/DataRequestPayload.js +384 -0
  25. package/dist/lib/crypto/payloads/StakePayload.d.ts +27 -0
  26. package/dist/lib/crypto/payloads/StakePayload.d.ts.map +1 -0
  27. package/dist/lib/crypto/payloads/StakePayload.js +184 -0
  28. package/dist/lib/crypto/payloads/UnstakePayload.d.ts +35 -0
  29. package/dist/lib/crypto/payloads/UnstakePayload.d.ts.map +1 -0
  30. package/dist/lib/crypto/payloads/UnstakePayload.js +244 -0
  31. package/dist/lib/crypto/payloads/ValueTransferPayload.d.ts +24 -0
  32. package/dist/lib/crypto/payloads/ValueTransferPayload.d.ts.map +1 -0
  33. package/dist/lib/crypto/payloads/ValueTransferPayload.js +182 -0
  34. package/dist/lib/crypto/payloads.d.ts +54 -0
  35. package/dist/lib/crypto/payloads.d.ts.map +1 -0
  36. package/dist/lib/crypto/payloads.js +224 -0
  37. package/dist/lib/crypto/signer.d.ts +26 -0
  38. package/dist/lib/crypto/signer.d.ts.map +1 -0
  39. package/dist/lib/crypto/signer.js +299 -0
  40. package/dist/lib/crypto/transmitters/DataRequests.d.ts +14 -0
  41. package/dist/lib/crypto/transmitters/DataRequests.d.ts.map +1 -0
  42. package/dist/lib/crypto/transmitters/DataRequests.js +62 -0
  43. package/dist/lib/crypto/transmitters/StakeDeposits.d.ts +11 -0
  44. package/dist/lib/crypto/transmitters/StakeDeposits.d.ts.map +1 -0
  45. package/dist/lib/crypto/transmitters/StakeDeposits.js +48 -0
  46. package/dist/lib/crypto/transmitters/StakeWithdrawals.d.ts +17 -0
  47. package/dist/lib/crypto/transmitters/StakeWithdrawals.d.ts.map +1 -0
  48. package/dist/lib/crypto/transmitters/StakeWithdrawals.js +115 -0
  49. package/dist/lib/crypto/transmitters/ValueTransfers.d.ts +10 -0
  50. package/dist/lib/crypto/transmitters/ValueTransfers.d.ts.map +1 -0
  51. package/dist/lib/crypto/transmitters/ValueTransfers.js +47 -0
  52. package/dist/lib/crypto/transmitters.d.ts +46 -0
  53. package/dist/lib/crypto/transmitters.d.ts.map +1 -0
  54. package/dist/lib/crypto/transmitters.js +506 -0
  55. package/dist/lib/crypto/types.d.ts +127 -0
  56. package/dist/lib/crypto/types.d.ts.map +1 -0
  57. package/dist/lib/crypto/types.js +261 -0
  58. package/dist/lib/crypto/utils.d.ts +10 -0
  59. package/dist/lib/crypto/utils.d.ts.map +1 -0
  60. package/dist/lib/crypto/utils.js +97 -0
  61. package/dist/lib/crypto/wallet.d.ts +26 -0
  62. package/dist/lib/crypto/wallet.d.ts.map +1 -0
  63. package/dist/lib/crypto/wallet.js +327 -0
  64. package/dist/lib/helpers.d.ts +90 -0
  65. package/dist/lib/helpers.d.ts.map +1 -0
  66. package/dist/lib/helpers.js +1031 -0
  67. package/dist/lib/index.d.ts +5 -0
  68. package/dist/lib/index.d.ts.map +1 -0
  69. package/dist/lib/index.js +21 -0
  70. package/dist/lib/radon/artifacts.d.ts +55 -0
  71. package/dist/lib/radon/artifacts.d.ts.map +1 -0
  72. package/dist/lib/radon/artifacts.js +347 -0
  73. package/dist/lib/radon/ccdr/eth.d.ts +100 -0
  74. package/dist/lib/radon/ccdr/eth.d.ts.map +1 -0
  75. package/dist/lib/radon/ccdr/eth.js +237 -0
  76. package/dist/lib/radon/ccdr/index.d.ts +34 -0
  77. package/dist/lib/radon/ccdr/index.d.ts.map +1 -0
  78. package/dist/lib/radon/ccdr/index.js +63 -0
  79. package/dist/lib/radon/ccdr/wit.d.ts +29 -0
  80. package/dist/lib/radon/ccdr/wit.d.ts.map +1 -0
  81. package/dist/lib/radon/ccdr/wit.js +60 -0
  82. package/dist/lib/radon/filters.d.ts +14 -0
  83. package/dist/lib/radon/filters.d.ts.map +1 -0
  84. package/dist/lib/radon/filters.js +47 -0
  85. package/dist/lib/radon/index.d.ts +36 -0
  86. package/dist/lib/radon/index.d.ts.map +1 -0
  87. package/dist/lib/radon/index.js +154 -0
  88. package/dist/lib/radon/reducers.d.ts +29 -0
  89. package/dist/lib/radon/reducers.d.ts.map +1 -0
  90. package/dist/lib/radon/reducers.js +101 -0
  91. package/dist/lib/radon/retrievals.d.ts +120 -0
  92. package/dist/lib/radon/retrievals.d.ts.map +1 -0
  93. package/dist/lib/radon/retrievals.js +358 -0
  94. package/dist/lib/radon/sources.d.ts +102 -0
  95. package/dist/lib/radon/sources.d.ts.map +1 -0
  96. package/dist/lib/radon/sources.js +294 -0
  97. package/dist/lib/radon/types.d.ts +521 -0
  98. package/dist/lib/radon/types.d.ts.map +1 -0
  99. package/dist/lib/radon/types.js +1066 -0
  100. package/dist/lib/radon/utils.d.ts +55 -0
  101. package/dist/lib/radon/utils.d.ts.map +1 -0
  102. package/dist/lib/radon/utils.js +181 -0
  103. package/dist/lib/rpc/farm.d.ts +66 -0
  104. package/dist/lib/rpc/farm.d.ts.map +1 -0
  105. package/dist/lib/rpc/farm.js +808 -0
  106. package/dist/lib/rpc/index.d.ts +3 -0
  107. package/dist/lib/rpc/index.d.ts.map +1 -0
  108. package/dist/lib/rpc/index.js +19 -0
  109. package/dist/lib/rpc/node.d.ts +38 -0
  110. package/dist/lib/rpc/node.d.ts.map +1 -0
  111. package/dist/lib/rpc/node.js +335 -0
  112. package/dist/lib/rpc/nodes.d.ts +40 -0
  113. package/dist/lib/rpc/nodes.d.ts.map +1 -0
  114. package/dist/lib/rpc/nodes.js +531 -0
  115. package/dist/lib/rpc/provider.d.ts +72 -0
  116. package/dist/lib/rpc/provider.d.ts.map +1 -0
  117. package/dist/lib/rpc/provider.js +402 -0
  118. package/dist/lib/rpc/reporter.d.ts +18 -0
  119. package/dist/lib/rpc/reporter.d.ts.map +1 -0
  120. package/dist/lib/rpc/reporter.js +99 -0
  121. package/dist/lib/rpc/types.d.ts +396 -0
  122. package/dist/lib/rpc/types.d.ts.map +1 -0
  123. package/dist/lib/rpc/types.js +81 -0
  124. package/dist/lib/rpc/wallet.d.ts +72 -0
  125. package/dist/lib/rpc/wallet.d.ts.map +1 -0
  126. package/dist/lib/rpc/wallet.js +41 -0
  127. package/dist/lib/types.d.ts +19 -0
  128. package/dist/lib/types.d.ts.map +1 -0
  129. package/dist/lib/types.js +7 -0
  130. package/dist/lib/utils.d.ts +5 -0
  131. package/dist/lib/utils.d.ts.map +1 -0
  132. package/dist/lib/utils.js +51 -0
  133. package/dist/package.json +1 -1
  134. package/dist/src/bin/helpers.js +1 -1
  135. package/dist/src/index.js +1 -1
  136. package/dist/src/lib/crypto/account.js +1 -1
  137. package/dist/src/lib/crypto/coinbase.js +1 -1
  138. package/dist/src/lib/crypto/index.js +1 -1
  139. package/dist/src/lib/crypto/interfaces.js +1 -1
  140. package/dist/src/lib/crypto/payloads/DataRequestPayload.js +1 -1
  141. package/dist/src/lib/crypto/payloads/StakePayload.js +1 -1
  142. package/dist/src/lib/crypto/payloads/UnstakePayload.js +1 -1
  143. package/dist/src/lib/crypto/payloads/ValueTransferPayload.js +1 -1
  144. package/dist/src/lib/crypto/payloads.js +1 -1
  145. package/dist/src/lib/crypto/signer.js +1 -1
  146. package/dist/src/lib/crypto/transmitters/DataRequests.js +1 -1
  147. package/dist/src/lib/crypto/transmitters/StakeDeposits.js +1 -1
  148. package/dist/src/lib/crypto/transmitters/StakeWithdrawals.js +1 -1
  149. package/dist/src/lib/crypto/transmitters/ValueTransfers.js +1 -1
  150. package/dist/src/lib/crypto/transmitters.js +1 -1
  151. package/dist/src/lib/crypto/types.js +1 -1
  152. package/dist/src/lib/crypto/utils.js +1 -1
  153. package/dist/src/lib/crypto/wallet.js +1 -1
  154. package/dist/src/lib/index.js +1 -1
  155. package/dist/src/lib/radon/ccdr/eth.js +1 -1
  156. package/dist/src/lib/radon/ccdr/index.js +1 -1
  157. package/dist/src/lib/radon/ccdr/wit.js +1 -1
  158. package/dist/src/lib/radon/filters.js +1 -1
  159. package/dist/src/lib/radon/index.js +1 -1
  160. package/dist/src/lib/radon/reducers.js +1 -1
  161. package/dist/src/lib/radon/types.js +1 -1
  162. package/dist/src/lib/radon/utils.js +1 -1
  163. package/dist/src/lib/rpc/index.js +1 -1
  164. package/dist/src/lib/rpc/nodes.js +1 -1
  165. package/dist/src/lib/rpc/provider.js +1 -1
  166. package/dist/src/lib/rpc/reporter.js +1 -1
  167. package/dist/src/lib/rpc/types.js +1 -1
  168. package/dist/src/lib/types.d.ts +1 -1
  169. package/dist/src/lib/types.d.ts.map +1 -1
  170. package/dist/src/lib/types.js +1 -1
  171. package/dist/src/lib/utils.js +1 -1
  172. package/dist/witnet/assets/index.js +1 -1
  173. package/dist/witnet/assets/modals/index.js +1 -1
  174. package/dist/witnet/assets/modals/web3/eth.js +1 -1
  175. package/dist/witnet/assets/modals/web3/ipfs.js +1 -1
  176. package/dist/witnet/assets/modals/web3/wit.js +1 -1
  177. package/dist/witnet/assets/requests.js +1 -1
  178. package/package.json +1 -1
  179. package/src/bin/cli/history.js +31 -31
  180. package/src/bin/cli/inspect.js +405 -405
  181. package/src/bin/cli/network.js +594 -594
  182. package/src/bin/cli/nodes.js +364 -364
  183. package/src/bin/cli/radon.js +815 -815
  184. package/src/bin/cli/wallet.js +1117 -1117
  185. package/src/bin/helpers.js +840 -840
  186. package/src/bin/postinstall.js +9 -9
  187. package/src/bin/toolkit.js +295 -295
  188. package/witnet/assets/_index.js +8 -8
  189. package/witnet/assets/_requests.js +25 -25
  190. package/witnet/assets/_sources.js +36 -36
  191. package/witnet/assets/_templates.js +36 -36
  192. package/witnet/assets/index.js +4 -4
  193. package/witnet/assets/modals/index.js +9 -9
  194. package/witnet/assets/modals/web3/eth.js +29 -29
  195. package/witnet/assets/modals/web3/ipfs.js +19 -19
  196. package/witnet/assets/modals/web3/wit.js +21 -21
  197. package/witnet/assets/requests.js +95 -95
@@ -158,4 +158,4 @@ function totalCoins(balance) {
158
158
  + BigInt(balance.staked)
159
159
  + BigInt(balance.unlocked));
160
160
  }
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1Q0Esb0NBY0M7QUFFRCxrQ0FXQztBQWdFRCxrQ0FpREM7QUFFRCx3QkFJQztBQUVELGdDQU1DO0FBak1ELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQTtBQUV0QyxtQ0FBK0I7QUFDL0IsbUNBQWlFO0FBRWpFLG1DQUE0RDtBQUM1RCxvQ0FBd0M7QUFFeEMsaUNBQStCO0FBQXRCLGdHQUFBLE1BQU0sT0FBQTtBQUVmLGlDQUErRztBQUExRixrR0FBQSxTQUFTLE9BQUE7QUFBRSxzR0FBQSxhQUFhLE9BQUE7QUFBa0IsNkdBQUEsb0JBQW9CLE9BQUE7QUFBRSxrR0FBQSxTQUFTLE9BQUE7QUFFakYsUUFBQSxPQUFPLEdBQUc7SUFDbkIsR0FBRyxDQUFDLEtBQWEsRUFBRSxHQUFHLE1BQWdCO1FBQ2xDLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTTtZQUNsQixJQUFJLENBQUMsR0FBRyxLQUFLO2dCQUFFLEtBQUssR0FBRyxDQUFDLENBQUE7UUFDcEIsT0FBTyxLQUFLLENBQUE7SUFDeEIsQ0FBQztDQUNKLENBQUE7QUFFRCxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQTtBQUM1QixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUE7QUFDdEIsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFBO0FBQ3JCLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQTtBQUV6QixNQUFNLFlBQVksR0FBRyxDQUNqQixZQUFZO01BQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQztNQUNyRCxpQkFBaUI7TUFDakIsVUFBVSxDQUNuQixDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFD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QyxNQUFNLENBQUMsQ0FBQTtJQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtBQUN4QixDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLE9BQWdCO0lBQ3ZDLE9BQU8sYUFBSyxDQUFDLFVBQVUsQ0FDbkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7VUFDaEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7VUFDdEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FDakMsQ0FBQTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzZWNwMjU2azEgPSByZXF1aXJlKFwic2VjcDI1NmsxXCIpXHJcblxyXG5pbXBvcnQgeyBiZWNoMzIgfSBmcm9tICdiZWNoMzInXHJcbmltcG9ydCB7IGNyZWF0ZURlY2lwaGVyaXYsIGNyZWF0ZUhhc2gsIHBia2RmMlN5bmMgfSBmcm9tICdjcnlwdG8nXHJcbmltcG9ydCB7IEJhbGFuY2UsIEhleFN0cmluZyB9IGZyb20gJy4uL3R5cGVzJ1xyXG5pbXBvcnQgeyBDb2lucywgVXR4bywgVXR4b1NlbGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi90eXBlcydcclxuaW1wb3J0IHsgZnJvbUhleFN0cmluZyB9IGZyb20gJy4uL3V0aWxzJ1xyXG5cclxuZXhwb3J0IHsgYmVjaDMyIH0gZnJvbSAnYmVjaDMyJ1xyXG5cclxuZXhwb3J0IHsgUHJpdmF0ZUtleSwgUHVibGljS2V5LCBQdWJsaWNLZXlIYXNoLCBLZXllZFNpZ25hdHVyZSwgUmVjb3ZlcmFibGVTaWduYXR1cmUsIFNpZ25hdHVyZSB9IGZyb20gXCIuL3R5cGVzXCJcclxuXHJcbmV4cG9ydCBjb25zdCBCaWdNYXRoID0ge1xyXG4gICAgbWF4KHZhbHVlOiBiaWdpbnQsIC4uLnZhbHVlczogYmlnaW50W10pOiBiaWdpbnQge1xyXG4gICAgICAgIGZvciAoY29uc3QgdiBvZiB2YWx1ZXMpXHJcbiAgICAgICAgICAgIGlmICh2ID4gdmFsdWUpIHZhbHVlID0gdlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlXHJcbiAgICB9LFxyXG59XHJcblxyXG5jb25zdCBDSEFJTl9DT0RFX0xFTkdUSCA9IDMyXHJcbmNvbnN0IERFUFRIX0xFTkdUSCA9IDFcclxuY29uc3QgS0VZX0xFTkdUSCA9IDMzXHJcbmNvbnN0IEtFWV9QQVRIX0xFTkdUSCA9IDRcclxuXHJcbmNvbnN0IEJFQ0gzMl9MSU1JVCA9IChcclxuICAgIERFUFRIX0xFTkdUSCBcclxuICAgICAgICArICgoTWF0aC5wb3coMjU2LCBERVBUSF9MRU5HVEgpIC0gMSkgKiBLRVlfUEFUSF9MRU5HVEgpIFxyXG4gICAgICAgICsgQ0hBSU5fQ09ERV9MRU5HVEggXHJcbiAgICAgICAgKyBLRVlfTEVOR1RIXHJcbik7XHJcblxyXG5jb25zdCBnZXRFeHBlY3RlZERhdGFMZW5ndGggPSAoZGVwdGg6IG51bWJlcikgPT4gKFxyXG4gICAgREVQVEhfTEVOR1RIXHJcbiAgICAgICAgKyBkZXB0aCAqIEtFWV9QQVRIX0xFTkdUSFxyXG4gICAgICAgICsgQ0hBSU5fQ09ERV9MRU5HVEhcclxuICAgICAgICArIEtFWV9MRU5HVEhcclxuKTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWNpcGhlclhwcnYoc2xpcDMyOiBzdHJpbmcsIHBhc3N3ZDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHsgcHJlZml4LCB3b3JkcyB9ID0gYmVjaDMyLmRlY29kZShzbGlwMzIsIEJFQ0gzMl9MSU1JVClcclxuICAgIGlmIChwcmVmaXggIT09IFwieHBydlwiKSB7XHJcbiAgICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgWFBSViBoZWFkZXI6IFwiJHtwcmVmaXh9XCIgIT0gXCJ4cHJ2XCJgKVxyXG4gICAgfVxyXG4gICAgY29uc3QgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoYmVjaDMyLmZyb21Xb3Jkcyh3b3JkcykpLmJ1ZmZlclxyXG4gICAgY29uc3QgaXYgPSBidWZmZXIuc2xpY2UoMCwgMTYpXHJcbiAgICBjb25zdCBzYWx0ID0gYnVmZmVyLnNsaWNlKDE2LCA0OClcclxuICAgIGNvbnN0IGRhdGEgPSBidWZmZXIuc2xpY2UoNDgpXHJcbiAgICBjb25zdCBrZXkgPSBwYmtkZjJTeW5jKHBhc3N3ZCwgQnVmZmVyLmZyb20oc2FsdCksIDEwMDAwLCAzMiwgJ3NoYTI1NicpICAgIFxyXG4gICAgY29uc3QgZGVjaXBoZXIgPSBjcmVhdGVEZWNpcGhlcml2KFwiYWVzLTI1Ni1jYmNcIiwga2V5LCBCdWZmZXIuZnJvbShpdikpXHJcbiAgICBsZXQgZGVjcnlwdGVkID0gZGVjaXBoZXIudXBkYXRlKEJ1ZmZlci5mcm9tKGRhdGEpLCB1bmRlZmluZWQsICd1dGYtOCcpXHJcbiAgICBkZWNyeXB0ZWQgKz0gZGVjaXBoZXIuZmluYWwoJ3V0Zi04JylcclxuICAgIHJldHVybiBkZWNyeXB0ZWRcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGVjZHNhVmVyaWZ5KFxyXG4gICAgbXNnOiBCdWZmZXI8QXJyYXlCdWZmZXJMaWtlPiwgXHJcbiAgICBwdWJLZXk6IEhleFN0cmluZyxcclxuICAgIHNpZ25hdHVyZTogSGV4U3RyaW5nLCBcclxuKTogYm9vbGVhbiB7XHJcbiAgICBcclxuICAgIHJldHVybiBzZWNwMjU2azEuZWNkc2FWZXJpZnkoXHJcbiAgICAgICAgZnJvbUhleFN0cmluZyhzaWduYXR1cmUpLCBcclxuICAgICAgICBtc2csIFxyXG4gICAgICAgIGZyb21IZXhTdHJpbmcocHViS2V5KVxyXG4gICAgKVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgcGFyc2VYcHJ2ID0gKHNsaXAzMjogc3RyaW5nKToge1xyXG4gICAgY2hhaW5Db2RlOiBVaW50OEFycmF5LFxyXG4gICAga2V5UGF0aDogQXJyYXk8bnVtYmVyPixcclxuICAgIHByaXZhdGVLZXk6IFVpbnQ4QXJyYXksXHJcbn0gPT4ge1xyXG4gICAgLy8gZGVjb2RlIHNsaXAzMiBzdHJpbmdcclxuICAgIGNvbnN0IHsgcHJlZml4LCB3b3JkcyB9ID0gYmVjaDMyLmRlY29kZShzbGlwMzIsIEJFQ0gzMl9MSU1JVClcclxuICAgIGNvbnN0IGJ5dGVzID0gYmVjaDMyLmZyb21Xb3Jkcyh3b3JkcylcclxuXHJcbiAgICAvLyBjaGVjayBwcmVmaXhcclxuICAgIGlmIChwcmVmaXggIT09IFwieHBydlwiKSB7XHJcbiAgICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgWFBSVjogYmFkIGhlYWRlcjogXCIke3ByZWZpeH1cIiAhPSBcInhwcnZcImApXHJcbiAgICB9XHJcblxyXG4gICAgLy8gY2hlY2sgZXhwZWN0ZWQgZGF0YSBsZW5ndGhcclxuICAgIGNvbnN0IGRlcHRoID0gYnl0ZXNbMF1cclxuICAgIGlmIChkZXB0aCAhPT0gMCkge1xyXG4gICAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIFhQUlY6IG5vdCBhIG1hc3RlciBwcml2YXRlIGtleSAoZGVwdGg6ICR7ZGVwdGh9KWApXHJcbiAgICB9XHJcbiAgICBjb25zdCBleHBlY3RlZExlbmd0aCA9IGdldEV4cGVjdGVkRGF0YUxlbmd0aChkZXB0aClcclxuICAgIGlmIChieXRlcy5sZW5ndGggIT09IGV4cGVjdGVkTGVuZ3RoKSB7XHJcbiAgICAgICAgdGhyb3cgRXJyb3IoXHJcbiAgICAgICAgICAgIFwiSW52YWxpZCBYUFJWOiBiYWQgZGF0YSBsZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgKyBgKGV4cGVjdGVkOiAke2V4cGVjdGVkTGVuZ3RofSwgd2FzOiAke2J5dGVzLmxlbmd0aH1gXHJcbiAgICAgICAgKVxyXG4gICAgfVxyXG4gICAgY29uc3QgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZXMpLmJ1ZmZlclxyXG5cclxuICAgIC8vIGV4dHJhY3Qga2V5IHBhdGggKDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VycywgYmlnIGVuZGlhbilcclxuICAgIGNvbnN0IGtleVBhdGg6IEFycmF5PG51bWJlcj4gPSBbXVxyXG4gICAgY29uc3Qga2V5UGF0aFZpZXcgPSBuZXcgRGF0YVZpZXcoYnVmZmVyLCBERVBUSF9MRU5HVEgsIGRlcHRoICogS0VZX1BBVEhfTEVOR1RIKVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZXB0aDsgaSsrKSB7XHJcbiAgICAgICAga2V5UGF0aC5wdXNoKChrZXlQYXRoVmlldy5nZXRVaW50MzIoaSAqIEtFWV9QQVRIX0xFTkdUSCwgZmFsc2UpKSlcclxuICAgIH1cclxuXHJcbiAgICAvLyBleHRyYWN0IGNoYWluIGNvZGVcclxuICAgIGNvbnN0IGNoYWluQ29kZTogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KENIQUlOX0NPREVfTEVOR1RIKVxyXG4gICAgY29uc3QgY2hhaW5Db2RlT2Zmc2V0ID0gREVQVEhfTEVOR1RIICsgZGVwdGggKiBLRVlfUEFUSF9MRU5HVEhcclxuICAgIGNvbnN0IGNoYWluQ29kZVZpZXcgPSBuZXcgRGF0YVZpZXcoYnVmZmVyLCBjaGFpbkNvZGVPZmZzZXQsIENIQUlOX0NPREVfTEVOR1RIKVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFpbkNvZGUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjaGFpbkNvZGVbaV0gPSAoY2hhaW5Db2RlVmlldy5nZXRVaW50OChpKSlcclxuICAgIH1cclxuXHJcbiAgICAvLyBleHRyYWN0IGtleSBieXRlc1xyXG4gICAgY29uc3QgcHJpdmF0ZUtleTogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KEtFWV9MRU5HVEgpXHJcbiAgICBjb25zdCBwcml2YXRlS2V5VmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIsIGNoYWluQ29kZU9mZnNldCArIENIQUlOX0NPREVfTEVOR1RIKVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcml2YXRlS2V5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgcHJpdmF0ZUtleVtpXSA9IChwcml2YXRlS2V5Vmlldy5nZXRVaW50OChpKSlcclxuICAgIH1cclxuXHJcbiAgICAvLyBjaGVjayBpZiBwcml2YXRlIG9yIHB1YmxpYyBrZXkgYXJlIHZhbGlkXHJcbiAgICBpZiAocHJpdmF0ZUtleVswXSAhPT0gMCB8fCAhc2VjcDI1NmsxLnByaXZhdGVLZXlWZXJpZnkocHJpdmF0ZUtleS5zbGljZSgxKSkpIHtcclxuICAgICAgICB0aHJvdyBFcnJvcihgTWFsZm9ybWVkIHNsaXAzMjogbm90IGEgcHJpdmF0ZSBrZXlgKVxyXG4gICAgfSBcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGNoYWluQ29kZSxcclxuICAgICAgICBrZXlQYXRoLFxyXG4gICAgICAgIHByaXZhdGVLZXk6IHByaXZhdGVLZXkuc2xpY2UoMSksXHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0VXR4b3Moc3BlY3M6IHsgXHJcbiAgICB1dHhvczogQXJyYXk8VXR4bz4sIFxyXG4gICAgdmFsdWU/OiBDb2lucywgXHJcbiAgICBzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneSwgXHJcbn0pOiBBcnJheTxVdHhvPiB7XHJcbiAgICBjb25zdCBzdHJhdGVneSA9IHNwZWNzLnN0cmF0ZWd5IHx8IFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbGltRml0XHJcbiAgICBzd2l0Y2ggKHN0cmF0ZWd5KSB7XHJcbiAgICAgICAgY2FzZSBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuQmlnRmlyc3Q6XHJcbiAgICAgICAgY2FzZSBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU2xpbUZpdDpcclxuICAgICAgICAgICAgc3BlY3MudXR4b3MgPSBzcGVjcy51dHhvcy5zb3J0KChhLCBiKSA9PiAoYS52YWx1ZSA+IGIudmFsdWUpID8gLTEgOiAoKGEudmFsdWUgPCBiLnZhbHVlKSA/IDEgOiAwKSlcclxuICAgICAgICAgICAgYnJlYWtcclxuXHJcbiAgICAgICAgY2FzZSBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuUmFuZG9tOlxyXG4gICAgICAgICAgICBjb25zdCBsZW4gPSBzcGVjcy51dHhvcy5sZW5ndGhcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkgKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGxlbiAtIGkpKVxyXG4gICAgICAgICAgICAgICAgY29uc3QgdG1wID0gc3BlY3MudXR4b3NbaW5kZXhdXHJcbiAgICAgICAgICAgICAgICBzcGVjcy51dHhvc1tpbmRleF0gPSBzcGVjcy51dHhvc1tsZW4gLSBpIC0gMV1cclxuICAgICAgICAgICAgICAgIHNwZWNzLnV0eG9zW2xlbiAtIGkgLSAxXSA9IHRtcFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrXHJcblxyXG4gICAgICAgIGNhc2UgVXR4b1NlbGVjdGlvblN0cmF0ZWd5LlNtYWxsRmlyc3Q6XHJcbiAgICAgICAgICAgIHNwZWNzLnV0eG9zID0gc3BlY3MudXR4b3Muc29ydCgoYSwgYikgPT4gKGEudmFsdWUgPCBiLnZhbHVlKSA/IC0xIDogKChhLnZhbHVlID4gYi52YWx1ZSkgPyAxIDogMCkpXHJcbiAgICAgICAgICAgIGJyZWFrXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vIGZpbHRlciBsb2NrZWQgVVRYT3M6XHJcbiAgICBjb25zdCBub3cgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKVxyXG4gICAgc3BlY3MudXR4b3MgPSBzcGVjcy51dHhvcy5maWx0ZXIodXR4byA9PiB1dHhvLnRpbWVsb2NrIDw9IG5vdylcclxuXHJcbiAgICAvLyBpZiB0YXJnZXQgdmFsdWUgaXMgc3BlY2lmaWVkLCBmaWx0ZXIgc3BhcmUgVVRYT3NcclxuICAgIGNvbnN0IHBlZHJvcyA9IHNwZWNzPy52YWx1ZT8ucGVkcm9zXHJcbiAgICBpZiAocGVkcm9zKSB7XHJcbiAgICAgICAgaWYgKHN0cmF0ZWd5ID09PSBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU2xpbUZpdCkge1xyXG4gICAgICAgICAgICBjb25zdCBzbGltRml0SW5kZXggPSBzcGVjcy51dHhvcy5maW5kSW5kZXgodXR4byA9PiB1dHhvLnZhbHVlIDw9IHBlZHJvcylcclxuICAgICAgICAgICAgaWYgKHNsaW1GaXRJbmRleCA+PSAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc3BlY3MudXR4b3Muc2xpY2Uoc2xpbUZpdEluZGV4IC0gMSwgc2xpbUZpdEluZGV4KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBjb3ZlcmVkOiBiaWdpbnQgPSAwbiBcclxuICAgICAgICByZXR1cm4gc3BlY3MudXR4b3MuZmlsdGVyKHV0eG8gPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBjb3ZlcmVkIDw9IHBlZHJvc1xyXG4gICAgICAgICAgICBjb3ZlcmVkICs9IEJpZ0ludCh1dHhvLnZhbHVlKVxyXG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyXHJcbiAgICAgICAgfSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHNwZWNzLnV0eG9zXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzaGEyNTYoYnVmZmVyOiBhbnkpIHtcclxuICAgIGNvbnN0IGhhc2ggPSBjcmVhdGVIYXNoKCdzaGEyNTYnKVxyXG4gICAgaGFzaC51cGRhdGUoYnVmZmVyKVxyXG4gICAgcmV0dXJuIGhhc2guZGlnZXN0KClcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRvdGFsQ29pbnMoYmFsYW5jZTogQmFsYW5jZSk6IENvaW5zIHtcclxuICAgIHJldHVybiBDb2lucy5mcm9tUGVkcm9zKFxyXG4gICAgICAgIEJpZ0ludChiYWxhbmNlLmxvY2tlZClcclxuICAgICAgICAgICAgKyBCaWdJbnQoYmFsYW5jZS5zdGFrZWQpXHJcbiAgICAgICAgICAgICsgQmlnSW50KGJhbGFuY2UudW5sb2NrZWQpXHJcbiAgICApXHJcbn1cclxuXHJcbiJdfQ==
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1Q0Esb0NBY0M7QUFFRCxrQ0FXQztBQWdFRCxrQ0FpREM7QUFFRCx3QkFJQztBQUVELGdDQU1DO0FBak1ELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQTtBQUV0QyxtQ0FBK0I7QUFDL0IsbUNBQWlFO0FBRWpFLG1DQUE0RDtBQUM1RCxvQ0FBd0M7QUFFeEMsaUNBQStCO0FBQXRCLGdHQUFBLE1BQU0sT0FBQTtBQUVmLGlDQUErRztBQUExRixrR0FBQSxTQUFTLE9BQUE7QUFBRSxzR0FBQSxhQUFhLE9BQUE7QUFBa0IsNkdBQUEsb0JBQW9CLE9BQUE7QUFBRSxrR0FBQSxTQUFTLE9BQUE7QUFFakYsUUFBQSxPQUFPLEdBQUc7SUFDbkIsR0FBRyxDQUFDLEtBQWEsRUFBRSxHQUFHLE1BQWdCO1FBQ2xDLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTTtZQUNsQixJQUFJLENBQUMsR0FBRyxLQUFLO2dCQUFFLEtBQUssR0FBRyxDQUFDLENBQUE7UUFDcEIsT0FBTyxLQUFLLENBQUE7SUFDeEIsQ0FBQztDQUNKLENBQUE7QUFFRCxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQTtBQUM1QixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUE7QUFDdEIsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFBO0FBQ3JCLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQTtBQUV6QixNQUFNLFlBQVksR0FBRyxDQUNqQixZQUFZO01BQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQztNQUNyRCxpQkFBaUI7TUFDakIsVUFBVSxDQUNuQixDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFD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QyxNQUFNLENBQUMsQ0FBQTtJQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtBQUN4QixDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLE9BQWdCO0lBQ3ZDLE9BQU8sYUFBSyxDQUFDLFVBQVUsQ0FDbkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7VUFDaEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7VUFDdEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FDakMsQ0FBQTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzZWNwMjU2azEgPSByZXF1aXJlKFwic2VjcDI1NmsxXCIpXG5cbmltcG9ydCB7IGJlY2gzMiB9IGZyb20gJ2JlY2gzMidcbmltcG9ydCB7IGNyZWF0ZURlY2lwaGVyaXYsIGNyZWF0ZUhhc2gsIHBia2RmMlN5bmMgfSBmcm9tICdjcnlwdG8nXG5pbXBvcnQgeyBCYWxhbmNlLCBIZXhTdHJpbmcgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IENvaW5zLCBVdHhvLCBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHsgZnJvbUhleFN0cmluZyB9IGZyb20gJy4uL3V0aWxzJ1xuXG5leHBvcnQgeyBiZWNoMzIgfSBmcm9tICdiZWNoMzInXG5cbmV4cG9ydCB7IFByaXZhdGVLZXksIFB1YmxpY0tleSwgUHVibGljS2V5SGFzaCwgS2V5ZWRTaWduYXR1cmUsIFJlY292ZXJhYmxlU2lnbmF0dXJlLCBTaWduYXR1cmUgfSBmcm9tIFwiLi90eXBlc1wiXG5cbmV4cG9ydCBjb25zdCBCaWdNYXRoID0ge1xuICAgIG1heCh2YWx1ZTogYmlnaW50LCAuLi52YWx1ZXM6IGJpZ2ludFtdKTogYmlnaW50IHtcbiAgICAgICAgZm9yIChjb25zdCB2IG9mIHZhbHVlcylcbiAgICAgICAgICAgIGlmICh2ID4gdmFsdWUpIHZhbHVlID0gdlxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZVxuICAgIH0sXG59XG5cbmNvbnN0IENIQUlOX0NPREVfTEVOR1RIID0gMzJcbmNvbnN0IERFUFRIX0xFTkdUSCA9IDFcbmNvbnN0IEtFWV9MRU5HVEggPSAzM1xuY29uc3QgS0VZX1BBVEhfTEVOR1RIID0gNFxuXG5jb25zdCBCRUNIMzJfTElNSVQgPSAoXG4gICAgREVQVEhfTEVOR1RIIFxuICAgICAgICArICgoTWF0aC5wb3coMjU2LCBERVBUSF9MRU5HVEgpIC0gMSkgKiBLRVlfUEFUSF9MRU5HVEgpIFxuICAgICAgICArIENIQUlOX0NPREVfTEVOR1RIIFxuICAgICAgICArIEtFWV9MRU5HVEhcbik7XG5cbmNvbnN0IGdldEV4cGVjdGVkRGF0YUxlbmd0aCA9IChkZXB0aDogbnVtYmVyKSA9PiAoXG4gICAgREVQVEhfTEVOR1RIXG4gICAgICAgICsgZGVwdGggKiBLRVlfUEFUSF9MRU5HVEhcbiAgICAgICAgKyBDSEFJTl9DT0RFX0xFTkdUSFxuICAgICAgICArIEtFWV9MRU5HVEhcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNpcGhlclhwcnYoc2xpcDMyOiBzdHJpbmcsIHBhc3N3ZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB7IHByZWZpeCwgd29yZHMgfSA9IGJlY2gzMi5kZWNvZGUoc2xpcDMyLCBCRUNIMzJfTElNSVQpXG4gICAgaWYgKHByZWZpeCAhPT0gXCJ4cHJ2XCIpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgWFBSViBoZWFkZXI6IFwiJHtwcmVmaXh9XCIgIT0gXCJ4cHJ2XCJgKVxuICAgIH1cbiAgICBjb25zdCBidWZmZXIgPSBuZXcgVWludDhBcnJheShiZWNoMzIuZnJvbVdvcmRzKHdvcmRzKSkuYnVmZmVyXG4gICAgY29uc3QgaXYgPSBidWZmZXIuc2xpY2UoMCwgMTYpXG4gICAgY29uc3Qgc2FsdCA9IGJ1ZmZlci5zbGljZSgxNiwgNDgpXG4gICAgY29uc3QgZGF0YSA9IGJ1ZmZlci5zbGljZSg0OClcbiAgICBjb25zdCBrZXkgPSBwYmtkZjJTeW5jKHBhc3N3ZCwgQnVmZmVyLmZyb20oc2FsdCksIDEwMDAwLCAzMiwgJ3NoYTI1NicpICAgIFxuICAgIGNvbnN0IGRlY2lwaGVyID0gY3JlYXRlRGVjaXBoZXJpdihcImFlcy0yNTYtY2JjXCIsIGtleSwgQnVmZmVyLmZyb20oaXYpKVxuICAgIGxldCBkZWNyeXB0ZWQgPSBkZWNpcGhlci51cGRhdGUoQnVmZmVyLmZyb20oZGF0YSksIHVuZGVmaW5lZCwgJ3V0Zi04JylcbiAgICBkZWNyeXB0ZWQgKz0gZGVjaXBoZXIuZmluYWwoJ3V0Zi04JylcbiAgICByZXR1cm4gZGVjcnlwdGVkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlY2RzYVZlcmlmeShcbiAgICBtc2c6IEJ1ZmZlcjxBcnJheUJ1ZmZlckxpa2U+LCBcbiAgICBwdWJLZXk6IEhleFN0cmluZyxcbiAgICBzaWduYXR1cmU6IEhleFN0cmluZywgXG4pOiBib29sZWFuIHtcbiAgICBcbiAgICByZXR1cm4gc2VjcDI1NmsxLmVjZHNhVmVyaWZ5KFxuICAgICAgICBmcm9tSGV4U3RyaW5nKHNpZ25hdHVyZSksIFxuICAgICAgICBtc2csIFxuICAgICAgICBmcm9tSGV4U3RyaW5nKHB1YktleSlcbiAgICApXG59XG5cbmV4cG9ydCBjb25zdCBwYXJzZVhwcnYgPSAoc2xpcDMyOiBzdHJpbmcpOiB7XG4gICAgY2hhaW5Db2RlOiBVaW50OEFycmF5LFxuICAgIGtleVBhdGg6IEFycmF5PG51bWJlcj4sXG4gICAgcHJpdmF0ZUtleTogVWludDhBcnJheSxcbn0gPT4ge1xuICAgIC8vIGRlY29kZSBzbGlwMzIgc3RyaW5nXG4gICAgY29uc3QgeyBwcmVmaXgsIHdvcmRzIH0gPSBiZWNoMzIuZGVjb2RlKHNsaXAzMiwgQkVDSDMyX0xJTUlUKVxuICAgIGNvbnN0IGJ5dGVzID0gYmVjaDMyLmZyb21Xb3Jkcyh3b3JkcylcblxuICAgIC8vIGNoZWNrIHByZWZpeFxuICAgIGlmIChwcmVmaXggIT09IFwieHBydlwiKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIFhQUlY6IGJhZCBoZWFkZXI6IFwiJHtwcmVmaXh9XCIgIT0gXCJ4cHJ2XCJgKVxuICAgIH1cblxuICAgIC8vIGNoZWNrIGV4cGVjdGVkIGRhdGEgbGVuZ3RoXG4gICAgY29uc3QgZGVwdGggPSBieXRlc1swXVxuICAgIGlmIChkZXB0aCAhPT0gMCkge1xuICAgICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBYUFJWOiBub3QgYSBtYXN0ZXIgcHJpdmF0ZSBrZXkgKGRlcHRoOiAke2RlcHRofSlgKVxuICAgIH1cbiAgICBjb25zdCBleHBlY3RlZExlbmd0aCA9IGdldEV4cGVjdGVkRGF0YUxlbmd0aChkZXB0aClcbiAgICBpZiAoYnl0ZXMubGVuZ3RoICE9PSBleHBlY3RlZExlbmd0aCkge1xuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwiSW52YWxpZCBYUFJWOiBiYWQgZGF0YSBsZW5ndGhcIlxuICAgICAgICAgICAgICAgICsgYChleHBlY3RlZDogJHtleHBlY3RlZExlbmd0aH0sIHdhczogJHtieXRlcy5sZW5ndGh9YFxuICAgICAgICApXG4gICAgfVxuICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KGJ5dGVzKS5idWZmZXJcblxuICAgIC8vIGV4dHJhY3Qga2V5IHBhdGggKDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VycywgYmlnIGVuZGlhbilcbiAgICBjb25zdCBrZXlQYXRoOiBBcnJheTxudW1iZXI+ID0gW11cbiAgICBjb25zdCBrZXlQYXRoVmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIsIERFUFRIX0xFTkdUSCwgZGVwdGggKiBLRVlfUEFUSF9MRU5HVEgpXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZXB0aDsgaSsrKSB7XG4gICAgICAgIGtleVBhdGgucHVzaCgoa2V5UGF0aFZpZXcuZ2V0VWludDMyKGkgKiBLRVlfUEFUSF9MRU5HVEgsIGZhbHNlKSkpXG4gICAgfVxuXG4gICAgLy8gZXh0cmFjdCBjaGFpbiBjb2RlXG4gICAgY29uc3QgY2hhaW5Db2RlOiBVaW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoQ0hBSU5fQ09ERV9MRU5HVEgpXG4gICAgY29uc3QgY2hhaW5Db2RlT2Zmc2V0ID0gREVQVEhfTEVOR1RIICsgZGVwdGggKiBLRVlfUEFUSF9MRU5HVEhcbiAgICBjb25zdCBjaGFpbkNvZGVWaWV3ID0gbmV3IERhdGFWaWV3KGJ1ZmZlciwgY2hhaW5Db2RlT2Zmc2V0LCBDSEFJTl9DT0RFX0xFTkdUSClcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoYWluQ29kZS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjaGFpbkNvZGVbaV0gPSAoY2hhaW5Db2RlVmlldy5nZXRVaW50OChpKSlcbiAgICB9XG5cbiAgICAvLyBleHRyYWN0IGtleSBieXRlc1xuICAgIGNvbnN0IHByaXZhdGVLZXk6IFVpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShLRVlfTEVOR1RIKVxuICAgIGNvbnN0IHByaXZhdGVLZXlWaWV3ID0gbmV3IERhdGFWaWV3KGJ1ZmZlciwgY2hhaW5Db2RlT2Zmc2V0ICsgQ0hBSU5fQ09ERV9MRU5HVEgpXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcml2YXRlS2V5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHByaXZhdGVLZXlbaV0gPSAocHJpdmF0ZUtleVZpZXcuZ2V0VWludDgoaSkpXG4gICAgfVxuXG4gICAgLy8gY2hlY2sgaWYgcHJpdmF0ZSBvciBwdWJsaWMga2V5IGFyZSB2YWxpZFxuICAgIGlmIChwcml2YXRlS2V5WzBdICE9PSAwIHx8ICFzZWNwMjU2azEucHJpdmF0ZUtleVZlcmlmeShwcml2YXRlS2V5LnNsaWNlKDEpKSkge1xuICAgICAgICB0aHJvdyBFcnJvcihgTWFsZm9ybWVkIHNsaXAzMjogbm90IGEgcHJpdmF0ZSBrZXlgKVxuICAgIH0gXG5cbiAgICByZXR1cm4ge1xuICAgICAgICBjaGFpbkNvZGUsXG4gICAgICAgIGtleVBhdGgsXG4gICAgICAgIHByaXZhdGVLZXk6IHByaXZhdGVLZXkuc2xpY2UoMSksXG4gICAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNlbGVjdFV0eG9zKHNwZWNzOiB7IFxuICAgIHV0eG9zOiBBcnJheTxVdHhvPiwgXG4gICAgdmFsdWU/OiBDb2lucywgXG4gICAgc3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3ksIFxufSk6IEFycmF5PFV0eG8+IHtcbiAgICBjb25zdCBzdHJhdGVneSA9IHNwZWNzLnN0cmF0ZWd5IHx8IFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbGltRml0XG4gICAgc3dpdGNoIChzdHJhdGVneSkge1xuICAgICAgICBjYXNlIFV0eG9TZWxlY3Rpb25TdHJhdGVneS5CaWdGaXJzdDpcbiAgICAgICAgY2FzZSBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU2xpbUZpdDpcbiAgICAgICAgICAgIHNwZWNzLnV0eG9zID0gc3BlY3MudXR4b3Muc29ydCgoYSwgYikgPT4gKGEudmFsdWUgPiBiLnZhbHVlKSA/IC0xIDogKChhLnZhbHVlIDwgYi52YWx1ZSkgPyAxIDogMCkpXG4gICAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgVXR4b1NlbGVjdGlvblN0cmF0ZWd5LlJhbmRvbTpcbiAgICAgICAgICAgIGNvbnN0IGxlbiA9IHNwZWNzLnV0eG9zLmxlbmd0aFxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkgKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChsZW4gLSBpKSlcbiAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBzcGVjcy51dHhvc1tpbmRleF1cbiAgICAgICAgICAgICAgICBzcGVjcy51dHhvc1tpbmRleF0gPSBzcGVjcy51dHhvc1tsZW4gLSBpIC0gMV1cbiAgICAgICAgICAgICAgICBzcGVjcy51dHhvc1tsZW4gLSBpIC0gMV0gPSB0bXBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU21hbGxGaXJzdDpcbiAgICAgICAgICAgIHNwZWNzLnV0eG9zID0gc3BlY3MudXR4b3Muc29ydCgoYSwgYikgPT4gKGEudmFsdWUgPCBiLnZhbHVlKSA/IC0xIDogKChhLnZhbHVlID4gYi52YWx1ZSkgPyAxIDogMCkpXG4gICAgICAgICAgICBicmVha1xuICAgIH1cbiAgICBcbiAgICAvLyBmaWx0ZXIgbG9ja2VkIFVUWE9zOlxuICAgIGNvbnN0IG5vdyA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApXG4gICAgc3BlY3MudXR4b3MgPSBzcGVjcy51dHhvcy5maWx0ZXIodXR4byA9PiB1dHhvLnRpbWVsb2NrIDw9IG5vdylcblxuICAgIC8vIGlmIHRhcmdldCB2YWx1ZSBpcyBzcGVjaWZpZWQsIGZpbHRlciBzcGFyZSBVVFhPc1xuICAgIGNvbnN0IHBlZHJvcyA9IHNwZWNzPy52YWx1ZT8ucGVkcm9zXG4gICAgaWYgKHBlZHJvcykge1xuICAgICAgICBpZiAoc3RyYXRlZ3kgPT09IFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbGltRml0KSB7XG4gICAgICAgICAgICBjb25zdCBzbGltRml0SW5kZXggPSBzcGVjcy51dHhvcy5maW5kSW5kZXgodXR4byA9PiB1dHhvLnZhbHVlIDw9IHBlZHJvcylcbiAgICAgICAgICAgIGlmIChzbGltRml0SW5kZXggPj0gMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzcGVjcy51dHhvcy5zbGljZShzbGltRml0SW5kZXggLSAxLCBzbGltRml0SW5kZXgpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGNvdmVyZWQ6IGJpZ2ludCA9IDBuIFxuICAgICAgICByZXR1cm4gc3BlY3MudXR4b3MuZmlsdGVyKHV0eG8gPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gY292ZXJlZCA8PSBwZWRyb3NcbiAgICAgICAgICAgIGNvdmVyZWQgKz0gQmlnSW50KHV0eG8udmFsdWUpXG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyXG4gICAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHNwZWNzLnV0eG9zXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hhMjU2KGJ1ZmZlcjogYW55KSB7XG4gICAgY29uc3QgaGFzaCA9IGNyZWF0ZUhhc2goJ3NoYTI1NicpXG4gICAgaGFzaC51cGRhdGUoYnVmZmVyKVxuICAgIHJldHVybiBoYXNoLmRpZ2VzdCgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b3RhbENvaW5zKGJhbGFuY2U6IEJhbGFuY2UpOiBDb2lucyB7XG4gICAgcmV0dXJuIENvaW5zLmZyb21QZWRyb3MoXG4gICAgICAgIEJpZ0ludChiYWxhbmNlLmxvY2tlZClcbiAgICAgICAgICAgICsgQmlnSW50KGJhbGFuY2Uuc3Rha2VkKVxuICAgICAgICAgICAgKyBCaWdJbnQoYmFsYW5jZS51bmxvY2tlZClcbiAgICApXG59XG5cbiJdfQ==
@@ -252,4 +252,4 @@ class Wallet {
252
252
  }
253
253
  }
254
254
  exports.Wallet = Wallet;
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFnQztBQUVoQyxrREFBaUM7QUFDakMsb0RBQXNDO0FBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUEsZUFBWSxFQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRWhDLGdDQUF3QztBQUN4QyxvQ0FBd0Y7QUFDeEYsdUNBQW1DO0FBQ25DLHlDQUFxQztBQUVyQyxtQ0FBMkc7QUFFM0csTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBRXZCLE1BQWEsTUFBTTtJQVNmOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BeUJwQjtRQUNHLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUE7UUFDckQsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFBO1FBQ2xGLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07Z0JBQUUsTUFBTSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtZQUN0RixPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNuRSxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDekMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLElBQVksRUFDWixPQXFCQztRQUVELE1BQU0sRUFBRSxTQUFT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WyJpbXBvcnQgKiBhcyB1dGlscyBmcm9tIFwiLi91dGlsc1wiXHJcblxyXG5pbXBvcnQgQklQMzJGYWN0b3J5IGZyb20gJ2JpcDMyJztcclxuaW1wb3J0ICogYXMgZWNjIGZyb20gJ3Rpbnktc2VjcDI1NmsxJztcclxuY29uc3QgYmlwMzIgPSBCSVAzMkZhY3RvcnkoZWNjKTtcclxuXHJcbmltcG9ydCB7IEpzb25ScGNQcm92aWRlciB9IGZyb20gXCIuLi9ycGNcIlxyXG5pbXBvcnQgeyBCYWxhbmNlLCBOZXR3b3JrLCBRdWVyeVN0YWtlc09yZGVyLCBTdGFrZUVudHJ5LCBTdGFrZXNPcmRlckJ5IH0gZnJvbSBcIi4uL3R5cGVzXCJcclxuaW1wb3J0IHsgQWNjb3VudCB9IGZyb20gXCIuL2FjY291bnRcIlxyXG5pbXBvcnQgeyBDb2luYmFzZSB9IGZyb20gXCIuL2NvaW5iYXNlXCJcclxuaW1wb3J0IHsgSUFjY291bnQsIElCSVAzMiwgSUNvaW5iYXNlLCBJSnNvblJwY1Byb3ZpZGVyLCBJU2lnbmVyLCBJV2FsbGV0IH0gZnJvbSBcIi4vaW50ZXJmYWNlc1wiXHJcbmltcG9ydCB7IENvaW5zLCBQdWJsaWNLZXksIFB1YmxpY0tleUhhc2hTdHJpbmcsIFV0eG8sIFV0eG9DYWNoZUluZm8sIFV0eG9TZWxlY3Rpb25TdHJhdGVneSB9IGZyb20gXCIuL3R5cGVzXCJcclxuXHJcbmNvbnN0IERFRkFVTFRfR0FQID0gMjA7XHJcblxyXG5leHBvcnQgY2xhc3MgV2FsbGV0IGltcGxlbWVudHMgSVdhbGxldCB7XHJcbiAgICBwcm90ZWN0ZWQgcm9vdDogSUJJUDMyO1xyXG4gICAgXHJcbiAgICBwcm90ZWN0ZWQgX2FjY291bnRzOiBBcnJheTxJQWNjb3VudD4gPSBbXTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29pbmJhc2U6IElDb2luYmFzZTtcclxuICAgIHB1YmxpYyByZWFkb25seSBwcm92aWRlcjogSUpzb25ScGNQcm92aWRlcjtcclxuICAgIHB1YmxpYyBzdHJhdGVneTogVXR4b1NlbGVjdGlvblN0cmF0ZWd5O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlIGEgV2FsbGV0IGJ5IHJlYWRpbmcgdGhlIFhQUlYgbWFzdGVyIGtleSBmcm9tIHRoZSBXSVRORVRfU0RLX1dBTExFVF9NQVNURVJfS0VZIGVudmlyb25tZW50IHZhcmlhYmxlLlxyXG4gICAgICogQHBhcmFtIHNwZWNzIFdhbGxldCBjcmVhdGlvbiBwYXJhbWV0ZXJzLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgYXN5bmMgZnJvbUVudihvcHRpb25zOiB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUGFzc3dvcmQgdG8gZGVjcnlwdCB0aGUgWFBSViBtYXN0ZXIga2V5IHJlYWQgZnJvbSBlbnZpcm9ubWVudCwgaW4gY2FzZSBpdCdzIGVuY3J5cHRlZC5cclxuICAgICAgICAgKi9cclxuICAgICAgICBwYXNzd2Q/OiBzdHJpbmcsXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogTnVtYmVyIG9mIGNvbnNlY3V0aXZlIGFjY291bnRzIHdpdGggbm8gZnVuZHMgYmVmb3JlIHN0b3BwaW5nIGRlcml2YXRpb24gb2YgbmV3IFdhbGxldCBhY2NvdW50cy5cclxuICAgICAgICAgKi9cclxuICAgICAgICBnYXA/OiBudW1iZXIsXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogTWF4aW11bSBudW1iZXIgb2YgYWNjb3VudHMgdG8gZGVyaXZlLiBcclxuICAgICAgICAgKi9cclxuICAgICAgICBsaW1pdD86IG51bWJlcixcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBTcGVjaWZpYyBXaXQvUlBDIHByb3ZpZGVyIHRvIHVzZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgV2l0bmV0IG5ldHdvcmsuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHJvdmlkZXI/OiBJSnNvblJwY1Byb3ZpZGVyLCBcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBVVFhPIHNlbGVjdGlvbiBzdHJhdGVneSB3aGVuIGJ1aWxkaW5nIHRyYW5zYWN0aW9ucyBvdXQgb2YgdGhpcyB3YWxsZXQgKGRlZmF1bHQ6IFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbWFsbEZpcnN0KS5cclxuICAgICAgICAgKi9cclxuICAgICAgICBzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneSwgXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogT25seSBkZXJpdmUgYWNjb3VudHMgdGhhdCBob2xkIHNvbWUgdW5sb2NrZWQgYmFsYW5jZSBvZiAkV0lULlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIG9ubHlXaXRoRnVuZHM/OiBib29sZWFuLFxyXG4gICAgfSk6IFByb21pc2U8V2FsbGV0PiB7XHJcbiAgICAgICAgY29uc3QgeHBydiA9IHByb2Nlc3MuZW52LldJVE5FVF9TREtfV0FMTEVUX01BU1RFUl9LRVlcclxuICAgICAgICBpZiAoIXhwcnYpIHRocm93IEVycm9yKGBXSVRORVRfU0RLX1dBTExFVF9NQVNURVJfS0VZIG11c3QgYmUgc2V0IG9uIGVudmlyb25tZW50LmApXHJcbiAgICAgICAgaWYgKHhwcnYubGVuZ3RoID4gMTE3KSB7XHJcbiAgICAgICAgICAgIGlmICghb3B0aW9ucy5wYXNzd2QpIHRocm93IEVycm9yKGBNaXNzaW5nIHBhc3N3b3JkIGZvciBXSVRORVRfU0RLX1dBTExFVF9NQVNURVJfS0VZLmApXHJcbiAgICAgICAgICAgIHJldHVybiBXYWxsZXQuZnJvbUVuY3J5cHRlZFhwcnYoeHBydiwgb3B0aW9ucz8ucGFzc3dkLCBvcHRpb25zKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBXYWxsZXQuZnJvbVhwcnYoeHBydiwgb3B0aW9ucylcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlIGEgV2FsbGV0IGJ5IHVzaW5nIHBhc3NlZCBYUFJWIG1hc3RlciBrZXkuXHJcbiAgICAgKiBAcGFyYW0geHBydiBEZWNyeXB0ZWQgWFBSViBtYXN0ZXIga2V5IHN0cmluZy5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zIFdhbGxldCBjcmVhdGlvbiBwYXJhbWV0ZXJzLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgYXN5bmMgZnJvbVhwcnYoXHJcbiAgICAgICAgeHBydjogc3RyaW5nLFxyXG4gICAgICAgIG9wdGlvbnM/OiB7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBOdW1iZXIgb2YgY29uc2VjdXRpdmUgYWNjb3VudHMgd2l0aCBubyBmdW5kcyBiZWZvcmUgc3RvcHBpbmcgZGVyaXZhdGlvbiBvZiBuZXcgV2FsbGV0IGFjY291bnRzLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgZ2FwPzogbnVtYmVyLFxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogTWF4aW11bSBudW1iZXIgb2YgYWNjb3VudHMgdG8gZGVyaXZlLiBcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGxpbWl0PzogbnVtYmVyLFxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogU3BlY2lmaWMgV2l0L1JQQyBwcm92aWRlciB0byB1c2UgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIFdpdG5ldCBuZXR3b3JrLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgcHJvdmlkZXI/OiBJSnNvblJwY1Byb3ZpZGVyLCBcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFVUWE8gc2VsZWN0aW9uIHN0cmF0ZWd5IHdoZW4gYnVpbGRpbmcgdHJhbnNhY3Rpb25zIG91dCBvZiB0aGlzIHdhbGxldCAoZGVmYXVsdDogVXR4b1NlbGVjdGlvblN0cmF0ZWd5LlNtYWxsRmlyc3QpLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgc3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3ksIFxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogT25seSBkZXJpdmUgYWNjb3VudHMgaG9sZGluZyBzb21lICRXSVQgZnVuZHMgKGVpdGhlciBsb2NrZWQsIHN0YWtlZCBvciB1bmxvY2tlZCkuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBvbmx5V2l0aEZ1bmRzPzogYm9vbGVhbixcclxuICAgICAgICB9XHJcbiAgICApOiBQcm9taXNlPFdhbGxldD4ge1xyXG4gICAgICAgIGNvbnN0IHsgY2hhaW5Db2RlLCBwcml2YXRlS2V5IH0gPSB1dGlscy5wYXJzZVhwcnYoeHBydik7XHJcbiAgICAgICAgY29uc3Qgcm9vdCA9IGJpcDMyLmZyb21Qcml2YXRlS2V5KEJ1ZmZlci5mcm9tKHByaXZhdGVLZXkpLCBCdWZmZXIuZnJvbShjaGFpbkNvZGUpKTtcclxuICAgICAgICBjb25zdCBwcm92aWRlciA9IG9wdGlvbnM/LnByb3ZpZGVyIHx8IChhd2FpdCBKc29uUnBjUHJvdmlkZXIuZnJvbUVudigpKVxyXG4gICAgICAgIGF3YWl0IHByb3ZpZGVyLmNvbnN0YW50cygpXHJcbiAgICAgICAgY29uc3Qgd2FsbGV0ID0gbmV3IFdhbGxldChyb290LCBwcm92aWRlciwgb3B0aW9ucz8uc3RyYXRlZ3kpXHJcbiAgICAgICAgaWYgKG9wdGlvbnM/Lm9ubHlXaXRoRnVuZHMpIHtcclxuICAgICAgICAgICAgYXdhaXQgd2FsbGV0LmV4cGxvcmVBY2NvdW50cyhvcHRpb25zPy5saW1pdCB8fCAwLCBvcHRpb25zPy5nYXApXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgd2FsbGV0LmRlcml2ZUFjY291bnRzKG9wdGlvbnM/LmxpbWl0IHx8IDEpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGxvYWQgdXAgdXR4b3MgY2FjaGVcclxuICAgICAgICBhd2FpdCB3YWxsZXQuZ2V0VXR4b3ModHJ1ZSlcclxuICAgICAgICByZXR1cm4gd2FsbGV0XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGUgYSBXYWxsZXQgYnkgdXNpbmcgcGFzc2VkIFhQUlYgbWFzdGVyIGtleS5cclxuICAgICAqIEBwYXJhbSB4cHJ2IEVuY3J5cHRlZCBYUFJWIG1hc3RlciBrZXkgc3RyaW5nLlxyXG4gICAgICogQHBhcmFtIHBhc3N3ZCBQYXNzd29yZCB0byBkZWNpcGhlciB0aGUgWFBSViBtYXN0ZXIga2V5LlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgV2FsbGV0IGNyZWF0aW9uIHBhcmFtZXRlcnMuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBhc3luYyBmcm9tRW5jcnlwdGVkWHBydihcclxuICAgICAgICB4cHJ2OiBzdHJpbmcsXHJcbiAgICAgICAgcGFzc3dkOiBzdHJpbmcsXHJcbiAgICAgICAgb3B0aW9ucz86IHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIE51bWJlciBvZiBjb25zZWN1dGl2ZSBhY2NvdW50cyB3aXRoIG5vIGZ1bmRzIGJlZm9yZSBzdG9wcGluZyBkZXJpdmF0aW9uIG9mIG5ldyBXYWxsZXQgYWNjb3VudHMuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBnYXA/OiBudW1iZXIsXHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBNYXhpbXVtIG51bWJlciBvZiBhY2NvdW50cyB0byBkZXJpdmUuIFxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgbGltaXQ/OiBudW1iZXIsXHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBTcGVjaWZpYyBXaXQvUlBDIHByb3ZpZGVyIHRvIHVzZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgV2l0bmV0IG5ldHdvcmsuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBwcm92aWRlcj86IElKc29uUnBjUHJvdmlkZXIsIFxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogVVRYTyBzZWxlY3Rpb24gc3RyYXRlZ3kgd2hlbiBidWlsZGluZyB0cmFuc2FjdGlvbnMgb3V0IG9mIHRoaXMgd2FsbGV0IChkZWZhdWx0OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU21hbGxGaXJzdCkuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneSwgXHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBPbmx5IGRlcml2ZSBhY2NvdW50cyBob2xkaW5nIHNvbWUgJFdJVCBmdW5kcyAoZWl0aGVyIGxvY2tlZCwgc3Rha2VkIG9yIHVubG9ja2VkKS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIG9ubHlXaXRoRnVuZHM/OiBib29sZWFuLFxyXG4gICAgICAgIH1cclxuICAgICk6IFByb21pc2U8V2FsbGV0PiB7XHJcbiAgICAgICAgcmV0dXJuIFdhbGxldC5mcm9tWHBydih1dGlscy5kZWNpcGhlclhwcnYoeHBydiwgcGFzc3dkKSwgb3B0aW9ucylcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29uc3RydWN0b3Iocm9vdDogSUJJUDMyLCBwcm92aWRlcjogSUpzb25ScGNQcm92aWRlciwgc3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kpIHtcclxuICAgICAgICB0aGlzLnByb3ZpZGVyID0gcHJvdmlkZXJcclxuICAgICAgICB0aGlzLmNvaW5iYXNlID0gbmV3IENvaW5iYXNlKHJvb3QsIHByb3ZpZGVyLCBzdHJhdGVneSlcclxuICAgICAgICB0aGlzLnJvb3QgPSByb290XHJcbiAgICAgICAgdGhpcy5zdHJhdGVneSA9IHN0cmF0ZWd5IHx8IFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbWFsbEZpcnN0XHJcbiAgICAgICAgdGhpcy5kZXJpdmVBY2NvdW50cygxKVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgYWNjb3VudHMoKTogQXJyYXk8SUFjY291bnQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYWNjb3VudHNcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGNhY2hlSW5mbygpOiBVdHhvQ2FjaGVJbmZvIHtcclxuICAgICAgICBjb25zdCBpbmZvOiBVdHhvQ2FjaGVJbmZvID0geyBleHBlbmRhYmxlOiAwbiwgc2l6ZTogMCwgdGltZWxvY2s6IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSIH1cclxuICAgICAgICB0aGlzLmFjY291bnRzPy5mb3JFYWNoKGFjY291bnQgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBhY2NvdW50SW5mbyA9IGFjY291bnQuY2FjaGVJbmZvXHJcbiAgICAgICAgICAgIGluZm8uZXhwZW5kYWJsZSArPSBhY2NvdW50SW5mby5leHBlbmRhYmxlXHJcbiAgICAgICAgICAgIGluZm8uc2l6ZSArPSBhY2NvdW50SW5mby5zaXplXHJcbiAgICAgICAgICAgIGlmIChhY2NvdW50SW5mby50aW1lbG9jayAhPT0gMCAmJiBhY2NvdW50SW5mby50aW1lbG9jayA8IGluZm8udGltZWxvY2spIHtcclxuICAgICAgICAgICAgICAgIGluZm8udGltZWxvY2sgPSBhY2NvdW50SW5mby50aW1lbG9ja1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICBpZiAoaW5mby50aW1lbG9jayA9PT0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpIGluZm8udGltZWxvY2sgPSAwO1xyXG4gICAgICAgIHJldHVybiBpbmZvO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgY2hhbmdlUGtoKCk6IFB1YmxpY0tleUhhc2hTdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFjY291bnRzLmxlbmd0aCA+IDAgPyB0aGlzLmFjY291bnRzWzBdLmNoYW5nZVBraCA6IHRoaXMuY29pbmJhc2UucGtoXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBuZXR3b3JrKCk6IE5ldHdvcmsgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVyLm5ldHdvcmtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHBraCgpOiBQdWJsaWNLZXlIYXNoU3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hY2NvdW50cy5sZW5ndGggPiAwID8gdGhpcy5hY2NvdW50c1swXS5wa2ggOiB0aGlzLmNvaW5iYXNlLnBraFxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgcHVibGljS2V5KCk6IFB1YmxpY0tleSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjb3VudHMubGVuZ3RoID4gMCA/IHRoaXMuYWNjb3VudHNbMF0ucHVibGljS2V5IDogdGhpcy5jb2luYmFzZS5wdWJsaWNLZXlcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KTogeyBleGNsdWRlZDogQXJyYXk8VXR4bz4sIGluY2x1ZGVkOiBBcnJheTxVdHhvPiB9IHtcclxuICAgICAgICBjb25zdCBpbmNsdWRlZDogQXJyYXk8VXR4bz4gPSBbXVxyXG4gICAgICAgIHRoaXMuYWNjb3VudHMuZm9yRWFjaChhY2NvdW50ID0+IHtcclxuICAgICAgICAgICAgY29uc3QgX3V0eG9zID0gYWNjb3VudC5hZGRVdHhvcyguLi51dHhvcylcclxuICAgICAgICAgICAgdXR4b3MgPSBfdXR4b3MuZXhjbHVkZWRcclxuICAgICAgICAgICAgaW5jbHVkZWQucHVzaCguLi5fdXR4b3MuaW5jbHVkZWQpXHJcbiAgICAgICAgfSlcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBleGNsdWRlZDogdXR4b3MsXHJcbiAgICAgICAgICAgIGluY2x1ZGVkXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjb25zdW1lVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KTogQXJyYXk8VXR4bz4ge1xyXG4gICAgICAgIHRoaXMuYWNjb3VudHMuZm9yRWFjaChhY2NvdW50ID0+IHtcclxuICAgICAgICAgICAgdXR4b3MgPSBhY2NvdW50LmNvbnN1bWVVdHhvcyguLi51dHhvcylcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiB1dHhvc1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnZXRCYWxhbmNlKCk6IFByb21pc2U8QmFsYW5jZT4ge1xyXG4gICAgICAgIGlmICh0aGlzLl9hY2NvdW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlXHJcbiAgICAgICAgICAgICAgICAuYWxsKHRoaXMuX2FjY291bnRzLm1hcChhc3luYyAoYWNjOiBJQWNjb3VudCkgPT4geyBcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiYWxhbmNlID0gYXdhaXQgYWNjLmdldEJhbGFuY2UoKVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBiYWxhbmNlIH0pKVxyXG4gICAgICAgICAgICAgICAgLnRoZW4oKGJhbGFuY2VzOiBBcnJheTxCYWxhbmNlPikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBiYWxhbmNlcy5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2tlZDogcHJldi5sb2NrZWQgKyBjdXJyLmxvY2tlZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWtlZDogcHJldi5zdGFrZWQgKyBjdXJyLnN0YWtlZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVubG9ja2VkOiBwcmV2LnVubG9ja2VkICsgY3Vyci51bmxvY2tlZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIHsgbG9ja2VkOiAwbiwgc3Rha2VkOiAwbiwgdW5sb2NrZWQ6IDBuIH0pXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvaW5iYXNlLmdldEJhbGFuY2UoKVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0RGVsZWdhdGVlcyhvcmRlcj86IFF1ZXJ5U3Rha2VzT3JkZXIsIGxlZnRKb2luID0gdHJ1ZSk6IFByb21pc2U8QXJyYXk8U3Rha2VFbnRyeT4+IHtcclxuICAgICAgICBjb25zdCByZWNvcmRzOiBBcnJheTxTdGFrZUVudHJ5PiA9IFtdXHJcbiAgICAgICAgcmVjb3Jkcy5wdXNoKC4uLmF3YWl0IHRoaXMuY29pbmJhc2UuZ2V0RGVsZWdhdGVlcyhvcmRlcikpXHJcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5fYWNjb3VudHMubWFwKGFjY291bnQgPT4gYWNjb3VudC5nZXREZWxlZ2F0ZWVzKG9yZGVyLCBsZWZ0Sm9pbikudGhlbihlbnRyaWVzID0+IHJlY29yZHMucHVzaCguLi5lbnRyaWVzKSkpKVxyXG4gICAgICAgIGlmIChvcmRlcikge1xyXG4gICAgICAgICAgICBjb25zdCByZXZlcnNlID0gb3JkZXI/LnJldmVyc2UgPyAoKzEpIDogKC0xKVxyXG4gICAgICAgICAgICByZXR1cm4gcmVjb3Jkcy5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKG9yZGVyLmJ5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBTdGFrZXNPcmRlckJ5LkNvaW5zOiByZXR1cm4gKChhLnZhbHVlLmNvaW5zIDwgYi52YWx1ZS5jb2lucykgPyAxIDogKChhLnZhbHVlLmNvaW5zID4gYi52YWx1ZS5jb2lucykgPyAtMSA6IDApKSAqIHJldmVyc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBTdGFrZXNPcmRlckJ5Lk1pbmluZzogcmV0dXJuIChiLnZhbHVlLmVwb2Nocy5taW5pbmcgLSBhLnZhbHVlLmVwb2Nocy5taW5pbmcpICogcmV2ZXJzZTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIFN0YWtlc09yZGVyQnkuV2l0bmVzc2luZzogcmV0dXJuIChiLnZhbHVlLmVwb2Nocy53aXRuZXNzaW5nIC0gYS52YWx1ZS5lcG9jaHMud2l0bmVzc2luZykgKiByZXZlcnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgU3Rha2VzT3JkZXJCeS5Ob25jZTogcmV0dXJuIChiLnZhbHVlLm5vbmNlIC0gYS52YWx1ZS5ub25jZSkgKiByZXZlcnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVjb3Jkc1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnZXRVdHhvcyhyZWxvYWQ/OiBib29sZWFuKTogUHJvbWlzZTxBcnJheTxVdHhvPj4ge1xyXG4gICAgICAgIHJldHVybiBQcm9taXNlXHJcbiAgICAgICAgICAgIC5hbGwodGhpcy5hY2NvdW50cy5tYXAoYWNjb3VudCA9PiBhY2NvdW50LmdldFV0eG9zKHJlbG9hZCkpKVxyXG4gICAgICAgICAgICAudGhlbihhc3luYyAodXR4b3NzOiBBcnJheTxBcnJheTxVdHhvPj4pID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIHV0eG9zcy5wdXNoKGF3YWl0IHRoaXMuY29pbmJhc2UuZ2V0VXR4b3MocmVsb2FkKSlcclxuICAgICAgICAgICAgICAgIHJldHVybiB1dHhvc3MuZmxhdCgpXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIHNlbGVjdFV0eG9zKHNwZWNzPzoge1xyXG4gICAgICAgIHZhbHVlPzogQ29pbnMsXHJcbiAgICAgICAgcmVsb2FkPzogYm9vbGVhblxyXG4gICAgICAgIHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5XHJcbiAgICB9KTogUHJvbWlzZTxBcnJheTxVdHhvPj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzXHJcbiAgICAgICAgICAgIC5nZXRVdHhvcyhzcGVjcz8ucmVsb2FkKVxyXG4gICAgICAgICAgICAudGhlbih1dHhvcyA9PiB1dGlscy5zZWxlY3RVdHhvcyh7IHV0eG9zLCB2YWx1ZTogc3BlY3M/LnZhbHVlLCBzdHJhdGVneTogc3BlY3M/LnN0cmF0ZWd5IHx8IHRoaXMuc3RyYXRlZ3kgfSkpXHJcbiAgICB9XHJcblxyXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICAgLy8gLS0tIElXYWxsZXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICAgIHB1YmxpYyBkZXJpdmVBY2NvdW50cyhsaW1pdDogbnVtYmVyKTogQXJyYXk8SUFjY291bnQ+IHtcclxuICAgICAgICBpZiAobGltaXQgPiB0aGlzLl9hY2NvdW50cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IHRoaXMuX2FjY291bnRzLmxlbmd0aCA+IDAgPyB0aGlzLmFjY291bnRzW3RoaXMuYWNjb3VudHMubGVuZ3RoIC0gMV0uaW5kZXggKyAxIDogMFxyXG4gICAgICAgICAgICBsaW1pdCA9IGxpbWl0IC0gdGhpcy5fYWNjb3VudHMubGVuZ3RoXHJcbiAgICAgICAgICAgIGZvciAobGV0IGl4ID0gMDsgaXggPCBsaW1pdDsgaXggKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FjY291bnRzLnB1c2gobmV3IEFjY291bnQoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb290LFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvdmlkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleCArIGl4LFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RyYXRlZ3lcclxuICAgICAgICAgICAgICAgICkpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjY291bnRzXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGV4cGxvcmVBY2NvdW50cyhsaW1pdCA9IDAsIGdhcCA9IERFRkFVTFRfR0FQKTogUHJvbWlzZTxBcnJheTxJQWNjb3VudD4+IHtcclxuICAgICAgICBpZiAobGltaXQgPT09IDAgfHwgbGltaXQgPiB0aGlzLmFjY291bnRzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBjb25zdCBsYXN0SW5kZXggPSAoeDogQXJyYXk8SUFjY291bnQ+KSA9PiB4Lmxlbmd0aCA+IDAgPyB4W3gubGVuZ3RoIC0gMV0uaW5kZXggKyAxIDogMFxyXG4gICAgICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gbGFzdEluZGV4KHRoaXMuYWNjb3VudHMpXHJcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gc3RhcnRJbmRleDsgaW5kZXggPCBsYXN0SW5kZXgodGhpcy5hY2NvdW50cykgKyBnYXA7IGluZGV4ICsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhY2NvdW50ID0gbmV3IEFjY291bnQodGhpcy5yb290LCB0aGlzLnByb3ZpZGVyLCBpbmRleCwgdGhpcy5zdHJhdGVneSlcclxuICAgICAgICAgICAgICAgIGlmICh1dGlscy50b3RhbENvaW5zKGF3YWl0IGFjY291bnQuZ2V0QmFsYW5jZSgpKS5wZWRyb3MgPiAwbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWNjb3VudHMucHVzaChhY2NvdW50KVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChsaW1pdCAmJiB0aGlzLmFjY291bnRzLmxlbmd0aCA+PSBsaW1pdCkgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjY291bnRzXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEFjY291bnQocGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nLCBnYXA/OiBudW1iZXIpOiBJQWNjb3VudCB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgbGV0IGFjY291bnQgPSB0aGlzLl9hY2NvdW50cy5maW5kKGFjY291bnQgPT4gYWNjb3VudC5pbnRlcm5hbC5wa2ggPT09IHBraCB8fCBhY2NvdW50LnBraCA9PT0gcGtoKVxyXG4gICAgICAgIGlmICghYWNjb3VudCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgKGdhcCB8fCBERUZBVUxUX0dBUCk7IGluZGV4ICsrKSB7XHJcbiAgICAgICAgICAgICAgICBhY2NvdW50ID0gbmV3IEFjY291bnQodGhpcy5yb290LCB0aGlzLnByb3ZpZGVyLCBpbmRleCwgdGhpcy5zdHJhdGVneSlcclxuICAgICAgICAgICAgICAgIGlmIChhY2NvdW50LnBraCA9PT0gcGtoIHx8IGFjY291bnQuaW50ZXJuYWwucGtoID09PSBwa2gpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hY2NvdW50cy5wdXNoKGFjY291bnQpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjY291bnRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGFjY291bnRcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNpZ25lcihwa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nLCBnYXA/OiBudW1iZXIpOiBJU2lnbmVyIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICBpZiAoIXBraCkgcmV0dXJuIHRoaXMuYWNjb3VudHNbMF0/LmdldFNpZ25lcigpIHx8IHRoaXMuY29pbmJhc2UuZ2V0U2lnbmVyKHBraCk7XHJcbiAgICAgICAgY29uc3QgYWNjb3VudCA9IHRoaXMuZ2V0QWNjb3VudChwa2gsIGdhcClcclxuICAgICAgICByZXR1cm4gYWNjb3VudD8uZ2V0U2lnbmVyKHBraCkgfHwgdGhpcy5jb2luYmFzZS5nZXRTaWduZXIocGtoKVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFnQztBQUVoQyxrREFBaUM7QUFDakMsb0RBQXNDO0FBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUEsZUFBWSxFQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRWhDLGdDQUF3QztBQUN4QyxvQ0FBd0Y7QUFDeEYsdUNBQW1DO0FBQ25DLHlDQUFxQztBQUVyQyxtQ0FBMkc7QUFFM0csTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBRXZCLE1BQWEsTUFBTTtJQVNmOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BeUJwQjtRQUNHLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUE7UUFDckQsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFBO1FBQ2xGLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07Z0JBQUUsTUFBTSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtZQUN0RixPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNuRSxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDekMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLElBQVksRUFDWixPQXFCQztRQUVELE1BQU0sRUFBRSxTQUFT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WyJpbXBvcnQgKiBhcyB1dGlscyBmcm9tIFwiLi91dGlsc1wiXG5cbmltcG9ydCBCSVAzMkZhY3RvcnkgZnJvbSAnYmlwMzInO1xuaW1wb3J0ICogYXMgZWNjIGZyb20gJ3Rpbnktc2VjcDI1NmsxJztcbmNvbnN0IGJpcDMyID0gQklQMzJGYWN0b3J5KGVjYyk7XG5cbmltcG9ydCB7IEpzb25ScGNQcm92aWRlciB9IGZyb20gXCIuLi9ycGNcIlxuaW1wb3J0IHsgQmFsYW5jZSwgTmV0d29yaywgUXVlcnlTdGFrZXNPcmRlciwgU3Rha2VFbnRyeSwgU3Rha2VzT3JkZXJCeSB9IGZyb20gXCIuLi90eXBlc1wiXG5pbXBvcnQgeyBBY2NvdW50IH0gZnJvbSBcIi4vYWNjb3VudFwiXG5pbXBvcnQgeyBDb2luYmFzZSB9IGZyb20gXCIuL2NvaW5iYXNlXCJcbmltcG9ydCB7IElBY2NvdW50LCBJQklQMzIsIElDb2luYmFzZSwgSUpzb25ScGNQcm92aWRlciwgSVNpZ25lciwgSVdhbGxldCB9IGZyb20gXCIuL2ludGVyZmFjZXNcIlxuaW1wb3J0IHsgQ29pbnMsIFB1YmxpY0tleSwgUHVibGljS2V5SGFzaFN0cmluZywgVXR4bywgVXR4b0NhY2hlSW5mbywgVXR4b1NlbGVjdGlvblN0cmF0ZWd5IH0gZnJvbSBcIi4vdHlwZXNcIlxuXG5jb25zdCBERUZBVUxUX0dBUCA9IDIwO1xuXG5leHBvcnQgY2xhc3MgV2FsbGV0IGltcGxlbWVudHMgSVdhbGxldCB7XG4gICAgcHJvdGVjdGVkIHJvb3Q6IElCSVAzMjtcbiAgICBcbiAgICBwcm90ZWN0ZWQgX2FjY291bnRzOiBBcnJheTxJQWNjb3VudD4gPSBbXTtcblxuICAgIHB1YmxpYyByZWFkb25seSBjb2luYmFzZTogSUNvaW5iYXNlO1xuICAgIHB1YmxpYyByZWFkb25seSBwcm92aWRlcjogSUpzb25ScGNQcm92aWRlcjtcbiAgICBwdWJsaWMgc3RyYXRlZ3k6IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIFdhbGxldCBieSByZWFkaW5nIHRoZSBYUFJWIG1hc3RlciBrZXkgZnJvbSB0aGUgV0lUTkVUX1NES19XQUxMRVRfTUFTVEVSX0tFWSBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICAgKiBAcGFyYW0gc3BlY3MgV2FsbGV0IGNyZWF0aW9uIHBhcmFtZXRlcnMuXG4gICAgICovXG4gICAgc3RhdGljIGFzeW5jIGZyb21FbnYob3B0aW9uczoge1xuICAgICAgICAvKipcbiAgICAgICAgICogUGFzc3dvcmQgdG8gZGVjcnlwdCB0aGUgWFBSViBtYXN0ZXIga2V5IHJlYWQgZnJvbSBlbnZpcm9ubWVudCwgaW4gY2FzZSBpdCdzIGVuY3J5cHRlZC5cbiAgICAgICAgICovXG4gICAgICAgIHBhc3N3ZD86IHN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE51bWJlciBvZiBjb25zZWN1dGl2ZSBhY2NvdW50cyB3aXRoIG5vIGZ1bmRzIGJlZm9yZSBzdG9wcGluZyBkZXJpdmF0aW9uIG9mIG5ldyBXYWxsZXQgYWNjb3VudHMuXG4gICAgICAgICAqL1xuICAgICAgICBnYXA/OiBudW1iZXIsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBNYXhpbXVtIG51bWJlciBvZiBhY2NvdW50cyB0byBkZXJpdmUuIFxuICAgICAgICAgKi9cbiAgICAgICAgbGltaXQ/OiBudW1iZXIsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTcGVjaWZpYyBXaXQvUlBDIHByb3ZpZGVyIHRvIHVzZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgV2l0bmV0IG5ldHdvcmsuXG4gICAgICAgICAqL1xuICAgICAgICBwcm92aWRlcj86IElKc29uUnBjUHJvdmlkZXIsIFxuICAgICAgICAvKipcbiAgICAgICAgICogVVRYTyBzZWxlY3Rpb24gc3RyYXRlZ3kgd2hlbiBidWlsZGluZyB0cmFuc2FjdGlvbnMgb3V0IG9mIHRoaXMgd2FsbGV0IChkZWZhdWx0OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU21hbGxGaXJzdCkuXG4gICAgICAgICAqL1xuICAgICAgICBzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneSwgXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPbmx5IGRlcml2ZSBhY2NvdW50cyB0aGF0IGhvbGQgc29tZSB1bmxvY2tlZCBiYWxhbmNlIG9mICRXSVQuXG4gICAgICAgICAqL1xuICAgICAgICBvbmx5V2l0aEZ1bmRzPzogYm9vbGVhbixcbiAgICB9KTogUHJvbWlzZTxXYWxsZXQ+IHtcbiAgICAgICAgY29uc3QgeHBydiA9IHByb2Nlc3MuZW52LldJVE5FVF9TREtfV0FMTEVUX01BU1RFUl9LRVlcbiAgICAgICAgaWYgKCF4cHJ2KSB0aHJvdyBFcnJvcihgV0lUTkVUX1NES19XQUxMRVRfTUFTVEVSX0tFWSBtdXN0IGJlIHNldCBvbiBlbnZpcm9ubWVudC5gKVxuICAgICAgICBpZiAoeHBydi5sZW5ndGggPiAxMTcpIHtcbiAgICAgICAgICAgIGlmICghb3B0aW9ucy5wYXNzd2QpIHRocm93IEVycm9yKGBNaXNzaW5nIHBhc3N3b3JkIGZvciBXSVRORVRfU0RLX1dBTExFVF9NQVNURVJfS0VZLmApXG4gICAgICAgICAgICByZXR1cm4gV2FsbGV0LmZyb21FbmNyeXB0ZWRYcHJ2KHhwcnYsIG9wdGlvbnM/LnBhc3N3ZCwgb3B0aW9ucylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBXYWxsZXQuZnJvbVhwcnYoeHBydiwgb3B0aW9ucylcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBXYWxsZXQgYnkgdXNpbmcgcGFzc2VkIFhQUlYgbWFzdGVyIGtleS5cbiAgICAgKiBAcGFyYW0geHBydiBEZWNyeXB0ZWQgWFBSViBtYXN0ZXIga2V5IHN0cmluZy5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBXYWxsZXQgY3JlYXRpb24gcGFyYW1ldGVycy5cbiAgICAgKi9cbiAgICBzdGF0aWMgYXN5bmMgZnJvbVhwcnYoXG4gICAgICAgIHhwcnY6IHN0cmluZyxcbiAgICAgICAgb3B0aW9ucz86IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogTnVtYmVyIG9mIGNvbnNlY3V0aXZlIGFjY291bnRzIHdpdGggbm8gZnVuZHMgYmVmb3JlIHN0b3BwaW5nIGRlcml2YXRpb24gb2YgbmV3IFdhbGxldCBhY2NvdW50cy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZ2FwPzogbnVtYmVyLFxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBNYXhpbXVtIG51bWJlciBvZiBhY2NvdW50cyB0byBkZXJpdmUuIFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBsaW1pdD86IG51bWJlcixcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogU3BlY2lmaWMgV2l0L1JQQyBwcm92aWRlciB0byB1c2UgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIFdpdG5ldCBuZXR3b3JrLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBwcm92aWRlcj86IElKc29uUnBjUHJvdmlkZXIsIFxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBVVFhPIHNlbGVjdGlvbiBzdHJhdGVneSB3aGVuIGJ1aWxkaW5nIHRyYW5zYWN0aW9ucyBvdXQgb2YgdGhpcyB3YWxsZXQgKGRlZmF1bHQ6IFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbWFsbEZpcnN0KS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgc3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3ksIFxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBPbmx5IGRlcml2ZSBhY2NvdW50cyBob2xkaW5nIHNvbWUgJFdJVCBmdW5kcyAoZWl0aGVyIGxvY2tlZCwgc3Rha2VkIG9yIHVubG9ja2VkKS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgb25seVdpdGhGdW5kcz86IGJvb2xlYW4sXG4gICAgICAgIH1cbiAgICApOiBQcm9taXNlPFdhbGxldD4ge1xuICAgICAgICBjb25zdCB7IGNoYWluQ29kZSwgcHJpdmF0ZUtleSB9ID0gdXRpbHMucGFyc2VYcHJ2KHhwcnYpO1xuICAgICAgICBjb25zdCByb290ID0gYmlwMzIuZnJvbVByaXZhdGVLZXkoQnVmZmVyLmZyb20ocHJpdmF0ZUtleSksIEJ1ZmZlci5mcm9tKGNoYWluQ29kZSkpO1xuICAgICAgICBjb25zdCBwcm92aWRlciA9IG9wdGlvbnM/LnByb3ZpZGVyIHx8IChhd2FpdCBKc29uUnBjUHJvdmlkZXIuZnJvbUVudigpKVxuICAgICAgICBhd2FpdCBwcm92aWRlci5jb25zdGFudHMoKVxuICAgICAgICBjb25zdCB3YWxsZXQgPSBuZXcgV2FsbGV0KHJvb3QsIHByb3ZpZGVyLCBvcHRpb25zPy5zdHJhdGVneSlcbiAgICAgICAgaWYgKG9wdGlvbnM/Lm9ubHlXaXRoRnVuZHMpIHtcbiAgICAgICAgICAgIGF3YWl0IHdhbGxldC5leHBsb3JlQWNjb3VudHMob3B0aW9ucz8ubGltaXQgfHwgMCwgb3B0aW9ucz8uZ2FwKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd2FsbGV0LmRlcml2ZUFjY291bnRzKG9wdGlvbnM/LmxpbWl0IHx8IDEpXG4gICAgICAgIH1cbiAgICAgICAgLy8gbG9hZCB1cCB1dHhvcyBjYWNoZVxuICAgICAgICBhd2FpdCB3YWxsZXQuZ2V0VXR4b3ModHJ1ZSlcbiAgICAgICAgcmV0dXJuIHdhbGxldFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIFdhbGxldCBieSB1c2luZyBwYXNzZWQgWFBSViBtYXN0ZXIga2V5LlxuICAgICAqIEBwYXJhbSB4cHJ2IEVuY3J5cHRlZCBYUFJWIG1hc3RlciBrZXkgc3RyaW5nLlxuICAgICAqIEBwYXJhbSBwYXNzd2QgUGFzc3dvcmQgdG8gZGVjaXBoZXIgdGhlIFhQUlYgbWFzdGVyIGtleS5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBXYWxsZXQgY3JlYXRpb24gcGFyYW1ldGVycy5cbiAgICAgKi9cbiAgICBzdGF0aWMgYXN5bmMgZnJvbUVuY3J5cHRlZFhwcnYoXG4gICAgICAgIHhwcnY6IHN0cmluZyxcbiAgICAgICAgcGFzc3dkOiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM/OiB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE51bWJlciBvZiBjb25zZWN1dGl2ZSBhY2NvdW50cyB3aXRoIG5vIGZ1bmRzIGJlZm9yZSBzdG9wcGluZyBkZXJpdmF0aW9uIG9mIG5ldyBXYWxsZXQgYWNjb3VudHMuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGdhcD86IG51bWJlcixcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogTWF4aW11bSBudW1iZXIgb2YgYWNjb3VudHMgdG8gZGVyaXZlLiBcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgbGltaXQ/OiBudW1iZXIsXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFNwZWNpZmljIFdpdC9SUEMgcHJvdmlkZXIgdG8gdXNlIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBXaXRuZXQgbmV0d29yay5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgcHJvdmlkZXI/OiBJSnNvblJwY1Byb3ZpZGVyLCBcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVVRYTyBzZWxlY3Rpb24gc3RyYXRlZ3kgd2hlbiBidWlsZGluZyB0cmFuc2FjdGlvbnMgb3V0IG9mIHRoaXMgd2FsbGV0IChkZWZhdWx0OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU21hbGxGaXJzdCkuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5LCBcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogT25seSBkZXJpdmUgYWNjb3VudHMgaG9sZGluZyBzb21lICRXSVQgZnVuZHMgKGVpdGhlciBsb2NrZWQsIHN0YWtlZCBvciB1bmxvY2tlZCkuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIG9ubHlXaXRoRnVuZHM/OiBib29sZWFuLFxuICAgICAgICB9XG4gICAgKTogUHJvbWlzZTxXYWxsZXQ+IHtcbiAgICAgICAgcmV0dXJuIFdhbGxldC5mcm9tWHBydih1dGlscy5kZWNpcGhlclhwcnYoeHBydiwgcGFzc3dkKSwgb3B0aW9ucylcbiAgICB9XG4gICAgXG4gICAgY29uc3RydWN0b3Iocm9vdDogSUJJUDMyLCBwcm92aWRlcjogSUpzb25ScGNQcm92aWRlciwgc3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kpIHtcbiAgICAgICAgdGhpcy5wcm92aWRlciA9IHByb3ZpZGVyXG4gICAgICAgIHRoaXMuY29pbmJhc2UgPSBuZXcgQ29pbmJhc2Uocm9vdCwgcHJvdmlkZXIsIHN0cmF0ZWd5KVxuICAgICAgICB0aGlzLnJvb3QgPSByb290XG4gICAgICAgIHRoaXMuc3RyYXRlZ3kgPSBzdHJhdGVneSB8fCBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU21hbGxGaXJzdFxuICAgICAgICB0aGlzLmRlcml2ZUFjY291bnRzKDEpXG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhY2NvdW50cygpOiBBcnJheTxJQWNjb3VudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWNjb3VudHNcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNhY2hlSW5mbygpOiBVdHhvQ2FjaGVJbmZvIHtcbiAgICAgICAgY29uc3QgaW5mbzogVXR4b0NhY2hlSW5mbyA9IHsgZXhwZW5kYWJsZTogMG4sIHNpemU6IDAsIHRpbWVsb2NrOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiB9XG4gICAgICAgIHRoaXMuYWNjb3VudHM/LmZvckVhY2goYWNjb3VudCA9PiB7XG4gICAgICAgICAgICBjb25zdCBhY2NvdW50SW5mbyA9IGFjY291bnQuY2FjaGVJbmZvXG4gICAgICAgICAgICBpbmZvLmV4cGVuZGFibGUgKz0gYWNjb3VudEluZm8uZXhwZW5kYWJsZVxuICAgICAgICAgICAgaW5mby5zaXplICs9IGFjY291bnRJbmZvLnNpemVcbiAgICAgICAgICAgIGlmIChhY2NvdW50SW5mby50aW1lbG9jayAhPT0gMCAmJiBhY2NvdW50SW5mby50aW1lbG9jayA8IGluZm8udGltZWxvY2spIHtcbiAgICAgICAgICAgICAgICBpbmZvLnRpbWVsb2NrID0gYWNjb3VudEluZm8udGltZWxvY2tcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGluZm8udGltZWxvY2sgPT09IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSBpbmZvLnRpbWVsb2NrID0gMDtcbiAgICAgICAgcmV0dXJuIGluZm87XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjaGFuZ2VQa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjY291bnRzLmxlbmd0aCA+IDAgPyB0aGlzLmFjY291bnRzWzBdLmNoYW5nZVBraCA6IHRoaXMuY29pbmJhc2UucGtoXG4gICAgfVxuXG4gICAgcHVibGljIGdldCBuZXR3b3JrKCk6IE5ldHdvcmsgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm92aWRlci5uZXR3b3JrXG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjY291bnRzLmxlbmd0aCA+IDAgPyB0aGlzLmFjY291bnRzWzBdLnBraCA6IHRoaXMuY29pbmJhc2UucGtoXG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwdWJsaWNLZXkoKTogUHVibGljS2V5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjb3VudHMubGVuZ3RoID4gMCA/IHRoaXMuYWNjb3VudHNbMF0ucHVibGljS2V5IDogdGhpcy5jb2luYmFzZS5wdWJsaWNLZXlcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KTogeyBleGNsdWRlZDogQXJyYXk8VXR4bz4sIGluY2x1ZGVkOiBBcnJheTxVdHhvPiB9IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZWQ6IEFycmF5PFV0eG8+ID0gW11cbiAgICAgICAgdGhpcy5hY2NvdW50cy5mb3JFYWNoKGFjY291bnQgPT4ge1xuICAgICAgICAgICAgY29uc3QgX3V0eG9zID0gYWNjb3VudC5hZGRVdHhvcyguLi51dHhvcylcbiAgICAgICAgICAgIHV0eG9zID0gX3V0eG9zLmV4Y2x1ZGVkXG4gICAgICAgICAgICBpbmNsdWRlZC5wdXNoKC4uLl91dHhvcy5pbmNsdWRlZClcbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGV4Y2x1ZGVkOiB1dHhvcyxcbiAgICAgICAgICAgIGluY2x1ZGVkXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY29uc3VtZVV0eG9zKC4uLnV0eG9zOiBBcnJheTxVdHhvPik6IEFycmF5PFV0eG8+IHtcbiAgICAgICAgdGhpcy5hY2NvdW50cy5mb3JFYWNoKGFjY291bnQgPT4ge1xuICAgICAgICAgICAgdXR4b3MgPSBhY2NvdW50LmNvbnN1bWVVdHhvcyguLi51dHhvcylcbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIHV0eG9zXG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEJhbGFuY2UoKTogUHJvbWlzZTxCYWxhbmNlPiB7XG4gICAgICAgIGlmICh0aGlzLl9hY2NvdW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZVxuICAgICAgICAgICAgICAgIC5hbGwodGhpcy5fYWNjb3VudHMubWFwKGFzeW5jIChhY2M6IElBY2NvdW50KSA9PiB7IFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiYWxhbmNlID0gYXdhaXQgYWNjLmdldEJhbGFuY2UoKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFsYW5jZSB9KSlcbiAgICAgICAgICAgICAgICAudGhlbigoYmFsYW5jZXM6IEFycmF5PEJhbGFuY2U+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBiYWxhbmNlcy5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9ja2VkOiBwcmV2LmxvY2tlZCArIGN1cnIubG9ja2VkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWtlZDogcHJldi5zdGFrZWQgKyBjdXJyLnN0YWtlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmxvY2tlZDogcHJldi51bmxvY2tlZCArIGN1cnIudW5sb2NrZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sIHsgbG9ja2VkOiAwbiwgc3Rha2VkOiAwbiwgdW5sb2NrZWQ6IDBuIH0pXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvaW5iYXNlLmdldEJhbGFuY2UoKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldERlbGVnYXRlZXMob3JkZXI/OiBRdWVyeVN0YWtlc09yZGVyLCBsZWZ0Sm9pbiA9IHRydWUpOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+PiB7XG4gICAgICAgIGNvbnN0IHJlY29yZHM6IEFycmF5PFN0YWtlRW50cnk+ID0gW11cbiAgICAgICAgcmVjb3Jkcy5wdXNoKC4uLmF3YWl0IHRoaXMuY29pbmJhc2UuZ2V0RGVsZWdhdGVlcyhvcmRlcikpXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMuX2FjY291bnRzLm1hcChhY2NvdW50ID0+IGFjY291bnQuZ2V0RGVsZWdhdGVlcyhvcmRlciwgbGVmdEpvaW4pLnRoZW4oZW50cmllcyA9PiByZWNvcmRzLnB1c2goLi4uZW50cmllcykpKSlcbiAgICAgICAgaWYgKG9yZGVyKSB7XG4gICAgICAgICAgICBjb25zdCByZXZlcnNlID0gb3JkZXI/LnJldmVyc2UgPyAoKzEpIDogKC0xKVxuICAgICAgICAgICAgcmV0dXJuIHJlY29yZHMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAob3JkZXIuYnkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBTdGFrZXNPcmRlckJ5LkNvaW5zOiByZXR1cm4gKChhLnZhbHVlLmNvaW5zIDwgYi52YWx1ZS5jb2lucykgPyAxIDogKChhLnZhbHVlLmNvaW5zID4gYi52YWx1ZS5jb2lucykgPyAtMSA6IDApKSAqIHJldmVyc2U7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgU3Rha2VzT3JkZXJCeS5NaW5pbmc6IHJldHVybiAoYi52YWx1ZS5lcG9jaHMubWluaW5nIC0gYS52YWx1ZS5lcG9jaHMubWluaW5nKSAqIHJldmVyc2U7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgU3Rha2VzT3JkZXJCeS5XaXRuZXNzaW5nOiByZXR1cm4gKGIudmFsdWUuZXBvY2hzLndpdG5lc3NpbmcgLSBhLnZhbHVlLmVwb2Nocy53aXRuZXNzaW5nKSAqIHJldmVyc2U7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgU3Rha2VzT3JkZXJCeS5Ob25jZTogcmV0dXJuIChiLnZhbHVlLm5vbmNlIC0gYS52YWx1ZS5ub25jZSkgKiByZXZlcnNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlY29yZHNcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0VXR4b3MocmVsb2FkPzogYm9vbGVhbik6IFByb21pc2U8QXJyYXk8VXR4bz4+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2VcbiAgICAgICAgICAgIC5hbGwodGhpcy5hY2NvdW50cy5tYXAoYWNjb3VudCA9PiBhY2NvdW50LmdldFV0eG9zKHJlbG9hZCkpKVxuICAgICAgICAgICAgLnRoZW4oYXN5bmMgKHV0eG9zczogQXJyYXk8QXJyYXk8VXR4bz4+KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gdXR4b3NzLnB1c2goYXdhaXQgdGhpcy5jb2luYmFzZS5nZXRVdHhvcyhyZWxvYWQpKVxuICAgICAgICAgICAgICAgIHJldHVybiB1dHhvc3MuZmxhdCgpXG4gICAgICAgICAgICB9KVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZWxlY3RVdHhvcyhzcGVjcz86IHtcbiAgICAgICAgdmFsdWU/OiBDb2lucyxcbiAgICAgICAgcmVsb2FkPzogYm9vbGVhblxuICAgICAgICBzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneVxuICAgIH0pOiBQcm9taXNlPEFycmF5PFV0eG8+PiB7XG4gICAgICAgIHJldHVybiB0aGlzXG4gICAgICAgICAgICAuZ2V0VXR4b3Moc3BlY3M/LnJlbG9hZClcbiAgICAgICAgICAgIC50aGVuKHV0eG9zID0+IHV0aWxzLnNlbGVjdFV0eG9zKHsgdXR4b3MsIHZhbHVlOiBzcGVjcz8udmFsdWUsIHN0cmF0ZWd5OiBzcGVjcz8uc3RyYXRlZ3kgfHwgdGhpcy5zdHJhdGVneSB9KSlcbiAgICB9XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gLS0tIElXYWxsZXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGRlcml2ZUFjY291bnRzKGxpbWl0OiBudW1iZXIpOiBBcnJheTxJQWNjb3VudD4ge1xuICAgICAgICBpZiAobGltaXQgPiB0aGlzLl9hY2NvdW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSB0aGlzLl9hY2NvdW50cy5sZW5ndGggPiAwID8gdGhpcy5hY2NvdW50c1t0aGlzLmFjY291bnRzLmxlbmd0aCAtIDFdLmluZGV4ICsgMSA6IDBcbiAgICAgICAgICAgIGxpbWl0ID0gbGltaXQgLSB0aGlzLl9hY2NvdW50cy5sZW5ndGhcbiAgICAgICAgICAgIGZvciAobGV0IGl4ID0gMDsgaXggPCBsaW1pdDsgaXggKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hY2NvdW50cy5wdXNoKG5ldyBBY2NvdW50KFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvb3QsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvdmlkZXIsXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggKyBpeCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdHJhdGVneVxuICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjY291bnRzXG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGV4cGxvcmVBY2NvdW50cyhsaW1pdCA9IDAsIGdhcCA9IERFRkFVTFRfR0FQKTogUHJvbWlzZTxBcnJheTxJQWNjb3VudD4+IHtcbiAgICAgICAgaWYgKGxpbWl0ID09PSAwIHx8IGxpbWl0ID4gdGhpcy5hY2NvdW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RJbmRleCA9ICh4OiBBcnJheTxJQWNjb3VudD4pID0+IHgubGVuZ3RoID4gMCA/IHhbeC5sZW5ndGggLSAxXS5pbmRleCArIDEgOiAwXG4gICAgICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gbGFzdEluZGV4KHRoaXMuYWNjb3VudHMpXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IHN0YXJ0SW5kZXg7IGluZGV4IDwgbGFzdEluZGV4KHRoaXMuYWNjb3VudHMpICsgZ2FwOyBpbmRleCArKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjY291bnQgPSBuZXcgQWNjb3VudCh0aGlzLnJvb3QsIHRoaXMucHJvdmlkZXIsIGluZGV4LCB0aGlzLnN0cmF0ZWd5KVxuICAgICAgICAgICAgICAgIGlmICh1dGlscy50b3RhbENvaW5zKGF3YWl0IGFjY291bnQuZ2V0QmFsYW5jZSgpKS5wZWRyb3MgPiAwbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjY291bnRzLnB1c2goYWNjb3VudClcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxpbWl0ICYmIHRoaXMuYWNjb3VudHMubGVuZ3RoID49IGxpbWl0KSBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjY291bnRzXG4gICAgfVxuXG4gICAgcHVibGljIGdldEFjY291bnQocGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nLCBnYXA/OiBudW1iZXIpOiBJQWNjb3VudCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGxldCBhY2NvdW50ID0gdGhpcy5fYWNjb3VudHMuZmluZChhY2NvdW50ID0+IGFjY291bnQuaW50ZXJuYWwucGtoID09PSBwa2ggfHwgYWNjb3VudC5wa2ggPT09IHBraClcbiAgICAgICAgaWYgKCFhY2NvdW50KSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgKGdhcCB8fCBERUZBVUxUX0dBUCk7IGluZGV4ICsrKSB7XG4gICAgICAgICAgICAgICAgYWNjb3VudCA9IG5ldyBBY2NvdW50KHRoaXMucm9vdCwgdGhpcy5wcm92aWRlciwgaW5kZXgsIHRoaXMuc3RyYXRlZ3kpXG4gICAgICAgICAgICAgICAgaWYgKGFjY291bnQucGtoID09PSBwa2ggfHwgYWNjb3VudC5pbnRlcm5hbC5wa2ggPT09IHBraCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hY2NvdW50cy5wdXNoKGFjY291bnQpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2NvdW50XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGFjY291bnRcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTaWduZXIocGtoPzogUHVibGljS2V5SGFzaFN0cmluZywgZ2FwPzogbnVtYmVyKTogSVNpZ25lciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICghcGtoKSByZXR1cm4gdGhpcy5hY2NvdW50c1swXT8uZ2V0U2lnbmVyKCkgfHwgdGhpcy5jb2luYmFzZS5nZXRTaWduZXIocGtoKTtcbiAgICAgICAgY29uc3QgYWNjb3VudCA9IHRoaXMuZ2V0QWNjb3VudChwa2gsIGdhcClcbiAgICAgICAgcmV0dXJuIGFjY291bnQ/LmdldFNpZ25lcihwa2gpIHx8IHRoaXMuY29pbmJhc2UuZ2V0U2lnbmVyKHBraClcbiAgICB9XG59XG4iXX0=
@@ -41,4 +41,4 @@ __exportStar(require("./crypto"), exports);
41
41
  exports.Radon = __importStar(require("./radon"));
42
42
  __exportStar(require("./rpc"), exports);
43
43
  __exportStar(require("./types"), exports);
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF3QjtBQUN4QixpREFBZ0M7QUFDaEMsd0NBQXFCO0FBQ3JCLDBDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NyeXB0b1wiXHJcbmV4cG9ydCAqIGFzIFJhZG9uIGZyb20gXCIuL3JhZG9uXCJcclxuZXhwb3J0ICogZnJvbSBcIi4vcnBjXCJcclxuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNcIlxyXG4iXX0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF3QjtBQUN4QixpREFBZ0M7QUFDaEMsd0NBQXFCO0FBQ3JCLDBDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NyeXB0b1wiXG5leHBvcnQgKiBhcyBSYWRvbiBmcm9tIFwiLi9yYWRvblwiXG5leHBvcnQgKiBmcm9tIFwiLi9ycGNcIlxuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNcIlxuIl19
@@ -269,4 +269,4 @@ const sendRawTransaction = (data) => {
269
269
  };
270
270
  };
271
271
  exports.sendRawTransaction = sendRawTransaction;
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9yYWRvbi9jY2RyL2V0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFLNkI7QUFnQjdCLFNBQVMsWUFBWSxDQUFDLEtBQW1CO0lBQ3JDLE9BQU8sQ0FDSCxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxVQUFVLElBQUksS0FBSyxLQUFLLFdBQVcsSUFBSSxLQUFLLEtBQUssU0FBUztXQUNuRixPQUFPLEtBQUssS0FBSyxRQUFRO1dBQ3pCLElBQUEsNkJBQW1CLEVBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztXQUM5QixJQUFBLG9CQUFVLEVBQUMsS0FBSyxDQUFDLENBQzNCLENBQUM7QUFDTixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztBQUFwRCxRQUFBLFdBQVcsZUFBeUM7QUFFakU7Ozs7O0dBS0c7QUFDSSxNQUFNLElBQUksR0FBRyxDQUFDLEVBT3BCLEVBQUUsRUFBRTtJQUNELElBQUEsMkJBQWlCLEVBQUMsRUFBRSxDQUFDLENBQUE7SUFDckIsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBQSw2QkFBbUIsRUFBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBQSxvQkFBVSxFQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFFLE1BQU0sSUFBSSxTQUFTLENBQUMsc0NBQXNDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ0QsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFBLDZCQUFtQixFQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFB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QVUsRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFELE1BQU0sSUFBSSxTQUFTLENBQUMsK0RBQStELENBQUMsQ0FBQztJQUN6RixDQUFDO0lBQ0QsT0FBTztRQUNILE1BQU0sRUFBRSwyQkFBMkI7UUFDbkMsTUFBTSxFQUFFLENBQUUsTUFBTSxDQUFFO0tBQ3JCLENBQUM7QUFDTixDQUFDLENBQUM7QUFUVyxRQUFBLHFCQUFxQix5QkFTaEM7QUFFRjs7O0dBR0c7QUFDSSxNQUFNLGtCQUFrQixHQUFHLENBQUMsSUFBc0IsRUFBRSxFQUFFO0lBQ3pELElBQUEsMkJBQWlCLEVBQUMsSUFBSSxDQUFDLENBQUE7SUFDdkIsSUFBSSxDQUFDLElBQUEscUJBQVcsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQVUsRUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFDLE1BQU0sSUFBSSxTQUFTLENBQUMsNkRBQTZELENBQUMsQ0FBQztJQUN2RixDQUFDO0lBQ0QsT0FBTztRQUNILE1BQU0sRUFBRSx3QkFBd0I7UUFDaEMsTUFBTSxFQUFFLENBQUUsSUFBSSxDQUFFO0tBQ25CLENBQUM7QUFDTixDQUFDLENBQUM7QUFUVyxRQUFBLGtCQUFrQixzQkFTN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgY2hlY2tScGNXaWxkY2FyZHMsXHJcbiAgICBpc0hleFN0cmluZyxcclxuICAgIGlzSGV4U3RyaW5nT2ZMZW5ndGgsXHJcbiAgICBpc1dpbGRjYXJkLFxyXG59IGZyb20gXCIuLi8uLi8uLi9iaW4vaGVscGVyc1wiXHJcblxyXG5pbXBvcnQgeyBcclxuICAgIC8vIENyb3NzQ2hhaW5SUEMsIFxyXG4gICAgQmxvY2tOdW1iZXIsIFxyXG4gICAgQnl0ZXMsIFxyXG4gICAgQnl0ZXMzMiwgXHJcbiAgICBIZXhTdHJpbmcsXHJcbiAgICBIZXhTdHJpbmdPZkxlbmd0aCxcclxuICAgIFdpbGRjYXJkLFxyXG59IGZyb20gXCIuXCI7XHJcblxyXG5leHBvcnQgdHlwZSBFdGhBZGRyZXNzID0gSGV4U3RyaW5nT2ZMZW5ndGg8NDA+O1xyXG5leHBvcnQgdHlwZSBFdGhCbG9ja0hlYWQgPSBCbG9ja051bWJlciB8IEV0aEJsb2NrVGFnIHwgV2lsZGNhcmQ7XHJcbmV4cG9ydCB0eXBlIEV0aEJsb2NrVGFnID0gXCJsYXRlc3RcIiB8IFwiZWFybGllc3RcIiB8IFwicGVuZGluZ1wiIHwgXCJmaW5hbGl6ZWRcIiBcclxuXHJcbmZ1bmN0aW9uIF9pc0Jsb2NrSGVhZChibG9jazogRXRoQmxvY2tIZWFkKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIGJsb2NrID09PSBcImxhdGVzdFwiIHx8IGJsb2NrID09PSBcImVhcmxpZXN0XCIgfHwgYmxvY2sgPT09IFwiZmluYWxpemVkXCIgfHwgYmxvY2sgPT09IFwicGVuZGluZ1wiXHJcbiAgICAgICAgICAgIHx8IHR5cGVvZiBibG9jayA9PT0gJ251bWJlcidcclxuICAgICAgICAgICAgfHwgaXNIZXhTdHJpbmdPZkxlbmd0aChibG9jaywgMzIpXHJcbiAgICAgICAgICAgIHx8IGlzV2lsZGNhcmQoYmxvY2spXHJcbiAgICApO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0cmlldmUgdGhlIG51bWJlciBvZiBtb3N0IHJlY2VudCBibG9jay5cclxuICovIFxyXG5leHBvcnQgY29uc3QgYmxvY2tOdW1iZXIgPSAoKSA9PiAoeyBtZXRob2Q6IFwiZXRoX2Jsb2NrTnVtYmVyXCIgfSk7XHJcblxyXG4vKipcclxuICogSW52b2tlIG1lc3NhZ2UgY2FsbCBpbW1lZGlhdGVseSB3aXRob3V0IGNyZWF0aW5nIGEgdHJhbnNhY3Rpb24gXHJcbiAqIG9uIHRoZSByZW1vdGUgYmxvY2sgY2hhaW4uIE9mdGVuIHVzZWQgZm9yIGV4ZWN1dGluZyByZWFkLW9ubHkgc21hcnQgY29udHJhY3QgXHJcbiAqIGZ1bmN0aW9ucywgZm9yIGV4YW1wbGUgdGhlIGJhbGFuY2VPZiBmb3IgYW4gRVJDLTIwIGNvbnRyYWN0LlxyXG4gKiBAcGFyYW0gdHggVGhlIHRyYW5zYWN0aW9uIGNhbGwgb2JqZWN0LlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGNhbGwgPSAodHg6IHtcclxuICAgIGZyb20/OiBFdGhBZGRyZXNzIHwgV2lsZGNhcmQsXHJcbiAgICB0bzogRXRoQWRkcmVzcyB8IFdpbGRjYXJkLFxyXG4gICAgZ2FzPzogbnVtYmVyIHwgSGV4U3RyaW5nIHwgV2lsZGNhcmQsXHJcbiAgICBnYXNQcmljZT86IG51bWJlciB8IEhleFN0cmluZyB8IFdpbGRjYXJkLFxyXG4gICAgdmFsdWU/OiBudW1iZXIgfCBIZXhTdHJpbmcgfCBXaWxkY2FyZCxcclxuICAgIGRhdGE/OiBIZXhTdHJpbmcgIHwgV2lsZGNhcmRcclxufSkgPT4ge1xyXG4gICAgY2hlY2tScGNXaWxkY2FyZHModHgpXHJcbiAgICBpZiAodHg/LmZyb20gJiYgIWlzSGV4U3RyaW5nT2ZMZW5ndGgodHg/LmZyb20sIDIwKSAmJiAhaXNXaWxkY2FyZCh0eD8uZnJvbSkpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5jYWxsOiBpbnZhbGlkICdmcm9tJyBhZGRyZXNzXCIpO1xyXG4gICAgfVxyXG4gICAgaWYgKHR4Py5nYXMgJiYgIU51bWJlci5pc0ludGVnZXIodHguZ2FzKSAmJiAhaXNIZXhTdHJpbmdPZkxlbmd0aCh0eC5nYXMsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eC5nYXMpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguY2FsbDogaW52YWxpZCAnZ2FzJyB2YWx1ZVwiKVxyXG4gICAgfVxyXG4gICAgaWYgKHR4Py5nYXNQcmljZSAmJiAhTnVtYmVyLmlzSW50ZWdlcih0eC5nYXNQcmljZSkgJiYgIWlzSGV4U3RyaW5nT2ZMZW5ndGgodHguZ2FzUHJpY2UsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eC5nYXNQcmljZSkpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5jYWxsOiBpbnZhbGlkICdnYXNQcmljZScgdmFsdWVcIilcclxuICAgIH1cclxuICAgIGlmICh0eD8udmFsdWUgJiYgIU51bWJlci5pc0ludGVnZXIodHgudmFsdWUpICYmICFpc0hleFN0cmluZ09mTGVuZ3RoKHR4LnZhbHVlLCAzMikgJiYgIWlzV2lsZGNhcmQodHgudmFsdWUpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguY2FsbDogaW52YWxpZCB0cmFuc2FjdGlvbiAndmFsdWUnXCIpXHJcbiAgICB9XHJcbiAgICBpZiAodHg/LmRhdGEgJiYgIWlzSGV4U3RyaW5nKHR4LmRhdGEpICYmICFpc1dpbGRjYXJkKHR4LmRhdGEpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguY2FsbDogaW52YWxpZCB0cmFuc2FjdGlvbiAnZGF0YSdcIilcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbWV0aG9kOiBcImV0aF9jYWxsXCIsIFxyXG4gICAgICAgIHBhcmFtczogWyB0eCBdXHJcbiAgICB9O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXRlcyBhbmQgcmV0dXJucyBhbiBlc3RpbWF0ZSBvZiBob3cgbXVjaCBnYXMgaXMgbmVjZXNzYXJ5IFxyXG4gKiB0byBhbGxvdyB0aGUgdHJhbnNhY3Rpb24gdG8gY29tcGxldGUuIFRoZSB0cmFuc2FjdGlvbiB3aWxsIG5vdCBiZSBcclxuICogYWRkZWQgdG8gdGhlIGJsb2NrY2hhaW4uIE5vdGUgdGhhdCB0aGUgZXN0aW1hdGUgbWF5IGJlIHNpZ25pZmljYW50bHkgXHJcbiAqIG1vcmUgdGhhbiB0aGUgYW1vdW50IG9mIGdhcyBhY3R1YWxseSB1c2VkIGJ5IHRoZSB0cmFuc2FjdGlvbiwgZm9yIGEgXHJcbiAqIHZhcmlldHkgb2YgcmVhc29ucyBpbmNsdWRpbmcgRVZNIG1lY2hhbmljcyBhbmQgbm9kZSBwZXJmb3JtYW5jZS5cclxuICogQHBhcmFtIHR4IFRoZSB0cmFuc2FjdGlvbiBjYWxsIG9iamVjdC5cclxuICovXHJcbmV4cG9ydCBjb25zdCBlc3RpbWF0ZUdhcyA9ICh0eDoge1xyXG4gICAgZnJvbT86IEV0aEFkZHJlc3MgfCBXaWxkY2FyZCxcclxuICAgIHRvOiBFdGhBZGRyZXNzIHwgV2lsZGNhcmQsXHJcbiAgICBnYXM/OiBudW1iZXIgfCBIZXhTdHJpbmcgfCBXaWxkY2FyZCxcclxuICAgIGdhc1ByaWNlPzogbnVtYmVyIHwgSGV4U3RyaW5nIHwgV2lsZGNhcmQsXHJcbiAgICB2YWx1ZT86IG51bWJlciB8IEhleFN0cmluZyB8IFdpbGRjYXJkLFxyXG4gICAgZGF0YT86IEhleFN0cmluZyB8IFdpbGRjYXJkXHJcbn0pID0+IHtcclxuICAgIGNoZWNrUnBjV2lsZGNhcmRzKHR4KVxyXG4gICAgaWYgKHR4Py5mcm9tICYmICFpc0hleFN0cmluZ09mTGVuZ3RoKHR4Py5mcm9tLCAyMCkgJiYgIWlzV2lsZGNhcmQodHg/LmZyb20pKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZXN0aW1hdGVHYXM6IGludmFsaWQgJ2Zyb20nIGFkZHJlc3NcIik7XHJcbiAgICB9XHJcbiAgICBpZiAodHg/LmdhcyAmJiAhTnVtYmVyLmlzSW50ZWdlcih0eC5nYXMpICYmICFpc0hleFN0cmluZ09mTGVuZ3RoKHR4LmdhcywgMzIpICYmICFpc1dpbGRjYXJkKHR4LmdhcykpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5lc3RpbWF0ZUdhczogaW52YWxpZCAnZ2FzJyB2YWx1ZVwiKVxyXG4gICAgfVxyXG4gICAgaWYgKHR4Py5nYXNQcmljZSAmJiAhTnVtYmVyLmlzSW50ZWdlcih0eC5nYXNQcmljZSkgJiYgIWlzSGV4U3RyaW5nT2ZMZW5ndGgodHguZ2FzUHJpY2UsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eC5nYXNQcmljZSkpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5lc3RpbWF0ZUdhczogaW52YWxpZCAnZ2FzUHJpY2UnIHZhbHVlXCIpXHJcbiAgICB9XHJcbiAgICBpZiAodHg/LnZhbHVlICYmICFOdW1iZXIuaXNJbnRlZ2VyKHR4LnZhbHVlKSAmJiAhaXNIZXhTdHJpbmdPZkxlbmd0aCh0eC52YWx1ZSwgMzIpICYmICFpc1dpbGRjYXJkKHR4LnZhbHVlKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmVzdGltYXRlR2FzOiBpbnZhbGlkIHRyYW5zYWN0aW9uICd2YWx1ZSdcIilcclxuICAgIH1cclxuICAgIGlmICh0eD8uZGF0YSAmJiAhaXNIZXhTdHJpbmcodHguZGF0YSkgJiYgIWlzV2lsZGNhcmQodHguZGF0YSkpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5lc3RpbWF0ZUdhczogaW52YWxpZCB0cmFuc2FjdGlvbiAnZGF0YSdcIilcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbWV0aG9kOiBcImV0aF9lc3RpbWF0ZUdhc1wiLCBcclxuICAgICAgICBwYXJhbXM6IFsgdHggXVxyXG4gICAgfTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXRyaWV2ZSB0aGUgYmFsYW5jZSBvZiB0aGUgYWNjb3VudCBvZiBnaXZlbiBhZGRyZXNzLlxyXG4gKiBAcGFyYW0gYWRkcmVzcyBXZWIzIGFkZHJlc3Mgb24gcmVtb3RlIEVWTSBjaGFpbi5cclxuICovXHJcbmV4cG9ydCBjb25zdCBnZXRCYWxhbmNlID0gKGFkZHJlc3M6IEV0aEFkZHJlc3MgfCBXaWxkY2FyZCwgYmxvY2s/OiBFdGhCbG9ja0hlYWQgfCBXaWxkY2FyZCkgPT4ge1xyXG4gICAgY2hlY2tScGNXaWxkY2FyZHMoW2FkZHJlc3MsIGJsb2NrXSlcclxuICAgIGlmICghaXNIZXhTdHJpbmdPZkxlbmd0aChhZGRyZXNzLCAyMCkgJiYgIWlzV2lsZGNhcmQoYWRkcmVzcykpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5nZXRCYWxhbmNlOiBpbnZhbGlkIFdlYjMgYWRkcmVzcyBmb3JtYXRcIik7XHJcbiAgICB9IFxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBtZXRob2Q6IFwiZXRoX2dldEJhbGFuY2VcIiwgXHJcbiAgICAgICAgcGFyYW1zOiBbIGFkZHJlc3MsIGJsb2NrIF1cclxuICAgIH1cclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXRyaWV2ZSBjb2RlIGF0IGEgZ2l2ZW4gYWRkcmVzcy5cclxuICogQHBhcmFtIGFkZHJlc3MgRXRoQWRkcmVzcyBmcm9tIHdoZXJlIHRvIGdldCB0aGUgY29kZS5cclxuICovXHJcbmV4cG9ydCBjb25zdCBnZXRDb2RlID0gKGFkZHJlc3M6IEV0aEFkZHJlc3MgfCBXaWxkY2FyZCkgPT4ge1xyXG4gICAgY2hlY2tScGNXaWxkY2FyZHMoYWRkcmVzcylcclxuICAgIGlmICghaXNIZXhTdHJpbmdPZkxlbmd0aChhZGRyZXNzLCAyMCkgJiYgIWlzV2lsZGNhcmQoYWRkcmVzcykpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5nZXRDb2RlOiBpbnZhbGlkIFdlYjMgYWRkcmVzcyBmb3JtYXRcIik7XHJcbiAgICB9IFxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBtZXRob2Q6IFwiZXRoX2dldENvZGVcIiwgXHJcbiAgICAgICAgcGFyYW1zOiBbIGFkZHJlc3MgXSxcclxuICAgIH07XHJcbn07XHJcblxyXG4vKipcclxuICogUmV0cmlldmUgYW4gYXJyYXkgb2YgYWxsIGxvZ3MgbWF0Y2hpbmcgYSBnaXZlbiBmaWx0ZXIgb2JqZWN0LlxyXG4gKiBAcGFyYW0gZmlsdGVyIFRoZSBmaWx0ZXIgb3B0aW9ucy5cclxuICovXHJcbmV4cG9ydCBjb25zdCBnZXRMb2dzID0gKGZpbHRlcjoge1xyXG4gICAgZnJvbUJsb2NrPzogRXRoQmxvY2tIZWFkLFxyXG4gICAgdG9CbG9jaz86IEV0aEJsb2NrSGVhZCxcclxuICAgIGFkZHJlc3M/OiBFdGhBZGRyZXNzIHwgRXRoQWRkcmVzc1tdIHwgV2lsZGNhcmQsXHJcbiAgICB0b3BpY3M/OiBCeXRlczMyW10sXHJcbiAgICBibG9ja0hhc2g/OiBCeXRlczMyIHwgV2lsZGNhcmQsXHJcbn0pID0+IHtcclxuICAgIGNoZWNrUnBjV2lsZGNhcmRzKGZpbHRlcilcclxuICAgIGlmIChmaWx0ZXI/LmJsb2NrSGFzaCAmJiAoZmlsdGVyPy5mcm9tQmxvY2sgfHwgZmlsdGVyPy50b0Jsb2NrKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldExvZ3M6IHVuY29tcGxpYW50IHVzZSBvZiAnYmxvY2tIYXNoJ1wiKVxyXG4gICAgfVxyXG4gICAgaWYgKGZpbHRlcj8uZnJvbUJsb2NrKSB7XHJcbiAgICAgICAgaWYgKCFfaXNCbG9ja0hlYWQoZmlsdGVyPy5mcm9tQmxvY2spKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldExvZ3M6IGludmFsaWQgJ2Zyb21CbG9jaycgdmFsdWVcIik7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmlsdGVyPy5mcm9tQmxvY2sgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIGZpbHRlci5mcm9tQmxvY2sgPSBgMHgkeyhmaWx0ZXI/LmZyb21CbG9jayBhcyBudW1iZXIpLnRvU3RyaW5nKDE2KX1gIGFzIEV0aEJsb2NrSGVhZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChmaWx0ZXI/LnRvQmxvY2spIHtcclxuICAgICAgICBpZiAoIV9pc0Jsb2NrSGVhZChmaWx0ZXI/LnRvQmxvY2spKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldExvZ3M6IGludmFsaWQgJ3RvQmxvY2snIHZhbHVlXCIpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGZpbHRlcj8udG9CbG9jayA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgZmlsdGVyLnRvQmxvY2sgPSBgMHgkeyhmaWx0ZXI/LnRvQmxvY2sgYXMgbnVtYmVyKS50b1N0cmluZygxNil9YCBhcyBFdGhCbG9ja0hlYWRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoZmlsdGVyPy5ibG9ja0hhc2ggJiYgIWlzSGV4U3RyaW5nT2ZMZW5ndGgoZmlsdGVyLmJsb2NrSGFzaCwgMzIpICYmICFpc1dpbGRjYXJkKGZpbHRlci5ibG9ja0hhc2gpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0TG9nczogaW52YWxpZCAnYmxvY2tIYXNoJyB2YWx1ZVwiKTtcclxuICAgIH1cclxuICAgIGlmIChmaWx0ZXI/LnRvcGljcykge1xyXG4gICAgICAgIGZpbHRlci50b3BpY3MubWFwKCh2YWx1ZTogQnl0ZXMzMiwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWlzSGV4U3RyaW5nT2ZMZW5ndGgodmFsdWUsIDMyKSAmJiAhaXNXaWxkY2FyZCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYHJwYy5ldGguZ2V0TG9nczogdG9waWMgIyR7aW5kZXh9OiBpbnZhbGlkIGhhc2hgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbWV0aG9kOiBcImV0aF9nZXRMb2dzXCIsIFxyXG4gICAgICAgIHBhcmFtczogWyBmaWx0ZXIgXVxyXG4gICAgfTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXRyaWV2ZSBhbiBlc3RpbWF0ZSBvZiB0aGUgY3VycmVudCBwcmljZSBwZXIgZ2FzIGluIHdlaS4gXHJcbiAqLyBcclxuZXhwb3J0IGNvbnN0IGdhc1ByaWNlID0gKCkgPT4gKHsgbWV0aG9kOiBcImV0aF9nYXNQcmljZVwiIH0pO1xyXG5cclxuLyoqXHJcbiAqIFJldHJpZXZlIHRoZSB2YWx1ZSBmcm9tIGEgc3RvcmFnZSBwb3NpdGlvbiBhdCBhIGdpdmVuIGFkZHJlc3MuXHJcbiAqIEBwYXJhbSBhZGRyZXNzIEV0aEFkZHJlc3Mgb2YgdGhlIHN0b3JhZ2UuXHJcbiAqIEBwYXJhbSBvZmZzZXQgT2Zmc2V0IHdpdGhpbiBzdG9yYWdlIGFkZHJlc3MuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0U3RvcmFnZUF0ID0gKGFkZHJlc3M6IEV0aEFkZHJlc3MgfCBXaWxkY2FyZCwgb2Zmc2V0OiBCeXRlczMyIHwgV2lsZGNhcmQpID0+IHtcclxuICAgIGNoZWNrUnBjV2lsZGNhcmRzKFsgYWRkcmVzcywgb2Zmc2V0IF0pXHJcbiAgICBpZiAoIWlzSGV4U3RyaW5nT2ZMZW5ndGgoYWRkcmVzcywgMjApICYmICFpc1dpbGRjYXJkKGFkZHJlc3MpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0U3RvcmFnZUF0OiBpbnZhbGlkIFdlYjMgYWRkcmVzcyBmb3JtYXRcIik7XHJcbiAgICB9IFxyXG4gICAgaWYgKCFpc0hleFN0cmluZ09mTGVuZ3RoKG9mZnNldCwgMzIpICYmICFpc1dpbGRjYXJkKG9mZnNldCkpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5nZXRTdG9yYWdlQXQ6IGludmFsaWQgc3RvcmFnZSBvZmZzZXQgdmFsdWVcIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIG1ldGhvZDogXCJldGhfZ2V0U3RvcmFnZUF0XCIsIFxyXG4gICAgICAgIHBhcmFtczogWyBhZGRyZXNzLCBvZmZzZXQgXSxcclxuICAgIH07XHJcbn07XHJcblxyXG4vKipcclxuICogUmV0cmlldmUgdGhlIGluZm9ybWF0aW9uIGFib3V0IGEgcmVtb3RlIHRyYW5zYWN0aW9uIGdpdmVuIGEgYmxvY2sgaGFzaCBhbmQgYSB0cmFuc2FjdGlvbiBpbmRleC5cclxuICogQHBhcmFtIHR4SGFzaCBIYXNoIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0VHJhbnNhY3Rpb25CeUJsb2NrSGFzaEFuZEluZGV4ID0gKGJsb2NrSGFzaDogQnl0ZXMzMiB8IFdpbGRjYXJkLCB0eEluZGV4OiBudW1iZXIgfCBCeXRlczMyIHwgV2lsZGNhcmQpID0+IHtcclxuICAgIGNoZWNrUnBjV2lsZGNhcmRzKFsgYmxvY2tIYXNoLCB0eEluZGV4IF0pXHJcbiAgICBpZiAoIWlzSGV4U3RyaW5nT2ZMZW5ndGgoYmxvY2tIYXNoLCAzMikgJiYgIWlzV2lsZGNhcmQoYmxvY2tIYXNoKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldFRyYW5zYWN0aW9uQnlCbG9ja0hhc2hBbmRJbmRleDogaW52YWxpZCBibG9jayBoYXNoIHZhbHVlXCIpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHR4SW5kZXgpICYmICFpc0hleFN0cmluZ09mTGVuZ3RoKHR4SW5kZXgsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eEluZGV4KSkge1xyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldFRyYW5zYWN0aW9uQnlCbG9ja0hhc2hBbmRJbmRleDogaW52YWxpZCB0cmFuc2FjdGlvbiBpbmRleCB2YWx1ZVwiKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBtZXRob2Q6IFwiZXRoX2dldFRyYW5zYWN0aW9uQnlCbG9ja0hhc2hBbmRJbmRleFwiLCBcclxuICAgICAgICBwYXJhbXM6IFsgYmxvY2tIYXNoLCB0eEluZGV4IF1cclxuICAgIH07XHJcbn07XHJcblxyXG4vKipcclxuICogUmV0cmlldmUgdGhlIGluZm9ybWF0aW9uIGFib3V0IGEgcmVtb3RlIHRyYW5zYWN0aW9uIGdpdmVuIGEgYmxvY2sgbnVtYmVyIGFuZCBhIHRyYW5zYWN0aW9uIGluZGV4LlxyXG4gKiBAcGFyYW0gdHhIYXNoIEhhc2ggb2YgdGhlIHJlbW90ZSB0cmFuc2FjdGlvbi5cclxuICovXHJcbmV4cG9ydCBjb25zdCBnZXRUcmFuc2FjdGlvbkJ5QmxvY2tOdW1iZXJBbmRJbmRleCA9IChcclxuICAgIGJsb2NrTnVtYmVyOiBFdGhCbG9ja0hlYWQsXHJcbiAgICB0eEluZGV4OiBudW1iZXIgfCBCeXRlczMyIHwgV2lsZGNhcmRcclxuKSA9PiB7XHJcbiAgICBjaGVja1JwY1dpbGRjYXJkcyhbIGJsb2NrTnVtYmVyLCB0eEluZGV4IF0pXHJcbiAgICBpZiAoIV9pc0Jsb2NrSGVhZChibG9ja051bWJlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5nZXRUcmFuc2FjdGlvbkJ5QmxvY2tOdW1iZXJBbmRJbmRleDogaW52YWxpZCBibG9jayBudW1iZXIgdmFsdWVcIik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0eXBlb2YgYmxvY2tOdW1iZXIgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIGJsb2NrTnVtYmVyID0gYDB4JHsoYmxvY2tOdW1iZXIgYXMgbnVtYmVyKS50b1N0cmluZygxNil9YCBhcyBFdGhCbG9ja0hlYWRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIodHhJbmRleCkgJiYgIWlzSGV4U3RyaW5nT2ZMZW5ndGgodHhJbmRleCwgMzIpICYmICFpc1dpbGRjYXJkKHR4SW5kZXgpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0VHJhbnNhY3Rpb25CeUJsb2NrTnVtYmVyQW5kSW5kZXg6IGludmFsaWQgdHJhbnNhY3Rpb24gaW5kZXggdmFsdWVcIilcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbWV0aG9kOiBcImV0aF9nZXRUcmFuc2FjdGlvbkJ5QmxvY2tIYXNoQW5kSW5kZXhcIiwgXHJcbiAgICAgICAgcGFyYW1zOiBbIGJsb2NrTnVtYmVyLCB0eEluZGV4IF0sXHJcbiAgICB9O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFJldHJpZXZlIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBhIHJlbW90ZSB0cmFuc2FjdGlvbiBnaXZlbiBpdHMgdHJhbnNhY3Rpb24gaGFzaC5cclxuICogQHBhcmFtIHR4SGFzaCBIYXNoIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0VHJhbnNhY3Rpb25CeUhhc2ggPSAodHhIYXNoOiBCeXRlczMyIHwgV2lsZGNhcmQpID0+IHtcclxuICAgIGNoZWNrUnBjV2lsZGNhcmRzKHR4SGFzaClcclxuICAgIGlmICghaXNIZXhTdHJpbmdPZkxlbmd0aCh0eEhhc2gsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eEhhc2gpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0VHJhbnNhY3Rpb25CeUhhc2g6IGludmFsaWQgdHJhbnNhY3Rpb24gaGFzaCB2YWx1ZVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiB7IFxyXG4gICAgICAgIG1ldGhvZDogXCJldGhfZ2V0VHJhbnNhY3Rpb25CeUhhc2hcIiwgXHJcbiAgICAgICAgcGFyYW1zOiBbIHR4SGFzaCBdLFxyXG4gICAgfTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXRyaWV2ZSB0aGUgbnVtYmVyIG9mIHRyYW5zYWN0aW9ucyBzZW50IGZyb20gYW4gYWRkcmVzcy5cclxuICogQHBhcmFtIGFkZHJlc3MgRXRoQWRkcmVzcyBmcm9tIHdoZXJlIHRvIGdldCB0cmFuc2FjdGlvbiBjb3VudC5cclxuICovXHJcbmV4cG9ydCBjb25zdCBnZXRUcmFuc2FjdGlvbkNvdW50ID0gKGFkZHJlc3M6IEV0aEFkZHJlc3MgfCBXaWxkY2FyZCkgPT4ge1xyXG4gICAgY2hlY2tScGNXaWxkY2FyZHMoYWRkcmVzcylcclxuICAgIGlmICghaXNIZXhTdHJpbmdPZkxlbmd0aChhZGRyZXNzLCAyMCkgJiYgIWlzV2lsZGNhcmQoYWRkcmVzcykpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5nZXRUcmFuc2FjdGlvbkNvdW50OiBpbnZhbGlkIFdlYjMgYWRkcmVzcyBmb3JtYXRcIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIG1ldGhvZDogXCJldGhfZ2V0VHJhbnNhY3Rpb25Db3VudFwiLCBcclxuICAgICAgICBwYXJhbXM6IFsgYWRkcmVzcyBdLFxyXG4gICAgfTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXRyaWV2ZSB0aGUgcmVjZWlwdCBvZiBhIHJlbW90ZSB0cmFuc2FjdGlvbiBnaXZlbiBpdHMgdHJhbnNhY3Rpb24gaGFzaC5cclxuICogQHBhcmFtIHR4SGFzaCBIYXNoIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0VHJhbnNhY3Rpb25SZWNlaXB0ID0gKHR4SGFzaDogQnl0ZXMzMiB8IFdpbGRjYXJkKSA9PiB7XHJcbiAgICBjaGVja1JwY1dpbGRjYXJkcyh0eEhhc2gpXHJcbiAgICBpZiAoIWlzSGV4U3RyaW5nT2ZMZW5ndGgodHhIYXNoLCAzMikgJiYgIWlzV2lsZGNhcmQodHhIYXNoKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldFRyYW5zYWN0aW9uUmVjZWlwdDogaW52YWxpZCB0cmFuc2FjdGlvbiBoYXNoIHZhbHVlXCIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBtZXRob2Q6IFwiZXRoX2dldFRyYW5zYWN0aW9uUmVjZWlwdFwiLCBcclxuICAgICAgICBwYXJhbXM6IFsgdHhIYXNoIF0sXHJcbiAgICB9O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEludm9rZSByZW1vdGUgY2FsbCB0cmFuc2FjdGlvbiwgb3IgcmVtb3RlIGNvbnRyYWN0IGNyZWF0aW9uLiBcclxuICogQHBhcmFtIGRhdGEgVGhlIHNpZ25lZCB0cmFuc2FjdGlvbiBkYXRhLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHNlbmRSYXdUcmFuc2FjdGlvbiA9IChkYXRhOiBCeXRlcyB8IFdpbGRjYXJkKSA9PiB7XHJcbiAgICBjaGVja1JwY1dpbGRjYXJkcyhkYXRhKVxyXG4gICAgaWYgKCFpc0hleFN0cmluZyhkYXRhKSAmJiAhaXNXaWxkY2FyZChkYXRhKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLnNlbmRSYXdUcmFuc2FjdGlvbjogaW52YWxpZCBzaWduZWQgdHJhbnNhY3Rpb24gZGF0YVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbWV0aG9kOiBcImV0aF9zZW5kUmF3VHJhbnNhY3Rpb25cIiwgXHJcbiAgICAgICAgcGFyYW1zOiBbIGRhdGEgXVxyXG4gICAgfTtcclxufTtcclxuIl19
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9yYWRvbi9jY2RyL2V0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFLNkI7QUFnQjdCLFNBQVMsWUFBWSxDQUFDLEtBQW1CO0lBQ3JDLE9BQU8sQ0FDSCxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxVQUFVLElBQUksS0FBSyxLQUFLLFdBQVcsSUFBSSxLQUFLLEtBQUssU0FBUztXQUNuRixPQUFPLEtBQUssS0FBSyxRQUFRO1dBQ3pCLElBQUEsNkJBQW1CLEVBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztXQUM5QixJQUFBLG9CQUFVLEVBQUMsS0FBSyxDQUFDLENBQzNCLENBQUM7QUFDTixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztBQUFwRCxRQUFBLFdBQVcsZUFBeUM7QUFFakU7Ozs7O0dBS0c7QUFDSSxNQUFNLElBQUksR0FBRyxDQUFDLEVBT3BCLEVBQUUsRUFBRTtJQUNELElBQUEsMkJBQWlCLEVBQUMsRUFBRSxDQUFDLENBQUE7SUFDckIsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBQSw2QkFBbUIsRUFBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBQSxvQkFBVSxFQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFFLE1BQU0sSUFBSSxTQUFTLENBQUMsc0NBQXNDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ0QsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFBLDZCQUFtQixFQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFB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QVUsRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFELE1BQU0sSUFBSSxTQUFTLENBQUMsK0RBQStELENBQUMsQ0FBQztJQUN6RixDQUFDO0lBQ0QsT0FBTztRQUNILE1BQU0sRUFBRSwyQkFBMkI7UUFDbkMsTUFBTSxFQUFFLENBQUUsTUFBTSxDQUFFO0tBQ3JCLENBQUM7QUFDTixDQUFDLENBQUM7QUFUVyxRQUFBLHFCQUFxQix5QkFTaEM7QUFFRjs7O0dBR0c7QUFDSSxNQUFNLGtCQUFrQixHQUFHLENBQUMsSUFBc0IsRUFBRSxFQUFFO0lBQ3pELElBQUEsMkJBQWlCLEVBQUMsSUFBSSxDQUFDLENBQUE7SUFDdkIsSUFBSSxDQUFDLElBQUEscUJBQVcsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQVUsRUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFDLE1BQU0sSUFBSSxTQUFTLENBQUMsNkRBQTZELENBQUMsQ0FBQztJQUN2RixDQUFDO0lBQ0QsT0FBTztRQUNILE1BQU0sRUFBRSx3QkFBd0I7UUFDaEMsTUFBTSxFQUFFLENBQUUsSUFBSSxDQUFFO0tBQ25CLENBQUM7QUFDTixDQUFDLENBQUM7QUFUVyxRQUFBLGtCQUFrQixzQkFTN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIGNoZWNrUnBjV2lsZGNhcmRzLFxuICAgIGlzSGV4U3RyaW5nLFxuICAgIGlzSGV4U3RyaW5nT2ZMZW5ndGgsXG4gICAgaXNXaWxkY2FyZCxcbn0gZnJvbSBcIi4uLy4uLy4uL2Jpbi9oZWxwZXJzXCJcblxuaW1wb3J0IHsgXG4gICAgLy8gQ3Jvc3NDaGFpblJQQywgXG4gICAgQmxvY2tOdW1iZXIsIFxuICAgIEJ5dGVzLCBcbiAgICBCeXRlczMyLCBcbiAgICBIZXhTdHJpbmcsXG4gICAgSGV4U3RyaW5nT2ZMZW5ndGgsXG4gICAgV2lsZGNhcmQsXG59IGZyb20gXCIuXCI7XG5cbmV4cG9ydCB0eXBlIEV0aEFkZHJlc3MgPSBIZXhTdHJpbmdPZkxlbmd0aDw0MD47XG5leHBvcnQgdHlwZSBFdGhCbG9ja0hlYWQgPSBCbG9ja051bWJlciB8IEV0aEJsb2NrVGFnIHwgV2lsZGNhcmQ7XG5leHBvcnQgdHlwZSBFdGhCbG9ja1RhZyA9IFwibGF0ZXN0XCIgfCBcImVhcmxpZXN0XCIgfCBcInBlbmRpbmdcIiB8IFwiZmluYWxpemVkXCIgXG5cbmZ1bmN0aW9uIF9pc0Jsb2NrSGVhZChibG9jazogRXRoQmxvY2tIZWFkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgYmxvY2sgPT09IFwibGF0ZXN0XCIgfHwgYmxvY2sgPT09IFwiZWFybGllc3RcIiB8fCBibG9jayA9PT0gXCJmaW5hbGl6ZWRcIiB8fCBibG9jayA9PT0gXCJwZW5kaW5nXCJcbiAgICAgICAgICAgIHx8IHR5cGVvZiBibG9jayA9PT0gJ251bWJlcidcbiAgICAgICAgICAgIHx8IGlzSGV4U3RyaW5nT2ZMZW5ndGgoYmxvY2ssIDMyKVxuICAgICAgICAgICAgfHwgaXNXaWxkY2FyZChibG9jaylcbiAgICApO1xufVxuXG4vKipcbiAqIFJldHJpZXZlIHRoZSBudW1iZXIgb2YgbW9zdCByZWNlbnQgYmxvY2suXG4gKi8gXG5leHBvcnQgY29uc3QgYmxvY2tOdW1iZXIgPSAoKSA9PiAoeyBtZXRob2Q6IFwiZXRoX2Jsb2NrTnVtYmVyXCIgfSk7XG5cbi8qKlxuICogSW52b2tlIG1lc3NhZ2UgY2FsbCBpbW1lZGlhdGVseSB3aXRob3V0IGNyZWF0aW5nIGEgdHJhbnNhY3Rpb24gXG4gKiBvbiB0aGUgcmVtb3RlIGJsb2NrIGNoYWluLiBPZnRlbiB1c2VkIGZvciBleGVjdXRpbmcgcmVhZC1vbmx5IHNtYXJ0IGNvbnRyYWN0IFxuICogZnVuY3Rpb25zLCBmb3IgZXhhbXBsZSB0aGUgYmFsYW5jZU9mIGZvciBhbiBFUkMtMjAgY29udHJhY3QuXG4gKiBAcGFyYW0gdHggVGhlIHRyYW5zYWN0aW9uIGNhbGwgb2JqZWN0LlxuICovXG5leHBvcnQgY29uc3QgY2FsbCA9ICh0eDoge1xuICAgIGZyb20/OiBFdGhBZGRyZXNzIHwgV2lsZGNhcmQsXG4gICAgdG86IEV0aEFkZHJlc3MgfCBXaWxkY2FyZCxcbiAgICBnYXM/OiBudW1iZXIgfCBIZXhTdHJpbmcgfCBXaWxkY2FyZCxcbiAgICBnYXNQcmljZT86IG51bWJlciB8IEhleFN0cmluZyB8IFdpbGRjYXJkLFxuICAgIHZhbHVlPzogbnVtYmVyIHwgSGV4U3RyaW5nIHwgV2lsZGNhcmQsXG4gICAgZGF0YT86IEhleFN0cmluZyAgfCBXaWxkY2FyZFxufSkgPT4ge1xuICAgIGNoZWNrUnBjV2lsZGNhcmRzKHR4KVxuICAgIGlmICh0eD8uZnJvbSAmJiAhaXNIZXhTdHJpbmdPZkxlbmd0aCh0eD8uZnJvbSwgMjApICYmICFpc1dpbGRjYXJkKHR4Py5mcm9tKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5jYWxsOiBpbnZhbGlkICdmcm9tJyBhZGRyZXNzXCIpO1xuICAgIH1cbiAgICBpZiAodHg/LmdhcyAmJiAhTnVtYmVyLmlzSW50ZWdlcih0eC5nYXMpICYmICFpc0hleFN0cmluZ09mTGVuZ3RoKHR4LmdhcywgMzIpICYmICFpc1dpbGRjYXJkKHR4LmdhcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguY2FsbDogaW52YWxpZCAnZ2FzJyB2YWx1ZVwiKVxuICAgIH1cbiAgICBpZiAodHg/Lmdhc1ByaWNlICYmICFOdW1iZXIuaXNJbnRlZ2VyKHR4Lmdhc1ByaWNlKSAmJiAhaXNIZXhTdHJpbmdPZkxlbmd0aCh0eC5nYXNQcmljZSwgMzIpICYmICFpc1dpbGRjYXJkKHR4Lmdhc1ByaWNlKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5jYWxsOiBpbnZhbGlkICdnYXNQcmljZScgdmFsdWVcIilcbiAgICB9XG4gICAgaWYgKHR4Py52YWx1ZSAmJiAhTnVtYmVyLmlzSW50ZWdlcih0eC52YWx1ZSkgJiYgIWlzSGV4U3RyaW5nT2ZMZW5ndGgodHgudmFsdWUsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eC52YWx1ZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguY2FsbDogaW52YWxpZCB0cmFuc2FjdGlvbiAndmFsdWUnXCIpXG4gICAgfVxuICAgIGlmICh0eD8uZGF0YSAmJiAhaXNIZXhTdHJpbmcodHguZGF0YSkgJiYgIWlzV2lsZGNhcmQodHguZGF0YSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguY2FsbDogaW52YWxpZCB0cmFuc2FjdGlvbiAnZGF0YSdcIilcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWV0aG9kOiBcImV0aF9jYWxsXCIsIFxuICAgICAgICBwYXJhbXM6IFsgdHggXVxuICAgIH07XG59O1xuXG4vKipcbiAqIEdlbmVyYXRlcyBhbmQgcmV0dXJucyBhbiBlc3RpbWF0ZSBvZiBob3cgbXVjaCBnYXMgaXMgbmVjZXNzYXJ5IFxuICogdG8gYWxsb3cgdGhlIHRyYW5zYWN0aW9uIHRvIGNvbXBsZXRlLiBUaGUgdHJhbnNhY3Rpb24gd2lsbCBub3QgYmUgXG4gKiBhZGRlZCB0byB0aGUgYmxvY2tjaGFpbi4gTm90ZSB0aGF0IHRoZSBlc3RpbWF0ZSBtYXkgYmUgc2lnbmlmaWNhbnRseSBcbiAqIG1vcmUgdGhhbiB0aGUgYW1vdW50IG9mIGdhcyBhY3R1YWxseSB1c2VkIGJ5IHRoZSB0cmFuc2FjdGlvbiwgZm9yIGEgXG4gKiB2YXJpZXR5IG9mIHJlYXNvbnMgaW5jbHVkaW5nIEVWTSBtZWNoYW5pY3MgYW5kIG5vZGUgcGVyZm9ybWFuY2UuXG4gKiBAcGFyYW0gdHggVGhlIHRyYW5zYWN0aW9uIGNhbGwgb2JqZWN0LlxuICovXG5leHBvcnQgY29uc3QgZXN0aW1hdGVHYXMgPSAodHg6IHtcbiAgICBmcm9tPzogRXRoQWRkcmVzcyB8IFdpbGRjYXJkLFxuICAgIHRvOiBFdGhBZGRyZXNzIHwgV2lsZGNhcmQsXG4gICAgZ2FzPzogbnVtYmVyIHwgSGV4U3RyaW5nIHwgV2lsZGNhcmQsXG4gICAgZ2FzUHJpY2U/OiBudW1iZXIgfCBIZXhTdHJpbmcgfCBXaWxkY2FyZCxcbiAgICB2YWx1ZT86IG51bWJlciB8IEhleFN0cmluZyB8IFdpbGRjYXJkLFxuICAgIGRhdGE/OiBIZXhTdHJpbmcgfCBXaWxkY2FyZFxufSkgPT4ge1xuICAgIGNoZWNrUnBjV2lsZGNhcmRzKHR4KVxuICAgIGlmICh0eD8uZnJvbSAmJiAhaXNIZXhTdHJpbmdPZkxlbmd0aCh0eD8uZnJvbSwgMjApICYmICFpc1dpbGRjYXJkKHR4Py5mcm9tKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5lc3RpbWF0ZUdhczogaW52YWxpZCAnZnJvbScgYWRkcmVzc1wiKTtcbiAgICB9XG4gICAgaWYgKHR4Py5nYXMgJiYgIU51bWJlci5pc0ludGVnZXIodHguZ2FzKSAmJiAhaXNIZXhTdHJpbmdPZkxlbmd0aCh0eC5nYXMsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eC5nYXMpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmVzdGltYXRlR2FzOiBpbnZhbGlkICdnYXMnIHZhbHVlXCIpXG4gICAgfVxuICAgIGlmICh0eD8uZ2FzUHJpY2UgJiYgIU51bWJlci5pc0ludGVnZXIodHguZ2FzUHJpY2UpICYmICFpc0hleFN0cmluZ09mTGVuZ3RoKHR4Lmdhc1ByaWNlLCAzMikgJiYgIWlzV2lsZGNhcmQodHguZ2FzUHJpY2UpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmVzdGltYXRlR2FzOiBpbnZhbGlkICdnYXNQcmljZScgdmFsdWVcIilcbiAgICB9XG4gICAgaWYgKHR4Py52YWx1ZSAmJiAhTnVtYmVyLmlzSW50ZWdlcih0eC52YWx1ZSkgJiYgIWlzSGV4U3RyaW5nT2ZMZW5ndGgodHgudmFsdWUsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eC52YWx1ZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZXN0aW1hdGVHYXM6IGludmFsaWQgdHJhbnNhY3Rpb24gJ3ZhbHVlJ1wiKVxuICAgIH1cbiAgICBpZiAodHg/LmRhdGEgJiYgIWlzSGV4U3RyaW5nKHR4LmRhdGEpICYmICFpc1dpbGRjYXJkKHR4LmRhdGEpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmVzdGltYXRlR2FzOiBpbnZhbGlkIHRyYW5zYWN0aW9uICdkYXRhJ1wiKVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBtZXRob2Q6IFwiZXRoX2VzdGltYXRlR2FzXCIsIFxuICAgICAgICBwYXJhbXM6IFsgdHggXVxuICAgIH07XG59O1xuXG4vKipcbiAqIFJldHJpZXZlIHRoZSBiYWxhbmNlIG9mIHRoZSBhY2NvdW50IG9mIGdpdmVuIGFkZHJlc3MuXG4gKiBAcGFyYW0gYWRkcmVzcyBXZWIzIGFkZHJlc3Mgb24gcmVtb3RlIEVWTSBjaGFpbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEJhbGFuY2UgPSAoYWRkcmVzczogRXRoQWRkcmVzcyB8IFdpbGRjYXJkLCBibG9jaz86IEV0aEJsb2NrSGVhZCB8IFdpbGRjYXJkKSA9PiB7XG4gICAgY2hlY2tScGNXaWxkY2FyZHMoW2FkZHJlc3MsIGJsb2NrXSlcbiAgICBpZiAoIWlzSGV4U3RyaW5nT2ZMZW5ndGgoYWRkcmVzcywgMjApICYmICFpc1dpbGRjYXJkKGFkZHJlc3MpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldEJhbGFuY2U6IGludmFsaWQgV2ViMyBhZGRyZXNzIGZvcm1hdFwiKTtcbiAgICB9IFxuICAgIHJldHVybiB7XG4gICAgICAgIG1ldGhvZDogXCJldGhfZ2V0QmFsYW5jZVwiLCBcbiAgICAgICAgcGFyYW1zOiBbIGFkZHJlc3MsIGJsb2NrIF1cbiAgICB9XG59O1xuXG4vKipcbiAqIFJldHJpZXZlIGNvZGUgYXQgYSBnaXZlbiBhZGRyZXNzLlxuICogQHBhcmFtIGFkZHJlc3MgRXRoQWRkcmVzcyBmcm9tIHdoZXJlIHRvIGdldCB0aGUgY29kZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldENvZGUgPSAoYWRkcmVzczogRXRoQWRkcmVzcyB8IFdpbGRjYXJkKSA9PiB7XG4gICAgY2hlY2tScGNXaWxkY2FyZHMoYWRkcmVzcylcbiAgICBpZiAoIWlzSGV4U3RyaW5nT2ZMZW5ndGgoYWRkcmVzcywgMjApICYmICFpc1dpbGRjYXJkKGFkZHJlc3MpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldENvZGU6IGludmFsaWQgV2ViMyBhZGRyZXNzIGZvcm1hdFwiKTtcbiAgICB9IFxuICAgIHJldHVybiB7XG4gICAgICAgIG1ldGhvZDogXCJldGhfZ2V0Q29kZVwiLCBcbiAgICAgICAgcGFyYW1zOiBbIGFkZHJlc3MgXSxcbiAgICB9O1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZSBhbiBhcnJheSBvZiBhbGwgbG9ncyBtYXRjaGluZyBhIGdpdmVuIGZpbHRlciBvYmplY3QuXG4gKiBAcGFyYW0gZmlsdGVyIFRoZSBmaWx0ZXIgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldExvZ3MgPSAoZmlsdGVyOiB7XG4gICAgZnJvbUJsb2NrPzogRXRoQmxvY2tIZWFkLFxuICAgIHRvQmxvY2s/OiBFdGhCbG9ja0hlYWQsXG4gICAgYWRkcmVzcz86IEV0aEFkZHJlc3MgfCBFdGhBZGRyZXNzW10gfCBXaWxkY2FyZCxcbiAgICB0b3BpY3M/OiBCeXRlczMyW10sXG4gICAgYmxvY2tIYXNoPzogQnl0ZXMzMiB8IFdpbGRjYXJkLFxufSkgPT4ge1xuICAgIGNoZWNrUnBjV2lsZGNhcmRzKGZpbHRlcilcbiAgICBpZiAoZmlsdGVyPy5ibG9ja0hhc2ggJiYgKGZpbHRlcj8uZnJvbUJsb2NrIHx8IGZpbHRlcj8udG9CbG9jaykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0TG9nczogdW5jb21wbGlhbnQgdXNlIG9mICdibG9ja0hhc2gnXCIpXG4gICAgfVxuICAgIGlmIChmaWx0ZXI/LmZyb21CbG9jaykge1xuICAgICAgICBpZiAoIV9pc0Jsb2NrSGVhZChmaWx0ZXI/LmZyb21CbG9jaykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldExvZ3M6IGludmFsaWQgJ2Zyb21CbG9jaycgdmFsdWVcIik7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGZpbHRlcj8uZnJvbUJsb2NrID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgZmlsdGVyLmZyb21CbG9jayA9IGAweCR7KGZpbHRlcj8uZnJvbUJsb2NrIGFzIG51bWJlcikudG9TdHJpbmcoMTYpfWAgYXMgRXRoQmxvY2tIZWFkXG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZpbHRlcj8udG9CbG9jaykge1xuICAgICAgICBpZiAoIV9pc0Jsb2NrSGVhZChmaWx0ZXI/LnRvQmxvY2spKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5nZXRMb2dzOiBpbnZhbGlkICd0b0Jsb2NrJyB2YWx1ZVwiKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmlsdGVyPy50b0Jsb2NrID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgZmlsdGVyLnRvQmxvY2sgPSBgMHgkeyhmaWx0ZXI/LnRvQmxvY2sgYXMgbnVtYmVyKS50b1N0cmluZygxNil9YCBhcyBFdGhCbG9ja0hlYWRcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZmlsdGVyPy5ibG9ja0hhc2ggJiYgIWlzSGV4U3RyaW5nT2ZMZW5ndGgoZmlsdGVyLmJsb2NrSGFzaCwgMzIpICYmICFpc1dpbGRjYXJkKGZpbHRlci5ibG9ja0hhc2gpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldExvZ3M6IGludmFsaWQgJ2Jsb2NrSGFzaCcgdmFsdWVcIik7XG4gICAgfVxuICAgIGlmIChmaWx0ZXI/LnRvcGljcykge1xuICAgICAgICBmaWx0ZXIudG9waWNzLm1hcCgodmFsdWU6IEJ5dGVzMzIsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGlmICghaXNIZXhTdHJpbmdPZkxlbmd0aCh2YWx1ZSwgMzIpICYmICFpc1dpbGRjYXJkKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYHJwYy5ldGguZ2V0TG9nczogdG9waWMgIyR7aW5kZXh9OiBpbnZhbGlkIGhhc2hgKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBtZXRob2Q6IFwiZXRoX2dldExvZ3NcIiwgXG4gICAgICAgIHBhcmFtczogWyBmaWx0ZXIgXVxuICAgIH07XG59O1xuXG4vKipcbiAqIFJldHJpZXZlIGFuIGVzdGltYXRlIG9mIHRoZSBjdXJyZW50IHByaWNlIHBlciBnYXMgaW4gd2VpLiBcbiAqLyBcbmV4cG9ydCBjb25zdCBnYXNQcmljZSA9ICgpID0+ICh7IG1ldGhvZDogXCJldGhfZ2FzUHJpY2VcIiB9KTtcblxuLyoqXG4gKiBSZXRyaWV2ZSB0aGUgdmFsdWUgZnJvbSBhIHN0b3JhZ2UgcG9zaXRpb24gYXQgYSBnaXZlbiBhZGRyZXNzLlxuICogQHBhcmFtIGFkZHJlc3MgRXRoQWRkcmVzcyBvZiB0aGUgc3RvcmFnZS5cbiAqIEBwYXJhbSBvZmZzZXQgT2Zmc2V0IHdpdGhpbiBzdG9yYWdlIGFkZHJlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTdG9yYWdlQXQgPSAoYWRkcmVzczogRXRoQWRkcmVzcyB8IFdpbGRjYXJkLCBvZmZzZXQ6IEJ5dGVzMzIgfCBXaWxkY2FyZCkgPT4ge1xuICAgIGNoZWNrUnBjV2lsZGNhcmRzKFsgYWRkcmVzcywgb2Zmc2V0IF0pXG4gICAgaWYgKCFpc0hleFN0cmluZ09mTGVuZ3RoKGFkZHJlc3MsIDIwKSAmJiAhaXNXaWxkY2FyZChhZGRyZXNzKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5nZXRTdG9yYWdlQXQ6IGludmFsaWQgV2ViMyBhZGRyZXNzIGZvcm1hdFwiKTtcbiAgICB9IFxuICAgIGlmICghaXNIZXhTdHJpbmdPZkxlbmd0aChvZmZzZXQsIDMyKSAmJiAhaXNXaWxkY2FyZChvZmZzZXQpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldFN0b3JhZ2VBdDogaW52YWxpZCBzdG9yYWdlIG9mZnNldCB2YWx1ZVwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWV0aG9kOiBcImV0aF9nZXRTdG9yYWdlQXRcIiwgXG4gICAgICAgIHBhcmFtczogWyBhZGRyZXNzLCBvZmZzZXQgXSxcbiAgICB9O1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZSB0aGUgaW5mb3JtYXRpb24gYWJvdXQgYSByZW1vdGUgdHJhbnNhY3Rpb24gZ2l2ZW4gYSBibG9jayBoYXNoIGFuZCBhIHRyYW5zYWN0aW9uIGluZGV4LlxuICogQHBhcmFtIHR4SGFzaCBIYXNoIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRUcmFuc2FjdGlvbkJ5QmxvY2tIYXNoQW5kSW5kZXggPSAoYmxvY2tIYXNoOiBCeXRlczMyIHwgV2lsZGNhcmQsIHR4SW5kZXg6IG51bWJlciB8IEJ5dGVzMzIgfCBXaWxkY2FyZCkgPT4ge1xuICAgIGNoZWNrUnBjV2lsZGNhcmRzKFsgYmxvY2tIYXNoLCB0eEluZGV4IF0pXG4gICAgaWYgKCFpc0hleFN0cmluZ09mTGVuZ3RoKGJsb2NrSGFzaCwgMzIpICYmICFpc1dpbGRjYXJkKGJsb2NrSGFzaCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0VHJhbnNhY3Rpb25CeUJsb2NrSGFzaEFuZEluZGV4OiBpbnZhbGlkIGJsb2NrIGhhc2ggdmFsdWVcIik7XG4gICAgfVxuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcih0eEluZGV4KSAmJiAhaXNIZXhTdHJpbmdPZkxlbmd0aCh0eEluZGV4LCAzMikgJiYgIWlzV2lsZGNhcmQodHhJbmRleCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0VHJhbnNhY3Rpb25CeUJsb2NrSGFzaEFuZEluZGV4OiBpbnZhbGlkIHRyYW5zYWN0aW9uIGluZGV4IHZhbHVlXCIpXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIG1ldGhvZDogXCJldGhfZ2V0VHJhbnNhY3Rpb25CeUJsb2NrSGFzaEFuZEluZGV4XCIsIFxuICAgICAgICBwYXJhbXM6IFsgYmxvY2tIYXNoLCB0eEluZGV4IF1cbiAgICB9O1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZSB0aGUgaW5mb3JtYXRpb24gYWJvdXQgYSByZW1vdGUgdHJhbnNhY3Rpb24gZ2l2ZW4gYSBibG9jayBudW1iZXIgYW5kIGEgdHJhbnNhY3Rpb24gaW5kZXguXG4gKiBAcGFyYW0gdHhIYXNoIEhhc2ggb2YgdGhlIHJlbW90ZSB0cmFuc2FjdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFRyYW5zYWN0aW9uQnlCbG9ja051bWJlckFuZEluZGV4ID0gKFxuICAgIGJsb2NrTnVtYmVyOiBFdGhCbG9ja0hlYWQsXG4gICAgdHhJbmRleDogbnVtYmVyIHwgQnl0ZXMzMiB8IFdpbGRjYXJkXG4pID0+IHtcbiAgICBjaGVja1JwY1dpbGRjYXJkcyhbIGJsb2NrTnVtYmVyLCB0eEluZGV4IF0pXG4gICAgaWYgKCFfaXNCbG9ja0hlYWQoYmxvY2tOdW1iZXIpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldFRyYW5zYWN0aW9uQnlCbG9ja051bWJlckFuZEluZGV4OiBpbnZhbGlkIGJsb2NrIG51bWJlciB2YWx1ZVwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodHlwZW9mIGJsb2NrTnVtYmVyID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgYmxvY2tOdW1iZXIgPSBgMHgkeyhibG9ja051bWJlciBhcyBudW1iZXIpLnRvU3RyaW5nKDE2KX1gIGFzIEV0aEJsb2NrSGVhZFxuICAgICAgICB9XG4gICAgfVxuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcih0eEluZGV4KSAmJiAhaXNIZXhTdHJpbmdPZkxlbmd0aCh0eEluZGV4LCAzMikgJiYgIWlzV2lsZGNhcmQodHhJbmRleCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0VHJhbnNhY3Rpb25CeUJsb2NrTnVtYmVyQW5kSW5kZXg6IGludmFsaWQgdHJhbnNhY3Rpb24gaW5kZXggdmFsdWVcIilcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWV0aG9kOiBcImV0aF9nZXRUcmFuc2FjdGlvbkJ5QmxvY2tIYXNoQW5kSW5kZXhcIiwgXG4gICAgICAgIHBhcmFtczogWyBibG9ja051bWJlciwgdHhJbmRleCBdLFxuICAgIH07XG59O1xuXG4vKipcbiAqIFJldHJpZXZlIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBhIHJlbW90ZSB0cmFuc2FjdGlvbiBnaXZlbiBpdHMgdHJhbnNhY3Rpb24gaGFzaC5cbiAqIEBwYXJhbSB0eEhhc2ggSGFzaCBvZiB0aGUgcmVtb3RlIHRyYW5zYWN0aW9uLlxuICovXG5leHBvcnQgY29uc3QgZ2V0VHJhbnNhY3Rpb25CeUhhc2ggPSAodHhIYXNoOiBCeXRlczMyIHwgV2lsZGNhcmQpID0+IHtcbiAgICBjaGVja1JwY1dpbGRjYXJkcyh0eEhhc2gpXG4gICAgaWYgKCFpc0hleFN0cmluZ09mTGVuZ3RoKHR4SGFzaCwgMzIpICYmICFpc1dpbGRjYXJkKHR4SGFzaCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0VHJhbnNhY3Rpb25CeUhhc2g6IGludmFsaWQgdHJhbnNhY3Rpb24gaGFzaCB2YWx1ZVwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgXG4gICAgICAgIG1ldGhvZDogXCJldGhfZ2V0VHJhbnNhY3Rpb25CeUhhc2hcIiwgXG4gICAgICAgIHBhcmFtczogWyB0eEhhc2ggXSxcbiAgICB9O1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZSB0aGUgbnVtYmVyIG9mIHRyYW5zYWN0aW9ucyBzZW50IGZyb20gYW4gYWRkcmVzcy5cbiAqIEBwYXJhbSBhZGRyZXNzIEV0aEFkZHJlc3MgZnJvbSB3aGVyZSB0byBnZXQgdHJhbnNhY3Rpb24gY291bnQuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRUcmFuc2FjdGlvbkNvdW50ID0gKGFkZHJlc3M6IEV0aEFkZHJlc3MgfCBXaWxkY2FyZCkgPT4ge1xuICAgIGNoZWNrUnBjV2lsZGNhcmRzKGFkZHJlc3MpXG4gICAgaWYgKCFpc0hleFN0cmluZ09mTGVuZ3RoKGFkZHJlc3MsIDIwKSAmJiAhaXNXaWxkY2FyZChhZGRyZXNzKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5nZXRUcmFuc2FjdGlvbkNvdW50OiBpbnZhbGlkIFdlYjMgYWRkcmVzcyBmb3JtYXRcIik7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIG1ldGhvZDogXCJldGhfZ2V0VHJhbnNhY3Rpb25Db3VudFwiLCBcbiAgICAgICAgcGFyYW1zOiBbIGFkZHJlc3MgXSxcbiAgICB9O1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZSB0aGUgcmVjZWlwdCBvZiBhIHJlbW90ZSB0cmFuc2FjdGlvbiBnaXZlbiBpdHMgdHJhbnNhY3Rpb24gaGFzaC5cbiAqIEBwYXJhbSB0eEhhc2ggSGFzaCBvZiB0aGUgcmVtb3RlIHRyYW5zYWN0aW9uLlxuICovXG5leHBvcnQgY29uc3QgZ2V0VHJhbnNhY3Rpb25SZWNlaXB0ID0gKHR4SGFzaDogQnl0ZXMzMiB8IFdpbGRjYXJkKSA9PiB7XG4gICAgY2hlY2tScGNXaWxkY2FyZHModHhIYXNoKVxuICAgIGlmICghaXNIZXhTdHJpbmdPZkxlbmd0aCh0eEhhc2gsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eEhhc2gpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldFRyYW5zYWN0aW9uUmVjZWlwdDogaW52YWxpZCB0cmFuc2FjdGlvbiBoYXNoIHZhbHVlXCIpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBtZXRob2Q6IFwiZXRoX2dldFRyYW5zYWN0aW9uUmVjZWlwdFwiLCBcbiAgICAgICAgcGFyYW1zOiBbIHR4SGFzaCBdLFxuICAgIH07XG59O1xuXG4vKipcbiAqIEludm9rZSByZW1vdGUgY2FsbCB0cmFuc2FjdGlvbiwgb3IgcmVtb3RlIGNvbnRyYWN0IGNyZWF0aW9uLiBcbiAqIEBwYXJhbSBkYXRhIFRoZSBzaWduZWQgdHJhbnNhY3Rpb24gZGF0YS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlbmRSYXdUcmFuc2FjdGlvbiA9IChkYXRhOiBCeXRlcyB8IFdpbGRjYXJkKSA9PiB7XG4gICAgY2hlY2tScGNXaWxkY2FyZHMoZGF0YSlcbiAgICBpZiAoIWlzSGV4U3RyaW5nKGRhdGEpICYmICFpc1dpbGRjYXJkKGRhdGEpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLnNlbmRSYXdUcmFuc2FjdGlvbjogaW52YWxpZCBzaWduZWQgdHJhbnNhY3Rpb24gZGF0YVwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWV0aG9kOiBcImV0aF9zZW5kUmF3VHJhbnNhY3Rpb25cIiwgXG4gICAgICAgIHBhcmFtczogWyBkYXRhIF1cbiAgICB9O1xufTtcbiJdfQ==
@@ -36,4 +36,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.wit = exports.eth = void 0;
37
37
  exports.eth = __importStar(require("./eth"));
38
38
  exports.wit = __importStar(require("./wit"));
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3JhZG9uL2NjZHIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTRCO0FBQzVCLDZDQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGFzIGV0aCBmcm9tIFwiLi9ldGhcIlxyXG5leHBvcnQgKiBhcyB3aXQgZnJvbSBcIi4vd2l0XCJcclxuXHJcbmV4cG9ydCB0eXBlIEhleFN0cmluZ09mTGVuZ3RoPE1heD4gPSBzdHJpbmcgJiB7XHJcbiAgICBtYXg6IE1heDtcclxuICAgIHJlYWRvbmx5IEhleFN0cmluZ09mTGVuZ3RoOiB1bmlxdWUgc3ltYm9sXHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBIZXhTdHJpbmcgPSBzdHJpbmcgJiB7XHJcbiAgICByZWFkb25seSBIZXhTdHJpbmc6IHVuaXF1ZSBzeW1ib2xcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIEJ5dGVzMzIgPSBIZXhTdHJpbmdPZkxlbmd0aDw2ND47XHJcbmV4cG9ydCB0eXBlIEJ5dGVzID0gSGV4U3RyaW5nO1xyXG5leHBvcnQgdHlwZSBCbG9ja051bWJlciA9IG51bWJlciB8IEJ5dGVzMzI7XHJcbmV4cG9ydCB0eXBlIFdpbGRjYXJkID0gc3RyaW5nXHJcbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3JhZG9uL2NjZHIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTRCO0FBQzVCLDZDQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGFzIGV0aCBmcm9tIFwiLi9ldGhcIlxuZXhwb3J0ICogYXMgd2l0IGZyb20gXCIuL3dpdFwiXG5cbmV4cG9ydCB0eXBlIEhleFN0cmluZ09mTGVuZ3RoPE1heD4gPSBzdHJpbmcgJiB7XG4gICAgbWF4OiBNYXg7XG4gICAgcmVhZG9ubHkgSGV4U3RyaW5nT2ZMZW5ndGg6IHVuaXF1ZSBzeW1ib2xcbn07XG5cbmV4cG9ydCB0eXBlIEhleFN0cmluZyA9IHN0cmluZyAmIHtcbiAgICByZWFkb25seSBIZXhTdHJpbmc6IHVuaXF1ZSBzeW1ib2xcbn07XG5cbmV4cG9ydCB0eXBlIEJ5dGVzMzIgPSBIZXhTdHJpbmdPZkxlbmd0aDw2ND47XG5leHBvcnQgdHlwZSBCeXRlcyA9IEhleFN0cmluZztcbmV4cG9ydCB0eXBlIEJsb2NrTnVtYmVyID0gbnVtYmVyIHwgQnl0ZXMzMjtcbmV4cG9ydCB0eXBlIFdpbGRjYXJkID0gc3RyaW5nXG4iXX0=
@@ -47,4 +47,4 @@ const getValueTransfer = (hash, mode) => {
47
47
  };
48
48
  };
49
49
  exports.getValueTransfer = getValueTransfer;
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9yYWRvbi9jY2RyL3dpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBeUY7QUFPekY7OztHQUdHO0FBQ0ksTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUE4QixFQUFFLEVBQUU7SUFDekQsSUFBQSwyQkFBaUIsRUFBQyxPQUFPLENBQUMsQ0FBQTtJQUMxQixJQUNJLENBQUMsSUFBQSxvQkFBVSxFQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3BCLENBQUMsT0FBTyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQ2hHLEVBQ0gsQ0FBQztRQUNDLE1BQU0sSUFBSSxTQUFTLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsT0FBTztRQUNILE1BQU0sRUFBRSxhQUFhO1FBQ3JCLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUU7S0FDM0IsQ0FBQztBQUNOLENBQUMsQ0FBQztBQWJXLFFBQUEsVUFBVSxjQWFyQjtBQUVGOzs7R0FHRztBQUNJLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBMEIsRUFBRSxFQUFFO0lBQ3pELElBQUEsMkJBQWlCLEVBQUMsTUFBTSxDQUFDLENBQUE7SUFDekIsSUFBSSxDQUFDLElBQUEsNkJBQW1CLEVBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBQSxvQkFBVSxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDMUQsTUFBTSxJQUFJLFNBQVMsQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFDRCxPQUFPO1FBQ0gsTUFBTSxFQUFFLGdCQUFnQjtRQUN4QixNQUFNLEVBQUUsQ0FBRSxNQUFNLENBQUU7S0FDckIsQ0FBQztBQUNOLENBQUMsQ0FBQTtBQVRZLFFBQUEsY0FBYyxrQkFTMUI7QUFFRDs7O0dBR0c7QUFDSSxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBd0IsRUFBRSxJQUFvQyxFQUFFLEVBQUU7SUFDL0YsSUFBQSwyQkFBaUIsRUFBQyxJQUFJLENBQUMsQ0FBQTtJQUN2QixJQUFJLENBQUMsSUFBQSw2QkFBbUIsRUFBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFBLG9CQUFVLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN0RCxNQUFNLElBQUksU0FBUyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUNELE9BQU87UUFDSCxNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7S0FDekIsQ0FBQztBQUNOLENBQUMsQ0FBQTtBQVRZLFFBQUEsZ0JBQWdCLG9CQVM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNoZWNrUnBjV2lsZGNhcmRzLCBpc0hleFN0cmluZ09mTGVuZ3RoLCBpc1dpbGRjYXJkIH0gZnJvbSBcIi4uLy4uLy4uL2Jpbi9oZWxwZXJzXCJcclxuaW1wb3J0IHsgQnl0ZXMzMiwgV2lsZGNhcmQgfSBmcm9tIFwiLlwiO1xyXG5cclxuZXhwb3J0IHR5cGUgV2l0QWRkcmVzcyA9IHN0cmluZyAmIHtcclxuICAgIHJlYWRvbmx5IFdpdEFkZHJlc3M6IHVuaXF1ZSBzeW1ib2xcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHJpZXZlIHRoZSBiYWxhbmNlIGluICRuYW5vV0lUIG9mIHNvbWUgYWNjb3VudCBpbiBXaXRuZXQuXHJcbiAqIEBwYXJhbSBhZGRyZXNzIEFkZHJlc3Mgb2YgdGhlIGFjY291bnQgd2l0aGluIHRoZSBXaXRuZXQgYmxvY2tjaGFpbi5cclxuICovXHJcbmV4cG9ydCBjb25zdCBnZXRCYWxhbmNlID0gKGFkZHJlc3M6IFdpdEFkZHJlc3MgfCBXaWxkY2FyZCkgPT4ge1xyXG4gICAgY2hlY2tScGNXaWxkY2FyZHMoYWRkcmVzcylcclxuICAgIGlmIChcclxuICAgICAgICAhaXNXaWxkY2FyZChhZGRyZXNzKSAmJiAoXHJcbiAgICAgICAgICAgICFhZGRyZXNzIHx8IHR5cGVvZiBhZGRyZXNzICE9PSBcInN0cmluZ1wiIHx8IGFkZHJlc3MubGVuZ3RoICE9IDQzIHx8ICFhZGRyZXNzLnN0YXJ0c1dpdGgoXCJ3aXRcIilcclxuICAgICAgICApIFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEV2YWxFcnJvcihcInJwYy53aXQuZ2V0QmFsYW5jZTogaW52YWxpZCBhZGRyZXNzXCIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBtZXRob2Q6IFwiZ2V0QmFsYW5jZTJcIiwgXHJcbiAgICAgICAgcGFyYW1zOiB7IHBraDogYWRkcmVzcyB9LFxyXG4gICAgfTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXRyaWV2ZSBkZXRhaWxlZCBpbmZvcm1hdGlub24gYWJvdXQgYSBtaW5lZCB0cmFuc2FjdGlvbiBpbiB0aGUgV2l0bmV0IGJsb2NrY2hhaW4uXHJcbiAqIEBwYXJhbSB0eEhhc2ggVGhlIGhhc2ggb2YgdGhlIHRyYW5zYWN0aW9uIHRvIHJldHJpZXZlLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGdldFRyYW5zYWN0aW9uID0gKHR4SGFzaDogQnl0ZXMzMiB8IFdpbGRjYXJkKSA9PiB7XHJcbiAgICBjaGVja1JwY1dpbGRjYXJkcyh0eEhhc2gpXHJcbiAgICBpZiAoIWlzSGV4U3RyaW5nT2ZMZW5ndGgodHhIYXNoLCAzMikgJiYgIWlzV2lsZGNhcmQodHhIYXNoKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFdmFsRXJyb3IoXCJycGMud2l0LmdldFRyYW5zYWN0aW9uOiBpbnZhbGlkIHRyYW5zYWN0aW9uIGhhc2ggdmFsdWVcIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIG1ldGhvZDogXCJnZXRUcmFuc2FjdGlvblwiLCBcclxuICAgICAgICBwYXJhbXM6IFsgdHhIYXNoIF1cclxuICAgIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXRyaWV2ZSBkZXRhaWxlZCBpbmZvcm1hdGlub24gYWJvdXQgYSBtaW5lZCB0cmFuc2FjdGlvbiBpbiB0aGUgV2l0bmV0IGJsb2NrY2hhaW4uXHJcbiAqIEBwYXJhbSB0eEhhc2ggVGhlIGhhc2ggb2YgdGhlIHRyYW5zYWN0aW9uIHRvIHJldHJpZXZlLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGdldFZhbHVlVHJhbnNmZXIgPSAoaGFzaDogQnl0ZXMzMiB8IFdpbGRjYXJkLCBtb2RlOiBcImV0aGVyZWFsXCIgfCBcInNpbXBsZVwiIHwgXCJmdWxsXCIpID0+IHtcclxuICAgIGNoZWNrUnBjV2lsZGNhcmRzKGhhc2gpXHJcbiAgICBpZiAoIWlzSGV4U3RyaW5nT2ZMZW5ndGgoaGFzaCwgMzIpICYmICFpc1dpbGRjYXJkKGhhc2gpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEV2YWxFcnJvcihcInJwYy53aXQuZ2V0VmFsdWVUcmFuc2ZlcjogaW52YWxpZCB0cmFuc2FjdGlvbiBoYXNoIHZhbHVlXCIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBtZXRob2Q6IFwiZ2V0VmFsdWVUcmFuc2ZlclwiLCBcclxuICAgICAgICBwYXJhbXM6IHsgaGFzaCwgbW9kZSB9XHJcbiAgICB9O1xyXG59Il19
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9yYWRvbi9jY2RyL3dpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBeUY7QUFPekY7OztHQUdHO0FBQ0ksTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUE4QixFQUFFLEVBQUU7SUFDekQsSUFBQSwyQkFBaUIsRUFBQyxPQUFPLENBQUMsQ0FBQTtJQUMxQixJQUNJLENBQUMsSUFBQSxvQkFBVSxFQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3BCLENBQUMsT0FBTyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQ2hHLEVBQ0gsQ0FBQztRQUNDLE1BQU0sSUFBSSxTQUFTLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsT0FBTztRQUNILE1BQU0sRUFBRSxhQUFhO1FBQ3JCLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUU7S0FDM0IsQ0FBQztBQUNOLENBQUMsQ0FBQztBQWJXLFFBQUEsVUFBVSxjQWFyQjtBQUVGOzs7R0FHRztBQUNJLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBMEIsRUFBRSxFQUFFO0lBQ3pELElBQUEsMkJBQWlCLEVBQUMsTUFBTSxDQUFDLENBQUE7SUFDekIsSUFBSSxDQUFDLElBQUEsNkJBQW1CLEVBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBQSxvQkFBVSxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDMUQsTUFBTSxJQUFJLFNBQVMsQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFDRCxPQUFPO1FBQ0gsTUFBTSxFQUFFLGdCQUFnQjtRQUN4QixNQUFNLEVBQUUsQ0FBRSxNQUFNLENBQUU7S0FDckIsQ0FBQztBQUNOLENBQUMsQ0FBQTtBQVRZLFFBQUEsY0FBYyxrQkFTMUI7QUFFRDs7O0dBR0c7QUFDSSxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBd0IsRUFBRSxJQUFvQyxFQUFFLEVBQUU7SUFDL0YsSUFBQSwyQkFBaUIsRUFBQyxJQUFJLENBQUMsQ0FBQTtJQUN2QixJQUFJLENBQUMsSUFBQSw2QkFBbUIsRUFBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFBLG9CQUFVLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN0RCxNQUFNLElBQUksU0FBUyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUNELE9BQU87UUFDSCxNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7S0FDekIsQ0FBQztBQUNOLENBQUMsQ0FBQTtBQVRZLFFBQUEsZ0JBQWdCLG9CQVM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNoZWNrUnBjV2lsZGNhcmRzLCBpc0hleFN0cmluZ09mTGVuZ3RoLCBpc1dpbGRjYXJkIH0gZnJvbSBcIi4uLy4uLy4uL2Jpbi9oZWxwZXJzXCJcbmltcG9ydCB7IEJ5dGVzMzIsIFdpbGRjYXJkIH0gZnJvbSBcIi5cIjtcblxuZXhwb3J0IHR5cGUgV2l0QWRkcmVzcyA9IHN0cmluZyAmIHtcbiAgICByZWFkb25seSBXaXRBZGRyZXNzOiB1bmlxdWUgc3ltYm9sXG59XG5cbi8qKlxuICogUmV0cmlldmUgdGhlIGJhbGFuY2UgaW4gJG5hbm9XSVQgb2Ygc29tZSBhY2NvdW50IGluIFdpdG5ldC5cbiAqIEBwYXJhbSBhZGRyZXNzIEFkZHJlc3Mgb2YgdGhlIGFjY291bnQgd2l0aGluIHRoZSBXaXRuZXQgYmxvY2tjaGFpbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEJhbGFuY2UgPSAoYWRkcmVzczogV2l0QWRkcmVzcyB8IFdpbGRjYXJkKSA9PiB7XG4gICAgY2hlY2tScGNXaWxkY2FyZHMoYWRkcmVzcylcbiAgICBpZiAoXG4gICAgICAgICFpc1dpbGRjYXJkKGFkZHJlc3MpICYmIChcbiAgICAgICAgICAgICFhZGRyZXNzIHx8IHR5cGVvZiBhZGRyZXNzICE9PSBcInN0cmluZ1wiIHx8IGFkZHJlc3MubGVuZ3RoICE9IDQzIHx8ICFhZGRyZXNzLnN0YXJ0c1dpdGgoXCJ3aXRcIilcbiAgICAgICAgKSBcbiAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEV2YWxFcnJvcihcInJwYy53aXQuZ2V0QmFsYW5jZTogaW52YWxpZCBhZGRyZXNzXCIpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBtZXRob2Q6IFwiZ2V0QmFsYW5jZTJcIiwgXG4gICAgICAgIHBhcmFtczogeyBwa2g6IGFkZHJlc3MgfSxcbiAgICB9O1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZSBkZXRhaWxlZCBpbmZvcm1hdGlub24gYWJvdXQgYSBtaW5lZCB0cmFuc2FjdGlvbiBpbiB0aGUgV2l0bmV0IGJsb2NrY2hhaW4uXG4gKiBAcGFyYW0gdHhIYXNoIFRoZSBoYXNoIG9mIHRoZSB0cmFuc2FjdGlvbiB0byByZXRyaWV2ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFRyYW5zYWN0aW9uID0gKHR4SGFzaDogQnl0ZXMzMiB8IFdpbGRjYXJkKSA9PiB7XG4gICAgY2hlY2tScGNXaWxkY2FyZHModHhIYXNoKVxuICAgIGlmICghaXNIZXhTdHJpbmdPZkxlbmd0aCh0eEhhc2gsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eEhhc2gpKSB7XG4gICAgICAgIHRocm93IG5ldyBFdmFsRXJyb3IoXCJycGMud2l0LmdldFRyYW5zYWN0aW9uOiBpbnZhbGlkIHRyYW5zYWN0aW9uIGhhc2ggdmFsdWVcIik7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIG1ldGhvZDogXCJnZXRUcmFuc2FjdGlvblwiLCBcbiAgICAgICAgcGFyYW1zOiBbIHR4SGFzaCBdXG4gICAgfTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZSBkZXRhaWxlZCBpbmZvcm1hdGlub24gYWJvdXQgYSBtaW5lZCB0cmFuc2FjdGlvbiBpbiB0aGUgV2l0bmV0IGJsb2NrY2hhaW4uXG4gKiBAcGFyYW0gdHhIYXNoIFRoZSBoYXNoIG9mIHRoZSB0cmFuc2FjdGlvbiB0byByZXRyaWV2ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFZhbHVlVHJhbnNmZXIgPSAoaGFzaDogQnl0ZXMzMiB8IFdpbGRjYXJkLCBtb2RlOiBcImV0aGVyZWFsXCIgfCBcInNpbXBsZVwiIHwgXCJmdWxsXCIpID0+IHtcbiAgICBjaGVja1JwY1dpbGRjYXJkcyhoYXNoKVxuICAgIGlmICghaXNIZXhTdHJpbmdPZkxlbmd0aChoYXNoLCAzMikgJiYgIWlzV2lsZGNhcmQoaGFzaCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV2YWxFcnJvcihcInJwYy53aXQuZ2V0VmFsdWVUcmFuc2ZlcjogaW52YWxpZCB0cmFuc2FjdGlvbiBoYXNoIHZhbHVlXCIpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBtZXRob2Q6IFwiZ2V0VmFsdWVUcmFuc2ZlclwiLCBcbiAgICAgICAgcGFyYW1zOiB7IGhhc2gsIG1vZGUgfVxuICAgIH07XG59Il19
@@ -42,4 +42,4 @@ class RadonFilter {
42
42
  exports.RadonFilter = RadonFilter;
43
43
  function Mode() { return new RadonFilter(Opcodes.Mode); }
44
44
  function Stdev(stdev) { return new RadonFilter(Opcodes.StandardDeviation, stdev); }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcmFkb24vZmlsdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0Q0Esb0JBQWlFO0FBQ2pFLHNCQUFtRztBQTdDbkcsK0JBQTJDO0FBRTNDLElBQVksT0FHWDtBQUhELFdBQVksT0FBTztJQUNmLHFDQUFXLENBQUE7SUFDWCwrREFBd0IsQ0FBQTtBQUM1QixDQUFDLEVBSFcsT0FBTyx1QkFBUCxPQUFPLFFBR2xCO0FBRUQsTUFBYSxXQUFXO0lBS3BCLFlBQVksTUFBZSxFQUFFLElBQVU7UUFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDbEQsUUFBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2pCLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sYUFBYSxDQUFDO29CQUN4QyxLQUFLLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8saUJBQWlCLElBQUksR0FBRyxDQUFBO2dCQUNuRSxDQUFDO1lBQ0wsQ0FBQyxFQUFDLENBQUMsQ0FBQTtJQUNQLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBa0I7UUFDNUIsTUFBTSxJQUFJLEdBQVE7WUFDZCxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTTtTQUNwRCxDQUFBO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFBLGFBQVUsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUN4RSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFVBQVU7UUFDYixNQUFNLFFBQVEsR0FBUTtZQUNsQixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDbEIsQ0FBQTtRQUNELElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osUUFBUSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUEsYUFBVSxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ3JELENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQTtJQUNuQixDQUFDO0NBQ0o7QUFuQ0Qsa0NBbUNDO0FBRUQsU0FBZ0IsSUFBSSxLQUFNLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRSxTQUFnQixLQUFLLENBQUUsS0FBYSxJQUFJLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuY29kZSBhcyBjYm9yRW5jb2RlIH0gZnJvbSBcImNib3JcIlxyXG5cclxuZXhwb3J0IGVudW0gT3Bjb2RlcyB7XHJcbiAgICBNb2RlID0gMHgwOCxcclxuICAgIFN0YW5kYXJkRGV2aWF0aW9uID0gMHgwNSxcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJhZG9uRmlsdGVyIHtcclxuXHJcbiAgICByZWFkb25seSBvcGNvZGU6IE9wY29kZXM7XHJcbiAgICByZWFkb25seSBhcmdzPzogYW55O1xyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3RvcihvcGNvZGU6IE9wY29kZXMsIGFyZ3M/OiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9wY29kZSA9IG9wY29kZVxyXG4gICAgICAgIHRoaXMuYXJncyA9IGFyZ3NcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgXCJ0b1N0cmluZ1wiLCB7IHZhbHVlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHN3aXRjaCh0aGlzLm9wY29kZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBPcGNvZGVzLk1vZGU6IHJldHVybiBcIkNsYXNzKG1vZGUpXCI7XHJcbiAgICAgICAgICAgICAgICBjYXNlIE9wY29kZXMuU3RhbmRhcmREZXZpYXRpb246IHJldHVybiBgQ2xhc3Moc3RkZXYgPSAke2FyZ3N9KWBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH19KVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b0pTT04oaHVtYW5pemU/OiBib29sZWFuKTogYW55IHtcclxuICAgICAgICBjb25zdCBqc29uOiBhbnkgPSB7XHJcbiAgICAgICAgICAgIG9wOiBodW1hbml6ZSA/IE9wY29kZXNbdGhpcy5vcGNvZGVdIDogdGhpcy5vcGNvZGUsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmFyZ3MpIHtcclxuICAgICAgICAgICAganNvbi5hcmdzID0gaHVtYW5pemUgPyB0aGlzLmFyZ3MgOiBBcnJheS5mcm9tKGNib3JFbmNvZGUodGhpcy5hcmdzKSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpzb247XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHB1YmxpYyB0b1Byb3RvYnVmKCk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgcHJvdG9idWY6IGFueSA9IHtcclxuICAgICAgICAgICAgb3A6IHRoaXMub3Bjb2RlLFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5hcmdzKSB7XHJcbiAgICAgICAgICAgIHByb3RvYnVmLmFyZ3MgPSBBcnJheS5mcm9tKGNib3JFbmNvZGUodGhpcy5hcmdzKSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHByb3RvYnVmXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBNb2RlICgpIHsgcmV0dXJuIG5ldyBSYWRvbkZpbHRlcihPcGNvZGVzLk1vZGUpOyB9XHJcbmV4cG9ydCBmdW5jdGlvbiBTdGRldiAoc3RkZXY6IG51bWJlcikgeyByZXR1cm4gbmV3IFJhZG9uRmlsdGVyKE9wY29kZXMuU3RhbmRhcmREZXZpYXRpb24sIHN0ZGV2KTsgfVxyXG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcmFkb24vZmlsdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0Q0Esb0JBQWlFO0FBQ2pFLHNCQUFtRztBQTdDbkcsK0JBQTJDO0FBRTNDLElBQVksT0FHWDtBQUhELFdBQVksT0FBTztJQUNmLHFDQUFXLENBQUE7SUFDWCwrREFBd0IsQ0FBQTtBQUM1QixDQUFDLEVBSFcsT0FBTyx1QkFBUCxPQUFPLFFBR2xCO0FBRUQsTUFBYSxXQUFXO0lBS3BCLFlBQVksTUFBZSxFQUFFLElBQVU7UUFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDbEQsUUFBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2pCLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sYUFBYSxDQUFDO29CQUN4QyxLQUFLLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8saUJBQWlCLElBQUksR0FBRyxDQUFBO2dCQUNuRSxDQUFDO1lBQ0wsQ0FBQyxFQUFDLENBQUMsQ0FBQTtJQUNQLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBa0I7UUFDNUIsTUFBTSxJQUFJLEdBQVE7WUFDZCxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTTtTQUNwRCxDQUFBO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFBLGFBQVUsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUN4RSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFVBQVU7UUFDYixNQUFNLFFBQVEsR0FBUTtZQUNsQixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDbEIsQ0FBQTtRQUNELElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osUUFBUSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUEsYUFBVSxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ3JELENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQTtJQUNuQixDQUFDO0NBQ0o7QUFuQ0Qsa0NBbUNDO0FBRUQsU0FBZ0IsSUFBSSxLQUFNLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRSxTQUFnQixLQUFLLENBQUUsS0FBYSxJQUFJLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuY29kZSBhcyBjYm9yRW5jb2RlIH0gZnJvbSBcImNib3JcIlxuXG5leHBvcnQgZW51bSBPcGNvZGVzIHtcbiAgICBNb2RlID0gMHgwOCxcbiAgICBTdGFuZGFyZERldmlhdGlvbiA9IDB4MDUsXG59XG5cbmV4cG9ydCBjbGFzcyBSYWRvbkZpbHRlciB7XG5cbiAgICByZWFkb25seSBvcGNvZGU6IE9wY29kZXM7XG4gICAgcmVhZG9ubHkgYXJncz86IGFueTtcbiAgICBcbiAgICBjb25zdHJ1Y3RvcihvcGNvZGU6IE9wY29kZXMsIGFyZ3M/OiBhbnkpIHtcbiAgICAgICAgdGhpcy5vcGNvZGUgPSBvcGNvZGVcbiAgICAgICAgdGhpcy5hcmdzID0gYXJnc1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgXCJ0b1N0cmluZ1wiLCB7IHZhbHVlOiAoKSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2godGhpcy5vcGNvZGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIE9wY29kZXMuTW9kZTogcmV0dXJuIFwiQ2xhc3MobW9kZSlcIjtcbiAgICAgICAgICAgICAgICBjYXNlIE9wY29kZXMuU3RhbmRhcmREZXZpYXRpb246IHJldHVybiBgQ2xhc3Moc3RkZXYgPSAke2FyZ3N9KWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfX0pXG4gICAgfVxuXG4gICAgcHVibGljIHRvSlNPTihodW1hbml6ZT86IGJvb2xlYW4pOiBhbnkge1xuICAgICAgICBjb25zdCBqc29uOiBhbnkgPSB7XG4gICAgICAgICAgICBvcDogaHVtYW5pemUgPyBPcGNvZGVzW3RoaXMub3Bjb2RlXSA6IHRoaXMub3Bjb2RlLFxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmFyZ3MpIHtcbiAgICAgICAgICAgIGpzb24uYXJncyA9IGh1bWFuaXplID8gdGhpcy5hcmdzIDogQXJyYXkuZnJvbShjYm9yRW5jb2RlKHRoaXMuYXJncykpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGpzb247XG4gICAgfVxuICAgIFxuICAgIHB1YmxpYyB0b1Byb3RvYnVmKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IHByb3RvYnVmOiBhbnkgPSB7XG4gICAgICAgICAgICBvcDogdGhpcy5vcGNvZGUsXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXJncykge1xuICAgICAgICAgICAgcHJvdG9idWYuYXJncyA9IEFycmF5LmZyb20oY2JvckVuY29kZSh0aGlzLmFyZ3MpKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcm90b2J1ZlxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE1vZGUgKCkgeyByZXR1cm4gbmV3IFJhZG9uRmlsdGVyKE9wY29kZXMuTW9kZSk7IH1cbmV4cG9ydCBmdW5jdGlvbiBTdGRldiAoc3RkZXY6IG51bWJlcikgeyByZXR1cm4gbmV3IFJhZG9uRmlsdGVyKE9wY29kZXMuU3RhbmRhcmREZXZpYXRpb24sIHN0ZGV2KTsgfVxuIl19