@turnkey/react-wallet-kit 2.7.0 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/dist/_virtual/_rollupPluginBabelHelpers.mjs +10 -1
  2. package/dist/_virtual/_rollupPluginBabelHelpers.mjs.map +1 -1
  3. package/dist/components/auth/Action.d.ts +1 -0
  4. package/dist/components/auth/Action.d.ts.map +1 -1
  5. package/dist/components/auth/Action.js +10 -3
  6. package/dist/components/auth/Action.js.map +1 -1
  7. package/dist/components/auth/Action.mjs +10 -3
  8. package/dist/components/auth/Action.mjs.map +1 -1
  9. package/dist/components/auth/wallet/DesktopWalletConnectScreen.d.ts +2 -0
  10. package/dist/components/auth/wallet/DesktopWalletConnectScreen.d.ts.map +1 -1
  11. package/dist/components/auth/wallet/DesktopWalletConnectScreen.js +7 -4
  12. package/dist/components/auth/wallet/DesktopWalletConnectScreen.js.map +1 -1
  13. package/dist/components/auth/wallet/DesktopWalletConnectScreen.mjs +22 -12
  14. package/dist/components/auth/wallet/DesktopWalletConnectScreen.mjs.map +1 -1
  15. package/dist/components/auth/wallet/ExternalWalletChainSelector.d.ts.map +1 -1
  16. package/dist/components/auth/wallet/ExternalWalletChainSelector.js +2 -1
  17. package/dist/components/auth/wallet/ExternalWalletChainSelector.js.map +1 -1
  18. package/dist/components/auth/wallet/ExternalWalletChainSelector.mjs +2 -2
  19. package/dist/components/auth/wallet/ExternalWalletChainSelector.mjs.map +1 -1
  20. package/dist/components/auth/wallet/MobileWalletConnectScreen.d.ts +1 -0
  21. package/dist/components/auth/wallet/MobileWalletConnectScreen.d.ts.map +1 -1
  22. package/dist/components/auth/wallet/MobileWalletConnectScreen.js +3 -1
  23. package/dist/components/auth/wallet/MobileWalletConnectScreen.js.map +1 -1
  24. package/dist/components/auth/wallet/MobileWalletConnectScreen.mjs +16 -8
  25. package/dist/components/auth/wallet/MobileWalletConnectScreen.mjs.map +1 -1
  26. package/dist/components/auth/wallet/ShowAllWalletsScreen.d.ts +2 -1
  27. package/dist/components/auth/wallet/ShowAllWalletsScreen.d.ts.map +1 -1
  28. package/dist/components/auth/wallet/ShowAllWalletsScreen.js +8 -3
  29. package/dist/components/auth/wallet/ShowAllWalletsScreen.js.map +1 -1
  30. package/dist/components/auth/wallet/ShowAllWalletsScreen.mjs +8 -3
  31. package/dist/components/auth/wallet/ShowAllWalletsScreen.mjs.map +1 -1
  32. package/dist/components/design/Success.d.ts +1 -1
  33. package/dist/components/design/Success.d.ts.map +1 -1
  34. package/dist/components/design/Success.js +2 -2
  35. package/dist/components/design/Success.js.map +1 -1
  36. package/dist/components/design/Success.mjs +2 -2
  37. package/dist/components/design/Success.mjs.map +1 -1
  38. package/dist/components/design/Svg.d.ts +1 -0
  39. package/dist/components/design/Svg.d.ts.map +1 -1
  40. package/dist/components/design/Svg.js +32 -12
  41. package/dist/components/design/Svg.js.map +1 -1
  42. package/dist/components/design/Svg.mjs +32 -13
  43. package/dist/components/design/Svg.mjs.map +1 -1
  44. package/dist/components/design/TabNav.d.ts +13 -0
  45. package/dist/components/design/TabNav.d.ts.map +1 -0
  46. package/dist/components/design/TabNav.js +64 -0
  47. package/dist/components/design/TabNav.js.map +1 -0
  48. package/dist/components/design/TabNav.mjs +81 -0
  49. package/dist/components/design/TabNav.mjs.map +1 -0
  50. package/dist/components/funding/CryptoAmountInput.d.ts +11 -0
  51. package/dist/components/funding/CryptoAmountInput.d.ts.map +1 -0
  52. package/dist/components/funding/CryptoAmountInput.js +82 -0
  53. package/dist/components/funding/CryptoAmountInput.js.map +1 -0
  54. package/dist/components/funding/CryptoAmountInput.mjs +87 -0
  55. package/dist/components/funding/CryptoAmountInput.mjs.map +1 -0
  56. package/dist/components/funding/CurrencyDropdown.d.ts +8 -0
  57. package/dist/components/funding/CurrencyDropdown.d.ts.map +1 -0
  58. package/dist/components/funding/CurrencyDropdown.js +132 -0
  59. package/dist/components/funding/CurrencyDropdown.js.map +1 -0
  60. package/dist/components/funding/CurrencyDropdown.mjs +132 -0
  61. package/dist/components/funding/CurrencyDropdown.mjs.map +1 -0
  62. package/dist/components/funding/FiatAmountInput.d.ts +11 -0
  63. package/dist/components/funding/FiatAmountInput.d.ts.map +1 -0
  64. package/dist/components/funding/FiatAmountInput.js +94 -0
  65. package/dist/components/funding/FiatAmountInput.js.map +1 -0
  66. package/dist/components/funding/FiatAmountInput.mjs +105 -0
  67. package/dist/components/funding/FiatAmountInput.mjs.map +1 -0
  68. package/dist/components/funding/OffRamp.d.ts +3 -0
  69. package/dist/components/funding/OffRamp.d.ts.map +1 -0
  70. package/dist/components/funding/OffRamp.js +31 -0
  71. package/dist/components/funding/OffRamp.js.map +1 -0
  72. package/dist/components/funding/OffRamp.mjs +30 -0
  73. package/dist/components/funding/OffRamp.mjs.map +1 -0
  74. package/dist/components/funding/OffRampAmount.d.ts +22 -0
  75. package/dist/components/funding/OffRampAmount.d.ts.map +1 -0
  76. package/dist/components/funding/OffRampAmount.js +304 -0
  77. package/dist/components/funding/OffRampAmount.js.map +1 -0
  78. package/dist/components/funding/OffRampAmount.mjs +376 -0
  79. package/dist/components/funding/OffRampAmount.mjs.map +1 -0
  80. package/dist/components/funding/OffRampDeposit.d.ts +22 -0
  81. package/dist/components/funding/OffRampDeposit.d.ts.map +1 -0
  82. package/dist/components/funding/OffRampDeposit.js +455 -0
  83. package/dist/components/funding/OffRampDeposit.js.map +1 -0
  84. package/dist/components/funding/OffRampDeposit.mjs +551 -0
  85. package/dist/components/funding/OffRampDeposit.mjs.map +1 -0
  86. package/dist/components/funding/OffRampReturn.d.ts +2 -0
  87. package/dist/components/funding/OffRampReturn.d.ts.map +1 -0
  88. package/dist/components/funding/OffRampReturn.js +144 -0
  89. package/dist/components/funding/OffRampReturn.js.map +1 -0
  90. package/dist/components/funding/OffRampReturn.mjs +146 -0
  91. package/dist/components/funding/OffRampReturn.mjs.map +1 -0
  92. package/dist/components/funding/OnRamp.d.ts +7 -0
  93. package/dist/components/funding/OnRamp.d.ts.map +1 -0
  94. package/dist/components/funding/OnRamp.js +64 -0
  95. package/dist/components/funding/OnRamp.js.map +1 -0
  96. package/dist/components/funding/OnRamp.mjs +58 -0
  97. package/dist/components/funding/OnRamp.mjs.map +1 -0
  98. package/dist/components/funding/OnRampAmount.d.ts +21 -0
  99. package/dist/components/funding/OnRampAmount.d.ts.map +1 -0
  100. package/dist/components/funding/OnRampAmount.js +229 -0
  101. package/dist/components/funding/OnRampAmount.js.map +1 -0
  102. package/dist/components/funding/OnRampAmount.mjs +312 -0
  103. package/dist/components/funding/OnRampAmount.mjs.map +1 -0
  104. package/dist/components/funding/OnRampCash.d.ts +3 -0
  105. package/dist/components/funding/OnRampCash.d.ts.map +1 -0
  106. package/dist/components/funding/OnRampCash.js +26 -0
  107. package/dist/components/funding/OnRampCash.js.map +1 -0
  108. package/dist/components/funding/OnRampCash.mjs +25 -0
  109. package/dist/components/funding/OnRampCash.mjs.map +1 -0
  110. package/dist/components/funding/OnRampCrypto.d.ts +11 -0
  111. package/dist/components/funding/OnRampCrypto.d.ts.map +1 -0
  112. package/dist/components/funding/OnRampCrypto.js +126 -0
  113. package/dist/components/funding/OnRampCrypto.js.map +1 -0
  114. package/dist/components/funding/OnRampCrypto.mjs +148 -0
  115. package/dist/components/funding/OnRampCrypto.mjs.map +1 -0
  116. package/dist/components/funding/OnRampCryptoSend.d.ts +15 -0
  117. package/dist/components/funding/OnRampCryptoSend.d.ts.map +1 -0
  118. package/dist/components/funding/OnRampCryptoSend.js +251 -0
  119. package/dist/components/funding/OnRampCryptoSend.js.map +1 -0
  120. package/dist/components/funding/OnRampCryptoSend.mjs +323 -0
  121. package/dist/components/funding/OnRampCryptoSend.mjs.map +1 -0
  122. package/dist/components/funding/OnRampCryptoStatus.d.ts +14 -0
  123. package/dist/components/funding/OnRampCryptoStatus.d.ts.map +1 -0
  124. package/dist/components/funding/OnRampCryptoStatus.js +153 -0
  125. package/dist/components/funding/OnRampCryptoStatus.js.map +1 -0
  126. package/dist/components/funding/OnRampCryptoStatus.mjs +272 -0
  127. package/dist/components/funding/OnRampCryptoStatus.mjs.map +1 -0
  128. package/dist/components/funding/OnRampExternalAccountSelector.d.ts +11 -0
  129. package/dist/components/funding/OnRampExternalAccountSelector.d.ts.map +1 -0
  130. package/dist/components/funding/OnRampExternalAccountSelector.js +95 -0
  131. package/dist/components/funding/OnRampExternalAccountSelector.js.map +1 -0
  132. package/dist/components/funding/OnRampExternalAccountSelector.mjs +109 -0
  133. package/dist/components/funding/OnRampExternalAccountSelector.mjs.map +1 -0
  134. package/dist/components/funding/OnRampExternalWallet.d.ts +12 -0
  135. package/dist/components/funding/OnRampExternalWallet.d.ts.map +1 -0
  136. package/dist/components/funding/OnRampExternalWallet.js +218 -0
  137. package/dist/components/funding/OnRampExternalWallet.js.map +1 -0
  138. package/dist/components/funding/OnRampExternalWallet.mjs +303 -0
  139. package/dist/components/funding/OnRampExternalWallet.mjs.map +1 -0
  140. package/dist/components/funding/OnRampStatus.d.ts +15 -0
  141. package/dist/components/funding/OnRampStatus.d.ts.map +1 -0
  142. package/dist/components/funding/OnRampStatus.js +114 -0
  143. package/dist/components/funding/OnRampStatus.js.map +1 -0
  144. package/dist/components/funding/OnRampStatus.mjs +166 -0
  145. package/dist/components/funding/OnRampStatus.mjs.map +1 -0
  146. package/dist/components/funding/PaymentMethods.d.ts +35 -0
  147. package/dist/components/funding/PaymentMethods.d.ts.map +1 -0
  148. package/dist/components/funding/PaymentMethods.js +173 -0
  149. package/dist/components/funding/PaymentMethods.js.map +1 -0
  150. package/dist/components/funding/PaymentMethods.mjs +180 -0
  151. package/dist/components/funding/PaymentMethods.mjs.map +1 -0
  152. package/dist/components/funding/QuoteDetails.d.ts +13 -0
  153. package/dist/components/funding/QuoteDetails.d.ts.map +1 -0
  154. package/dist/components/funding/QuoteDetails.js +124 -0
  155. package/dist/components/funding/QuoteDetails.js.map +1 -0
  156. package/dist/components/funding/QuoteDetails.mjs +121 -0
  157. package/dist/components/funding/QuoteDetails.mjs.map +1 -0
  158. package/dist/components/funding/QuoteOption.d.ts +23 -0
  159. package/dist/components/funding/QuoteOption.d.ts.map +1 -0
  160. package/dist/components/funding/QuoteOption.js +153 -0
  161. package/dist/components/funding/QuoteOption.js.map +1 -0
  162. package/dist/components/funding/QuoteOption.mjs +150 -0
  163. package/dist/components/funding/QuoteOption.mjs.map +1 -0
  164. package/dist/components/funding/QuotePicker.d.ts +13 -0
  165. package/dist/components/funding/QuotePicker.d.ts.map +1 -0
  166. package/dist/components/funding/QuotePicker.js +49 -0
  167. package/dist/components/funding/QuotePicker.js.map +1 -0
  168. package/dist/components/funding/QuotePicker.mjs +48 -0
  169. package/dist/components/funding/QuotePicker.mjs.map +1 -0
  170. package/dist/components/funding/TokenSelect.d.ts +18 -0
  171. package/dist/components/funding/TokenSelect.d.ts.map +1 -0
  172. package/dist/components/funding/TokenSelect.js +198 -0
  173. package/dist/components/funding/TokenSelect.js.map +1 -0
  174. package/dist/components/funding/TokenSelect.mjs +210 -0
  175. package/dist/components/funding/TokenSelect.mjs.map +1 -0
  176. package/dist/components/funding/offRampRedirect.d.ts +61 -0
  177. package/dist/components/funding/offRampRedirect.d.ts.map +1 -0
  178. package/dist/components/funding/offRampRedirect.js +282 -0
  179. package/dist/components/funding/offRampRedirect.js.map +1 -0
  180. package/dist/components/funding/offRampRedirect.mjs +274 -0
  181. package/dist/components/funding/offRampRedirect.mjs.map +1 -0
  182. package/dist/components/send-transaction/SendTransaction.d.ts.map +1 -1
  183. package/dist/components/send-transaction/SendTransaction.js +8 -6
  184. package/dist/components/send-transaction/SendTransaction.js.map +1 -1
  185. package/dist/components/send-transaction/SendTransaction.mjs +8 -6
  186. package/dist/components/send-transaction/SendTransaction.mjs.map +1 -1
  187. package/dist/components/send-transaction/helpers.d.ts.map +1 -1
  188. package/dist/components/send-transaction/helpers.js +4 -0
  189. package/dist/components/send-transaction/helpers.js.map +1 -1
  190. package/dist/components/send-transaction/helpers.mjs +4 -0
  191. package/dist/components/send-transaction/helpers.mjs.map +1 -1
  192. package/dist/components/sign/Message.d.ts.map +1 -1
  193. package/dist/components/sign/Message.js +2 -1
  194. package/dist/components/sign/Message.js.map +1 -1
  195. package/dist/components/sign/Message.mjs +2 -2
  196. package/dist/components/sign/Message.mjs.map +1 -1
  197. package/dist/providers/SupportedAssetsProvider.d.ts +18 -0
  198. package/dist/providers/SupportedAssetsProvider.d.ts.map +1 -0
  199. package/dist/providers/SupportedAssetsProvider.js +71 -0
  200. package/dist/providers/SupportedAssetsProvider.js.map +1 -0
  201. package/dist/providers/SupportedAssetsProvider.mjs +114 -0
  202. package/dist/providers/SupportedAssetsProvider.mjs.map +1 -0
  203. package/dist/providers/TurnkeyProvider.d.ts.map +1 -1
  204. package/dist/providers/TurnkeyProvider.js +2 -1
  205. package/dist/providers/TurnkeyProvider.js.map +1 -1
  206. package/dist/providers/TurnkeyProvider.mjs +2 -1
  207. package/dist/providers/TurnkeyProvider.mjs.map +1 -1
  208. package/dist/providers/client/Provider.d.ts.map +1 -1
  209. package/dist/providers/client/Provider.js +98 -153
  210. package/dist/providers/client/Provider.js.map +1 -1
  211. package/dist/providers/client/Provider.mjs +214 -328
  212. package/dist/providers/client/Provider.mjs.map +1 -1
  213. package/dist/providers/client/Types.d.ts +37 -12
  214. package/dist/providers/client/Types.d.ts.map +1 -1
  215. package/dist/providers/client/Types.js.map +1 -1
  216. package/dist/providers/client/Types.mjs.map +1 -1
  217. package/dist/providers/modal/Provider.d.ts +1 -0
  218. package/dist/providers/modal/Provider.d.ts.map +1 -1
  219. package/dist/providers/modal/Provider.js +12 -0
  220. package/dist/providers/modal/Provider.js.map +1 -1
  221. package/dist/providers/modal/Provider.mjs +15 -0
  222. package/dist/providers/modal/Provider.mjs.map +1 -1
  223. package/dist/providers/modal/Root.d.ts.map +1 -1
  224. package/dist/providers/modal/Root.js +16 -14
  225. package/dist/providers/modal/Root.js.map +1 -1
  226. package/dist/providers/modal/Root.mjs +16 -14
  227. package/dist/providers/modal/Root.mjs.map +1 -1
  228. package/dist/styles.css +1 -1
  229. package/dist/types/method-types.d.ts +21 -9
  230. package/dist/types/method-types.d.ts.map +1 -1
  231. package/dist/utils/funding/buildCryptoTransfer.d.ts +41 -0
  232. package/dist/utils/funding/buildCryptoTransfer.d.ts.map +1 -0
  233. package/dist/utils/funding/buildCryptoTransfer.js +134 -0
  234. package/dist/utils/funding/buildCryptoTransfer.js.map +1 -0
  235. package/dist/utils/funding/buildCryptoTransfer.mjs +128 -0
  236. package/dist/utils/funding/buildCryptoTransfer.mjs.map +1 -0
  237. package/dist/utils/funding/chainLabel.d.ts +2 -0
  238. package/dist/utils/funding/chainLabel.d.ts.map +1 -0
  239. package/dist/utils/funding/chainLabel.js +19 -0
  240. package/dist/utils/funding/chainLabel.js.map +1 -0
  241. package/dist/utils/funding/chainLabel.mjs +18 -0
  242. package/dist/utils/funding/chainLabel.mjs.map +1 -0
  243. package/dist/utils/funding/depositPlan.d.ts +28 -0
  244. package/dist/utils/funding/depositPlan.d.ts.map +1 -0
  245. package/dist/utils/funding/depositPlan.js +127 -0
  246. package/dist/utils/funding/depositPlan.js.map +1 -0
  247. package/dist/utils/funding/depositPlan.mjs +120 -0
  248. package/dist/utils/funding/depositPlan.mjs.map +1 -0
  249. package/dist/utils/funding/index.d.ts +8 -0
  250. package/dist/utils/funding/index.d.ts.map +1 -0
  251. package/dist/utils/funding/onRampTokens.d.ts +6 -0
  252. package/dist/utils/funding/onRampTokens.d.ts.map +1 -0
  253. package/dist/utils/funding/onRampTokens.js +21 -0
  254. package/dist/utils/funding/onRampTokens.js.map +1 -0
  255. package/dist/utils/funding/onRampTokens.mjs +26 -0
  256. package/dist/utils/funding/onRampTokens.mjs.map +1 -0
  257. package/dist/utils/funding/rankQuotes.d.ts +7 -0
  258. package/dist/utils/funding/rankQuotes.d.ts.map +1 -0
  259. package/dist/utils/funding/rankQuotes.js +37 -0
  260. package/dist/utils/funding/rankQuotes.js.map +1 -0
  261. package/dist/utils/funding/rankQuotes.mjs +50 -0
  262. package/dist/utils/funding/rankQuotes.mjs.map +1 -0
  263. package/dist/utils/funding/sendCryptoTransfer.d.ts +26 -0
  264. package/dist/utils/funding/sendCryptoTransfer.d.ts.map +1 -0
  265. package/dist/utils/funding/sendCryptoTransfer.js +281 -0
  266. package/dist/utils/funding/sendCryptoTransfer.js.map +1 -0
  267. package/dist/utils/funding/sendCryptoTransfer.mjs +405 -0
  268. package/dist/utils/funding/sendCryptoTransfer.mjs.map +1 -0
  269. package/dist/utils/funding/tokenSymbol.d.ts +7 -0
  270. package/dist/utils/funding/tokenSymbol.d.ts.map +1 -0
  271. package/dist/utils/funding/tokenSymbol.js +32 -0
  272. package/dist/utils/funding/tokenSymbol.js.map +1 -0
  273. package/dist/utils/funding/tokenSymbol.mjs +31 -0
  274. package/dist/utils/funding/tokenSymbol.mjs.map +1 -0
  275. package/dist/utils/utils.d.ts +1 -0
  276. package/dist/utils/utils.d.ts.map +1 -1
  277. package/dist/utils/utils.js +5 -0
  278. package/dist/utils/utils.js.map +1 -1
  279. package/dist/utils/utils.mjs +7 -1
  280. package/dist/utils/utils.mjs.map +1 -1
  281. package/package.json +8 -4
  282. package/dist/components/onramp/OnRamp.d.ts +0 -14
  283. package/dist/components/onramp/OnRamp.d.ts.map +0 -1
  284. package/dist/components/onramp/OnRamp.js +0 -61
  285. package/dist/components/onramp/OnRamp.js.map +0 -1
  286. package/dist/components/onramp/OnRamp.mjs +0 -79
  287. package/dist/components/onramp/OnRamp.mjs.map +0 -1
@@ -0,0 +1,455 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
5
+ var reactFontawesome = require('@fortawesome/react-fontawesome');
6
+ var react = require('react');
7
+ var clsx = require('clsx');
8
+ var core = require('@turnkey/core');
9
+ var Hook = require('../../providers/client/Hook.js');
10
+ var Hook$1 = require('../../providers/modal/Hook.js');
11
+ var SupportedAssetsProvider = require('../../providers/SupportedAssetsProvider.js');
12
+ var buildCryptoTransfer = require('../../utils/funding/buildCryptoTransfer.js');
13
+ var chainLabel = require('../../utils/funding/chainLabel.js');
14
+ var depositPlan = require('../../utils/funding/depositPlan.js');
15
+ var tokenSymbol = require('../../utils/funding/tokenSymbol.js');
16
+ var sendCryptoTransfer = require('../../utils/funding/sendCryptoTransfer.js');
17
+ var utils = require('../../utils/utils.js');
18
+ var Action = require('../auth/Action.js');
19
+ var Buttons = require('../design/Buttons.js');
20
+ var Svg = require('../design/Svg.js');
21
+ var OnRampCryptoStatus = require('./OnRampCryptoStatus.js');
22
+ var TokenSelect = require('./TokenSelect.js');
23
+ var QuoteOption = require('./QuoteOption.js');
24
+ var offRampRedirect = require('./offRampRedirect.js');
25
+
26
+ function OffRampDeposit(props) {
27
+ const {
28
+ token,
29
+ amount,
30
+ atomicAmount,
31
+ walletAccount,
32
+ provider,
33
+ organizationId,
34
+ stampWith,
35
+ rpcUrl,
36
+ sandboxMode,
37
+ successPageDuration,
38
+ cryptoDecimals,
39
+ returnNonce,
40
+ widget,
41
+ initialAddress,
42
+ initialAmount,
43
+ initialTag,
44
+ onSuccess
45
+ } = props;
46
+ const {
47
+ handleSendTransaction,
48
+ signAndSendTransaction,
49
+ walletProviders
50
+ } = Hook.useTurnkey();
51
+ const {
52
+ isMobile,
53
+ pushPage
54
+ } = Hook$1.useModal();
55
+ const {
56
+ assetsByCaip2
57
+ } = SupportedAssetsProvider.useSupportedAssets();
58
+ const restored = initialAddress ? undefined : offRampRedirect.readRememberedOffRampDeposit();
59
+ const startingTag = initialTag ?? restored?.tag;
60
+ const [destination, setDestination] = react.useState(initialAddress ?? restored?.address ?? "");
61
+ const [returnedAmount, setReturnedAmount] = react.useState(initialAmount ?? restored?.amount);
62
+ const [filledFromProvider, setFilledFromProvider] = react.useState(!!(initialAddress || restored?.address));
63
+ const [sending, setSending] = react.useState(false);
64
+ const [isHoveringFrom, setIsHoveringFrom] = react.useState(false);
65
+ const [isHoveringTo, setIsHoveringTo] = react.useState(false);
66
+ const [showCopiedFrom, setShowCopiedFrom] = react.useState(false);
67
+ const [showCopied, setShowCopied] = react.useState(false);
68
+ const [shaking, setShaking] = react.useState(false);
69
+ const [error, setError] = react.useState(startingTag ? "MoonPay included a deposit tag. This transfer cannot attach it." : restored?.error);
70
+ const providerLabel = QuoteOption.providerName(provider);
71
+ const plan = depositPlan.applyReturnedAmount(depositPlan.depositPlan({
72
+ token,
73
+ amount,
74
+ atomicAmount,
75
+ provider,
76
+ sandboxMode: !!sandboxMode,
77
+ rpcUrl,
78
+ symbol: tokenSymbol.tokenSymbol(token, assetsByCaip2)
79
+ }), returnedAmount, cryptoDecimals, tokenSymbol.assetOf(token));
80
+ const acceptDeposit = deposit => {
81
+ offRampRedirect.rememberOffRampDeposit(deposit);
82
+ setDestination(deposit.address);
83
+ setFilledFromProvider(true);
84
+ setError(deposit.tag ? "MoonPay included a deposit tag. This transfer cannot attach it." : undefined);
85
+ if (deposit.amount) setReturnedAmount(deposit.amount);
86
+ };
87
+ const widgetRef = react.useRef(widget);
88
+ widgetRef.current = widget;
89
+ const acceptDepositRef = react.useRef(acceptDeposit);
90
+ acceptDepositRef.current = acceptDeposit;
91
+ react.useEffect(() => {
92
+ if (provider !== "FIAT_RAMP_PROVIDER_MOONPAY") return;
93
+ const seen = new Set();
94
+ let filled = false;
95
+ const take = (deposit, source, id) => {
96
+ // The popup this screen opened is trusted. Any other return must carry
97
+ // the nonce from this sale's redirect URL.
98
+ if (source === "return" && deposit.nonce !== returnNonce) return;
99
+ if (id && !seen.has(id)) {
100
+ seen.add(id);
101
+ offRampRedirect.ackOffRampReturn(id);
102
+ }
103
+ if (filled) return;
104
+ filled = true;
105
+ acceptDepositRef.current(deposit);
106
+ const popup = widgetRef.current;
107
+ try {
108
+ if (popup && !popup.closed) popup.close();
109
+ } catch {
110
+ // MoonPay can sever the handle. The return window closes itself.
111
+ }
112
+ try {
113
+ window.focus();
114
+ } catch {
115
+ // Ignore focus failures.
116
+ }
117
+ };
118
+ const unsubscribe = offRampRedirect.subscribeOffRampReturn(({
119
+ id,
120
+ deposit
121
+ }) => take(deposit, "return", id));
122
+ const onMessage = event => {
123
+ if (event.origin !== window.location.origin) return;
124
+ if (!offRampRedirect.isOffRampDepositMessage(event.data)) return;
125
+ take(event.data.deposit, "return", event.data.id);
126
+ };
127
+ window.addEventListener("message", onMessage);
128
+ const timer = window.setInterval(() => {
129
+ const popup = widgetRef.current;
130
+ if (!popup) return;
131
+ try {
132
+ if (popup.closed) return;
133
+ const deposit = offRampRedirect.moonPayDeposit(popup.location.href);
134
+ if (!deposit) return;
135
+ take(deposit, "widget");
136
+ } catch {
137
+ // The window is still on MoonPay. location is readable after it returns here.
138
+ }
139
+ }, 250);
140
+ return () => {
141
+ unsubscribe();
142
+ window.removeEventListener("message", onMessage);
143
+ window.clearInterval(timer);
144
+ };
145
+ }, [provider, returnNonce]);
146
+ const address = destination.trim();
147
+ const canSend = plan.mode === "send" && depositPlan.isDepositAddress(plan.caip2, address) && depositPlan.positiveAtomic(plan.atomicAmount);
148
+ const send = async () => {
149
+ if (!walletAccount.address || plan.mode !== "send" || !canSend) return;
150
+ setSending(true);
151
+ setError(undefined);
152
+ try {
153
+ if (walletAccount.source === core.WalletSource.Connected) {
154
+ const walletProvider = walletProviders.find(provider => provider.connectedAddresses.some(connected => connected.toLowerCase() === walletAccount.address.toLowerCase()));
155
+ if (!walletProvider) {
156
+ throw new core.TurnkeyError("Reconnect this wallet and try the send again.", core.TurnkeyErrorCodes.NO_WALLET_FOUND);
157
+ }
158
+ const transfer = buildCryptoTransfer.transferFromAsset({
159
+ caip2: plan.caip2,
160
+ asset: plan.asset,
161
+ quotedToken: token,
162
+ from: walletAccount.address,
163
+ to: address,
164
+ atomicAmount: plan.atomicAmount
165
+ });
166
+ if (transfer.transactionType === "TRANSACTION_TYPE_ETHEREUM") {
167
+ const chainId = Number(plan.caip2.slice("eip155:".length));
168
+ if (sendCryptoTransfer.evmChainId(walletProvider.chainInfo) !== chainId) {
169
+ await sendCryptoTransfer.ensureEthereumChain(walletProvider.provider, chainId);
170
+ }
171
+ }
172
+ const unsignedTransaction = await sendCryptoTransfer.buildUnsignedOnRampTransaction({
173
+ transfer,
174
+ provider: walletProvider.provider,
175
+ rpcUrl: plan.rpcUrl
176
+ });
177
+ const transactionId = await signAndSendTransaction({
178
+ walletAccount,
179
+ unsignedTransaction,
180
+ transactionType: transfer.transactionType,
181
+ ...(plan.rpcUrl ? {
182
+ rpcUrl: plan.rpcUrl
183
+ } : {}),
184
+ ...(organizationId ? {
185
+ organizationId
186
+ } : {}),
187
+ ...(stampWith ? {
188
+ stampWith
189
+ } : {})
190
+ });
191
+ offRampRedirect.clearOffRampHandoff();
192
+ pushPage({
193
+ key: "Sending",
194
+ showTitle: false,
195
+ content: jsxRuntime.jsx(OnRampCryptoStatus.OnRampCryptoStatus, {
196
+ chain: transfer.transactionType === "TRANSACTION_TYPE_SOLANA" ? "solana" : "ethereum",
197
+ caip2: plan.caip2,
198
+ transactionId: transactionId,
199
+ provider: walletProvider.provider,
200
+ rpcUrl: plan.rpcUrl,
201
+ successPageDuration: successPageDuration,
202
+ iconUrl: walletProvider.info.icon,
203
+ onSuccess: () => onSuccess?.(),
204
+ onError: caught => {
205
+ const message = sendCryptoTransfer.sendErrorMessage(caught);
206
+ offRampRedirect.rememberOffRampSendError(message);
207
+ setError(message);
208
+ }
209
+ })
210
+ });
211
+ return;
212
+ }
213
+ const transaction = await sendCryptoTransfer.embeddedDepositTransaction({
214
+ caip2: plan.caip2,
215
+ asset: plan.asset,
216
+ quotedToken: token,
217
+ from: walletAccount.address,
218
+ to: address,
219
+ atomicAmount: plan.atomicAmount,
220
+ rpcUrl: plan.rpcUrl
221
+ });
222
+ await handleSendTransaction({
223
+ transaction,
224
+ ...(organizationId ? {
225
+ organizationId
226
+ } : {}),
227
+ ...(stampWith ? {
228
+ stampWith
229
+ } : {}),
230
+ ...(successPageDuration !== undefined ? {
231
+ successPageDuration
232
+ } : {})
233
+ });
234
+ offRampRedirect.clearOffRampHandoff();
235
+ onSuccess?.();
236
+ } catch (caught) {
237
+ if (caught instanceof core.TurnkeyError && caught.code === core.TurnkeyErrorCodes.USER_CANCELED || sendCryptoTransfer.isUserRejected(caught)) {
238
+ setSending(false);
239
+ return;
240
+ }
241
+ const message = sendCryptoTransfer.sendErrorMessage(caught);
242
+ offRampRedirect.rememberOffRampSendError(message);
243
+ setError(message);
244
+ setShaking(true);
245
+ setTimeout(() => setShaking(false), 250);
246
+ setSending(false);
247
+ }
248
+ };
249
+ const lockedAddress = filledFromProvider && plan.mode === "send";
250
+ const ProviderLogo = QuoteOption.providerLogos[provider];
251
+ if (plan.mode === "send" && !lockedAddress) {
252
+ return jsxRuntime.jsx(Action.ActionPage, {
253
+ title: `Finish the sale in ${providerLabel}`,
254
+ subtitle: "You will be redirected back here to send your funds",
255
+ icon: jsxRuntime.jsx(ProviderLogo, {
256
+ className: "size-10"
257
+ })
258
+ });
259
+ }
260
+ if (plan.mode === "send") {
261
+ const ChainLogo = plan.caip2.startsWith("solana:") ? Svg.SolanaLogo : Svg.EthereumLogo;
262
+ const amountToken = tokenSymbol.tokenSymbol(token, assetsByCaip2) === plan.symbol ? token : undefined;
263
+ return jsxRuntime.jsxs("div", {
264
+ className: clsx("relative flex flex-col items-center justify-center gap-4 py-4 text-center", isMobile ? "w-full" : "w-96"),
265
+ children: [jsxRuntime.jsxs("div", {
266
+ className: "flex w-full flex-col items-center",
267
+ children: [jsxRuntime.jsxs("div", {
268
+ className: "flex w-full items-end justify-center gap-1.5 bg-transparent px-4 py-4 text-inherit",
269
+ children: [jsxRuntime.jsxs("div", {
270
+ className: "relative max-w-full pb-0.5",
271
+ children: [jsxRuntime.jsx("span", {
272
+ className: "pointer-events-none absolute top-0 right-full pr-0.5",
273
+ children: amountToken ? jsxRuntime.jsx(TokenSelect.TokenLogo, {
274
+ token: amountToken,
275
+ assetsByCaip2: assetsByCaip2,
276
+ className: "size-3.5"
277
+ }) : jsxRuntime.jsx("span", {
278
+ className: "block size-3.5 shrink-0 rounded-full bg-icon-background-light dark:bg-icon-background-dark"
279
+ })
280
+ }), jsxRuntime.jsx("span", {
281
+ className: "whitespace-pre px-0.5 text-6xl font-bold",
282
+ children: plan.amount || "0"
283
+ })]
284
+ }), jsxRuntime.jsx("div", {
285
+ className: "pb-1",
286
+ children: jsxRuntime.jsx("span", {
287
+ className: "text-lg font-bold leading-none",
288
+ children: plan.symbol
289
+ })
290
+ })]
291
+ }), jsxRuntime.jsxs("p", {
292
+ className: "-mt-2 text-sm text-icon-text-light dark:text-icon-text-dark",
293
+ children: ["on ", chainLabel.chainLabel(plan.caip2)]
294
+ })]
295
+ }), jsxRuntime.jsxs("div", {
296
+ className: "flex w-full flex-col gap-2 text-left",
297
+ children: [jsxRuntime.jsxs("div", {
298
+ className: "flex flex-col gap-1",
299
+ children: [jsxRuntime.jsx("div", {
300
+ className: partyLabelClassName,
301
+ children: "From"
302
+ }), jsxRuntime.jsxs(Buttons.ActionButton, {
303
+ name: "offramp-send-from",
304
+ onClick: () => {
305
+ setShowCopiedFrom(true);
306
+ void navigator.clipboard.writeText(walletAccount.address);
307
+ setTimeout(() => setShowCopiedFrom(false), 1500);
308
+ },
309
+ ...(!isMobile && {
310
+ onMouseEnter: () => setIsHoveringFrom(true),
311
+ onMouseLeave: () => setIsHoveringFrom(false)
312
+ }),
313
+ className: clsx("relative flex w-full items-center gap-2 bg-button-light text-inherit dark:bg-button-dark", showCopiedFrom ? "overflow-visible" : "overflow-hidden"),
314
+ children: [jsxRuntime.jsxs("span", {
315
+ className: "relative flex size-6 shrink-0 items-center justify-center",
316
+ children: [jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
317
+ icon: freeSolidSvgIcons.faWallet,
318
+ className: "size-4"
319
+ }), jsxRuntime.jsx("span", {
320
+ className: "absolute -right-1.5 -bottom-1 flex size-3.5 items-center justify-center rounded-full bg-button-light dark:bg-button-dark",
321
+ children: jsxRuntime.jsx(ChainLogo, {
322
+ className: "size-2.5"
323
+ })
324
+ })]
325
+ }), jsxRuntime.jsx("span", {
326
+ className: "min-w-0 truncate text-sm",
327
+ children: utils.truncateAddress(walletAccount.address)
328
+ }), jsxRuntime.jsx("div", {
329
+ className: clsx("absolute transition-all duration-200", isHoveringFrom || showCopiedFrom || isMobile ? "right-4" : "-right-4"),
330
+ children: jsxRuntime.jsxs("div", {
331
+ className: "relative",
332
+ children: [jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
333
+ icon: showCopiedFrom ? freeSolidSvgIcons.faCheck : freeSolidSvgIcons.faCopy,
334
+ className: clsx("transition-colors", showCopiedFrom ? "text-success-light dark:text-success-dark" : "text-icon-text-light dark:text-icon-text-dark")
335
+ }), showCopiedFrom && jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
336
+ icon: freeSolidSvgIcons.faCheck,
337
+ className: "absolute inset-0 m-auto text-success-light dark:text-success-dark animate-ping"
338
+ })]
339
+ })
340
+ })]
341
+ })]
342
+ }), jsxRuntime.jsxs("div", {
343
+ className: "flex flex-col gap-1",
344
+ children: [jsxRuntime.jsx("div", {
345
+ className: partyLabelClassName,
346
+ children: "To"
347
+ }), jsxRuntime.jsxs(Buttons.ActionButton, {
348
+ name: "offramp-send-to",
349
+ onClick: () => {
350
+ setShowCopied(true);
351
+ void navigator.clipboard.writeText(address);
352
+ setTimeout(() => setShowCopied(false), 1500);
353
+ },
354
+ ...(!isMobile && {
355
+ onMouseEnter: () => setIsHoveringTo(true),
356
+ onMouseLeave: () => setIsHoveringTo(false)
357
+ }),
358
+ className: clsx("relative flex w-full items-center gap-2 bg-button-light text-inherit dark:bg-button-dark", showCopied ? "overflow-visible" : "overflow-hidden"),
359
+ children: [jsxRuntime.jsx(ProviderLogo, {
360
+ className: "size-6 shrink-0"
361
+ }), jsxRuntime.jsx("span", {
362
+ className: "text-sm",
363
+ "data-testid": "offramp-deposit-address",
364
+ children: utils.truncateAddress(address)
365
+ }), jsxRuntime.jsx("div", {
366
+ className: clsx("absolute transition-all duration-200", isHoveringTo || showCopied || isMobile ? "right-4" : "-right-4"),
367
+ children: jsxRuntime.jsxs("div", {
368
+ className: "relative",
369
+ children: [jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
370
+ icon: showCopied ? freeSolidSvgIcons.faCheck : freeSolidSvgIcons.faCopy,
371
+ className: clsx("transition-colors", showCopied ? "text-success-light dark:text-success-dark" : "text-icon-text-light dark:text-icon-text-dark")
372
+ }), showCopied && jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
373
+ icon: freeSolidSvgIcons.faCheck,
374
+ className: "absolute inset-0 m-auto text-success-light dark:text-success-dark animate-ping"
375
+ })]
376
+ })
377
+ })]
378
+ })]
379
+ })]
380
+ }), jsxRuntime.jsx(Buttons.ActionButton, {
381
+ name: "offramp-send-deposit",
382
+ onClick: () => void send(),
383
+ disabled: !canSend,
384
+ loading: sending,
385
+ spinnerClassName: "text-primary-text-light dark:text-primary-text-dark",
386
+ className: clsx("w-full bg-primary-light text-primary-text-light dark:bg-primary-dark dark:text-primary-text-dark", shaking && "animate-shake"),
387
+ children: "Continue"
388
+ }), jsxRuntime.jsx("p", {
389
+ "data-testid": "offramp-deposit-error",
390
+ className: clsx("text-sm text-danger-light dark:text-danger-dark transition-opacity delay-75 line-clamp-2 w-full", error ? "opacity-100 pointer-events-auto" : "opacity-0 pointer-events-none absolute"),
391
+ children: error
392
+ })]
393
+ });
394
+ }
395
+ return jsxRuntime.jsxs("div", {
396
+ className: clsx("flex min-w-0 max-w-full flex-col items-center gap-4 py-4 text-center", isMobile ? "w-full" : "w-96"),
397
+ children: [jsxRuntime.jsxs("div", {
398
+ className: "flex flex-col gap-2 px-2",
399
+ children: [jsxRuntime.jsx("p", {
400
+ className: "text-base font-medium",
401
+ children: plan.title
402
+ }), jsxRuntime.jsx("p", {
403
+ className: "text-sm text-icon-text-light dark:text-icon-text-dark",
404
+ children: plan.instructions
405
+ }), address ? jsxRuntime.jsx(LockedDepositAddress, {
406
+ address: address,
407
+ provider: providerLabel
408
+ }) : null]
409
+ }), plan.complete && jsxRuntime.jsx(Buttons.ActionButton, {
410
+ name: "offramp-sandbox-done",
411
+ onClick: () => onSuccess?.(),
412
+ className: "w-full bg-primary-light text-primary-text-light dark:bg-primary-dark dark:text-primary-text-dark",
413
+ children: "Done"
414
+ }), error && jsxRuntime.jsx("p", {
415
+ className: "w-full text-sm text-danger-light dark:text-danger-dark",
416
+ "data-testid": "offramp-deposit-error",
417
+ children: error
418
+ })]
419
+ });
420
+ }
421
+ function LockedDepositAddress(props) {
422
+ const {
423
+ address,
424
+ provider
425
+ } = props;
426
+ const [copied, setCopied] = react.useState(false);
427
+ return jsxRuntime.jsxs("div", {
428
+ className: "flex w-full min-w-0 flex-col gap-1 text-left",
429
+ children: [jsxRuntime.jsxs("div", {
430
+ className: "px-1 text-xs font-medium text-icon-text-light dark:text-icon-text-dark",
431
+ children: [provider, " deposit address"]
432
+ }), jsxRuntime.jsxs("button", {
433
+ type: "button",
434
+ "data-testid": "offramp-deposit-address",
435
+ onClick: () => {
436
+ void navigator.clipboard.writeText(address).then(() => {
437
+ setCopied(true);
438
+ window.setTimeout(() => setCopied(false), 1500);
439
+ }).catch(() => undefined);
440
+ },
441
+ className: "flex w-full min-w-0 items-center gap-3 rounded-md bg-button-light px-3 py-3 text-left text-sm text-inherit dark:bg-button-dark",
442
+ children: [jsxRuntime.jsx("span", {
443
+ className: "min-w-0 flex-1 truncate font-mono",
444
+ children: utils.truncateAddress(address)
445
+ }), jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
446
+ icon: copied ? freeSolidSvgIcons.faCheck : freeSolidSvgIcons.faCopy,
447
+ className: clsx("shrink-0", copied ? "text-success-light dark:text-success-dark" : "text-icon-text-light dark:text-icon-text-dark")
448
+ })]
449
+ })]
450
+ });
451
+ }
452
+ const partyLabelClassName = "px-1 text-xs font-medium text-icon-text-light dark:text-icon-text-dark";
453
+
454
+ exports.OffRampDeposit = OffRampDeposit;
455
+ //# sourceMappingURL=OffRampDeposit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OffRampDeposit.js","sources":["../../../src/components/funding/OffRampDeposit.tsx"],"sourcesContent":[null],"names":["OffRampDeposit","props","token","amount","atomicAmount","walletAccount","provider","organizationId","stampWith","rpcUrl","sandboxMode","successPageDuration","cryptoDecimals","returnNonce","widget","initialAddress","initialAmount","initialTag","onSuccess","handleSendTransaction","signAndSendTransaction","walletProviders","useTurnkey","isMobile","pushPage","useModal","assetsByCaip2","useSupportedAssets","restored","undefined","readRememberedOffRampDeposit","startingTag","tag","destination","setDestination","useState","address","returnedAmount","setReturnedAmount","filledFromProvider","setFilledFromProvider","sending","setSending","isHoveringFrom","setIsHoveringFrom","isHoveringTo","setIsHoveringTo","showCopiedFrom","setShowCopiedFrom","showCopied","setShowCopied","shaking","setShaking","error","setError","providerLabel","providerName","plan","applyReturnedAmount","depositPlan","symbol","tokenSymbol","assetOf","acceptDeposit","deposit","rememberOffRampDeposit","widgetRef","useRef","current","acceptDepositRef","useEffect","seen","Set","filled","take","source","id","nonce","has","add","ackOffRampReturn","popup","closed","close","window","focus","unsubscribe","subscribeOffRampReturn","onMessage","event","origin","location","isOffRampDepositMessage","data","addEventListener","timer","setInterval","moonPayDeposit","href","removeEventListener","clearInterval","trim","canSend","mode","isDepositAddress","caip2","positiveAtomic","send","WalletSource","Connected","walletProvider","find","connectedAddresses","some","connected","toLowerCase","TurnkeyError","TurnkeyErrorCodes","NO_WALLET_FOUND","transfer","transferFromAsset","asset","quotedToken","from","to","transactionType","chainId","Number","slice","length","evmChainId","chainInfo","ensureEthereumChain","unsignedTransaction","buildUnsignedOnRampTransaction","transactionId","clearOffRampHandoff","key","showTitle","content","_jsx","OnRampCryptoStatus","chain","iconUrl","info","icon","onError","caught","message","sendErrorMessage","rememberOffRampSendError","transaction","embeddedDepositTransaction","code","USER_CANCELED","isUserRejected","setTimeout","lockedAddress","ProviderLogo","providerLogos","ActionPage","title","subtitle","className","ChainLogo","startsWith","SolanaLogo","EthereumLogo","amountToken","_jsxs","clsx","children","TokenLogo","chainLabel","partyLabelClassName","ActionButton","name","onClick","navigator","clipboard","writeText","onMouseEnter","onMouseLeave","FontAwesomeIcon","faWallet","truncateAddress","faCheck","faCopy","disabled","loading","spinnerClassName","instructions","LockedDepositAddress","complete","copied","setCopied","type","then","catch"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAuEM,SAAUA,cAAcA,CAACC,KAA0B,EAAA;EACvD,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,YAAY;IACZC,aAAa;IACbC,QAAQ;IACRC,cAAc;IACdC,SAAS;IACTC,MAAM;IACNC,WAAW;IACXC,mBAAmB;IACnBC,cAAc;IACdC,WAAW;IACXC,MAAM;IACNC,cAAc;IACdC,aAAa;IACbC,UAAU;AACVC,IAAAA;AAAS,GACV,GAAGjB,KAAK;EACT,MAAM;IAAEkB,qBAAqB;IAAEC,sBAAsB;AAAEC,IAAAA;GAAiB,GACtEC,eAAU,EAAE;EACd,MAAM;IAAEC,QAAQ;AAAEC,IAAAA;GAAU,GAAGC,eAAQ,EAAE;EACzC,MAAM;AAAEC,IAAAA;GAAe,GAAGC,0CAAkB,EAAE;EAC9C,MAAMC,QAAQ,GAAGb,cAAc,GAAGc,SAAS,GAAGC,4CAA4B,EAAE;AAC5E,EAAA,MAAMC,WAAW,GAAGd,UAAU,IAAIW,QAAQ,EAAEI,GAAG;AAC/C,EAAA,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGC,cAAQ,CAC5CpB,cAAc,IAAIa,QAAQ,EAAEQ,OAAO,IAAI,EAAE,CAC1C;AACD,EAAA,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGH,cAAQ,CAClDnB,aAAa,IAAIY,QAAQ,EAAEzB,MAAM,CAClC;AACD,EAAA,MAAM,CAACoC,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGL,cAAQ,CAC1D,CAAC,EAAEpB,cAAc,IAAIa,QAAQ,EAAEQ,OAAO,CAAC,CACxC;EACD,MAAM,CAACK,OAAO,EAAEC,UAAU,CAAC,GAAGP,cAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM,CAACQ,cAAc,EAAEC,iBAAiB,CAAC,GAAGT,cAAQ,CAAC,KAAK,CAAC;EAC3D,MAAM,CAACU,YAAY,EAAEC,eAAe,CAAC,GAAGX,cAAQ,CAAC,KAAK,CAAC;EACvD,MAAM,CAACY,cAAc,EAAEC,iBAAiB,CAAC,GAAGb,cAAQ,CAAC,KAAK,CAAC;EAC3D,MAAM,CAACc,UAAU,EAAEC,aAAa,CAAC,GAAGf,cAAQ,CAAC,KAAK,CAAC;EACnD,MAAM,CAACgB,OAAO,EAAEC,UAAU,CAAC,GAAGjB,cAAQ,CAAC,KAAK,CAAC;AAC7C,EAAA,MAAM,CAACkB,KAAK,EAAEC,QAAQ,CAAC,GAAGnB,cAAQ,CAChCJ,WAAW,GACP,iEAAiE,GACjEH,QAAQ,EAAEyB,KAAK,CACpB;AACD,EAAA,MAAME,aAAa,GAAGC,wBAAY,CAAClD,QAAQ,CAAC;AAC5C,EAAA,MAAMmD,IAAI,GAAGC,+BAAmB,CAC9BC,uBAAW,CAAC;IACVzD,KAAK;IACLC,MAAM;IACNC,YAAY;IACZE,QAAQ;IACRI,WAAW,EAAE,CAAC,CAACA,WAAW;IAC1BD,MAAM;AACNmD,IAAAA,MAAM,EAAEC,uBAAW,CAAC3D,KAAK,EAAEwB,aAAa;GACzC,CAAC,EACFW,cAAc,EACdzB,cAAc,EACdkD,mBAAO,CAAC5D,KAAK,CAAC,CACf;EAED,MAAM6D,aAAa,GAAIC,OAAuB,IAAI;IAChDC,sCAAsB,CAACD,OAAO,CAAC;AAC/B9B,IAAAA,cAAc,CAAC8B,OAAO,CAAC5B,OAAO,CAAC;IAC/BI,qBAAqB,CAAC,IAAI,CAAC;IAC3Bc,QAAQ,CACNU,OAAO,CAAChC,GAAG,GACP,iEAAiE,GACjEH,SAAS,CACd;IACD,IAAImC,OAAO,CAAC7D,MAAM,EAAEmC,iBAAiB,CAAC0B,OAAO,CAAC7D,MAAM,CAAC;EACvD,CAAC;AAED,EAAA,MAAM+D,SAAS,GAAGC,YAAM,CAACrD,MAAM,CAAC;EAChCoD,SAAS,CAACE,OAAO,GAAGtD,MAAM;AAC1B,EAAA,MAAMuD,gBAAgB,GAAGF,YAAM,CAACJ,aAAa,CAAC;EAC9CM,gBAAgB,CAACD,OAAO,GAAGL,aAAa;AAExCO,EAAAA,eAAS,CAAC,MAAK;IACb,IAAIhE,QAAQ,KAAK,4BAA4B,EAAE;AAC/C,IAAA,MAAMiE,IAAI,GAAG,IAAIC,GAAG,EAAU;IAC9B,IAAIC,MAAM,GAAG,KAAK;IAElB,MAAMC,IAAI,GAAGA,CACXV,OAAuB,EACvBW,MAA2B,EAC3BC,EAAW,KACT;AACF;AACA;MACA,IAAID,MAAM,KAAK,QAAQ,IAAIX,OAAO,CAACa,KAAK,KAAKhE,WAAW,EAAE;MAC1D,IAAI+D,EAAE,IAAI,CAACL,IAAI,CAACO,GAAG,CAACF,EAAE,CAAC,EAAE;AACvBL,QAAAA,IAAI,CAACQ,GAAG,CAACH,EAAE,CAAC;QACZI,gCAAgB,CAACJ,EAAE,CAAC;AACtB,MAAA;AACA,MAAA,IAAIH,MAAM,EAAE;AACZA,MAAAA,MAAM,GAAG,IAAI;AACbJ,MAAAA,gBAAgB,CAACD,OAAO,CAACJ,OAAO,CAAC;AACjC,MAAA,MAAMiB,KAAK,GAAGf,SAAS,CAACE,OAAO;MAC/B,IAAI;QACF,IAAIa,KAAK,IAAI,CAACA,KAAK,CAACC,MAAM,EAAED,KAAK,CAACE,KAAK,EAAE;AAC3C,MAAA,CAAC,CAAC,MAAM;AACN;AAAA,MAAA;MAEF,IAAI;QACFC,MAAM,CAACC,KAAK,EAAE;AAChB,MAAA,CAAC,CAAC,MAAM;AACN;AAAA,MAAA;IAEJ,CAAC;AAED,IAAA,MAAMC,WAAW,GAAGC,sCAAsB,CAAC,CAAC;MAAEX,EAAE;AAAEZ,MAAAA;KAAS,KACzDU,IAAI,CAACV,OAAO,EAAE,QAAQ,EAAEY,EAAE,CAAC,CAC5B;IACD,MAAMY,SAAS,GAAIC,KAAmB,IAAI;MACxC,IAAIA,KAAK,CAACC,MAAM,KAAKN,MAAM,CAACO,QAAQ,CAACD,MAAM,EAAE;AAC7C,MAAA,IAAI,CAACE,uCAAuB,CAACH,KAAK,CAACI,IAAI,CAAC,EAAE;AAC1CnB,MAAAA,IAAI,CAACe,KAAK,CAACI,IAAI,CAAC7B,OAAO,EAAE,QAAQ,EAAEyB,KAAK,CAACI,IAAI,CAACjB,EAAE,CAAC;IACnD,CAAC;AACDQ,IAAAA,MAAM,CAACU,gBAAgB,CAAC,SAAS,EAAEN,SAAS,CAAC;AAE7C,IAAA,MAAMO,KAAK,GAAGX,MAAM,CAACY,WAAW,CAAC,MAAK;AACpC,MAAA,MAAMf,KAAK,GAAGf,SAAS,CAACE,OAAO;MAC/B,IAAI,CAACa,KAAK,EAAE;MACZ,IAAI;QACF,IAAIA,KAAK,CAACC,MAAM,EAAE;QAClB,MAAMlB,OAAO,GAAGiC,8BAAc,CAAChB,KAAK,CAACU,QAAQ,CAACO,IAAI,CAAC;QACnD,IAAI,CAAClC,OAAO,EAAE;AACdU,QAAAA,IAAI,CAACV,OAAO,EAAE,QAAQ,CAAC;AACzB,MAAA,CAAC,CAAC,MAAM;AACN;AAAA,MAAA;IAEJ,CAAC,EAAE,GAAG,CAAC;AAEP,IAAA,OAAO,MAAK;AACVsB,MAAAA,WAAW,EAAE;AACbF,MAAAA,MAAM,CAACe,mBAAmB,CAAC,SAAS,EAAEX,SAAS,CAAC;AAChDJ,MAAAA,MAAM,CAACgB,aAAa,CAACL,KAAK,CAAC;IAC7B,CAAC;AACH,EAAA,CAAC,EAAE,CAACzF,QAAQ,EAAEO,WAAW,CAAC,CAAC;AAE3B,EAAA,MAAMuB,OAAO,GAAGH,WAAW,CAACoE,IAAI,EAAE;EAClC,MAAMC,OAAO,GACX7C,IAAI,CAAC8C,IAAI,KAAK,MAAM,IACpBC,4BAAgB,CAAC/C,IAAI,CAACgD,KAAK,EAAErE,OAAO,CAAC,IACrCsE,0BAAc,CAACjD,IAAI,CAACrD,YAAY,CAAC;AAEnC,EAAA,MAAMuG,IAAI,GAAG,YAAW;AACtB,IAAA,IAAI,CAACtG,aAAa,CAAC+B,OAAO,IAAIqB,IAAI,CAAC8C,IAAI,KAAK,MAAM,IAAI,CAACD,OAAO,EAAE;IAChE5D,UAAU,CAAC,IAAI,CAAC;IAChBY,QAAQ,CAACzB,SAAS,CAAC;IACnB,IAAI;AACF,MAAA,IAAIxB,aAAa,CAACsE,MAAM,KAAKiC,iBAAY,CAACC,SAAS,EAAE;AACnD,QAAA,MAAMC,cAAc,GAAGzF,eAAe,CAAC0F,IAAI,CAAEzG,QAAQ,IACnDA,QAAQ,CAAC0G,kBAAkB,CAACC,IAAI,CAC7BC,SAAS,IACRA,SAAS,CAACC,WAAW,EAAE,KAAK9G,aAAa,CAAC+B,OAAO,CAAC+E,WAAW,EAAE,CAClE,CACF;QACD,IAAI,CAACL,cAAc,EAAE;UACnB,MAAM,IAAIM,iBAAY,CACpB,+CAA+C,EAC/CC,sBAAiB,CAACC,eAAe,CAClC;AACH,QAAA;QACA,MAAMC,QAAQ,GAAGC,qCAAiB,CAAC;UACjCf,KAAK,EAAEhD,IAAI,CAACgD,KAAK;UACjBgB,KAAK,EAAEhE,IAAI,CAACgE,KAAK;AACjBC,UAAAA,WAAW,EAAExH,KAAK;UAClByH,IAAI,EAAEtH,aAAa,CAAC+B,OAAO;AAC3BwF,UAAAA,EAAE,EAAExF,OAAO;UACXhC,YAAY,EAAEqD,IAAI,CAACrD;AACpB,SAAA,CAAC;AACF,QAAA,IAAImH,QAAQ,CAACM,eAAe,KAAK,2BAA2B,EAAE;AAC5D,UAAA,MAAMC,OAAO,GAAGC,MAAM,CAACtE,IAAI,CAACgD,KAAK,CAACuB,KAAK,CAAC,SAAS,CAACC,MAAM,CAAC,CAAC;UAC1D,IAAIC,6BAAU,CAACpB,cAAc,CAACqB,SAAS,CAAC,KAAKL,OAAO,EAAE;AACpD,YAAA,MAAMM,sCAAmB,CAACtB,cAAc,CAACxG,QAAQ,EAAEwH,OAAO,CAAC;AAC7D,UAAA;AACF,QAAA;AACA,QAAA,MAAMO,mBAAmB,GAAG,MAAMC,iDAA8B,CAAC;UAC/Df,QAAQ;UACRjH,QAAQ,EAAEwG,cAAc,CAACxG,QAAQ;UACjCG,MAAM,EAAEgD,IAAI,CAAChD;AACd,SAAA,CAAC;AACF,QAAA,MAAM8H,aAAa,GAAG,MAAMnH,sBAAsB,CAAC;UACjDf,aAAa;UACbgI,mBAAmB;UACnBR,eAAe,EAAEN,QAAQ,CAACM,eAAe;UACzC,IAAIpE,IAAI,CAAChD,MAAM,GAAG;YAAEA,MAAM,EAAEgD,IAAI,CAAChD;WAAQ,GAAG,EAAE,CAAC;AAC/C,UAAA,IAAIF,cAAc,GAAG;AAAEA,YAAAA;WAAgB,GAAG,EAAE,CAAC;AAC7C,UAAA,IAAIC,SAAS,GAAG;AAAEA,YAAAA;WAAW,GAAG,EAAE;AACnC,SAAA,CAAC;AACFgI,QAAAA,mCAAmB,EAAE;AACrBhH,QAAAA,QAAQ,CAAC;AACPiH,UAAAA,GAAG,EAAE,SAAS;AACdC,UAAAA,SAAS,EAAE,KAAK;AAChBC,UAAAA,OAAO,EACLC,cAAA,CAACC,qCAAkB,EAAA;YACjBC,KAAK,EACHvB,QAAQ,CAACM,eAAe,KAAK,yBAAyB,GAClD,QAAQ,GACR,UAAU;YAEhBpB,KAAK,EAAEhD,IAAI,CAACgD,KAAK;AACjB8B,YAAAA,aAAa,EAAEA,aAAa;YAC5BjI,QAAQ,EAAEwG,cAAc,CAACxG,QAAQ;YACjCG,MAAM,EAAEgD,IAAI,CAAChD,MAAM;AACnBE,YAAAA,mBAAmB,EAAEA,mBAAmB;AACxCoI,YAAAA,OAAO,EAAEjC,cAAc,CAACkC,IAAI,CAACC,IAAI;AACjC/H,YAAAA,SAAS,EAAEA,MAAMA,SAAS,IAAI;YAC9BgI,OAAO,EAAGC,MAAM,IAAI;AAClB,cAAA,MAAMC,OAAO,GAAGC,mCAAgB,CAACF,MAAM,CAAC;cACxCG,wCAAwB,CAACF,OAAO,CAAC;cACjC9F,QAAQ,CAAC8F,OAAO,CAAC;AACnB,YAAA;;AAGL,SAAA,CAAC;AACF,QAAA;AACF,MAAA;AAEA,MAAA,MAAMG,WAAW,GAAG,MAAMC,6CAA0B,CAAC;QACnD/C,KAAK,EAAEhD,IAAI,CAACgD,KAAK;QACjBgB,KAAK,EAAEhE,IAAI,CAACgE,KAAK;AACjBC,QAAAA,WAAW,EAAExH,KAAK;QAClByH,IAAI,EAAEtH,aAAa,CAAC+B,OAAO;AAC3BwF,QAAAA,EAAE,EAAExF,OAAO;QACXhC,YAAY,EAAEqD,IAAI,CAACrD,YAAY;QAC/BK,MAAM,EAAEgD,IAAI,CAAChD;AACd,OAAA,CAAC;AACF,MAAA,MAAMU,qBAAqB,CAAC;QAC1BoI,WAAW;AACX,QAAA,IAAIhJ,cAAc,GAAG;AAAEA,UAAAA;SAAgB,GAAG,EAAE,CAAC;AAC7C,QAAA,IAAIC,SAAS,GAAG;AAAEA,UAAAA;SAAW,GAAG,EAAE,CAAC;QACnC,IAAIG,mBAAmB,KAAKkB,SAAS,GAAG;AAAElB,UAAAA;SAAqB,GAAG,EAAE;AACrE,OAAA,CAAC;AACF6H,MAAAA,mCAAmB,EAAE;AACrBtH,MAAAA,SAAS,IAAI;IACf,CAAC,CAAC,OAAOiI,MAAM,EAAE;AACf,MAAA,IACGA,MAAM,YAAY/B,iBAAY,IAC7B+B,MAAM,CAACM,IAAI,KAAKpC,sBAAiB,CAACqC,aAAa,IACjDC,iCAAc,CAACR,MAAM,CAAC,EACtB;QACAzG,UAAU,CAAC,KAAK,CAAC;AACjB,QAAA;AACF,MAAA;AACA,MAAA,MAAM0G,OAAO,GAAGC,mCAAgB,CAACF,MAAM,CAAC;MACxCG,wCAAwB,CAACF,OAAO,CAAC;MACjC9F,QAAQ,CAAC8F,OAAO,CAAC;MACjBhG,UAAU,CAAC,IAAI,CAAC;MAChBwG,UAAU,CAAC,MAAMxG,UAAU,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;MACxCV,UAAU,CAAC,KAAK,CAAC;AACnB,IAAA;EACF,CAAC;EAED,MAAMmH,aAAa,GAAGtH,kBAAkB,IAAIkB,IAAI,CAAC8C,IAAI,KAAK,MAAM;AAChE,EAAA,MAAMuD,YAAY,GAAGC,yBAAa,CAACzJ,QAAQ,CAAC;EAE5C,IAAImD,IAAI,CAAC8C,IAAI,KAAK,MAAM,IAAI,CAACsD,aAAa,EAAE;IAC1C,OACEjB,cAAA,CAACoB,iBAAU,EAAA;MACTC,KAAK,EAAE,CAAA,mBAAA,EAAsB1G,aAAa,CAAA,CAAE;AAC5C2G,MAAAA,QAAQ,EAAC,qDAAqD;AAC9DjB,MAAAA,IAAI,EAAEL,cAAA,CAACkB,YAAY,EAAA;AAACK,QAAAA,SAAS,EAAC;OAAS;AAAG,KAAA,CAC1C;AAEN,EAAA;AAEA,EAAA,IAAI1G,IAAI,CAAC8C,IAAI,KAAK,MAAM,EAAE;AACxB,IAAA,MAAM6D,SAAS,GAAG3G,IAAI,CAACgD,KAAK,CAAC4D,UAAU,CAAC,SAAS,CAAC,GAC9CC,cAAU,GACVC,gBAAY;AAChB,IAAA,MAAMC,WAAW,GACf3G,uBAAW,CAAC3D,KAAK,EAAEwB,aAAa,CAAC,KAAK+B,IAAI,CAACG,MAAM,GAAG1D,KAAK,GAAG2B,SAAS;IAEvE,OACE4I,eAAA,CAAA,KAAA,EAAA;MACEN,SAAS,EAAEO,IAAI,CACb,2EAA2E,EAC3EnJ,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAC7B;AAAAoJ,MAAAA,QAAA,EAAA,CAEDF,eAAA,CAAA,KAAA,EAAA;AAAKN,QAAAA,SAAS,EAAC,mCAAmC;AAAAQ,QAAAA,QAAA,EAAA,CAChDF,eAAA,CAAA,KAAA,EAAA;AAAKN,UAAAA,SAAS,EAAC,oFAAoF;AAAAQ,UAAAA,QAAA,EAAA,CACjGF,eAAA,CAAA,KAAA,EAAA;AAAKN,YAAAA,SAAS,EAAC,4BAA4B;AAAAQ,YAAAA,QAAA,EAAA,CACzC/B,cAAA,CAAA,MAAA,EAAA;AAAMuB,cAAAA,SAAS,EAAC,sDAAsD;AAAAQ,cAAAA,QAAA,EACnEH,WAAW,GACV5B,cAAA,CAACgC,qBAAS,EAAA;AACR1K,gBAAAA,KAAK,EAAEsK,WAAW;AAClB9I,gBAAAA,aAAa,EAAEA,aAAa;AAC5ByI,gBAAAA,SAAS,EAAC;gBACV,GAEFvB,cAAA,CAAA,MAAA,EAAA;AAAMuB,gBAAAA,SAAS,EAAC;;AACjB,aAAA,CACI,EACPvB,cAAA,CAAA,MAAA,EAAA;AAAMuB,cAAAA,SAAS,EAAC,0CAA0C;AAAAQ,cAAAA,QAAA,EACvDlH,IAAI,CAACtD,MAAM,IAAI;AAAG,aAAA,CACd;AAAA,WAAA,CACH,EACNyI,cAAA,CAAA,KAAA,EAAA;AAAKuB,YAAAA,SAAS,EAAC,MAAM;AAAAQ,YAAAA,QAAA,EACnB/B,cAAA,CAAA,MAAA,EAAA;AAAMuB,cAAAA,SAAS,EAAC,gCAAgC;cAAAQ,QAAA,EAC7ClH,IAAI,CAACG;aAAM;AACP,WAAA,CACH;AAAA,SAAA,CACF,EACN6G,eAAA,CAAA,GAAA,EAAA;AAAGN,UAAAA,SAAS,EAAC,6DAA6D;UAAAQ,QAAA,EAAA,CAAA,KAAA,EACpEE,qBAAU,CAACpH,IAAI,CAACgD,KAAK,CAAC;UACxB;AAAA,OAAA,CACA,EAENgE,eAAA,CAAA,KAAA,EAAA;AAAKN,QAAAA,SAAS,EAAC,sCAAsC;AAAAQ,QAAAA,QAAA,EAAA,CACnDF,eAAA,CAAA,KAAA,EAAA;AAAKN,UAAAA,SAAS,EAAC,qBAAqB;AAAAQ,UAAAA,QAAA,EAAA,CAClC/B,cAAA,CAAA,KAAA,EAAA;AAAKuB,YAAAA,SAAS,EAAEW,mBAAmB;AAAAH,YAAAA,QAAA,EAAA;AAAA,WAAA,CAAY,EAC/CF,eAAA,CAACM,oBAAY,EAAA;AACXC,YAAAA,IAAI,EAAC,mBAAmB;YACxBC,OAAO,EAAEA,MAAK;cACZjI,iBAAiB,CAAC,IAAI,CAAC;cACvB,KAAKkI,SAAS,CAACC,SAAS,CAACC,SAAS,CAAC/K,aAAa,CAAC+B,OAAO,CAAC;cACzDwH,UAAU,CAAC,MAAM5G,iBAAiB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;YAClD,CAAC;YAAA,IACI,CAACzB,QAAQ,IAAI;AAChB8J,cAAAA,YAAY,EAAEA,MAAMzI,iBAAiB,CAAC,IAAI,CAAC;AAC3C0I,cAAAA,YAAY,EAAEA,MAAM1I,iBAAiB,CAAC,KAAK;AAC5C,aAAA,CAAC;YACFuH,SAAS,EAAEO,IAAI,CACb,0FAA0F,EAC1F3H,cAAc,GAAG,kBAAkB,GAAG,iBAAiB,CACxD;AAAA4H,YAAAA,QAAA,EAAA,CAEDF,eAAA,CAAA,MAAA,EAAA;AAAMN,cAAAA,SAAS,EAAC,2DAA2D;AAAAQ,cAAAA,QAAA,EAAA,CACzE/B,cAAA,CAAC2C,gCAAe,EAAA;AAACtC,gBAAAA,IAAI,EAAEuC,0BAAQ;AAAErB,gBAAAA,SAAS,EAAC;AAAQ,eAAA,CAAG,EACtDvB,cAAA,CAAA,MAAA,EAAA;AAAMuB,gBAAAA,SAAS,EAAC,0HAA0H;AAAAQ,gBAAAA,QAAA,EACxI/B,cAAA,CAACwB,SAAS,EAAA;AAACD,kBAAAA,SAAS,EAAC;iBAAU;AAAG,eAAA,CAC7B;cACF,EACPvB,cAAA,CAAA,MAAA,EAAA;AAAMuB,cAAAA,SAAS,EAAC,0BAA0B;AAAAQ,cAAAA,QAAA,EACvCc,qBAAe,CAACpL,aAAa,CAAC+B,OAAO;AAAC,aAAA,CAClC,EACPwG;AACEuB,cAAAA,SAAS,EAAEO,IAAI,CACb,sCAAsC,EACtC/H,cAAc,IAAII,cAAc,IAAIxB,QAAQ,GACxC,SAAS,GACT,UAAU,CACf;AAAAoJ,cAAAA,QAAA,EAEDF,eAAA,CAAA,KAAA,EAAA;AAAKN,gBAAAA,SAAS,EAAC,UAAU;AAAAQ,gBAAAA,QAAA,EAAA,CACvB/B,cAAA,CAAC2C,gCAAe,EAAA;AACdtC,kBAAAA,IAAI,EAAElG,cAAc,GAAG2I,yBAAO,GAAGC,wBAAM;kBACvCxB,SAAS,EAAEO,IAAI,CACb,mBAAmB,EACnB3H,cAAc,GACV,2CAA2C,GAC3C,+CAA+C;AACpD,iBAAA,CACD,EACDA,cAAc,IACb6F,cAAA,CAAC2C,gCAAe;AACdtC,kBAAAA,IAAI,EAAEyC,yBAAO;AACbvB,kBAAAA,SAAS,EAAC;AAAgF,iBAAA,CAE7F;eAAA;AACG,aAAA,CACF;AAAA,WAAA,CACO;UACX,EAENM,eAAA,CAAA,KAAA,EAAA;AAAKN,UAAAA,SAAS,EAAC,qBAAqB;qBAClCvB,cAAA,CAAA,KAAA,EAAA;AAAKuB,YAAAA,SAAS,EAAEW,mBAAmB;AAAAH,YAAAA,QAAA,EAAA;AAAA,WAAA,CAAU,EAC7CF,eAAA,CAACM,oBAAY;AACXC,YAAAA,IAAI,EAAC,iBAAiB;YACtBC,OAAO,EAAEA,MAAK;cACZ/H,aAAa,CAAC,IAAI,CAAC;AACnB,cAAA,KAAKgI,SAAS,CAACC,SAAS,CAACC,SAAS,CAAChJ,OAAO,CAAC;cAC3CwH,UAAU,CAAC,MAAM1G,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;YAC9C,CAAC;YAAA,IACI,CAAC3B,QAAQ,IAAI;AAChB8J,cAAAA,YAAY,EAAEA,MAAMvI,eAAe,CAAC,IAAI,CAAC;AACzCwI,cAAAA,YAAY,EAAEA,MAAMxI,eAAe,CAAC,KAAK;aAC1C,CAAC;YACFqH,SAAS,EAAEO,IAAI,CACb,0FAA0F,EAC1FzH,UAAU,GAAG,kBAAkB,GAAG,iBAAiB,CACpD;AAAA0H,YAAAA,QAAA,EAAA,CAED/B,eAACkB,YAAY,EAAA;AAACK,cAAAA,SAAS,EAAC;AAAiB,aAAA,CAAG,EAC5CvB,cAAA,CAAA,MAAA,EAAA;AAAMuB,cAAAA,SAAS,EAAC,SAAS;AAAA,cAAA,aAAA,EAAa,yBAAyB;cAAAQ,QAAA,EAC5Dc,qBAAe,CAACrJ,OAAO;AAAC,aAAA,CACpB,EACPwG,cAAA,CAAA,KAAA,EAAA;AACEuB,cAAAA,SAAS,EAAEO,IAAI,CACb,sCAAsC,EACtC7H,YAAY,IAAII,UAAU,IAAI1B,QAAQ,GAClC,SAAS,GACT,UAAU,CACf;AAAAoJ,cAAAA,QAAA,EAEDF,eAAA,CAAA,KAAA,EAAA;AAAKN,gBAAAA,SAAS,EAAC,UAAU;AAAAQ,gBAAAA,QAAA,EAAA,CACvB/B,cAAA,CAAC2C,gCAAe,EAAA;AACdtC,kBAAAA,IAAI,EAAEhG,UAAU,GAAGyI,yBAAO,GAAGC,wBAAM;kBACnCxB,SAAS,EAAEO,IAAI,CACb,mBAAmB,EACnBzH,UAAU,GACN,2CAA2C,GAC3C,+CAA+C;AACpD,iBAAA,CACD,EACDA,UAAU,IACT2F,cAAA,CAAC2C,gCAAe;AACdtC,kBAAAA,IAAI,EAAEyC,yBAAO;AACbvB,kBAAAA,SAAS,EAAC;AAAgF,iBAAA,CAE7F;;AACG,aAAA,CACF;AAAA,WAAA,CACO;AAAA,SAAA,CACX;AAAA,OAAA,CACF,EAENvB,cAAA,CAACmC,oBAAY,EAAA;AACXC,QAAAA,IAAI,EAAC,sBAAsB;AAC3BC,QAAAA,OAAO,EAAEA,MAAM,KAAKtE,IAAI,EAAE;QAC1BiF,QAAQ,EAAE,CAACtF,OAAO;AAClBuF,QAAAA,OAAO,EAAEpJ,OAAO;AAChBqJ,QAAAA,gBAAgB,EAAC,qDAAqD;QACtE3B,SAAS,EAAEO,IAAI,CACb,kGAAkG,EAClGvH,OAAO,IAAI,eAAe,CAC3B;;QAGY,EACfyF,cAAA,CAAA,GAAA,EAAA;AAAA,QAAA,aAAA,EACc,uBAAuB;QACnCuB,SAAS,EAAEO,IAAI,CACb,iGAAiG,EACjGrH,KAAK,GACD,iCAAiC,GACjC,wCAAwC,CAC7C;AAAAsH,QAAAA,QAAA,EAEAtH;AAAK,OAAA,CACJ;AAAA,KAAA,CACA;AAEV,EAAA;EAEA,OACEoH,eAAA,CAAA,KAAA,EAAA;IACEN,SAAS,EAAEO,IAAI,CACb,sEAAsE,EACtEnJ,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAC7B;AAAAoJ,IAAAA,QAAA,EAAA,CAEDF;AAAKN,MAAAA,SAAS,EAAC,0BAA0B;AAAAQ,MAAAA,QAAA,EAAA,CACvC/B,cAAA,CAAA,GAAA,EAAA;AAAGuB,QAAAA,SAAS,EAAC,uBAAuB;QAAAQ,QAAA,EAAElH,IAAI,CAACwG;AAAK,OAAA,CAAK,EACrDrB,cAAA,CAAA,GAAA,EAAA;AAAGuB,QAAAA,SAAS,EAAC,uDAAuD;QAAAQ,QAAA,EACjElH,IAAI,CAACsI;AAAY,OAAA,CAChB,EACH3J,OAAO,GACNwG,cAAA,CAACoD,oBAAoB,EAAA;AAAC5J,QAAAA,OAAO,EAAEA,OAAO;AAAE9B,QAAAA,QAAQ,EAAEiD;OAAa,CAAI,GACjE,IAAI;KAAA,CACJ,EACLE,IAAI,CAACwI,QAAQ,IACZrD,cAAA,CAACmC,oBAAY,EAAA;AACXC,MAAAA,IAAI,EAAC,sBAAsB;AAC3BC,MAAAA,OAAO,EAAEA,MAAM/J,SAAS,IAAI;AAC5BiJ,MAAAA,SAAS,EAAC,kGAAkG;AAAAQ,MAAAA,QAAA,EAAA;AAAA,KAAA,CAI/G,EACAtH,KAAK,IACJuF,cAAA,CAAA,GAAA,EAAA;AACEuB,MAAAA,SAAS,EAAC,wDAAwD;AAAA,MAAA,aAAA,EACtD,uBAAuB;AAAAQ,MAAAA,QAAA,EAElCtH;AAAK,KAAA,CAET;AAAA,GAAA,CACG;AAEV;AAEA,SAAS2I,oBAAoBA,CAAC/L,KAA4C,EAAA;EACxE,MAAM;IAAEmC,OAAO;AAAE9B,IAAAA;AAAQ,GAAE,GAAGL,KAAK;EACnC,MAAM,CAACiM,MAAM,EAAEC,SAAS,CAAC,GAAGhK,cAAQ,CAAC,KAAK,CAAC;EAE3C,OACEsI,eAAA,CAAA,KAAA,EAAA;AAAKN,IAAAA,SAAS,EAAC,8CAA8C;eAC3DM,eAAA,CAAA,KAAA,EAAA;AAAKN,MAAAA,SAAS,EAAC,wEAAwE;AAAAQ,MAAAA,QAAA,EAAA,CACpFrK,QAAQ;MACL,EACNmK,eAAA,CAAA,QAAA,EAAA;AACE2B,MAAAA,IAAI,EAAC,QAAQ;AAAA,MAAA,aAAA,EACD,yBAAyB;MACrCnB,OAAO,EAAEA,MAAK;QACZ,KAAKC,SAAS,CAACC,SAAS,CACrBC,SAAS,CAAChJ,OAAO,CAAC,CAClBiK,IAAI,CAAC,MAAK;UACTF,SAAS,CAAC,IAAI,CAAC;UACf/G,MAAM,CAACwE,UAAU,CAAC,MAAMuC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;AACjD,QAAA,CAAC,CAAC,CACDG,KAAK,CAAC,MAAMzK,SAAS,CAAC;MAC3B,CAAC;AACDsI,MAAAA,SAAS,EAAC,gIAAgI;AAAAQ,MAAAA,QAAA,EAAA,CAE1I/B;AAAMuB,QAAAA,SAAS,EAAC,mCAAmC;QAAAQ,QAAA,EAChDc,qBAAe,CAACrJ,OAAO;AAAC,OAAA,CACpB,EACPwG,cAAA,CAAC2C,gCAAe,EAAA;AACdtC,QAAAA,IAAI,EAAEiD,MAAM,GAAGR,yBAAO,GAAGC,wBAAM;QAC/BxB,SAAS,EAAEO,IAAI,CACb,UAAU,EACVwB,MAAM,GACF,2CAA2C,GAC3C,+CAA+C;QAErD;AAAA,KAAA,CACK;AAAA,GAAA,CACL;AAEV;AAEA,MAAMpB,mBAAmB,GACvB,wEAAwE;;;;"}