@huma-finance/widgets 0.0.62-beta.633 → 0.0.62-beta.635

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 (43) hide show
  1. package/API.md +195 -0
  2. package/dist/cjs/index.cjs +1871 -299
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/index.d.ts +138 -2
  5. package/dist/index.js +1869 -302
  6. package/dist/index.js.map +1 -1
  7. package/package.json +18 -8
  8. package/src/components/CreditLine/paymentV2/1-ChooseAmount.tsx +1 -0
  9. package/src/components/CreditLine/solanaBorrow/1-ChooseAmount.tsx +67 -0
  10. package/src/components/CreditLine/solanaBorrow/2-Transfer.tsx +159 -0
  11. package/src/components/CreditLine/solanaBorrow/3-Done.tsx +38 -0
  12. package/src/components/CreditLine/solanaBorrow/index.tsx +93 -0
  13. package/src/components/CreditLine/solanaPayment/1-ChooseAmount.tsx +75 -0
  14. package/src/components/CreditLine/solanaPayment/2-Transfer.tsx +92 -0
  15. package/src/components/CreditLine/solanaPayment/3-Done.tsx +60 -0
  16. package/src/components/CreditLine/solanaPayment/index.tsx +86 -0
  17. package/src/components/InputAmountModal.tsx +13 -2
  18. package/src/components/Lend/{supplyV2/components → components}/PersonaEvaluation.tsx +19 -13
  19. package/src/components/Lend/{supplyV2/components → components}/SecuritizeEvaluation.tsx +7 -8
  20. package/src/components/Lend/solanaAddRedemption/1-ChooseTranche.tsx +114 -0
  21. package/src/components/Lend/solanaAddRedemption/2-ChooseAmount.tsx +183 -0
  22. package/src/components/Lend/solanaAddRedemption/3-Transfer.tsx +102 -0
  23. package/src/components/Lend/solanaAddRedemption/4-Done.tsx +29 -0
  24. package/src/components/Lend/solanaAddRedemption/index.tsx +155 -0
  25. package/src/components/Lend/solanaCancelRedemption/1-ChooseTranche.tsx +114 -0
  26. package/src/components/Lend/solanaCancelRedemption/2-Transfer.tsx +99 -0
  27. package/src/components/Lend/solanaCancelRedemption/3-Done.tsx +55 -0
  28. package/src/components/Lend/solanaCancelRedemption/index.tsx +162 -0
  29. package/src/components/Lend/solanaSupply/1-Evaluation.tsx +43 -0
  30. package/src/components/Lend/solanaSupply/2-ChooseTranche.tsx +116 -0
  31. package/src/components/Lend/solanaSupply/3-ChooseAmount.tsx +131 -0
  32. package/src/components/Lend/solanaSupply/4-Transfer.tsx +137 -0
  33. package/src/components/Lend/solanaSupply/5-Success.tsx +52 -0
  34. package/src/components/Lend/solanaSupply/index.tsx +155 -0
  35. package/src/components/Lend/supplyV2/2-Evaluation.tsx +4 -3
  36. package/src/components/Lend/supplyV2/6-Success.tsx +3 -3
  37. package/src/components/SolanaTxDoneModal.tsx +119 -0
  38. package/src/components/SolanaTxSendModal.tsx +61 -0
  39. package/src/components/SolanaViewOnExplorer.tsx +29 -0
  40. package/src/components/WidgetWrapper.tsx +6 -4
  41. package/src/index.tsx +139 -0
  42. package/src/store/widgets.reducers.ts +5 -0
  43. package/src/store/widgets.store.ts +1 -0
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { JsonRpcProvider } from '@ethersproject/providers';
2
- import { txAtom, useMQ, sendTxAtom, usePoolUnderlyingTokenContract, useMount, usePoolInfo, useAccountStats, usePoolInfoV2, usePoolUnderlyingTokenInfoV2, usePoolSafeAllowanceV2, useAuthErrorHandling, useCLFeeManager, useCLPoolAllowance, usePoolContract, useCreditContractV2, useCreditStatsV2, useFirstLossCoverContractV2, useFirstLossCoverRequirementV2, useFirstLossCoverAllowanceV2, useFeeManager, useInvoiceNFTContract, useRFPoolAllowance, useLenderDepositRecordV2, useLPConfigV2, useNextEpochStartTimeV2, useTrancheVaultContractV2, useCancellableRedemptionInfoV2, useParamsSearch, usePoolAllowance, useLenderApproved, useLenderPosition, useWithdrawlLockoutInSeconds, usePoolUnderlyingTokenBalance, usePoolUnderlyingTokenBalanceV2, useLenderApprovedV2, useTrancheVaultAssetsV2, useLastDepositTime, usePoolBalance, useReceivableInfoV2, useReceivableContractV2, useERC2612Permit, useMultiSendContract, useFactoring, Provider as Provider$1 } from '@huma-finance/web-shared';
2
+ import { txAtom, useMQ, sendTxAtom, usePoolUnderlyingTokenContract, useMount, usePoolInfo, useAccountStats, usePoolInfoV2, usePoolUnderlyingTokenInfoV2, usePoolSafeAllowanceV2, useAuthErrorHandling, useCLFeeManager, useCLPoolAllowance, usePoolContract, useCreditContractV2, useCreditStatsV2, useFirstLossCoverContractV2, useFirstLossCoverRequirementV2, useFirstLossCoverAllowanceV2, useFeeManager, useInvoiceNFTContract, useRFPoolAllowance, useLenderDepositRecordV2, useLPConfigV2, useNextEpochStartTimeV2, useTrancheVaultContractV2, useCancellableRedemptionInfoV2, useParamsSearch, usePoolAllowance, useLenderApproved, useLenderPosition, useWithdrawlLockoutInSeconds, usePoolUnderlyingTokenBalance, useChainInfo, usePoolUnderlyingTokenBalanceV2, useLenderApprovedV2, useTrancheVaultAssetsV2, useLastDepositTime, usePoolBalance, useReceivableInfoV2, useReceivableContractV2, useERC2612Permit, useMultiSendContract, useFactoring, useLenderAccounts, useHumaProgram, useTokenAccount, useTrancheMintAccounts, useTrancheTokenAccounts, useBorrowerAccounts, Provider as Provider$1 } from '@huma-finance/web-shared';
3
3
  import { useTheme, css, Box, Typography, Tooltip, Button, Dialog, Slider, Input, Divider, TextField, FormControl, FormLabel, RadioGroup, FormControlLabel, Radio, Snackbar, Alert, Link, createTheme, ThemeProvider } from '@mui/material';
4
4
  import { useAtom, Provider as Provider$2 } from 'jotai';
5
5
  import React, { useCallback, useState, useEffect, useMemo, useRef } from 'react';
6
6
  import { useSelector, useDispatch, Provider } from 'react-redux';
7
- import { supportedChainId, isTxFailed, getExplorerUrl, openInNewTab, TxStateType, decodeLogs, ERC20_ABI, downScale, formatMoney, POOL_NAME, POOL_TYPE, getERC20Contract, checkIsDev, EAService, EARejectionError, EARejectMessage, EARejectReason, timeUtil, formatNumber, doesChainSupportNotifi, CreditState, isEmpty, CreditStateV2, upScale, toBigNumber, TRANSFER_ABI, FirstLossCoverIndex, combineStyles, timestampToLL, getTrancheAssetsAndShares, IdentityService, CHAINS, configUtil, IdentityServiceV2, IdentityVerificationStatusV2, CampaignService, CAMPAIGN_REFERENCE_CODE, KYC_PROVIDER, formatAmount, getTrancheVaultContractV2, getTrancheRedemptionStatusV2, getPoolContractV2, CURRENCY_CODE, SuperfluidPoolProcessor_ABI, PoolMap, ChainEnum, getBlockchainConfigFromChain } from '@huma-finance/shared';
7
+ import { supportedChainId, isTxFailed, getExplorerUrl, openInNewTab, TxStateType, decodeLogs, ERC20_ABI, downScale, formatMoney, POOL_NAME, POOL_TYPE, getERC20Contract, checkIsDev, EAService, EARejectionError, EARejectMessage, EARejectReason, timeUtil, formatNumber, doesChainSupportNotifi, CreditState, isEmpty, CreditStateV2, upScale, toBigNumber, TRANSFER_ABI, FirstLossCoverIndex, combineStyles, timestampToLL, getTrancheAssetsAndShares, IdentityService, CHAINS, configUtil, IdentityServiceV2, IdentityVerificationStatusV2, CampaignService, CAMPAIGN_REFERENCE_CODE, KYC_PROVIDER, CHAIN_TYPE, formatAmount, getTrancheVaultContractV2, getTrancheRedemptionStatusV2, getPoolContractV2, CURRENCY_CODE, SuperfluidPoolProcessor_ABI, PoolMap, SolanaTokenUtils, getSolanaExplorerUrl, getTokenAccounts, getSentinelAddress, getCreditAccounts, ChainEnum, getBlockchainConfigFromChain } from '@huma-finance/shared';
8
8
  import { useWeb3React } from '@web3-react/core';
9
9
  import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
10
10
  import { useResetAtom } from 'jotai/utils';
@@ -26,6 +26,10 @@ import Persona from 'persona';
26
26
  import { drawdownWithReceivable, HumaContext, HumaReceivableFactory, makePaymentWithReceivable, makePrincipalPaymentAndDrawdownWithReceivable } from '@huma-finance/sdk';
27
27
  import moment from 'moment';
28
28
  import { getAddress } from '@ethersproject/address';
29
+ import { BN } from '@coral-xyz/anchor';
30
+ import { TOKEN_2022_PROGRAM_ID, getAccount, TokenAccountNotFoundError, TokenInvalidAccountOwnerError, createAssociatedTokenAccountInstruction, ASSOCIATED_TOKEN_PROGRAM_ID, createApproveCheckedInstruction } from '@solana/spl-token';
31
+ import { useWallet, useConnection } from '@solana/wallet-adapter-react';
32
+ import { Transaction, PublicKey } from '@solana/web3.js';
29
33
  import { arrayify } from '@ethersproject/bytes';
30
34
 
31
35
  function _taggedTemplateLiteral(strings, raw) {
@@ -89,6 +93,7 @@ const widgetSlice = createSlice({
89
93
  state.withdrawShares = undefined;
90
94
  state.redeemAmount = undefined;
91
95
  state.redeemShares = undefined;
96
+ state.solanaSignature = undefined;
92
97
  },
93
98
  setStep: (state, _ref) => {
94
99
  let {
@@ -179,10 +184,16 @@ const widgetSlice = createSlice({
179
184
  } = _ref12;
180
185
  state.multisend = payload;
181
186
  },
182
- setError: (state, _ref13) => {
187
+ setSolanaSignature: (state, _ref13) => {
183
188
  let {
184
189
  payload
185
190
  } = _ref13;
191
+ state.solanaSignature = payload;
192
+ },
193
+ setError: (state, _ref14) => {
194
+ let {
195
+ payload
196
+ } = _ref14;
186
197
  state.errorMessage = payload.errorMessage;
187
198
  state.errorReason = payload.errorReason;
188
199
  state.step = WIDGET_STEP.Error;
@@ -203,7 +214,8 @@ const {
203
214
  setWithdrawAmount,
204
215
  setWithdrawShares,
205
216
  setRedeemAmount,
206
- setRedeemShares
217
+ setRedeemShares,
218
+ setSolanaSignature
207
219
  } = widgetSlice.actions;
208
220
  var widgetsReducers = widgetSlice.reducer;
209
221
 
@@ -213,7 +225,7 @@ var SorryImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU8AAAFTCAYAAAC52Y
213
225
 
214
226
  var AutoPaybackImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbcAAAFkCAYAAACjPXVqAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAJL6SURBVHgB7Z0JYBNl+sbfaQu9S7hvGu6blhuk2nCoKCpVUVfdXYq7KuquoKviqru064nrCnU90PW/tIsHIkirAgJCUwXkppX7bApyI6SUFgql+c/7zUwySXNOJpmkfX+7sWmSljRfMs+83/d8zwtAEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBeAsHBEEQRL1Bx4NfZBeIjIzUS/dfu3bNJHs4XjcjUM8gcSPUIOO5556bGRcXl7p+/fr8lStXFvC3GUH44BAEoTKigOl50Uq1WCypffr0SW7btm1q+/btdbGxsbqOHTtCkyZN2GM7derk9HccOXIEysvL4cKFC+w6r2/FFRUV5nXr1pXU1taa+IcU4yVchY/EjfALvV4/c968eVkGgwFycnIgKysLxM+Cib8M5C/17oyQIIINr2UoZAYUsJSUlHResFL79esH/fv3Z+IlCZla7NixgwkeL3RQVlZW/N133xVzHFfAV30odiYgiHrOzOLiYgvCi5qF/97xkgUEQSiCFzRDs2bN5tx7772l77//vuXHH3+0aAn++3/9618tt99+eyH/3Kaj4AJBeACnGAziRQ/hgX727NnsTT9nzhxJzM7zFZyFr+ak70uBIAivQUHjK7I506dPP//tt99a+CrJEorw1ZwFBXfkyJEodJkkdIQjug5t9DOfefj1819/tN2Cl1nPzbM8fN9z29u27DCHvz8VQpQnn3yyFN/kpaWlFv6NLQmZfsaMGed5pNvwogOCIFyC62d8hTYzIyPjPFZHoSporvj5558tjz/+uIX/G+aRyBGMLh17Fm/9+rzlwBqL08snbxdafn/nk6X9ew6eB0JVFxLw1dlMFDVErNKYsOF9zzzzTD7e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Pc6+xkYkMiOM3R5ti/RrHPbw8V9fLb0711RFIcmEZ0jcCIJIbR2tN3SPGzi5Z/zg1EFNxjLRYchUS/gvZ/2vfTUnXyATzSicnVPT7qqjSUSen8mEMyLCJpBiL7xtF1bDB0f/NJC/sRgIwgMkbgRByNGDaEjpL3NeMura8+tsJ5D3pZOwbSIHuxtlJhFhWrPWIqme7V/hf1GtOFWZ+8uLxevOLx4IBOEFJG4EQbhCz18M1zW9fWJybJ+MgUljoUUjMdxZfIB9tJdYgbH0kwjZ9gIpF9NB+RymIq2PlPbayTaSowvzr/vGkZGE8BoSN4IgvAGdl4YBiTdkdIjpPrFfYpoODSkIZ9+VQLY/zhl1I76s1Arf2wTONiu6/vwSmHfshc5Ae9sILyFxIwhCCcx52TV2oGFwE2zCOky41SJtCHcyFelYxcldKPKN4Q4Px5tfPXhProm6bRM+QOJGEIS/GLrGp2boY/pO7J0wXI+GFCFdxJX5RI6TSs7hK3YT/+fhyaOBum0TPkDiRhCEmmAciWFs89/w63T9DL3ih0Fz1oTV8zQlYlfRsU5uHHx6/DXTml9pbxvhGyRuBEEECj1/MQxpcvPklMQbWLfx5qLz0rGas24Yt6alCPvosJHq8/tuJCMJ4TMkbgRBBAM9fzH0Sbhu4tAmNxk6x/bTdYrtbbX5u+L7s5+aPj/xGk5JmoAgfIDEjSAILWBNWAckpqfzU5f6XnxV57gut+z0x+bFp2ajsNGmbcJnSNwIgtAa1oS1d/yIlMYRMalXai+bN5qX5Z27emIOUMVGEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEAQRXP4f8kfGser8rBoAAAAASUVORK5CYII=";
215
227
 
216
- var _templateObject$l, _templateObject2$k, _templateObject3$e, _templateObject4$a, _templateObject5$7, _templateObject6$6, _templateObject7$5, _templateObject8$3;
228
+ var _templateObject$p, _templateObject2$o, _templateObject3$i, _templateObject4$b, _templateObject5$8, _templateObject6$7, _templateObject7$5, _templateObject8$3;
217
229
  function ErrorModal(_ref) {
218
230
  let {
219
231
  title,
@@ -230,12 +242,12 @@ function ErrorModal(_ref) {
230
242
  errorReason = 'Oops! Something went wrong';
231
243
  }
232
244
  const styles = {
233
- wrapper: css(_templateObject$l || (_templateObject$l = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
234
- header: css(_templateObject2$k || (_templateObject2$k = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
235
- sorry: css(_templateObject3$e || (_templateObject3$e = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n margin-right: ", ";\n & > img {\n width: 170px;\n }\n "])), theme.cssMixins.rowHCentered, theme.spacing(12), theme.spacing(4)),
236
- content: css(_templateObject4$a || (_templateObject4$a = _taggedTemplateLiteral(["\n box-sizing: border-box;\n width: 100%;\n display: inline-table;\n padding: ", ";\n position: relative;\n margin-top: ", ";\n height: 79px;\n "])), theme.spacing(2, 0), theme.spacing(9)),
237
- errorIcon: css(_templateObject5$7 || (_templateObject5$7 = _taggedTemplateLiteral(["\n position: absolute;\n font-size: 20px;\n color: ", ";\n margin: ", ";\n "])), theme.palette.error.main, theme.spacing(0, 2)),
238
- messageWrapper: css(_templateObject6$6 || (_templateObject6$6 = _taggedTemplateLiteral(["\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n padding-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(6)),
245
+ wrapper: css(_templateObject$p || (_templateObject$p = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
246
+ header: css(_templateObject2$o || (_templateObject2$o = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
247
+ sorry: css(_templateObject3$i || (_templateObject3$i = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n margin-right: ", ";\n & > img {\n width: 170px;\n }\n "])), theme.cssMixins.rowHCentered, theme.spacing(12), theme.spacing(4)),
248
+ content: css(_templateObject4$b || (_templateObject4$b = _taggedTemplateLiteral(["\n box-sizing: border-box;\n width: 100%;\n display: inline-table;\n padding: ", ";\n position: relative;\n margin-top: ", ";\n height: 79px;\n "])), theme.spacing(2, 0), theme.spacing(9)),
249
+ errorIcon: css(_templateObject5$8 || (_templateObject5$8 = _taggedTemplateLiteral(["\n position: absolute;\n font-size: 20px;\n color: ", ";\n margin: ", ";\n "])), theme.palette.error.main, theme.spacing(0, 2)),
250
+ messageWrapper: css(_templateObject6$7 || (_templateObject6$7 = _taggedTemplateLiteral(["\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n padding-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(6)),
239
251
  errorMessage: css(_templateObject7$5 || (_templateObject7$5 = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-size: 14px;\n font-weight: 400;\n color: ", ";\n cursor: pointer;\n display: -webkit-box;\n line-height: 16px;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-right: ", ";\n "])), theme.spacing(0.5), theme.palette.text.primary, theme.spacing(2)),
240
252
  okButton: css(_templateObject8$3 || (_templateObject8$3 = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
241
253
  };
@@ -1608,7 +1620,7 @@ function HumaLoading(_ref2) {
1608
1620
  });
1609
1621
  }
1610
1622
 
1611
- var _templateObject$k, _templateObject2$j, _templateObject3$d, _templateObject4$9;
1623
+ var _templateObject$o, _templateObject2$n, _templateObject3$h, _templateObject4$a;
1612
1624
  function WrapperModal(_ref) {
1613
1625
  let {
1614
1626
  title,
@@ -1617,10 +1629,10 @@ function WrapperModal(_ref) {
1617
1629
  } = _ref;
1618
1630
  const theme = useTheme();
1619
1631
  const styles = {
1620
- wrapper: css(_templateObject$k || (_templateObject$k = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
1621
- header: css(_templateObject2$j || (_templateObject2$j = _taggedTemplateLiteral(["\n ", ";\n font-weight: 700;\n font-size: 20px;\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
1622
- content: css(_templateObject3$d || (_templateObject3$d = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(4), theme.palette.text.secondary),
1623
- bottom: css(_templateObject4$9 || (_templateObject4$9 = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
1632
+ wrapper: css(_templateObject$o || (_templateObject$o = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
1633
+ header: css(_templateObject2$n || (_templateObject2$n = _taggedTemplateLiteral(["\n ", ";\n font-weight: 700;\n font-size: 20px;\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
1634
+ content: css(_templateObject3$h || (_templateObject3$h = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(4), theme.palette.text.secondary),
1635
+ bottom: css(_templateObject4$a || (_templateObject4$a = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
1624
1636
  };
1625
1637
  return jsxs(Box, {
1626
1638
  css: styles.wrapper,
@@ -1635,7 +1647,7 @@ function WrapperModal(_ref) {
1635
1647
  });
1636
1648
  }
1637
1649
 
1638
- var _templateObject$j, _templateObject2$i;
1650
+ var _templateObject$n, _templateObject2$m;
1639
1651
  function LoadingModal(_ref) {
1640
1652
  let {
1641
1653
  title,
@@ -1645,8 +1657,8 @@ function LoadingModal(_ref) {
1645
1657
  } = _ref;
1646
1658
  const theme = useTheme();
1647
1659
  const styles = {
1648
- loader: css(_templateObject$j || (_templateObject$j = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n "])), theme.cssMixins.rowHCentered),
1649
- bottom: css(_templateObject2$i || (_templateObject2$i = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
1660
+ loader: css(_templateObject$n || (_templateObject$n = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n "])), theme.cssMixins.rowHCentered),
1661
+ bottom: css(_templateObject2$m || (_templateObject2$m = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
1650
1662
  };
1651
1663
  return jsxs(WrapperModal, {
1652
1664
  title: title,
@@ -1673,7 +1685,8 @@ function WidgetWrapper(_ref) {
1673
1685
  const theme = useTheme();
1674
1686
  const dispatch = useAppDispatch();
1675
1687
  const {
1676
- step
1688
+ step,
1689
+ solanaSignature
1677
1690
  } = useAppSelector(selectWidgetState);
1678
1691
  const [{
1679
1692
  state,
@@ -1689,12 +1702,14 @@ function WidgetWrapper(_ref) {
1689
1702
  }
1690
1703
  }, [dispatch, failReason, state]);
1691
1704
  useEffect(() => {
1692
- if (step === WIDGET_STEP.Done && txReceipt) {
1693
- if (handleSuccess) {
1705
+ if (step === WIDGET_STEP.Done && (txReceipt || solanaSignature)) {
1706
+ if (handleSuccess && txReceipt) {
1694
1707
  handleSuccess(txReceipt.blockNumber);
1708
+ } else if (handleSuccess && solanaSignature) {
1709
+ handleSuccess(0); // solana tx doesn't have block number
1695
1710
  }
1696
1711
  }
1697
- }, [handleSuccess, step, txReceipt]);
1712
+ }, [handleSuccess, solanaSignature, step, txReceipt]);
1698
1713
  const handleCloseModal = useCallback(() => {
1699
1714
  reset();
1700
1715
  dispatch(resetState());
@@ -1721,7 +1736,7 @@ function WidgetWrapper(_ref) {
1721
1736
  });
1722
1737
  }
1723
1738
 
1724
- var _templateObject$i;
1739
+ var _templateObject$m;
1725
1740
  function BottomButton(_ref) {
1726
1741
  let {
1727
1742
  variant,
@@ -1729,7 +1744,7 @@ function BottomButton(_ref) {
1729
1744
  onClick,
1730
1745
  children
1731
1746
  } = _ref;
1732
- const styles = css(_templateObject$i || (_templateObject$i = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])));
1747
+ const styles = css(_templateObject$m || (_templateObject$m = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])));
1733
1748
  return jsx(Box, {
1734
1749
  css: styles,
1735
1750
  children: jsx(Button, {
@@ -1762,7 +1777,7 @@ function ViewOnExplorer(_ref) {
1762
1777
  });
1763
1778
  }
1764
1779
 
1765
- var _templateObject$h, _templateObject2$h;
1780
+ var _templateObject$l, _templateObject2$l;
1766
1781
  function ApproveAllowanceModal(_ref) {
1767
1782
  let {
1768
1783
  poolInfo,
@@ -1800,8 +1815,8 @@ function ApproveAllowanceModal(_ref) {
1800
1815
  }
1801
1816
  }, [handleSuccess, reset, resetAfterSuccess, state, symbol]);
1802
1817
  const styles = {
1803
- iconWrapper: css(_templateObject$h || (_templateObject$h = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 220px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(6)),
1804
- description: css(_templateObject2$h || (_templateObject2$h = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n padding: ", ";\n "])), theme.spacing(4), theme.palette.text.secondary, theme.spacing(0, 1))
1818
+ iconWrapper: css(_templateObject$l || (_templateObject$l = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 220px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(6)),
1819
+ description: css(_templateObject2$l || (_templateObject2$l = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n padding: ", ";\n "])), theme.spacing(4), theme.palette.text.secondary, theme.spacing(0, 1))
1805
1820
  };
1806
1821
  const sendIncreaseAllowance = useCallback(async () => {
1807
1822
  const allowanceSpender = spender !== null && spender !== void 0 ? spender : poolInfo.pool;
@@ -1871,7 +1886,7 @@ function ApproveAllowance$c(_ref) {
1871
1886
  });
1872
1887
  }
1873
1888
 
1874
- var _templateObject$g, _templateObject2$g, _templateObject3$c, _templateObject4$8, _templateObject5$6, _templateObject6$5;
1889
+ var _templateObject$k, _templateObject2$k, _templateObject3$g, _templateObject4$9, _templateObject5$7, _templateObject6$6;
1875
1890
  function TxDoneModal(_ref) {
1876
1891
  let {
1877
1892
  content,
@@ -1883,12 +1898,12 @@ function TxDoneModal(_ref) {
1883
1898
  const dispatch = useAppDispatch();
1884
1899
  const reset = useResetAtom(txAtom);
1885
1900
  const styles = {
1886
- wrapper: css(_templateObject$g || (_templateObject$g = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
1887
- header: css(_templateObject2$g || (_templateObject2$g = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
1888
- content: css(_templateObject3$c || (_templateObject3$c = _taggedTemplateLiteral(["\n ", ";\n font-weight: ", ";\n font-size: 18px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.cssMixins.colVCentered, subContent ? 700 : 400, theme.palette.text.secondary, theme.spacing(8)),
1889
- subContent: css(_templateObject4$8 || (_templateObject4$8 = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 18px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.cssMixins.colVCentered, theme.palette.text.primary, theme.spacing(2)),
1890
- check: css(_templateObject5$6 || (_templateObject5$6 = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(10)),
1891
- doneButton: css(_templateObject6$5 || (_templateObject6$5 = _taggedTemplateLiteral(["\n width: 100%;\n position: absolute;\n bottom: 0;\n "])))
1901
+ wrapper: css(_templateObject$k || (_templateObject$k = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
1902
+ header: css(_templateObject2$k || (_templateObject2$k = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
1903
+ content: css(_templateObject3$g || (_templateObject3$g = _taggedTemplateLiteral(["\n ", ";\n font-weight: ", ";\n font-size: 18px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.cssMixins.colVCentered, subContent ? 700 : 400, theme.palette.text.secondary, theme.spacing(8)),
1904
+ subContent: css(_templateObject4$9 || (_templateObject4$9 = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 18px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.cssMixins.colVCentered, theme.palette.text.primary, theme.spacing(2)),
1905
+ check: css(_templateObject5$7 || (_templateObject5$7 = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(10)),
1906
+ doneButton: css(_templateObject6$6 || (_templateObject6$6 = _taggedTemplateLiteral(["\n width: 100%;\n position: absolute;\n bottom: 0;\n "])))
1892
1907
  };
1893
1908
  const handleCloseModal = useCallback(() => {
1894
1909
  reset();
@@ -1930,7 +1945,7 @@ function TxDoneModal(_ref) {
1930
1945
  });
1931
1946
  }
1932
1947
 
1933
- function Success$e(_ref) {
1948
+ function Success$f(_ref) {
1934
1949
  let {
1935
1950
  poolInfo,
1936
1951
  handleAction
@@ -1998,7 +2013,7 @@ function CreditLineApprove(_ref) {
1998
2013
  children: [step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$c, {
1999
2014
  poolInfo: poolInfo,
2000
2015
  amount: amount
2001
- }), step === WIDGET_STEP.Done && jsx(Success$e, {
2016
+ }), step === WIDGET_STEP.Done && jsx(Success$f, {
2002
2017
  poolInfo: poolInfo,
2003
2018
  handleAction: handleClose
2004
2019
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
@@ -2009,7 +2024,7 @@ function CreditLineApprove(_ref) {
2009
2024
  });
2010
2025
  }
2011
2026
 
2012
- var _templateObject$f, _templateObject2$f;
2027
+ var _templateObject$j, _templateObject2$j;
2013
2028
  function ApproveAllowanceModalV2(_ref) {
2014
2029
  let {
2015
2030
  poolInfo,
@@ -2044,8 +2059,8 @@ function ApproveAllowanceModalV2(_ref) {
2044
2059
  }
2045
2060
  }, [handleSuccess, reset, resetAfterSuccess, state]);
2046
2061
  const styles = {
2047
- iconWrapper: css(_templateObject$f || (_templateObject$f = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 220px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(6)),
2048
- description: css(_templateObject2$f || (_templateObject2$f = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n padding: ", ";\n "])), theme.spacing(4), theme.palette.text.secondary, theme.spacing(0, 1))
2062
+ iconWrapper: css(_templateObject$j || (_templateObject$j = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 220px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(6)),
2063
+ description: css(_templateObject2$j || (_templateObject2$j = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n padding: ", ";\n "])), theme.spacing(4), theme.palette.text.secondary, theme.spacing(0, 1))
2049
2064
  };
2050
2065
  const sendIncreaseAllowance = useCallback(async () => {
2051
2066
  const allowanceSpender = spender !== null && spender !== void 0 ? spender : poolInfo.pool;
@@ -2112,7 +2127,7 @@ function ApproveAllowance$b(_ref) {
2112
2127
  });
2113
2128
  }
2114
2129
 
2115
- function Success$d(_ref) {
2130
+ function Success$e(_ref) {
2116
2131
  let {
2117
2132
  handleAction
2118
2133
  } = _ref;
@@ -2167,7 +2182,7 @@ function AutoPaybackV2(_ref) {
2167
2182
  children: [step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$b, {
2168
2183
  poolInfo: poolInfo,
2169
2184
  poolUnderlyingToken: poolUnderlyingToken
2170
- }), step === WIDGET_STEP.Done && jsx(Success$d, {
2185
+ }), step === WIDGET_STEP.Done && jsx(Success$e, {
2171
2186
  handleAction: handleClose
2172
2187
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
2173
2188
  title: "Auto Payback",
@@ -2222,17 +2237,17 @@ const useEA = () => {
2222
2237
 
2223
2238
  var spinner = "data:image/gif;base64,R0lGODlhuQEjAfcAAFFRUVFRUVFRUVFRUVNTU1dXV1hYWFlZWVlZWVxcXGtra4ODg5GRkZmZmZmZmZmZmZqampubm52dnaGhoaioqLCwsLe3t7y8vL29vb29vb29vb6+vr6+vr6+vr+/v8HBwcTExMjIyMvLy83Nzc3Nzc3Nzc3Nzc7Ozs7Ozs7OztHR0dfX1+7u7vj4+P7+/v7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJBQCZACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBAAj+ADMJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJ3qHAgAIItKhABSgixkCLNNKoAAoxEsZijTwiwEGOge3YI484AtlXBUMOqYCRaKEAAQNQwuiQkEnW+COTY6mowJZcKgABQxxUOSQDWIrFwQJdpkmmQhCI2eOSZX6FApppqsmmmz3G+dWKddZ55UFt4mmjnl2h0Gefax4UpqAtLkAoVxAc2qdCVLr55aNa8Slpl0UeNKOgcCrkJJQQdIqpUZpuuqWpBlWa5KX+CLUpwKy0IiDlqUSlqiqrBXHgKo+JHqQArcTSGiquQVWgKpeOLmRolcEahECx1ApwLLI/0akqrAsFWuMCvBI0bLXUNovtT8qqaq5DKFRQAQfhElQBueT+eW5PutYZb0bj0lvstffuFGmfC9jbEQr+khswUBykugC3H82bMLX7LowTChiXBMHE1Bps8Vgbc0ysxx+HhbDItFZcclco07ryWQu0HO3LJY1KqsoqnSwyzSk9CeXPDEAMEwMiC81zSEAnHXRNRCds9NEf+az0z0+3FDK5t0ItkopTJ33T1bMiULXWHUnddZQ5ZUz2SWcnPfbaWLUN9NtwWyU31XWDZfb+2STnjRXXcvutt9xZCw7p2YUbfrjSiSveFQcQRN6345RXbvnlmGeu+eacd+7556CHLvp37UYOQQU4j15UBaa33rjqR7HeuuuwLwX57LOnXjtPuOP++u5A9Y478EcJPzvxRhnfOvJFKR/578zvdLvxukdvk/LQWy+w8NobJbvpk3f/E8bVi2/++einr/767LfPHAocxB+/+zzJbz+89ON0//3l52/S/vfzH03gB0D5CXAmBbSfRMjXvwM6K4HzgwgDyefAjBAwgRKcIAUreBEIVk+DDOTgRS64vwyCsIEiLAgJDWhCEKYQIxjD3wJPiMIXboSGNbShRk6ow5dosIeSMVEbEIdIxCIa8YhITKISl8jEJjrxiVCMohSnSMUqWvGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pTdCwgAIfkECQUAmQAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYc9PT09PT09PT09PT1CQkJKSkpPT09QUFBRUVFTU1NYWFhdXV1iYmJmZmZpaWlpaWlpaWlsbGxycnJ/f3+MjIyampqqqqqvr6+xsbGxsbGxsbGxsbGysrKysrK1tbW4uLi7u7u8vLy9vb29vb2+vr6+vr6+vr7AwMDExMTHx8fKysrMzMzQ0NDV1dXi4uLv7+/7+/v+/v7+/v7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gAzCRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiid+VQMEEE1DQAYqJlSDBAzTW+EAFMBZWgY08PjBBjoJ10GOPPwLpFwtDDomjkWix0EEHJUBEQZJDMmlWByxm2SILDVE55ItWirWilloumRCSXvJoZphejUmmlmAihGaaNVLA5ldYvvmmQnPSeeOdXump55oG+VljnIBmxYKgeio0gaEPcJmoVnkyqqVCJRha5EIslFCCpJMiVamlLC70KJ2cToDAqqzaGapR/iWQeulCM3oZZUIVsKorq4i+GpSsLLq60JRDSgDqQRTsqiwChPrqk5uW3spQrDZK0GxBHSy7rLTO/iSrsB9pu+wD3QYVq6Ui5Squsr2Wu9O5b4L70QPrKkuuu0B14GYFx4JU77L4qsXCv8oGnNbABOtqcFoJK7zwWfQ2LMHDZ2XbMLcUn1RCBxV00K9MEf87ccYocVzByShjDBPC/5KMEsowo9zuSyX8+7HLIJkcM8w3vxTyrpviTNLORN9E7aoPUNCz0B6VQPTOSzNN6dMxqyw1V1RXfXVYOmdt9daKZo0y2GGJfbJQTnpMtkZOZw2UjALEHTcBE0S9dkNdx2w3/k0PyO233EHfLRELRf+EwN+IC3Cv4BV5+nVOhyeOeOCMT0WB5JLPXPlTmEuOwOZUVdC55HuDblTfoyN+relKEZA64iOz7tTriC8uO1Ou0y537LcvhbruAqzee1GiAy9A6cMDZfznyTN1ue6aN19U5KlTLr1AGz+J/EzUY2779QKl/eT428f0e+LWSy/++OS/LcHfBBgLvkHs1//kUGmXL3v29rc/P1P9s9//ABhA9g1wKQU04AGTksAnPW6BQFlf/yCoFP7Z74EUfFv/MJjBCNZPfx0MoQhHSMISmvCEKEyh1DrlKRCq8CUsdJynXvgTGdqQhjyxoQ1diEON6VCGuj3MyQ+BGESjDXGGRbTJET+VRJvEUIdNNKIOeRjFkTyRiVXMoha3yMUuevGLYAyjGMdIxjKa8YxoTKMa18jGNrrxjXCMoxznSMc62vGOeMyjHvfIxz768Y+ADKQgB0nIQhrykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTnryk6AMpShHScpSmvKUqEylKlfJyla68pWwjKUsZ0nLWtrylrjMpS53ycte+vKXwAymMIdJzPAEBAAh+QQJBQCZACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBh0FBQUFBQUFBQUJCQklJSVBQUFZWVlhYWFlZWVpaWmBgYG1tbXNzc3R0dHR0dHV1dXd3d3x8fIGBgYmJiZKSkqGhoaysrLCwsLGxsbKysrKysrKysrKysrOzs7a2tr29vcbGxsvLy8zMzM3Nzc3Nzc3Nzc3Nzc7Ozs7Ozs7OztLS0tjY2Orq6vj4+P7+/v7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+ADMJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJ4H2wwYoooKhYBQ/EKKMEH7hYGAoy5ihjBTYKhqOOQPLY419AFvlAi0OmhQKSD31gJJASJGkWChVQYKWVGzhEwZNASknWBleGaSWTCXEJZI1eggWmmGIyZKaOWab5FZtsClnmmzKiKSdXVdIpJpkGSYBnjIDuiZWfdSq0waAPGMoVCoiyudCgcTqaFaSRhrnQomZGuakECISKAI2WIpXplXYmBOOTniaEwgL+osaKQKOlFnUqlg1xCiQFC30g668IFFprTx/cChGYOwpLEArAAjvsUH0iWulHDzT7K6/PBhVpqh4xa+2v2QoVbZjTfkTBt79yG25PG1Tgrp4iwYpurK2ui9a8stJq7734iqrvvmZV2++oAKNVwcAIlFvwWAgv3BIKHygL07n4quswSe26667CMQn87b8Xk/SBxiS7K3FLHgNbb8gklezyTQcDyzHLIGXsssYzw9SuBBJUAC/NLd9cMtBkUSk0yUSPNfLRGictltFMW+z0VlG7O3VYNgv989V8Hp0zThssUEAAARTwwNdcOwR1yWjXtMHYZMdNdgEnp51ryVvrRIH+3HzH3bbdT+3d9+B/A77UB4MnHoDhVyGg+ODYMj7V44MXIPlUFVA+eN2XG/WA5n0X3rlQn4Mut9SjH1W66WSLnvpPmbNONuevCyV72bU75TjrkeeuFOKs++6U4Jq73vmStNckQfHCI6TiiivmrdPbiRcgvfDQZ7+iUGHDbbbxl2uv/fXNIyW+9uU/hcL52Sef/k/Ps7+B++8TKz+L9S+1/v35M3U/+P3Lyf7OF0CmDDB7BXQKxDYQsQQ68IEQjKAEJ0jBClqwgEu6YFGQx0ENAoWDIPRgT0AYQhHuhIQlNCFOUNhBFa6QhRl04U1gSD8ZpgSGNnwhCXOokxTy8IeWQAyiEIdIxCIa8YhITKISl8jEJjrxiVCMohSnSMUqWvGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUquRYQACH5BAkFAJkAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHUVFRUVFRUVFRUlJSWVlZYGBgZmZmaGhoaWlpampqbm5uc3NzdHR0dXV1dXV1eXl5gYGBioqKkpKSmZmZn5+fp6enrq6us7Oztra2uLi4vLy8vb29vb29vr6+vr6+vr6+v7+/wsLCyMjIzMzMzc3Nzc3Nzs7Ozs7Ozs7Ozs7O0NDQ2dnZ5+fn+Pj4/v7+/v7+/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AMwkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4onhoaAiiot5IIEDMDoAwQUsHvZijDhCgEKNg92I44878vjXBT8WKaOQf0FgZJE0ImmWBxNIIOUFQTJE5JI/QuAkWShEKeWXEjS5kI9YxrilWCiAqaYEEzBEZpkOnBmWl2t+KSZCb5Yp51cu1qnmQlfCeeSeXdHpp5QeKISCoDC2SShXh6p550F5GvloV5GCOelBSpa56UEX3BjmpUllaidDKHRqpKMKTYDAq/6wvsoqqUOFamqVC01QJASJLgRBrMAioCWtRJk6K6oXTDDBBb0u5ECwwUpAbK2Z4uqRq9AG++m0O9laZ7MgZQttnNwGBaWax37kgbjQgluuTyh4IK9J2LIb67bvjiWBvcCmmy9Z+/ILq7//ilWvwPgW/BUKAsOqcFrPCjzsw082bC3FJXlwwcYbuyvTwdkmjPFHHJe88U0gAyvyyB2Z7PJNqUbLMkoau1zyxTPV7PHMI9n8Ms9k+Wwy0EELzTHRYxl9NNJhKc0s02GhoDTUYtVs88476foqBARTLZHPWOfkQABkl022tF5fJHXJ5prtNtkEpM2VB2/XHbfcWRFQd/7d5OJd1QR77x2230zpHfjbfRMOFQqH7624VBc0XjfOjycVueRuU175UZdjXrbmmxfFuOdlh/6U4Z4nbrpSgJM++OpEod646rAnRbfkd9fe1O2B5657QfHKKy/oOI1dN9q/FyT88vMKpbWwXesePPPDJ/8U9cxb7xT2y2vP1PTce88U98KLvxT5zdvUJQJkIzAB8eKjD79KKBAAwP3430+7+QSRb5ME+Qsg/lamPez9T4AIBAABtaei+anEAwlMoAP5R5MARBCBCKAgUC5wQQlq0CcO6CACo/fBmYgQgyXkyQkFGIAU7mSFAWyhC3MCw/xlcIY4QUAN7zcxHNZkAvE7BMDrfDiQBq6IJDuUIREXYsQGkgSAMFwgDptoRJJY8IT7WyJBqFhFK4rwhlpMCBedWBIIXJCEYRzjEUuSqiveLwDICyMTx7iSNcqxIXS8Y0+4qEd4kbGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU568pOgDKUoR0nKUprylKhMpSpXycpWuvKVsIylLGdJy1ra8pa4zKUud8nLXvryl8AMpjCHScxiGvOYyEymMpfJzGY685nQjKY0p0nNalrzmtjMpja3yc1uevOb4AynOMdJznKa85zoTKc618lOEAUEACH5BAkFAJcAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHUVFRUVFRUVFRU1NTWFhYYmJiZ2dnaWlpbGxscXFxeXl5f39/gYGBgoKCgoKCg4ODhoaGi4uLkpKSlZWVmJiYmpqanp6epaWlqqqqr6+vsrKytra2v7+/x8fHy8vLzc3Nzc3Nzc3Nzs7Ozs7Ozs7Ozs7Ozs7Oz8/P09PT39/f9fX1/v7+/v7+/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4ALwkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopniUBhE44GIFJKhoGAcu1lhjBTIOpoGNPDoQQY6AkdBjjzgC2VcFQ/ZoJFocaOBkjA8l2aMGS5KlQQVYZgljQzRKaeOPVYZ1pZZacsDQjl7aGCZYY5KpJZQJoZmmi2t+5aabVCok5JwOFFnnVhzc6SZDLc5p5p9btSkolnAi1KWXYCKqlaKLNooQkl5aihAJY+Yp6YqLvtkQpkMeqqcDB6SqqgOafvoTCf6hZvkQB4XeOKqquKrqqatBxVqBqQ6RwAEHrR5UQa7IHrArrz7BGupIJCSbLLNCOXsnSRFIi6yf1P5EKbAhaTttt0MV+1G04uZqLrlipqsuu2lp4C6u68LrFbrzHmBvWvkeoMC+aB0777IAj6WAu/8WrFKTToI7E77SJqzwSQw7aXG9LJFwcLIOTIxSxRZfjNOOuDpAsMcihayykyibBfLKGmDcMlYwq+zwzF3VrDLOYuls8c08a/XyyjIHTZXPJxutFac1l9tp0UovxPTOQckbwNVYHwB11AkJqwGxQimA9dhYc8s1VmKTrXakZ1sVgdpwB5B0206REDfcBNBdlf4Dd8M9t95KEdC32hID/tTgaudt+FN2I0724lA5PrbikDcluOQBFF65Unxj/vfm5WJOOehLve3456QPdQDiHafuVNpxm+36QCTUXvtQVpN9ANCu2+47UU1iGfPsm/r+O/F1G2888k0pvzzzSzl/PPRJSW879UpZfztOgUYQwZbY6yk9ThUEAMD56Acge/gCWW+T3ejHj76+7Buk/E0kyK//+QFsXX9M5tuf/gLwv58oQIACZFsBc4JABC5wJxVooABR98CWHFCC+lNgBWdCAAzqj34brEkHPRg/EIZwJgcgYfxad8KZRECF6FtfC1uSPxgCYIYihKEJcQgTDsDQf8E8HEkEPUjBIKLkhRKUoRFdooEA6o8AQFyiSTggtvMRwAG8k6IWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU568pOgDKUoR0nKUprylKhMpSpXycpWuvKVsIylLGdJy1ra8pa4zKUud8nLXvryl8AMpjCHScxiGvOYyEwmrwICACH5BAkFAJYAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHWVlZWVlZWVlZWVlZWVlZXFxcZWVlb29vdHR0dnZ2e3t7gYGBhYWFiIiIioqKjIyMjY2Njo6OkJCQlJSUnJycpKSkqqqqsbGxtbW1ubm5vLy8v7+/wsLCx8fHy8vLzMzMzc3Nzc3Nzs7Ozs7Ozs7Ozs7Oz8/P0tLS29vb7u7u+Pj4/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4ALQkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopojUBRRQcAEJKiJGQQQ01hjBBjESZuOOEVyQY2Az8mgjjj/2dYGQPBaZFgkbwAgRkjw6qaRYJLDYYos+OgTljllOCdYGV4bZYkMkbGljl152RYKYYqKZkJk1upmmVlayeSWRCsFJI55zbmVnmwwdCWefav4pZkNwykmoVWAaemVDG2xJAUQkSLnoUWs6OiakSE7a0AUJhCqqopcCpamLEAlKIwV8JkTCAv6ixprAAqUWVeefJcmqawK1EnWrmK1+BOuusdLaq1C/thisR6ASK+uyx+5U5ZWkejSss6J6Gu1a2Oq6LVvdyvott+GKOq5a5Zp7LloUpKvtumWRkC68abXbbbX0isTkBtDKFAG27+Zr0gYXFFxwvzDZqyu+An9k8MMF63TBsAsw3LBHBENsMMIXc1Wlxg93XFbGIBdsqchfkVzyySirWbLBLY/1csQxh6UyxBzXfNXNBxO1L8s6V3RzzjdFYIAASAtgQMBBWwR0TxckLXXSRDf9FAVTZy1A1VYvFbXWWT/d9VNHgz01r2NT9bXZU4udtlIJsJ01028zVbbcSUdQd/5UeE9t7N5O3d233oA7FXffSNNd+FFr9+324kQJzjbakDPVONuPVz4U1nJzrTlQl0/t+d6VZp5TBFMv/bmrpZde1M+rs96667E/NXvrtTt1++y5M7U77r0r9TvtwSc1vLQmF8/Q8TdtkAAA0Ef/t/IH7Y7TAtFnH73i1AN/kwHahw8A5dQD9bz44RNevk8XoI++6evHJID74pMfP04k0I/+/Tu1r3/4o+MfSiLwv/BxT4AvIWABs3dABLaEAgvMnsUcqJINRDB6FLzJBQEggAzaRIELnKAHUzK/AnZwhDXJXwFReBMVuu+ELCwa+hoYQ5gcKVQ9qqEOd8jDHvrwh5VADKIQh0jEIhrxiEhMohKXyMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU568pOgDKUoR0nKUprylKhMpR0DAgAh+QQJBQCWACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBhzk5OTk5OTk5OTk5OTo6Ojw8PEpKSlpaWmRkZGhoaGhoaGhoaGlpaWpqam1tbXR0dHt7e4GBgYWFhYqKio2NjY2NjY6Ojo6OjpKSkpeXl5ubm6CgoKmpqbCwsLi4uMDAwMPDw8jIyMzMzM3Nzc7Ozs7Ozs7Ozs7Ozs/Pz9XV1d3d3ezs7PX19f7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AC0JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKaIlAkffGCCiol9oMEFNNLYAYyFzVjjjhe8iCNgHfAo5I9/mSCkkDcSyVeQR/KopFkfdCCllD42pGOTNVb5JFhTdimlQ1jyqOWWXXlpZkNh7jgmmVpFaWaXVqZJI5tfvXnmQkamqQGdXtnpZZxhrsnnVX7CCeiRSQ66VaFTPnTljh84ZIIGEVQaQaKKFsVoB4ImZEIHM2oQqUOUWmoqppkG9WmhJV1g6qv+EeyZ6lBuvllSB7DCiuqsPtVqKEm55sorUau6aBKuwb466rBruZqsqbIyq9azr14g7VrUmmrttWk5m2203JqFbLadhhtWthFsa+5ZH5C7bkvlyjRurru+SxKLLbYY70tGwtqjvSnlK7CxOX2qgQacApwSvgPrqzC7DQv8MJQR5zsxWQxXfDFZFVu8sVgdt/ixWBkPPPJYJTt88lgm03oBAzAz8O/KYD0Q880y09yVCTj3/IDOW/UsdARAY/Wy0D3XW/RTSCO9NFUdNC30vk8fpYHUSVcd1dFYx6y01khd3bXXYD8V9dgwU132UGjDvPZTXGP99dtGjU003U7xLPX+z3hDZbPQ6vZtdtwXLCu4QSYknvjhUynuOONQOS455HlLrjjlTVl+OeZLab4450p5rjboPmmuU9QGpG7AA3OTPjlOHzCg+uwGMDA65bevpAHtvBvQOuk4ddB777kDH9PwvR9g/E8XIN/778sf7zzvDES/kwnT9269Th9kz3vx25/Uvfezgx9+SdiTr/r5OKm/PvvoBxmr4QdF4H7g8H8kvAD8918A/gRJH/nyJxIG9O+A/fMdQprnPXARkCMGQKAE+ae0B2QPgA/MyAEmyMFO2Q95GMzgRTTAQQ4qDyEfsCDtHmA+ES4kgiWcIP0M4qYZujAjH4ghB+92w5VcQIfiEzRAD1nyACBOcIgrMaAREYhElRRxiQdsYkpICEX+CVGKKKki/0KIRZBssIot7OJEcghFLorxIz804hXPeJIIAHGNbDxJBwpQQh7GMSXNo6MVIxDGO2rkc34MpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuMylLnfJy1768pfADKYwh0nMYhrzmMhMpjKXycxmOvOZ0IymNKdJzWpa85rYzKY2t8nNbnrzm+AMZ1wCAgAh+QQJBQCWACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBh0FBQUFBQUFBQUFBQUFBQUFBQUFBQUpKSllZWWZmZm5ubnJycnR0dHR0dHR0dHR0dHR0dHV1dXV1dXZ2dnh4eHx8fH9/f4GBgYSEhIiIiIyMjJCQkJSUlJeXl5mZmZmZmZqampqamp2dnaGhoaenp62trbGxsbOzs7S0tLe3t7u7u7+/v8LCwsXFxcjIyM3NzdLS0tbW1tvb2+Tk5O7u7vX19f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AC0JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKaoonUnhOCiiy+sWNgKL9YYwgkyCvaCjTbimONfPPIY44987RhkjT4SWdYKJzS5AkQtHlmjkmQx2eSVJwzJUJRSukilWFZieaVDXHb5ZVhiptkQjV16eaZXYabZpJYKtRnCk292JaeYdCbEppR5erUnln0mVKaNhQZ61aBXJorQny8m2ZCRG2SpKFIvMCqpQ5megKdDK1wg6qgXbODopT4x+qlIJ5Dq6gX+q6Ia1KAlvfDqq7IWlWasIW1wq6sh5FrUC8SeZOuvrgrrVqvIksqrsmYx26yom0Ib7bSjVmttldiKeuq2YXV7AbhqhYCttuSONe0G6a6FLLvtrkTsvDtJm228Ks2rb7E6vbDCCt/iG9K++gqMFsH7GmwWwgUrTBbD9Do8FsT8ShwWxQFbjBXEGj9McMdlNUzUCb6W+izIW50gwcosr4wuylZd0PLMEgQLs1Yy0zyzzTdbpbLONPd8FdA68yx0VC8QrfPRU62gdNBMR/Xz0yxHHZXTVFdt9VNJZ73y1lB5XTPYT039NNlQ5ay00WgzpXbRbUcVAtAvx60UyaJucLL+3Xz37fffgAcu+OCBzp1AAhfUTfhPGyDg+OOOs734Ty8kAPnlCEgwuVCWY3655pv7JIHnnkseuk0vkE56xqe7dIHqnsPb+k2we57A7DjV7jnutOt+Oe82+Q757cDTNLrwCIxbPElMZnwC8gjsvTxGFxwwwPXXSyA98qBP31EI2IePPfEHPe87695DdIH47A+AQEIh6K54+hFt0H777z+qegLo0+/Q/feT3UFC0DnHJWB+/lMfAO83qf4l8CELvB8CH9iRF0Swfd2joElOcEH25U+DJgFfB8P3QRCShIMjxF4JTSgSC6bwespjIUkQ8MIBSE+GGxHhCFeIw5BYb4SqE+zhRVx4wRgKcSQrKOIRUZKA+x0giEvUyAsad73MQTGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuDxaQAAAIfkECQUAJQAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYdRUVFRUVFRUVFRUVFRUVFUVFRZWVlhYWFpaWlvb29ycnJ0dHR1dXV1dXV3d3eAgICKioqPj4+VlZWZmZmbm5uioqKqqqqwsLC3t7e/v7/FxcXNzc3c3Nze3t7r6+vx8fH7+/v+/v7+/v7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gBLCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqKJ1G1xAAQUXZLDiYS6+aCMFG8w4WI032pijjn/x2KONQP415JAyFmnWBhtk8ONDGxzZ4wVKktVkBlhmCaWUPVYp1pVZhulQlFy+SKWXYIWpppMOlWkmml+BuSaWDgl5JJxxzilmQ2RKeSaeXMk555ZH/gnoVoKuGZGdT46ZwQWNHmqUnlpKxKREFESg6aaGSjoUpWyStMGmpGpKgaeTzhlpSKW2eiqq/kQJelKmrZaaJKxu1eoqrm6NqmupvLaVwa+lrhpsWcMSu6mxx47lq7IRNLsWtBG8Ki1aF0DL7LVi0aprp9ya5W2p4IZ7EpPbzhQlqZCauxK68Lq7Frz0ypsWvfHauyS+6Oq7L7+X+usswOkKjCjABluJcMID18vwkkhdIPGtD4M1agMYZ2xtxVxdkPHHGD9QMMdQZQDyyQ2QrNUDKIP8gMpXedwyyCPDnBTLM3+8sc1Q5ewyz1P5DDLQUgmd8ctEQ4Wz0DsnvZTMQtfs9FBGIz21Uyb7fHVUUJ8s8tZRXQxy02A/JXGMZaet9tpst+3223Af26KZUse9k8kG5K33/td2E/WA3oDrTXbfO/0d+OGDE37TBYc3bgDFiueEgOOHpxy5ToxTfjjkl9MUgeaId45TA6AHbrXoNJFe+t6o22T46gYk3jpLFMCed7mzt7SB7QjkLhLeAgSPgOwlvA468b5TtAECwTffvAG4C6S65pYnz9EGzmff/OkFLU+99R1hr/34shsPeLTgc8T8+OOnG6XqDeCYPkcXsM9+7/Oz1ID97OfPEv/si57/QCI+AGYPfQM0SQEN2DwEJrAkDMwe8h64kQg6T4AU5MgDLBi8DCqQg9zzYEg2yEADiPAk6wMg504YkhSOzwB1Y2FGaje+EMqwJBmgQMgweMMe+vCHhEAMohCHSMQiGvGISEyiEpfIxCY68YlQjKIUp0jFKlrxiljMoha3yMUuevGLYAyjGMdIxjKa8YxoTKMa18jGNrrxjXCMoxznSMc62vGOeMyjHvfIxz768Y+ADKQgB0nIQhrykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTk4tIAAh+QQJBQAvACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBhz09PT09PT09PT09PT09PT8/P0REREpKSk5OTlBQUFBQUFFRUVFRUVFRUVFRUVFRUVRUVF9fX25ubnp6en9/f4GBgYGBgYGBgYKCgoODg4eHh5CQkJmZmaGhoaurq7CwsLGxsbW1tby8vMXFxc3Nzdra2uXl5fLy8vv7+/7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AF8IHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4nUkgACCCCSseJgILtboooyE0WijjTgG1uKOO/b4F5BACukXkTvGaCRZJIjgpJNKOoSkjSIsOdaTWML40JQ1VmklWE1m+eSWXIIQ5ZddiYnlmQrpOCWaYKmJJZlIsgmnVnKOSWeSd36Vp5MRuXnjRHb2WdSfhYJEAgeMMmqmoUjleRIIjVbKAQiQGhVmlpNaaimmmRa1aaIfLeqppaHGdaqnoKba1qr+nrrqFqyoysoWrZXaeiuujOq6FqW4eulrWrwOu5YItJJqrFimeqrsslc2+ii01FZr7bXYZqvtttx26+23b5HwLLhXgYDBueduICy5WZGwAbrwYsABu1rFa+8G9F7Fgb32tppvVCTwy++/U+0rcLzrEtzUwfbOq/BTDMfr8MMLR4zuxBQvZbDFCWeMVMAWY+CxUxsf7O/ISkWML8pNgcwvxiwzZS686sY8lbg256zzzjz37PPPQJso7rhB98SBBEgnDXPRPpGQ9NNJE820TCJAbbUEUk/90tVXa70TBlxbvbTXM4XdNdk2gWC21VkXLQIGDQggNwQri3T02k+fjLb+QE7L7bffBYy90d14I6032iIU8Pfic4ekduFId0w2CYozzjgEikKO9N4FxW255SJ/BHbhoXP+Agefp+7QvkjL+2zVhbfds+epMy74QBw0oPvuupeOEOFhH+41CbV/3oBCEvCufAMQSD7QBmbfrjUIxX+eUPLLL6/s41Y7Tzbq1TP+e/bZS8AQshtswIHsQIMf/t8IkU++9KY3JML7fx9vUO7yL495/RapHP7MZxDs9U95ALSIBPAnt8NB4IDL814CF3I//OnPIBCM4AQpggH8Oe+BGdwd+zYokAVW73ZwC6HuSFgRE36uAMITCAhU2AACsnAiIIAA4wrgu4SAMIOzMbyhlNIVxIKIIIQ9FOJJ+Nc/GypRJTOUXxKfmJIU8k4CRaSiSdw0Qi168YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuMylLnfJy1768pcKCwgAIfkECQUAkgAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYdBQUFBQUFBQUFBQUFBQUFBQUFERERMTExUVFRYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhZWVlZWVlZWVlZWVlZWVldXV1jY2NqampycnJ6enqBgYGHh4eLi4uNjY2NjY2Ojo6Ojo6Ojo6Pj4+RkZGVlZWcnJynp6eurq6wsLCxsbGysrKysrKzs7O1tbW5ubm9vb3Dw8PKysrNzc3Ozs7Ozs7f39/p6enu7u7y8vL+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gAlCRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqCJ2N9ywomIuxCijiy8OdoOMOLogQ42C5ZgjjTz2daOPOAbpF5E5GnlWi0xGhGSRSo7F5JRANvSkjFFKSWWTDslwpQtZhrXllBBdWWWYXI1JpkNDEokmWGpyyaaPO775VZwtSjSkDGfauRWeKcmAwqA6+plUnCfdMOiii/ZpaFBjJsropCg8ilSeKVE6KZiWwiWopow62ilaoG46qlulMsrpqWuluuiq/qym5YKrKNQZa1qKunorW7OWCuuupIL6K7Bo9aoqsW8NKSqyzDbr7LPQRivttNRWa+212DZ34wjcjjBstli50O24I9gK7lUokEvut+dCJa665C7bLlPwqlvpvFLdUK+6+Er17r7dytuvUf8CPILAAxNVMMAIJyyUvgZz6/BTEY9w78RMLQxvwxgHle6+7HZ8lMbchizyUdt2a/LJLLfs8sswxyzzzDTXbHO+KGyg8wYocHxzTSPsLDTPPwPVwdBDj1B0T0cjnfTSOrngtNM+Q51S01MLrbTVNmXtNNcKudBBBRVocDBJN3iNNNgHoYDAAHDHPUAF5nqUttpCs12Q/gZy9w33xXbjnbfeAlXg9+FbfyS4zh0QLkkHh0de90Y5C76yzTdEHnkFD/XqQsOLOw655ocLfMPYZKdewcoy4F21zG+T7nfibatuewUbLNR61q/LLPvhGiSEwu23575Q5UIDrnfmv/fN+UE3EE887Qkp6zhBzDcf9/MGoS697ddXpL3cjRsU/fe3Ux++Q4aPP4DyAg2P/u3rS+SC+wMgNML89NcfUfvNU59AvMc/svkvIjLQHvcMsr8Cpu6ATvrdAg3iAgeSLXgQhIgMYgc8hliwAvDLIEOG1zcNXE4SDSygCCvipdc58IQr3Mj50BfCGI5EA9+DoQ07IjXb1XCHjSjpHRCHSMQiGvGISEyiEpfIxCY68YlQjKIUp0jFKlrxiljMoha3yMUuevGLYAyjGMdIxjKa8YxoTKMa18jGNrrxjXCMoxznSMc62vGOeMyjHvfIxz768Y+ADKQgB0nIQhrykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTnryk6AMpShHSceAAAAh+QQJBQCSACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBhzU1NTU1NTU1NTU1NTU1NTU1NTU1NTc3Nz4+PkhISE9PT1BQUFBQUFBQUFBQUFBQUFBQUFFRUVFRUVJSUlVVVVxcXGNjY2dnZ2hoaGhoaGhoaGhoaGlpaWlpaWlpaWlpaWlpaWpqam5ubnJycnZ2dnp6en5+foKCgoaGhomJiYyMjI2NjY2NjY6Ojo+Pj5OTk5qamqamprKysrq6ur29vb6+vsHBwcfHx87OztTU1Nvb2+Pj4+zs7Pv7+/7+/v7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+ACUJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oos4oRDDTDC2GJhMdZYw4yC2WgjjoDpWCMOPPb1oo8xBnkWDkhKRGSNRpKF5JNJPjTkkk2KBSWUES0pY5VgXYnlQ1py2aWXT2bpI5BiekVmmWb+mOZXa0YpEZtvwrlmSi/KIMONdSZFZkp6Bhpon0hdCaigiBI6F6KM8qmoWzgwyuijb9UgKaJoUrrWpZhqyhangmbqKVqWgiqDqKOeZaoMqa5V6qX+qLZq1quIOiprWpF2eiukse7q66/ABivssMQWa+yxyCar7HCRwgDDqct2hQMMLVRrLQzRaoWDtdxa22u2UHUrLrbgUiWDuOLaWu5T6I67blTbttvtu1DFK6+19D5l770t5Msuvy2Q6+9Blqrb07n8GuxvCxIM4LDDEgjcE78SDwxDww9nPIAECt+0r7jfrtuCxiQ7zGpP07o78EAwlOxyxx7L4Cy0Kw/ksssS1HyUBze7XLHOQPWMM9BD1SC0y0QLNfLRJMOc9E0nME3yyU9PLLXGVFe9kwxXZ6z1T11D/LVPGF/dL001UBuw0zob3TXaJ5Ag99wnhKwzCVf/3BL+DHP3PXfWVVfAtAczyeD34SSwvTLePevdUtyI933C2ALVUHbGHtitkuGR+w341+ee0MLnMUHe+dxnUy6RzGubdPrhqkNUgwcS1G67BKmH9LrfsTvE8O3AV6D5Raa/PnnvC/0O/PLDV8T37iSQjvxAMixvvQQVhIQD9CRMr9D11+fO0IvNS/L86Y57Xz341jcEgwfwxy8+Qi2cPr/3A9HO/vLSD0RC/ACEX/8GUj/EpQ9/+7Ne+nAQwAZ64ICVK6DcWlC+3iVwefcTyP8cGEDF4S8iFwReBt/HwQZ+kCMVCKHtpFdCB3rwhA05gQpr1ysGtjCAGYRhlmZIuIPI4IbsATyeDi+ivwt27IdAjF/3hoiREOZwdkmEnxCZWBEcJHCKB4ki/CBIRYcUcXlc3GASK9hFhdTgBCms3QMdAkUgYrGMK2lBEuFYuhuSkY4hIWED34hHl8DgBPAjQQte2MdCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuMylLnfJy1768pfADKYwh0nMYhrzmMhMpjKXycxmOvOZ0IymNKdJzWpa85rYzKY2t8nNbnrzm+AMpzjHSc5ymvOc6PxOQAAAIfkECQUANQAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYdBQUFBQUFBQUFBQUFBQUFCQkJFRUVMTExPT09QUFBQUFBQUFBRUVFRUVFRUVFUVFRcXFxkZGRoaGhoaGhoaGhoaGhoaGhpaWlpaWltbW1xcXF6enqDg4OMjIySkpKXl5eZmZmampqampqbm5udnZ2ioqKtra21tbW9vb3Dw8PIyMjOzs7R0dHd3d3j4+Pq6ur4+Pj+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gBrCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLOa0wosrtGgYjDTGKKNgNdJ4I2A56rijXz36+ONeQcI4JF9FvngkkUUuyWSQTj5ZY5RITknllRUqiaVeK5zg5Zc2bkkXCl+WeUKYYsLVpZllpikXm2y6CRecZsrp1pp0emlnW3jmuWdbeX75J1uBnoDCoIT6iehafba5KKBlHvropJRWaumlmGaq6aacdurpp6CKuQIKKKAZ6lYniKDqqpKemtWq/rCqeoKrWMVq66y0UrWCrbbmShWvt/oqFbC9CgsVsbEaeyyyqyr7FLOyOuvUrsxKa9AKHDQgwLYNcGDqTsziaq1AEGxr7rkYAIXsuAKtoO258ArQwLc5pRprq9a6G+++DQQ1aqnsDvTuvvFCEHBRJxCsML4H/1Suwvtq0LBQECs8MVAoVEwwvRfflLDG8XLccU0ZgwyvyCPTZDK8Kfc0sMnptgzuytuKOxOZhsos0MsV90uTCBwELbQIMn8MMsMuYSv00kGjPK4IINsME9NUc1A0z+fO+3PVTBMtswg8Q+D1TEpzvbTOA5GJtEwnmM201Gg3RKrTHAHt9tBxOyQC/gQN9N23BnRjZPfdHIydN0IrYOD34n13MNLgd8N9+EAr8M044xKHhALhTU+OkOWXM251SJw77rlBGoSu+toabX534DK7q3romS+0qwYY5M6B5AZBTjXvk4M9e+gMiZD78ccDzlDbVbPueerDX45yB8hXn3vgqQYtAvCnKx49484bb331tZ+ekfff+8164uNbb7j5FmWbvt8cU9++9fBndML8fRuM0P3jc17+HgK6772PIAC0HvcG2JD9pc9//0sg8g7IwIjIL3oClCDyFlhBhlwwdBBYIO40iAHYdTAhJyig38qXEPFJkIUnpEjbcqcBEZiQhByMoUhOIMHR6bAloTy8nw9/2JIVjLB6OSRiSailKgEq8YlQjKIUp0jFKlrxiljMoha3yMUuevGLYAyjGMdIxjKa8YxoTKMa18jGNrrxjXCMoxznSMc62vGOeMyjHvfIxz768Y+ADKQgB0nIQhrykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTnryk6AMpShHScpSmvKUqEylKlfJyla68pWwjKUsNRIQACH5BAkFADcAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHUVFRUVFRUVFRUVFRUVFRU1NTVlZWWFhYWFhYWFhYWFhYWFhYWVlZW1tbYGBgaGhocHBwc3NzdHR0dHR0dHR0dHR0dXV1dXV1dXV1dXV1dnZ2eXl5fHx8goKCiIiIj4+PlZWVmJiYmZmZmZmZmpqampqam5ubnZ2do6OjqKiora2tsbGxt7e3wMDAx8fHzMzM1NTU5eXl7u7u9vb2/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AbwgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiizq9MILLSL24owwxjgYjTTaGBiOOOr4F485+tgXkDMKOSSRNRqpF5JJKpkXkk7yBWSUR75I5ZVYZrlVCyt0uUKTWs7l5ZgrhEkXl2R22YKZcaGZZpdgsqnWm2OuKWdbdI55J555drknW32uYOefab3QJ6FsuUnmoIimpaiajbb1ApotxBnppZhmqummnHbq6aeghirqqKSWaupMhpagagllnprVCv6rxlqCpa4+1YKsstJaK1O44rqrVLf2Gquuvx4Fq7CrMlrsUsjG2uqyTB3brLLQIhVss8RWO1Szqmpb0AodPMDAAx9Qu9O1vWbragkCtOuuu8/2JG2u3gqEwbv4ttsBUKmuGq+29+ab7771GvWBwAiXUHBRCDe88LYNI/zvwzw9ELHAGFAM1MUIa/wTxwJ77BPI+YrcEwMku/uAyTx1kHK7CrPs4ssC4GSlzDcEDDLBM936wc8fzCozySvTVALQSAfN8gscM1DT0UkjHbPJOg9c0wpRR23uwy90gHK7DHygrkpZZ41zTy+UHfXZPGGtNtJjs522uAwwgMHUIrn99v7PcePsdd2A1/3AxB2lvTffbC+EQeCM1433R4f/nLhCfzfO+NYaQf024ZPfsILllhcd0uGdI0Q36Iw/ntALmnNukOFll37QC6hbnvFCXWOg++53O6Q50KrLfkMJtVu+0Aq8J4/BBw95ibnsxBfPuEIvKK988MJPFL30gFNuvfLPZ+/Q59wLnlAL3yvPvPgXlV/3+geVkL7y7F9UufS6zq983/W/fnrtPDuI/pLHv/59S3qiQ0gHBri7AhqQICv4H+NupxD5MZCCD5xI1xr3AOwVpHoM9GAGm5csiHyAgSN0yQLn57oUlmSF1muhC0uCvOSJbYYxmVSlcMjDHvrwh4ZADKIQh0jEIhrxiEhMohKXyMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU56ck8BAQAh+QQJBQCSACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBhzo6Ojk5OTo6Ojw8PEFBQUlJSU9PT1BQUFFRUVFRUVFRUVJSUlVVVV5eXmZmZmhoaGhoaGhoaGlpaWlpaWlpaWlpaW1tbXV1dXx8fICAgIGBgYGBgYGBgYGBgYKCgoKCgoKCgoODg4WFhYiIiIuLi5GRkZaWlpubm6GhoaampqysrK+vr7GxsbKysrKysrW1tbi4uLy8vL29vcDAwMXFxcvLy8zMzNLS0t/f3/r6+v7+/v7+/v7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+ACUJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oostlicDTDC6GJhMdY4o2A15njjXznquGNfPdr4I19BxjgkkEUeSWSQSiIpZJNIQinllFRyZYMMWMpgQ5V3ZemlDFzS9aWXW4YJ15VjZmkmXGmSuaZbbWZZ5ptrxYnlnHSu5MIHH5TgQk5otolnnibZQEEAiCYaAAU42UloSh8oKimiJ9gU6JeDPirSoZNO+oGlY2aqKUiRdtpppZYaOWpJNphqagL+q4LFqauexuoVra/aypUMuJqq61Yn9Nrpn79iFaywkhJbrFUuICspmMta1aqziUaLVQLUBsCAtVeVkC2q3FaFLbLbhmsVr8iKai5Ux+KqbE8yuCCvC+quq5AN43aaQL03zevvu/Y65MKsiFIAME///hvwRKoGlXDCC0v7sMIRUxXvxPPyW3FSF2NM78ZSdYyxxiAbZYPH8pYsFcoHq0yQCyeUcELLCGPsMkIfJKDzzgl86vDDNxvkAgM8F80AtD+JTHLFJxTttM5IB30Uvk8/LXVSFFT99AVXGyWD1lV3XVTOYDsNrthAZV120T6jnfbabLsdlNpw69y23D2RXXf+AmfjvZMLe+u8tN8yEV03o4T7BHjdg6MkwwmQnxA14XqD3TdMj0eu+eR4V/705S/BrPnonMs99NMUlO6SDaO3Djree1Ig+weqv+R66zQnntPtrev+E+u8a+67RI/z+cEJjVsEfPCQD/+QDLJHH/3dITEfufMNnSD99rInP5H1zWOv0MDccz9S5sF777eh5XNPvUfWi69QCe2X33jHEAUvv0L1l/96QScwnvFKMDj0Ra52+2Nf/6T3voLYQIAQ/EDuDNKw/SUEegtk4EIiGEEEWlAiCswgBRo4kAByEIIf5IgIo1cChZwwghNMIUQusMLUXfCFEZRhRsgnQoWYEIfbxtNhRj4gwgn+EIgkFGJEMvg/gRwRiEocYv2aKBAZIJFPLYwiRlxAQwYO7oq00+JGruQ9KwIxi2J0SQmAqL40wu+FbXSjR1gnwBJ4UI54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuMylLnfJy1768pfADKYwh0nMYhrzmMhMpjKXycxmOvOZ0IymNKdJzWpa85rYzKY2t8lNqQQEACH5BAkFADUAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHREREREREQ0NDSUlJUlJSV1dXWFhYWVlZWVlZW1tbYmJibm5uc3NzdHR0dHR0dXV1dXV1dXV1eHh4fX19gICAgYGBgYGBgoKCgoKCg4ODhoaGjIyMk5OTnJycoqKiqKiora2tsLCwsbGxs7Oztra2urq6vr6+xcXFysrKzMzM1tbW39/f7Ozs8fHx9vb2/v7+/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AawgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPboo3wpBJnCj3QJaeSQRL51pJFJKrmkkE229SSUUao1JZVVonVlkFmyZMIIJuy0ZZcodYCAAGiiuUAHOI1JJkkpEJDmnGgigGRNU75J0gh09onmnTQtqedIJvhpKKCDanWmoX0ukChXfDLqZ5iPZrWApH5iUGlWmPpJwKZXpdCpn6BaJeqodJZqFaqpqkoVq/5pIuAqVRDAKsAGs05VKKyI5urUpahq6utUi2Iq67BUySnpsUClYIIJvSKrEAaM4grUlyNkm2200iLUwQJyErCmUNhqqy2l3U6VgrnsjsBtuku12y68UsnLLr1QrWuvtvhCtS+//Tr1b7YBO6Wvve/262zCOpXLLroFCzTCAghUXDEEEPvk8LYRD5QCxRaHjAAEQzkLbccei6wyAo6ifBTIK4dMsstEmRmzyiPQPBTMN1vcss4/mdDzygwDTZPNQ4ecs9E9IZ10xUszvZPTT0ctdU4jPB1y0VfDpLXFXfO0wddshr2T1j8Hiu3JXWedNNcpdSD33B1YzbTbN8NdJv7dfJs9tsrW1sT34GWHPcLcGc9kAuF86222S4zzbffjN0XeN+UOfVm34xdZTjfmDHUAweikY1yS53ODnlAKpbcOQeAhLe4550yz7nrrsIOEuuoIYXC764l3lILltBttwu+3R8QlRLIPXrzRGyDvOtfDY2A9BhtMrtDhc2vPu0DSu+49QR1cbz7233cUfuuFe3v++bmnb9H6pbdvkAnvv2+//BTRT/r4NShf/s7HP4yIzn8LGeD7AFjAhvhvfwRJgQLPB8EGPuSA4VsI/iZ4vQpa0CEY/B3DJMhB63nwgw0JYeu4VkLrBQ+FEAkhBhhIvhbC0CUb4CANbxi7CZ6Qh5lwyuECgQiTxeUwe0RMohKXyMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU568pOgDKUoR0nKUprylKhMpSpXycoJBQQAIfkECQUANQAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYdSUlJSUlJSUlJVVVVYWFhYWFhZWVlZWVlaWlpfX19tbW1ycnJ0dHR0dHR0dHR0dHR0dHR1dXV1dXV1dXV4eHiCgoKKioqNjY2NjY2Ojo6Ojo6Ojo6Ojo6QkJCUlJSZmZmhoaGqqqqxsbG1tbW6urq8vLy9vb2/v7/CwsLHx8fOzs7U1NTi4uLz8/P4+Pj+/v7+/v7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gBrCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0CupMKQRAYZF5FIqmCkW0kmuSRbTSL55FpRFjllWlUOeSWWWW55kgoVHADAmAdsoORNXXpZkgRjtunmBjhVqSZJYrppJwAKxCnlnCMpcOefEvDp1QZ/FvqBoFwVqiiiWn2gaKEiMIoVm4/eWYGkV1X6Z56YVqXpnQd06umnbnIqqlSUkgoAnKdKJYKq/mOe0OpUsIY6q6uqynqrVBV8yuquvFZ6qFBaAvvQCXXaqcCZP6lwwrPQMmvsQidsUIEEFXwgrU/OQuvtttNC5e24uoYbFbnjgmvuUuiOu6647UL77lPxyjtvU/WeoO69R9XLr1Pdkrvvuip8oMABCEswbFABR/vvQB8gLPHEkQ5V7MMChTnxxmVifNQGHIe8sMcMh2wyyUNpbPLGv6Ls08ohm+oyTyrAHPLMPiFr88YD4zxTzTtP7HNPQQs99E4SFH3ApUfrJILSPTcdk8owM21Tt1FjfDDMgdp0wgdgh12uz0mbbDVNIoSt9gcVDy1C2RJLMPZMX6+t9tw+O5u1/kt22y11T3X3Hfbef7uUtuBiF/6QlSYdjvgHeCteULUSVF75yCIFjnjkkgv0geWgV845RwU/jnnnA20Q+uqjb+R4322jPtDbq69e0utqxy67QLXXfvpHuLO9e0G09x76sRskv4EIhAukwuHMD1+Q6saHnnW1ymevu/QUXVs96FFjn332v3MPEfXfV96zCuO3v0Hr5i/0efqVLySC++3HT5EK9GO7EP7ta57+COK977WOfQDMHvwGeBD+fa9lDUyg9hgokRNUD4IIkaDyFkhBg4DJdw7RYPIE2MGBFMxay4PI/SRYvhKKRIMkdGFGEshBGXrkA+6LoQ03cgIR+FCHjTsMohCHSMQiGvGISEyiEpfIxCY68YlQjKIUp0jFKlrxiljMoha3yMUuevGLYAyjGMdIxjKa8YxoTKMa18jGNrrxjXCMoxznSMc62vGOeMyjHvfIxz768Y+ADKQgB0nIQhrykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTnryk6AMpShHeauAAAAh+QQJBQAvACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBh1lZWVJSUlpaWmNjY2dnZ2lpaWlpaW5ubn19fYGBgYGBgYKCgoKCgoKCgoSEhIiIiI2NjZGRkZWVlZiYmJmZmZmZmZmZmZmZmZqampubm56enqKioqioqK6urrKysri4uLu7u729vb+/v8PDw8nJyc3NzdDQ0NnZ2d7e3uXl5fj4+P7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AF8IHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oosfuQBBAxA4EGLhHkAQAA45hgAAzQCdoCOQOI4Y497GRDkkRgQmRcDRzYpgpJ2idDklFDWZeSURw5ZZVxYNmnAlnFJ2eWRYMKFwZhklunWmWgCqaZbHrTp5ptslSCnjnS2dSeOSea5Fpty+qmnnDwKupadaAJgaFtxdqnoom2VcCWSkMLlAZM5AgBBpZxm96IBBhwAwZOdMnpjkAaUUKpaEHTZ56r+ZQGKpZawhoUomrWONemYhebq1a1t+vqVrGjSKmxWmMr56rHI7rkss1e1euez0FZF7JjGVlvVntpqleyYm3ab1amOiqtVo12Sai5W6B4JgLrrNhtkuEGVIMK9Iqgab0UeYOBvtj7hKzC8+2I1sMD6FmzwwfgqjJW9DN+bsMNTRYzvxBRHBXHEGGcMlcUEe/wxxyJXFXHJC5WAAQMsY9CxTxvni3JCJTAA6s2gMvDyzEh5gPPPoO7MM1GSAg300EsdYDTQvSJdlM9LAw2w0z/ZHPXP9FIt1NVAH6A1UVwf/fXWYd/s9dhBKV22AU2j3RMGaxswtds5rX023T9BzXX+yHjvBPfVc7/kweCE902Q3lLfVALhjHsg9NgeqM124C4t3jjjhgt1+eWZA7V5453D/Dnjj4cuk+WjO266Qy+yzIDLJqE++uoMieD67TGalPrgtCt0Ke64lyRC6qWvDjzwWYeUeu8JwXg87pRrNHzjfDMv0PPIQ9QvBqpHBHHxtP+O/e2s+2u+v+Bbr/34wTN0/vuwq6+R+Oy3fRD88MuvUc31s5wy/u+Lnv4a0r/XLWR7ADTfADFCP+y5L4HnWyBGnIe96EHwfOmTYPOwR637XdBfGmQg8tKHQAiGMCOoy6BAPli9E+rugi4UXAJjCBOVBZCGMymBDnHIwx768IeHQAyiEIdIxCIa8YhITKISl8jEJjrxiVCMohSnSMUqWvGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKTFAoIACH5BAkFAC0AIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHZWVlXl5eZmZmb29vdHR0dXV1d3d3fn5+h4eHjIyMjY2NjY2NjY2Njo6OkJCQlZWVmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmpqampqam5ubn5+fp6enr6+vs7OzuLi4vLy8wcHBxcXFy8vLzc3Nzs7O0dHR1dXV3t7e7Ozs+/v7/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AWwgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiyCBMKLLRqWQQA01iiABzECBkKNPNqYY18z9ihkACX8mNeOQw5pJF5JJtnAknV50GSSUNI1ZZIZVCnXlUMeoCVcJXCp5JduhSlmj2S+dSaPAqTp1po1PukmWwfAGQAIc7Jl5pp5tlXnmXj2ydaZcgrKlgBXZmmoW0EOGeiib3nwpwANFAnppdl5kMGmj2LaVgNDKuppWiAgmqQAlo5aFpJXpqqqWP6mXtnmq2I1yiWOtIIF56y5drXnma72mpWUcHYqLFbErmnssVYlCyyzWv0qJrRbxcqll9QOq2y2WhUgJrbcZmXtkAWEy9WfXZrblQfe8ljAsj6VIG+w6k70Ir0/zasvvvVWta++/W71L8ABYzXwvAVfdTDCCVu1ML8NO/VwxP4eTLHDA1/MEAgedAxxTwRrnBC7BZRsMq4iP3WAySyXDG7KS63ccssvw3xUAzPnLKrNRZWQ8888H0Xyzy3DG7RPOBPd8s5HAyWz0iYX2jRQSUNdMtNT95SB1SdnHZTPXBfwsdc3Pa201GSDzHXaQoFN9NgtldCxByDAHXQJZked0/7cfBvtdQkZHHBAAxnYzRLfiPvNtk4cI8634YvP5LjjkQM1OeKV/3Q535lHpCmnKG0+d+cOZdDA6ag3gPJIjV+uOOkCpS474SaJDvtCs8++ekhyT367QiDkPvtJif+ukPC6Q1TCvRTJazzuyMvuEOCbVv/68xKVEL30DH1e/ffYb6T99qhv/P35GewefkXkn461QeijD/n6CZlO/tjUx1+9+vRLRP77BfGe/jbVv4t4YHtwE+AAC2hA5NlNgfpj4EUAJzv+ISR/A7SgBCPiPIkMsHobdAkG0Xe9EIpkhNYzIUxA8D0PzE+FMIyhDGdIwxra8IY4zKEOd8jDHvrwh3hADKIQh0jEIhrxiEhMohKXyMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSUnqBAQAIfkECQUAMAAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYc1NTU1NTU1NTU2NjY5OTlHR0dhYWFra2twcHB0dHR0dHR0dHR1dXV2dnZ7e3uEhISLi4uNjY2NjY2NjY2NjY2NjY2NjY2Ojo6QkJCRkZGVlZWcnJyjo6Opqamtra2wsLCxsbGxsbGxsbGysrKysrK4uLjCwsLIyMjOzs7X19fj4+Pu7u7+/v7+/v7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gBhCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogkgocCCSSgUGJjKDBQQAAwBkCAASSsiNgFBMSoI4wH2FjYATsGGUABKvoIGJBCBkmAkX+RkGSSPTJ5FgoPGFDAlQds0NCLTwpZpJRjHXDlmGRqmZAJXSb5AJhioUDmm2OuidAFaQpZAJthwalnARcgZECdQuL5lZh7wvklQVwCqqOgXblZKJxRFpSoojAyytUDj+p5qEAPUBrjnZZqZWWmb5pJkJOeBsBAqFqRCmef/gbl6GmNrGLl6puwFkQnpaDWetWtZSI0aZom+IoVocDSapCbgOZqbFUbAHulQsw+SYCpz1olrbNzyrpjpNleRcKtBjxEwgUHHPCAsuFmdYGrm7bL1ruFGhCvvGyhgCyZ3OIL14kXXLBBsf4WHB4KCBtMFwkMpOvwA/cqjNYDDlecbr8Sm9WwxRavmjFa6HLMMbYftynyyRGXzFXIJ1uMscpctXwyzGLJLDLNYOlrs8U4g7Uzzz179bPDHge98tBZGi300Ep7RcLP7DatFcsnkyy1Vhu0HPXVXG2w8QEMbM31aQiXnfLYWJltNtpeqa0221y5vTbcWsldNt112302/t5P6b03307ZDXjecw/+0N2Gp30BA4wzbnXiT3nd+ORhQx6V5JRPLrblR5mQ+ed/cw7UA59n/rLoQrVYeuaoJ8Xw6pQT3HpRr8PeuOyzD1W77QzgnntQqvPOQOi/40Q673IWr7vwvisP1OKwn+58T8d/Lj1MhU9vEOaNr5sTCiaELz7xuZOwwfnN0wS++OyTr/1N7Mef/vs9rS9/+O7TL9P98esfFP/s899E7JcSAOJPgBAxQcAWKLCT2O9+CDQXAyeYv4oYMIINOdcEKWgS/mGwIRsMoQPb90GGaDCEDKxgCUuCwg1u7iAoimGKVgiSFk7whQQ5kQxjOD8aWsSG8AzE4UB2uEMV+jAhGwBiwHo4RCLu8IgbUaASM+hEGRoRigZRohBhoMMqxhCLGrHh45blRRmCMSMoQOEYyVhGEjDxjBBBQRIDNkNztfGKcIxiG/MYkzLikY8bqSIgZ9LFOg7ykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTnryk6AMpShHScpSmvKUqEylKlfJyla68pWwjKUsZ0nLWtrylrjMpS53ycte+vKXwAymMIdJzGIa85jITKYyl8nMZjrzmdCMpjSnSc1qWvOa2MymNrfJzW5685vgDKc4x0nOcprznOhMpzrXWcuAAAAh+QQJBQA1ACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBh0FBQUFBQUFBQUJCQkREREdHR1hYWGlpaXR0dHx8fICAgIGBgYGBgYKCgoKCgoKCgoWFhYqKipKSkpeXl5mZmZmZmZmZmZmZmZmZmZqampqampubm6CgoKioqK2trbCwsLGxsbGxsbKysrKysrKysrOzs7W1tbi4uLy8vMHBwcjIyM/Pz9vb2/X19fv7+/7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AGsIHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaCJTIyAQwIoBGKDBiYihYACLNK74IoyDaVDjjgEcgGNgI/DIo48/9rWCkELeWKRZIzhwwAEIaLBCQw4gKeSSZY1gwJZcbokAQ1YKOQKWYjnQ5ZlbopBQkGHuSCSZXpmJJppqHqRjmzvC6ZWWc86JUJV41qhnV332qSRBEgQq6KBa8VkomgexqWiLjGol56NnTmnQpDZWmtUBmNJ50IyTauqpVaCG2mWdBUmK55v+p1aFgKpdmloQoG0aECtWGtDKpUIH4MnqrlSt4KsBXyqkIpK6EovVrLQOixAKwdboorNa0eoARChooMEItmJ7lYyYwipuW8YWKsG5c/V6JgLSsgvXCiigEK68+Oarr0QpPnmAA2Pu2xYKCPhrMAL3CkzWCAY3/GTACmfp8MQJR+xVwRM3vK3FYjGcscPxcryVBB87fKjIXJXs8MYod6Wyxi1f/LK/LMeslQYzP3myzVetkPMBFfNMlZMvryv0Vj6/fHRXSWeM8NJxTlwz1FytoIEDWEtJ9dZcd+3112CHLfbYZJdt9tkVdYu1AxqEjHZSK0iw9tw7v33UCnPnjXX+0HYHpbfeRvdtVJN/5+224D4VDjjiRSmuN+ND4e343JALJfnkWFcuFOZrax7U1ZhD7HnimI8eFOGKi256T6jrrfrqPVmdd900rWD77bAXVC/fMt3uO++52/T778H/NLzvxcd+PPLJ67Q88803BLxHz9sePUMjeKv94R9Vf31CVmsvPu3dL/89QuGPL/5J5p9vkPrqvy4S9O4TlD782tcvU/b4iz+9QCsYgQDBpb+N8K9/3vrfABcovwLyC4Hamx4DGejAi3QLguSz3wQpWMGKYLCBrdrgAjtYkQPiT4IiHOD/SGgQE44PhCFMIQFZOBEXJvAhMhTgCmloEBSoMCKoOYQhD0MSwBRyb4gh8aEIkciSInKQiU30ob2gSMUqWvGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWxAoIACH5BAkFADYAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHUVFRUVFRUVFRUVFRUlJSVVVVV1dXY2NjcnJyfn5+ioqKjY2NjY2NjY2Njo6Ojo6Ojo6OkJCQlZWVmJiYmZmZmZmZmZmZmZmZmpqampqam5ubnJycnp6eo6Ojqampr6+vs7Oztra2urq6vLy8vb29vb29vb29vb29vr6+vr6+vr6+wMDAxMTEzc3N3t7e8fHx+/v7/v7+/v7+/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AbQgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZoYlMZJHCAAQg80MKJiSUgwIw0znjAizAO1oIBNfY4YwY5Csajjz6CEORfBxCpJI5HngVCBlCm4BAISip5QJNltZCAAVx2eQCQCyVZJZFYjgVCl2h2icBCYyoJZplenZnmnFci1EKbRCYAp1c7zumnngelgKePa+7J1ZZ++skkQYIOWmOhhmqVaKIPIORojW9GepWck6ZZp0FDXrqoplVl0KmfCD1wqQAGkJqVqf6nppnQqka6ehWssXaZEJWDQmprVX3myqJCGeD56a9WrShspgedWWWlyGLFaawOmdojtNFmhUCuUkLUwqjZansqs+G29UCiB9RablwtPKAsi+SuK++89Na7WAsZPKAvCODam9YDCAQscIv+rtXCwAgjAGjBZyWQMMILMzwWwA8jrK7EYVX8MMZigaBxwv1y/OrHFov8FcUkB3yxyVplkLLAK7OMVQovBxyyzFXV7CvOWXmccsw8X4VyxdgGvdXQCBdt9FY+l7w0WC2AIPXNT1dt9dVYZ6311lx37fXXYIftUApQZtCt2FDlq+/aDwCN9lFqs712vG8TFbfca7tdN/5Q7eKN995w+4233oDzJLjfhRN1+N+JC7W43I0LdffhdEeeU9+PU235TY/ru3lQmAv+uVChQz76UCnIfTZO37Z+elGtx6756zbJLjvtP9keO+4+6e467zz5/i3wwQtPPENRl716ScLPDvyTZSuPku/HKwR99NKfZHv1CZGNPfbc2/T994SHnxK+44PvbQspOG++t+mr3xD7KdRv//saoR8/lA7Rb///+MvI/so2tv8Z0H0BTMgAzTY/AzowgRbRX/oK6EAAQrAi3hvfQypowAtG8HpQKl9BOGhBD1ZkdxHxHwdN2BISto+FLawgAmH4EQfOkIYgGR4Od8jDHvrwh4ZADKIQh0jEIhrxiEhMohKXyMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU56cooBAQAh+QQJBQA3ACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBhzk5OTk5OTk5OTo6Oj8/P0hISE5OTlBQUFBQUFBQUFJSUlVVVVpaWmBgYGtra3d3d4CAgIqKipCQkJWVlZeXl5iYmJmZmZqampqampqampubm6Wlpa+vr7GxsbGxsbKysrKysrKysrKysra2tru7u729vb29vb6+vr6+vr6+vr6+vsHBwcTExMnJyc/Pz9nZ2e3t7fv7+/7+/v7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AG8IHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaGJTLoSAgQQYpHCiYik4oMCMNCqAwYuGSVDjjgo4gONgEPDIIwM/AhaCkEL6WKRaLqTgAkRIInnjkmWF8IADWGIJwZMLYRBlklSSBUGWZGI5ZUIMfCkkl2F+dWWZZZ55kJpChtDmV2PCCaedCNHJI593bhWCnoQm5OeOgAaa1ZuEluninIfSyKaiWDWqpwQIBRmpApRq5YKlcEKAkAubYpoQBg4EoGoADyTa6VD+MYJK5gMJaernqavmqqoCj74q1KeyZikqmn66OtADuiYbwLC+BhVslnIelOaXxgqErLLJMtusTxI868CkmSL5LUIYYIstuNvqBKys2irkggQPzOgABL3Oaa6ynKbr06Cg0vpRCPdiW6++OqHa6APoanRtwLqaSjBPKTBKZrsdKcBwsko+3FMKGEDwAAQYJMzRxcnmq7FZJOtq8slkWZyyqv6yLObLqkYrs0kphhCCyC25QHMAN6eUAgREF00vTS6TTHHQIXVstNE29/wy0yZJ8PTVUbME8MUDU/3R0FdfzbNKKQTMq9ckWR320w7LtHDDaJe0dtg3hZDn0XGTBPb+3EaPnbdVe/NNtN9/UxW44IQXPpXgRiv+ldqCZ+24VS4wvvTkWDk9d7WYY2X32l13vhXkREsu+lYupH766qy37vrrsMcu++y012777SeloDvuVLmAwe/Ah8z7UyoGH3zowxfFsfHGJ558T8xH/zxSvkff/PRGFW898MhjD/32wXPuPU/ghz8+rOX/7vz5NaVvOvs5aW999/AXDH79RMkPvPj485Qi9z5RXf+OkroCrm+ANTGgAREYFAUukIE/ceADIeg/CQqQgjux4AUxuBDdhcBJKrEgBxmSAp2ZUGcpkeAIO3jCFh4wIxNc4UFy1sITytAmNawh/W6okhzWUCLtG+ThRnzYQojo7oggFKJGiGhDhyARiS9UIkKYqLMdDuSJT5QiRkrIROdhEYpavAgTrSiQJn3xiGEUYw7JWMYzojGNFuGiCQ9oRjfC0SVuTOIdV5LHPeLxi358SR31GMhCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuMylLnfJy1768pfADKYwh0nMYhrzmMhMpjKXycxmOvOZ0IymNKdJzWpa85rYzKY2t8nNbnrzm+AMpzjHSc5ymvOc6EznMwMCACH5BAkFADAAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHQUFBQUFBQUFBRUVFS0tLUlJSV1dXWVlZWVlZWlpaXV1dbm5uhISEk5OTmJiYmZmZmZmZmZmZmpqanp6ep6enra2tsLCwsbGxsbGxsrKys7OztLS0t7e3urq6vb29wMDAxcXFycnJzMzMzc3Nzc3Nzs7Ozs7Oz8/P1NTU3Nzc7u7u/v7+/v7+/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AYQgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZoolMmeOCBCScyJgECMMbIAIstFmZCjDjGKEGNg3mQ448IMMAjYDcC+WMGQ/q1gJFA0phkWRIsIOUCDHjQUJFM5tjAk2RFOeWXCziJ0ItZ/silWF6C+aWYBi1ZZo5ngpWmml8q5OabMbIZZ1Z00rkjQnfiiYCee1o1Z59TJtSAoDEWyhWidCJ5kI+MLuDoVpCq+edBjCJgZUImRAnjAptealSmYJZaUAaCWoqQCf4LBCDrrLK6aipRqH4pKUKLvplQBrQGOyuht/LUQK5SEjtQr0aGiZAHwkYbgLLF4uQBsrYqdC2QqhYkbbQIVBsUA7l+2pAHEjDAgAS7IsTAt9FuKa5PsGYq70fwSjvvT/X2ea9HwOYrrLn78nSolAR79K7AwXZbsE4eZMAutRrFyjCt/z5MlsUXy5qxxmI10PGsDoP8FbQjT2sySya0fFPK4a6cUrrqqttuTBKMfLPMInlQ88/qUpwSAhdny3PPQCctNEpE5xvz0SQlnfTHLzUtrdFQg5SB1EknDBOrwi7gddYfNcA10CW/ZILEEoxNNkhnJ/22WHEDPXdYdf98t/6cea+798l9L/23VGbHnfbgVplQN+JgmVA42oyLhW7NEgge+eWYZ6755px37vnnoIcu+uikE+ly6VSxLcHqbqOOVKirxx67607JbvvqtC+l+u2r75z7ULzf/vtRsAcfu+XD24Su8ccnT1TxzCPvPE3Mzz498NX7fj1P0PO+PVHL8y799zN1v/r45NOUYgYrpu/++/DHL//89GPWMvr1sxRxBvxngH/+J+mfANkHQJwMcICtKyDLDjhABdKEgQP8nwM7AkEBIu9+95vgRirYP8thEIMazMj+Kii4D34whBdZGwcfYkIQotAiIzwgRFrowhdSJIYdnCENT2dDiqyPf6UJfNUOJdjDFO6wiC45IhJZ1sIlqi2DToyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU568pOgDKUoR0nKUprylKhMpSpXycpWuvKVsIylLGdJy1qSLyAAOw==";
2224
2239
 
2225
- var _templateObject$e, _templateObject2$e, _templateObject3$b, _templateObject4$7;
2240
+ var _templateObject$i, _templateObject2$i, _templateObject3$f, _templateObject4$8;
2226
2241
  function SignIn(_ref) {
2227
2242
  let {
2228
2243
  description
2229
2244
  } = _ref;
2230
2245
  const theme = useTheme();
2231
2246
  const styles = {
2232
- wrapper: css(_templateObject$e || (_templateObject$e = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
2233
- header: css(_templateObject2$e || (_templateObject2$e = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
2234
- icon: css(_templateObject3$b || (_templateObject3$b = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n margin-right: ", ";\n & > img {\n width: 170px;\n }\n "])), theme.cssMixins.rowHCentered, theme.spacing(12), theme.spacing(4)),
2235
- content: css(_templateObject4$7 || (_templateObject4$7 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ", ";\n margin-bottom: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(4), theme.palette.text.secondary, theme.spacing(8))
2247
+ wrapper: css(_templateObject$i || (_templateObject$i = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
2248
+ header: css(_templateObject2$i || (_templateObject2$i = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
2249
+ icon: css(_templateObject3$f || (_templateObject3$f = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n margin-right: ", ";\n & > img {\n width: 170px;\n }\n "])), theme.cssMixins.rowHCentered, theme.spacing(12), theme.spacing(4)),
2250
+ content: css(_templateObject4$8 || (_templateObject4$8 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ", ";\n margin-bottom: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(4), theme.palette.text.secondary, theme.spacing(8))
2236
2251
  };
2237
2252
  return jsxs(Box, {
2238
2253
  css: styles.wrapper,
@@ -2253,8 +2268,8 @@ function SignIn(_ref) {
2253
2268
  });
2254
2269
  }
2255
2270
 
2256
- var _templateObject$d, _templateObject2$d, _templateObject3$a, _templateObject4$6, _templateObject5$5, _templateObject6$4, _templateObject7$4;
2257
- function Evaluation$4(_ref) {
2271
+ var _templateObject$h, _templateObject2$h, _templateObject3$e, _templateObject4$7, _templateObject5$6, _templateObject6$5, _templateObject7$4;
2272
+ function Evaluation$5(_ref) {
2258
2273
  let {
2259
2274
  poolInfo,
2260
2275
  handleApprove
@@ -2285,12 +2300,12 @@ function Evaluation$4(_ref) {
2285
2300
  fetchData();
2286
2301
  }, [account, chainId, checkingEA, handleApprove, poolInfo.assetAddress, poolInfo.pool, isWalletOwnershipVerified]);
2287
2302
  const styles = {
2288
- wrapper: css(_templateObject$d || (_templateObject$d = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
2289
- header: css(_templateObject2$d || (_templateObject2$d = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
2290
- content: css(_templateObject3$a || (_templateObject3$a = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ", ";\n margin-bottom: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(4), theme.palette.text.secondary, theme.spacing(8)),
2291
- checkWrapper: css(_templateObject4$6 || (_templateObject4$6 = _taggedTemplateLiteral(["\n ", "\n width: 100%;\n height: 72px;\n background: #f9f8fa;\n border-radius: 4px;\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowVCentered, theme.palette.text.secondary),
2292
- checkIcon: css(_templateObject5$5 || (_templateObject5$5 = _taggedTemplateLiteral(["\n ", "\n width: 105px;\n height: 100%;\n\n & > img {\n max-width: 100%;\n max-height: 100%;\n }\n "])), theme.cssMixins.rowCentered),
2293
- congratsWrapper: css(_templateObject6$4 || (_templateObject6$4 = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 16px;\n padding: ", ";\n ", "\n margin-top: ", ";\n height: 52px;\n background: linear-gradient(\n 0deg,\n rgba(255, 255, 255, 0.9),\n rgba(255, 255, 255, 0.9)\n ),\n #2e7d32;\n border-radius: 4px;\n "])), theme.spacing(0, 2), theme.cssMixins.rowVCentered, theme.spacing(8)),
2303
+ wrapper: css(_templateObject$h || (_templateObject$h = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
2304
+ header: css(_templateObject2$h || (_templateObject2$h = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
2305
+ content: css(_templateObject3$e || (_templateObject3$e = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ", ";\n margin-bottom: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(4), theme.palette.text.secondary, theme.spacing(8)),
2306
+ checkWrapper: css(_templateObject4$7 || (_templateObject4$7 = _taggedTemplateLiteral(["\n ", "\n width: 100%;\n height: 72px;\n background: #f9f8fa;\n border-radius: 4px;\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowVCentered, theme.palette.text.secondary),
2307
+ checkIcon: css(_templateObject5$6 || (_templateObject5$6 = _taggedTemplateLiteral(["\n ", "\n width: 105px;\n height: 100%;\n\n & > img {\n max-width: 100%;\n max-height: 100%;\n }\n "])), theme.cssMixins.rowCentered),
2308
+ congratsWrapper: css(_templateObject6$5 || (_templateObject6$5 = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 16px;\n padding: ", ";\n ", "\n margin-top: ", ";\n height: 52px;\n background: linear-gradient(\n 0deg,\n rgba(255, 255, 255, 0.9),\n rgba(255, 255, 255, 0.9)\n ),\n #2e7d32;\n border-radius: 4px;\n "])), theme.spacing(0, 2), theme.cssMixins.rowVCentered, theme.spacing(8)),
2294
2309
  bottom: css(_templateObject7$4 || (_templateObject7$4 = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
2295
2310
  };
2296
2311
  const goToNextStep = () => {
@@ -2354,7 +2369,7 @@ function Evaluation$4(_ref) {
2354
2369
  });
2355
2370
  }
2356
2371
 
2357
- var _templateObject$c, _templateObject2$c, _templateObject3$9, _templateObject4$5, _templateObject5$4, _templateObject6$3, _templateObject7$3, _templateObject8$2, _templateObject9$1, _templateObject10$1, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
2372
+ var _templateObject$g, _templateObject2$g, _templateObject3$d, _templateObject4$6, _templateObject5$5, _templateObject6$4, _templateObject7$3, _templateObject8$2, _templateObject9$1, _templateObject10$1, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
2358
2373
  function ChooseAmountModal(_ref) {
2359
2374
  let {
2360
2375
  title,
@@ -2381,12 +2396,12 @@ function ChooseAmountModal(_ref) {
2381
2396
  } = useMQ();
2382
2397
  const [inputTouched, setInputTouched] = useState(false);
2383
2398
  const styles = {
2384
- subTitle: css(_templateObject$c || (_templateObject$c = _taggedTemplateLiteral(["\n font-weight: 400;\n "]))),
2385
- description2: css(_templateObject2$c || (_templateObject2$c = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowCentered, theme.palette.text.secondary, theme.spacing(2)),
2386
- chosenAmountWrapper: css(_templateObject3$9 || (_templateObject3$9 = _taggedTemplateLiteral(["\n ", ";\n background: linear-gradient(232.71deg, #a363f4 4.17%, #ff6a8a 178.69%);\n background-clip: text;\n -webkit-text-fill-color: transparent;\n font-weight: 700;\n font-size: 32px;\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(1), theme.spacing(4)),
2387
- chosenAmount: css(_templateObject4$5 || (_templateObject4$5 = _taggedTemplateLiteral(["\n font-weight: 700;\n font-size: 32px;\n "]))),
2388
- chosenAmountSymbol: css(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteral(["\n font-size: 75%;\n margin-left: ", ";\n letter-spacing: 0.1px;\n "])), theme.spacing(0.5)),
2389
- inputAmountWrapper: css(_templateObject6$3 || (_templateObject6$3 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.spacing(1), theme.spacing(4)),
2399
+ subTitle: css(_templateObject$g || (_templateObject$g = _taggedTemplateLiteral(["\n font-weight: 400;\n "]))),
2400
+ description2: css(_templateObject2$g || (_templateObject2$g = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowCentered, theme.palette.text.secondary, theme.spacing(2)),
2401
+ chosenAmountWrapper: css(_templateObject3$d || (_templateObject3$d = _taggedTemplateLiteral(["\n ", ";\n background: linear-gradient(232.71deg, #a363f4 4.17%, #ff6a8a 178.69%);\n background-clip: text;\n -webkit-text-fill-color: transparent;\n font-weight: 700;\n font-size: 32px;\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(1), theme.spacing(4)),
2402
+ chosenAmount: css(_templateObject4$6 || (_templateObject4$6 = _taggedTemplateLiteral(["\n font-weight: 700;\n font-size: 32px;\n "]))),
2403
+ chosenAmountSymbol: css(_templateObject5$5 || (_templateObject5$5 = _taggedTemplateLiteral(["\n font-size: 75%;\n margin-left: ", ";\n letter-spacing: 0.1px;\n "])), theme.spacing(0.5)),
2404
+ inputAmountWrapper: css(_templateObject6$4 || (_templateObject6$4 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.spacing(1), theme.spacing(4)),
2390
2405
  inputAmount: css(_templateObject7$3 || (_templateObject7$3 = _taggedTemplateLiteral(["\n ", ";\n "])), theme.cssMixins.rowSpaceBetweened),
2391
2406
  inputField: css(_templateObject8$2 || (_templateObject8$2 = _taggedTemplateLiteral(["\n width: 100%;\n "]))),
2392
2407
  maxButton: css(_templateObject9$1 || (_templateObject9$1 = _taggedTemplateLiteral(["\n width: 80px;\n "]))),
@@ -2537,7 +2552,7 @@ function ChooseAmountModal(_ref) {
2537
2552
  });
2538
2553
  }
2539
2554
 
2540
- function ChooseAmount$c(_ref) {
2555
+ function ChooseAmount$g(_ref) {
2541
2556
  let {
2542
2557
  poolInfo,
2543
2558
  accountStats
@@ -2656,7 +2671,7 @@ function TxSendModal(_ref) {
2656
2671
  });
2657
2672
  }
2658
2673
 
2659
- function Transfer$f(_ref) {
2674
+ function Transfer$k(_ref) {
2660
2675
  let {
2661
2676
  poolInfo
2662
2677
  } = _ref;
@@ -2679,7 +2694,7 @@ function Transfer$f(_ref) {
2679
2694
  });
2680
2695
  }
2681
2696
 
2682
- function Success$c(_ref) {
2697
+ function Success$d(_ref) {
2683
2698
  let {
2684
2699
  poolInfo,
2685
2700
  creditRecord,
@@ -2704,7 +2719,7 @@ function Success$c(_ref) {
2704
2719
  });
2705
2720
  }
2706
2721
 
2707
- var _templateObject$b, _templateObject2$b, _templateObject3$8, _templateObject4$4, _templateObject5$3;
2722
+ var _templateObject$f, _templateObject2$f, _templateObject3$c, _templateObject4$5, _templateObject5$4;
2708
2723
  const validateDefaultTargetGroup = async frontendClient => {
2709
2724
  var _await$frontendClient;
2710
2725
  // NOTE: this extra request is necessary as the targetGroupId state in NotifiTargetContext will not be updated constantly right after login
@@ -2820,11 +2835,11 @@ function NotifiSubscriptionModal(_ref) {
2820
2835
  handleSuccess();
2821
2836
  }, [dispatch, handleSuccess, reset]);
2822
2837
  const styles = {
2823
- disclaimer: css(_templateObject$b || (_templateObject$b = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowCentered, theme.palette.text.secondary, theme.spacing(6)),
2824
- inputField: css(_templateObject2$b || (_templateObject2$b = _taggedTemplateLiteral(["\n width: 100%;\n font-size: 16px;\n "]))),
2825
- inputWrapper: css(_templateObject3$8 || (_templateObject3$8 = _taggedTemplateLiteral(["\n width: 100%;\n "]))),
2826
- header: css(_templateObject4$4 || (_templateObject4$4 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
2827
- check: css(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(10))
2838
+ disclaimer: css(_templateObject$f || (_templateObject$f = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowCentered, theme.palette.text.secondary, theme.spacing(6)),
2839
+ inputField: css(_templateObject2$f || (_templateObject2$f = _taggedTemplateLiteral(["\n width: 100%;\n font-size: 16px;\n "]))),
2840
+ inputWrapper: css(_templateObject3$c || (_templateObject3$c = _taggedTemplateLiteral(["\n width: 100%;\n "]))),
2841
+ header: css(_templateObject4$5 || (_templateObject4$5 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
2842
+ check: css(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(10))
2828
2843
  };
2829
2844
  if (isLoading) {
2830
2845
  return jsx(LoadingModal, {
@@ -3001,17 +3016,17 @@ function CreditLineBorrow(_ref) {
3001
3016
  loadingTitle: "Borrow",
3002
3017
  handleClose: handleClose,
3003
3018
  handleSuccess: handleSuccess,
3004
- children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$4, {
3019
+ children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$5, {
3005
3020
  poolInfo: poolInfo,
3006
3021
  handleApprove: approveCallback
3007
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$c, {
3022
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$g, {
3008
3023
  poolInfo: poolInfo,
3009
3024
  accountStats: accountStats
3010
3025
  }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$a, {
3011
3026
  poolInfo: poolInfo
3012
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$f, {
3027
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$k, {
3013
3028
  poolInfo: poolInfo
3014
- }), step === WIDGET_STEP.Done && jsx(Success$c, {
3029
+ }), step === WIDGET_STEP.Done && jsx(Success$d, {
3015
3030
  poolInfo: poolInfo,
3016
3031
  handleAction: setupNotificationsOrClose,
3017
3032
  creditRecord: creditRecord,
@@ -3026,7 +3041,7 @@ function CreditLineBorrow(_ref) {
3026
3041
  });
3027
3042
  }
3028
3043
 
3029
- var _templateObject$a, _templateObject2$a, _templateObject3$7, _templateObject4$3, _templateObject5$2, _templateObject6$2, _templateObject7$2, _templateObject8$1;
3044
+ var _templateObject$e, _templateObject2$e, _templateObject3$b, _templateObject4$4, _templateObject5$3, _templateObject6$3, _templateObject7$2, _templateObject8$1;
3030
3045
  function InputAmountModal(_ref) {
3031
3046
  let {
3032
3047
  title,
@@ -3035,6 +3050,7 @@ function InputAmountModal(_ref) {
3035
3050
  tokenSymbol,
3036
3051
  suffix: defaultSuffix,
3037
3052
  currentAmount,
3053
+ minimumAmount,
3038
3054
  maxAmount,
3039
3055
  maxAmountText = 'MAX',
3040
3056
  maxAmountTitle,
@@ -3046,12 +3062,12 @@ function InputAmountModal(_ref) {
3046
3062
  const [inputTouched, setInputTouched] = useState(false);
3047
3063
  const suffix = " ".concat(defaultSuffix !== null && defaultSuffix !== void 0 ? defaultSuffix : tokenSymbol);
3048
3064
  const styles = {
3049
- inputAmountWrapper: css(_templateObject$a || (_templateObject$a = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.spacing(1), theme.spacing(16)),
3050
- inputAmount: css(_templateObject2$a || (_templateObject2$a = _taggedTemplateLiteral(["\n ", ";\n "])), theme.cssMixins.rowSpaceBetweened),
3051
- inputField: css(_templateObject3$7 || (_templateObject3$7 = _taggedTemplateLiteral(["\n input {\n width: 100%;\n color: ", ";\n font-weight: 800;\n font-size: 40px;\n line-height: 133.4%;\n }\n "])), theme.palette.text.primary),
3052
- maxWrapper: css(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteral(["\n position: relative;\n display: flex;\n justify-content: flex-end;\n "]))),
3053
- maxTitle: css(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteral(["\n position: absolute;\n color: ", ";\n font-weight: 400;\n font-size: 12px;\n line-height: 166%;\n letter-spacing: 0.4px;\n top: ", ";\n width: 200px;\n text-align: right;\n "])), theme.palette.text.primary, theme.spacing(-3)),
3054
- max: css(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteral(["\n display: flex;\n min-width: fit-content;\n justify-content: center;\n align-items: center;\n border-radius: 32px;\n padding: 4px 10px;\n gap: 8px;\n font-weight: 700;\n font-size: 13px;\n line-height: 22px;\n letter-spacing: 0.46px;\n "]))),
3065
+ inputAmountWrapper: css(_templateObject$e || (_templateObject$e = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.spacing(1), theme.spacing(16)),
3066
+ inputAmount: css(_templateObject2$e || (_templateObject2$e = _taggedTemplateLiteral(["\n ", ";\n "])), theme.cssMixins.rowSpaceBetweened),
3067
+ inputField: css(_templateObject3$b || (_templateObject3$b = _taggedTemplateLiteral(["\n input {\n width: 100%;\n color: ", ";\n font-weight: 800;\n font-size: 40px;\n line-height: 133.4%;\n }\n "])), theme.palette.text.primary),
3068
+ maxWrapper: css(_templateObject4$4 || (_templateObject4$4 = _taggedTemplateLiteral(["\n position: relative;\n display: flex;\n justify-content: flex-end;\n "]))),
3069
+ maxTitle: css(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteral(["\n position: absolute;\n color: ", ";\n font-weight: 400;\n font-size: 12px;\n line-height: 166%;\n letter-spacing: 0.4px;\n top: ", ";\n width: 200px;\n text-align: right;\n "])), theme.palette.text.primary, theme.spacing(-3)),
3070
+ max: css(_templateObject6$3 || (_templateObject6$3 = _taggedTemplateLiteral(["\n display: flex;\n min-width: fit-content;\n justify-content: center;\n align-items: center;\n border-radius: 32px;\n padding: 4px 10px;\n gap: 8px;\n font-weight: 700;\n font-size: 13px;\n line-height: 22px;\n letter-spacing: 0.46px;\n white-space: nowrap;\n "]))),
3055
3071
  info: css(_templateObject7$2 || (_templateObject7$2 = _taggedTemplateLiteral(["\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 160%;\n letter-spacing: 0.15px;\n "])), theme.palette.text.secondary),
3056
3072
  subInfo: css(_templateObject8$1 || (_templateObject8$1 = _taggedTemplateLiteral(["\n position: absolute;\n bottom: ", ";\n "])), theme.spacing(6))
3057
3073
  };
@@ -3069,6 +3085,9 @@ function InputAmountModal(_ref) {
3069
3085
  if (!isEmpty(maxAmount) && Number(currentAmount) > Number(maxAmount)) {
3070
3086
  return true;
3071
3087
  }
3088
+ if (!isEmpty(minimumAmount) && Number(currentAmount) < minimumAmount) {
3089
+ return true;
3090
+ }
3072
3091
  return false;
3073
3092
  };
3074
3093
  const getEndAdornment = () => jsxs(Box, {
@@ -3110,6 +3129,11 @@ function InputAmountModal(_ref) {
3110
3129
  css: styles.info,
3111
3130
  children: info
3112
3131
  }, info))
3132
+ }), !!minimumAmount && minimumAmount > 0 && jsx(Box, {
3133
+ children: jsxs(Typography, {
3134
+ css: styles.info,
3135
+ children: ["Minimum deposit: ", minimumAmount, " ", tokenSymbol]
3136
+ }, 'minDeposit')
3113
3137
  }), jsx(BottomButton, {
3114
3138
  variant: "contained",
3115
3139
  onClick: handleAction,
@@ -3119,7 +3143,7 @@ function InputAmountModal(_ref) {
3119
3143
  });
3120
3144
  }
3121
3145
 
3122
- function ChooseAmount$b(_ref) {
3146
+ function ChooseAmount$f(_ref) {
3123
3147
  let {
3124
3148
  poolInfo,
3125
3149
  poolUnderlyingToken,
@@ -3230,7 +3254,7 @@ function TxSendModalV2(_ref) {
3230
3254
  });
3231
3255
  }
3232
3256
 
3233
- function Transfer$e(_ref) {
3257
+ function Transfer$j(_ref) {
3234
3258
  let {
3235
3259
  poolInfo
3236
3260
  } = _ref;
@@ -3264,7 +3288,7 @@ function Transfer$e(_ref) {
3264
3288
  });
3265
3289
  }
3266
3290
 
3267
- function Success$b(_ref) {
3291
+ function Success$c(_ref) {
3268
3292
  let {
3269
3293
  poolUnderlyingToken,
3270
3294
  creditRecord,
@@ -3361,16 +3385,16 @@ function CreditLineBorrowV2(_ref) {
3361
3385
  handleSuccess: handleSuccessCallback,
3362
3386
  children: [!step && jsx(LoadingModal, {
3363
3387
  title: "Borrow"
3364
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$b, {
3388
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$f, {
3365
3389
  poolInfo: poolInfo,
3366
3390
  poolUnderlyingToken: poolUnderlyingToken,
3367
3391
  accountStats: accountStats
3368
3392
  }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$9, {
3369
3393
  poolInfo: poolInfo,
3370
3394
  poolUnderlyingToken: poolUnderlyingToken
3371
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$e, {
3395
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$j, {
3372
3396
  poolInfo: poolInfo
3373
- }), step === WIDGET_STEP.Done && jsx(Success$b, {
3397
+ }), step === WIDGET_STEP.Done && jsx(Success$c, {
3374
3398
  poolUnderlyingToken: poolUnderlyingToken,
3375
3399
  handleAction: setupNotificationsOrClose,
3376
3400
  creditRecord: accountStats.creditRecord,
@@ -3385,7 +3409,7 @@ function CreditLineBorrowV2(_ref) {
3385
3409
  });
3386
3410
  }
3387
3411
 
3388
- function ChooseAmount$a(_ref) {
3412
+ function ChooseAmount$e(_ref) {
3389
3413
  let {
3390
3414
  payoffAmount,
3391
3415
  totalDueAmount,
@@ -3450,7 +3474,7 @@ function ApproveAllowance$8(_ref) {
3450
3474
  });
3451
3475
  }
3452
3476
 
3453
- function Transfer$d(_ref) {
3477
+ function Transfer$i(_ref) {
3454
3478
  let {
3455
3479
  poolInfo
3456
3480
  } = _ref;
@@ -3476,7 +3500,7 @@ function Transfer$d(_ref) {
3476
3500
  });
3477
3501
  }
3478
3502
 
3479
- function Success$a(_ref) {
3503
+ function Success$b(_ref) {
3480
3504
  let {
3481
3505
  poolInfo,
3482
3506
  handleAction
@@ -3542,15 +3566,15 @@ function CreditLinePayment(_ref) {
3542
3566
  loadingTitle: "Make Payment",
3543
3567
  handleClose: handleClose,
3544
3568
  handleSuccess: handleSuccess,
3545
- children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$a, {
3569
+ children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$e, {
3546
3570
  poolInfo: poolInfo,
3547
3571
  payoffAmount: payoffAmount,
3548
3572
  totalDueAmount: totalDueAmount
3549
3573
  }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$8, {
3550
3574
  poolInfo: poolInfo
3551
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$d, {
3575
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$i, {
3552
3576
  poolInfo: poolInfo
3553
- }), step === WIDGET_STEP.Done && jsx(Success$a, {
3577
+ }), step === WIDGET_STEP.Done && jsx(Success$b, {
3554
3578
  poolInfo: poolInfo,
3555
3579
  handleAction: handleClose
3556
3580
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
@@ -3561,7 +3585,7 @@ function CreditLinePayment(_ref) {
3561
3585
  });
3562
3586
  }
3563
3587
 
3564
- function ChooseAmount$9(_ref) {
3588
+ function ChooseAmount$d(_ref) {
3565
3589
  let {
3566
3590
  payoffAmount: payoffAmountBN,
3567
3591
  totalDueAmount: totalDueAmountBN,
@@ -3583,6 +3607,8 @@ function ChooseAmount$9(_ref) {
3583
3607
  } = usePoolSafeAllowanceV2(poolInfo.poolName, account, provider);
3584
3608
  const totalDueAmount = Number(ethers.utils.formatUnits(totalDueAmountBN, decimals));
3585
3609
  const payoffAmount = Number(ethers.utils.formatUnits(payoffAmountBN, decimals));
3610
+
3611
+ // TODO: Remove redundant useEffect
3586
3612
  useEffect(() => {
3587
3613
  setCurrentAmount(totalDueAmount);
3588
3614
  }, [totalDueAmount]);
@@ -3640,7 +3666,7 @@ function ApproveAllowance$7(_ref) {
3640
3666
  });
3641
3667
  }
3642
3668
 
3643
- function Transfer$c(_ref) {
3669
+ function Transfer$h(_ref) {
3644
3670
  let {
3645
3671
  poolInfo,
3646
3672
  poolUnderlyingToken
@@ -3675,7 +3701,7 @@ function Transfer$c(_ref) {
3675
3701
  });
3676
3702
  }
3677
3703
 
3678
- function Success$9(_ref) {
3704
+ function Success$a(_ref) {
3679
3705
  let {
3680
3706
  poolUnderlyingToken,
3681
3707
  handleAction
@@ -3746,7 +3772,7 @@ function CreditLinePaymentV2(_ref) {
3746
3772
  loadingTitle: "Pay",
3747
3773
  handleClose: handleClose,
3748
3774
  handleSuccess: handleSuccess,
3749
- children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$9, {
3775
+ children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$d, {
3750
3776
  poolInfo: poolInfo,
3751
3777
  poolUnderlyingToken: poolUnderlyingToken,
3752
3778
  payoffAmount: payoffAmount,
@@ -3754,10 +3780,10 @@ function CreditLinePaymentV2(_ref) {
3754
3780
  }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$7, {
3755
3781
  poolInfo: poolInfo,
3756
3782
  poolUnderlyingToken: poolUnderlyingToken
3757
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$c, {
3783
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$h, {
3758
3784
  poolInfo: poolInfo,
3759
3785
  poolUnderlyingToken: poolUnderlyingToken
3760
- }), step === WIDGET_STEP.Done && jsx(Success$9, {
3786
+ }), step === WIDGET_STEP.Done && jsx(Success$a, {
3761
3787
  poolUnderlyingToken: poolUnderlyingToken,
3762
3788
  handleAction: handleClose
3763
3789
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
@@ -3787,7 +3813,7 @@ function ApproveAllowance$6(_ref) {
3787
3813
  });
3788
3814
  }
3789
3815
 
3790
- function Success$8(_ref) {
3816
+ function Success$9(_ref) {
3791
3817
  let {
3792
3818
  amountToDeposit,
3793
3819
  poolUnderlyingToken,
@@ -3805,7 +3831,7 @@ function Success$8(_ref) {
3805
3831
  });
3806
3832
  }
3807
3833
 
3808
- function Transfer$b(_ref) {
3834
+ function Transfer$g(_ref) {
3809
3835
  let {
3810
3836
  poolInfo,
3811
3837
  amountToDeposit,
@@ -3886,11 +3912,11 @@ function SupplyFirstLossCover(_ref) {
3886
3912
  poolInfo: poolInfo,
3887
3913
  poolUnderlyingToken: poolUnderlyingToken,
3888
3914
  amountToDeposit: minAmountToDeposit
3889
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$b, {
3915
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$g, {
3890
3916
  poolInfo: poolInfo,
3891
3917
  amountToDeposit: minAmountToDeposit,
3892
3918
  title: title
3893
- }), step === WIDGET_STEP.Done && jsx(Success$8, {
3919
+ }), step === WIDGET_STEP.Done && jsx(Success$9, {
3894
3920
  poolUnderlyingToken: poolUnderlyingToken,
3895
3921
  handleAction: handleClose,
3896
3922
  amountToDeposit: minAmountToDeposit
@@ -3902,7 +3928,7 @@ function SupplyFirstLossCover(_ref) {
3902
3928
  });
3903
3929
  }
3904
3930
 
3905
- function Evaluation$3(_ref) {
3931
+ function Evaluation$4(_ref) {
3906
3932
  let {
3907
3933
  poolInfo,
3908
3934
  tokenId
@@ -3939,7 +3965,7 @@ function Evaluation$3(_ref) {
3939
3965
  });
3940
3966
  }
3941
3967
 
3942
- function ChooseAmount$8(_ref) {
3968
+ function ChooseAmount$c(_ref) {
3943
3969
  var _receivable;
3944
3970
  let {
3945
3971
  poolInfo,
@@ -4004,7 +4030,7 @@ function ChooseAmount$8(_ref) {
4004
4030
  });
4005
4031
  }
4006
4032
 
4007
- var _templateObject$9, _templateObject2$9, _templateObject3$6, _templateObject4$2, _templateObject5$1, _templateObject6$1, _templateObject7$1, _templateObject8, _templateObject9, _templateObject10;
4033
+ var _templateObject$d, _templateObject2$d, _templateObject3$a, _templateObject4$3, _templateObject5$2, _templateObject6$2, _templateObject7$1, _templateObject8, _templateObject9, _templateObject10;
4008
4034
  function ConfirmTransferModal(_ref) {
4009
4035
  let {
4010
4036
  title,
@@ -4015,12 +4041,12 @@ function ConfirmTransferModal(_ref) {
4015
4041
  } = _ref;
4016
4042
  const theme = useTheme();
4017
4043
  const styles = {
4018
- wrapper: css(_templateObject$9 || (_templateObject$9 = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n ", ";\n "])), theme.cssMixins.colStretch),
4019
- header: css(_templateObject2$9 || (_templateObject2$9 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
4020
- description: css(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.palette.text.secondary, theme.spacing(4)),
4021
- transferWrapper: css(_templateObject4$2 || (_templateObject4$2 = _taggedTemplateLiteral(["\n margin-top: ", ";\n "])), theme.spacing(9)),
4022
- transfer: css(_templateObject5$1 || (_templateObject5$1 = _taggedTemplateLiteral(["\n font-weight: 400;\n ", "\n ", "\n height: 72px;\n background: #f9f8fa;\n border-radius: 4px;\n font-size: 16px;\n color: ", ";\n padding: ", ";\n margin-bottom: ", ";\n position: relative;\n box-sizing: border-box;\n "])), theme.cssMixins.rowSpaceBetweened, theme.cssMixins.rowVCentered, theme.palette.text.primary, theme.spacing(3, 2), theme.spacing(1)),
4023
- transferItem: css(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteral(["\n ", "\n "])), theme.cssMixins.rowVCentered),
4044
+ wrapper: css(_templateObject$d || (_templateObject$d = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n ", ";\n "])), theme.cssMixins.colStretch),
4045
+ header: css(_templateObject2$d || (_templateObject2$d = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
4046
+ description: css(_templateObject3$a || (_templateObject3$a = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.palette.text.secondary, theme.spacing(4)),
4047
+ transferWrapper: css(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteral(["\n margin-top: ", ";\n "])), theme.spacing(9)),
4048
+ transfer: css(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteral(["\n font-weight: 400;\n ", "\n ", "\n height: 72px;\n background: #f9f8fa;\n border-radius: 4px;\n font-size: 16px;\n color: ", ";\n padding: ", ";\n margin-bottom: ", ";\n position: relative;\n box-sizing: border-box;\n "])), theme.cssMixins.rowSpaceBetweened, theme.cssMixins.rowVCentered, theme.palette.text.primary, theme.spacing(3, 2), theme.spacing(1)),
4049
+ transferItem: css(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteral(["\n ", "\n "])), theme.cssMixins.rowVCentered),
4024
4050
  arrow: css(_templateObject7$1 || (_templateObject7$1 = _taggedTemplateLiteral(["\n @keyframes bounceAlpha {\n 0% {\n opacity: 1;\n transform: translateX(0px) scale(1);\n }\n 25% {\n opacity: 0;\n transform: translateX(10px) scale(0.9);\n }\n 26% {\n opacity: 0;\n transform: translateX(-10px) scale(0.9);\n }\n 55% {\n opacity: 1;\n transform: translateX(0px) scale(1);\n }\n }\n animation-name: bounceAlpha;\n animation-duration: 1.4s;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n\n color: ", ";\n position: absolute;\n margin: auto;\n top: 0;\n left: calc(15% + 36px);\n bottom: 0;\n right: 0;\n width: 16px;\n height: 16px;\n "])), theme.palette.primary.main),
4025
4051
  arrowFirst: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n left: calc(15% + 20px);\n animation-delay: 0.2s;\n "]))),
4026
4052
  okButton: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n width: 100%;\n position: absolute;\n bottom: 0;\n "]))),
@@ -4144,7 +4170,7 @@ function ApproveNFT(_ref) {
4144
4170
  });
4145
4171
  }
4146
4172
 
4147
- function Transfer$a(_ref) {
4173
+ function Transfer$f(_ref) {
4148
4174
  let {
4149
4175
  poolInfo,
4150
4176
  tokenId
@@ -4169,7 +4195,7 @@ function Transfer$a(_ref) {
4169
4195
  });
4170
4196
  }
4171
4197
 
4172
- function Success$7(_ref) {
4198
+ function Success$8(_ref) {
4173
4199
  let {
4174
4200
  handleAction
4175
4201
  } = _ref;
@@ -4217,19 +4243,19 @@ function InvoiceFactoringBorrow(_ref) {
4217
4243
  isOpen: true,
4218
4244
  handleClose: handleClose,
4219
4245
  handleSuccess: handleSuccess,
4220
- children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$3, {
4246
+ children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$4, {
4221
4247
  poolInfo: poolInfo,
4222
4248
  tokenId: tokenId.toString()
4223
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$8, {
4249
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$c, {
4224
4250
  poolInfo: poolInfo,
4225
4251
  accountStats: accountStats
4226
4252
  }), step === WIDGET_STEP.ConfirmTransfer && jsx(ConfirmTransfer$2, {}), step === WIDGET_STEP.ApproveNFT && jsx(ApproveNFT, {
4227
4253
  poolInfo: poolInfo,
4228
4254
  tokenId: tokenId.toString()
4229
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$a, {
4255
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$f, {
4230
4256
  poolInfo: poolInfo,
4231
4257
  tokenId: tokenId.toString()
4232
- }), step === WIDGET_STEP.Done && jsx(Success$7, {
4258
+ }), step === WIDGET_STEP.Done && jsx(Success$8, {
4233
4259
  handleAction: handleClose
4234
4260
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
4235
4261
  title: "Invoice Factoring",
@@ -4239,7 +4265,7 @@ function InvoiceFactoringBorrow(_ref) {
4239
4265
  });
4240
4266
  }
4241
4267
 
4242
- function ChooseAmount$7(_ref) {
4268
+ function ChooseAmount$b(_ref) {
4243
4269
  let {
4244
4270
  creditRecord,
4245
4271
  poolInfo
@@ -4304,7 +4330,7 @@ function ApproveAllowance$5(_ref) {
4304
4330
  });
4305
4331
  }
4306
4332
 
4307
- function Transfer$9(_ref) {
4333
+ function Transfer$e(_ref) {
4308
4334
  let {
4309
4335
  poolInfo
4310
4336
  } = _ref;
@@ -4330,7 +4356,7 @@ function Transfer$9(_ref) {
4330
4356
  });
4331
4357
  }
4332
4358
 
4333
- function Success$6(_ref) {
4359
+ function Success$7(_ref) {
4334
4360
  let {
4335
4361
  poolInfo,
4336
4362
  handleAction
@@ -4384,14 +4410,14 @@ function InvoiceFactoringPayment(_ref) {
4384
4410
  loadingTitle: "Make Payment",
4385
4411
  handleClose: handleClose,
4386
4412
  handleSuccess: handleSuccess,
4387
- children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$7, {
4413
+ children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$b, {
4388
4414
  creditRecord: creditRecord,
4389
4415
  poolInfo: poolInfo
4390
4416
  }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$5, {
4391
4417
  poolInfo: poolInfo
4392
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$9, {
4418
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$e, {
4393
4419
  poolInfo: poolInfo
4394
- }), step === WIDGET_STEP.Done && jsx(Success$6, {
4420
+ }), step === WIDGET_STEP.Done && jsx(Success$7, {
4395
4421
  poolInfo: poolInfo,
4396
4422
  handleAction: handleClose
4397
4423
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
@@ -4402,8 +4428,8 @@ function InvoiceFactoringPayment(_ref) {
4402
4428
  });
4403
4429
  }
4404
4430
 
4405
- var _templateObject$8, _templateObject2$8, _templateObject3$5;
4406
- function ChooseTranche$1(_ref) {
4431
+ var _templateObject$c, _templateObject2$c, _templateObject3$9;
4432
+ function ChooseTranche$4(_ref) {
4407
4433
  let {
4408
4434
  selectedTranche,
4409
4435
  changeTranche
@@ -4411,9 +4437,9 @@ function ChooseTranche$1(_ref) {
4411
4437
  const theme = useTheme();
4412
4438
  const dispatch = useAppDispatch();
4413
4439
  const styles = {
4414
- subTitle: css(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
4415
- radioGroup: css(_templateObject2$8 || (_templateObject2$8 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
4416
- formControl: css(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
4440
+ subTitle: css(_templateObject$c || (_templateObject$c = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
4441
+ radioGroup: css(_templateObject2$c || (_templateObject2$c = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
4442
+ formControl: css(_templateObject3$9 || (_templateObject3$9 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
4417
4443
  };
4418
4444
  const handleNext = () => {
4419
4445
  dispatch(setStep(WIDGET_STEP.ChooseAmount));
@@ -4458,7 +4484,7 @@ function ChooseTranche$1(_ref) {
4458
4484
  });
4459
4485
  }
4460
4486
 
4461
- function ChooseAmount$6(_ref) {
4487
+ function ChooseAmount$a(_ref) {
4462
4488
  let {
4463
4489
  poolInfo,
4464
4490
  poolUnderlyingToken,
@@ -4524,7 +4550,7 @@ function ChooseAmount$6(_ref) {
4524
4550
  });
4525
4551
  }
4526
4552
 
4527
- function Transfer$8(_ref) {
4553
+ function Transfer$d(_ref) {
4528
4554
  let {
4529
4555
  poolInfo,
4530
4556
  poolUnderlyingToken,
@@ -4557,7 +4583,7 @@ function Transfer$8(_ref) {
4557
4583
  });
4558
4584
  }
4559
4585
 
4560
- function Done$2(_ref) {
4586
+ function Done$6(_ref) {
4561
4587
  let {
4562
4588
  handleAction
4563
4589
  } = _ref;
@@ -4667,18 +4693,18 @@ function AddRedemptionV2(_ref) {
4667
4693
  loadingTitle: title,
4668
4694
  handleClose: handleClose,
4669
4695
  handleSuccess: handleRedeemSuccess,
4670
- children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$1, {
4696
+ children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$4, {
4671
4697
  selectedTranche: trancheInfo === null || trancheInfo === void 0 ? void 0 : trancheInfo.tranche,
4672
4698
  changeTranche: handleChangeTranche
4673
- }), step === WIDGET_STEP.ChooseAmount && trancheInfo && jsx(ChooseAmount$6, {
4699
+ }), step === WIDGET_STEP.ChooseAmount && trancheInfo && jsx(ChooseAmount$a, {
4674
4700
  poolInfo: poolInfo,
4675
4701
  poolUnderlyingToken: poolUnderlyingToken,
4676
4702
  trancheInfo: trancheInfo
4677
- }), step === WIDGET_STEP.Transfer && trancheInfo && jsx(Transfer$8, {
4703
+ }), step === WIDGET_STEP.Transfer && trancheInfo && jsx(Transfer$d, {
4678
4704
  poolInfo: poolInfo,
4679
4705
  poolUnderlyingToken: poolUnderlyingToken,
4680
4706
  trancheInfo: trancheInfo
4681
- }), step === WIDGET_STEP.Done && trancheInfo && jsx(Done$2, {
4707
+ }), step === WIDGET_STEP.Done && trancheInfo && jsx(Done$6, {
4682
4708
  handleAction: handleClose
4683
4709
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
4684
4710
  title: title,
@@ -4689,7 +4715,7 @@ function AddRedemptionV2(_ref) {
4689
4715
  });
4690
4716
  }
4691
4717
 
4692
- function Transfer$7(_ref) {
4718
+ function Transfer$c(_ref) {
4693
4719
  let {
4694
4720
  poolInfo,
4695
4721
  trancheType,
@@ -4715,7 +4741,7 @@ function Transfer$7(_ref) {
4715
4741
  });
4716
4742
  }
4717
4743
 
4718
- function Done$1(_ref) {
4744
+ function Done$5(_ref) {
4719
4745
  let {
4720
4746
  poolUnderlyingToken,
4721
4747
  redemptionInfo,
@@ -4776,11 +4802,11 @@ function CancelRedemptionV2(_ref) {
4776
4802
  loadingTitle: title,
4777
4803
  handleClose: handleClose,
4778
4804
  handleSuccess: handleRedeemSuccess,
4779
- children: [step === WIDGET_STEP.Transfer && jsx(Transfer$7, {
4805
+ children: [step === WIDGET_STEP.Transfer && jsx(Transfer$c, {
4780
4806
  poolInfo: poolInfo,
4781
4807
  trancheType: trancheType,
4782
4808
  redemptionInfo: redemptionInfo
4783
- }), step === WIDGET_STEP.Done && jsx(Done$1, {
4809
+ }), step === WIDGET_STEP.Done && jsx(Done$5, {
4784
4810
  poolUnderlyingToken: poolUnderlyingToken,
4785
4811
  handleAction: handleClose,
4786
4812
  redemptionInfo: redemptionInfo
@@ -4793,7 +4819,7 @@ function CancelRedemptionV2(_ref) {
4793
4819
  });
4794
4820
  }
4795
4821
 
4796
- var _templateObject$7, _templateObject2$7;
4822
+ var _templateObject$b, _templateObject2$b;
4797
4823
  function EvaluationEA(_ref) {
4798
4824
  let {
4799
4825
  poolInfo,
@@ -4807,8 +4833,8 @@ function EvaluationEA(_ref) {
4807
4833
  } = useWeb3React();
4808
4834
  const [loading, setLoading] = useState(false);
4809
4835
  const styles = {
4810
- iconWrapper: css(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
4811
- description: css(_templateObject2$7 || (_templateObject2$7 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(10), theme.spacing(0, 2), theme.palette.text.secondary)
4836
+ iconWrapper: css(_templateObject$b || (_templateObject$b = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
4837
+ description: css(_templateObject2$b || (_templateObject2$b = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(10), theme.spacing(0, 2), theme.palette.text.secondary)
4812
4838
  };
4813
4839
  const approveLender = async () => {
4814
4840
  if (account) {
@@ -4903,7 +4929,7 @@ function HumaSnackBar(_ref2) {
4903
4929
  });
4904
4930
  }
4905
4931
 
4906
- var _templateObject$6, _templateObject2$6;
4932
+ var _templateObject$a, _templateObject2$a;
4907
4933
  const KYCProvider = 'Securitize';
4908
4934
  // TODO: Add copies for the other pools. Currently only the Jia pool is using the KYC process.
4909
4935
  const JiaPoolCopies = {
@@ -4969,8 +4995,8 @@ function EvaluationKYC(_ref) {
4969
4995
  const docSignatureCompleted = docSignatureStatus === 'completed';
4970
4996
  const [openSnackBar, setOpenSnackBar] = useState(false);
4971
4997
  const styles = {
4972
- iconWrapper: css(_templateObject$6 || (_templateObject$6 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
4973
- description: css(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(10), theme.spacing(0, 2), theme.palette.text.secondary)
4998
+ iconWrapper: css(_templateObject$a || (_templateObject$a = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
4999
+ description: css(_templateObject2$a || (_templateObject2$a = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(10), theme.spacing(0, 2), theme.palette.text.secondary)
4974
5000
  };
4975
5001
  const {
4976
5002
  envelopeKey,
@@ -5161,7 +5187,7 @@ function EvaluationKYC(_ref) {
5161
5187
  });
5162
5188
  }
5163
5189
 
5164
- function Evaluation$2(_ref) {
5190
+ function Evaluation$3(_ref) {
5165
5191
  var _poolInfo$extra;
5166
5192
  let {
5167
5193
  poolInfo,
@@ -5182,7 +5208,7 @@ function Evaluation$2(_ref) {
5182
5208
  });
5183
5209
  }
5184
5210
 
5185
- function ChooseAmount$5(_ref) {
5211
+ function ChooseAmount$9(_ref) {
5186
5212
  let {
5187
5213
  allowance,
5188
5214
  withdrawlLockoutSeconds,
@@ -5239,7 +5265,7 @@ function ApproveAllowance$4(_ref) {
5239
5265
  });
5240
5266
  }
5241
5267
 
5242
- function Transfer$6(_ref) {
5268
+ function Transfer$b(_ref) {
5243
5269
  let {
5244
5270
  poolInfo
5245
5271
  } = _ref;
@@ -5262,7 +5288,7 @@ function Transfer$6(_ref) {
5262
5288
  });
5263
5289
  }
5264
5290
 
5265
- function Success$5(_ref) {
5291
+ function Success$6(_ref) {
5266
5292
  let {
5267
5293
  poolInfo,
5268
5294
  handleAction,
@@ -5385,20 +5411,20 @@ function LendSupply(_ref) {
5385
5411
  loadingTitle: "Supply ".concat(poolInfo.poolUnderlyingToken.symbol),
5386
5412
  handleClose: handleClose,
5387
5413
  handleSuccess: handleSupplySuccess,
5388
- children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$2, {
5414
+ children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$3, {
5389
5415
  poolInfo: poolInfo,
5390
5416
  handleClose: handleClose,
5391
5417
  handleApproveSuccess: handleApproveSuccess
5392
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$5, {
5418
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$9, {
5393
5419
  poolInfo: poolInfo,
5394
5420
  allowance: allowance,
5395
5421
  underlyingTokenBalance: balanceWithoutDecimals,
5396
5422
  withdrawlLockoutSeconds: withdrawlLockoutSeconds
5397
5423
  }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$4, {
5398
5424
  poolInfo: poolInfo
5399
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$6, {
5425
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$b, {
5400
5426
  poolInfo: poolInfo
5401
- }), step === WIDGET_STEP.Done && jsx(Success$5, {
5427
+ }), step === WIDGET_STEP.Done && jsx(Success$6, {
5402
5428
  poolInfo: poolInfo,
5403
5429
  handleAction: setupNotificationsOrClose,
5404
5430
  hasNextStep: isFirstTimeNotifiUser
@@ -5413,8 +5439,8 @@ function LendSupply(_ref) {
5413
5439
  });
5414
5440
  }
5415
5441
 
5416
- var _templateObject$5, _templateObject2$5, _templateObject3$4;
5417
- function ChooseTranche(_ref) {
5442
+ var _templateObject$9, _templateObject2$9, _templateObject3$8;
5443
+ function ChooseTranche$3(_ref) {
5418
5444
  let {
5419
5445
  poolUnderlyingToken,
5420
5446
  selectedTranche,
@@ -5423,9 +5449,9 @@ function ChooseTranche(_ref) {
5423
5449
  const theme = useTheme();
5424
5450
  const dispatch = useAppDispatch();
5425
5451
  const styles = {
5426
- subTitle: css(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
5427
- radioGroup: css(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
5428
- formControl: css(_templateObject3$4 || (_templateObject3$4 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
5452
+ subTitle: css(_templateObject$9 || (_templateObject$9 = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
5453
+ radioGroup: css(_templateObject2$9 || (_templateObject2$9 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
5454
+ formControl: css(_templateObject3$8 || (_templateObject3$8 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
5429
5455
  };
5430
5456
  const handleNext = () => {
5431
5457
  dispatch(setStep(WIDGET_STEP.ChooseAmount));
@@ -5475,13 +5501,14 @@ function ChooseTranche(_ref) {
5475
5501
  });
5476
5502
  }
5477
5503
 
5478
- var _templateObject$4, _templateObject2$4, _templateObject3$3;
5504
+ var _templateObject$8, _templateObject2$8, _templateObject3$7;
5479
5505
  function PersonaEvaluation(_ref) {
5480
5506
  let {
5481
5507
  poolInfo,
5482
5508
  isUniTranche,
5483
5509
  campaign,
5484
5510
  pointsTestnetExperience,
5511
+ chainType,
5485
5512
  changeTranche,
5486
5513
  handleClose
5487
5514
  } = _ref;
@@ -5491,7 +5518,7 @@ function PersonaEvaluation(_ref) {
5491
5518
  const {
5492
5519
  account,
5493
5520
  chainId
5494
- } = useWeb3React();
5521
+ } = useChainInfo(isDev, chainType);
5495
5522
  const {
5496
5523
  errorType,
5497
5524
  setError: setAuthError,
@@ -5741,9 +5768,9 @@ function PersonaEvaluation(_ref) {
5741
5768
  }
5742
5769
  };
5743
5770
  const styles = {
5744
- iconWrapper: css(_templateObject$4 || (_templateObject$4 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
5745
- description: css(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteral(["\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.spacing(10), theme.spacing(0, 2), theme.palette.text.primary),
5746
- points: css(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteral(["\n color: ", ";\n font-weight: 700;\n "])), theme.palette.primary.main)
5771
+ iconWrapper: css(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
5772
+ description: css(_templateObject2$8 || (_templateObject2$8 = _taggedTemplateLiteral(["\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.spacing(10), theme.spacing(0, 2), theme.palette.text.primary),
5773
+ points: css(_templateObject3$7 || (_templateObject3$7 = _taggedTemplateLiteral(["\n color: ", ";\n font-weight: 700;\n "])), theme.palette.primary.main)
5747
5774
  };
5748
5775
  if (!loadingType) {
5749
5776
  return jsxs(WrapperModal, {
@@ -5775,7 +5802,7 @@ function PersonaEvaluation(_ref) {
5775
5802
  });
5776
5803
  }
5777
5804
 
5778
- var _templateObject$3, _templateObject2$3;
5805
+ var _templateObject$7, _templateObject2$7;
5779
5806
  const LoadingCopiesByType = {
5780
5807
  verificationStatus: {
5781
5808
  description: "Checking your verification status..."
@@ -5980,8 +6007,8 @@ function SecuritizeEvaluation(_ref) {
5980
6007
  onClose: () => setOpenSnackBar(false)
5981
6008
  });
5982
6009
  const styles = {
5983
- iconWrapper: css(_templateObject$3 || (_templateObject$3 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
5984
- description: css(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(10), theme.spacing(0, 2), theme.palette.text.primary)
6010
+ iconWrapper: css(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
6011
+ description: css(_templateObject2$7 || (_templateObject2$7 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(10), theme.spacing(0, 2), theme.palette.text.primary)
5985
6012
  };
5986
6013
  if (!loadingType) {
5987
6014
  return jsxs(WrapperModal, {
@@ -6008,7 +6035,7 @@ function SecuritizeEvaluation(_ref) {
6008
6035
  });
6009
6036
  }
6010
6037
 
6011
- function Evaluation$1(_ref) {
6038
+ function Evaluation$2(_ref) {
6012
6039
  var _poolInfo$KYC, _poolInfo$KYC2;
6013
6040
  let {
6014
6041
  poolInfo,
@@ -6031,13 +6058,14 @@ function Evaluation$1(_ref) {
6031
6058
  isUniTranche: isUniTranche,
6032
6059
  pointsTestnetExperience: pointsTestnetExperience,
6033
6060
  campaign: campaign,
6061
+ chainType: CHAIN_TYPE.EVM,
6034
6062
  changeTranche: changeTranche
6035
6063
  });
6036
6064
  }
6037
6065
  return null;
6038
6066
  }
6039
6067
 
6040
- function ChooseAmount$4(_ref) {
6068
+ function ChooseAmount$8(_ref) {
6041
6069
  let {
6042
6070
  poolInfo,
6043
6071
  lpConfig,
@@ -6137,7 +6165,7 @@ function ApproveAllowance$3(_ref) {
6137
6165
  });
6138
6166
  }
6139
6167
 
6140
- function Transfer$5(_ref) {
6168
+ function Transfer$a(_ref) {
6141
6169
  let {
6142
6170
  poolInfo,
6143
6171
  trancheType
@@ -6169,7 +6197,7 @@ function Transfer$5(_ref) {
6169
6197
  });
6170
6198
  }
6171
6199
 
6172
- function Success$4(_ref) {
6200
+ function Success$5(_ref) {
6173
6201
  let {
6174
6202
  poolInfo,
6175
6203
  lpConfig,
@@ -6232,9 +6260,9 @@ function Success$4(_ref) {
6232
6260
  }, [campaign, dispatch, handleAction, isFirstTimeNotifiUser, notifiChainSupported]);
6233
6261
  const content = ["You successfully supplied ".concat(formatMoney(supplyAmount), " ").concat(symbol, ".")];
6234
6262
  const getSubContent = () => {
6235
- const redemptionTime = dayjs().add(lpConfig.withdrawalLockoutPeriodInDays, 'day').date(1);
6236
- const withdrawTime = redemptionTime.add(1, 'month');
6237
- return ["You can begin submitting redemption requests on ".concat(timeUtil.timestampToLL(redemptionTime.unix()), ", which can be redeemed starting ").concat(timeUtil.timestampToLL(withdrawTime.unix()), ".")];
6263
+ const lockupEndTime = dayjs().add(lpConfig.withdrawalLockoutPeriodInDays, 'day').date(1);
6264
+ const withdrawTime = lockupEndTime.add(1, 'month');
6265
+ return ["You can begin submitting redemption requests on ".concat(timeUtil.timestampToLL(lockupEndTime.unix()), ", which can be redeemed starting ").concat(timeUtil.timestampToLL(withdrawTime.unix()), ".")];
6238
6266
  };
6239
6267
  const getButtonText = () => {
6240
6268
  if (hasNextStep) {
@@ -6269,7 +6297,7 @@ function Notifications$1(_ref) {
6269
6297
  });
6270
6298
  }
6271
6299
 
6272
- var _templateObject$2, _templateObject2$2, _templateObject3$2, _templateObject4$1, _templateObject5, _templateObject6, _templateObject7;
6300
+ var _templateObject$6, _templateObject2$6, _templateObject3$6, _templateObject4$2, _templateObject5$1, _templateObject6$1, _templateObject7;
6273
6301
  var STATE = /*#__PURE__*/function (STATE) {
6274
6302
  STATE["Loading"] = "Loading";
6275
6303
  STATE["SignIn"] = "SignIn";
@@ -6357,12 +6385,12 @@ function PointsEarned(_ref) {
6357
6385
  handleAction();
6358
6386
  }, [dispatch, handleAction, reset]);
6359
6387
  const styles = {
6360
- wrapper: css(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
6361
- congrats: css(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteral(["\n margin: ", ";\n "])), theme.spacing(-4, -4.5, 0, -4.5)),
6362
- ribbon: css(_templateObject3$2 || (_templateObject3$2 = _taggedTemplateLiteral(["\n position: relative;\n ", ";\n font-weight: 700;\n margin-top: ", ";\n color: ", ";\n font-size: 20px;\n line-height: 160%;\n letter-spacing: 0.15px;\n "])), theme.cssMixins.rowHCentered, theme.spacing(-8), theme.palette.text.primary),
6363
- ribbonContent: css(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteral(["\n ", ";\n position: absolute;\n top: ", ";\n\n svg {\n margin-right: ", ";\n }\n "])), theme.cssMixins.rowVCentered, theme.spacing(1), theme.spacing(1)),
6364
- entirePoints: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n color: ", ";\n text-align: center;\n font-weight: 700;\n font-size: 20px;\n line-height: 160%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n "])), theme.palette.text.tertiary, theme.spacing(7)),
6365
- entirePointsDetails: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n color: ", ";\n text-align: center;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n "])), theme.palette.text.tertiary, theme.spacing(4)),
6388
+ wrapper: css(_templateObject$6 || (_templateObject$6 = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
6389
+ congrats: css(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteral(["\n margin: ", ";\n "])), theme.spacing(-4, -4.5, 0, -4.5)),
6390
+ ribbon: css(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteral(["\n position: relative;\n ", ";\n font-weight: 700;\n margin-top: ", ";\n color: ", ";\n font-size: 20px;\n line-height: 160%;\n letter-spacing: 0.15px;\n "])), theme.cssMixins.rowHCentered, theme.spacing(-8), theme.palette.text.primary),
6391
+ ribbonContent: css(_templateObject4$2 || (_templateObject4$2 = _taggedTemplateLiteral(["\n ", ";\n position: absolute;\n top: ", ";\n\n svg {\n margin-right: ", ";\n }\n "])), theme.cssMixins.rowVCentered, theme.spacing(1), theme.spacing(1)),
6392
+ entirePoints: css(_templateObject5$1 || (_templateObject5$1 = _taggedTemplateLiteral(["\n color: ", ";\n text-align: center;\n font-weight: 700;\n font-size: 20px;\n line-height: 160%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n "])), theme.palette.text.tertiary, theme.spacing(7)),
6393
+ entirePointsDetails: css(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteral(["\n color: ", ";\n text-align: center;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n "])), theme.palette.text.tertiary, theme.spacing(4)),
6366
6394
  everyday: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n font-weight: 700;\n "])))
6367
6395
  };
6368
6396
  if (state === STATE.SignIn) {
@@ -6494,18 +6522,18 @@ function LendSupplyV2(_ref) {
6494
6522
  loadingTitle: "Supply ".concat(poolUnderlyingToken.symbol),
6495
6523
  handleClose: handleClose,
6496
6524
  handleSuccess: handleSuccess,
6497
- children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche, {
6525
+ children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$3, {
6498
6526
  poolUnderlyingToken: poolUnderlyingToken,
6499
6527
  selectedTranche: selectedTranche,
6500
6528
  changeTranche: setSelectedTranche
6501
- }), step === WIDGET_STEP.Evaluation && jsx(Evaluation$1, {
6529
+ }), step === WIDGET_STEP.Evaluation && jsx(Evaluation$2, {
6502
6530
  poolInfo: poolInfo,
6503
6531
  handleClose: handleClose,
6504
6532
  isUniTranche: isUniTranche,
6505
6533
  changeTranche: setSelectedTranche,
6506
6534
  pointsTestnetExperience: pointsTestnetExperience,
6507
6535
  campaign: campaign
6508
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$4, {
6536
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$8, {
6509
6537
  poolInfo: poolInfo,
6510
6538
  lpConfig: lpConfig,
6511
6539
  juniorAssets: juniorAssets,
@@ -6514,10 +6542,10 @@ function LendSupplyV2(_ref) {
6514
6542
  isUniTranche: isUniTranche
6515
6543
  }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$3, {
6516
6544
  poolInfo: poolInfo
6517
- }), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$5, {
6545
+ }), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$a, {
6518
6546
  poolInfo: poolInfo,
6519
6547
  trancheType: selectedTranche
6520
- }), step === WIDGET_STEP.Done && jsx(Success$4, {
6548
+ }), step === WIDGET_STEP.Done && jsx(Success$5, {
6521
6549
  poolInfo: poolInfo,
6522
6550
  lpConfig: lpConfig,
6523
6551
  campaign: campaign,
@@ -6582,7 +6610,7 @@ function CheckWithdrawable(_ref) {
6582
6610
  });
6583
6611
  }
6584
6612
 
6585
- function ChooseAmount$3(_ref) {
6613
+ function ChooseAmount$7(_ref) {
6586
6614
  let {
6587
6615
  lenderPosition,
6588
6616
  poolBalance,
@@ -6620,7 +6648,7 @@ function ChooseAmount$3(_ref) {
6620
6648
  });
6621
6649
  }
6622
6650
 
6623
- function Transfer$4(_ref) {
6651
+ function Transfer$9(_ref) {
6624
6652
  let {
6625
6653
  poolInfo
6626
6654
  } = _ref;
@@ -6643,7 +6671,7 @@ function Transfer$4(_ref) {
6643
6671
  });
6644
6672
  }
6645
6673
 
6646
- function Success$3(_ref) {
6674
+ function Success$4(_ref) {
6647
6675
  let {
6648
6676
  poolInfo,
6649
6677
  handleAction
@@ -6733,13 +6761,13 @@ function LendWithdraw(_ref) {
6733
6761
  children: [step === WIDGET_STEP.CheckWithdrawable && jsx(CheckWithdrawable, {
6734
6762
  poolInfo: poolInfo,
6735
6763
  handleClose: handleClose
6736
- }), step === WIDGET_STEP.ChooseAmount && lenderPosition && poolBalance && jsx(ChooseAmount$3, {
6764
+ }), step === WIDGET_STEP.ChooseAmount && lenderPosition && poolBalance && jsx(ChooseAmount$7, {
6737
6765
  poolInfo: poolInfo,
6738
6766
  lenderPosition: lenderPosition,
6739
6767
  poolBalance: poolBalance
6740
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$4, {
6768
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$9, {
6741
6769
  poolInfo: poolInfo
6742
- }), step === WIDGET_STEP.Done && jsx(Success$3, {
6770
+ }), step === WIDGET_STEP.Done && jsx(Success$4, {
6743
6771
  poolInfo: poolInfo,
6744
6772
  handleAction: handleClose
6745
6773
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
@@ -6751,7 +6779,7 @@ function LendWithdraw(_ref) {
6751
6779
  });
6752
6780
  }
6753
6781
 
6754
- var _templateObject$1, _templateObject2$1, _templateObject3$1, _templateObject4;
6782
+ var _templateObject$5, _templateObject2$5, _templateObject3$5, _templateObject4$1;
6755
6783
  function ConfirmTransfer$1(_ref) {
6756
6784
  let {
6757
6785
  poolInfo,
@@ -6793,10 +6821,10 @@ function ConfirmTransfer$1(_ref) {
6793
6821
  dispatch(setStep(WIDGET_STEP.Transfer));
6794
6822
  };
6795
6823
  const styles = {
6796
- itemWrapper: css(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n margin-top: ", ";\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 175%;\n letter-spacing: 0.15px;\n "])), theme.spacing(9), theme.palette.text.primary),
6797
- item: css(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: ", ";\n "])), theme.spacing(3)),
6798
- itemValue: css(_templateObject3$1 || (_templateObject3$1 = _taggedTemplateLiteral(["\n font-size: 20px;\n font-weight: 700;\n "]))),
6799
- divider: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n border-color: ", ";\n margin-bottom: ", ";\n "])), theme.palette.divider, theme.spacing(3))
6824
+ itemWrapper: css(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteral(["\n margin-top: ", ";\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 175%;\n letter-spacing: 0.15px;\n "])), theme.spacing(9), theme.palette.text.primary),
6825
+ item: css(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: ", ";\n "])), theme.spacing(3)),
6826
+ itemValue: css(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteral(["\n font-size: 20px;\n font-weight: 700;\n "]))),
6827
+ divider: css(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteral(["\n border-color: ", ";\n margin-bottom: ", ";\n "])), theme.palette.divider, theme.spacing(3))
6800
6828
  };
6801
6829
  return jsxs(WrapperModal, {
6802
6830
  title: "Withdraw ".concat(symbol),
@@ -6840,7 +6868,7 @@ function ConfirmTransfer$1(_ref) {
6840
6868
  });
6841
6869
  }
6842
6870
 
6843
- function Transfer$3(_ref) {
6871
+ function Transfer$8(_ref) {
6844
6872
  let {
6845
6873
  poolInfo,
6846
6874
  tranche,
@@ -6866,7 +6894,7 @@ function Transfer$3(_ref) {
6866
6894
  });
6867
6895
  }
6868
6896
 
6869
- function Done(_ref) {
6897
+ function Done$4(_ref) {
6870
6898
  let {
6871
6899
  poolUnderlyingToken,
6872
6900
  withdrawAmount,
@@ -6966,11 +6994,11 @@ function LendWithdrawV2(_ref) {
6966
6994
  redemptionStatus: redemptionStatus,
6967
6995
  poolUnderlyingToken: poolUnderlyingToken,
6968
6996
  poolIsClosed: poolIsClosed
6969
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$3, {
6997
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$8, {
6970
6998
  poolInfo: poolInfo,
6971
6999
  tranche: trancheType,
6972
7000
  poolIsClosed: poolIsClosed
6973
- }), step === WIDGET_STEP.Done && jsx(Done, {
7001
+ }), step === WIDGET_STEP.Done && jsx(Done$4, {
6974
7002
  poolUnderlyingToken: poolUnderlyingToken,
6975
7003
  withdrawAmount: redemptionStatus.withdrawableAssets,
6976
7004
  handleAction: handleClose
@@ -6983,7 +7011,7 @@ function LendWithdrawV2(_ref) {
6983
7011
  });
6984
7012
  }
6985
7013
 
6986
- function ChooseAmount$2(_ref) {
7014
+ function ChooseAmount$6(_ref) {
6987
7015
  let {
6988
7016
  poolInfo,
6989
7017
  poolUnderlyingToken,
@@ -7106,7 +7134,7 @@ function ApproveReceivable$1(_ref) {
7106
7134
  });
7107
7135
  }
7108
7136
 
7109
- function Transfer$2(_ref) {
7137
+ function Transfer$7(_ref) {
7110
7138
  let {
7111
7139
  poolInfo,
7112
7140
  tokenId
@@ -7151,7 +7179,7 @@ function Transfer$2(_ref) {
7151
7179
  });
7152
7180
  }
7153
7181
 
7154
- function Success$2(_ref) {
7182
+ function Success$3(_ref) {
7155
7183
  let {
7156
7184
  poolUnderlyingToken,
7157
7185
  creditRecord,
@@ -7247,7 +7275,7 @@ function ReceivableBackedCreditLineBorrowV2(_ref) {
7247
7275
  loadingTitle: "Borrow",
7248
7276
  handleClose: handleClose,
7249
7277
  handleSuccess: handleSuccessCallback,
7250
- children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$2, {
7278
+ children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$6, {
7251
7279
  poolInfo: poolInfo,
7252
7280
  poolUnderlyingToken: poolUnderlyingToken,
7253
7281
  accountStats: accountStats,
@@ -7258,10 +7286,10 @@ function ReceivableBackedCreditLineBorrowV2(_ref) {
7258
7286
  }), step === WIDGET_STEP.ApproveNFT && tokenId && jsx(ApproveReceivable$1, {
7259
7287
  poolInfo: poolInfo,
7260
7288
  tokenId: tokenId
7261
- }), step === WIDGET_STEP.Transfer && tokenId && jsx(Transfer$2, {
7289
+ }), step === WIDGET_STEP.Transfer && tokenId && jsx(Transfer$7, {
7262
7290
  poolInfo: poolInfo,
7263
7291
  tokenId: tokenId
7264
- }), step === WIDGET_STEP.Done && jsx(Success$2, {
7292
+ }), step === WIDGET_STEP.Done && jsx(Success$3, {
7265
7293
  poolUnderlyingToken: poolUnderlyingToken,
7266
7294
  handleAction: setupNotificationsOrClose,
7267
7295
  creditRecord: accountStats.creditRecord,
@@ -7276,7 +7304,7 @@ function ReceivableBackedCreditLineBorrowV2(_ref) {
7276
7304
  });
7277
7305
  }
7278
7306
 
7279
- var _templateObject, _templateObject2, _templateObject3;
7307
+ var _templateObject$4, _templateObject2$4, _templateObject3$4;
7280
7308
  function ChoosePaymentType(_ref) {
7281
7309
  let {
7282
7310
  paymentType,
@@ -7285,9 +7313,9 @@ function ChoosePaymentType(_ref) {
7285
7313
  const theme = useTheme();
7286
7314
  const dispatch = useAppDispatch();
7287
7315
  const styles = {
7288
- subTitle: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
7289
- radioGroup: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
7290
- formControl: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
7316
+ subTitle: css(_templateObject$4 || (_templateObject$4 = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
7317
+ radioGroup: css(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
7318
+ formControl: css(_templateObject3$4 || (_templateObject3$4 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
7291
7319
  };
7292
7320
  const handleNext = () => {
7293
7321
  dispatch(setStep(WIDGET_STEP.ChooseAmount));
@@ -7332,7 +7360,7 @@ function ChoosePaymentType(_ref) {
7332
7360
  });
7333
7361
  }
7334
7362
 
7335
- function ChooseAmount$1(_ref) {
7363
+ function ChooseAmount$5(_ref) {
7336
7364
  let {
7337
7365
  payoffAmount: payoffAmountBN,
7338
7366
  poolInfo,
@@ -7514,7 +7542,7 @@ function ApproveReceivable(_ref) {
7514
7542
  });
7515
7543
  }
7516
7544
 
7517
- function Transfer$1(_ref) {
7545
+ function Transfer$6(_ref) {
7518
7546
  let {
7519
7547
  poolInfo,
7520
7548
  poolUnderlyingToken,
@@ -7572,7 +7600,7 @@ function Transfer$1(_ref) {
7572
7600
  });
7573
7601
  }
7574
7602
 
7575
- function Success$1(_ref) {
7603
+ function Success$2(_ref) {
7576
7604
  let {
7577
7605
  poolUnderlyingToken,
7578
7606
  paymentType,
@@ -7665,7 +7693,7 @@ function ReceivableBackedCreditLinePaymentV2(_ref) {
7665
7693
  children: [step === WIDGET_STEP.ChoosePaymentType && jsx(ChoosePaymentType, {
7666
7694
  paymentType: paymentType,
7667
7695
  changePaymentType: setPaymentType
7668
- }), step === WIDGET_STEP.ChooseAmount && paymentType && jsx(ChooseAmount$1, {
7696
+ }), step === WIDGET_STEP.ChooseAmount && paymentType && jsx(ChooseAmount$5, {
7669
7697
  poolInfo: poolInfo,
7670
7698
  poolUnderlyingToken: poolUnderlyingToken,
7671
7699
  payoffAmount: payoffAmount,
@@ -7681,14 +7709,14 @@ function ReceivableBackedCreditLinePaymentV2(_ref) {
7681
7709
  }), step === WIDGET_STEP.ApproveNFT && borrowTokenId && jsx(ApproveReceivable, {
7682
7710
  poolInfo: poolInfo,
7683
7711
  tokenId: borrowTokenId
7684
- }), step === WIDGET_STEP.Transfer && paymentType && jsx(Transfer$1, {
7712
+ }), step === WIDGET_STEP.Transfer && paymentType && jsx(Transfer$6, {
7685
7713
  poolInfo: poolInfo,
7686
7714
  poolUnderlyingToken: poolUnderlyingToken,
7687
7715
  paymentType: paymentType,
7688
7716
  paymentTokenId: tokenId,
7689
7717
  borrowTokenId: borrowTokenId,
7690
7718
  setSuccessTxReceipt: setSuccessTxReceipt
7691
- }), step === WIDGET_STEP.Done && paymentType && successTxReceipt && jsx(Success$1, {
7719
+ }), step === WIDGET_STEP.Done && paymentType && successTxReceipt && jsx(Success$2, {
7692
7720
  poolUnderlyingToken: poolUnderlyingToken,
7693
7721
  paymentType: paymentType,
7694
7722
  handleAction: handleClose,
@@ -7701,7 +7729,7 @@ function ReceivableBackedCreditLinePaymentV2(_ref) {
7701
7729
  });
7702
7730
  }
7703
7731
 
7704
- function Evaluation(_ref) {
7732
+ function Evaluation$1(_ref) {
7705
7733
  let {
7706
7734
  poolInfo,
7707
7735
  payerAddress,
@@ -7739,7 +7767,7 @@ function Evaluation(_ref) {
7739
7767
  });
7740
7768
  }
7741
7769
 
7742
- function ChooseAmount(_ref) {
7770
+ function ChooseAmount$4(_ref) {
7743
7771
  var _poolInfo$extra;
7744
7772
  let {
7745
7773
  poolInfo,
@@ -7925,7 +7953,7 @@ function Permit(_ref) {
7925
7953
  });
7926
7954
  }
7927
7955
 
7928
- function Transfer(_ref) {
7956
+ function Transfer$5(_ref) {
7929
7957
  let {
7930
7958
  poolInfo
7931
7959
  } = _ref;
@@ -7954,7 +7982,7 @@ function Transfer(_ref) {
7954
7982
  });
7955
7983
  }
7956
7984
 
7957
- function Success(_ref) {
7985
+ function Success$1(_ref) {
7958
7986
  let {
7959
7987
  handleAction
7960
7988
  } = _ref;
@@ -8000,11 +8028,11 @@ function StreamFactoringBorrow(_ref) {
8000
8028
  isOpen: isOpen,
8001
8029
  handleClose: handleClose,
8002
8030
  handleSuccess: handleSuccess,
8003
- children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation, {
8031
+ children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$1, {
8004
8032
  poolInfo: poolInfo,
8005
8033
  payerAddress: payerAddress,
8006
8034
  superToken: superToken
8007
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount, {
8035
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$4, {
8008
8036
  poolInfo: poolInfo,
8009
8037
  currentFlowRate: currentFlowRate
8010
8038
  }), step === WIDGET_STEP.ConfirmTransfer && jsx(ConfirmTransfer, {}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance, {
@@ -8014,9 +8042,9 @@ function StreamFactoringBorrow(_ref) {
8014
8042
  payerAddress: payerAddress,
8015
8043
  borrower: account,
8016
8044
  superToken: superToken
8017
- }), step === WIDGET_STEP.Transfer && jsx(Transfer, {
8045
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$5, {
8018
8046
  poolInfo: poolInfo
8019
- }), step === WIDGET_STEP.Done && jsx(Success, {
8047
+ }), step === WIDGET_STEP.Done && jsx(Success$1, {
8020
8048
  handleAction: handleClose
8021
8049
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
8022
8050
  title: "Stream Borrowing",
@@ -8541,86 +8569,1512 @@ const themeHuma = createTheme(themeBase, {
8541
8569
  components: components(themeBase)
8542
8570
  });
8543
8571
 
8544
- function NotifiContextWrapper(_ref) {
8572
+ function Evaluation(_ref) {
8573
+ var _poolInfo$KYC;
8545
8574
  let {
8546
- chainId,
8547
- children
8575
+ poolInfo,
8576
+ isUniTranche,
8577
+ pointsTestnetExperience,
8578
+ campaign,
8579
+ changeTranche,
8580
+ handleClose
8548
8581
  } = _ref;
8549
- const {
8550
- account,
8551
- provider
8552
- } = useWeb3React();
8553
- const signer = useMemo(() => {
8554
- if (provider instanceof providers.JsonRpcProvider) {
8555
- return provider.getSigner();
8556
- }
8557
- return undefined;
8558
- }, [provider]);
8559
- if (account == null || signer == null || chainId == null) {
8560
- return null;
8561
- }
8562
- let cardId = '';
8563
- if (chainId === ChainEnum.Celo || chainId === ChainEnum.Alfajores) {
8564
- var _process$env$REACT_AP;
8565
- cardId = (_process$env$REACT_AP = process.env.REACT_APP_NOTIFI_CONFIG_ID_CELO) !== null && _process$env$REACT_AP !== void 0 ? _process$env$REACT_AP : '';
8566
- } else if (chainId === ChainEnum.Polygon || chainId === ChainEnum.Amoy) {
8567
- var _process$env$REACT_AP2;
8568
- cardId = (_process$env$REACT_AP2 = process.env.REACT_APP_NOTIFI_CONFIG_ID_POLYGON) !== null && _process$env$REACT_AP2 !== void 0 ? _process$env$REACT_AP2 : '';
8569
- } else if (chainId === ChainEnum.Scroll || chainId === ChainEnum.ScrollSepolia) {
8570
- var _process$env$REACT_AP3;
8571
- cardId = (_process$env$REACT_AP3 = process.env.REACT_APP_NOTIFI_CONFIG_ID_SCROLL) !== null && _process$env$REACT_AP3 !== void 0 ? _process$env$REACT_AP3 : '';
8582
+ if ((_poolInfo$KYC = poolInfo.KYC) !== null && _poolInfo$KYC !== void 0 && _poolInfo$KYC.Persona) {
8583
+ return jsx(PersonaEvaluation, {
8584
+ poolInfo: {
8585
+ KYC: poolInfo.KYC,
8586
+ juniorTrancheVault: poolInfo.juniorTrancheMint,
8587
+ seniorTrancheVault: poolInfo.seniorTrancheMint
8588
+ },
8589
+ handleClose: handleClose,
8590
+ isUniTranche: isUniTranche,
8591
+ pointsTestnetExperience: pointsTestnetExperience,
8592
+ campaign: campaign,
8593
+ chainType: CHAIN_TYPE.SOLANA,
8594
+ changeTranche: changeTranche
8595
+ });
8572
8596
  }
8573
- return jsx(NotifiContextProvider, {
8574
- tenantId: "humafinanceprod",
8575
- env: "Production",
8576
- signMessage: async message => {
8577
- const result = await signer.signMessage(message);
8578
- return arrayify(result);
8579
- },
8580
- walletPublicKey: account,
8581
- walletBlockchain: getBlockchainConfigFromChain(chainId),
8582
- cardId: cardId,
8583
- children: children
8584
- });
8585
- }
8586
-
8587
- function Widget(props) {
8588
- const {
8589
- children,
8590
- provider
8591
- } = props;
8592
- const [chainId, setChainId] = useState(undefined);
8593
- useEffect(() => {
8594
- const getChainId = async () => {
8595
- if (provider instanceof JsonRpcProvider) {
8596
- const network = await provider.getNetwork();
8597
- setChainId(network === null || network === void 0 ? void 0 : network.chainId);
8598
- }
8599
- };
8600
- getChainId();
8601
- }, [provider]);
8602
- return jsx(ThemeProvider, {
8603
- theme: themeHuma,
8604
- children: jsx(Provider, {
8605
- store: store,
8606
- children: jsx(Provider$1, {
8607
- ...props,
8608
- defaultChainId: chainId,
8609
- children: jsx(Provider$2, {
8610
- children: jsx(ChainSupportProvider, {
8611
- children: jsx(NotifiContextWrapper, {
8612
- chainId: chainId,
8613
- children: children
8614
- })
8615
- })
8616
- })
8617
- })
8618
- })
8619
- });
8597
+ return null;
8620
8598
  }
8621
8599
 
8622
- /**
8623
- * Invoice factoring pool borrow widget props
8600
+ var _templateObject$3, _templateObject2$3, _templateObject3$3;
8601
+ function ChooseTranche$2(_ref) {
8602
+ let {
8603
+ poolUnderlyingToken,
8604
+ selectedTranche,
8605
+ changeTranche
8606
+ } = _ref;
8607
+ const theme = useTheme();
8608
+ const dispatch = useAppDispatch();
8609
+ const styles = {
8610
+ subTitle: css(_templateObject$3 || (_templateObject$3 = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
8611
+ radioGroup: css(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
8612
+ formControl: css(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
8613
+ };
8614
+ const handleNext = () => {
8615
+ dispatch(setStep(WIDGET_STEP.ChooseAmount));
8616
+ };
8617
+ const items = [{
8618
+ label: 'Senior',
8619
+ value: 'senior'
8620
+ }, {
8621
+ label: 'Junior',
8622
+ value: 'junior'
8623
+ }];
8624
+ return jsxs(WrapperModal, {
8625
+ title: "Supply ".concat(poolUnderlyingToken.symbol),
8626
+ children: [jsxs(FormControl, {
8627
+ children: [jsx(FormLabel, {
8628
+ css: styles.subTitle,
8629
+ children: "Select Tranche Type"
8630
+ }), jsx(RadioGroup, {
8631
+ "aria-labelledby": "buttons-group-label",
8632
+ name: "radio-buttons-group",
8633
+ css: styles.radioGroup,
8634
+ onChange: e => changeTranche(e.target.value),
8635
+ children: items.map(item => jsx(FormControlLabel, {
8636
+ value: item.value,
8637
+ control: jsx(Radio, {
8638
+ sx: {
8639
+ '& .MuiSvgIcon-root': {
8640
+ fontSize: 24
8641
+ }
8642
+ }
8643
+ }),
8644
+ label: item.label,
8645
+ css: styles.formControl
8646
+ }, item.label))
8647
+ })]
8648
+ }), jsx(BottomButton, {
8649
+ variant: "contained",
8650
+ disabled: !selectedTranche,
8651
+ onClick: handleNext,
8652
+ children: "NEXT"
8653
+ })]
8654
+ });
8655
+ }
8656
+
8657
+ function ChooseAmount$3(_ref) {
8658
+ let {
8659
+ poolInfo,
8660
+ poolState,
8661
+ tokenAccount,
8662
+ selectedTranche,
8663
+ isUniTranche
8664
+ } = _ref;
8665
+ const dispatch = useAppDispatch();
8666
+ const {
8667
+ symbol,
8668
+ decimals
8669
+ } = poolInfo.underlyingMint;
8670
+ const [currentAmount, setCurrentAmount] = useState(0);
8671
+ const balance = tokenAccount ? new BN(tokenAccount.amount.toString()) : new BN(0);
8672
+ const {
8673
+ juniorAvailableCapBN,
8674
+ seniorAvailableCapBN
8675
+ } = useMemo(() => {
8676
+ const {
8677
+ maxSeniorJuniorRatio,
8678
+ liquidityCap,
8679
+ seniorTrancheAssets,
8680
+ juniorTrancheAssets
8681
+ } = poolState;
8682
+ const juniorTrancheAssetsBN = new BN(juniorTrancheAssets !== null && juniorTrancheAssets !== void 0 ? juniorTrancheAssets : 0);
8683
+ const seniorTrancheAssetsBN = new BN(seniorTrancheAssets !== null && seniorTrancheAssets !== void 0 ? seniorTrancheAssets : 0);
8684
+ const totalDeployedBN = seniorTrancheAssetsBN.add(juniorTrancheAssetsBN);
8685
+ const totalAvailableCapBN = new BN(liquidityCap !== null && liquidityCap !== void 0 ? liquidityCap : 0).sub(totalDeployedBN);
8686
+ const maxSeniorAssetsBN = juniorTrancheAssetsBN.muln(maxSeniorJuniorRatio !== null && maxSeniorJuniorRatio !== void 0 ? maxSeniorJuniorRatio : 0);
8687
+ let seniorAvailableCapBN = maxSeniorAssetsBN.sub(seniorTrancheAssetsBN);
8688
+ seniorAvailableCapBN = seniorAvailableCapBN.gt(totalAvailableCapBN) ? totalAvailableCapBN : seniorAvailableCapBN;
8689
+ return {
8690
+ juniorAvailableCapBN: totalAvailableCapBN.sub(seniorAvailableCapBN),
8691
+ seniorAvailableCapBN
8692
+ };
8693
+ }, [poolState]);
8694
+ const handleChangeAmount = newAmount => {
8695
+ setCurrentAmount(newAmount);
8696
+ dispatch(setSupplyAmount(Number(newAmount)));
8697
+ };
8698
+ const handleAction = () => {
8699
+ dispatch(setStep(WIDGET_STEP.Transfer));
8700
+ };
8701
+ const getTrancheCap = () => {
8702
+ if (selectedTranche === 'junior') {
8703
+ return juniorAvailableCapBN;
8704
+ }
8705
+ return seniorAvailableCapBN;
8706
+ };
8707
+ const getMinAmount = () => {
8708
+ const minAmount = poolState.minDepositAmount ? SolanaTokenUtils.formatUnits(new BN(poolState.minDepositAmount), decimals) : 0;
8709
+ return Math.max(0, Math.ceil(Number(minAmount)));
8710
+ };
8711
+ const getMaxAmount = () => {
8712
+ const trancheCap = getTrancheCap();
8713
+ return balance.gt(trancheCap) ? trancheCap : balance;
8714
+ };
8715
+ const getInfos = () => {
8716
+ const trancheCap = getTrancheCap();
8717
+ const currentAmountBN = SolanaTokenUtils.parseUnits(String(currentAmount), decimals);
8718
+ const remainingCap = trancheCap.sub(currentAmountBN);
8719
+ if (remainingCap.ltn(0)) {
8720
+ return ['0 remaining capacity'];
8721
+ }
8722
+ return ["".concat(formatNumber(SolanaTokenUtils.formatUnits(remainingCap, decimals)), " remaining capacity")];
8723
+ };
8724
+ return jsx(InputAmountModal, {
8725
+ title: "Enter Amount",
8726
+ subTitle: "Depositing to ".concat(isUniTranche ? 'uni tranche' : selectedTranche, " tranche"),
8727
+ tokenSymbol: symbol,
8728
+ currentAmount: currentAmount,
8729
+ handleChangeAmount: handleChangeAmount,
8730
+ minimumAmount: getMinAmount(),
8731
+ maxAmount: Number(SolanaTokenUtils.formatUnits(getMaxAmount(), decimals)),
8732
+ maxAmountTitle: "".concat(formatNumber(SolanaTokenUtils.formatUnits(balance, decimals)), " balance"),
8733
+ infos: getInfos(),
8734
+ handleAction: handleAction,
8735
+ actionText: "SUPPLY"
8736
+ });
8737
+ }
8738
+
8739
+ function SolanaViewOnExplorer(_ref) {
8740
+ let {
8741
+ chainId,
8742
+ signature
8743
+ } = _ref;
8744
+ const link = getSolanaExplorerUrl(chainId, signature, 'tx');
8745
+ if (!link) {
8746
+ return null;
8747
+ }
8748
+ return jsx(Button, {
8749
+ fullWidth: true,
8750
+ variant: "outlined",
8751
+ onClick: () => openInNewTab(link),
8752
+ children: jsx(Box, {
8753
+ component: "span",
8754
+ children: "VIEW ON EXPLORER"
8755
+ })
8756
+ });
8757
+ }
8758
+
8759
+ function SolanaTxSendModal(_ref) {
8760
+ let {
8761
+ chainId,
8762
+ tx,
8763
+ handleSuccess
8764
+ } = _ref;
8765
+ const dispatch = useAppDispatch();
8766
+ const {
8767
+ sendTransaction
8768
+ } = useWallet();
8769
+ const {
8770
+ connection
8771
+ } = useConnection();
8772
+ const [signature, setSignature] = useState('');
8773
+ useEffect(() => {
8774
+ async function sendTx() {
8775
+ if (!connection || !tx) {
8776
+ return;
8777
+ }
8778
+ try {
8779
+ const latestBlockHash = await connection.getLatestBlockhash();
8780
+ const signature = await sendTransaction(tx, connection);
8781
+ setSignature(signature);
8782
+ dispatch(setSolanaSignature(signature));
8783
+ await connection.confirmTransaction({
8784
+ blockhash: latestBlockHash.blockhash,
8785
+ lastValidBlockHeight: latestBlockHash.lastValidBlockHeight,
8786
+ signature
8787
+ });
8788
+ handleSuccess();
8789
+ } catch (error) {
8790
+ const err = error;
8791
+ dispatch(setError({
8792
+ errorMessage: (err === null || err === void 0 ? void 0 : err.message) || ''
8793
+ }));
8794
+ }
8795
+ }
8796
+ sendTx();
8797
+ }, [connection, dispatch, handleSuccess, sendTransaction, tx]);
8798
+ return jsx(LoadingModal, {
8799
+ title: "Transaction Pending",
8800
+ description: "Waiting for confirmation...",
8801
+ children: jsx(SolanaViewOnExplorer, {
8802
+ chainId: chainId,
8803
+ signature: signature
8804
+ })
8805
+ });
8806
+ }
8807
+
8808
+ function Transfer$4(_ref) {
8809
+ let {
8810
+ poolInfo,
8811
+ selectedTranche
8812
+ } = _ref;
8813
+ const dispatch = useAppDispatch();
8814
+ const {
8815
+ publicKey
8816
+ } = useWallet();
8817
+ const {
8818
+ supplyAmount
8819
+ } = useAppSelector(selectWidgetState);
8820
+ const {
8821
+ decimals
8822
+ } = poolInfo.underlyingMint;
8823
+ const supplyBigNumber = SolanaTokenUtils.parseUnits(String(supplyAmount), decimals);
8824
+ const [transaction, setTransaction] = useState();
8825
+ const {
8826
+ juniorLenderApprovedAccountPDA,
8827
+ seniorLenderApprovedAccountPDA,
8828
+ seniorLenderStateAccount,
8829
+ juniorLenderStateAccount,
8830
+ loading: isLoadingLenderAccounts
8831
+ } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
8832
+ const program = useHumaProgram(poolInfo.chainId);
8833
+ const handleSuccess = useCallback(() => {
8834
+ dispatch(setStep(WIDGET_STEP.Done));
8835
+ }, [dispatch]);
8836
+ useEffect(() => {
8837
+ async function getTx() {
8838
+ if (!publicKey || transaction || isLoadingLenderAccounts) {
8839
+ return;
8840
+ }
8841
+ const tx = new Transaction();
8842
+ const {
8843
+ underlyingTokenATA,
8844
+ seniorTrancheATA,
8845
+ juniorTrancheATA
8846
+ } = getTokenAccounts(poolInfo, publicKey);
8847
+ if (selectedTranche === 'senior' && !seniorLenderStateAccount || selectedTranche === 'junior' && !juniorLenderStateAccount) {
8848
+ const createLenderAccountsTx = await program.methods.createLenderAccounts().accountsPartial({
8849
+ lender: publicKey,
8850
+ humaConfig: poolInfo.humaConfig,
8851
+ poolConfig: poolInfo.poolConfig,
8852
+ approvedLender: selectedTranche === 'senior' ? seniorLenderApprovedAccountPDA : juniorLenderApprovedAccountPDA,
8853
+ trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
8854
+ lenderTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
8855
+ tokenProgram: TOKEN_2022_PROGRAM_ID
8856
+ }).transaction();
8857
+ tx.add(createLenderAccountsTx);
8858
+ }
8859
+ const depositTx = await program.methods.deposit(supplyBigNumber).accountsPartial({
8860
+ depositor: publicKey,
8861
+ poolConfig: poolInfo.poolConfig,
8862
+ underlyingMint: poolInfo.underlyingMint.address,
8863
+ trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
8864
+ poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,
8865
+ depositorUnderlyingToken: underlyingTokenATA,
8866
+ depositorTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
8867
+ humaConfig: poolInfo.humaConfig,
8868
+ tokenProgram: TOKEN_2022_PROGRAM_ID
8869
+ }).transaction();
8870
+ tx.add(depositTx);
8871
+ setTransaction(tx);
8872
+ }
8873
+ getTx();
8874
+ }, [isLoadingLenderAccounts, juniorLenderApprovedAccountPDA, juniorLenderStateAccount, poolInfo, program.methods, publicKey, selectedTranche, seniorLenderApprovedAccountPDA, seniorLenderStateAccount, supplyBigNumber, transaction]);
8875
+ if (isLoadingLenderAccounts) {
8876
+ return jsx(LoadingModal, {
8877
+ title: "Supply"
8878
+ });
8879
+ }
8880
+ return jsx(SolanaTxSendModal, {
8881
+ tx: transaction,
8882
+ chainId: poolInfo.chainId,
8883
+ handleSuccess: handleSuccess
8884
+ });
8885
+ }
8886
+
8887
+ var _templateObject$2, _templateObject2$2, _templateObject3$2, _templateObject4, _templateObject5, _templateObject6;
8888
+ function SolanaTxDoneModal(_ref) {
8889
+ let {
8890
+ content,
8891
+ subContent,
8892
+ handleAction,
8893
+ solanaSignature,
8894
+ chainId,
8895
+ buttonText
8896
+ } = _ref;
8897
+ const theme = useTheme();
8898
+ const dispatch = useAppDispatch();
8899
+ const styles = {
8900
+ wrapper: css(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
8901
+ header: css(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
8902
+ content: css(_templateObject3$2 || (_templateObject3$2 = _taggedTemplateLiteral(["\n ", ";\n font-weight: ", ";\n font-size: 18px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.cssMixins.colVCentered, subContent ? 700 : 400, theme.palette.text.secondary, theme.spacing(8)),
8903
+ subContent: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 18px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.cssMixins.colVCentered, theme.palette.text.primary, theme.spacing(2)),
8904
+ check: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(10)),
8905
+ bottomButtonGroup: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n width: 100%;\n position: absolute;\n bottom: 0;\n display: flex;\n row-gap: ", ";\n column-gap: ", ";\n\n button {\n height: 40px;\n margin-top: ", ";\n }\n "])), theme.spacing(1), theme.spacing(1), theme.spacing(1))
8906
+ };
8907
+ const handleCloseModal = useCallback(() => {
8908
+ dispatch(resetState());
8909
+ handleAction();
8910
+ }, [dispatch, handleAction]);
8911
+ return jsxs(Box, {
8912
+ css: styles.wrapper,
8913
+ children: [jsx(Typography, {
8914
+ variant: "h6",
8915
+ css: styles.header,
8916
+ children: "Transaction Completed"
8917
+ }), jsx(Box, {
8918
+ css: styles.check,
8919
+ children: jsx(CheckIcon, {})
8920
+ }), jsx(Box, {
8921
+ css: styles.content,
8922
+ children: content.map(item => jsx(Box, {
8923
+ sx: {
8924
+ marginTop: theme.spacing(1)
8925
+ },
8926
+ children: item
8927
+ }, item))
8928
+ }), subContent && jsx(Box, {
8929
+ css: styles.subContent,
8930
+ children: subContent.map(item => jsx(Box, {
8931
+ sx: {
8932
+ marginTop: theme.spacing(1)
8933
+ },
8934
+ children: item
8935
+ }, item))
8936
+ }), jsxs(Box, {
8937
+ css: styles.bottomButtonGroup,
8938
+ children: [solanaSignature && chainId && jsx(SolanaViewOnExplorer, {
8939
+ signature: solanaSignature,
8940
+ chainId: chainId
8941
+ }), jsx(Button, {
8942
+ className: "transaction-done-modal-close-btn",
8943
+ variant: "contained",
8944
+ fullWidth: true,
8945
+ onClick: handleCloseModal,
8946
+ children: !buttonText ? 'DONE' : buttonText
8947
+ })]
8948
+ })]
8949
+ });
8950
+ }
8951
+
8952
+ function Success(_ref) {
8953
+ let {
8954
+ poolInfo,
8955
+ poolState,
8956
+ handleAction
8957
+ } = _ref;
8958
+ const {
8959
+ supplyAmount,
8960
+ solanaSignature
8961
+ } = useAppSelector(selectWidgetState);
8962
+ const {
8963
+ symbol
8964
+ } = poolInfo.underlyingMint;
8965
+ const content = ["You successfully supplied ".concat(formatMoney(supplyAmount), " ").concat(symbol, ".")];
8966
+ const getSubContent = () => {
8967
+ var _poolState$withdrawal;
8968
+ const lockupEndTime = dayjs().add((_poolState$withdrawal = poolState.withdrawalLockupPeriodDays) !== null && _poolState$withdrawal !== void 0 ? _poolState$withdrawal : 0, 'day').date(1);
8969
+ const withdrawTime = lockupEndTime.add(1, 'month');
8970
+ return ["You can begin submitting redemption requests on ".concat(timeUtil.timestampToLL(lockupEndTime.unix()), ", which can be redeemed starting ").concat(timeUtil.timestampToLL(withdrawTime.unix()), ".")];
8971
+ };
8972
+ return jsx(SolanaTxDoneModal, {
8973
+ handleAction: handleAction,
8974
+ content: content,
8975
+ subContent: getSubContent(),
8976
+ chainId: poolInfo.chainId,
8977
+ solanaSignature: solanaSignature,
8978
+ buttonText: "DONE"
8979
+ });
8980
+ }
8981
+
8982
+ function SolanaLendSupply(_ref) {
8983
+ let {
8984
+ poolInfo,
8985
+ poolState,
8986
+ pointsTestnetExperience,
8987
+ handleClose,
8988
+ handleSuccess
8989
+ } = _ref;
8990
+ const dispatch = useDispatch();
8991
+ const {
8992
+ isUniTranche
8993
+ } = poolState;
8994
+ const {
8995
+ seniorLenderApproved,
8996
+ juniorLenderApproved,
8997
+ loading: isLoadingLenderAccounts
8998
+ } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
8999
+ const [tokenAccount, isLoadingTokenAccount] = useTokenAccount(poolInfo);
9000
+ const {
9001
+ step,
9002
+ errorMessage
9003
+ } = useAppSelector(selectWidgetState);
9004
+ const [selectedTranche, setSelectedTranche] = useState();
9005
+ useEffect(() => {
9006
+ if (!step && !isLoadingLenderAccounts && !isLoadingTokenAccount) {
9007
+ if (!juniorLenderApproved && !seniorLenderApproved) {
9008
+ dispatch(setStep(WIDGET_STEP.Evaluation));
9009
+ return;
9010
+ }
9011
+ if (juniorLenderApproved && !seniorLenderApproved) {
9012
+ setSelectedTranche('junior');
9013
+ dispatch(setStep(WIDGET_STEP.ChooseAmount));
9014
+ return;
9015
+ }
9016
+ if (seniorLenderApproved && !juniorLenderApproved) {
9017
+ setSelectedTranche('senior');
9018
+ dispatch(setStep(WIDGET_STEP.ChooseAmount));
9019
+ return;
9020
+ }
9021
+ if (juniorLenderApproved && seniorLenderApproved) {
9022
+ dispatch(setStep(WIDGET_STEP.ChooseTranche));
9023
+ }
9024
+ }
9025
+ }, [dispatch, handleClose, poolInfo, step, isLoadingLenderAccounts, juniorLenderApproved, seniorLenderApproved, isLoadingTokenAccount]);
9026
+ if (isLoadingLenderAccounts || isLoadingTokenAccount) {
9027
+ return jsx(WidgetWrapper, {
9028
+ isOpen: true,
9029
+ isLoading: true,
9030
+ loadingTitle: "Supply",
9031
+ handleClose: handleClose,
9032
+ handleSuccess: handleSuccess
9033
+ });
9034
+ }
9035
+ return jsxs(WidgetWrapper, {
9036
+ isOpen: true,
9037
+ loadingTitle: "Supply ".concat(poolInfo.underlyingMint.symbol),
9038
+ handleClose: handleClose,
9039
+ handleSuccess: handleSuccess,
9040
+ children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation, {
9041
+ poolInfo: poolInfo,
9042
+ isUniTranche: !!isUniTranche,
9043
+ pointsTestnetExperience: pointsTestnetExperience,
9044
+ handleClose: handleClose,
9045
+ changeTranche: setSelectedTranche
9046
+ }), step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$2, {
9047
+ poolUnderlyingToken: poolInfo.underlyingMint,
9048
+ selectedTranche: selectedTranche,
9049
+ changeTranche: setSelectedTranche
9050
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$3, {
9051
+ poolInfo: poolInfo,
9052
+ poolState: poolState,
9053
+ tokenAccount: tokenAccount,
9054
+ selectedTranche: selectedTranche,
9055
+ isUniTranche: isUniTranche
9056
+ }), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$4, {
9057
+ poolInfo: poolInfo,
9058
+ selectedTranche: selectedTranche
9059
+ }), step === WIDGET_STEP.Done && jsx(Success, {
9060
+ poolInfo: poolInfo,
9061
+ poolState: poolState,
9062
+ handleAction: handleClose
9063
+ }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
9064
+ title: "Supply",
9065
+ errorReason: "Sorry there was an error",
9066
+ errorMessage: errorMessage,
9067
+ handleOk: handleClose
9068
+ })]
9069
+ });
9070
+ }
9071
+
9072
+ function ChooseAmount$2(_ref) {
9073
+ let {
9074
+ poolInfo,
9075
+ poolState,
9076
+ selectedTranche,
9077
+ lenderState
9078
+ } = _ref;
9079
+ const dispatch = useAppDispatch();
9080
+ const {
9081
+ symbol
9082
+ } = poolInfo.underlyingMint;
9083
+ const [currentAmount, setCurrentAmount] = useState(0);
9084
+ const [currentShares, setCurrentShares] = useState(0);
9085
+ const {
9086
+ mintAccount,
9087
+ loading: isLoadingTrancheMintAccounts
9088
+ } = useTrancheMintAccounts(poolInfo, selectedTranche);
9089
+ const {
9090
+ seniorTokenAccount,
9091
+ juniorTokenAccount,
9092
+ loading: isLoadingTokenAccounts
9093
+ } = useTrancheTokenAccounts(poolInfo);
9094
+ const maxSharesFormatted = useMemo(() => {
9095
+ var _seniorTokenAccount$a, _seniorTokenAccount$a2, _juniorTokenAccount$a, _juniorTokenAccount$a2;
9096
+ if (!(mintAccount !== null && mintAccount !== void 0 && mintAccount.decimals)) {
9097
+ return 0;
9098
+ }
9099
+ return SolanaTokenUtils.formatUnits(selectedTranche === 'senior' ? new BN((_seniorTokenAccount$a = seniorTokenAccount === null || seniorTokenAccount === void 0 || (_seniorTokenAccount$a2 = seniorTokenAccount.amount) === null || _seniorTokenAccount$a2 === void 0 ? void 0 : _seniorTokenAccount$a2.toString()) !== null && _seniorTokenAccount$a !== void 0 ? _seniorTokenAccount$a : 0) : new BN((_juniorTokenAccount$a = juniorTokenAccount === null || juniorTokenAccount === void 0 || (_juniorTokenAccount$a2 = juniorTokenAccount.amount) === null || _juniorTokenAccount$a2 === void 0 ? void 0 : _juniorTokenAccount$a2.toString()) !== null && _juniorTokenAccount$a !== void 0 ? _juniorTokenAccount$a : 0), mintAccount.decimals);
9100
+ }, [mintAccount, juniorTokenAccount === null || juniorTokenAccount === void 0 ? void 0 : juniorTokenAccount.amount, selectedTranche, seniorTokenAccount === null || seniorTokenAccount === void 0 ? void 0 : seniorTokenAccount.amount]);
9101
+ const sharePrice = useMemo(() => {
9102
+ var _poolState$seniorTran, _poolState$juniorTran;
9103
+ if (!(mintAccount !== null && mintAccount !== void 0 && mintAccount.decimals) || !(mintAccount !== null && mintAccount !== void 0 && mintAccount.supply)) {
9104
+ return 0;
9105
+ }
9106
+ const mintSupplyFormatted = Number(SolanaTokenUtils.formatUnits(new BN(mintAccount.supply.toString()), mintAccount.decimals));
9107
+ if (mintSupplyFormatted === 0) {
9108
+ return 0;
9109
+ }
9110
+ const seniorTrancheAssetsFormatted = Number(SolanaTokenUtils.formatUnits(new BN((_poolState$seniorTran = poolState === null || poolState === void 0 ? void 0 : poolState.seniorTrancheAssets) !== null && _poolState$seniorTran !== void 0 ? _poolState$seniorTran : 0), mintAccount.decimals));
9111
+ if (selectedTranche === 'senior') {
9112
+ return seniorTrancheAssetsFormatted / mintSupplyFormatted;
9113
+ }
9114
+ const juniorTrancheAssetsFormatted = Number(SolanaTokenUtils.formatUnits(new BN((_poolState$juniorTran = poolState === null || poolState === void 0 ? void 0 : poolState.juniorTrancheAssets) !== null && _poolState$juniorTran !== void 0 ? _poolState$juniorTran : 0), mintAccount.decimals));
9115
+ return juniorTrancheAssetsFormatted / mintSupplyFormatted;
9116
+ }, [mintAccount === null || mintAccount === void 0 ? void 0 : mintAccount.decimals, mintAccount === null || mintAccount === void 0 ? void 0 : mintAccount.supply, poolState === null || poolState === void 0 ? void 0 : poolState.juniorTrancheAssets, poolState === null || poolState === void 0 ? void 0 : poolState.seniorTrancheAssets, selectedTranche]);
9117
+ useEffect(() => {
9118
+ if (poolState !== null && poolState !== void 0 && poolState.withdrawalLockupPeriodDays && poolState !== null && poolState !== void 0 && poolState.epochEndTime && lenderState) {
9119
+ const SECONDS_IN_A_DAY = 24 * 60 * 60;
9120
+ const lastDepositTime = Number(lenderState.depositRecord.lastDepositTime);
9121
+ const lockupEndTime = lastDepositTime + poolState.withdrawalLockupPeriodDays * SECONDS_IN_A_DAY;
9122
+ if (poolState.epochEndTime < lockupEndTime) {
9123
+ const lockupEndTimeDayjs = dayjs.unix(lockupEndTime).date(1);
9124
+ dispatch(setStep(WIDGET_STEP.Error));
9125
+ dispatch(setError({
9126
+ errorReason: 'Redemption too soon',
9127
+ errorMessage: "Your last deposit was on ".concat(timestampToLL(lastDepositTime), ". You can redeem on ").concat(timestampToLL(lockupEndTimeDayjs.unix()), ".")
9128
+ }));
9129
+ }
9130
+ }
9131
+ }, [dispatch, lenderState, poolState.epochEndTime, poolState.withdrawalLockupPeriodDays]);
9132
+ const handleChangeShares = newShares => {
9133
+ const amount = Number(newShares) * sharePrice;
9134
+ setCurrentShares(Number(newShares));
9135
+ setCurrentAmount(amount);
9136
+ dispatch(setRedeemShares(Number(newShares)));
9137
+ dispatch(setRedeemAmount(amount));
9138
+ };
9139
+ const handleAction = () => {
9140
+ dispatch(setStep(WIDGET_STEP.Transfer));
9141
+ };
9142
+ if (isLoadingTokenAccounts || isLoadingTrancheMintAccounts || !lenderState || (poolState === null || poolState === void 0 ? void 0 : poolState.withdrawalLockupPeriodDays) === undefined ||
9143
+ // withdrawalLockupPeriodDays can be 0
9144
+ !(poolState !== null && poolState !== void 0 && poolState.epochEndTime)) {
9145
+ return jsx(LoadingModal, {
9146
+ title: "Redemption"
9147
+ });
9148
+ }
9149
+ return jsx(InputAmountModal, {
9150
+ title: "Redemption",
9151
+ subTitle: "Enter number of shares to redeem from the ".concat(selectedTranche, " tranche"),
9152
+ tokenSymbol: symbol,
9153
+ currentAmount: currentShares,
9154
+ handleChangeAmount: handleChangeShares,
9155
+ maxAmount: maxSharesFormatted,
9156
+ infos: ["".concat(String(formatNumber(currentAmount)), " ").concat(symbol)],
9157
+ maxAmountTitle: "".concat(formatNumber(maxSharesFormatted), " Shares"),
9158
+ suffix: "Shares",
9159
+ handleAction: handleAction,
9160
+ actionText: "REQUEST"
9161
+ });
9162
+ }
9163
+
9164
+ var _templateObject$1, _templateObject2$1, _templateObject3$1;
9165
+ function ChooseTranche$1(_ref) {
9166
+ let {
9167
+ selectedTranche,
9168
+ changeTranche
9169
+ } = _ref;
9170
+ const theme = useTheme();
9171
+ const dispatch = useAppDispatch();
9172
+ const styles = {
9173
+ subTitle: css(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
9174
+ radioGroup: css(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
9175
+ formControl: css(_templateObject3$1 || (_templateObject3$1 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
9176
+ };
9177
+ const handleNext = () => {
9178
+ dispatch(setStep(WIDGET_STEP.ChooseAmount));
9179
+ };
9180
+ const items = [{
9181
+ label: 'Senior',
9182
+ value: 'senior'
9183
+ }, {
9184
+ label: 'Junior',
9185
+ value: 'junior'
9186
+ }];
9187
+ return jsxs(WrapperModal, {
9188
+ title: "Redemption",
9189
+ children: [jsxs(FormControl, {
9190
+ children: [jsx(FormLabel, {
9191
+ css: styles.subTitle,
9192
+ children: "Select Tranche Type"
9193
+ }), jsx(RadioGroup, {
9194
+ "aria-labelledby": "buttons-group-label",
9195
+ name: "radio-buttons-group",
9196
+ css: styles.radioGroup,
9197
+ onChange: e => changeTranche(e.target.value),
9198
+ children: items.map(item => jsx(FormControlLabel, {
9199
+ value: item.value,
9200
+ control: jsx(Radio, {
9201
+ sx: {
9202
+ '& .MuiSvgIcon-root': {
9203
+ fontSize: 24
9204
+ }
9205
+ }
9206
+ }),
9207
+ label: item.label,
9208
+ css: styles.formControl
9209
+ }, item.label))
9210
+ })]
9211
+ }), jsx(BottomButton, {
9212
+ variant: "contained",
9213
+ disabled: !selectedTranche,
9214
+ onClick: handleNext,
9215
+ children: "NEXT"
9216
+ })]
9217
+ });
9218
+ }
9219
+
9220
+ function Done$3(_ref) {
9221
+ let {
9222
+ poolInfo,
9223
+ handleAction
9224
+ } = _ref;
9225
+ const {
9226
+ redeemShares,
9227
+ solanaSignature
9228
+ } = useAppSelector(selectWidgetState);
9229
+ const content = ["".concat(formatNumber(redeemShares), " shares requested for redemption")];
9230
+ return jsx(SolanaTxDoneModal, {
9231
+ handleAction: handleAction,
9232
+ content: content,
9233
+ chainId: poolInfo.chainId,
9234
+ solanaSignature: solanaSignature,
9235
+ buttonText: "DONE"
9236
+ });
9237
+ }
9238
+
9239
+ function Transfer$3(_ref) {
9240
+ let {
9241
+ poolInfo,
9242
+ selectedTranche
9243
+ } = _ref;
9244
+ const dispatch = useAppDispatch();
9245
+ const {
9246
+ publicKey
9247
+ } = useWallet();
9248
+ const {
9249
+ redeemShares
9250
+ } = useAppSelector(selectWidgetState);
9251
+ const {
9252
+ mintAccount
9253
+ } = useTrancheMintAccounts(poolInfo, selectedTranche);
9254
+ const [transaction, setTransaction] = useState();
9255
+ const program = useHumaProgram(poolInfo.chainId);
9256
+ const redeemBN = useMemo(() => {
9257
+ if (!mintAccount) {
9258
+ return null;
9259
+ }
9260
+ return SolanaTokenUtils.parseUnits(String(redeemShares), mintAccount === null || mintAccount === void 0 ? void 0 : mintAccount.decimals);
9261
+ }, [mintAccount, redeemShares]);
9262
+ const handleSuccess = useCallback(() => {
9263
+ dispatch(setStep(WIDGET_STEP.Done));
9264
+ }, [dispatch]);
9265
+ useEffect(() => {
9266
+ async function getTx() {
9267
+ if (!publicKey || !redeemBN || transaction) {
9268
+ return;
9269
+ }
9270
+ const {
9271
+ seniorTrancheATA,
9272
+ juniorTrancheATA,
9273
+ poolSeniorTrancheATA,
9274
+ poolJuniorTrancheATA
9275
+ } = getTokenAccounts(poolInfo, publicKey);
9276
+ const tx = await program.methods.addRedemptionRequest(redeemBN).accountsPartial({
9277
+ lender: publicKey,
9278
+ humaConfig: poolInfo.humaConfig,
9279
+ poolConfig: poolInfo.poolConfig,
9280
+ trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
9281
+ poolTrancheToken: selectedTranche === 'senior' ? poolSeniorTrancheATA : poolJuniorTrancheATA,
9282
+ lenderTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
9283
+ tokenProgram: TOKEN_2022_PROGRAM_ID
9284
+ }).transaction();
9285
+ setTransaction(tx);
9286
+ }
9287
+ getTx();
9288
+ }, [poolInfo, program.methods, publicKey, redeemBN, selectedTranche, transaction]);
9289
+ return jsx(SolanaTxSendModal, {
9290
+ tx: transaction,
9291
+ chainId: poolInfo.chainId,
9292
+ handleSuccess: handleSuccess
9293
+ });
9294
+ }
9295
+
9296
+ function SolanaLendAddRedemption(_ref) {
9297
+ let {
9298
+ poolInfo,
9299
+ poolState,
9300
+ tranche,
9301
+ handleClose,
9302
+ handleSuccess
9303
+ } = _ref;
9304
+ const dispatch = useDispatch();
9305
+ const {
9306
+ seniorLenderStateAccount,
9307
+ juniorLenderStateAccount,
9308
+ loading: isLoadingLenderAccounts
9309
+ } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
9310
+ const {
9311
+ seniorTokenAccount,
9312
+ juniorTokenAccount,
9313
+ loading: isLoadingTokenAccounts
9314
+ } = useTrancheTokenAccounts(poolInfo);
9315
+ const {
9316
+ step,
9317
+ errorMessage
9318
+ } = useAppSelector(selectWidgetState);
9319
+ const [selectedTranche, setSelectedTranche] = useState(tranche);
9320
+ useEffect(() => {
9321
+ if (!step && !isLoadingLenderAccounts && !isLoadingTokenAccounts) {
9322
+ var _seniorTokenAccount$a, _seniorTokenAccount$a2, _juniorTokenAccount$a, _juniorTokenAccount$a2;
9323
+ const seniorTrancheShares = new BN((_seniorTokenAccount$a = seniorTokenAccount === null || seniorTokenAccount === void 0 || (_seniorTokenAccount$a2 = seniorTokenAccount.amount) === null || _seniorTokenAccount$a2 === void 0 ? void 0 : _seniorTokenAccount$a2.toString()) !== null && _seniorTokenAccount$a !== void 0 ? _seniorTokenAccount$a : 0);
9324
+ const juniorTrancheShares = new BN((_juniorTokenAccount$a = juniorTokenAccount === null || juniorTokenAccount === void 0 || (_juniorTokenAccount$a2 = juniorTokenAccount.amount) === null || _juniorTokenAccount$a2 === void 0 ? void 0 : _juniorTokenAccount$a2.toString()) !== null && _juniorTokenAccount$a !== void 0 ? _juniorTokenAccount$a : 0);
9325
+ if (selectedTranche) {
9326
+ dispatch(setStep(WIDGET_STEP.ChooseAmount));
9327
+ return;
9328
+ }
9329
+ if (juniorTrancheShares.gtn(0) && seniorTrancheShares.lten(0)) {
9330
+ setSelectedTranche('junior');
9331
+ dispatch(setStep(WIDGET_STEP.ChooseAmount));
9332
+ return;
9333
+ }
9334
+ if (seniorTrancheShares.gtn(0) && juniorTrancheShares.lten(0)) {
9335
+ setSelectedTranche('senior');
9336
+ dispatch(setStep(WIDGET_STEP.ChooseAmount));
9337
+ return;
9338
+ }
9339
+ if (seniorTrancheShares.gtn(0) && juniorTrancheShares.gtn(0)) {
9340
+ dispatch(setStep(WIDGET_STEP.ChooseTranche));
9341
+ }
9342
+ }
9343
+ }, [dispatch, step, isLoadingLenderAccounts, isLoadingTokenAccounts, seniorTokenAccount === null || seniorTokenAccount === void 0 ? void 0 : seniorTokenAccount.amount, juniorTokenAccount === null || juniorTokenAccount === void 0 ? void 0 : juniorTokenAccount.amount, selectedTranche]);
9344
+ const title = 'Redemption';
9345
+ if (isLoadingLenderAccounts || isLoadingTokenAccounts) {
9346
+ return jsx(WidgetWrapper, {
9347
+ isOpen: true,
9348
+ isLoading: true,
9349
+ loadingTitle: title,
9350
+ handleClose: handleClose,
9351
+ handleSuccess: handleSuccess
9352
+ });
9353
+ }
9354
+ return jsxs(WidgetWrapper, {
9355
+ isOpen: true,
9356
+ loadingTitle: title,
9357
+ handleClose: handleClose,
9358
+ handleSuccess: handleSuccess,
9359
+ children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$1, {
9360
+ selectedTranche: selectedTranche,
9361
+ changeTranche: setSelectedTranche
9362
+ }), step === WIDGET_STEP.ChooseAmount && selectedTranche && jsx(ChooseAmount$2, {
9363
+ poolInfo: poolInfo,
9364
+ poolState: poolState,
9365
+ lenderState: selectedTranche === 'senior' ? seniorLenderStateAccount : juniorLenderStateAccount,
9366
+ selectedTranche: selectedTranche
9367
+ }), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$3, {
9368
+ poolInfo: poolInfo,
9369
+ selectedTranche: selectedTranche
9370
+ }), step === WIDGET_STEP.Done && jsx(Done$3, {
9371
+ poolInfo: poolInfo,
9372
+ handleAction: handleClose
9373
+ }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
9374
+ title: title,
9375
+ errorReason: "Sorry there was an error",
9376
+ errorMessage: errorMessage,
9377
+ handleOk: handleClose
9378
+ })]
9379
+ });
9380
+ }
9381
+
9382
+ function Transfer$2(_ref) {
9383
+ let {
9384
+ poolInfo,
9385
+ lenderState,
9386
+ lenderStatePDA,
9387
+ selectedTranche
9388
+ } = _ref;
9389
+ const dispatch = useAppDispatch();
9390
+ const {
9391
+ publicKey
9392
+ } = useWallet();
9393
+ const [transaction, setTransaction] = useState();
9394
+ const program = useHumaProgram(poolInfo.chainId);
9395
+ const handleSuccess = useCallback(() => {
9396
+ dispatch(setStep(WIDGET_STEP.Done));
9397
+ }, [dispatch]);
9398
+ useEffect(() => {
9399
+ async function getTx() {
9400
+ if (!publicKey || !lenderState || !lenderStatePDA || transaction) {
9401
+ return;
9402
+ }
9403
+ const {
9404
+ seniorTrancheATA,
9405
+ juniorTrancheATA,
9406
+ poolSeniorTrancheATA,
9407
+ poolJuniorTrancheATA
9408
+ } = getTokenAccounts(poolInfo, publicKey);
9409
+ const tx = await program.methods.cancelRedemptionRequest(lenderState.redemptionRecord.numSharesRequested).accountsPartial({
9410
+ lender: publicKey,
9411
+ humaConfig: poolInfo.humaConfig,
9412
+ poolConfig: poolInfo.poolConfig,
9413
+ trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
9414
+ trancheState: selectedTranche === 'senior' ? poolInfo.seniorTrancheState : poolInfo.juniorTrancheState,
9415
+ lenderState: lenderStatePDA,
9416
+ poolAuthority: poolInfo.poolAuthority,
9417
+ poolTrancheToken: selectedTranche === 'senior' ? poolSeniorTrancheATA : poolJuniorTrancheATA,
9418
+ lenderTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
9419
+ tokenProgram: TOKEN_2022_PROGRAM_ID
9420
+ }).transaction();
9421
+ setTransaction(tx);
9422
+ }
9423
+ getTx();
9424
+ }, [lenderState, lenderStatePDA, poolInfo, program.methods, publicKey, selectedTranche, transaction]);
9425
+ return jsx(SolanaTxSendModal, {
9426
+ tx: transaction,
9427
+ chainId: poolInfo.chainId,
9428
+ handleSuccess: handleSuccess
9429
+ });
9430
+ }
9431
+
9432
+ var _templateObject, _templateObject2, _templateObject3;
9433
+ function ChooseTranche(_ref) {
9434
+ let {
9435
+ selectedTranche,
9436
+ changeTranche
9437
+ } = _ref;
9438
+ const theme = useTheme();
9439
+ const dispatch = useAppDispatch();
9440
+ const styles = {
9441
+ subTitle: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
9442
+ radioGroup: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
9443
+ formControl: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
9444
+ };
9445
+ const handleNext = () => {
9446
+ dispatch(setStep(WIDGET_STEP.ChooseAmount));
9447
+ };
9448
+ const items = [{
9449
+ label: 'Senior',
9450
+ value: 'senior'
9451
+ }, {
9452
+ label: 'Junior',
9453
+ value: 'junior'
9454
+ }];
9455
+ return jsxs(WrapperModal, {
9456
+ title: "Cancel Redemption",
9457
+ children: [jsxs(FormControl, {
9458
+ children: [jsx(FormLabel, {
9459
+ css: styles.subTitle,
9460
+ children: "Select Tranche Type"
9461
+ }), jsx(RadioGroup, {
9462
+ "aria-labelledby": "buttons-group-label",
9463
+ name: "radio-buttons-group",
9464
+ css: styles.radioGroup,
9465
+ onChange: e => changeTranche(e.target.value),
9466
+ children: items.map(item => jsx(FormControlLabel, {
9467
+ value: item.value,
9468
+ control: jsx(Radio, {
9469
+ sx: {
9470
+ '& .MuiSvgIcon-root': {
9471
+ fontSize: 24
9472
+ }
9473
+ }
9474
+ }),
9475
+ label: item.label,
9476
+ css: styles.formControl
9477
+ }, item.label))
9478
+ })]
9479
+ }), jsx(BottomButton, {
9480
+ variant: "contained",
9481
+ disabled: !selectedTranche,
9482
+ onClick: handleNext,
9483
+ children: "NEXT"
9484
+ })]
9485
+ });
9486
+ }
9487
+
9488
+ function Done$2(_ref) {
9489
+ let {
9490
+ poolInfo,
9491
+ lenderState,
9492
+ selectedTranche,
9493
+ handleAction
9494
+ } = _ref;
9495
+ const {
9496
+ mintAccount,
9497
+ loading: isLoadingTrancheMintAccounts
9498
+ } = useTrancheMintAccounts(poolInfo, selectedTranche);
9499
+ const {
9500
+ solanaSignature
9501
+ } = useAppSelector(selectWidgetState);
9502
+ const content = !lenderState || isLoadingTrancheMintAccounts || !mintAccount ? [''] : ["Your request to cancel the redemption of ".concat(formatNumber(SolanaTokenUtils.formatUnits(lenderState.redemptionRecord.numSharesRequested, mintAccount.decimals)), " shares has been successfully processed.")];
9503
+ return jsx(SolanaTxDoneModal, {
9504
+ handleAction: handleAction,
9505
+ content: content,
9506
+ chainId: poolInfo.chainId,
9507
+ solanaSignature: solanaSignature,
9508
+ buttonText: "DONE"
9509
+ });
9510
+ }
9511
+
9512
+ function SolanaLendCancelRedemption(_ref) {
9513
+ let {
9514
+ poolInfo,
9515
+ tranche,
9516
+ handleClose,
9517
+ handleSuccess
9518
+ } = _ref;
9519
+ const dispatch = useDispatch();
9520
+ const {
9521
+ seniorLenderStateAccount,
9522
+ juniorLenderStateAccount,
9523
+ juniorLenderStateAccountPDA,
9524
+ seniorLenderStateAccountPDA,
9525
+ loading: isLoadingLenderAccounts
9526
+ } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
9527
+ const {
9528
+ step,
9529
+ errorMessage
9530
+ } = useAppSelector(selectWidgetState);
9531
+ const [selectedTranche, setSelectedTranche] = useState(tranche);
9532
+ useEffect(() => {
9533
+ if (!step && !isLoadingLenderAccounts) {
9534
+ var _seniorLenderStateAcc, _juniorLenderStateAcc;
9535
+ const seniorTrancheSharesRequested = new BN((_seniorLenderStateAcc = seniorLenderStateAccount === null || seniorLenderStateAccount === void 0 ? void 0 : seniorLenderStateAccount.redemptionRecord.numSharesRequested) !== null && _seniorLenderStateAcc !== void 0 ? _seniorLenderStateAcc : 0);
9536
+ const juniorTrancheSharesRequested = new BN((_juniorLenderStateAcc = juniorLenderStateAccount === null || juniorLenderStateAccount === void 0 ? void 0 : juniorLenderStateAccount.redemptionRecord.numSharesRequested) !== null && _juniorLenderStateAcc !== void 0 ? _juniorLenderStateAcc : 0);
9537
+ if (selectedTranche) {
9538
+ dispatch(setStep(WIDGET_STEP.Transfer));
9539
+ return;
9540
+ }
9541
+ if (juniorTrancheSharesRequested.gtn(0) && seniorTrancheSharesRequested.lten(0)) {
9542
+ setSelectedTranche('junior');
9543
+ dispatch(setStep(WIDGET_STEP.Transfer));
9544
+ return;
9545
+ }
9546
+ if (seniorTrancheSharesRequested.gtn(0) && juniorTrancheSharesRequested.lten(0)) {
9547
+ setSelectedTranche('senior');
9548
+ dispatch(setStep(WIDGET_STEP.Transfer));
9549
+ return;
9550
+ }
9551
+ if (seniorTrancheSharesRequested.gtn(0) && juniorTrancheSharesRequested.gtn(0)) {
9552
+ dispatch(setStep(WIDGET_STEP.ChooseTranche));
9553
+ }
9554
+ }
9555
+ }, [dispatch, step, isLoadingLenderAccounts, seniorLenderStateAccount === null || seniorLenderStateAccount === void 0 ? void 0 : seniorLenderStateAccount.redemptionRecord.numSharesRequested, juniorLenderStateAccount === null || juniorLenderStateAccount === void 0 ? void 0 : juniorLenderStateAccount.redemptionRecord.numSharesRequested, selectedTranche]);
9556
+ const title = 'Cancel Redemption';
9557
+ if (isLoadingLenderAccounts) {
9558
+ return jsx(WidgetWrapper, {
9559
+ isOpen: true,
9560
+ isLoading: true,
9561
+ loadingTitle: title,
9562
+ handleClose: handleClose,
9563
+ handleSuccess: handleSuccess
9564
+ });
9565
+ }
9566
+ return jsxs(WidgetWrapper, {
9567
+ isOpen: true,
9568
+ loadingTitle: title,
9569
+ handleClose: handleClose,
9570
+ handleSuccess: handleSuccess,
9571
+ children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche, {
9572
+ selectedTranche: selectedTranche,
9573
+ changeTranche: setSelectedTranche
9574
+ }), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$2, {
9575
+ poolInfo: poolInfo,
9576
+ lenderState: selectedTranche === 'senior' ? seniorLenderStateAccount : juniorLenderStateAccount,
9577
+ lenderStatePDA: selectedTranche === 'senior' ? seniorLenderStateAccountPDA : juniorLenderStateAccountPDA,
9578
+ selectedTranche: selectedTranche
9579
+ }), step === WIDGET_STEP.Done && selectedTranche && jsx(Done$2, {
9580
+ poolInfo: poolInfo,
9581
+ lenderState: selectedTranche === 'senior' ? seniorLenderStateAccount : juniorLenderStateAccount,
9582
+ selectedTranche: selectedTranche,
9583
+ handleAction: handleClose
9584
+ }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
9585
+ title: title,
9586
+ errorReason: "Sorry there was an error",
9587
+ errorMessage: errorMessage,
9588
+ handleOk: handleClose
9589
+ })]
9590
+ });
9591
+ }
9592
+
9593
+ function ChooseAmount$1(_ref) {
9594
+ let {
9595
+ poolInfo,
9596
+ creditConfigAccount
9597
+ } = _ref;
9598
+ const dispatch = useAppDispatch();
9599
+ const {
9600
+ symbol,
9601
+ decimals
9602
+ } = poolInfo.underlyingMint;
9603
+ const [currentAmount, setCurrentAmount] = useState(0);
9604
+ const creditAvailable = useMemo(() => SolanaTokenUtils.formatUnits(creditConfigAccount.creditAvailable, decimals), [creditConfigAccount.creditAvailable, decimals]);
9605
+ const handleChangeAmount = newAmount => {
9606
+ setCurrentAmount(newAmount);
9607
+ };
9608
+ const handleAction = useCallback(() => {
9609
+ const borrowAmountBN = SolanaTokenUtils.parseUnits(String(currentAmount), decimals);
9610
+ dispatch(setBorrowInfo({
9611
+ borrowAmount: currentAmount,
9612
+ borrowAmountBN: JSON.parse(borrowAmountBN.toString()),
9613
+ chargedFees: 0,
9614
+ nextStep: WIDGET_STEP.Transfer
9615
+ }));
9616
+ }, [currentAmount, decimals, dispatch]);
9617
+ return jsx(InputAmountModal, {
9618
+ title: "Borrow",
9619
+ subTitle: "Choose Amount",
9620
+ tokenSymbol: symbol,
9621
+ currentAmount: currentAmount,
9622
+ handleChangeAmount: handleChangeAmount,
9623
+ maxAmount: creditAvailable,
9624
+ infos: ["".concat(String(formatNumber(creditAvailable)), " ").concat(symbol, " Available")],
9625
+ handleAction: handleAction,
9626
+ actionText: "BORROW"
9627
+ });
9628
+ }
9629
+
9630
+ function Transfer$1(_ref) {
9631
+ let {
9632
+ poolInfo
9633
+ } = _ref;
9634
+ const dispatch = useAppDispatch();
9635
+ const {
9636
+ wallet,
9637
+ publicKey
9638
+ } = useWallet();
9639
+ const sentinel = getSentinelAddress(poolInfo.chainId);
9640
+ const {
9641
+ connection
9642
+ } = useConnection();
9643
+ const [transaction, setTransaction] = useState();
9644
+ const program = useHumaProgram(poolInfo.chainId);
9645
+ const {
9646
+ borrowAmountBN: borrowAmountBNJson
9647
+ } = useAppSelector(selectWidgetState);
9648
+ const handleSuccess = useCallback(() => {
9649
+ dispatch(setStep(WIDGET_STEP.Done));
9650
+ }, [dispatch]);
9651
+ useEffect(() => {
9652
+ async function getTx() {
9653
+ var _borrowAmountBNJson$t, _tokenAccount$delegat;
9654
+ if (!wallet || !publicKey || !connection) {
9655
+ return;
9656
+ }
9657
+ const {
9658
+ underlyingTokenATA
9659
+ } = getTokenAccounts(poolInfo, publicKey);
9660
+ const tx = new Transaction();
9661
+
9662
+ // Create user token account if it doesn't exist
9663
+ let tokenAccount;
9664
+ try {
9665
+ tokenAccount = await getAccount(connection, underlyingTokenATA, undefined, TOKEN_2022_PROGRAM_ID);
9666
+ } catch (error) {
9667
+ // TokenAccountNotFoundError can be possible if the associated address has already received some lamports,
9668
+ // becoming a system account. Assuming program derived addressing is safe, this is the only case for the
9669
+ // TokenInvalidAccountOwnerError in this code path.
9670
+ if (error instanceof TokenAccountNotFoundError || error instanceof TokenInvalidAccountOwnerError) {
9671
+ // As this isn't atomic, it's possible others can create associated accounts meanwhile.
9672
+ tx.add(createAssociatedTokenAccountInstruction(publicKey, underlyingTokenATA, publicKey, new PublicKey(poolInfo.underlyingMint.address), TOKEN_2022_PROGRAM_ID, ASSOCIATED_TOKEN_PROGRAM_ID));
9673
+ }
9674
+ }
9675
+
9676
+ // Approve allowance to the sentinel if the account is new or delegated amount is not enough
9677
+ const borrowAmountBN = new BN((_borrowAmountBNJson$t = borrowAmountBNJson === null || borrowAmountBNJson === void 0 ? void 0 : borrowAmountBNJson.toString()) !== null && _borrowAmountBNJson$t !== void 0 ? _borrowAmountBNJson$t : '0');
9678
+ if (!tokenAccount || borrowAmountBN.gt(new BN(tokenAccount.delegatedAmount.toString())) || ((_tokenAccount$delegat = tokenAccount.delegate) === null || _tokenAccount$delegat === void 0 ? void 0 : _tokenAccount$delegat.toString()) !== sentinel) {
9679
+ tx.add(createApproveCheckedInstruction(underlyingTokenATA, new PublicKey(poolInfo.underlyingMint.address), new PublicKey(sentinel),
9680
+ // delegate
9681
+ publicKey,
9682
+ // owner of the wallet
9683
+ BigInt(SolanaTokenUtils.parseUnits('100000000000',
9684
+ // 100 billion
9685
+ poolInfo.underlyingMint.decimals).toString()),
9686
+ // amount
9687
+ poolInfo.underlyingMint.decimals, undefined,
9688
+ // multiSigners
9689
+ TOKEN_2022_PROGRAM_ID));
9690
+ }
9691
+ const {
9692
+ creditConfigAccount,
9693
+ creditStateAccount
9694
+ } = getCreditAccounts(poolInfo, publicKey);
9695
+ // borrowAmountBNJson is stored as a raw number string in this flow
9696
+ const programTx = await program.methods.drawdown(borrowAmountBN).accountsPartial({
9697
+ borrower: publicKey,
9698
+ humaConfig: poolInfo.humaConfig,
9699
+ poolConfig: poolInfo.poolConfig,
9700
+ poolState: poolInfo.poolState,
9701
+ creditConfig: creditConfigAccount,
9702
+ creditState: creditStateAccount,
9703
+ poolAuthority: poolInfo.poolAuthority,
9704
+ underlyingMint: poolInfo.underlyingMint.address,
9705
+ poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,
9706
+ borrowerUnderlyingToken: underlyingTokenATA,
9707
+ tokenProgram: TOKEN_2022_PROGRAM_ID
9708
+ }).transaction();
9709
+ tx.add(programTx);
9710
+ setTransaction(tx);
9711
+ }
9712
+ getTx();
9713
+ }, [borrowAmountBNJson, connection, dispatch, poolInfo, poolInfo.underlyingMint.address, poolInfo.underlyingMint.decimals, program.methods, publicKey, sentinel, wallet]);
9714
+ return jsx(SolanaTxSendModal, {
9715
+ tx: transaction,
9716
+ chainId: poolInfo.chainId,
9717
+ handleSuccess: handleSuccess
9718
+ });
9719
+ }
9720
+
9721
+ function Done$1(_ref) {
9722
+ let {
9723
+ poolInfo,
9724
+ poolState,
9725
+ handleAction
9726
+ } = _ref;
9727
+ const {
9728
+ borrowAmount,
9729
+ solanaSignature
9730
+ } = useAppSelector(selectWidgetState);
9731
+ const {
9732
+ symbol
9733
+ } = poolInfo.underlyingMint;
9734
+ const dueDate = timeUtil.timestampToLL(poolState.epochEndTime);
9735
+ const content = ["".concat(formatNumber(borrowAmount), " ").concat(symbol, " is now in your wallet."), "Note: your first automatic payment will occur after ".concat(dueDate, ".")];
9736
+ return jsx(SolanaTxDoneModal, {
9737
+ handleAction: handleAction,
9738
+ content: content,
9739
+ chainId: poolInfo.chainId,
9740
+ solanaSignature: solanaSignature,
9741
+ buttonText: "DONE"
9742
+ });
9743
+ }
9744
+
9745
+ function SolanaBorrow(_ref) {
9746
+ let {
9747
+ poolInfo,
9748
+ poolState,
9749
+ handleClose,
9750
+ handleSuccess
9751
+ } = _ref;
9752
+ const title = 'Borrow';
9753
+ const dispatch = useDispatch();
9754
+ const {
9755
+ step,
9756
+ errorMessage
9757
+ } = useAppSelector(selectWidgetState);
9758
+ const {
9759
+ creditConfigAccount
9760
+ } = useBorrowerAccounts(poolInfo.chainId, poolInfo.poolName);
9761
+ useEffect(() => {
9762
+ if (!step && creditConfigAccount) {
9763
+ dispatch(setStep(WIDGET_STEP.ChooseAmount));
9764
+ }
9765
+ }, [creditConfigAccount, dispatch, step]);
9766
+ if (!creditConfigAccount) {
9767
+ return jsx(WidgetWrapper, {
9768
+ isOpen: true,
9769
+ isLoading: true,
9770
+ loadingTitle: title,
9771
+ handleClose: handleClose,
9772
+ handleSuccess: handleSuccess
9773
+ });
9774
+ }
9775
+ return jsxs(WidgetWrapper, {
9776
+ isOpen: true,
9777
+ loadingTitle: title,
9778
+ handleClose: handleClose,
9779
+ handleSuccess: handleSuccess,
9780
+ children: [step === WIDGET_STEP.ChooseAmount && creditConfigAccount && jsx(ChooseAmount$1, {
9781
+ poolInfo: poolInfo,
9782
+ creditConfigAccount: creditConfigAccount
9783
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$1, {
9784
+ poolInfo: poolInfo
9785
+ }), step === WIDGET_STEP.Done && jsx(Done$1, {
9786
+ poolInfo: poolInfo,
9787
+ poolState: poolState,
9788
+ handleAction: handleClose
9789
+ }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
9790
+ title: title,
9791
+ errorReason: "Sorry there was an error",
9792
+ errorMessage: errorMessage,
9793
+ handleOk: handleClose
9794
+ })]
9795
+ });
9796
+ }
9797
+
9798
+ function ChooseAmount(_ref) {
9799
+ let {
9800
+ poolInfo,
9801
+ creditStateAccount
9802
+ } = _ref;
9803
+ const dispatch = useAppDispatch();
9804
+ const {
9805
+ symbol,
9806
+ decimals
9807
+ } = poolInfo.underlyingMint;
9808
+ const [currentAmount, setCurrentAmount] = useState(0);
9809
+ const totalDueAmount = useMemo(() => Number(SolanaTokenUtils.formatUnits(creditStateAccount.creditRecord.totalDueAmount, decimals)), [creditStateAccount.creditRecord.totalDueAmount, decimals]);
9810
+ const payoffAmount = useMemo(() => Number(SolanaTokenUtils.formatUnits(creditStateAccount.creditRecord.payoffAmount, decimals)), [creditStateAccount.creditRecord.payoffAmount, decimals]);
9811
+ useEffect(() => {
9812
+ setCurrentAmount(totalDueAmount);
9813
+ dispatch(setPaymentAmount({
9814
+ paymentAmount: totalDueAmount
9815
+ }));
9816
+ }, [dispatch, totalDueAmount]);
9817
+ const handleChangeAmount = newAmount => {
9818
+ setCurrentAmount(newAmount);
9819
+ dispatch(setPaymentAmount({
9820
+ paymentAmount: newAmount
9821
+ }));
9822
+ };
9823
+ const handleAction = useCallback(() => {
9824
+ dispatch(setStep(WIDGET_STEP.Transfer));
9825
+ }, [dispatch]);
9826
+ return jsx(InputAmountModal, {
9827
+ title: "Make Payment",
9828
+ subTitle: "Choose Amount",
9829
+ tokenSymbol: symbol,
9830
+ currentAmount: currentAmount,
9831
+ handleChangeAmount: handleChangeAmount,
9832
+ maxAmount: payoffAmount,
9833
+ maxAmountText: "Pay Off",
9834
+ infos: ["".concat(formatNumber(totalDueAmount.toFixed(0)), " Due")],
9835
+ handleAction: handleAction,
9836
+ actionText: "PAY"
9837
+ });
9838
+ }
9839
+
9840
+ function Transfer(_ref) {
9841
+ let {
9842
+ poolInfo
9843
+ } = _ref;
9844
+ const dispatch = useAppDispatch();
9845
+ const {
9846
+ wallet,
9847
+ publicKey
9848
+ } = useWallet();
9849
+ const {
9850
+ connection
9851
+ } = useConnection();
9852
+ const [transaction, setTransaction] = useState();
9853
+ const program = useHumaProgram(poolInfo.chainId);
9854
+ const {
9855
+ paymentAmount
9856
+ } = useAppSelector(selectWidgetState);
9857
+ const {
9858
+ decimals
9859
+ } = poolInfo.underlyingMint;
9860
+ const handleSuccess = useCallback(() => {
9861
+ dispatch(setStep(WIDGET_STEP.Done));
9862
+ }, [dispatch]);
9863
+ useEffect(() => {
9864
+ async function getTx() {
9865
+ if (!wallet || !publicKey || !connection || !paymentAmount) {
9866
+ return;
9867
+ }
9868
+ const {
9869
+ underlyingTokenATA
9870
+ } = getTokenAccounts(poolInfo, publicKey);
9871
+ const {
9872
+ creditConfigAccount,
9873
+ creditStateAccount
9874
+ } = getCreditAccounts(poolInfo, publicKey);
9875
+ const paymentAmountBN = SolanaTokenUtils.parseUnits(paymentAmount.toString(), decimals);
9876
+ const tx = await program.methods.makePayment(paymentAmountBN).accountsPartial({
9877
+ signer: publicKey,
9878
+ humaConfig: poolInfo.humaConfig,
9879
+ poolConfig: poolInfo.poolConfig,
9880
+ poolState: poolInfo.poolState,
9881
+ creditConfig: creditConfigAccount,
9882
+ creditState: creditStateAccount,
9883
+ poolAuthority: poolInfo.poolAuthority,
9884
+ underlyingMint: poolInfo.underlyingMint.address,
9885
+ poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,
9886
+ borrowerUnderlyingToken: underlyingTokenATA,
9887
+ tokenProgram: TOKEN_2022_PROGRAM_ID
9888
+ }).transaction();
9889
+ setTransaction(tx);
9890
+ }
9891
+ getTx();
9892
+ }, [connection, decimals, dispatch, paymentAmount, poolInfo, poolInfo.underlyingMint.address, poolInfo.underlyingMint.decimals, program.methods, publicKey, wallet]);
9893
+ return jsx(SolanaTxSendModal, {
9894
+ tx: transaction,
9895
+ chainId: poolInfo.chainId,
9896
+ handleSuccess: handleSuccess
9897
+ });
9898
+ }
9899
+
9900
+ function Done(_ref) {
9901
+ let {
9902
+ poolInfo,
9903
+ handleAction
9904
+ } = _ref;
9905
+ const {
9906
+ solanaSignature
9907
+ } = useAppSelector(selectWidgetState);
9908
+ const {
9909
+ symbol
9910
+ } = poolInfo.underlyingMint;
9911
+ const {
9912
+ connection
9913
+ } = useConnection();
9914
+ const [tokensPaid, setTokensPaid] = useState(null);
9915
+ useEffect(() => {
9916
+ const fetchTokensPaid = async () => {
9917
+ var _txData$meta, _txData$meta2;
9918
+ if (!solanaSignature) {
9919
+ return;
9920
+ }
9921
+ const txData = await connection.getTransaction(solanaSignature, {
9922
+ maxSupportedTransactionVersion: 2
9923
+ });
9924
+ const preTokenBalance = txData === null || txData === void 0 || (_txData$meta = txData.meta) === null || _txData$meta === void 0 || (_txData$meta = _txData$meta.preTokenBalances) === null || _txData$meta === void 0 || (_txData$meta = _txData$meta[0]) === null || _txData$meta === void 0 || (_txData$meta = _txData$meta.uiTokenAmount) === null || _txData$meta === void 0 ? void 0 : _txData$meta.uiAmount;
9925
+ const postTokenBalance = txData === null || txData === void 0 || (_txData$meta2 = txData.meta) === null || _txData$meta2 === void 0 || (_txData$meta2 = _txData$meta2.postTokenBalances) === null || _txData$meta2 === void 0 || (_txData$meta2 = _txData$meta2[0]) === null || _txData$meta2 === void 0 || (_txData$meta2 = _txData$meta2.uiTokenAmount) === null || _txData$meta2 === void 0 ? void 0 : _txData$meta2.uiAmount;
9926
+ if (preTokenBalance && postTokenBalance) {
9927
+ setTokensPaid(preTokenBalance - postTokenBalance);
9928
+ }
9929
+ };
9930
+ fetchTokensPaid();
9931
+ }, [connection, solanaSignature]);
9932
+ const content = useMemo(() => {
9933
+ if (tokensPaid !== null) {
9934
+ return ["You successfully paid ".concat(formatNumber(tokensPaid), " ").concat(symbol, ".")];
9935
+ }
9936
+ return ['Your payment to the pool was successful'];
9937
+ }, [tokensPaid, symbol]);
9938
+ return jsx(SolanaTxDoneModal, {
9939
+ handleAction: handleAction,
9940
+ content: content,
9941
+ chainId: poolInfo.chainId,
9942
+ solanaSignature: solanaSignature,
9943
+ buttonText: "DONE"
9944
+ });
9945
+ }
9946
+
9947
+ function SolanaPayment(_ref) {
9948
+ let {
9949
+ poolInfo,
9950
+ handleClose,
9951
+ handleSuccess
9952
+ } = _ref;
9953
+ const title = 'Make Payment';
9954
+ const dispatch = useDispatch();
9955
+ const {
9956
+ step,
9957
+ errorMessage
9958
+ } = useAppSelector(selectWidgetState);
9959
+ const {
9960
+ creditStateAccount
9961
+ } = useBorrowerAccounts(poolInfo.chainId, poolInfo.poolName);
9962
+ useEffect(() => {
9963
+ if (!step && creditStateAccount) {
9964
+ dispatch(setStep(WIDGET_STEP.ChooseAmount));
9965
+ }
9966
+ }, [creditStateAccount, dispatch, step]);
9967
+ if (!creditStateAccount) {
9968
+ return jsx(WidgetWrapper, {
9969
+ isOpen: true,
9970
+ isLoading: true,
9971
+ loadingTitle: title,
9972
+ handleClose: handleClose,
9973
+ handleSuccess: handleSuccess
9974
+ });
9975
+ }
9976
+ return jsxs(WidgetWrapper, {
9977
+ isOpen: true,
9978
+ loadingTitle: title,
9979
+ handleClose: handleClose,
9980
+ handleSuccess: handleSuccess,
9981
+ children: [step === WIDGET_STEP.ChooseAmount && creditStateAccount && jsx(ChooseAmount, {
9982
+ poolInfo: poolInfo,
9983
+ creditStateAccount: creditStateAccount
9984
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer, {
9985
+ poolInfo: poolInfo
9986
+ }), step === WIDGET_STEP.Done && jsx(Done, {
9987
+ poolInfo: poolInfo,
9988
+ handleAction: handleClose
9989
+ }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
9990
+ title: title,
9991
+ errorReason: "Sorry there was an error",
9992
+ errorMessage: errorMessage,
9993
+ handleOk: handleClose
9994
+ })]
9995
+ });
9996
+ }
9997
+
9998
+ function NotifiContextWrapper(_ref) {
9999
+ let {
10000
+ chainId,
10001
+ children
10002
+ } = _ref;
10003
+ const {
10004
+ account,
10005
+ provider
10006
+ } = useWeb3React();
10007
+ const signer = useMemo(() => {
10008
+ if (provider instanceof providers.JsonRpcProvider) {
10009
+ return provider.getSigner();
10010
+ }
10011
+ return undefined;
10012
+ }, [provider]);
10013
+ if (account == null || signer == null || chainId == null) {
10014
+ return null;
10015
+ }
10016
+ let cardId = '';
10017
+ if (chainId === ChainEnum.Celo || chainId === ChainEnum.Alfajores) {
10018
+ var _process$env$REACT_AP;
10019
+ cardId = (_process$env$REACT_AP = process.env.REACT_APP_NOTIFI_CONFIG_ID_CELO) !== null && _process$env$REACT_AP !== void 0 ? _process$env$REACT_AP : '';
10020
+ } else if (chainId === ChainEnum.Polygon || chainId === ChainEnum.Amoy) {
10021
+ var _process$env$REACT_AP2;
10022
+ cardId = (_process$env$REACT_AP2 = process.env.REACT_APP_NOTIFI_CONFIG_ID_POLYGON) !== null && _process$env$REACT_AP2 !== void 0 ? _process$env$REACT_AP2 : '';
10023
+ } else if (chainId === ChainEnum.Scroll || chainId === ChainEnum.ScrollSepolia) {
10024
+ var _process$env$REACT_AP3;
10025
+ cardId = (_process$env$REACT_AP3 = process.env.REACT_APP_NOTIFI_CONFIG_ID_SCROLL) !== null && _process$env$REACT_AP3 !== void 0 ? _process$env$REACT_AP3 : '';
10026
+ }
10027
+ return jsx(NotifiContextProvider, {
10028
+ tenantId: "humafinanceprod",
10029
+ env: "Production",
10030
+ signMessage: async message => {
10031
+ const result = await signer.signMessage(message);
10032
+ return arrayify(result);
10033
+ },
10034
+ walletPublicKey: account,
10035
+ walletBlockchain: getBlockchainConfigFromChain(chainId),
10036
+ cardId: cardId,
10037
+ children: children
10038
+ });
10039
+ }
10040
+
10041
+ function Widget(props) {
10042
+ const {
10043
+ children,
10044
+ provider
10045
+ } = props;
10046
+ const [chainId, setChainId] = useState(undefined);
10047
+ useEffect(() => {
10048
+ const getChainId = async () => {
10049
+ if (provider instanceof JsonRpcProvider) {
10050
+ const network = await provider.getNetwork();
10051
+ setChainId(network === null || network === void 0 ? void 0 : network.chainId);
10052
+ }
10053
+ };
10054
+ getChainId();
10055
+ }, [provider]);
10056
+ return jsx(ThemeProvider, {
10057
+ theme: themeHuma,
10058
+ children: jsx(Provider, {
10059
+ store: store,
10060
+ children: jsx(Provider$1, {
10061
+ ...props,
10062
+ defaultChainId: chainId,
10063
+ children: jsx(Provider$2, {
10064
+ children: jsx(ChainSupportProvider, {
10065
+ children: jsx(NotifiContextWrapper, {
10066
+ chainId: chainId,
10067
+ children: children
10068
+ })
10069
+ })
10070
+ })
10071
+ })
10072
+ })
10073
+ });
10074
+ }
10075
+
10076
+ /**
10077
+ * Invoice factoring pool borrow widget props
8624
10078
  * @typedef {Object} InvoiceFactoringBorrowWidgetProps
8625
10079
  * @property {InvoiceFactoringBorrowProps} InvoiceFactoringBorrowProps - Invoice factoring pool borrow props.
8626
10080
  * @property {WidgetProps} WidgetProps - Widget general props.
@@ -9007,5 +10461,118 @@ function ReceivableBackedCreditLinePaymentWidgetV2(props) {
9007
10461
  });
9008
10462
  }
9009
10463
 
9010
- export { AddRedemptionWidgetV2, AutoPaybackWidgetV2, CancelRedemptionWidgetV2, CreditLineApproveWidget, CreditLineBorrowWidget, CreditLineBorrowWidgetV2, CreditLinePaymentWidget, CreditLinePaymentWidgetV2, InvoiceFactoringBorrowWidget, InvoiceFactoringPaymentWidget, LendSupplyWidget, LendSupplyWidgetV2, LendWithdrawWidget, LendWithdrawWidgetV2, NotifiContextWrapper, ReceivableBackedCreditLineBorrowWidgetV2, ReceivableBackedCreditLinePaymentWidgetV2, SuperfluidFactoringWidget, SupplyFirstLossCoverWidget };
10464
+ /**
10465
+ * Object representing the props passed to Solana widgets
10466
+ * @typedef {Object} SolanaWidgetProps
10467
+ */
10468
+
10469
+ function SolanaWidget(props) {
10470
+ const {
10471
+ children
10472
+ } = props;
10473
+ return jsx(ThemeProvider, {
10474
+ theme: themeHuma,
10475
+ children: jsx(Provider, {
10476
+ store: store,
10477
+ children: children
10478
+ })
10479
+ });
10480
+ }
10481
+
10482
+ /**
10483
+ * Lend pool supply widget props for Solana pools
10484
+ * @typedef {Object} SolanaLendSupplyWidgetProps
10485
+ */
10486
+
10487
+ /**
10488
+ * Lend pool supply widget for Solana pools
10489
+ *
10490
+ * @param {SolanaLendSupplyWidgetProps} props - Widget props
10491
+ */
10492
+ function SolanaLendSupplyWidget(props) {
10493
+ return jsx(SolanaWidget, {
10494
+ ...props,
10495
+ children: jsx(SolanaLendSupply, {
10496
+ ...props
10497
+ })
10498
+ });
10499
+ }
10500
+
10501
+ /**
10502
+ * Lend pool supply widget props for Solana pools
10503
+ * @typedef {Object} SolanaLendAddRedemptionWidgetProps
10504
+ */
10505
+
10506
+ /**
10507
+ * Lend pool supply widget for Solana pools
10508
+ *
10509
+ * @param {SolanaLendAddRedemptionWidgetProps} props - Widget props
10510
+ */
10511
+ function SolanaLendAddRedemptionWidget(props) {
10512
+ return jsx(SolanaWidget, {
10513
+ ...props,
10514
+ children: jsx(SolanaLendAddRedemption, {
10515
+ ...props
10516
+ })
10517
+ });
10518
+ }
10519
+
10520
+ /**
10521
+ * Lend pool supply widget props for Solana pools
10522
+ * @typedef {Object} SolanaLendCancelRedemptionWidgetProps
10523
+ */
10524
+
10525
+ /**
10526
+ * Lend pool supply widget for Solana pools
10527
+ *
10528
+ * @param {SolanaLendCancelRedemptionWidgetProps} props - Widget props
10529
+ */
10530
+ function SolanaLendCancelRedemptionWidget(props) {
10531
+ return jsx(SolanaWidget, {
10532
+ ...props,
10533
+ children: jsx(SolanaLendCancelRedemption, {
10534
+ ...props
10535
+ })
10536
+ });
10537
+ }
10538
+
10539
+ /**
10540
+ * Lend pool supply widget props for Solana pools
10541
+ * @typedef {Object} SolanaBorrowWidgetProps
10542
+ */
10543
+
10544
+ /**
10545
+ * Lend pool supply widget for Solana pools
10546
+ *
10547
+ * @param {SolanaBorrowWidgetProps} props - Widget props
10548
+ */
10549
+ function SolanaBorrowWidget(props) {
10550
+ return jsx(SolanaWidget, {
10551
+ ...props,
10552
+ children: jsx(SolanaBorrow, {
10553
+ ...props
10554
+ })
10555
+ });
10556
+ }
10557
+
10558
+ /**
10559
+ * Lend pool supply widget props for Solana pools
10560
+ * @typedef {Object} SolanaPaymentWidgetProps
10561
+ */
10562
+
10563
+ /**
10564
+ * Lend pool supply widget for Solana pools
10565
+ *
10566
+ * @param {SolanaPaymentWidgetProps} props - Widget props
10567
+ */
10568
+ function SolanaPaymentWidget(props) {
10569
+ return jsx(SolanaWidget, {
10570
+ ...props,
10571
+ children: jsx(SolanaPayment, {
10572
+ ...props
10573
+ })
10574
+ });
10575
+ }
10576
+
10577
+ export { AddRedemptionWidgetV2, AutoPaybackWidgetV2, CancelRedemptionWidgetV2, CreditLineApproveWidget, CreditLineBorrowWidget, CreditLineBorrowWidgetV2, CreditLinePaymentWidget, CreditLinePaymentWidgetV2, InvoiceFactoringBorrowWidget, InvoiceFactoringPaymentWidget, LendSupplyWidget, LendSupplyWidgetV2, LendWithdrawWidget, LendWithdrawWidgetV2, NotifiContextWrapper, ReceivableBackedCreditLineBorrowWidgetV2, ReceivableBackedCreditLinePaymentWidgetV2, SolanaBorrowWidget, SolanaLendAddRedemptionWidget, SolanaLendCancelRedemptionWidget, SolanaLendSupplyWidget, SolanaPaymentWidget, SuperfluidFactoringWidget, SupplyFirstLossCoverWidget };
9011
10578
  //# sourceMappingURL=index.js.map